Skip to content

Latest commit

 

History

History
270 lines (226 loc) · 16 KB

CHANGELOG.md

File metadata and controls

270 lines (226 loc) · 16 KB

Changelog

All notable changes to this project will be documented in this file.

1.1.0

  • Merged Pull Requests

    • ...
  • Resolved Issues

    • ...
  • Known Issues

    • ...

1.0.2

1.0.1

1.0.0

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
  • Known Issues

    • ...

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.7.0

  • 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

0.6.4

0.6.3

  • Major Changes

    • DAQmx 22.0 updates.

0.6.2

  • Major Changes

    • Added NI-DAQmx Power Channel APIs.

0.6.1

0.6.0

  • Resolved Issues

  • Major Changes

    • Add support for most NI-DAQmx 16.1-21.5 APIs.
      • APIs using time data types are not yet supported.
    • Various other improvements:
      • No more empty docstrings on constants.
      • Fix C API function mapping for attributes - dozens were incorrect.
      • Remove some internal-only enumerations that were unused.
      • (compat breaker) Fix two egregious naming issues when translating the API to SNAKE_CASE. M_HZ is now MHZ (megahertz) and <word>m_VOLTS is now MILLIVOLTS.
      • (compat breaker) Fix various constant names that didn't make any sense.
      • Add a header to all auto-generated files indicating that they should not be edited by hand.

0.5.8

0.5.7

0.5.6

0.5.5

  • Resolved Issues

    • Adding lock around argtypes to prevent race condition between setting argtypes and calling functions, in cases the functions run in parallel.
    • Some special cases needed unconditional locks around both the setting of argtypes and the actual function call, like the variadic power-up state functions in system.py, and the register events functions in task.py.

0.5.4

0.5.2

  • Initial public release of nidaqmx
  • Update setup.py description and fix issues 2, 3, 5, and 6 raised by Ed Page.
    • Splitting joined acronyms AIADC, AIDC, AILVDT, AIRVDT and CITC.
    • Adding link to LICENSE file.
    • Updating README.rst file in source directory to eliminate Sphinx domaindirectives and add link to documentation on readthedocs.

0.5.0

  • Initial pre-release of nidaqmx