Skip to content

Releases: ni/nidaqmx-python

1.0.2

08 Nov 17:26
1a24777
Compare
Choose a tag to compare

1.0.1

1.0.0

09 Jul 04:49
570c62b
Compare
Choose a tag to compare

1.0.0

1.0.0-dev0

22 Apr 18:52
8a96d34
Compare
Choose a tag to compare
1.0.0-dev0 Pre-release
Pre-release

Pre-release version for further testing.

In lieu of full release notes, here are the commits since 0.9.0

* 8a96d34 (HEAD -> master, origin/master) update to 1.0.0-dev0 (#567)
* a6d9e71 Reorganize examples to folders (#565)
* 31a89b5 After the fact feedback from PR #558 (#564)
* 06da4f4 Build(deps): Bump idna from 3.6 to 3.7 (#563)
* e609ae6 Update hightime library (#560)
* 5a8c6a5 Automate Driver Install Experience within nidaqmx Module (#512)
* 230b235 Add tests to verify closing task in event callback does not crash or error (#558)
* 3fdfbee Accept either comma delimited or flattened channel string as valid (#553)
* b73c3ac mypy: Ignore redef in importlib_metadata hack and run mypy --platform win32 (#554)
* a60f369 Component tests for Global Chans, Task Done, and Watchdog (#548)
* 44f2486 Improve error reporting in some cases (#550)
* 33fb53f Build(deps-dev): Bump black from 24.2.0 to 24.3.0 (#547)
* ef87d63 fix physical channel/device collection slice/string behavior (#536)
* e902251 Add pathlib.PurePath type for file path (#542)
* d5b5636 Pick up trigger attributes changes from scrapigen (#545)
* d4d078b Refactor Task Internal Modules: Triggers (#546)
* 2e0e590 Refactor Task Internal Modules: Channels (#544)
* 4d6b783 Refactor Task Internal Modules: Collections (#541)
* 026eba1 Update cfg analog multi edge trig APIs (#535)
* 5fd2123 Refactor Task Internal Modules (ExportSignal, OutStream, Timing) (#539)
* 22301b5 Refactor task.py and internal module (in_stream.py)  (#534)
* 91cea8e Allocate Buffer Size for Read/Write String Status Properties (#537)
* 0f65354 Fix parameter rosette_meas_types type in docstrings (#511)
* ca462ac Add Counter Stream Writer tests (#533)
* c0e4716 Add Tox Env for Internationalization Testing (#532)
* 2c18e56 Add Digital Stream Writer tests (#531)
* bac7f01 Add Functional Tests for Internationalization (#525)
* df7366e tests: Add new tests for Task.read (#530)
* 57b0001 handwritten: Fix mypy errors with recent _lib.py changes
* 5ca4030 handwritten: Fix Linux-specific mypy error
* 5646c78 GitHub: Run mypy on generated/nidaqmx
* 7b8c8ca handwritten: Fix mypy errors in task.py
* bbce385 handwritten: Fix mypy errors in stream_readers.py
* a5aee8a codegen: Fix mypy errors in in_stream.py
* 12e5ea1 codegen: Fix mypy errors for numpy.float64([...]), etc.
* 71ee5aa handwritten: Fix mypy errors in _time.py
* a0a4cd9 codegen, handwritten: Ignore mypy errors in "alternate constructors"
* c999a5f handwritten: Fix mypy errors for utils.py
* 5f3dd8f Update poetry.lock (#526)
* 4e41a70 Add Analog Stream Writer tests (#515)
* 981e45f Support Non-ASCII Characters for User-Provided String (#518)
* 9648bc6 Add python-decouple Dependency (#524)
* 6267cc0 Add functional test for wait_for_valid_timestamp (#510)
* 18cb6e2 Update libtime to accept time before 1970 (#504)
* 205dc3b Add tzlocal dependency in poetry.lock (#521)
* bb5ef01 Update AI Bridge Default Argument Values  (#509)
* 22ae455 Change ai_voltage_field_daq_task to ai_voltage_task (#520)
* a2869af Update poetry.lock and reformat code with updated tools (#517)
* 7e8800c Add max_config files for Linux (#516)
* 14f953c tests: Fix mypy errors and run mypy during PR build (#505)
* 0905e65 replace fielddaq with cdaq in tests (#513)
* a7a3643 Add support for DAQmx calibration info properties (#473)
* 8cac1b8 Add support for WaitForValidTimestamp to nidaqmx-python (#479)
* ba42d15 Add Unit test for cfg_time_start_trig (#488)
* 6acaca7 handwritten: Add `CalHandle` and `TaskHandle` type aliases to `_lib` and delete conditionals for DAQmx version <8.9 (#503)
* ce040ba add subclass (#496)
* ac3f5e0 Be more precise with X series device fixtures (#501)
* 0e87936 Split stream reader component tests by subsystem (#499)
* 97e0c37 fix typing issue in Python 3.8 (#500)
* 3129f87 Add Counter Stream Reader tests  (#497)
* 11b8f56  Add Digital Stream Reader tests (#494)
* 173f46b Fix raw-read Function Names Spacing Issue (#492)
* 3d67f7d Add Analog Stream Reader tests (#493)
* 457077b Add Digital and Counter create channel tests (#491)
* 7119a3f  Add AI TEDS create channel tests (#490)
* 1305bc1 import MAX config when running system tests (#489)
* 53c8ef9 Add "When" attribute to start_trigger.py (#481)
* a6b070d Add AI create channel tests (#485)
* 8bc4799 Fix readthedocs documentation generation (#486)
* 908cebf CONTRIBUTING.md: Update physical device recommendation (#480)
* 5e77102 Add CfgTimeStartTrig to daqmx-python (#475)
* c5fddf5 Add Offset Nulling Calibration API support for nidaqmx-python (#468)
* 8f1b610 Add Shunt Cal API support for nidaqmx-python (#469)
* 275944c Build(deps): Bump jinja2 from 3.1.2 to 3.1.3 (#470)
* eca4e38 repo: Add security policy (#467)
* f5c7da3 Update to 0.9.1 (#466)

0.9.0

19 Dec 22:49
faff0b8
Compare
Choose a tag to compare

0.9.0

  • Merged Pull Requests

  • Major Changes

    • nidaqmx.errors.DaqNotFoundError, nidaqmx.errors.DaqNotSupportedError, and
      nidaqmx.errors.DaqFunctionNotSupportedError are now public exceptions.
    • Consistently return nidaqmx.errors.DaqNotFoundError on all platforms when the NI-DAQmx
      driver is not installed.
    • Updated supported Python versions to 3.8, 3.9, 3.10, 3.11, and 3.12

0.8.0

12 Jul 19:12
85baddf
Compare
Choose a tag to compare

0.8.0

  • Merged Pull Requests

  • Major Changes

    • Added support for communicating with DAQmx devices through gRPC using NI gRPC Device Server. This enables using DAQmx with the MeasurementLink session management service.
      • The initialization methods for Task, Scale, and other classes now accept a keyword-only grpc_options parameter. Pass a GrpcSessionsOptions object to enable gRPC support.
      • The System class now has a remote() method which accepts a GrpcSessionOptions object.
      • NI gRPC Device Server version 2.2 or later is required. Older versions of NI gRPC Device Server are unsupported because they are missing bug fixes needed to support nidaqmx-python.
    • The following functions now emit DeprecationWarning when called:
      • nidaqmx.errors module: check_for_error, is_string_buffer_too_small, and is_array_buffer_too_small are ctypes-specific helper functions, so they have been moved to an internal module.
      • System class: set_analog_power_up_states does not support PowerUpStates.TRISTATE and get_analog_power_up_states has design issues that make the previous implementation unworkable, so they have been deprecated in favor of set_analog_power_up_states_with_output_type and get_analog_power_up_states_with_output_type.
    • The internals of the nidaqmx package have been refactored to support gRPC:
      • Access to the DAQmx driver is now handled by the internal BaseInterpreter abstract base class. There are separate implementations of this abstract base class for ctypes vs. gRPC.
      • Internal initialization methods now accept an interpreter parameter. Methods that take an interpreter are not part of the public API.
      • Added a stub generator which will generate the gRPC stub files based on the proto files present in src/codegen/protos. The files will be generated into generator/nidaqmx/_stubs.
      • The internal nidaqmx._task_modules.read_functions and nidaqmx._task_modules.write_functions modules have been removed. If your application uses these modules, you must update it to use public APIs such as task.read()/task.write(), task.in_stream.read()/task.out_stream.write(), or nidaqmx.stream_readers/nidaqmx.stream_writers.
      • Updated the existing tests to run with and without gRPC support.
      • Added multiple test cases to improve the overall test coverage.
  • Known Issues

    • Comparisons between DAQmx object instances do not take gRPC remoting into account. For example, Device("Dev1") refers to a local device and Device("Dev1", grpc_options=...) refers to a remote device, but they are considered equal. Likewise, two instances of Device("Dev1", grpc_options=...) with different remote hosts are considered equal.

0.8.0-dev0

30 Jun 21:25
41c22bb
Compare
Choose a tag to compare
0.8.0-dev0 Pre-release
Pre-release
  • Merged Pull Requests

  • Major Changes

    • Added support for communicating with DAQmx devices through gRPC using NI gRPC Device Server. This enables using DAQmx with the MeasurementLink session management service.
      • The initialization methods for Task, Scale, and other classes now accept a keyword-only grpc_options parameter. Pass a GrpcSessionsOptions object to enable gRPC support.
      • The System class now has a remote() method which accepts a GrpcSessionOptions object.
      • NI gRPC Device Server version 2.2 or later is required. Older versions of NI gRPC Device Server are unsupported because they are missing bug fixes needed to support nidaqmx-python.
    • The following functions now emit DeprecationWarning when called:
      • nidaqmx.errors module: check_for_error, is_string_buffer_too_small, and is_array_buffer_too_small are ctypes-specific helper functions, so they have been moved to an internal module.
      • System class: set_analog_power_up_states does not support PowerUpStates.TRISTATE and get_analog_power_up_states has design issues that make the previous implementation unworkable, so they have been deprecated in favor of set_analog_power_up_states_with_output_type and get_analog_power_up_states_with_output_type.
    • The internals of the nidaqmx package have been refactored to support gRPC:
      • Access to the DAQmx driver is now handled by the internal BaseInterpreter abstract base class. There are separate implementations of this abstract base class for ctypes vs. gRPC.
      • Internal initialization methods now accept an interpreter parameter. Methods that take an interpreter are not part of the public API.
      • Added a stub generator which will generate the gRPC stub files based on the proto files present in src/codegen/protos. The files will be generated into generator/nidaqmx/_stubs.
      • The internal nidaqmx._task_modules.read_functions and nidaqmx._task_modules.write_functions modules have been removed. If your application uses these modules, you must update it to use public APIs such as task.read()/task.write(), task.in_stream.read()/task.out_stream.write(), or nidaqmx.stream_readers/nidaqmx.stream_writers.
      • Updated the existing tests to run with and without gRPC support.
      • Added multiple test cases to improve the overall test coverage.
  • Known Issues

    • Comparisons between DAQmx object instances do not take gRPC remoting into account. For example, Device("Dev1") refers to a local device and Device("Dev1", grpc_options=...) refers to a remote device, but they are considered equal. Likewise, two instances of Device("Dev1", grpc_options=...) with different remote hosts are considered equal.

0.7.0

06 Apr 18:03
555809e
Compare
Choose a tag to compare
  • Merged Pull Requests

  • Resolved Issues

  • Major Changes

    • Added a generator that produces the nidaqmx module code.
    • Some properties were renamed in an effort to improve the consistency of the nidaqmx module and to support maintainability of the generator. The previous names are still usable, but will emit a DeprecationWarning on usage. These deprecated properties may be removed in a future update.
    • Unused enums have been removed. This affects enums that are solely used by DAQmx features that are not supported in the nidaqmx module, such as external calibration, the DAQmx switch API, and internal APIs.
    • Refactored the repository folder structure as follows:
      • generated/nidaqmx/ - The output of the code generator and source for the build nidaqmx module. Do not directly modify any files in this folder.
      • examples/ - Example programs demonstrating how to use the nidaqmx module.
      • src/codegen/ - The code generator.
      • src/handwritten/ - Hand-maintained files that are copied as-is during code generation.
      • tests - Test code that exercises the nidaqmx module to ensure it functions correctly and doesn't introduce regressions.
    • Multiple various test improvements in support of the generator refactoring.

0.6.5

28 Nov 16:41
1b79dde
Compare
Choose a tag to compare

0.6.4

22 Aug 16:58
79ccdcf
Compare
Choose a tag to compare