0.8.0-dev0
Pre-release
Pre-release
-
Merged Pull Requests
- Full changelog: 0.7.0...0.8.0
- Query: Closed PRs with the label: interpreter_implementation
- Query: Closed PRs with the label: library_interpreter
- Query: Closed PRs with the label: grpc_interpreter
- Query: Closed PRs with the label: test_improvements
- Query: Closed PRs with the label: interpreter_fixes
- Query: Closed PRs with the label: interpreter_testcase_update
- Query: Closed PRs with the label: event_handling
-
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-onlygrpc_options
parameter. Pass aGrpcSessionsOptions
object to enable gRPC support. - The
System
class now has aremote()
method which accepts aGrpcSessionOptions
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 initialization methods for
- The following functions now emit
DeprecationWarning
when called:nidaqmx.errors
module:check_for_error
,is_string_buffer_too_small
, andis_array_buffer_too_small
arectypes
-specific helper functions, so they have been moved to an internal module.System
class:set_analog_power_up_states
does not supportPowerUpStates.TRISTATE
andget_analog_power_up_states
has design issues that make the previous implementation unworkable, so they have been deprecated in favor ofset_analog_power_up_states_with_output_type
andget_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 forctypes
vs. gRPC. - Internal initialization methods now accept an
interpreter
parameter. Methods that take aninterpreter
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 intogenerator/nidaqmx/_stubs
. - The internal
nidaqmx._task_modules.read_functions
andnidaqmx._task_modules.write_functions
modules have been removed. If your application uses these modules, you must update it to use public APIs such astask.read()
/task.write()
,task.in_stream.read()
/task.out_stream.write()
, ornidaqmx.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.
- Access to the DAQmx driver is now handled by the internal
- Added support for communicating with DAQmx devices through gRPC using NI gRPC Device Server. This enables using DAQmx with the MeasurementLink session management service.
-
Known Issues
- Comparisons between DAQmx object instances do not take gRPC remoting into account. For example,
Device("Dev1")
refers to a local device andDevice("Dev1", grpc_options=...)
refers to a remote device, but they are considered equal. Likewise, two instances ofDevice("Dev1", grpc_options=...)
with different remote hosts are considered equal.
- Comparisons between DAQmx object instances do not take gRPC remoting into account. For example,