From 9bba0ca5b9191fd43eafd9f4db6bdaed6af6e13e Mon Sep 17 00:00:00 2001 From: NI-velmurugan Date: Tue, 13 Oct 2026 10:02:20 +0000 Subject: [PATCH 1/3] Adding Diode Measurement example in NI-DMM --- CHANGELOG.md | 1 + docs/nidmm/examples.rst | 9 +++++ src/nidmm/examples/nidmm_diode_test.py | 54 ++++++++++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 src/nidmm/examples/nidmm_diode_test.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 86a8d9eb3..80dc4e922 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -799,6 +799,7 @@ #### [nidmm] Unreleased - Added - Added the `nidmm_measure_ac_volts.py` example. + - Added the `nidmm_diode_test.py` example. - (Common) Added `nitlsconfig[grpc]>=1.0.0a2` to the optional gRPC dependencies. - Changed - Removed diff --git a/docs/nidmm/examples.rst b/docs/nidmm/examples.rst index ec6b3ee3e..e5b173072 100644 --- a/docs/nidmm/examples.rst +++ b/docs/nidmm/examples.rst @@ -3,6 +3,15 @@ Examples `You can download all nidmm examples for latest version here `_ +nidmm_diode_test.py +------------------- + +.. literalinclude:: ../../src/nidmm/examples/nidmm_diode_test.py + :language: python + :linenos: + :encoding: utf8 + :caption: `(nidmm_diode_test.py) `_ + nidmm_fetch_waveform.py ----------------------- diff --git a/src/nidmm/examples/nidmm_diode_test.py b/src/nidmm/examples/nidmm_diode_test.py new file mode 100644 index 000000000..09408b4aa --- /dev/null +++ b/src/nidmm/examples/nidmm_diode_test.py @@ -0,0 +1,54 @@ +#!/usr/bin/python + +import argparse +import math +import nidmm +import re +import sys + +# These models do not support configuring the current source. +FIXED_CURRENT_SOURCE_MODELS = ('4050', '4060') + + +def example(resource_name, options, function, range, digits, current_source): + with nidmm.Session(resource_name=resource_name, options=options) as session: + session.configure_measurement_digits(measurement_function=nidmm.Function[function], range=range, resolution_digits=digits) + model_match = re.search('[0-9]+', session.instrument_model) + model = model_match.group() if model_match else '' + if model not in FIXED_CURRENT_SOURCE_MODELS: + session.current_source = current_source + measurement = session.read() + out_of_range = math.isnan(measurement) or (math.isinf(measurement) and measurement > 0) + print(f'Measurement (volts): {measurement}') + print(f'Signal Out of Range: {out_of_range}') + + +def _main(argsv): + supported_functions = list(nidmm.Function.__members__.keys()) + parser = argparse.ArgumentParser(description='Performs a single diode measurement using the NI-DMM API.', formatter_class=argparse.ArgumentDefaultsHelpFormatter) + parser.add_argument('-n', '--resource-name', default='PXI1Slot2', help='Contains the resource_name of the device to initialize.') + parser.add_argument('-f', '--function', default='DIODE', choices=supported_functions, type=str.upper, help='Specifies the measurement_function used to acquire the measurement.') + parser.add_argument('-r', '--range', default=2, type=float, help='Specifies the range for the function specified in the Measurement_Function parameter.') + parser.add_argument('-d', '--digits', default=5.5, type=float, help='Specifies the resolution of the measurement in digits.') + parser.add_argument('-c', '--current-source', default=0.001, type=float, help='Specifies the current source provided during diode measurements.') + parser.add_argument('-op', '--option-string', default='', type=str, help='Sets the initial value of certain attributes for the session.') + args = parser.parse_args(argsv) + example(args.resource_name, args.option_string, args.function, args.range, args.digits, args.current_source) + + +def main(): + _main(sys.argv[1:]) + + +def test_example(): + options = {'simulate': True, 'driver_setup': {'Model': '4082', 'BoardType': 'PXIe', }, } + example('PXI1Slot2', options, 'DIODE', 2, 5.5, 0.001) + + +def test_main(): + cmd_line = ['--option-string', 'Simulate=1, DriverSetup=Model:4082; BoardType:PXIe', ] + _main(cmd_line) + + +if __name__ == '__main__': + main() From 4780cf31ee93f69a73d89c942f33d1930c8081ae Mon Sep 17 00:00:00 2001 From: NI-velmurugan Date: Wed, 14 Oct 2026 05:22:17 +0000 Subject: [PATCH 2/3] Trigger CI build From e6afaeb09846240328d5154ec68065653871efc5 Mon Sep 17 00:00:00 2001 From: NI-velmurugan Date: Wed, 14 Oct 2026 05:49:34 +0000 Subject: [PATCH 3/3] Trigger CI build