Skip to content

Commit dd6a912

Browse files
Add instrument type for pin parameters in examples (#168)
* add instrument type for corresponding measurements * Update for doc instrument type param * fix lint errors * use instrument type constants * added instrument type for niscope_acquire_waveform * update niscope example
1 parent 55f2486 commit dd6a912

6 files changed

Lines changed: 43 additions & 8 deletions

File tree

examples/nidcpower_source_dc_voltage/measurement.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,12 @@
3434

3535

3636
@measurement_service.register_measurement
37-
@measurement_service.configuration("pin_name", nims.DataType.Pin, "Pin1")
37+
@measurement_service.configuration(
38+
"pin_name",
39+
nims.DataType.Pin,
40+
"Pin1",
41+
instrument_type=nims.session_management.INSTRUMENT_TYPE_NI_DCPOWER,
42+
)
3843
@measurement_service.configuration("voltage_level", nims.DataType.Double, 6.0)
3944
@measurement_service.configuration("voltage_level_range", nims.DataType.Double, 6.0)
4045
@measurement_service.configuration("current_limit", nims.DataType.Double, 0.01)

examples/nidcpower_source_dc_voltage_with_labview_ui/measurement.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,12 @@
3434

3535

3636
@measurement_service.register_measurement
37-
@measurement_service.configuration("pin_names", nims.DataType.PinArray1D, ["Pin1"])
37+
@measurement_service.configuration(
38+
"pin_names",
39+
nims.DataType.PinArray1D,
40+
["Pin1"],
41+
instrument_type=nims.session_management.INSTRUMENT_TYPE_NI_DCPOWER,
42+
)
3843
@measurement_service.configuration("voltage_level", nims.DataType.Double, 6.0)
3944
@measurement_service.configuration("voltage_level_range", nims.DataType.Double, 6.0)
4045
@measurement_service.configuration("current_limit", nims.DataType.Double, 0.01)

examples/nidmm_measurement/measurement.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,12 @@
4545

4646

4747
@measurement_service.register_measurement
48-
@measurement_service.configuration("pin_name", nims.DataType.Pin, "Pin1")
48+
@measurement_service.configuration(
49+
"pin_name",
50+
nims.DataType.Pin,
51+
"Pin1",
52+
instrument_type=nims.session_management.INSTRUMENT_TYPE_NI_DMM,
53+
)
4954
@measurement_service.configuration("measurement_type", nims.DataType.String, "DC Volts")
5055
@measurement_service.configuration("range", nims.DataType.Double, 10.0)
5156
@measurement_service.configuration("resolution_digits", nims.DataType.Double, 5.5)

examples/nifgen_standard_function/measurement.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,12 @@
4242

4343
@measurement_service.register_measurement
4444
# TODO: Rename pin_name to pin_names and make it PinArray1D
45-
@measurement_service.configuration("pin_name", nims.DataType.Pin, "Pin1")
45+
@measurement_service.configuration(
46+
"pin_name",
47+
nims.DataType.Pin,
48+
"Pin1",
49+
instrument_type=nims.session_management.INSTRUMENT_TYPE_NI_FGEN,
50+
)
4651
@measurement_service.configuration("waveform_type", nims.DataType.String, "Sine")
4752
@measurement_service.configuration("frequency", nims.DataType.Double, 1.0e6)
4853
@measurement_service.configuration("amplitude", nims.DataType.Double, 2.0)

examples/niscope_acquire_waveform/measurement.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,23 @@
5050

5151
@measurement_service.register_measurement
5252
# TODO: Make pin_names PinArray1D
53-
@measurement_service.configuration("pin_names", nims.DataType.Pin, "Pin1,Pin2,Pin3,Pin4")
53+
@measurement_service.configuration(
54+
"pin_names",
55+
nims.DataType.Pin,
56+
"Pin1,Pin2,Pin3,Pin4",
57+
instrument_type=nims.session_management.INSTRUMENT_TYPE_NI_SCOPE,
58+
)
5459
@measurement_service.configuration("vertical_range", nims.DataType.Double, 5.0)
5560
@measurement_service.configuration("vertical_coupling", nims.DataType.String, "DC")
5661
@measurement_service.configuration("input_impedance", nims.DataType.Double, 1e6)
5762
@measurement_service.configuration("min_sample_rate", nims.DataType.Double, 10e6)
5863
@measurement_service.configuration("min_record_length", nims.DataType.Int32, 40000)
59-
@measurement_service.configuration("trigger_source", nims.DataType.Pin, "Pin1")
64+
@measurement_service.configuration(
65+
"trigger_source",
66+
nims.DataType.Pin,
67+
"Pin1",
68+
instrument_type=nims.session_management.INSTRUMENT_TYPE_NI_SCOPE,
69+
)
6070
@measurement_service.configuration("trigger_level", nims.DataType.Double, 0.5)
6171
@measurement_service.configuration("trigger_slope", nims.DataType.String, "Positive")
6272
@measurement_service.configuration("auto_trigger", nims.DataType.Boolean, False)

ni_measurement_service/measurement/service.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,13 @@ def configuration(
184184
default_value (Any): Default value of the configuration.
185185
186186
instrument_type (str): Optional.
187-
Instrument type to be used to show instrument specific values to the configurations.
188-
This is only supported when configuration type is DataType.Pin.
187+
Filter pins by instrument type. This is only supported when configuration type
188+
is DataType.Pin. Pin maps have built in instrument definitions using the
189+
NI driver based instrument type ids. These can be found as constants
190+
in `nims.session_management`. For example, for an NI DCPower instrument
191+
the instrument type is `nims.session_management.INSTRUMENT_TYPE_NI_DCPOWER`.
192+
For custom instruments the user defined instrument type id is defined in the
193+
pin map file.
189194
190195
Returns
191196
-------

0 commit comments

Comments
 (0)