From eabb66a23ac1461173119642dc4e5e00a168960a Mon Sep 17 00:00:00 2001 From: Rahul R Date: Wed, 18 Mar 2026 05:33:56 +0000 Subject: [PATCH 01/20] Initial version --- docs/nirfsg/class.rst | 12 +- docs/nirfsg/errors.rst | 10 + docs/nirfsg/grpc_session_options.rst | 91 + docs/nirfsg/toc.inc | 1 + generated/nirfsg/nirfsg/__init__.py | 1 + .../nirfsg/nirfsg/_grpc_stub_interpreter.py | 586 +++ .../nirfsg/nirfsg/_library_interpreter.py | 1 + generated/nirfsg/nirfsg/errors.py | 14 + .../nirfsg/nirfsg/grpc_session_options.py | 78 + generated/nirfsg/nirfsg/nidevice_pb2.py | 32 + generated/nirfsg/nirfsg/nidevice_pb2_grpc.py | 4 + generated/nirfsg/nirfsg/nirfsg_pb2.py | 530 +++ generated/nirfsg/nirfsg/nirfsg_pb2_grpc.py | 3762 +++++++++++++++++ generated/nirfsg/nirfsg/session.py | 17 +- generated/nirfsg/nirfsg/session_pb2.py | 52 + generated/nirfsg/nirfsg/session_pb2_grpc.py | 204 + generated/nirfsg/setup.py | 6 + generated/nirfsg/tox-system_tests.ini | 1 + src/nirfsg/metadata/attributes.py | 2 +- src/nirfsg/metadata/config.py | 4 +- src/nirfsg/metadata/enums.py | 2 +- src/nirfsg/metadata/functions.py | 7 +- src/nirfsg/metadata/nirfsg.proto | 2066 +++++++++ .../get_deembedding_sparameter.py.mako | 1 + 24 files changed, 7473 insertions(+), 11 deletions(-) create mode 100644 docs/nirfsg/grpc_session_options.rst create mode 100644 generated/nirfsg/nirfsg/_grpc_stub_interpreter.py create mode 100644 generated/nirfsg/nirfsg/grpc_session_options.py create mode 100644 generated/nirfsg/nirfsg/nidevice_pb2.py create mode 100644 generated/nirfsg/nirfsg/nidevice_pb2_grpc.py create mode 100644 generated/nirfsg/nirfsg/nirfsg_pb2.py create mode 100644 generated/nirfsg/nirfsg/nirfsg_pb2_grpc.py create mode 100644 generated/nirfsg/nirfsg/session_pb2.py create mode 100644 generated/nirfsg/nirfsg/session_pb2_grpc.py create mode 100644 src/nirfsg/metadata/nirfsg.proto diff --git a/docs/nirfsg/class.rst b/docs/nirfsg/class.rst index 4013cd025f..6d0cfd285b 100644 --- a/docs/nirfsg/class.rst +++ b/docs/nirfsg/class.rst @@ -3,7 +3,7 @@ Session ======= -.. py:class:: Session(self, resource_name, id_query=False, reset_device=False, options={}) +.. py:class:: Session(self, resource_name, id_query=False, reset_device=False, options={}, *, grpc_options=None) @@ -111,6 +111,16 @@ Session :type options: dict + :param grpc_options: + + + MeasurementLink gRPC session options + + + + + :type grpc_options: nirfsg.GrpcSessionOptions + Methods ======= diff --git a/docs/nirfsg/errors.rst b/docs/nirfsg/errors.rst index 1ff5f65ae3..44bdd892f2 100644 --- a/docs/nirfsg/errors.rst +++ b/docs/nirfsg/errors.rst @@ -77,6 +77,16 @@ SelfTestError An error due to a failed self-test +RpcError +-------- + + .. py:currentmodule:: nirfsg.errors + + .. exception:: RpcError + + An error specific to sessions to the NI gRPC Device Server + + DriverWarning ------------- diff --git a/docs/nirfsg/grpc_session_options.rst b/docs/nirfsg/grpc_session_options.rst new file mode 100644 index 0000000000..73d27acff4 --- /dev/null +++ b/docs/nirfsg/grpc_session_options.rst @@ -0,0 +1,91 @@ +gRPC Support +============ + +Support for using NI-RFSG over gRPC + +.. py:currentmodule:: nirfsg + + + +SessionInitializationBehavior +----------------------------- + +.. py:class:: SessionInitializationBehavior + + .. py:attribute:: SessionInitializationBehavior.AUTO + + + The NI gRPC Device Server will attach to an existing session with the specified name if it exists, + otherwise the server will initialize a new session. + + .. note:: When using the Session as a context manager and the context exits, the behavior depends on what happened when the constructor + was called. If it resulted in a new session being initialized on the NI gRPC Device Server, then it will automatically close the + server session. If it instead attached to an existing session, then it will detach from the server session and leave it open. + + + .. py:attribute:: SessionInitializationBehavior.INITIALIZE_SERVER_SESSION + + + Require the NI gRPC Device Server to initialize a new session with the specified name. + + .. note:: When using the Session as a context manager and the context exits, it will automatically close the + server session. + + + .. py:attribute:: SessionInitializationBehavior.ATTACH_TO_SERVER_SESSION + + + Require the NI gRPC Device Server to attach to an existing session with the specified name. + + .. note:: When using the Session as a context manager and the context exits, it will detach from the server session + and leave it open. + + + +GrpcSessionOptions +------------------ + + +.. py:class:: GrpcSessionOptions(self, grpc_channel, session_name, initialization_behavior=SessionInitializationBehavior.AUTO) + + + Collection of options that specifies session behaviors related to gRPC. + + Creates and returns an object you can pass to a Session constructor. + + + :param grpc_channel: + + + Specifies the channel to the NI gRPC Device Server. + + + + :type grpc_channel: grpc.Channel + + + :param session_name: + + + User-specified name that identifies the driver session on the NI gRPC Device Server. + + This is different from the resource name parameter many APIs take as a separate + parameter. Specifying a name makes it easy to share sessions across multiple gRPC clients. + You can use an empty string if you want to always initialize a new session on the server. + To attach to an existing session, you must specify the session name it was initialized with. + + + + :type session_name: str + + + :param initialization_behavior: + + + Specifies whether it is acceptable to initialize a new session or attach to an existing one, or if only one of the behaviors is desired. + + The driver session exists on the NI gRPC Device Server. + + + + :type initialization_behavior: :py:data:`nirfsg.SessionInitializationBehavior` diff --git a/docs/nirfsg/toc.inc b/docs/nirfsg/toc.inc index baf1751097..300092a6ce 100644 --- a/docs/nirfsg/toc.inc +++ b/docs/nirfsg/toc.inc @@ -8,4 +8,5 @@ API Reference enums errors examples + grpc_session_options diff --git a/generated/nirfsg/nirfsg/__init__.py b/generated/nirfsg/nirfsg/__init__.py index 9ad6710c16..149ab9de44 100644 --- a/generated/nirfsg/nirfsg/__init__.py +++ b/generated/nirfsg/nirfsg/__init__.py @@ -7,6 +7,7 @@ from nirfsg.enums import * # noqa: F403,F401,H303 from nirfsg.errors import DriverWarning # noqa: F401 from nirfsg.errors import Error # noqa: F401 +from nirfsg.grpc_session_options import * # noqa: F403,F401,H303 from nirfsg.session import Session # noqa: F401 diff --git a/generated/nirfsg/nirfsg/_grpc_stub_interpreter.py b/generated/nirfsg/nirfsg/_grpc_stub_interpreter.py new file mode 100644 index 0000000000..708d6d500a --- /dev/null +++ b/generated/nirfsg/nirfsg/_grpc_stub_interpreter.py @@ -0,0 +1,586 @@ +# -*- coding: utf-8 -*- +# This file was generated + +import grpc +import hightime # noqa: F401 +import threading +import warnings + +from . import enums as enums # noqa: F401 +from . import errors as errors +from . import nirfsg_pb2 as grpc_types +from . import nirfsg_pb2_grpc as nirfsg_grpc +from . import session_pb2 as session_grpc_types + + +class GrpcStubInterpreter(object): + '''Interpreter for interacting with a gRPC Stub class''' + + def __init__(self, grpc_options): + self._grpc_options = grpc_options + self._lock = threading.RLock() + self._client = nirfsg_grpc.NiRFSGStub(grpc_options.grpc_channel) + self.set_session_handle() + + def set_session_handle(self, value=session_grpc_types.Session()): + self._vi = value + + def get_session_handle(self): + return self._vi + + def _invoke(self, func, request, metadata=None): + try: + response = func(request, metadata=metadata) + error_code = response.status + error_message = '' + except grpc.RpcError as rpc_error: + error_code = None + error_message = rpc_error.details() + for entry in rpc_error.trailing_metadata() or []: + if entry.key == 'ni-error': + value = entry.value if isinstance(entry.value, str) else entry.value.decode('utf-8') + try: + error_code = int(value) + except ValueError: + error_message += f'\nError status: {value}' + + grpc_error = rpc_error.code() + if grpc_error == grpc.StatusCode.NOT_FOUND: + raise errors.DriverTooOldError() from None + elif grpc_error == grpc.StatusCode.INVALID_ARGUMENT: + raise ValueError(error_message) from None + elif grpc_error == grpc.StatusCode.UNAVAILABLE: + error_message = 'Failed to connect to server' + elif grpc_error == grpc.StatusCode.UNIMPLEMENTED: + error_message = ( + 'This operation is not supported by the NI gRPC Device Server being used. Upgrade NI gRPC Device Server.' + ) + + if error_code is None: + raise errors.RpcError(grpc_error, error_message) from None + + if error_code < 0: + raise errors.DriverError(error_code, error_message) + elif error_code > 0: + if not error_message: + try: + error_message = self.error_message(error_code) + except errors.Error: + error_message = 'Failed to retrieve error description.' + warnings.warn(errors.DriverWarning(error_code, error_message)) + return response + + def abort(self): # noqa: N802 + self._invoke( + self._client.Abort, + grpc_types.AbortRequest(vi=self._vi), + ) + + def allocate_arb_waveform(self, waveform_name, size_in_samples): # noqa: N802 + self._invoke( + self._client.AllocateArbWaveform, + grpc_types.AllocateArbWaveformRequest(vi=self._vi, waveform_name=waveform_name, size_in_samples=size_in_samples), + ) + + def change_external_calibration_password(self, old_password, new_password): # noqa: N802 + self._invoke( + self._client.ChangeExternalCalibrationPassword, + grpc_types.ChangeExternalCalibrationPasswordRequest(vi=self._vi, old_password=old_password, new_password=new_password), + ) + + def check_generation_status(self): # noqa: N802 + response = self._invoke( + self._client.CheckGenerationStatus, + grpc_types.CheckGenerationStatusRequest(vi=self._vi), + ) + return response.is_done + + def check_if_script_exists(self, script_name): # noqa: N802 + response = self._invoke( + self._client.CheckIfScriptExists, + grpc_types.CheckIfScriptExistsRequest(vi=self._vi, script_name=script_name), + ) + return response.script_exists + + def check_if_waveform_exists(self, waveform_name): # noqa: N802 + response = self._invoke( + self._client.CheckIfWaveformExists, + grpc_types.CheckIfWaveformExistsRequest(vi=self._vi, waveform_name=waveform_name), + ) + return response.waveform_exists + + def clear_all_arb_waveforms(self): # noqa: N802 + self._invoke( + self._client.ClearAllArbWaveforms, + grpc_types.ClearAllArbWaveformsRequest(vi=self._vi), + ) + + def clear_arb_waveform(self, waveform_name): # noqa: N802 + self._invoke( + self._client.ClearArbWaveform, + grpc_types.ClearArbWaveformRequest(vi=self._vi, name=waveform_name), + ) + + def clear_self_calibrate_range(self): # noqa: N802 + self._invoke( + self._client.ClearSelfCalibrateRange, + grpc_types.ClearSelfCalibrateRangeRequest(vi=self._vi), + ) + + def commit(self): # noqa: N802 + self._invoke( + self._client.Commit, + grpc_types.CommitRequest(vi=self._vi), + ) + + def configure_deembedding_table_interpolation_linear(self, port, table_name, format): # noqa: N802 + self._invoke( + self._client.ConfigureDeembeddingTableInterpolationLinear, + grpc_types.ConfigureDeembeddingTableInterpolationLinearRequest(vi=self._vi, port=port, table_name=table_name, format_raw=format.value), + ) + + def configure_deembedding_table_interpolation_nearest(self, port, table_name): # noqa: N802 + self._invoke( + self._client.ConfigureDeembeddingTableInterpolationNearest, + grpc_types.ConfigureDeembeddingTableInterpolationNearestRequest(vi=self._vi, port=port, table_name=table_name), + ) + + def configure_deembedding_table_interpolation_spline(self, port, table_name): # noqa: N802 + self._invoke( + self._client.ConfigureDeembeddingTableInterpolationSpline, + grpc_types.ConfigureDeembeddingTableInterpolationSplineRequest(vi=self._vi, port=port, table_name=table_name), + ) + + def configure_digital_edge_script_trigger(self, trigger_id, source, edge): # noqa: N802 + self._invoke( + self._client.ConfigureDigitalEdgeScriptTrigger, + grpc_types.ConfigureDigitalEdgeScriptTriggerRequest(vi=self._vi, trigger_id_raw=trigger_id, source_raw=source, edge_raw=edge.value), + ) + + def configure_digital_edge_start_trigger(self, source, edge): # noqa: N802 + self._invoke( + self._client.ConfigureDigitalEdgeStartTrigger, + grpc_types.ConfigureDigitalEdgeStartTriggerRequest(vi=self._vi, source_raw=source, edge_raw=edge.value), + ) + + def configure_digital_level_script_trigger(self, trigger_id, source, level): # noqa: N802 + self._invoke( + self._client.ConfigureDigitalLevelScriptTrigger, + grpc_types.ConfigureDigitalLevelScriptTriggerRequest(vi=self._vi, trigger_id_raw=trigger_id, source=source, level=level), + ) + + def configure_rf(self, frequency, power_level): # noqa: N802 + self._invoke( + self._client.ConfigureRF, + grpc_types.ConfigureRFRequest(vi=self._vi, frequency=frequency, power_level=power_level), + ) + + def configure_ref_clock(self, ref_clock_source, ref_clock_rate): # noqa: N802 + self._invoke( + self._client.ConfigureRefClock, + grpc_types.ConfigureRefClockRequest(vi=self._vi, ref_clock_source=ref_clock_source, ref_clock_rate=ref_clock_rate), + ) + + def configure_software_script_trigger(self, trigger_id): # noqa: N802 + self._invoke( + self._client.ConfigureSoftwareScriptTrigger, + grpc_types.ConfigureSoftwareScriptTriggerRequest(vi=self._vi, trigger_id_raw=trigger_id), + ) + + def configure_software_start_trigger(self): # noqa: N802 + self._invoke( + self._client.ConfigureSoftwareStartTrigger, + grpc_types.ConfigureSoftwareStartTriggerRequest(vi=self._vi), + ) + + def create_deembedding_sparameter_table_array(self, port, table_name, frequencies, sparameter_table, number_of_ports, sparameter_orientation): # noqa: N802 + raise NotImplementedError('numpy-specific methods are not supported over gRPC') + + def create_deembedding_sparameter_table_s2p_file(self, port, table_name, s2p_file_path, sparameter_orientation): # noqa: N802 + self._invoke( + self._client.CreateDeembeddingSparameterTableS2PFile, + grpc_types.CreateDeembeddingSparameterTableS2PFileRequest(vi=self._vi, port=port, table_name=table_name, s2p_file_path=s2p_file_path, sparameter_orientation_raw=sparameter_orientation.value), + ) + + def delete_all_deembedding_tables(self): # noqa: N802 + self._invoke( + self._client.DeleteAllDeembeddingTables, + grpc_types.DeleteAllDeembeddingTablesRequest(vi=self._vi), + ) + + def delete_deembedding_table(self, port, table_name): # noqa: N802 + self._invoke( + self._client.DeleteDeembeddingTable, + grpc_types.DeleteDeembeddingTableRequest(vi=self._vi, port=port, table_name=table_name), + ) + + def delete_script(self, script_name): # noqa: N802 + self._invoke( + self._client.DeleteScript, + grpc_types.DeleteScriptRequest(vi=self._vi, script_name=script_name), + ) + + def disable_script_trigger(self, trigger_id): # noqa: N802 + self._invoke( + self._client.DisableScriptTrigger, + grpc_types.DisableScriptTriggerRequest(vi=self._vi, trigger_id_raw=trigger_id), + ) + + def disable_start_trigger(self): # noqa: N802 + self._invoke( + self._client.DisableStartTrigger, + grpc_types.DisableStartTriggerRequest(vi=self._vi), + ) + + def error_message(self, error_code, error_message): # noqa: N802 + self._invoke( + self._client.ErrorMessage, + grpc_types.ErrorMessageRequest(vi=self._vi, error_code=error_code, error_message=error_message), + ) + + def get_all_named_waveform_names(self): # noqa: N802 + response = self._invoke( + self._client.GetAllNamedWaveformNames, + grpc_types.GetAllNamedWaveformNamesRequest(vi=self._vi), + ) + return response.waveform_names + + def get_all_script_names(self): # noqa: N802 + response = self._invoke( + self._client.GetAllScriptNames, + grpc_types.GetAllScriptNamesRequest(vi=self._vi), + ) + return response.script_names + + def get_attribute_vi_boolean(self, channel_name, attribute): # noqa: N802 + response = self._invoke( + self._client.GetAttributeViBoolean, + grpc_types.GetAttributeViBooleanRequest(vi=self._vi, channel_name=channel_name, attribute_id=attribute), + ) + return response.value + + def get_attribute_vi_int32(self, channel_name, attribute): # noqa: N802 + response = self._invoke( + self._client.GetAttributeViInt32, + grpc_types.GetAttributeViInt32Request(vi=self._vi, channel_name=channel_name, attribute_id=attribute), + ) + return response.value + + def get_attribute_vi_int64(self, channel_name, attribute): # noqa: N802 + response = self._invoke( + self._client.GetAttributeViInt64, + grpc_types.GetAttributeViInt64Request(vi=self._vi, channel_name=channel_name, attribute_id=attribute), + ) + return response.value + + def get_attribute_vi_real64(self, channel_name, attribute): # noqa: N802 + response = self._invoke( + self._client.GetAttributeViReal64, + grpc_types.GetAttributeViReal64Request(vi=self._vi, channel_name=channel_name, attribute_id=attribute), + ) + return response.value + + def get_attribute_vi_session(self, channel_name, attribute): # noqa: N802 + response = self._invoke( + self._client.GetAttributeViSession, + grpc_types.GetAttributeViSessionRequest(vi=self._vi, channel_name=channel_name, attribute_id=attribute), + ) + return response.value + + def get_attribute_vi_string(self, channel_name, attribute): # noqa: N802 + response = self._invoke( + self._client.GetAttributeViString, + grpc_types.GetAttributeViStringRequest(vi=self._vi, channel_name=channel_name, attribute_id=attribute), + ) + return response.value + + def get_deembedding_sparameters(self): + import numpy as np + response = self._invoke( + self._client.GetDeembeddingSparameters, + grpc_types.GetDeembeddingSparametersRequest(vi=self._vi), + ) + number_of_ports = response.number_of_ports + sparameters = np.array([c.real + 1j * c.imaginary for c in response.sparameters], dtype=np.complex128) + sparameters = sparameters.reshape((number_of_ports, number_of_ports)) + return sparameters + + def get_deembedding_table_number_of_ports(self): # noqa: N802 + response = self._invoke( + self._client.GetDeembeddingTableNumberOfPorts, + grpc_types.GetDeembeddingTableNumberOfPortsRequest(vi=self._vi), + ) + return response.number_of_ports + + def get_error(self): # noqa: N802 + response = self._invoke( + self._client.GetError, + grpc_types.GetErrorRequest(vi=self._vi), + ) + return response.error_code, response.error_description + + def get_external_calibration_last_date_and_time(self): # noqa: N802 + response = self._invoke( + self._client.GetExternalCalibrationLastDateAndTime, + grpc_types.GetExternalCalibrationLastDateAndTimeRequest(vi=self._vi), + ) + return response.year, response.month, response.day, response.hour, response.minute, response.second + + def get_max_settable_power(self): # noqa: N802 + response = self._invoke( + self._client.GetMaxSettablePower, + grpc_types.GetMaxSettablePowerRequest(vi=self._vi), + ) + return response.value + + def get_script(self, script_name): # noqa: N802 + response = self._invoke( + self._client.GetScript, + grpc_types.GetScriptRequest(vi=self._vi, script_name=script_name), + ) + return response.script + + def get_self_calibration_date_and_time(self, module): # noqa: N802 + response = self._invoke( + self._client.GetSelfCalibrationDateAndTime, + grpc_types.GetSelfCalibrationDateAndTimeRequest(vi=self._vi, module=module.value), + ) + return response.year, response.month, response.day, response.hour, response.minute, response.second + + def get_self_calibration_temperature(self, module): # noqa: N802 + response = self._invoke( + self._client.GetSelfCalibrationTemperature, + grpc_types.GetSelfCalibrationTemperatureRequest(vi=self._vi, module_raw=module.value), + ) + return response.temperature + + def get_terminal_name(self, signal, signal_identifier): # noqa: N802 + response = self._invoke( + self._client.GetTerminalName, + grpc_types.GetTerminalNameRequest(vi=self._vi, signal_raw=signal.value, signal_identifier_raw=signal_identifier), + ) + return response.terminal_name + + def get_waveform_burst_start_locations(self, channel_name): # noqa: N802 + response = self._invoke( + self._client.GetWaveformBurstStartLocations, + grpc_types.GetWaveformBurstStartLocationsRequest(vi=self._vi, channel_name=channel_name), + ) + return response.locations + + def get_waveform_burst_stop_locations(self, channel_name): # noqa: N802 + response = self._invoke( + self._client.GetWaveformBurstStopLocations, + grpc_types.GetWaveformBurstStopLocationsRequest(vi=self._vi, channel_name=channel_name), + ) + return response.locations + + def get_waveform_marker_event_locations(self, channel_name): # noqa: N802 + response = self._invoke( + self._client.GetWaveformMarkerEventLocations, + grpc_types.GetWaveformMarkerEventLocationsRequest(vi=self._vi, channel_name=channel_name), + ) + return response.locations + + def init_with_options(self, resource_name, id_query, reset_device, option_string): # noqa: N802 + metadata = ( + ('ni-api-key', self._grpc_options.api_key), + ) + response = self._invoke( + self._client.InitWithOptions, + grpc_types.InitWithOptionsRequest(resource_name=resource_name, id_query=id_query, reset_device=reset_device, option_string=option_string, session_name=self._grpc_options.session_name, initialization_behavior=self._grpc_options.initialization_behavior), + metadata=metadata, + ) + self._close_on_exit = response.new_session_initialized + return response.vi + + def initiate(self): # noqa: N802 + self._invoke( + self._client.Initiate, + grpc_types.InitiateRequest(vi=self._vi), + ) + + def load_configurations_from_file(self, channel_name, file_path): # noqa: N802 + self._invoke( + self._client.LoadConfigurationsFromFile, + grpc_types.LoadConfigurationsFromFileRequest(vi=self._vi, channel_name=channel_name, file_path=file_path), + ) + + def lock(self): # noqa: N802 + self._lock.acquire() + + def perform_power_search(self): # noqa: N802 + self._invoke( + self._client.PerformPowerSearch, + grpc_types.PerformPowerSearchRequest(vi=self._vi), + ) + + def perform_thermal_correction(self): # noqa: N802 + self._invoke( + self._client.PerformThermalCorrection, + grpc_types.PerformThermalCorrectionRequest(vi=self._vi), + ) + + def query_arb_waveform_capabilities(self): # noqa: N802 + response = self._invoke( + self._client.QueryArbWaveformCapabilities, + grpc_types.QueryArbWaveformCapabilitiesRequest(vi=self._vi), + ) + return response.max_number_waveforms, response.waveform_quantum, response.min_waveform_size, response.max_waveform_size + + def read_and_download_waveform_from_file_tdms(self, waveform_name, file_path, waveform_index): # noqa: N802 + self._invoke( + self._client.ReadAndDownloadWaveformFromFileTDMS, + grpc_types.ReadAndDownloadWaveformFromFileTDMSRequest(vi=self._vi, waveform_name=waveform_name, file_path=file_path, waveform_index=waveform_index), + ) + + def reset_device(self): # noqa: N802 + self._invoke( + self._client.ResetDevice, + grpc_types.ResetDeviceRequest(vi=self._vi), + ) + + def reset_with_defaults(self): # noqa: N802 + self._invoke( + self._client.ResetWithDefaults, + grpc_types.ResetWithDefaultsRequest(vi=self._vi), + ) + + def reset_with_options(self, steps_to_omit): # noqa: N802 + self._invoke( + self._client.ResetWithOptions, + grpc_types.ResetWithOptionsRequest(vi=self._vi, steps_to_omit_raw=steps_to_omit.value), + ) + + def save_configurations_to_file(self, channel_name, file_path): # noqa: N802 + self._invoke( + self._client.SaveConfigurationsToFile, + grpc_types.SaveConfigurationsToFileRequest(vi=self._vi, channel_name=channel_name, file_path=file_path), + ) + + def select_arb_waveform(self, waveform_name): # noqa: N802 + self._invoke( + self._client.SelectArbWaveform, + grpc_types.SelectArbWaveformRequest(vi=self._vi, name=waveform_name), + ) + + def self_cal(self): # noqa: N802 + self._invoke( + self._client.SelfCal, + grpc_types.SelfCalRequest(vi=self._vi), + ) + + def self_calibrate_range(self, steps_to_omit, min_frequency, max_frequency, min_power_level, max_power_level): # noqa: N802 + self._invoke( + self._client.SelfCalibrateRange, + grpc_types.SelfCalibrateRangeRequest(vi=self._vi, steps_to_omit_raw=steps_to_omit.value, min_frequency=min_frequency, max_frequency=max_frequency, min_power_level=min_power_level, max_power_level=max_power_level), + ) + + def send_software_edge_trigger(self, trigger, trigger_identifier): # noqa: N802 + self._invoke( + self._client.SendSoftwareEdgeTrigger, + grpc_types.SendSoftwareEdgeTriggerRequest(vi=self._vi, trigger_raw=trigger.value, trigger_identifier_raw=trigger_identifier.value), + ) + + def set_arb_waveform_next_write_position(self, waveform_name, relative_to, offset): # noqa: N802 + self._invoke( + self._client.SetArbWaveformNextWritePosition, + grpc_types.SetArbWaveformNextWritePositionRequest(vi=self._vi, waveform_name=waveform_name, relative_to_raw=relative_to.value, offset=offset), + ) + + def set_attribute_vi_boolean(self, channel_name, attribute, value): # noqa: N802 + self._invoke( + self._client.SetAttributeViBoolean, + grpc_types.SetAttributeViBooleanRequest(vi=self._vi, channel_name=channel_name, attribute_id=attribute, value=value), + ) + + def set_attribute_vi_int32(self, channel_name, attribute, value): # noqa: N802 + self._invoke( + self._client.SetAttributeViInt32, + grpc_types.SetAttributeViInt32Request(vi=self._vi, channel_name=channel_name, attribute_id=attribute, value_raw=value), + ) + + def set_attribute_vi_int64(self, channel_name, attribute, value): # noqa: N802 + self._invoke( + self._client.SetAttributeViInt64, + grpc_types.SetAttributeViInt64Request(vi=self._vi, channel_name=channel_name, attribute_id=attribute, value_raw=value), + ) + + def set_attribute_vi_real64(self, channel_name, attribute, value): # noqa: N802 + self._invoke( + self._client.SetAttributeViReal64, + grpc_types.SetAttributeViReal64Request(vi=self._vi, channel_name=channel_name, attribute_id=attribute, value_raw=value), + ) + + def set_attribute_vi_session(self, channel_name, attribute): # noqa: N802 + self._invoke( + self._client.SetAttributeViSession, + grpc_types.SetAttributeViSessionRequest(vi=self._vi, channel_name=channel_name, attribute_id=attribute, value=self._vi), + ) + + def set_attribute_vi_string(self, channel_name, attribute, value): # noqa: N802 + self._invoke( + self._client.SetAttributeViString, + grpc_types.SetAttributeViStringRequest(vi=self._vi, channel_name=channel_name, attribute_id=attribute, value_raw=value), + ) + + def set_waveform_burst_start_locations(self, channel_name, locations): # noqa: N802 + self._invoke( + self._client.SetWaveformBurstStartLocations, + grpc_types.SetWaveformBurstStartLocationsRequest(vi=self._vi, channel_name=channel_name, locations=locations), + ) + + def set_waveform_burst_stop_locations(self, channel_name, locations): # noqa: N802 + self._invoke( + self._client.SetWaveformBurstStopLocations, + grpc_types.SetWaveformBurstStopLocationsRequest(vi=self._vi, channel_name=channel_name, locations=locations), + ) + + def set_waveform_marker_event_locations(self, channel_name, locations): # noqa: N802 + self._invoke( + self._client.SetWaveformMarkerEventLocations, + grpc_types.SetWaveformMarkerEventLocationsRequest(vi=self._vi, channel_name=channel_name, locations=locations), + ) + + def unlock(self): # noqa: N802 + self._lock.release() + + def wait_until_settled(self, max_time_milliseconds): # noqa: N802 + self._invoke( + self._client.WaitUntilSettled, + grpc_types.WaitUntilSettledRequest(vi=self._vi, max_time_milliseconds=max_time_milliseconds), + ) + + def write_arb_waveform_complex_f32(self, waveform_name, waveform_data_array, more_data_pending): # noqa: N802 + raise NotImplementedError('numpy-specific methods are not supported over gRPC') + + def write_arb_waveform_complex_f64(self, waveform_name, waveform_data_array, more_data_pending): # noqa: N802 + raise NotImplementedError('numpy-specific methods are not supported over gRPC') + + def write_arb_waveform_complex_i16(self, waveform_name, waveform_data_array): # noqa: N802 + raise NotImplementedError('numpy-specific methods are not supported over gRPC') + + def write_script(self, script): # noqa: N802 + self._invoke( + self._client.WriteScript, + grpc_types.WriteScriptRequest(vi=self._vi, script=script), + ) + + def close(self): # noqa: N802 + self._invoke( + self._client.Close, + grpc_types.CloseRequest(vi=self._vi), + ) + + def reset(self): # noqa: N802 + self._invoke( + self._client.Reset, + grpc_types.ResetRequest(vi=self._vi), + ) + + def self_test(self): # noqa: N802 + response = self._invoke( + self._client.SelfTest, + grpc_types.SelfTestRequest(vi=self._vi), + ) + return response.self_test_result, response.self_test_message diff --git a/generated/nirfsg/nirfsg/_library_interpreter.py b/generated/nirfsg/nirfsg/_library_interpreter.py index 631766ffa4..1b3f9e820d 100644 --- a/generated/nirfsg/nirfsg/_library_interpreter.py +++ b/generated/nirfsg/nirfsg/_library_interpreter.py @@ -547,6 +547,7 @@ def init_with_options(self, resource_name, id_query, reset_device, option_string new_vi_ctype = _visatype.ViSession() # case S220 error_code = self._library.niRFSG_InitWithOptions(resource_name_ctype, id_query_ctype, reset_device_ctype, option_string_ctype, None if new_vi_ctype is None else (ctypes.pointer(new_vi_ctype))) errors.handle_error(self, error_code, ignore_warnings=False, is_error_handling=False) + self._close_on_exit = True return int(new_vi_ctype.value) def initiate(self): # noqa: N802 diff --git a/generated/nirfsg/nirfsg/errors.py b/generated/nirfsg/nirfsg/errors.py index 3212823321..d4ec849c58 100644 --- a/generated/nirfsg/nirfsg/errors.py +++ b/generated/nirfsg/nirfsg/errors.py @@ -43,6 +43,20 @@ def __init__(self, code, description): super(DriverWarning, self).__init__('Warning {} occurred.\n\n{}'.format(code, description)) +class RpcError(Error): + '''An error specific to sessions to the NI gRPC Device Server''' + + def __init__(self, rpc_code, description): + self.rpc_code = rpc_code + self.description = description + try: + import grpc + rpc_error = str(grpc.StatusCode(self.rpc_code)) + except Exception: + rpc_error = str(self.rpc_code) + super(RpcError, self).__init__(rpc_error + ": " + self.description) + + class UnsupportedConfigurationError(Error): '''An error due to using this module in an usupported platform.''' diff --git a/generated/nirfsg/nirfsg/grpc_session_options.py b/generated/nirfsg/nirfsg/grpc_session_options.py new file mode 100644 index 0000000000..0af1fad055 --- /dev/null +++ b/generated/nirfsg/nirfsg/grpc_session_options.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- +# This file was generated + +from enum import IntEnum + + +# This constant specifies the gRPC package and service used by this API. +# Customers can pass this value to the MeasurementLink discovery service to resolve the server instance that provides this interface. +GRPC_SERVICE_INTERFACE_NAME = 'nirfsg_grpc.NiRFSG' + +# This constant specifies the API license key required by the NI gRPC Device Server that comes with +# MeasurementLink 2023 Q1. +MEASUREMENTLINK_23Q1_NIMI_PYTHON_API_KEY = 'DE10751B-3EE0-44EC-A93B-800E6A3C89E4' + + +class SessionInitializationBehavior(IntEnum): + AUTO = 0 + r''' + The NI gRPC Device Server will attach to an existing session with the specified name if it exists, otherwise the server + will initialize a new session. + + Note: + When using the Session as a context manager and the context exits, the behavior depends on what happened when the constructor + was called. If it resulted in a new session being initialized on the NI gRPC Device Server, then it will automatically close the + server session. If it instead attached to an existing session, then it will detach from the server session and leave it open. + ''' + INITIALIZE_SERVER_SESSION = 1 + r''' + Require the NI gRPC Device Server to initialize a new session with the specified name. + + Note: + When using the Session as a context manager and the context exits, it will automatically close the + server session. + ''' + ATTACH_TO_SERVER_SESSION = 2 + r''' + Require the NI gRPC Device Server to attach to an existing session with the specified name. + + Note: + When using the Session as a context manager and the context exits, it will detach from the server session + and leave it open. + ''' + + +class GrpcSessionOptions(object): + '''Collection of options that specifies session behaviors related to gRPC.''' + + def __init__( + self, + grpc_channel, + session_name, + *, + api_key=MEASUREMENTLINK_23Q1_NIMI_PYTHON_API_KEY, + initialization_behavior=SessionInitializationBehavior.AUTO + ): + r'''Collection of options that specifies session behaviors related to gRPC. + + Creates and returns an object you can pass to a Session constructor. + + Args: + grpc_channel (grpc.Channel): Specifies the channel to the NI gRPC Device Server. + + session_name (str): User-specified name that identifies the driver session on the NI gRPC Device + Server. This is different from the resource name parameter many APIs take as a separate + parameter. Specifying a name makes it easy to share sessions across multiple gRPC clients. + You can use an empty string if you want to always initialize a new session on the server. + To attach to an existing session, you must specify the session name it was initialized with. + + api_key (str): Specifies the API license key required by the NI gRPC Device Server. + + initialization_behavior (enum): Specifies whether it is acceptable to initialize a new + session or attach to an existing one, or if only one of the behaviors is desired. + The driver session exists on the NI gRPC Device Server. + ''' + self.grpc_channel = grpc_channel + self.session_name = session_name + self.api_key = api_key + self.initialization_behavior = initialization_behavior diff --git a/generated/nirfsg/nirfsg/nidevice_pb2.py b/generated/nirfsg/nirfsg/nidevice_pb2.py new file mode 100644 index 0000000000..d7fff4491d --- /dev/null +++ b/generated/nirfsg/nirfsg/nidevice_pb2.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: nidevice.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0enidevice.proto\x12\rnidevice_grpc\"2\n\x0fNIComplexNumber\x12\x0c\n\x04real\x18\x01 \x01(\x01\x12\x11\n\timaginary\x18\x02 \x01(\x01\"5\n\x12NIComplexNumberF32\x12\x0c\n\x04real\x18\x01 \x01(\x02\x12\x11\n\timaginary\x18\x02 \x01(\x02\"/\n\x0cNIComplexI16\x12\x0c\n\x04real\x18\x01 \x01(\x11\x12\x11\n\timaginary\x18\x02 \x01(\x11\"r\n\x0fSmtSpectrumInfo\x12\x15\n\rspectrum_type\x18\x01 \x01(\r\x12\x11\n\tlinear_db\x18\x02 \x01(\r\x12\x0e\n\x06window\x18\x03 \x01(\r\x12\x13\n\x0bwindow_size\x18\x04 \x01(\x11\x12\x10\n\x08\x66\x66t_size\x18\x05 \x01(\x11\x42\x42\n\x12\x63om.ni.grpc.deviceB\x08NiDeviceP\x01\xaa\x02\x1fNationalInstruments.Grpc.Deviceb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'nidevice_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.ni.grpc.deviceB\010NiDeviceP\001\252\002\037NationalInstruments.Grpc.Device' + _globals['_NICOMPLEXNUMBER']._serialized_start=33 + _globals['_NICOMPLEXNUMBER']._serialized_end=83 + _globals['_NICOMPLEXNUMBERF32']._serialized_start=85 + _globals['_NICOMPLEXNUMBERF32']._serialized_end=138 + _globals['_NICOMPLEXI16']._serialized_start=140 + _globals['_NICOMPLEXI16']._serialized_end=187 + _globals['_SMTSPECTRUMINFO']._serialized_start=189 + _globals['_SMTSPECTRUMINFO']._serialized_end=303 +# @@protoc_insertion_point(module_scope) diff --git a/generated/nirfsg/nirfsg/nidevice_pb2_grpc.py b/generated/nirfsg/nirfsg/nidevice_pb2_grpc.py new file mode 100644 index 0000000000..2daafffebf --- /dev/null +++ b/generated/nirfsg/nirfsg/nidevice_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/generated/nirfsg/nirfsg/nirfsg_pb2.py b/generated/nirfsg/nirfsg/nirfsg_pb2.py new file mode 100644 index 0000000000..30cdd81327 --- /dev/null +++ b/generated/nirfsg/nirfsg/nirfsg_pb2.py @@ -0,0 +1,530 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: nirfsg.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from . import nidevice_pb2 as nidevice__pb2 +from . import session_pb2 as session__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cnirfsg.proto\x12\x0bnirfsg_grpc\x1a\x0enidevice.proto\x1a\rsession.proto\"2\n\x0c\x41\x62ortRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x1f\n\rAbortResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"p\n\x1a\x41llocateArbWaveformRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rwaveform_name\x18\x02 \x01(\t\x12\x17\n\x0fsize_in_samples\x18\x03 \x01(\x11\"-\n\x1b\x41llocateArbWaveformResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x9d\x01\n\x1e\x43heckAttributeViBooleanRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\x12\r\n\x05value\x18\x04 \x01(\x08\"1\n\x1f\x43heckAttributeViBooleanResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xe9\x01\n\x1c\x43heckAttributeViInt32Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\x12\x38\n\x05value\x18\x04 \x01(\x0e\x32\'.nirfsg_grpc.NiRFSGInt32AttributeValuesH\x00\x12\x13\n\tvalue_raw\x18\x05 \x01(\x11H\x00\x42\x0c\n\nvalue_enum\"/\n\x1d\x43heckAttributeViInt32Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x9f\x01\n\x1c\x43heckAttributeViInt64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\x12\x11\n\tvalue_raw\x18\x04 \x01(\x03\"/\n\x1d\x43heckAttributeViInt64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xeb\x01\n\x1d\x43heckAttributeViReal64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\x12\x39\n\x05value\x18\x04 \x01(\x0e\x32(.nirfsg_grpc.NiRFSGReal64AttributeValuesH\x00\x12\x13\n\tvalue_raw\x18\x05 \x01(\x01H\x00\x42\x0c\n\nvalue_enum\"0\n\x1e\x43heckAttributeViReal64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xb5\x01\n\x1e\x43heckAttributeViSessionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\x12%\n\x05value\x18\x04 \x01(\x0b\x32\x16.nidevice_grpc.Session\"1\n\x1f\x43heckAttributeViSessionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xf8\x01\n\x1d\x43heckAttributeViStringRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\x12\x46\n\x0cvalue_mapped\x18\x04 \x01(\x0e\x32..nirfsg_grpc.NiRFSGStringAttributeValuesMappedH\x00\x12\x13\n\tvalue_raw\x18\x05 \x01(\tH\x00\x42\x0c\n\nvalue_enum\"0\n\x1e\x43heckAttributeViStringResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"B\n\x1c\x43heckGenerationStatusRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"@\n\x1d\x43heckGenerationStatusResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0f\n\x07is_done\x18\x02 \x01(\x08\"^\n%CheckIfConfigurationListExistsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x11\n\tlist_name\x18\x02 \x01(\t\"M\n&CheckIfConfigurationListExistsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x13\n\x0blist_exists\x18\x02 \x01(\x08\"U\n\x1a\x43heckIfScriptExistsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x13\n\x0bscript_name\x18\x02 \x01(\t\"D\n\x1b\x43heckIfScriptExistsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\rscript_exists\x18\x02 \x01(\x08\"Y\n\x1c\x43heckIfWaveformExistsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rwaveform_name\x18\x02 \x01(\t\"H\n\x1d\x43heckIfWaveformExistsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x17\n\x0fwaveform_exists\x18\x02 \x01(\x08\"A\n\x1b\x43learAllArbWaveformsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\".\n\x1c\x43learAllArbWaveformsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"K\n\x17\x43learArbWaveformRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0c\n\x04name\x18\x02 \x01(\t\"*\n\x18\x43learArbWaveformResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"7\n\x11\x43learErrorRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"$\n\x12\x43learErrorResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"D\n\x1e\x43learSelfCalibrateRangeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"1\n\x1f\x43learSelfCalibrateRangeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"2\n\x0c\x43loseRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x1f\n\rCloseResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"3\n\rCommitRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\" \n\x0e\x43ommitResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xda\x01\n3ConfigureDeembeddingTableInterpolationLinearRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0c\n\x04port\x18\x02 \x01(\t\x12\x12\n\ntable_name\x18\x03 \x01(\t\x12\x38\n\x06\x66ormat\x18\x04 \x01(\x0e\x32&.nirfsg_grpc.LinearInterpolationFormatH\x00\x12\x14\n\nformat_raw\x18\x05 \x01(\x11H\x00\x42\r\n\x0b\x66ormat_enum\"F\n4ConfigureDeembeddingTableInterpolationLinearResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"|\n4ConfigureDeembeddingTableInterpolationNearestRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0c\n\x04port\x18\x02 \x01(\t\x12\x12\n\ntable_name\x18\x03 \x01(\t\"G\n5ConfigureDeembeddingTableInterpolationNearestResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"{\n3ConfigureDeembeddingTableInterpolationSplineRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0c\n\x04port\x18\x02 \x01(\t\x12\x12\n\ntable_name\x18\x03 \x01(\t\"F\n4ConfigureDeembeddingTableInterpolationSplineResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xa6\x02\n7ConfigureDigitalEdgeConfigurationListStepTriggerRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12S\n\rsource_mapped\x18\x02 \x01(\x0e\x32:.nirfsg_grpc.DigitalEdgeConfigurationListStepTriggerSourceH\x00\x12\x14\n\nsource_raw\x18\x03 \x01(\tH\x00\x12,\n\x04\x65\x64ge\x18\x04 \x01(\x0e\x32\x1c.nirfsg_grpc.DigitalEdgeEdgeH\x01\x12\x12\n\x08\x65\x64ge_raw\x18\x05 \x01(\x11H\x01\x42\r\n\x0bsource_enumB\x0b\n\tedge_enum\"J\n8ConfigureDigitalEdgeConfigurationListStepTriggerResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xf2\x02\n(ConfigureDigitalEdgeScriptTriggerRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12L\n\x11trigger_id_mapped\x18\x02 \x01(\x0e\x32/.nirfsg_grpc.DigitalEdgeScriptTriggerIdentifierH\x00\x12\x18\n\x0etrigger_id_raw\x18\x03 \x01(\tH\x00\x12\x33\n\rsource_mapped\x18\x04 \x01(\x0e\x32\x1a.nirfsg_grpc.TriggerSourceH\x01\x12\x14\n\nsource_raw\x18\x05 \x01(\tH\x01\x12,\n\x04\x65\x64ge\x18\x06 \x01(\x0e\x32\x1c.nirfsg_grpc.DigitalEdgeEdgeH\x02\x12\x12\n\x08\x65\x64ge_raw\x18\x07 \x01(\x11H\x02\x42\x11\n\x0ftrigger_id_enumB\r\n\x0bsource_enumB\x0b\n\tedge_enum\";\n)ConfigureDigitalEdgeScriptTriggerResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xf6\x01\n\'ConfigureDigitalEdgeStartTriggerRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x33\n\rsource_mapped\x18\x02 \x01(\x0e\x32\x1a.nirfsg_grpc.TriggerSourceH\x00\x12\x14\n\nsource_raw\x18\x03 \x01(\tH\x00\x12,\n\x04\x65\x64ge\x18\x04 \x01(\x0e\x32\x1c.nirfsg_grpc.DigitalEdgeEdgeH\x01\x12\x12\n\x08\x65\x64ge_raw\x18\x05 \x01(\x11H\x01\x42\r\n\x0bsource_enumB\x0b\n\tedge_enum\":\n(ConfigureDigitalEdgeStartTriggerResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xfe\x02\n)ConfigureDigitalLevelScriptTriggerRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12L\n\x11trigger_id_mapped\x18\x02 \x01(\x0e\x32/.nirfsg_grpc.DigitalEdgeScriptTriggerIdentifierH\x00\x12\x18\n\x0etrigger_id_raw\x18\x03 \x01(\tH\x00\x12\x33\n\rsource_mapped\x18\x04 \x01(\x0e\x32\x1a.nirfsg_grpc.TriggerSourceH\x01\x12\x14\n\nsource_raw\x18\x05 \x01(\tH\x01\x12\x35\n\x05level\x18\x06 \x01(\x0e\x32$.nirfsg_grpc.DigitalLevelActiveLevelH\x02\x12\x13\n\tlevel_raw\x18\x07 \x01(\x11H\x02\x42\x11\n\x0ftrigger_id_enumB\r\n\x0bsource_enumB\x0c\n\nlevel_enum\"<\n*ConfigureDigitalLevelScriptTriggerResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"y\n4ConfigureDigitalModulationUserDefinedWaveformRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1d\n\x15user_defined_waveform\x18\x02 \x01(\x0c\"G\n5ConfigureDigitalModulationUserDefinedWaveformResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xb3\x01\n\x1e\x43onfigureGenerationModeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x36\n\x0fgeneration_mode\x18\x02 \x01(\x0e\x32\x1b.nirfsg_grpc.GenerationModeH\x00\x12\x1d\n\x13generation_mode_raw\x18\x03 \x01(\x11H\x00\x42\x16\n\x14generation_mode_enum\"1\n\x1f\x43onfigureGenerationModeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"[\n\x1d\x43onfigureOutputEnabledRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x16\n\x0eoutput_enabled\x18\x02 \x01(\x08\"0\n\x1e\x43onfigureOutputEnabledResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"z\n/ConfigureP2PEndpointFullnessStartTriggerRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12#\n\x1bp2p_endpoint_fullness_level\x18\x02 \x01(\x03\"B\n0ConfigureP2PEndpointFullnessStartTriggerResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xbf\x01\n\x1f\x43onfigurePXIChassisClk10Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12?\n\x17pxi_clk10_source_mapped\x18\x02 \x01(\x0e\x32\x1c.nirfsg_grpc.PXIChassisClk10H\x00\x12\x1e\n\x14pxi_clk10_source_raw\x18\x03 \x01(\tH\x00\x42\x17\n\x15pxi_clk10_source_enum\"2\n ConfigurePXIChassisClk10Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xb6\x01\n\x1e\x43onfigurePowerLevelTypeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x37\n\x10power_level_type\x18\x02 \x01(\x0e\x32\x1b.nirfsg_grpc.PowerLevelTypeH\x00\x12\x1e\n\x14power_level_type_raw\x18\x03 \x01(\x11H\x00\x42\x17\n\x15power_level_type_enum\"1\n\x1f\x43onfigurePowerLevelTypeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"`\n\x12\x43onfigureRFRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x11\n\tfrequency\x18\x02 \x01(\x01\x12\x13\n\x0bpower_level\x18\x03 \x01(\x01\"%\n\x13\x43onfigureRFResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xcf\x01\n\x18\x43onfigureRefClockRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12>\n\x17ref_clock_source_mapped\x18\x02 \x01(\x0e\x32\x1b.nirfsg_grpc.RefClockSourceH\x00\x12\x1e\n\x14ref_clock_source_raw\x18\x03 \x01(\tH\x00\x12\x16\n\x0eref_clock_rate\x18\x04 \x01(\x01\x42\x17\n\x15ref_clock_source_enum\"+\n\x19\x43onfigureRefClockResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"_\n\x1f\x43onfigureSignalBandwidthRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x18\n\x10signal_bandwidth\x18\x02 \x01(\x01\"2\n ConfigureSignalBandwidthResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xc6\x01\n%ConfigureSoftwareScriptTriggerRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12L\n\x11trigger_id_mapped\x18\x02 \x01(\x0e\x32/.nirfsg_grpc.DigitalEdgeScriptTriggerIdentifierH\x00\x12\x18\n\x0etrigger_id_raw\x18\x03 \x01(\tH\x00\x42\x11\n\x0ftrigger_id_enum\"8\n&ConfigureSoftwareScriptTriggerResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"J\n$ConfigureSoftwareStartTriggerRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"7\n%ConfigureSoftwareStartTriggerResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x86\x01\n*ConfigureUpconverterPLLSettlingTimeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x19\n\x11pll_settling_time\x18\x02 \x01(\x01\x12\x19\n\x11\x65nsure_pll_locked\x18\x03 \x01(\x08\"=\n+ConfigureUpconverterPLLSettlingTimeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xb8\x01\n\x1e\x43reateConfigurationListRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x11\n\tlist_name\x18\x02 \x01(\t\x12\x43\n\x1d\x63onfiguration_list_attributes\x18\x03 \x03(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\x12\x1a\n\x12set_as_active_list\x18\x04 \x01(\x08\"1\n\x1f\x43reateConfigurationListResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"d\n\"CreateConfigurationListStepRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12set_as_active_step\x18\x02 \x01(\x08\"5\n#CreateConfigurationListStepResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xe7\x02\n,CreateDeembeddingSparameterTableArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0c\n\x04port\x18\x02 \x01(\t\x12\x12\n\ntable_name\x18\x03 \x01(\t\x12\x13\n\x0b\x66requencies\x18\x04 \x03(\x01\x12\x38\n\x10sparameter_table\x18\x05 \x03(\x0b\x32\x1e.nidevice_grpc.NIComplexNumber\x12\x17\n\x0fnumber_of_ports\x18\x06 \x01(\x11\x12\x44\n\x16sparameter_orientation\x18\x07 \x01(\x0e\x32\".nirfsg_grpc.SParameterOrientationH\x00\x12$\n\x1asparameter_orientation_raw\x18\x08 \x01(\x11H\x00\x42\x1d\n\x1bsparameter_orientation_enum\"?\n-CreateDeembeddingSparameterTableArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x98\x02\n.CreateDeembeddingSparameterTableS2PFileRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0c\n\x04port\x18\x02 \x01(\t\x12\x12\n\ntable_name\x18\x03 \x01(\t\x12\x15\n\rs2p_file_path\x18\x04 \x01(\t\x12\x44\n\x16sparameter_orientation\x18\x05 \x01(\x0e\x32\".nirfsg_grpc.SParameterOrientationH\x00\x12$\n\x1asparameter_orientation_raw\x18\x06 \x01(\x11H\x00\x42\x1d\n\x1bsparameter_orientation_enum\"A\n/CreateDeembeddingSparameterTableS2PFileResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"G\n!DeleteAllDeembeddingTablesRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"4\n\"DeleteAllDeembeddingTablesResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"W\n\x1e\x44\x65leteConfigurationListRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x11\n\tlist_name\x18\x02 \x01(\t\"1\n\x1f\x44\x65leteConfigurationListResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"e\n\x1d\x44\x65leteDeembeddingTableRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0c\n\x04port\x18\x02 \x01(\t\x12\x12\n\ntable_name\x18\x03 \x01(\t\"0\n\x1e\x44\x65leteDeembeddingTableResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"N\n\x13\x44\x65leteScriptRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x13\n\x0bscript_name\x18\x02 \x01(\t\"&\n\x14\x44\x65leteScriptResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"4\n\x0e\x44isableRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"!\n\x0f\x44isableResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"A\n\x1b\x44isableAllModulationRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\".\n\x1c\x44isableAllModulationResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"P\n*DisableConfigurationListStepTriggerRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"=\n+DisableConfigurationListStepTriggerResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xbc\x01\n\x1b\x44isableScriptTriggerRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12L\n\x11trigger_id_mapped\x18\x02 \x01(\x0e\x32/.nirfsg_grpc.DigitalEdgeScriptTriggerIdentifierH\x00\x12\x18\n\x0etrigger_id_raw\x18\x03 \x01(\tH\x00\x42\x11\n\x0ftrigger_id_enum\".\n\x1c\x44isableScriptTriggerResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"@\n\x1a\x44isableStartTriggerRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"-\n\x1b\x44isableStartTriggerResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"M\n\x13\x45rrorMessageRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x12\n\nerror_code\x18\x02 \x01(\x11\"=\n\x14\x45rrorMessageResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\rerror_message\x18\x02 \x01(\t\"7\n\x11\x45rrorQueryRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"O\n\x12\x45rrorQueryResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x12\n\nerror_code\x18\x02 \x01(\x11\x12\x15\n\rerror_message\x18\x03 \x01(\t\"\xfd\x02\n\x13\x45xportSignalRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12+\n\x06signal\x18\x02 \x01(\x0e\x32\x19.nirfsg_grpc.RoutedSignalH\x00\x12\x14\n\nsignal_raw\x18\x03 \x01(\x11H\x00\x12\x41\n\x18signal_identifier_mapped\x18\x04 \x01(\x0e\x32\x1d.nirfsg_grpc.SignalIdentifierH\x01\x12\x1f\n\x15signal_identifier_raw\x18\x05 \x01(\tH\x01\x12;\n\x16output_terminal_mapped\x18\x06 \x01(\x0e\x32\x19.nirfsg_grpc.OutputSignalH\x02\x12\x1d\n\x13output_terminal_raw\x18\x07 \x01(\tH\x02\x42\r\n\x0bsignal_enumB\x18\n\x16signal_identifier_enumB\x16\n\x14output_terminal_enum\"&\n\x14\x45xportSignalResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"E\n\x1fGetAllNamedWaveformNamesRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"f\n GetAllNamedWaveformNamesResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x16\n\x0ewaveform_names\x18\x02 \x01(\t\x12\x1a\n\x12\x61\x63tual_buffer_size\x18\x03 \x01(\x11\">\n\x18GetAllScriptNamesRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"]\n\x19GetAllScriptNamesResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x14\n\x0cscript_names\x18\x02 \x01(\t\x12\x1a\n\x12\x61\x63tual_buffer_size\x18\x03 \x01(\x11\"K\n\x10GetScriptRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x13\n\x0bscript_name\x18\x02 \x01(\t\"O\n\x11GetScriptResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0e\n\x06script\x18\x02 \x01(\t\x12\x1a\n\x12\x61\x63tual_buffer_size\x18\x03 \x01(\x11\"\x8c\x01\n\x1cGetAttributeViBooleanRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\">\n\x1dGetAttributeViBooleanResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x08\"\x8a\x01\n\x1aGetAttributeViInt32Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\"<\n\x1bGetAttributeViInt32Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x11\"\x8a\x01\n\x1aGetAttributeViInt64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\"<\n\x1bGetAttributeViInt64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x03\"\x8b\x01\n\x1bGetAttributeViReal64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\"=\n\x1cGetAttributeViReal64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x01\"\x8c\x01\n\x1cGetAttributeViSessionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\"V\n\x1dGetAttributeViSessionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x8b\x01\n\x1bGetAttributeViStringRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\"=\n\x1cGetAttributeViStringResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\t\"J\n\x15GetChannelNameRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\r\n\x05index\x18\x02 \x01(\x11\"6\n\x16GetChannelNameResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\"F\n GetDeembeddingSparametersRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\xa0\x01\n!GetDeembeddingSparametersResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x33\n\x0bsparameters\x18\x02 \x03(\x0b\x32\x1e.nidevice_grpc.NIComplexNumber\x12\x1d\n\x15number_of_sparameters\x18\x03 \x01(\x11\x12\x17\n\x0fnumber_of_ports\x18\x04 \x01(\x11\"5\n\x0fGetErrorRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"Q\n\x10GetErrorResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x12\n\nerror_code\x18\x02 \x01(\x11\x12\x19\n\x11\x65rror_description\x18\x03 \x01(\t\"R\n,GetExternalCalibrationLastDateAndTimeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x97\x01\n-GetExternalCalibrationLastDateAndTimeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0c\n\x04year\x18\x02 \x01(\x11\x12\r\n\x05month\x18\x03 \x01(\x11\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x11\x12\x0c\n\x04hour\x18\x05 \x01(\x11\x12\x0e\n\x06minute\x18\x06 \x01(\x11\x12\x0e\n\x06second\x18\x07 \x01(\x11\"@\n\x1aGetMaxSettablePowerRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"<\n\x1bGetMaxSettablePowerResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x01\"\x96\x01\n$GetSelfCalibrationDateAndTimeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12%\n\x06module\x18\x02 \x01(\x0e\x32\x13.nirfsg_grpc.ModuleH\x00\x12\x14\n\nmodule_raw\x18\x03 \x01(\x11H\x00\x42\r\n\x0bmodule_enum\"\x8f\x01\n%GetSelfCalibrationDateAndTimeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0c\n\x04year\x18\x02 \x01(\x11\x12\r\n\x05month\x18\x03 \x01(\x11\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x11\x12\x0c\n\x04hour\x18\x05 \x01(\x11\x12\x0e\n\x06minute\x18\x06 \x01(\x11\x12\x0e\n\x06second\x18\x07 \x01(\x11\"\x96\x01\n$GetSelfCalibrationTemperatureRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12%\n\x06module\x18\x02 \x01(\x0e\x32\x13.nirfsg_grpc.ModuleH\x00\x12\x14\n\nmodule_raw\x18\x03 \x01(\x11H\x00\x42\r\n\x0bmodule_enum\"L\n%GetSelfCalibrationTemperatureResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x13\n\x0btemperature\x18\x02 \x01(\x01\"\x8c\x02\n\x16GetTerminalNameRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12+\n\x06signal\x18\x02 \x01(\x0e\x32\x19.nirfsg_grpc.RoutedSignalH\x00\x12\x14\n\nsignal_raw\x18\x03 \x01(\x11H\x00\x12\x41\n\x18signal_identifier_mapped\x18\x04 \x01(\x0e\x32\x1d.nirfsg_grpc.SignalIdentifierH\x01\x12\x1f\n\x15signal_identifier_raw\x18\x05 \x01(\tH\x01\x42\r\n\x0bsignal_enumB\x18\n\x16signal_identifier_enum\"@\n\x17GetTerminalNameResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\rterminal_name\x18\x02 \x01(\t\"L\n\x12GetUserDataRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x12\n\nidentifier\x18\x02 \x01(\t\"M\n\x13GetUserDataResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x18\n\x10\x61\x63tual_data_size\x18\x03 \x01(\x11\"a\n%GetWaveformBurstStartLocationsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\"b\n&GetWaveformBurstStartLocationsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tlocations\x18\x02 \x03(\x01\x12\x15\n\rrequired_size\x18\x03 \x01(\x11\"`\n$GetWaveformBurstStopLocationsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\"a\n%GetWaveformBurstStopLocationsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tlocations\x18\x02 \x03(\x01\x12\x15\n\rrequired_size\x18\x03 \x01(\x11\"b\n&GetWaveformMarkerEventLocationsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\"c\n\'GetWaveformMarkerEventLocationsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tlocations\x18\x02 \x03(\x01\x12\x15\n\rrequired_size\x18\x03 \x01(\x11\"\xb1\x01\n\x0bInitRequest\x12\x14\n\x0csession_name\x18\x01 \x01(\t\x12\x15\n\rresource_name\x18\x02 \x01(\t\x12\x10\n\x08id_query\x18\x03 \x01(\x08\x12\x14\n\x0creset_device\x18\x04 \x01(\x08\x12M\n\x17initialization_behavior\x18\x05 \x01(\x0e\x32,.nidevice_grpc.SessionInitializationBehavior\"\x82\x01\n\x0cInitResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12&\n\x06new_vi\x18\x02 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x19\n\rerror_message\x18\x03 \x01(\tB\x02\x18\x01\x12\x1f\n\x17new_session_initialized\x18\x04 \x01(\x08\"\xd3\x01\n\x16InitWithOptionsRequest\x12\x14\n\x0csession_name\x18\x01 \x01(\t\x12\x15\n\rresource_name\x18\x02 \x01(\t\x12\x10\n\x08id_query\x18\x03 \x01(\x08\x12\x14\n\x0creset_device\x18\x04 \x01(\x08\x12\x15\n\roption_string\x18\x05 \x01(\t\x12M\n\x17initialization_behavior\x18\x06 \x01(\x0e\x32,.nidevice_grpc.SessionInitializationBehavior\"\x89\x01\n\x17InitWithOptionsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\"\n\x02vi\x18\x02 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x19\n\rerror_message\x18\x03 \x01(\tB\x02\x18\x01\x12\x1f\n\x17new_session_initialized\x18\x04 \x01(\x08\"5\n\x0fInitiateRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\"\n\x10InitiateResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"D\n\x1eInvalidateAllAttributesRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"1\n\x1fInvalidateAllAttributesResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"p\n!LoadConfigurationsFromFileRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x11\n\tfile_path\x18\x03 \x01(\t\"4\n\"LoadConfigurationsFromFileResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"?\n\x19PerformPowerSearchRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\",\n\x1aPerformPowerSearchResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"E\n\x1fPerformThermalCorrectionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"2\n PerformThermalCorrectionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"I\n#QueryArbWaveformCapabilitiesRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\xa4\x01\n$QueryArbWaveformCapabilitiesResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x1c\n\x14max_number_waveforms\x18\x02 \x01(\x11\x12\x18\n\x10waveform_quantum\x18\x03 \x01(\x11\x12\x19\n\x11min_waveform_size\x18\x04 \x01(\x11\x12\x19\n\x11max_waveform_size\x18\x05 \x01(\x11\"\x92\x01\n*ReadAndDownloadWaveformFromFileTDMSRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rwaveform_name\x18\x02 \x01(\t\x12\x11\n\tfile_path\x18\x03 \x01(\t\x12\x16\n\x0ewaveform_index\x18\x04 \x01(\r\"=\n+ReadAndDownloadWaveformFromFileTDMSResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"2\n\x0cResetRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x1f\n\rResetResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x85\x01\n\x15ResetAttributeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\"(\n\x16ResetAttributeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"8\n\x12ResetDeviceRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"%\n\x13ResetDeviceResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\">\n\x18ResetWithDefaultsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"+\n\x19ResetWithDefaultsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xb3\x01\n\x17ResetWithOptionsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x41\n\rsteps_to_omit\x18\x02 \x01(\x0e\x32(.nirfsg_grpc.ResetWithOptionsStepsToOmitH\x00\x12\x1b\n\x11steps_to_omit_raw\x18\x03 \x01(\x04H\x00\x42\x14\n\x12steps_to_omit_enum\"*\n\x18ResetWithOptionsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\":\n\x14RevisionQueryRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"f\n\x15RevisionQueryResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\"\n\x1ainstrument_driver_revision\x18\x02 \x01(\t\x12\x19\n\x11\x66irmware_revision\x18\x03 \x01(\t\"n\n\x1fSaveConfigurationsToFileRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x11\n\tfile_path\x18\x03 \x01(\t\"2\n SaveConfigurationsToFileResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"L\n\x18SelectArbWaveformRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0c\n\x04name\x18\x02 \x01(\t\"+\n\x19SelectArbWaveformResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"4\n\x0eSelfCalRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"!\n\x0fSelfCalResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x97\x02\n\x19SelfCalibrateRangeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x43\n\rsteps_to_omit\x18\x02 \x01(\x0e\x32*.nirfsg_grpc.SelfCalibrateRangeStepsToOmitH\x00\x12\x1b\n\x11steps_to_omit_raw\x18\x03 \x01(\x03H\x00\x12\x15\n\rmin_frequency\x18\x04 \x01(\x01\x12\x15\n\rmax_frequency\x18\x05 \x01(\x01\x12\x17\n\x0fmin_power_level\x18\x06 \x01(\x01\x12\x17\n\x0fmax_power_level\x18\x07 \x01(\x01\x42\x14\n\x12steps_to_omit_enum\",\n\x1aSelfCalibrateRangeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"5\n\x0fSelfTestRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"W\n\x10SelfTestResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x18\n\x10self_test_result\x18\x02 \x01(\x11\x12\x19\n\x11self_test_message\x18\x03 \x01(\t\"\x9a\x02\n\x1eSendSoftwareEdgeTriggerRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12,\n\x07trigger\x18\x02 \x01(\x0e\x32\x19.nirfsg_grpc.RoutedSignalH\x00\x12\x15\n\x0btrigger_raw\x18\x03 \x01(\x11H\x00\x12\x42\n\x19trigger_identifier_mapped\x18\x04 \x01(\x0e\x32\x1d.nirfsg_grpc.SignalIdentifierH\x01\x12 \n\x16trigger_identifier_raw\x18\x05 \x01(\tH\x01\x42\x0e\n\x0ctrigger_enumB\x19\n\x17trigger_identifier_enum\"1\n\x1fSendSoftwareEdgeTriggerResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xd2\x01\n&SetArbWaveformNextWritePositionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rwaveform_name\x18\x02 \x01(\t\x12.\n\x0brelative_to\x18\x03 \x01(\x0e\x32\x17.nirfsg_grpc.RelativeToH\x00\x12\x19\n\x0frelative_to_raw\x18\x04 \x01(\x11H\x00\x12\x0e\n\x06offset\x18\x05 \x01(\x11\x42\x12\n\x10relative_to_enum\"9\n\'SetArbWaveformNextWritePositionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x9b\x01\n\x1cSetAttributeViBooleanRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\x12\r\n\x05value\x18\x04 \x01(\x08\"/\n\x1dSetAttributeViBooleanResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xe7\x01\n\x1aSetAttributeViInt32Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\x12\x38\n\x05value\x18\x04 \x01(\x0e\x32\'.nirfsg_grpc.NiRFSGInt32AttributeValuesH\x00\x12\x13\n\tvalue_raw\x18\x05 \x01(\x11H\x00\x42\x0c\n\nvalue_enum\"-\n\x1bSetAttributeViInt32Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x9d\x01\n\x1aSetAttributeViInt64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\x12\x11\n\tvalue_raw\x18\x04 \x01(\x03\"-\n\x1bSetAttributeViInt64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xe9\x01\n\x1bSetAttributeViReal64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\x12\x39\n\x05value\x18\x04 \x01(\x0e\x32(.nirfsg_grpc.NiRFSGReal64AttributeValuesH\x00\x12\x13\n\tvalue_raw\x18\x05 \x01(\x01H\x00\x42\x0c\n\nvalue_enum\".\n\x1cSetAttributeViReal64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xb3\x01\n\x1cSetAttributeViSessionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\x12%\n\x05value\x18\x04 \x01(\x0b\x32\x16.nidevice_grpc.Session\"/\n\x1dSetAttributeViSessionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xf6\x01\n\x1bSetAttributeViStringRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nirfsg_grpc.NiRFSGAttribute\x12\x46\n\x0cvalue_mapped\x18\x04 \x01(\x0e\x32..nirfsg_grpc.NiRFSGStringAttributeValuesMappedH\x00\x12\x13\n\tvalue_raw\x18\x05 \x01(\tH\x00\x42\x0c\n\nvalue_enum\".\n\x1cSetAttributeViStringResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"Z\n\x12SetUserDataRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x12\n\nidentifier\x18\x02 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"%\n\x13SetUserDataResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"t\n%SetWaveformBurstStartLocationsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x11\n\tlocations\x18\x03 \x03(\x01\"8\n&SetWaveformBurstStartLocationsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"s\n$SetWaveformBurstStopLocationsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x11\n\tlocations\x18\x03 \x03(\x01\"7\n%SetWaveformBurstStopLocationsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"u\n&SetWaveformMarkerEventLocationsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x11\n\tlocations\x18\x03 \x03(\x01\"9\n\'SetWaveformMarkerEventLocationsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\\\n\x17WaitUntilSettledRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1d\n\x15max_time_milliseconds\x18\x02 \x01(\x11\"*\n\x18WaitUntilSettledResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x8f\x01\n\x17WriteArbWaveformRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rwaveform_name\x18\x02 \x01(\t\x12\x0e\n\x06i_data\x18\x03 \x03(\x01\x12\x0e\n\x06q_data\x18\x04 \x03(\x01\x12\x19\n\x11more_data_pending\x18\x05 \x01(\x08\"*\n\x18WriteArbWaveformResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xae\x01\n!WriteArbWaveformComplexF32Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rwaveform_name\x18\x02 \x01(\t\x12\x33\n\x08wfm_data\x18\x03 \x03(\x0b\x32!.nidevice_grpc.NIComplexNumberF32\x12\x19\n\x11more_data_pending\x18\x04 \x01(\x08\"4\n\"WriteArbWaveformComplexF32Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xab\x01\n!WriteArbWaveformComplexF64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rwaveform_name\x18\x02 \x01(\t\x12\x30\n\x08wfm_data\x18\x03 \x03(\x0b\x32\x1e.nidevice_grpc.NIComplexNumber\x12\x19\n\x11more_data_pending\x18\x04 \x01(\x08\"4\n\"WriteArbWaveformComplexF64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x8d\x01\n!WriteArbWaveformComplexI16Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rwaveform_name\x18\x02 \x01(\t\x12-\n\x08wfm_data\x18\x03 \x03(\x0b\x32\x1b.nidevice_grpc.NIComplexI16\"4\n\"WriteArbWaveformComplexI16Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x92\x01\n\x1aWriteArbWaveformF32Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rwaveform_name\x18\x02 \x01(\t\x12\x0e\n\x06i_data\x18\x03 \x03(\x02\x12\x0e\n\x06q_data\x18\x04 \x03(\x02\x12\x19\n\x11more_data_pending\x18\x05 \x01(\x08\"-\n\x1bWriteArbWaveformF32Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"H\n\x12WriteScriptRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0e\n\x06script\x18\x02 \x01(\t\"%\n\x13WriteScriptResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05*\xdd\x61\n\x0fNiRFSGAttribute\x12 \n\x1cNIRFSG_ATTRIBUTE_UNSPECIFIED\x10\x00\x12\"\n\x1cNIRFSG_ATTRIBUTE_RANGE_CHECK\x10\x92\x8b@\x12.\n(NIRFSG_ATTRIBUTE_QUERY_INSTRUMENT_STATUS\x10\x93\x8b@\x12\x1c\n\x16NIRFSG_ATTRIBUTE_CACHE\x10\x94\x8b@\x12\x1f\n\x19NIRFSG_ATTRIBUTE_SIMULATE\x10\x95\x8b@\x12\'\n!NIRFSG_ATTRIBUTE_RECORD_COERCIONS\x10\x96\x8b@\x12#\n\x1dNIRFSG_ATTRIBUTE_DRIVER_SETUP\x10\x97\x8b@\x12(\n\"NIRFSG_ATTRIBUTE_INTERCHANGE_CHECK\x10\xa5\x8b@\x12\x1a\n\x14NIRFSG_ATTRIBUTE_SPY\x10\xa6\x8b@\x12.\n(NIRFSG_ATTRIBUTE_USE_SPECIFIC_SIMULATION\x10\xa7\x8b@\x12$\n\x1eNIRFSG_ATTRIBUTE_CHANNEL_COUNT\x10\xdb\x8c@\x12-\n\'NIRFSG_ATTRIBUTE_SPECIFIC_DRIVER_PREFIX\x10\xbe\x8d@\x12-\n\'NIRFSG_ATTRIBUTE_IO_RESOURCE_DESCRIPTOR\x10\xc0\x8d@\x12#\n\x1dNIRFSG_ATTRIBUTE_LOGICAL_NAME\x10\xc1\x8d@\x12\x32\n,NIRFSG_ATTRIBUTE_SUPPORTED_INSTRUMENT_MODELS\x10\xd7\x8d@\x12)\n#NIRFSG_ATTRIBUTE_GROUP_CAPABILITIES\x10\xa1\x8e@\x12,\n&NIRFSG_ATTRIBUTE_FUNCTION_CAPABILITIES\x10\xa2\x8e@\x12\x33\n-NIRFSG_ATTRIBUTE_INSTRUMENT_FIRMWARE_REVISION\x10\x8e\x8f@\x12.\n(NIRFSG_ATTRIBUTE_INSTRUMENT_MANUFACTURER\x10\x8f\x8f@\x12\'\n!NIRFSG_ATTRIBUTE_INSTRUMENT_MODEL\x10\x90\x8f@\x12-\n\'NIRFSG_ATTRIBUTE_SPECIFIC_DRIVER_VENDOR\x10\x91\x8f@\x12\x32\n,NIRFSG_ATTRIBUTE_SPECIFIC_DRIVER_DESCRIPTION\x10\x92\x8f@\x12?\n9NIRFSG_ATTRIBUTE_SPECIFIC_DRIVER_CLASS_SPEC_MAJOR_VERSION\x10\x93\x8f@\x12?\n9NIRFSG_ATTRIBUTE_SPECIFIC_DRIVER_CLASS_SPEC_MINOR_VERSION\x10\x94\x8f@\x12/\n)NIRFSG_ATTRIBUTE_SPECIFIC_DRIVER_REVISION\x10\xb7\x8f@\x12\'\n!NIRFSG_ATTRIBUTE_REF_CLOCK_SOURCE\x10\xb1\x98\x46\x12\x38\n2NIRFSG_ATTRIBUTE_DIGITAL_EDGE_START_TRIGGER_SOURCE\x10\xb2\x98\x46\x12=\n7NIRFSG_ATTRIBUTE_EXPORTED_START_TRIGGER_OUTPUT_TERMINAL\x10\xb3\x98\x46\x12/\n)NIRFSG_ATTRIBUTE_PXI_CHASSIS_CLK10_SOURCE\x10\xb4\x98\x46\x12/\n)NIRFSG_ATTRIBUTE_PHASE_CONTINUITY_ENABLED\x10\xb5\x98\x46\x12*\n$NIRFSG_ATTRIBUTE_FREQUENCY_TOLERANCE\x10\xb6\x98\x46\x12\'\n!NIRFSG_ATTRIBUTE_SIGNAL_BANDWIDTH\x10\xb7\x98\x46\x12\x33\n-NIRFSG_ATTRIBUTE_AUTOMATIC_THERMAL_CORRECTION\x10\xb8\x98\x46\x12.\n(NIRFSG_ATTRIBUTE_ATTENUATOR_HOLD_ENABLED\x10\xb9\x98\x46\x12\x30\n*NIRFSG_ATTRIBUTE_ATTENUATOR_HOLD_MAX_POWER\x10\xba\x98\x46\x12*\n$NIRFSG_ATTRIBUTE_PEAK_ENVELOPE_POWER\x10\xbb\x98\x46\x12\x33\n-NIRFSG_ATTRIBUTE_DIGITAL_EQUALIZATION_ENABLED\x10\xbc\x98\x46\x12%\n\x1fNIRFSG_ATTRIBUTE_LO_OUT_ENABLED\x10\xbd\x98\x46\x12?\n9NIRFSG_ATTRIBUTE_ALLOW_OUT_OF_SPECIFICATION_USER_SETTINGS\x10\xbe\x98\x46\x12,\n&NIRFSG_ATTRIBUTE_ARB_CARRIER_FREQUENCY\x10\xbf\x98\x46\x12 \n\x1aNIRFSG_ATTRIBUTE_ARB_POWER\x10\xc0\x98\x46\x12)\n#NIRFSG_ATTRIBUTE_DEVICE_TEMPERATURE\x10\xc1\x98\x46\x12&\n NIRFSG_ATTRIBUTE_GENERATION_MODE\x10\xc2\x98\x46\x12*\n$NIRFSG_ATTRIBUTE_SCRIPT_TRIGGER_TYPE\x10\xc3\x98\x46\x12\x39\n3NIRFSG_ATTRIBUTE_DIGITAL_EDGE_SCRIPT_TRIGGER_SOURCE\x10\xc4\x98\x46\x12\x37\n1NIRFSG_ATTRIBUTE_DIGITAL_EDGE_SCRIPT_TRIGGER_EDGE\x10\xc5\x98\x46\x12>\n8NIRFSG_ATTRIBUTE_EXPORTED_SCRIPT_TRIGGER_OUTPUT_TERMINAL\x10\xc6\x98\x46\x12&\n NIRFSG_ATTRIBUTE_SELECTED_SCRIPT\x10\xc7\x98\x46\x12#\n\x1dNIRFSG_ATTRIBUTE_PHASE_OFFSET\x10\xc8\x98\x46\x12*\n$NIRFSG_ATTRIBUTE_ARB_PRE_FILTER_GAIN\x10\xc9\x98\x46\x12$\n\x1eNIRFSG_ATTRIBUTE_SERIAL_NUMBER\x10\xca\x98\x46\x12%\n\x1fNIRFSG_ATTRIBUTE_LOOP_BANDWIDTH\x10\xcb\x98\x46\x12\x34\n.NIRFSG_ATTRIBUTE_ARB_ONBOARD_SAMPLE_CLOCK_MODE\x10\xcd\x98\x46\x12.\n(NIRFSG_ATTRIBUTE_ARB_SAMPLE_CLOCK_SOURCE\x10\xce\x98\x46\x12,\n&NIRFSG_ATTRIBUTE_ARB_SAMPLE_CLOCK_RATE\x10\xcf\x98\x46\x12-\n\'NIRFSG_ATTRIBUTE_ANALOG_MODULATION_TYPE\x10\xd0\x98\x46\x12\x36\n0NIRFSG_ATTRIBUTE_ANALOG_MODULATION_WAVEFORM_TYPE\x10\xd1\x98\x46\x12;\n5NIRFSG_ATTRIBUTE_ANALOG_MODULATION_WAVEFORM_FREQUENCY\x10\xd2\x98\x46\x12\x35\n/NIRFSG_ATTRIBUTE_ANALOG_MODULATION_FM_DEVIATION\x10\xd3\x98\x46\x12.\n(NIRFSG_ATTRIBUTE_DIGITAL_MODULATION_TYPE\x10\xd4\x98\x46\x12\x35\n/NIRFSG_ATTRIBUTE_DIGITAL_MODULATION_SYMBOL_RATE\x10\xd5\x98\x46\x12\x37\n1NIRFSG_ATTRIBUTE_DIGITAL_MODULATION_WAVEFORM_TYPE\x10\xd6\x98\x46\x12\x34\n.NIRFSG_ATTRIBUTE_DIGITAL_MODULATION_PRBS_ORDER\x10\xd7\x98\x46\x12\x33\n-NIRFSG_ATTRIBUTE_DIGITAL_MODULATION_PRBS_SEED\x10\xd8\x98\x46\x12\x37\n1NIRFSG_ATTRIBUTE_DIGITAL_MODULATION_FSK_DEVIATION\x10\xd9\x98\x46\x12&\n NIRFSG_ATTRIBUTE_DIRECT_DOWNLOAD\x10\xda\x98\x46\x12\'\n!NIRFSG_ATTRIBUTE_POWER_LEVEL_TYPE\x10\xdb\x98\x46\x12&\n NIRFSG_ATTRIBUTE_DIGITAL_PATTERN\x10\xdc\x98\x46\x12(\n\"NIRFSG_ATTRIBUTE_STREAMING_ENABLED\x10\xdd\x98\x46\x12.\n(NIRFSG_ATTRIBUTE_STREAMING_WAVEFORM_NAME\x10\xde\x98\x46\x12<\n6NIRFSG_ATTRIBUTE_STREAMING_SPACE_AVAILABLE_IN_WAVEFORM\x10\xdf\x98\x46\x12/\n)NIRFSG_ATTRIBUTE_DATA_TRANSFER_BLOCK_SIZE\x10\xe0\x98\x46\x12;\n5NIRFSG_ATTRIBUTE_ARB_WAVEFORM_SOFTWARE_SCALING_FACTOR\x10\xe4\x98\x46\x12\x39\n3NIRFSG_ATTRIBUTE_EXPORTED_REF_CLOCK_OUTPUT_TERMINAL\x10\xe5\x98\x46\x12:\n4NIRFSG_ATTRIBUTE_DIGITAL_LEVEL_SCRIPT_TRIGGER_SOURCE\x10\xe6\x98\x46\x12@\n:NIRFSG_ATTRIBUTE_DIGITAL_LEVEL_SCRIPT_TRIGGER_ACTIVE_LEVEL\x10\xe7\x98\x46\x12&\n NIRFSG_ATTRIBUTE_ARB_FILTER_TYPE\x10\xe8\x98\x46\x12:\n4NIRFSG_ATTRIBUTE_ARB_FILTER_ROOT_RAISED_COSINE_ALPHA\x10\xe9\x98\x46\x12=\n7NIRFSG_ATTRIBUTE_UPCONVERTER_CENTER_FREQUENCY_INCREMENT\x10\xea\x98\x46\x12\x44\n>NIRFSG_ATTRIBUTE_UPCONVERTER_CENTER_FREQUENCY_INCREMENT_ANCHOR\x10\xeb\x98\x46\x12\x35\n/NIRFSG_ATTRIBUTE_ARB_FILTER_RAISED_COSINE_ALPHA\x10\xec\x98\x46\x12\"\n\x1cNIRFSG_ATTRIBUTE_MEMORY_SIZE\x10\xed\x98\x46\x12\x35\n/NIRFSG_ATTRIBUTE_ANALOG_MODULATION_PM_DEVIATION\x10\xee\x98\x46\x12:\n4NIRFSG_ATTRIBUTE_EXPORTED_DONE_EVENT_OUTPUT_TERMINAL\x10\xef\x98\x46\x12<\n6NIRFSG_ATTRIBUTE_EXPORTED_MARKER_EVENT_OUTPUT_TERMINAL\x10\xf0\x98\x46\x12=\n7NIRFSG_ATTRIBUTE_EXPORTED_STARTED_EVENT_OUTPUT_TERMINAL\x10\xf1\x98\x46\x12#\n\x1dNIRFSG_ATTRIBUTE_LO_OUT_POWER\x10\xf2\x98\x46\x12\"\n\x1cNIRFSG_ATTRIBUTE_LO_IN_POWER\x10\xf3\x98\x46\x12&\n NIRFSG_ATTRIBUTE_ARB_TEMPERATURE\x10\xf4\x98\x46\x12,\n&NIRFSG_ATTRIBUTE_IQ_IMPAIRMENT_ENABLED\x10\xf5\x98\x46\x12\"\n\x1cNIRFSG_ATTRIBUTE_IQ_I_OFFSET\x10\xf6\x98\x46\x12\"\n\x1cNIRFSG_ATTRIBUTE_IQ_Q_OFFSET\x10\xf7\x98\x46\x12(\n\"NIRFSG_ATTRIBUTE_IQ_GAIN_IMBALANCE\x10\xf8\x98\x46\x12\x1e\n\x18NIRFSG_ATTRIBUTE_IQ_SKEW\x10\xf9\x98\x46\x12%\n\x1fNIRFSG_ATTRIBUTE_LO_TEMPERATURE\x10\xfb\x98\x46\x12@\n:NIRFSG_ATTRIBUTE_EXTERNAL_CALIBRATION_RECOMMENDED_INTERVAL\x10\xfc\x98\x46\x12\x37\n1NIRFSG_ATTRIBUTE_EXTERNAL_CALIBRATION_TEMPERATURE\x10\xfd\x98\x46\x12=\n7NIRFSG_ATTRIBUTE_EXTERNAL_CALIBRATION_USER_DEFINED_INFO\x10\xfe\x98\x46\x12\x46\n@NIRFSG_ATTRIBUTE_EXTERNAL_CALIBRATION_USER_DEFINED_INFO_MAX_SIZE\x10\xff\x98\x46\x12&\n NIRFSG_ATTRIBUTE_IQ_OFFSET_UNITS\x10\x81\x99\x46\x12/\n)NIRFSG_ATTRIBUTE_FREQUENCY_SETTLING_UNITS\x10\x82\x99\x46\x12)\n#NIRFSG_ATTRIBUTE_FREQUENCY_SETTLING\x10\x83\x99\x46\x12&\n NIRFSG_ATTRIBUTE_MODULE_REVISION\x10\x84\x99\x46\x12$\n\x1eNIRFSG_ATTRIBUTE_EXTERNAL_GAIN\x10\x85\x99\x46\x12\x36\n0NIRFSG_ATTRIBUTE_DATA_TRANSFER_MAXIMUM_BANDWIDTH\x10\x86\x99\x46\x12:\n4NIRFSG_ATTRIBUTE_DATA_TRANSFER_PREFERRED_PACKET_SIZE\x10\x87\x99\x46\x12<\n6NIRFSG_ATTRIBUTE_DATA_TRANSFER_MAXIMUM_IN_FLIGHT_READS\x10\x88\x99\x46\x12\x35\n/NIRFSG_ATTRIBUTE_ARB_OSCILLATOR_PHASE_DAC_VALUE\x10\x89\x99\x46\x12\x30\n*NIRFSG_ATTRIBUTE_ACTIVE_CONFIGURATION_LIST\x10\x90\x99\x46\x12\x35\n/NIRFSG_ATTRIBUTE_ACTIVE_CONFIGURATION_LIST_STEP\x10\x91\x99\x46\x12;\n5NIRFSG_ATTRIBUTE_CONFIGURATION_LIST_STEP_TRIGGER_TYPE\x10\x92\x99\x46\x12J\nDNIRFSG_ATTRIBUTE_DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE\x10\x93\x99\x46\x12+\n%NIRFSG_ATTRIBUTE_TIMER_EVENT_INTERVAL\x10\x94\x99\x46\x12\x30\n*NIRFSG_ATTRIBUTE_CONFIGURATION_LIST_REPEAT\x10\x96\x99\x46\x12H\nBNIRFSG_ATTRIBUTE_DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_EDGE\x10\x97\x99\x46\x12-\n\'NIRFSG_ATTRIBUTE_CORRECTION_TEMPERATURE\x10\x98\x99\x46\x12O\nINIRFSG_ATTRIBUTE_EXPORTED_CONFIGURATION_LIST_STEP_TRIGGER_OUTPUT_TERMINAL\x10\x99\x99\x46\x12\x32\n,NIRFSG_ATTRIBUTE_STARTED_EVENT_TERMINAL_NAME\x10\xa0\x99\x46\x12/\n)NIRFSG_ATTRIBUTE_DONE_EVENT_TERMINAL_NAME\x10\xa1\x99\x46\x12\x32\n,NIRFSG_ATTRIBUTE_START_TRIGGER_TERMINAL_NAME\x10\xa2\x99\x46\x12\x31\n+NIRFSG_ATTRIBUTE_MARKER_EVENT_TERMINAL_NAME\x10\xa3\x99\x46\x12\x33\n-NIRFSG_ATTRIBUTE_SCRIPT_TRIGGER_TERMINAL_NAME\x10\xa4\x99\x46\x12\x44\n>NIRFSG_ATTRIBUTE_CONFIGURATION_LIST_STEP_TRIGGER_TERMINAL_NAME\x10\xa5\x99\x46\x12*\n$NIRFSG_ATTRIBUTE_YIG_MAIN_COIL_DRIVE\x10\xa6\x99\x46\x12:\n4NIRFSG_ATTRIBUTE_CONFIGURATION_LIST_STEP_IN_PROGRESS\x10\xaa\x99\x46\x12\"\n\x1cNIRFSG_ATTRIBUTE_P2P_ENABLED\x10\xab\x99\x46\x12(\n\"NIRFSG_ATTRIBUTE_P2P_ENDPOINT_SIZE\x10\xac\x99\x46\x12\x36\n0NIRFSG_ATTRIBUTE_P2P_SPACE_AVAILABLE_IN_ENDPOINT\x10\xad\x99\x46\x12;\n5NIRFSG_ATTRIBUTE_P2P_MOST_SPACE_AVAILABLE_IN_ENDPOINT\x10\xae\x99\x46\x12)\n#NIRFSG_ATTRIBUTE_P2P_ENDPOINT_COUNT\x10\xaf\x99\x46\x12@\n:NIRFSG_ATTRIBUTE_P2P_ENDPOINT_FULLNESS_START_TRIGGER_LEVEL\x10\xb0\x99\x46\x12K\nENIRFSG_ATTRIBUTE_EXPORTED_CONFIGURATION_SETTLED_EVENT_OUTPUT_TERMINAL\x10\xb1\x99\x46\x12,\n&NIRFSG_ATTRIBUTE_PEAK_POWER_ADJUSTMENT\x10\xb4\x99\x46\x12(\n\"NIRFSG_ATTRIBUTE_REF_PLL_BANDWIDTH\x10\xb5\x99\x46\x12<\n6NIRFSG_ATTRIBUTE_P2P_DATA_TRANSFER_PERMISSION_INTERVAL\x10\xb6\x99\x46\x12\x43\n=NIRFSG_ATTRIBUTE_P2P_DATA_TRANSFER_PERMISSION_INITIAL_CREDITS\x10\xb7\x99\x46\x12\x33\n-NIRFSG_ATTRIBUTE_SELF_CALIBRATION_TEMPERATURE\x10\xb8\x99\x46\x12)\n#NIRFSG_ATTRIBUTE_AMPLITUDE_SETTLING\x10\xb9\x99\x46\x12.\n(NIRFSG_ATTRIBUTE_STREAMING_WRITE_TIMEOUT\x10\xbc\x99\x46\x12\x38\n2NIRFSG_ATTRIBUTE_PEAK_POWER_ADJUSTMENT_INHERITANCE\x10\xbd\x99\x46\x12\x31\n+NIRFSG_ATTRIBUTE_SYNC_SCRIPT_TRIGGER_MASTER\x10\xbe\x99\x46\x12\x34\n.NIRFSG_ATTRIBUTE_SYNC_SCRIPT_TRIGGER_DIST_LINE\x10\xbf\x99\x46\x12\"\n\x1cNIRFSG_ATTRIBUTE_OUTPUT_PORT\x10\xc0\x99\x46\x12\x34\n.NIRFSG_ATTRIBUTE_IQ_OUT_PORT_CARRIER_FREQUENCY\x10\xc1\x99\x46\x12\x39\n3NIRFSG_ATTRIBUTE_IQ_OUT_PORT_TERMINAL_CONFIGURATION\x10\xc2\x99\x46\x12(\n\"NIRFSG_ATTRIBUTE_IQ_OUT_PORT_LEVEL\x10\xc3\x99\x46\x12\x35\n/NIRFSG_ATTRIBUTE_IQ_OUT_PORT_COMMON_MODE_OFFSET\x10\xc4\x99\x46\x12)\n#NIRFSG_ATTRIBUTE_IQ_OUT_PORT_OFFSET\x10\xc5\x99\x46\x12 \n\x1aNIRFSG_ATTRIBUTE_LO_SOURCE\x10\xc6\x99\x46\x12-\n\'NIRFSG_ATTRIBUTE_LO_FREQUENCY_STEP_SIZE\x10\xc7\x99\x46\x12\x35\n/NIRFSG_ATTRIBUTE_LO_PLL_FRACTIONAL_MODE_ENABLED\x10\xc8\x99\x46\x12*\n$NIRFSG_ATTRIBUTE_INTERPOLATION_DELAY\x10\xc9\x99\x46\x12#\n\x1dNIRFSG_ATTRIBUTE_EVENTS_DELAY\x10\xca\x99\x46\x12\x30\n*NIRFSG_ATTRIBUTE_SYNC_START_TRIGGER_MASTER\x10\xcb\x99\x46\x12\x33\n-NIRFSG_ATTRIBUTE_SYNC_START_TRIGGER_DIST_LINE\x10\xcc\x99\x46\x12:\n4NIRFSG_ATTRIBUTE_ARB_WAVEFORM_REPEAT_COUNT_IS_FINITE\x10\xcd\x99\x46\x12\x30\n*NIRFSG_ATTRIBUTE_ARB_WAVEFORM_REPEAT_COUNT\x10\xce\x99\x46\x12\x33\n-NIRFSG_ATTRIBUTE_UPCONVERTER_FREQUENCY_OFFSET\x10\xd0\x99\x46\x12.\n(NIRFSG_ATTRIBUTE_IQ_OUT_PORT_TEMPERATURE\x10\xd1\x99\x46\x12)\n#NIRFSG_ATTRIBUTE_RF_BLANKING_SOURCE\x10\xd2\x99\x46\x12\x31\n+NIRFSG_ATTRIBUTE_IQ_OUT_PORT_LOAD_IMPEDANCE\x10\xd3\x99\x46\x12\x41\n;NIRFSG_ATTRIBUTE_ANALOG_MODULATION_FM_NARROWBAND_INTEGRATOR\x10\xd5\x99\x46\x12\x37\n1NIRFSG_ATTRIBUTE_ANALOG_MODULATION_FM_SENSITIVITY\x10\xd6\x99\x46\x12\x37\n1NIRFSG_ATTRIBUTE_ANALOG_MODULATION_AM_SENSITIVITY\x10\xd7\x99\x46\x12\x37\n1NIRFSG_ATTRIBUTE_ANALOG_MODULATION_PM_SENSITIVITY\x10\xd8\x99\x46\x12)\n#NIRFSG_ATTRIBUTE_ATTENUATOR_SETTING\x10\xdd\x99\x46\x12\x31\n+NIRFSG_ATTRIBUTE_CONFIGURATION_LIST_IS_DONE\x10\xdf\x99\x46\x12/\n)NIRFSG_ATTRIBUTE_SYNC_SAMPLE_CLOCK_MASTER\x10\xe4\x99\x46\x12\x32\n,NIRFSG_ATTRIBUTE_SYNC_SAMPLE_CLOCK_DIST_LINE\x10\xe5\x99\x46\x12%\n\x1fNIRFSG_ATTRIBUTE_AE_TEMPERATURE\x10\xe6\x99\x46\x12\x1f\n\x19NIRFSG_ATTRIBUTE_AMP_PATH\x10\xe9\x99\x46\x12(\n\"NIRFSG_ATTRIBUTE_FPGA_BITFILE_PATH\x10\xea\x99\x46\x12)\n#NIRFSG_ATTRIBUTE_FAST_TUNING_OPTION\x10\xec\x99\x46\x12,\n&NIRFSG_ATTRIBUTE_PULSE_MODULATION_MODE\x10\xee\x99\x46\x12\x30\n*NIRFSG_ATTRIBUTE_ANALOG_MODULATION_FM_BAND\x10\xef\x99\x46\x12\x30\n*NIRFSG_ATTRIBUTE_ANALOG_MODULATION_PM_MODE\x10\xf0\x99\x46\x12@\n:NIRFSG_ATTRIBUTE_CONFIGURATION_SETTLED_EVENT_TERMINAL_NAME\x10\xf2\x99\x46\x12\"\n\x1cNIRFSG_ATTRIBUTE_ALC_CONTROL\x10\xf3\x99\x46\x12(\n\"NIRFSG_ATTRIBUTE_AUTO_POWER_SEARCH\x10\xf4\x99\x46\x12#\n\x1dNIRFSG_ATTRIBUTE_LO_FREQUENCY\x10\xf7\x99\x46\x12\'\n!NIRFSG_ATTRIBUTE_ARB_DIGITAL_GAIN\x10\xfc\x99\x46\x12\x33\n-NIRFSG_ATTRIBUTE_MARKER_EVENT_OUTPUT_BEHAVIOR\x10\xfe\x99\x46\x12/\n)NIRFSG_ATTRIBUTE_MARKER_EVENT_PULSE_WIDTH\x10\xff\x99\x46\x12\x35\n/NIRFSG_ATTRIBUTE_MARKER_EVENT_PULSE_WIDTH_UNITS\x10\x80\x9a\x46\x12\x38\n2NIRFSG_ATTRIBUTE_MARKER_EVENT_TOGGLE_INITIAL_STATE\x10\x81\x9a\x46\x12/\n)NIRFSG_ATTRIBUTE_MODULE_POWER_CONSUMPTION\x10\x82\x9a\x46\x12\'\n!NIRFSG_ATTRIBUTE_FPGA_TEMPERATURE\x10\x83\x9a\x46\x12\x30\n*NIRFSG_ATTRIBUTE_TEMPERATURE_READ_INTERVAL\x10\x84\x9a\x46\x12/\n)NIRFSG_ATTRIBUTE_P2P_IS_FINITE_GENERATION\x10\x89\x9a\x46\x12\x38\n2NIRFSG_ATTRIBUTE_P2P_NUMBER_OF_SAMPLES_TO_GENERATE\x10\x8a\x9a\x46\x12\x39\n3NIRFSG_ATTRIBUTE_P2P_GENERATION_FIFO_SAMPLE_QUANTUM\x10\x8b\x9a\x46\x12%\n\x1fNIRFSG_ATTRIBUTE_RELATIVE_DELAY\x10\x8c\x9a\x46\x12%\n\x1fNIRFSG_ATTRIBUTE_ABSOLUTE_DELAY\x10\x91\x9a\x46\x12\x35\n/NIRFSG_ATTRIBUTE_DEVICE_INSTANTANEOUS_BANDWIDTH\x10\x92\x9a\x46\x12/\n)NIRFSG_ATTRIBUTE_OVERFLOW_ERROR_REPORTING\x10\x94\x9a\x46\x12+\n%NIRFSG_ATTRIBUTE_HOST_DMA_BUFFER_SIZE\x10\x9f\x9a\x46\x12%\n\x1fNIRFSG_ATTRIBUTE_SELECTED_PORTS\x10\xa1\x9a\x46\x12\x38\n2NIRFSG_ATTRIBUTE_LO_OUT_EXPORT_CONFIGURE_FROM_RFSA\x10\xa2\x9a\x46\x12.\n(NIRFSG_ATTRIBUTE_RF_IN_LO_EXPORT_ENABLED\x10\xa3\x9a\x46\x12@\n:NIRFSG_ATTRIBUTE_THERMAL_CORRECTION_TEMPERATURE_RESOLUTION\x10\xa4\x9a\x46\x12\x38\n2NIRFSG_ATTRIBUTE_UPCONVERTER_FREQUENCY_OFFSET_MODE\x10\xa8\x9a\x46\x12&\n NIRFSG_ATTRIBUTE_AVAILABLE_PORTS\x10\xa9\x9a\x46\x12\'\n!NIRFSG_ATTRIBUTE_FPGA_TARGET_NAME\x10\xab\x9a\x46\x12\'\n!NIRFSG_ATTRIBUTE_DEEMBEDDING_TYPE\x10\xac\x9a\x46\x12\x31\n+NIRFSG_ATTRIBUTE_DEEMBEDDING_SELECTED_TABLE\x10\xad\x9a\x46\x12\x31\n+NIRFSG_ATTRIBUTE_LO_VCO_FREQUENCY_STEP_SIZE\x10\xb1\x9a\x46\x12\x38\n2NIRFSG_ATTRIBUTE_THERMAL_CORRECTION_HEADROOM_RANGE\x10\xb2\x9a\x46\x12\'\n!NIRFSG_ATTRIBUTE_WAVEFORM_IQ_RATE\x10\xb7\x9a\x46\x12\x30\n*NIRFSG_ATTRIBUTE_WAVEFORM_SIGNAL_BANDWIDTH\x10\xb8\x9a\x46\x12/\n)NIRFSG_ATTRIBUTE_WAVEFORM_RUNTIME_SCALING\x10\xb9\x9a\x46\x12$\n\x1eNIRFSG_ATTRIBUTE_WAVEFORM_PAPR\x10\xba\x9a\x46\x12\x35\n/NIRFSG_ATTRIBUTE_FIXED_GROUP_DELAY_ACROSS_PORTS\x10\xbf\x9a\x46\x12(\n\"NIRFSG_ATTRIBUTE_WAVEFORM_FILEPATH\x10\xc0\x9a\x46\x12\x35\n/NIRFSG_ATTRIBUTE_WRITE_WAVEFORM_BURST_DETECTION\x10\xc1\x9a\x46\x12:\n4NIRFSG_ATTRIBUTE_WRITE_WAVEFORM_BURST_DETECTION_MODE\x10\xc2\x9a\x46\x12H\nBNIRFSG_ATTRIBUTE_WRITE_WAVEFORM_BURST_DETECTION_MINIMUM_QUIET_TIME\x10\xc3\x9a\x46\x12\x45\n?NIRFSG_ATTRIBUTE_WRITE_WAVEFORM_BURST_DETECTION_POWER_THRESHOLD\x10\xc4\x9a\x46\x12H\nBNIRFSG_ATTRIBUTE_WRITE_WAVEFORM_BURST_DETECTION_MINIMUM_BURST_TIME\x10\xc5\x9a\x46\x12+\n%NIRFSG_ATTRIBUTE_WAVEFORM_RF_BLANKING\x10\xc6\x9a\x46\x12\x34\n.NIRFSG_ATTRIBUTE_DEEMBEDDING_COMPENSATION_GAIN\x10\xd1\x9a\x46\x12\x41\n;NIRFSG_ATTRIBUTE_LOAD_CONFIGURATIONS_FROM_FILE_LOAD_OPTIONS\x10\xd2\x9a\x46\x12\x42\n\x12!\n\x1cRELATIVE_TO_CURRENT_POSITION\x10\xc1>*\x8c\x02\n\x1bResetWithOptionsStepsToOmit\x12)\n%RESET_WITH_OPTIONS_STEPS_TO_OMIT_NONE\x10\x00\x12.\n*RESET_WITH_OPTIONS_STEPS_TO_OMIT_WAVEFORMS\x10\x01\x12,\n(RESET_WITH_OPTIONS_STEPS_TO_OMIT_SCRIPTS\x10\x02\x12+\n\'RESET_WITH_OPTIONS_STEPS_TO_OMIT_ROUTES\x10\x04\x12\x37\n3RESET_WITH_OPTIONS_STEPS_TO_OMIT_DEEMBEDDING_TABLES\x10\x08*\xaf\x02\n\x0cRoutedSignal\x12\x1f\n\x1bROUTED_SIGNAL_START_TRIGGER\x10\x00\x12\x31\n-ROUTED_SIGNAL_CONFIGURATION_LIST_STEP_TRIGGER\x10\x06\x12-\n)ROUTED_SIGNAL_CONFIGURATION_SETTLED_EVENT\x10\x07\x12\x1c\n\x18ROUTED_SIGNAL_DONE_EVENT\x10\x05\x12\x1e\n\x1aROUTED_SIGNAL_MARKER_EVENT\x10\x02\x12\x1b\n\x17ROUTED_SIGNAL_REF_CLOCK\x10\x03\x12 \n\x1cROUTED_SIGNAL_SCRIPT_TRIGGER\x10\x01\x12\x1f\n\x1bROUTED_SIGNAL_STARTED_EVENT\x10\x04*\xa2\x01\n\x15SParameterOrientation\x12\'\n#S_PARAMETER_ORIENTATION_UNSPECIFIED\x10\x00\x12/\n)S_PARAMETER_ORIENTATION_PORT1_TOWARDS_DUT\x10\xc0\xbb\x01\x12/\n)S_PARAMETER_ORIENTATION_PORT2_TOWARDS_DUT\x10\xc1\xbb\x01*\xf4\x02\n\x1dSelfCalibrateRangeStepsToOmit\x12\x30\n,SELF_CALIBRATE_RANGE_STEPS_TO_OMIT_OMIT_NONE\x10\x00\x12\x32\n.SELF_CALIBRATE_RANGE_STEPS_TO_OMIT_LO_SELF_CAL\x10\x01\x12;\n7SELF_CALIBRATE_RANGE_STEPS_TO_OMIT_POWER_LEVEL_ACCURACY\x10\x02\x12\x38\n4SELF_CALIBRATE_RANGE_STEPS_TO_OMIT_RESIDUAL_LO_POWER\x10\x04\x12\x38\n4SELF_CALIBRATE_RANGE_STEPS_TO_OMIT_IMAGE_SUPPRESSION\x10\x08\x12<\n8SELF_CALIBRATE_RANGE_STEPS_TO_OMIT_SYNTHESIZER_ALIGNMENT\x10\x10*\xe9\x02\n\x10SignalIdentifier\x12!\n\x1dSIGNAL_IDENTIFIER_UNSPECIFIED\x10\x00\x12\x1a\n\x16SIGNAL_IDENTIFIER_NONE\x10\x01\x12%\n!SIGNAL_IDENTIFIER_SCRIPT_TRIGGER0\x10\x02\x12%\n!SIGNAL_IDENTIFIER_SCRIPT_TRIGGER1\x10\x03\x12%\n!SIGNAL_IDENTIFIER_SCRIPT_TRIGGER2\x10\x04\x12%\n!SIGNAL_IDENTIFIER_SCRIPT_TRIGGER3\x10\x05\x12\x1d\n\x19SIGNAL_IDENTIFIER_MARKER0\x10\x06\x12\x1d\n\x19SIGNAL_IDENTIFIER_MARKER1\x10\x07\x12\x1d\n\x19SIGNAL_IDENTIFIER_MARKER2\x10\x08\x12\x1d\n\x19SIGNAL_IDENTIFIER_MARKER3\x10\t*\x90\x06\n\rTriggerSource\x12\x1e\n\x1aTRIGGER_SOURCE_UNSPECIFIED\x10\x00\x12\x17\n\x13TRIGGER_SOURCE_PFI0\x10\x01\x12\x17\n\x13TRIGGER_SOURCE_PFI1\x10\x02\x12\x17\n\x13TRIGGER_SOURCE_PFI2\x10\x03\x12\x17\n\x13TRIGGER_SOURCE_PFI3\x10\x04\x12\x1c\n\x18TRIGGER_SOURCE_PXI_TRIG0\x10\x05\x12\x1c\n\x18TRIGGER_SOURCE_PXI_TRIG1\x10\x06\x12\x1c\n\x18TRIGGER_SOURCE_PXI_TRIG2\x10\x07\x12\x1c\n\x18TRIGGER_SOURCE_PXI_TRIG3\x10\x08\x12\x1c\n\x18TRIGGER_SOURCE_PXI_TRIG4\x10\t\x12\x1c\n\x18TRIGGER_SOURCE_PXI_TRIG5\x10\n\x12\x1c\n\x18TRIGGER_SOURCE_PXI_TRIG6\x10\x0b\x12\x1c\n\x18TRIGGER_SOURCE_PXI_TRIG7\x10\x0c\x12\x1b\n\x17TRIGGER_SOURCE_PXI_STAR\x10\r\x12\x1e\n\x1aTRIGGER_SOURCE_PXIE_DSTARB\x10\x0e\x12%\n!TRIGGER_SOURCE_SYNC_START_TRIGGER\x10\x0f\x12&\n\"TRIGGER_SOURCE_SYNC_SCRIPT_TRIGGER\x10\x10\x12\x1a\n\x16TRIGGER_SOURCE_TRIG_IN\x10\x11\x12\x1b\n\x17TRIGGER_SOURCE_PULSE_IN\x10\x12\x12\x17\n\x13TRIGGER_SOURCE_DIO0\x10\x13\x12\x17\n\x13TRIGGER_SOURCE_DIO1\x10\x14\x12\x17\n\x13TRIGGER_SOURCE_DIO2\x10\x15\x12\x17\n\x13TRIGGER_SOURCE_DIO3\x10\x16\x12\x17\n\x13TRIGGER_SOURCE_DIO4\x10\x17\x12\x17\n\x13TRIGGER_SOURCE_DIO5\x10\x18\x12\x17\n\x13TRIGGER_SOURCE_DIO6\x10\x19\x12\x17\n\x13TRIGGER_SOURCE_DIO7\x10\x1a*\x85)\n\x1aNiRFSGInt32AttributeValues\x12\x1c\n\x18NIRFSG_INT32_UNSPECIFIED\x10\x00\x12%\n NIRFSG_INT32_AMP_PATH_HIGH_POWER\x10\x80}\x12\'\n\"NIRFSG_INT32_AMP_PATH_LOW_HARMONIC\x10\x81}\x12\x37\n1NIRFSG_INT32_ANALOG_MODULATION_FM_BAND_NARROWBAND\x10\xe8\x84\x01\x12\x35\n/NIRFSG_INT32_ANALOG_MODULATION_FM_BAND_WIDEBAND\x10\xe9\x84\x01\x12M\nGNIRFSG_INT32_ANALOG_MODULATION_FM_NARROWBAND_INTEGRATOR_100_HZ_TO_1_KHZ\x10\xd0\x8c\x01\x12M\nGNIRFSG_INT32_ANALOG_MODULATION_FM_NARROWBAND_INTEGRATOR_1_KHZ_TO_10_KHZ\x10\xd1\x8c\x01\x12O\nINIRFSG_INT32_ANALOG_MODULATION_FM_NARROWBAND_INTEGRATOR_10_KHZ_TO_100_KHZ\x10\xd2\x8c\x01\x12;\n5NIRFSG_INT32_ANALOG_MODULATION_PM_MODE_HIGH_DEVIATION\x10\xb8\x94\x01\x12<\n6NIRFSG_INT32_ANALOG_MODULATION_PM_MODE_LOW_PHASE_NOISE\x10\xb9\x94\x01\x12,\n(NIRFSG_INT32_ANALOG_MODULATION_TYPE_NONE\x10\x00\x12+\n&NIRFSG_INT32_ANALOG_MODULATION_TYPE_FM\x10\xd0\x0f\x12+\n&NIRFSG_INT32_ANALOG_MODULATION_TYPE_PM\x10\xd1\x0f\x12+\n&NIRFSG_INT32_ANALOG_MODULATION_TYPE_AM\x10\xd2\x0f\x12\x36\n1NIRFSG_INT32_ANALOG_MODULATION_WAVEFORM_TYPE_SINE\x10\xb8\x17\x12\x38\n3NIRFSG_INT32_ANALOG_MODULATION_WAVEFORM_TYPE_SQUARE\x10\xb9\x17\x12:\n5NIRFSG_INT32_ANALOG_MODULATION_WAVEFORM_TYPE_TRIANGLE\x10\xba\x17\x12&\n!NIRFSG_INT32_ARB_FILTER_TYPE_NONE\x10\x90N\x12\x34\n/NIRFSG_INT32_ARB_FILTER_TYPE_ROOT_RAISED_COSINE\x10\x91N\x12/\n*NIRFSG_INT32_ARB_FILTER_TYPE_RAISED_COSINE\x10\x92N\x12?\n:NIRFSG_INT32_ARB_ONBOARD_SAMPLE_CLOCK_MODE_HIGH_RESOLUTION\x10\xf0.\x12;\n6NIRFSG_INT32_ARB_ONBOARD_SAMPLE_CLOCK_MODE_DIVIDE_DOWN\x10\xf1.\x12>\n:NIRFSG_INT32_CONFIG_LIST_TRIGGER_DIG_EDGE_EDGE_RISING_EDGE\x10\x00\x12O\nKNIRFSG_INT32_CONFIGURATION_LIST_REPEAT_CONFIGURATION_LIST_REPEAT_CONTINUOUS\x10\x00\x12K\nGNIRFSG_INT32_CONFIGURATION_LIST_REPEAT_CONFIGURATION_LIST_REPEAT_SINGLE\x10\x01\x12(\n\"NIRFSG_INT32_DEEMBEDDING_TYPE_NONE\x10\xa8\xc3\x01\x12*\n$NIRFSG_INT32_DEEMBEDDING_TYPE_SCALAR\x10\xa9\xc3\x01\x12*\n$NIRFSG_INT32_DEEMBEDDING_TYPE_VECTOR\x10\xaa\xc3\x01\x12.\n*NIRFSG_INT32_DIGITAL_EDGE_EDGE_RISING_EDGE\x10\x00\x12/\n+NIRFSG_INT32_DIGITAL_EDGE_EDGE_FALLING_EDGE\x10\x01\x12\x38\n3NIRFSG_INT32_DIGITAL_LEVEL_ACTIVE_LEVEL_ACTIVE_HIGH\x10\xa8\x46\x12\x37\n2NIRFSG_INT32_DIGITAL_LEVEL_ACTIVE_LEVEL_ACTIVE_LOW\x10\xa9\x46\x12-\n)NIRFSG_INT32_DIGITAL_MODULATION_TYPE_NONE\x10\x00\x12-\n(NIRFSG_INT32_DIGITAL_MODULATION_TYPE_FSK\x10\xa0\x1f\x12-\n(NIRFSG_INT32_DIGITAL_MODULATION_TYPE_OOK\x10\xa1\x1f\x12-\n(NIRFSG_INT32_DIGITAL_MODULATION_TYPE_PSK\x10\xa2\x1f\x12\x37\n2NIRFSG_INT32_DIGITAL_MODULATION_WAVEFORM_TYPE_PRBS\x10\x88\'\x12?\n:NIRFSG_INT32_DIGITAL_MODULATION_WAVEFORM_TYPE_USER_DEFINED\x10\x89\'\x12&\n\"NIRFSG_INT32_ENABLE_VALUES_DISABLE\x10\x00\x12%\n!NIRFSG_INT32_ENABLE_VALUES_ENABLE\x10\x01\x12:\n5NIRFSG_INT32_FREQUENCY_SETTLING_UNITS_TIME_AFTER_LOCK\x10\xe0]\x12\x38\n3NIRFSG_INT32_FREQUENCY_SETTLING_UNITS_TIME_AFTER_IO\x10\xe1]\x12.\n)NIRFSG_INT32_FREQUENCY_SETTLING_UNITS_PPM\x10\xe2]\x12$\n\x1fNIRFSG_INT32_GENERATION_MODE_CW\x10\xe8\x07\x12.\n)NIRFSG_INT32_GENERATION_MODE_ARB_WAVEFORM\x10\xe9\x07\x12(\n#NIRFSG_INT32_GENERATION_MODE_SCRIPT\x10\xea\x07\x12)\n$NIRFSG_INT32_IQ_OFFSET_UNITS_PERCENT\x10\xf8U\x12\'\n\"NIRFSG_INT32_IQ_OFFSET_UNITS_VOLTS\x10\xf9U\x12\x36\n1NIRFSG_INT32_IQ_OUT_PORT_TERM_CONFIG_DIFFERENTIAL\x10\x98u\x12\x36\n1NIRFSG_INT32_IQ_OUT_PORT_TERM_CONFIG_SINGLE_ENDED\x10\x99u\x12,\n(NIRFSG_INT32_LIST_STEP_TRIGGER_TYPE_NONE\x10\x00\x12\x34\n0NIRFSG_INT32_LIST_STEP_TRIGGER_TYPE_DIGITAL_EDGE\x10\x01\x12\'\n#NIRFSG_INT32_LOAD_OPTIONS_SKIP_NONE\x10\x00\x12,\n(NIRFSG_INT32_LOAD_OPTIONS_SKIP_WAVEFORMS\x10\x01\x12&\n\"NIRFSG_INT32_LOOP_BANDWIDTH_NARROW\x10\x00\x12&\n\"NIRFSG_INT32_LOOP_BANDWIDTH_MEDIUM\x10\x01\x12$\n NIRFSG_INT32_LOOP_BANDWIDTH_WIDE\x10\x02\x12\x35\n/NIRFSG_INT32_MARKER_EVENT_OUTPUT_BEHAVIOR_PULSE\x10\xd8\xb3\x01\x12\x36\n0NIRFSG_INT32_MARKER_EVENT_OUTPUT_BEHAVIOR_TOGGLE\x10\xd9\xb3\x01\x12\x39\n3NIRFSG_INT32_MARKER_EVENT_PULSE_WIDTH_UNITS_SECONDS\x10\xf0\xab\x01\x12\x46\n@NIRFSG_INT32_MARKER_EVENT_PULSE_WIDTH_UNITS_SAMPLE_CLOCK_PERIODS\x10\xf1\xab\x01\x12@\n:NIRFSG_INT32_MARKER_EVENT_TOGGLE_INITIAL_STATE_DIGITAL_LOW\x10\x88\xa4\x01\x12\x41\n;NIRFSG_INT32_MARKER_EVENT_TOGGLE_INITIAL_STATE_DIGITAL_HIGH\x10\x89\xa4\x01\x12$\n\x1fNIRFSG_INT32_OUTPUT_PORT_RF_OUT\x10\xb0m\x12$\n\x1fNIRFSG_INT32_OUTPUT_PORT_IQ_OUT\x10\xb1m\x12%\n NIRFSG_INT32_OUTPUT_PORT_CAL_OUT\x10\xb2m\x12$\n\x1fNIRFSG_INT32_OUTPUT_PORT_I_ONLY\x10\xb3m\x12\x32\n-NIRFSG_INT32_OVERFLOW_ERROR_REPORTING_WARNING\x10\x95\n\x12\x33\n.NIRFSG_INT32_OVERFLOW_ERROR_REPORTING_DISABLED\x10\x96\n\x12\x33\n/NIRFSG_INT32_PPA_SCRIPT_INHERITANCE_EXACT_MATCH\x10\x00\x12/\n+NIRFSG_INT32_PPA_SCRIPT_INHERITANCE_MINIMUM\x10\x01\x12/\n+NIRFSG_INT32_PPA_SCRIPT_INHERITANCE_MAXIMUM\x10\x02\x12)\n%NIRFSG_INT32_PHASE_CONTINUITY_DISABLE\x10\x00\x12/\n\"NIRFSG_INT32_PHASE_CONTINUITY_AUTO\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12(\n$NIRFSG_INT32_PHASE_CONTINUITY_ENABLE\x10\x01\x12\x30\n+NIRFSG_INT32_POWER_LEVEL_TYPE_AVERAGE_POWER\x10\xd8\x36\x12-\n(NIRFSG_INT32_POWER_LEVEL_TYPE_PEAK_POWER\x10\xd9\x36\x12\x36\n0NIRFSG_INT32_PULSE_MODULATION_MODE_OPTIMAL_MATCH\x10\xa0\x9c\x01\x12\x37\n1NIRFSG_INT32_PULSE_MODULATION_MODE_HIGH_ISOLATION\x10\xa1\x9c\x01\x12(\n$NIRFSG_INT32_RESET_OPTIONS_SKIP_NONE\x10\x00\x12-\n)NIRFSG_INT32_RESET_OPTIONS_SKIP_WAVEFORMS\x10\x01\x12+\n\'NIRFSG_INT32_RESET_OPTIONS_SKIP_SCRIPTS\x10\x02\x12\x35\n1NIRFSG_INT32_RESET_OPTIONS_SKIP_DEEMBEDING_TABLES\x10\x08\x12\x30\n,NIRFSG_INT32_RF_IN_LO_EXPORT_ENABLED_DISABLE\x10\x00\x12=\n0NIRFSG_INT32_RF_IN_LO_EXPORT_ENABLED_UNSPECIFIED\x10\xfe\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12/\n+NIRFSG_INT32_RF_IN_LO_EXPORT_ENABLED_ENABLE\x10\x01\x12)\n%NIRFSG_INT32_SCRIPT_TRIGGER_TYPE_NONE\x10\x00\x12\x31\n-NIRFSG_INT32_SCRIPT_TRIGGER_TYPE_DIGITAL_EDGE\x10\x01\x12\x33\n.NIRFSG_INT32_SCRIPT_TRIGGER_TYPE_DIGITAL_LEVEL\x10\xc0>\x12-\n)NIRFSG_INT32_SCRIPT_TRIGGER_TYPE_SOFTWARE\x10\x02\x12(\n$NIRFSG_INT32_START_TRIGGER_TYPE_NONE\x10\x00\x12\x30\n,NIRFSG_INT32_START_TRIGGER_TYPE_DIGITAL_EDGE\x10\x01\x12,\n(NIRFSG_INT32_START_TRIGGER_TYPE_SOFTWARE\x10\x02\x12:\n6NIRFSG_INT32_START_TRIGGER_TYPE_P2_P_ENDPOINT_FULLNESS\x10\x03\x12@\n3NIRFSG_INT32_UPCONVERTER_FREQUENCY_OFFSET_MODE_AUTO\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12\x39\n5NIRFSG_INT32_UPCONVERTER_FREQUENCY_OFFSET_MODE_ENABLE\x10\x01\x12@\n;NIRFSG_INT32_UPCONVERTER_FREQUENCY_OFFSET_MODE_USER_DEFINED\x10\x89\'\x12;\n7NIRFSG_INT32_WRITE_WAVEFORM_BURST_DETECTION_MODE_MANUAL\x10\x00\x12\x42\n5NIRFSG_INT32_WRITE_WAVEFORM_BURST_DETECTION_MODE_AUTO\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12#\n\x1fNIRFSG_INT32_YIG_MAIN_COIL_SLOW\x10\x00\x12#\n\x1fNIRFSG_INT32_YIG_MAIN_COIL_FAST\x10\x01\x1a\x02\x10\x01*\x98\x01\n\x1bNiRFSGReal64AttributeValues\x12\x1d\n\x19NIRFSG_REAL64_UNSPECIFIED\x10\x00\x12*\n#NIRFSG_REAL64_REF_CLOCK_RATE_10_MHZ\x10\x80\xad\xe2\x04\x12.\n!NIRFSG_REAL64_REF_CLOCK_RATE_AUTO\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01*\xd0\x30\n!NiRFSGStringAttributeValuesMapped\x12$\n NIRFSG_STRING_MAPPED_UNSPECIFIED\x10\x00\x12\x36\n2NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DO_NOT_EXPORT\x10\x01\x12-\n)NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PFI0\x10\x02\x12-\n)NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PFI1\x10\x03\x12-\n)NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PFI4\x10\x04\x12-\n)NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PFI5\x10\x05\x12\x32\n.NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG0\x10\x06\x12\x32\n.NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG1\x10\x07\x12\x32\n.NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG2\x10\x08\x12\x32\n.NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG3\x10\t\x12\x32\n.NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG4\x10\n\x12\x32\n.NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG5\x10\x0b\x12\x32\n.NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG6\x10\x0c\x12\x34\n0NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXIE_DSTARC\x10\r\x12\x31\n-NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_TRIG_OUT\x10\x0e\x12\x37\n3NIRFSG_STRING_ARB_SAMPLE_CLOCK_SOURCE_ONBOARD_CLOCK\x10\x0f\x12\x30\n,NIRFSG_STRING_ARB_SAMPLE_CLOCK_SOURCE_CLK_IN\x10\x10\x12<\n8NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DO_NOT_EXPORT\x10\x11\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PFI0\x10\x12\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PFI1\x10\x13\x12\x38\n4NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG0\x10\x14\x12\x38\n4NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG1\x10\x15\x12\x38\n4NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG2\x10\x16\x12\x38\n4NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG3\x10\x17\x12\x38\n4NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG4\x10\x18\x12\x38\n4NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG5\x10\x19\x12\x38\n4NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG6\x10\x1a\x12:\n6NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXIE_DSTARC\x10\x1b\x12\x37\n3NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_TRIG_OUT\x10\x1c\x12.\n*NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PFI0\x10\x1d\x12.\n*NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PFI1\x10\x1e\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG0\x10\x1f\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG1\x10 \x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG2\x10!\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG3\x10\"\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG4\x10#\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG5\x10$\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG6\x10%\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG7\x10&\x12\x35\n1NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXIE_DSTARB\x10\'\x12\x37\n3NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_MARKER0_EVENT\x10(\x12\x37\n3NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_MARKER1_EVENT\x10)\x12\x37\n3NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_MARKER2_EVENT\x10*\x12\x37\n3NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_MARKER3_EVENT\x10+\x12\x35\n1NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_TIMER_EVENT\x10,\x12\x31\n-NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_TRIG_IN\x10-\x12@\n\n:NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXIE_DSTARC\x10\x36\x12;\n7NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_TRIG_OUT\x10\x37\x12#\n\x1fNIRFSG_STRING_LO_SOURCE_ONBOARD\x10\x38\x12!\n\x1dNIRFSG_STRING_LO_SOURCE_LO_IN\x10\x39\x12%\n!NIRFSG_STRING_LO_SOURCE_SECONDARY\x10:\x12(\n$NIRFSG_STRING_LO_SOURCE_SG_SA_SHARED\x10;\x12\x32\n.NIRFSG_STRING_LO_SOURCE_AUTOMATIC_SG_SA_SHARED\x10<\x12(\n$NIRFSG_STRING_PXI_CHASSIS_CLK10_NONE\x10=\x12\x31\n-NIRFSG_STRING_PXI_CHASSIS_CLK10_ONBOARD_CLOCK\x10>\x12*\n&NIRFSG_STRING_PXI_CHASSIS_CLK10_REF_IN\x10?\x12\x35\n1NIRFSG_STRING_REF_CLOCK_OUTPUT_TERM_DO_NOT_EXPORT\x10@\x12/\n+NIRFSG_STRING_REF_CLOCK_OUTPUT_TERM_REF_OUT\x10\x41\x12\x30\n,NIRFSG_STRING_REF_CLOCK_OUTPUT_TERM_REF_OUT2\x10\x42\x12/\n+NIRFSG_STRING_REF_CLOCK_OUTPUT_TERM_CLK_OUT\x10\x43\x12\x30\n,NIRFSG_STRING_REF_CLOCK_SOURCE_ONBOARD_CLOCK\x10\x44\x12)\n%NIRFSG_STRING_REF_CLOCK_SOURCE_REF_IN\x10\x45\x12*\n&NIRFSG_STRING_REF_CLOCK_SOURCE_PXI_CLK\x10\x46\x12)\n%NIRFSG_STRING_REF_CLOCK_SOURCE_CLK_IN\x10G\x12+\n\'NIRFSG_STRING_REF_CLOCK_SOURCE_REF_IN_2\x10H\x12\x31\n-NIRFSG_STRING_REF_CLOCK_SOURCE_PXI_CLK_MASTER\x10I\x12%\n!NIRFSG_STRING_TRIGGER_SOURCE_PFI0\x10J\x12%\n!NIRFSG_STRING_TRIGGER_SOURCE_PFI1\x10K\x12%\n!NIRFSG_STRING_TRIGGER_SOURCE_PFI2\x10L\x12%\n!NIRFSG_STRING_TRIGGER_SOURCE_PFI3\x10M\x12*\n&NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG0\x10N\x12*\n&NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG1\x10O\x12*\n&NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG2\x10P\x12*\n&NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG3\x10Q\x12*\n&NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG4\x10R\x12*\n&NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG5\x10S\x12*\n&NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG6\x10T\x12*\n&NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG7\x10U\x12)\n%NIRFSG_STRING_TRIGGER_SOURCE_PXI_STAR\x10V\x12,\n(NIRFSG_STRING_TRIGGER_SOURCE_PXIE_DSTARB\x10W\x12\x33\n/NIRFSG_STRING_TRIGGER_SOURCE_SYNC_START_TRIGGER\x10X\x12\x34\n0NIRFSG_STRING_TRIGGER_SOURCE_SYNC_SCRIPT_TRIGGER\x10Y\x12(\n$NIRFSG_STRING_TRIGGER_SOURCE_TRIG_IN\x10Z\x12-\n)NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO0\x10[\x12-\n)NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO1\x10\\\x12-\n)NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO2\x10]\x12-\n)NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO3\x10^\x12-\n)NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO4\x10_\x12-\n)NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO5\x10`\x12-\n)NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO6\x10\x61\x12-\n)NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO7\x10\x62\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO0\x10\x63\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO1\x10\x64\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO2\x10\x65\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO3\x10\x66\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO4\x10g\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO5\x10h\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO6\x10i\x12\x33\n/NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO7\x10j\x12.\n*NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO0\x10k\x12.\n*NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO1\x10l\x12.\n*NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO2\x10m\x12.\n*NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO3\x10n\x12.\n*NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO4\x10o\x12.\n*NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO5\x10p\x12.\n*NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO6\x10q\x12.\n*NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO7\x10r\x12)\n%NIRFSG_STRING_TRIGGER_SOURCE_PULSE_IN\x10s\x12%\n!NIRFSG_STRING_TRIGGER_SOURCE_DIO0\x10t\x12%\n!NIRFSG_STRING_TRIGGER_SOURCE_DIO1\x10u\x12%\n!NIRFSG_STRING_TRIGGER_SOURCE_DIO2\x10v\x12%\n!NIRFSG_STRING_TRIGGER_SOURCE_DIO3\x10w\x12%\n!NIRFSG_STRING_TRIGGER_SOURCE_DIO4\x10x\x12%\n!NIRFSG_STRING_TRIGGER_SOURCE_DIO5\x10y\x12%\n!NIRFSG_STRING_TRIGGER_SOURCE_DIO6\x10z\x12%\n!NIRFSG_STRING_TRIGGER_SOURCE_DIO7\x10{2\xaf\x65\n\x06NiRFSG\x12>\n\x05\x41\x62ort\x12\x19.nirfsg_grpc.AbortRequest\x1a\x1a.nirfsg_grpc.AbortResponse\x12h\n\x13\x41llocateArbWaveform\x12\'.nirfsg_grpc.AllocateArbWaveformRequest\x1a(.nirfsg_grpc.AllocateArbWaveformResponse\x12t\n\x17\x43heckAttributeViBoolean\x12+.nirfsg_grpc.CheckAttributeViBooleanRequest\x1a,.nirfsg_grpc.CheckAttributeViBooleanResponse\x12n\n\x15\x43heckAttributeViInt32\x12).nirfsg_grpc.CheckAttributeViInt32Request\x1a*.nirfsg_grpc.CheckAttributeViInt32Response\x12n\n\x15\x43heckAttributeViInt64\x12).nirfsg_grpc.CheckAttributeViInt64Request\x1a*.nirfsg_grpc.CheckAttributeViInt64Response\x12q\n\x16\x43heckAttributeViReal64\x12*.nirfsg_grpc.CheckAttributeViReal64Request\x1a+.nirfsg_grpc.CheckAttributeViReal64Response\x12t\n\x17\x43heckAttributeViSession\x12+.nirfsg_grpc.CheckAttributeViSessionRequest\x1a,.nirfsg_grpc.CheckAttributeViSessionResponse\x12q\n\x16\x43heckAttributeViString\x12*.nirfsg_grpc.CheckAttributeViStringRequest\x1a+.nirfsg_grpc.CheckAttributeViStringResponse\x12n\n\x15\x43heckGenerationStatus\x12).nirfsg_grpc.CheckGenerationStatusRequest\x1a*.nirfsg_grpc.CheckGenerationStatusResponse\x12\x89\x01\n\x1e\x43heckIfConfigurationListExists\x12\x32.nirfsg_grpc.CheckIfConfigurationListExistsRequest\x1a\x33.nirfsg_grpc.CheckIfConfigurationListExistsResponse\x12h\n\x13\x43heckIfScriptExists\x12\'.nirfsg_grpc.CheckIfScriptExistsRequest\x1a(.nirfsg_grpc.CheckIfScriptExistsResponse\x12n\n\x15\x43heckIfWaveformExists\x12).nirfsg_grpc.CheckIfWaveformExistsRequest\x1a*.nirfsg_grpc.CheckIfWaveformExistsResponse\x12k\n\x14\x43learAllArbWaveforms\x12(.nirfsg_grpc.ClearAllArbWaveformsRequest\x1a).nirfsg_grpc.ClearAllArbWaveformsResponse\x12_\n\x10\x43learArbWaveform\x12$.nirfsg_grpc.ClearArbWaveformRequest\x1a%.nirfsg_grpc.ClearArbWaveformResponse\x12M\n\nClearError\x12\x1e.nirfsg_grpc.ClearErrorRequest\x1a\x1f.nirfsg_grpc.ClearErrorResponse\x12t\n\x17\x43learSelfCalibrateRange\x12+.nirfsg_grpc.ClearSelfCalibrateRangeRequest\x1a,.nirfsg_grpc.ClearSelfCalibrateRangeResponse\x12>\n\x05\x43lose\x12\x19.nirfsg_grpc.CloseRequest\x1a\x1a.nirfsg_grpc.CloseResponse\x12\x41\n\x06\x43ommit\x12\x1a.nirfsg_grpc.CommitRequest\x1a\x1b.nirfsg_grpc.CommitResponse\x12\xb3\x01\n,ConfigureDeembeddingTableInterpolationLinear\x12@.nirfsg_grpc.ConfigureDeembeddingTableInterpolationLinearRequest\x1a\x41.nirfsg_grpc.ConfigureDeembeddingTableInterpolationLinearResponse\x12\xb6\x01\n-ConfigureDeembeddingTableInterpolationNearest\x12\x41.nirfsg_grpc.ConfigureDeembeddingTableInterpolationNearestRequest\x1a\x42.nirfsg_grpc.ConfigureDeembeddingTableInterpolationNearestResponse\x12\xb3\x01\n,ConfigureDeembeddingTableInterpolationSpline\x12@.nirfsg_grpc.ConfigureDeembeddingTableInterpolationSplineRequest\x1a\x41.nirfsg_grpc.ConfigureDeembeddingTableInterpolationSplineResponse\x12\xbf\x01\n0ConfigureDigitalEdgeConfigurationListStepTrigger\x12\x44.nirfsg_grpc.ConfigureDigitalEdgeConfigurationListStepTriggerRequest\x1a\x45.nirfsg_grpc.ConfigureDigitalEdgeConfigurationListStepTriggerResponse\x12\x92\x01\n!ConfigureDigitalEdgeScriptTrigger\x12\x35.nirfsg_grpc.ConfigureDigitalEdgeScriptTriggerRequest\x1a\x36.nirfsg_grpc.ConfigureDigitalEdgeScriptTriggerResponse\x12\x8f\x01\n ConfigureDigitalEdgeStartTrigger\x12\x34.nirfsg_grpc.ConfigureDigitalEdgeStartTriggerRequest\x1a\x35.nirfsg_grpc.ConfigureDigitalEdgeStartTriggerResponse\x12\x95\x01\n\"ConfigureDigitalLevelScriptTrigger\x12\x36.nirfsg_grpc.ConfigureDigitalLevelScriptTriggerRequest\x1a\x37.nirfsg_grpc.ConfigureDigitalLevelScriptTriggerResponse\x12\xb6\x01\n-ConfigureDigitalModulationUserDefinedWaveform\x12\x41.nirfsg_grpc.ConfigureDigitalModulationUserDefinedWaveformRequest\x1a\x42.nirfsg_grpc.ConfigureDigitalModulationUserDefinedWaveformResponse\x12t\n\x17\x43onfigureGenerationMode\x12+.nirfsg_grpc.ConfigureGenerationModeRequest\x1a,.nirfsg_grpc.ConfigureGenerationModeResponse\x12q\n\x16\x43onfigureOutputEnabled\x12*.nirfsg_grpc.ConfigureOutputEnabledRequest\x1a+.nirfsg_grpc.ConfigureOutputEnabledResponse\x12\xa7\x01\n(ConfigureP2PEndpointFullnessStartTrigger\x12<.nirfsg_grpc.ConfigureP2PEndpointFullnessStartTriggerRequest\x1a=.nirfsg_grpc.ConfigureP2PEndpointFullnessStartTriggerResponse\x12w\n\x18\x43onfigurePXIChassisClk10\x12,.nirfsg_grpc.ConfigurePXIChassisClk10Request\x1a-.nirfsg_grpc.ConfigurePXIChassisClk10Response\x12t\n\x17\x43onfigurePowerLevelType\x12+.nirfsg_grpc.ConfigurePowerLevelTypeRequest\x1a,.nirfsg_grpc.ConfigurePowerLevelTypeResponse\x12P\n\x0b\x43onfigureRF\x12\x1f.nirfsg_grpc.ConfigureRFRequest\x1a .nirfsg_grpc.ConfigureRFResponse\x12\x62\n\x11\x43onfigureRefClock\x12%.nirfsg_grpc.ConfigureRefClockRequest\x1a&.nirfsg_grpc.ConfigureRefClockResponse\x12w\n\x18\x43onfigureSignalBandwidth\x12,.nirfsg_grpc.ConfigureSignalBandwidthRequest\x1a-.nirfsg_grpc.ConfigureSignalBandwidthResponse\x12\x89\x01\n\x1e\x43onfigureSoftwareScriptTrigger\x12\x32.nirfsg_grpc.ConfigureSoftwareScriptTriggerRequest\x1a\x33.nirfsg_grpc.ConfigureSoftwareScriptTriggerResponse\x12\x86\x01\n\x1d\x43onfigureSoftwareStartTrigger\x12\x31.nirfsg_grpc.ConfigureSoftwareStartTriggerRequest\x1a\x32.nirfsg_grpc.ConfigureSoftwareStartTriggerResponse\x12\x98\x01\n#ConfigureUpconverterPLLSettlingTime\x12\x37.nirfsg_grpc.ConfigureUpconverterPLLSettlingTimeRequest\x1a\x38.nirfsg_grpc.ConfigureUpconverterPLLSettlingTimeResponse\x12t\n\x17\x43reateConfigurationList\x12+.nirfsg_grpc.CreateConfigurationListRequest\x1a,.nirfsg_grpc.CreateConfigurationListResponse\x12\x80\x01\n\x1b\x43reateConfigurationListStep\x12/.nirfsg_grpc.CreateConfigurationListStepRequest\x1a\x30.nirfsg_grpc.CreateConfigurationListStepResponse\x12\x9e\x01\n%CreateDeembeddingSparameterTableArray\x12\x39.nirfsg_grpc.CreateDeembeddingSparameterTableArrayRequest\x1a:.nirfsg_grpc.CreateDeembeddingSparameterTableArrayResponse\x12\xa4\x01\n\'CreateDeembeddingSparameterTableS2PFile\x12;.nirfsg_grpc.CreateDeembeddingSparameterTableS2PFileRequest\x1a<.nirfsg_grpc.CreateDeembeddingSparameterTableS2PFileResponse\x12}\n\x1a\x44\x65leteAllDeembeddingTables\x12..nirfsg_grpc.DeleteAllDeembeddingTablesRequest\x1a/.nirfsg_grpc.DeleteAllDeembeddingTablesResponse\x12t\n\x17\x44\x65leteConfigurationList\x12+.nirfsg_grpc.DeleteConfigurationListRequest\x1a,.nirfsg_grpc.DeleteConfigurationListResponse\x12q\n\x16\x44\x65leteDeembeddingTable\x12*.nirfsg_grpc.DeleteDeembeddingTableRequest\x1a+.nirfsg_grpc.DeleteDeembeddingTableResponse\x12S\n\x0c\x44\x65leteScript\x12 .nirfsg_grpc.DeleteScriptRequest\x1a!.nirfsg_grpc.DeleteScriptResponse\x12\x44\n\x07\x44isable\x12\x1b.nirfsg_grpc.DisableRequest\x1a\x1c.nirfsg_grpc.DisableResponse\x12k\n\x14\x44isableAllModulation\x12(.nirfsg_grpc.DisableAllModulationRequest\x1a).nirfsg_grpc.DisableAllModulationResponse\x12\x98\x01\n#DisableConfigurationListStepTrigger\x12\x37.nirfsg_grpc.DisableConfigurationListStepTriggerRequest\x1a\x38.nirfsg_grpc.DisableConfigurationListStepTriggerResponse\x12k\n\x14\x44isableScriptTrigger\x12(.nirfsg_grpc.DisableScriptTriggerRequest\x1a).nirfsg_grpc.DisableScriptTriggerResponse\x12h\n\x13\x44isableStartTrigger\x12\'.nirfsg_grpc.DisableStartTriggerRequest\x1a(.nirfsg_grpc.DisableStartTriggerResponse\x12S\n\x0c\x45rrorMessage\x12 .nirfsg_grpc.ErrorMessageRequest\x1a!.nirfsg_grpc.ErrorMessageResponse\x12M\n\nErrorQuery\x12\x1e.nirfsg_grpc.ErrorQueryRequest\x1a\x1f.nirfsg_grpc.ErrorQueryResponse\x12S\n\x0c\x45xportSignal\x12 .nirfsg_grpc.ExportSignalRequest\x1a!.nirfsg_grpc.ExportSignalResponse\x12w\n\x18GetAllNamedWaveformNames\x12,.nirfsg_grpc.GetAllNamedWaveformNamesRequest\x1a-.nirfsg_grpc.GetAllNamedWaveformNamesResponse\x12\x62\n\x11GetAllScriptNames\x12%.nirfsg_grpc.GetAllScriptNamesRequest\x1a&.nirfsg_grpc.GetAllScriptNamesResponse\x12J\n\tGetScript\x12\x1d.nirfsg_grpc.GetScriptRequest\x1a\x1e.nirfsg_grpc.GetScriptResponse\x12n\n\x15GetAttributeViBoolean\x12).nirfsg_grpc.GetAttributeViBooleanRequest\x1a*.nirfsg_grpc.GetAttributeViBooleanResponse\x12h\n\x13GetAttributeViInt32\x12\'.nirfsg_grpc.GetAttributeViInt32Request\x1a(.nirfsg_grpc.GetAttributeViInt32Response\x12h\n\x13GetAttributeViInt64\x12\'.nirfsg_grpc.GetAttributeViInt64Request\x1a(.nirfsg_grpc.GetAttributeViInt64Response\x12k\n\x14GetAttributeViReal64\x12(.nirfsg_grpc.GetAttributeViReal64Request\x1a).nirfsg_grpc.GetAttributeViReal64Response\x12n\n\x15GetAttributeViSession\x12).nirfsg_grpc.GetAttributeViSessionRequest\x1a*.nirfsg_grpc.GetAttributeViSessionResponse\x12k\n\x14GetAttributeViString\x12(.nirfsg_grpc.GetAttributeViStringRequest\x1a).nirfsg_grpc.GetAttributeViStringResponse\x12Y\n\x0eGetChannelName\x12\".nirfsg_grpc.GetChannelNameRequest\x1a#.nirfsg_grpc.GetChannelNameResponse\x12z\n\x19GetDeembeddingSparameters\x12-.nirfsg_grpc.GetDeembeddingSparametersRequest\x1a..nirfsg_grpc.GetDeembeddingSparametersResponse\x12G\n\x08GetError\x12\x1c.nirfsg_grpc.GetErrorRequest\x1a\x1d.nirfsg_grpc.GetErrorResponse\x12\x9e\x01\n%GetExternalCalibrationLastDateAndTime\x12\x39.nirfsg_grpc.GetExternalCalibrationLastDateAndTimeRequest\x1a:.nirfsg_grpc.GetExternalCalibrationLastDateAndTimeResponse\x12h\n\x13GetMaxSettablePower\x12\'.nirfsg_grpc.GetMaxSettablePowerRequest\x1a(.nirfsg_grpc.GetMaxSettablePowerResponse\x12\x86\x01\n\x1dGetSelfCalibrationDateAndTime\x12\x31.nirfsg_grpc.GetSelfCalibrationDateAndTimeRequest\x1a\x32.nirfsg_grpc.GetSelfCalibrationDateAndTimeResponse\x12\x86\x01\n\x1dGetSelfCalibrationTemperature\x12\x31.nirfsg_grpc.GetSelfCalibrationTemperatureRequest\x1a\x32.nirfsg_grpc.GetSelfCalibrationTemperatureResponse\x12\\\n\x0fGetTerminalName\x12#.nirfsg_grpc.GetTerminalNameRequest\x1a$.nirfsg_grpc.GetTerminalNameResponse\x12P\n\x0bGetUserData\x12\x1f.nirfsg_grpc.GetUserDataRequest\x1a .nirfsg_grpc.GetUserDataResponse\x12\x89\x01\n\x1eGetWaveformBurstStartLocations\x12\x32.nirfsg_grpc.GetWaveformBurstStartLocationsRequest\x1a\x33.nirfsg_grpc.GetWaveformBurstStartLocationsResponse\x12\x86\x01\n\x1dGetWaveformBurstStopLocations\x12\x31.nirfsg_grpc.GetWaveformBurstStopLocationsRequest\x1a\x32.nirfsg_grpc.GetWaveformBurstStopLocationsResponse\x12\x8c\x01\n\x1fGetWaveformMarkerEventLocations\x12\x33.nirfsg_grpc.GetWaveformMarkerEventLocationsRequest\x1a\x34.nirfsg_grpc.GetWaveformMarkerEventLocationsResponse\x12;\n\x04Init\x12\x18.nirfsg_grpc.InitRequest\x1a\x19.nirfsg_grpc.InitResponse\x12\\\n\x0fInitWithOptions\x12#.nirfsg_grpc.InitWithOptionsRequest\x1a$.nirfsg_grpc.InitWithOptionsResponse\x12G\n\x08Initiate\x12\x1c.nirfsg_grpc.InitiateRequest\x1a\x1d.nirfsg_grpc.InitiateResponse\x12t\n\x17InvalidateAllAttributes\x12+.nirfsg_grpc.InvalidateAllAttributesRequest\x1a,.nirfsg_grpc.InvalidateAllAttributesResponse\x12}\n\x1aLoadConfigurationsFromFile\x12..nirfsg_grpc.LoadConfigurationsFromFileRequest\x1a/.nirfsg_grpc.LoadConfigurationsFromFileResponse\x12\x65\n\x12PerformPowerSearch\x12&.nirfsg_grpc.PerformPowerSearchRequest\x1a\'.nirfsg_grpc.PerformPowerSearchResponse\x12w\n\x18PerformThermalCorrection\x12,.nirfsg_grpc.PerformThermalCorrectionRequest\x1a-.nirfsg_grpc.PerformThermalCorrectionResponse\x12\x83\x01\n\x1cQueryArbWaveformCapabilities\x12\x30.nirfsg_grpc.QueryArbWaveformCapabilitiesRequest\x1a\x31.nirfsg_grpc.QueryArbWaveformCapabilitiesResponse\x12\x98\x01\n#ReadAndDownloadWaveformFromFileTDMS\x12\x37.nirfsg_grpc.ReadAndDownloadWaveformFromFileTDMSRequest\x1a\x38.nirfsg_grpc.ReadAndDownloadWaveformFromFileTDMSResponse\x12>\n\x05Reset\x12\x19.nirfsg_grpc.ResetRequest\x1a\x1a.nirfsg_grpc.ResetResponse\x12Y\n\x0eResetAttribute\x12\".nirfsg_grpc.ResetAttributeRequest\x1a#.nirfsg_grpc.ResetAttributeResponse\x12P\n\x0bResetDevice\x12\x1f.nirfsg_grpc.ResetDeviceRequest\x1a .nirfsg_grpc.ResetDeviceResponse\x12\x62\n\x11ResetWithDefaults\x12%.nirfsg_grpc.ResetWithDefaultsRequest\x1a&.nirfsg_grpc.ResetWithDefaultsResponse\x12_\n\x10ResetWithOptions\x12$.nirfsg_grpc.ResetWithOptionsRequest\x1a%.nirfsg_grpc.ResetWithOptionsResponse\x12V\n\rRevisionQuery\x12!.nirfsg_grpc.RevisionQueryRequest\x1a\".nirfsg_grpc.RevisionQueryResponse\x12w\n\x18SaveConfigurationsToFile\x12,.nirfsg_grpc.SaveConfigurationsToFileRequest\x1a-.nirfsg_grpc.SaveConfigurationsToFileResponse\x12\x62\n\x11SelectArbWaveform\x12%.nirfsg_grpc.SelectArbWaveformRequest\x1a&.nirfsg_grpc.SelectArbWaveformResponse\x12\x44\n\x07SelfCal\x12\x1b.nirfsg_grpc.SelfCalRequest\x1a\x1c.nirfsg_grpc.SelfCalResponse\x12\x65\n\x12SelfCalibrateRange\x12&.nirfsg_grpc.SelfCalibrateRangeRequest\x1a\'.nirfsg_grpc.SelfCalibrateRangeResponse\x12G\n\x08SelfTest\x12\x1c.nirfsg_grpc.SelfTestRequest\x1a\x1d.nirfsg_grpc.SelfTestResponse\x12t\n\x17SendSoftwareEdgeTrigger\x12+.nirfsg_grpc.SendSoftwareEdgeTriggerRequest\x1a,.nirfsg_grpc.SendSoftwareEdgeTriggerResponse\x12\x8c\x01\n\x1fSetArbWaveformNextWritePosition\x12\x33.nirfsg_grpc.SetArbWaveformNextWritePositionRequest\x1a\x34.nirfsg_grpc.SetArbWaveformNextWritePositionResponse\x12n\n\x15SetAttributeViBoolean\x12).nirfsg_grpc.SetAttributeViBooleanRequest\x1a*.nirfsg_grpc.SetAttributeViBooleanResponse\x12h\n\x13SetAttributeViInt32\x12\'.nirfsg_grpc.SetAttributeViInt32Request\x1a(.nirfsg_grpc.SetAttributeViInt32Response\x12h\n\x13SetAttributeViInt64\x12\'.nirfsg_grpc.SetAttributeViInt64Request\x1a(.nirfsg_grpc.SetAttributeViInt64Response\x12k\n\x14SetAttributeViReal64\x12(.nirfsg_grpc.SetAttributeViReal64Request\x1a).nirfsg_grpc.SetAttributeViReal64Response\x12n\n\x15SetAttributeViSession\x12).nirfsg_grpc.SetAttributeViSessionRequest\x1a*.nirfsg_grpc.SetAttributeViSessionResponse\x12k\n\x14SetAttributeViString\x12(.nirfsg_grpc.SetAttributeViStringRequest\x1a).nirfsg_grpc.SetAttributeViStringResponse\x12P\n\x0bSetUserData\x12\x1f.nirfsg_grpc.SetUserDataRequest\x1a .nirfsg_grpc.SetUserDataResponse\x12\x89\x01\n\x1eSetWaveformBurstStartLocations\x12\x32.nirfsg_grpc.SetWaveformBurstStartLocationsRequest\x1a\x33.nirfsg_grpc.SetWaveformBurstStartLocationsResponse\x12\x86\x01\n\x1dSetWaveformBurstStopLocations\x12\x31.nirfsg_grpc.SetWaveformBurstStopLocationsRequest\x1a\x32.nirfsg_grpc.SetWaveformBurstStopLocationsResponse\x12\x8c\x01\n\x1fSetWaveformMarkerEventLocations\x12\x33.nirfsg_grpc.SetWaveformMarkerEventLocationsRequest\x1a\x34.nirfsg_grpc.SetWaveformMarkerEventLocationsResponse\x12_\n\x10WaitUntilSettled\x12$.nirfsg_grpc.WaitUntilSettledRequest\x1a%.nirfsg_grpc.WaitUntilSettledResponse\x12_\n\x10WriteArbWaveform\x12$.nirfsg_grpc.WriteArbWaveformRequest\x1a%.nirfsg_grpc.WriteArbWaveformResponse\x12}\n\x1aWriteArbWaveformComplexF32\x12..nirfsg_grpc.WriteArbWaveformComplexF32Request\x1a/.nirfsg_grpc.WriteArbWaveformComplexF32Response\x12}\n\x1aWriteArbWaveformComplexF64\x12..nirfsg_grpc.WriteArbWaveformComplexF64Request\x1a/.nirfsg_grpc.WriteArbWaveformComplexF64Response\x12}\n\x1aWriteArbWaveformComplexI16\x12..nirfsg_grpc.WriteArbWaveformComplexI16Request\x1a/.nirfsg_grpc.WriteArbWaveformComplexI16Response\x12h\n\x13WriteArbWaveformF32\x12\'.nirfsg_grpc.WriteArbWaveformF32Request\x1a(.nirfsg_grpc.WriteArbWaveformF32Response\x12P\n\x0bWriteScript\x12\x1f.nirfsg_grpc.WriteScriptRequest\x1a .nirfsg_grpc.WriteScriptResponseB@\n\x12\x63om.ni.grpc.nirfsgB\x06NiRFSGP\x01\xaa\x02\x1fNationalInstruments.Grpc.NiRFSGb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'nirfsg_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.ni.grpc.nirfsgB\006NiRFSGP\001\252\002\037NationalInstruments.Grpc.NiRFSG' + _NIRFSGINT32ATTRIBUTEVALUES._options = None + _NIRFSGINT32ATTRIBUTEVALUES._serialized_options = b'\020\001' + _INITRESPONSE.fields_by_name['error_message']._options = None + _INITRESPONSE.fields_by_name['error_message']._serialized_options = b'\030\001' + _INITWITHOPTIONSRESPONSE.fields_by_name['error_message']._options = None + _INITWITHOPTIONSRESPONSE.fields_by_name['error_message']._serialized_options = b'\030\001' + _globals['_NIRFSGATTRIBUTE']._serialized_start=22589 + _globals['_NIRFSGATTRIBUTE']._serialized_end=35098 + _globals['_DIGITALEDGECONFIGURATIONLISTSTEPTRIGGERSOURCE']._serialized_start=35101 + _globals['_DIGITALEDGECONFIGURATIONLISTSTEPTRIGGERSOURCE']._serialized_end=36485 + _globals['_DIGITALEDGEEDGE']._serialized_start=36487 + _globals['_DIGITALEDGEEDGE']._serialized_end=36575 + _globals['_DIGITALEDGESCRIPTTRIGGERIDENTIFIER']._serialized_start=36578 + _globals['_DIGITALEDGESCRIPTTRIGGERIDENTIFIER']._serialized_end=36910 + _globals['_DIGITALLEVELACTIVELEVEL']._serialized_start=36913 + _globals['_DIGITALLEVELACTIVELEVEL']._serialized_end=37071 + _globals['_GENERATIONMODE']._serialized_start=37074 + _globals['_GENERATIONMODE']._serialized_end=37212 + _globals['_LINEARINTERPOLATIONFORMAT']._serialized_start=37215 + _globals['_LINEARINTERPOLATIONFORMAT']._serialized_end=37454 + _globals['_MODULE']._serialized_start=37456 + _globals['_MODULE']._serialized_end=37549 + _globals['_OUTPUTSIGNAL']._serialized_start=37552 + _globals['_OUTPUTSIGNAL']._serialized_end=38040 + _globals['_PXICHASSISCLK10']._serialized_start=38043 + _globals['_PXICHASSISCLK10']._serialized_end=38190 + _globals['_POWERLEVELTYPE']._serialized_start=38192 + _globals['_POWERLEVELTYPE']._serialized_end=38313 + _globals['_REFCLOCKSOURCE']._serialized_start=38316 + _globals['_REFCLOCKSOURCE']._serialized_end=38558 + _globals['_RELATIVETO']._serialized_start=38560 + _globals['_RELATIVETO']._serialized_end=38672 + _globals['_RESETWITHOPTIONSSTEPSTOOMIT']._serialized_start=38675 + _globals['_RESETWITHOPTIONSSTEPSTOOMIT']._serialized_end=38943 + _globals['_ROUTEDSIGNAL']._serialized_start=38946 + _globals['_ROUTEDSIGNAL']._serialized_end=39249 + _globals['_SPARAMETERORIENTATION']._serialized_start=39252 + _globals['_SPARAMETERORIENTATION']._serialized_end=39414 + _globals['_SELFCALIBRATERANGESTEPSTOOMIT']._serialized_start=39417 + _globals['_SELFCALIBRATERANGESTEPSTOOMIT']._serialized_end=39789 + _globals['_SIGNALIDENTIFIER']._serialized_start=39792 + _globals['_SIGNALIDENTIFIER']._serialized_end=40153 + _globals['_TRIGGERSOURCE']._serialized_start=40156 + _globals['_TRIGGERSOURCE']._serialized_end=40940 + _globals['_NIRFSGINT32ATTRIBUTEVALUES']._serialized_start=40943 + _globals['_NIRFSGINT32ATTRIBUTEVALUES']._serialized_end=46196 + _globals['_NIRFSGREAL64ATTRIBUTEVALUES']._serialized_start=46199 + _globals['_NIRFSGREAL64ATTRIBUTEVALUES']._serialized_end=46351 + _globals['_NIRFSGSTRINGATTRIBUTEVALUESMAPPED']._serialized_start=46354 + _globals['_NIRFSGSTRINGATTRIBUTEVALUESMAPPED']._serialized_end=52578 + _globals['_ABORTREQUEST']._serialized_start=60 + _globals['_ABORTREQUEST']._serialized_end=110 + _globals['_ABORTRESPONSE']._serialized_start=112 + _globals['_ABORTRESPONSE']._serialized_end=143 + _globals['_ALLOCATEARBWAVEFORMREQUEST']._serialized_start=145 + _globals['_ALLOCATEARBWAVEFORMREQUEST']._serialized_end=257 + _globals['_ALLOCATEARBWAVEFORMRESPONSE']._serialized_start=259 + _globals['_ALLOCATEARBWAVEFORMRESPONSE']._serialized_end=304 + _globals['_CHECKATTRIBUTEVIBOOLEANREQUEST']._serialized_start=307 + _globals['_CHECKATTRIBUTEVIBOOLEANREQUEST']._serialized_end=464 + _globals['_CHECKATTRIBUTEVIBOOLEANRESPONSE']._serialized_start=466 + _globals['_CHECKATTRIBUTEVIBOOLEANRESPONSE']._serialized_end=515 + _globals['_CHECKATTRIBUTEVIINT32REQUEST']._serialized_start=518 + _globals['_CHECKATTRIBUTEVIINT32REQUEST']._serialized_end=751 + _globals['_CHECKATTRIBUTEVIINT32RESPONSE']._serialized_start=753 + _globals['_CHECKATTRIBUTEVIINT32RESPONSE']._serialized_end=800 + _globals['_CHECKATTRIBUTEVIINT64REQUEST']._serialized_start=803 + _globals['_CHECKATTRIBUTEVIINT64REQUEST']._serialized_end=962 + _globals['_CHECKATTRIBUTEVIINT64RESPONSE']._serialized_start=964 + _globals['_CHECKATTRIBUTEVIINT64RESPONSE']._serialized_end=1011 + _globals['_CHECKATTRIBUTEVIREAL64REQUEST']._serialized_start=1014 + _globals['_CHECKATTRIBUTEVIREAL64REQUEST']._serialized_end=1249 + _globals['_CHECKATTRIBUTEVIREAL64RESPONSE']._serialized_start=1251 + _globals['_CHECKATTRIBUTEVIREAL64RESPONSE']._serialized_end=1299 + _globals['_CHECKATTRIBUTEVISESSIONREQUEST']._serialized_start=1302 + _globals['_CHECKATTRIBUTEVISESSIONREQUEST']._serialized_end=1483 + _globals['_CHECKATTRIBUTEVISESSIONRESPONSE']._serialized_start=1485 + _globals['_CHECKATTRIBUTEVISESSIONRESPONSE']._serialized_end=1534 + _globals['_CHECKATTRIBUTEVISTRINGREQUEST']._serialized_start=1537 + _globals['_CHECKATTRIBUTEVISTRINGREQUEST']._serialized_end=1785 + _globals['_CHECKATTRIBUTEVISTRINGRESPONSE']._serialized_start=1787 + _globals['_CHECKATTRIBUTEVISTRINGRESPONSE']._serialized_end=1835 + _globals['_CHECKGENERATIONSTATUSREQUEST']._serialized_start=1837 + _globals['_CHECKGENERATIONSTATUSREQUEST']._serialized_end=1903 + _globals['_CHECKGENERATIONSTATUSRESPONSE']._serialized_start=1905 + _globals['_CHECKGENERATIONSTATUSRESPONSE']._serialized_end=1969 + _globals['_CHECKIFCONFIGURATIONLISTEXISTSREQUEST']._serialized_start=1971 + _globals['_CHECKIFCONFIGURATIONLISTEXISTSREQUEST']._serialized_end=2065 + _globals['_CHECKIFCONFIGURATIONLISTEXISTSRESPONSE']._serialized_start=2067 + _globals['_CHECKIFCONFIGURATIONLISTEXISTSRESPONSE']._serialized_end=2144 + _globals['_CHECKIFSCRIPTEXISTSREQUEST']._serialized_start=2146 + _globals['_CHECKIFSCRIPTEXISTSREQUEST']._serialized_end=2231 + _globals['_CHECKIFSCRIPTEXISTSRESPONSE']._serialized_start=2233 + _globals['_CHECKIFSCRIPTEXISTSRESPONSE']._serialized_end=2301 + _globals['_CHECKIFWAVEFORMEXISTSREQUEST']._serialized_start=2303 + _globals['_CHECKIFWAVEFORMEXISTSREQUEST']._serialized_end=2392 + _globals['_CHECKIFWAVEFORMEXISTSRESPONSE']._serialized_start=2394 + _globals['_CHECKIFWAVEFORMEXISTSRESPONSE']._serialized_end=2466 + _globals['_CLEARALLARBWAVEFORMSREQUEST']._serialized_start=2468 + _globals['_CLEARALLARBWAVEFORMSREQUEST']._serialized_end=2533 + _globals['_CLEARALLARBWAVEFORMSRESPONSE']._serialized_start=2535 + _globals['_CLEARALLARBWAVEFORMSRESPONSE']._serialized_end=2581 + _globals['_CLEARARBWAVEFORMREQUEST']._serialized_start=2583 + _globals['_CLEARARBWAVEFORMREQUEST']._serialized_end=2658 + _globals['_CLEARARBWAVEFORMRESPONSE']._serialized_start=2660 + _globals['_CLEARARBWAVEFORMRESPONSE']._serialized_end=2702 + _globals['_CLEARERRORREQUEST']._serialized_start=2704 + _globals['_CLEARERRORREQUEST']._serialized_end=2759 + _globals['_CLEARERRORRESPONSE']._serialized_start=2761 + _globals['_CLEARERRORRESPONSE']._serialized_end=2797 + _globals['_CLEARSELFCALIBRATERANGEREQUEST']._serialized_start=2799 + _globals['_CLEARSELFCALIBRATERANGEREQUEST']._serialized_end=2867 + _globals['_CLEARSELFCALIBRATERANGERESPONSE']._serialized_start=2869 + _globals['_CLEARSELFCALIBRATERANGERESPONSE']._serialized_end=2918 + _globals['_CLOSEREQUEST']._serialized_start=2920 + _globals['_CLOSEREQUEST']._serialized_end=2970 + _globals['_CLOSERESPONSE']._serialized_start=2972 + _globals['_CLOSERESPONSE']._serialized_end=3003 + _globals['_COMMITREQUEST']._serialized_start=3005 + _globals['_COMMITREQUEST']._serialized_end=3056 + _globals['_COMMITRESPONSE']._serialized_start=3058 + _globals['_COMMITRESPONSE']._serialized_end=3090 + _globals['_CONFIGUREDEEMBEDDINGTABLEINTERPOLATIONLINEARREQUEST']._serialized_start=3093 + _globals['_CONFIGUREDEEMBEDDINGTABLEINTERPOLATIONLINEARREQUEST']._serialized_end=3311 + _globals['_CONFIGUREDEEMBEDDINGTABLEINTERPOLATIONLINEARRESPONSE']._serialized_start=3313 + _globals['_CONFIGUREDEEMBEDDINGTABLEINTERPOLATIONLINEARRESPONSE']._serialized_end=3383 + _globals['_CONFIGUREDEEMBEDDINGTABLEINTERPOLATIONNEARESTREQUEST']._serialized_start=3385 + _globals['_CONFIGUREDEEMBEDDINGTABLEINTERPOLATIONNEARESTREQUEST']._serialized_end=3509 + _globals['_CONFIGUREDEEMBEDDINGTABLEINTERPOLATIONNEARESTRESPONSE']._serialized_start=3511 + _globals['_CONFIGUREDEEMBEDDINGTABLEINTERPOLATIONNEARESTRESPONSE']._serialized_end=3582 + _globals['_CONFIGUREDEEMBEDDINGTABLEINTERPOLATIONSPLINEREQUEST']._serialized_start=3584 + _globals['_CONFIGUREDEEMBEDDINGTABLEINTERPOLATIONSPLINEREQUEST']._serialized_end=3707 + _globals['_CONFIGUREDEEMBEDDINGTABLEINTERPOLATIONSPLINERESPONSE']._serialized_start=3709 + _globals['_CONFIGUREDEEMBEDDINGTABLEINTERPOLATIONSPLINERESPONSE']._serialized_end=3779 + _globals['_CONFIGUREDIGITALEDGECONFIGURATIONLISTSTEPTRIGGERREQUEST']._serialized_start=3782 + _globals['_CONFIGUREDIGITALEDGECONFIGURATIONLISTSTEPTRIGGERREQUEST']._serialized_end=4076 + _globals['_CONFIGUREDIGITALEDGECONFIGURATIONLISTSTEPTRIGGERRESPONSE']._serialized_start=4078 + _globals['_CONFIGUREDIGITALEDGECONFIGURATIONLISTSTEPTRIGGERRESPONSE']._serialized_end=4152 + _globals['_CONFIGUREDIGITALEDGESCRIPTTRIGGERREQUEST']._serialized_start=4155 + _globals['_CONFIGUREDIGITALEDGESCRIPTTRIGGERREQUEST']._serialized_end=4525 + _globals['_CONFIGUREDIGITALEDGESCRIPTTRIGGERRESPONSE']._serialized_start=4527 + _globals['_CONFIGUREDIGITALEDGESCRIPTTRIGGERRESPONSE']._serialized_end=4586 + _globals['_CONFIGUREDIGITALEDGESTARTTRIGGERREQUEST']._serialized_start=4589 + _globals['_CONFIGUREDIGITALEDGESTARTTRIGGERREQUEST']._serialized_end=4835 + _globals['_CONFIGUREDIGITALEDGESTARTTRIGGERRESPONSE']._serialized_start=4837 + _globals['_CONFIGUREDIGITALEDGESTARTTRIGGERRESPONSE']._serialized_end=4895 + _globals['_CONFIGUREDIGITALLEVELSCRIPTTRIGGERREQUEST']._serialized_start=4898 + _globals['_CONFIGUREDIGITALLEVELSCRIPTTRIGGERREQUEST']._serialized_end=5280 + _globals['_CONFIGUREDIGITALLEVELSCRIPTTRIGGERRESPONSE']._serialized_start=5282 + _globals['_CONFIGUREDIGITALLEVELSCRIPTTRIGGERRESPONSE']._serialized_end=5342 + _globals['_CONFIGUREDIGITALMODULATIONUSERDEFINEDWAVEFORMREQUEST']._serialized_start=5344 + _globals['_CONFIGUREDIGITALMODULATIONUSERDEFINEDWAVEFORMREQUEST']._serialized_end=5465 + _globals['_CONFIGUREDIGITALMODULATIONUSERDEFINEDWAVEFORMRESPONSE']._serialized_start=5467 + _globals['_CONFIGUREDIGITALMODULATIONUSERDEFINEDWAVEFORMRESPONSE']._serialized_end=5538 + _globals['_CONFIGUREGENERATIONMODEREQUEST']._serialized_start=5541 + _globals['_CONFIGUREGENERATIONMODEREQUEST']._serialized_end=5720 + _globals['_CONFIGUREGENERATIONMODERESPONSE']._serialized_start=5722 + _globals['_CONFIGUREGENERATIONMODERESPONSE']._serialized_end=5771 + _globals['_CONFIGUREOUTPUTENABLEDREQUEST']._serialized_start=5773 + _globals['_CONFIGUREOUTPUTENABLEDREQUEST']._serialized_end=5864 + _globals['_CONFIGUREOUTPUTENABLEDRESPONSE']._serialized_start=5866 + _globals['_CONFIGUREOUTPUTENABLEDRESPONSE']._serialized_end=5914 + _globals['_CONFIGUREP2PENDPOINTFULLNESSSTARTTRIGGERREQUEST']._serialized_start=5916 + _globals['_CONFIGUREP2PENDPOINTFULLNESSSTARTTRIGGERREQUEST']._serialized_end=6038 + _globals['_CONFIGUREP2PENDPOINTFULLNESSSTARTTRIGGERRESPONSE']._serialized_start=6040 + _globals['_CONFIGUREP2PENDPOINTFULLNESSSTARTTRIGGERRESPONSE']._serialized_end=6106 + _globals['_CONFIGUREPXICHASSISCLK10REQUEST']._serialized_start=6109 + _globals['_CONFIGUREPXICHASSISCLK10REQUEST']._serialized_end=6300 + _globals['_CONFIGUREPXICHASSISCLK10RESPONSE']._serialized_start=6302 + _globals['_CONFIGUREPXICHASSISCLK10RESPONSE']._serialized_end=6352 + _globals['_CONFIGUREPOWERLEVELTYPEREQUEST']._serialized_start=6355 + _globals['_CONFIGUREPOWERLEVELTYPEREQUEST']._serialized_end=6537 + _globals['_CONFIGUREPOWERLEVELTYPERESPONSE']._serialized_start=6539 + _globals['_CONFIGUREPOWERLEVELTYPERESPONSE']._serialized_end=6588 + _globals['_CONFIGURERFREQUEST']._serialized_start=6590 + _globals['_CONFIGURERFREQUEST']._serialized_end=6686 + _globals['_CONFIGURERFRESPONSE']._serialized_start=6688 + _globals['_CONFIGURERFRESPONSE']._serialized_end=6725 + _globals['_CONFIGUREREFCLOCKREQUEST']._serialized_start=6728 + _globals['_CONFIGUREREFCLOCKREQUEST']._serialized_end=6935 + _globals['_CONFIGUREREFCLOCKRESPONSE']._serialized_start=6937 + _globals['_CONFIGUREREFCLOCKRESPONSE']._serialized_end=6980 + _globals['_CONFIGURESIGNALBANDWIDTHREQUEST']._serialized_start=6982 + _globals['_CONFIGURESIGNALBANDWIDTHREQUEST']._serialized_end=7077 + _globals['_CONFIGURESIGNALBANDWIDTHRESPONSE']._serialized_start=7079 + _globals['_CONFIGURESIGNALBANDWIDTHRESPONSE']._serialized_end=7129 + _globals['_CONFIGURESOFTWARESCRIPTTRIGGERREQUEST']._serialized_start=7132 + _globals['_CONFIGURESOFTWARESCRIPTTRIGGERREQUEST']._serialized_end=7330 + _globals['_CONFIGURESOFTWARESCRIPTTRIGGERRESPONSE']._serialized_start=7332 + _globals['_CONFIGURESOFTWARESCRIPTTRIGGERRESPONSE']._serialized_end=7388 + _globals['_CONFIGURESOFTWARESTARTTRIGGERREQUEST']._serialized_start=7390 + _globals['_CONFIGURESOFTWARESTARTTRIGGERREQUEST']._serialized_end=7464 + _globals['_CONFIGURESOFTWARESTARTTRIGGERRESPONSE']._serialized_start=7466 + _globals['_CONFIGURESOFTWARESTARTTRIGGERRESPONSE']._serialized_end=7521 + _globals['_CONFIGUREUPCONVERTERPLLSETTLINGTIMEREQUEST']._serialized_start=7524 + _globals['_CONFIGUREUPCONVERTERPLLSETTLINGTIMEREQUEST']._serialized_end=7658 + _globals['_CONFIGUREUPCONVERTERPLLSETTLINGTIMERESPONSE']._serialized_start=7660 + _globals['_CONFIGUREUPCONVERTERPLLSETTLINGTIMERESPONSE']._serialized_end=7721 + _globals['_CREATECONFIGURATIONLISTREQUEST']._serialized_start=7724 + _globals['_CREATECONFIGURATIONLISTREQUEST']._serialized_end=7908 + _globals['_CREATECONFIGURATIONLISTRESPONSE']._serialized_start=7910 + _globals['_CREATECONFIGURATIONLISTRESPONSE']._serialized_end=7959 + _globals['_CREATECONFIGURATIONLISTSTEPREQUEST']._serialized_start=7961 + _globals['_CREATECONFIGURATIONLISTSTEPREQUEST']._serialized_end=8061 + _globals['_CREATECONFIGURATIONLISTSTEPRESPONSE']._serialized_start=8063 + _globals['_CREATECONFIGURATIONLISTSTEPRESPONSE']._serialized_end=8116 + _globals['_CREATEDEEMBEDDINGSPARAMETERTABLEARRAYREQUEST']._serialized_start=8119 + _globals['_CREATEDEEMBEDDINGSPARAMETERTABLEARRAYREQUEST']._serialized_end=8478 + _globals['_CREATEDEEMBEDDINGSPARAMETERTABLEARRAYRESPONSE']._serialized_start=8480 + _globals['_CREATEDEEMBEDDINGSPARAMETERTABLEARRAYRESPONSE']._serialized_end=8543 + _globals['_CREATEDEEMBEDDINGSPARAMETERTABLES2PFILEREQUEST']._serialized_start=8546 + _globals['_CREATEDEEMBEDDINGSPARAMETERTABLES2PFILEREQUEST']._serialized_end=8826 + _globals['_CREATEDEEMBEDDINGSPARAMETERTABLES2PFILERESPONSE']._serialized_start=8828 + _globals['_CREATEDEEMBEDDINGSPARAMETERTABLES2PFILERESPONSE']._serialized_end=8893 + _globals['_DELETEALLDEEMBEDDINGTABLESREQUEST']._serialized_start=8895 + _globals['_DELETEALLDEEMBEDDINGTABLESREQUEST']._serialized_end=8966 + _globals['_DELETEALLDEEMBEDDINGTABLESRESPONSE']._serialized_start=8968 + _globals['_DELETEALLDEEMBEDDINGTABLESRESPONSE']._serialized_end=9020 + _globals['_DELETECONFIGURATIONLISTREQUEST']._serialized_start=9022 + _globals['_DELETECONFIGURATIONLISTREQUEST']._serialized_end=9109 + _globals['_DELETECONFIGURATIONLISTRESPONSE']._serialized_start=9111 + _globals['_DELETECONFIGURATIONLISTRESPONSE']._serialized_end=9160 + _globals['_DELETEDEEMBEDDINGTABLEREQUEST']._serialized_start=9162 + _globals['_DELETEDEEMBEDDINGTABLEREQUEST']._serialized_end=9263 + _globals['_DELETEDEEMBEDDINGTABLERESPONSE']._serialized_start=9265 + _globals['_DELETEDEEMBEDDINGTABLERESPONSE']._serialized_end=9313 + _globals['_DELETESCRIPTREQUEST']._serialized_start=9315 + _globals['_DELETESCRIPTREQUEST']._serialized_end=9393 + _globals['_DELETESCRIPTRESPONSE']._serialized_start=9395 + _globals['_DELETESCRIPTRESPONSE']._serialized_end=9433 + _globals['_DISABLEREQUEST']._serialized_start=9435 + _globals['_DISABLEREQUEST']._serialized_end=9487 + _globals['_DISABLERESPONSE']._serialized_start=9489 + _globals['_DISABLERESPONSE']._serialized_end=9522 + _globals['_DISABLEALLMODULATIONREQUEST']._serialized_start=9524 + _globals['_DISABLEALLMODULATIONREQUEST']._serialized_end=9589 + _globals['_DISABLEALLMODULATIONRESPONSE']._serialized_start=9591 + _globals['_DISABLEALLMODULATIONRESPONSE']._serialized_end=9637 + _globals['_DISABLECONFIGURATIONLISTSTEPTRIGGERREQUEST']._serialized_start=9639 + _globals['_DISABLECONFIGURATIONLISTSTEPTRIGGERREQUEST']._serialized_end=9719 + _globals['_DISABLECONFIGURATIONLISTSTEPTRIGGERRESPONSE']._serialized_start=9721 + _globals['_DISABLECONFIGURATIONLISTSTEPTRIGGERRESPONSE']._serialized_end=9782 + _globals['_DISABLESCRIPTTRIGGERREQUEST']._serialized_start=9785 + _globals['_DISABLESCRIPTTRIGGERREQUEST']._serialized_end=9973 + _globals['_DISABLESCRIPTTRIGGERRESPONSE']._serialized_start=9975 + _globals['_DISABLESCRIPTTRIGGERRESPONSE']._serialized_end=10021 + _globals['_DISABLESTARTTRIGGERREQUEST']._serialized_start=10023 + _globals['_DISABLESTARTTRIGGERREQUEST']._serialized_end=10087 + _globals['_DISABLESTARTTRIGGERRESPONSE']._serialized_start=10089 + _globals['_DISABLESTARTTRIGGERRESPONSE']._serialized_end=10134 + _globals['_ERRORMESSAGEREQUEST']._serialized_start=10136 + _globals['_ERRORMESSAGEREQUEST']._serialized_end=10213 + _globals['_ERRORMESSAGERESPONSE']._serialized_start=10215 + _globals['_ERRORMESSAGERESPONSE']._serialized_end=10276 + _globals['_ERRORQUERYREQUEST']._serialized_start=10278 + _globals['_ERRORQUERYREQUEST']._serialized_end=10333 + _globals['_ERRORQUERYRESPONSE']._serialized_start=10335 + _globals['_ERRORQUERYRESPONSE']._serialized_end=10414 + _globals['_EXPORTSIGNALREQUEST']._serialized_start=10417 + _globals['_EXPORTSIGNALREQUEST']._serialized_end=10798 + _globals['_EXPORTSIGNALRESPONSE']._serialized_start=10800 + _globals['_EXPORTSIGNALRESPONSE']._serialized_end=10838 + _globals['_GETALLNAMEDWAVEFORMNAMESREQUEST']._serialized_start=10840 + _globals['_GETALLNAMEDWAVEFORMNAMESREQUEST']._serialized_end=10909 + _globals['_GETALLNAMEDWAVEFORMNAMESRESPONSE']._serialized_start=10911 + _globals['_GETALLNAMEDWAVEFORMNAMESRESPONSE']._serialized_end=11013 + _globals['_GETALLSCRIPTNAMESREQUEST']._serialized_start=11015 + _globals['_GETALLSCRIPTNAMESREQUEST']._serialized_end=11077 + _globals['_GETALLSCRIPTNAMESRESPONSE']._serialized_start=11079 + _globals['_GETALLSCRIPTNAMESRESPONSE']._serialized_end=11172 + _globals['_GETSCRIPTREQUEST']._serialized_start=11174 + _globals['_GETSCRIPTREQUEST']._serialized_end=11249 + _globals['_GETSCRIPTRESPONSE']._serialized_start=11251 + _globals['_GETSCRIPTRESPONSE']._serialized_end=11330 + _globals['_GETATTRIBUTEVIBOOLEANREQUEST']._serialized_start=11333 + _globals['_GETATTRIBUTEVIBOOLEANREQUEST']._serialized_end=11473 + _globals['_GETATTRIBUTEVIBOOLEANRESPONSE']._serialized_start=11475 + _globals['_GETATTRIBUTEVIBOOLEANRESPONSE']._serialized_end=11537 + _globals['_GETATTRIBUTEVIINT32REQUEST']._serialized_start=11540 + _globals['_GETATTRIBUTEVIINT32REQUEST']._serialized_end=11678 + _globals['_GETATTRIBUTEVIINT32RESPONSE']._serialized_start=11680 + _globals['_GETATTRIBUTEVIINT32RESPONSE']._serialized_end=11740 + _globals['_GETATTRIBUTEVIINT64REQUEST']._serialized_start=11743 + _globals['_GETATTRIBUTEVIINT64REQUEST']._serialized_end=11881 + _globals['_GETATTRIBUTEVIINT64RESPONSE']._serialized_start=11883 + _globals['_GETATTRIBUTEVIINT64RESPONSE']._serialized_end=11943 + _globals['_GETATTRIBUTEVIREAL64REQUEST']._serialized_start=11946 + _globals['_GETATTRIBUTEVIREAL64REQUEST']._serialized_end=12085 + _globals['_GETATTRIBUTEVIREAL64RESPONSE']._serialized_start=12087 + _globals['_GETATTRIBUTEVIREAL64RESPONSE']._serialized_end=12148 + _globals['_GETATTRIBUTEVISESSIONREQUEST']._serialized_start=12151 + _globals['_GETATTRIBUTEVISESSIONREQUEST']._serialized_end=12291 + _globals['_GETATTRIBUTEVISESSIONRESPONSE']._serialized_start=12293 + _globals['_GETATTRIBUTEVISESSIONRESPONSE']._serialized_end=12379 + _globals['_GETATTRIBUTEVISTRINGREQUEST']._serialized_start=12382 + _globals['_GETATTRIBUTEVISTRINGREQUEST']._serialized_end=12521 + _globals['_GETATTRIBUTEVISTRINGRESPONSE']._serialized_start=12523 + _globals['_GETATTRIBUTEVISTRINGRESPONSE']._serialized_end=12584 + _globals['_GETCHANNELNAMEREQUEST']._serialized_start=12586 + _globals['_GETCHANNELNAMEREQUEST']._serialized_end=12660 + _globals['_GETCHANNELNAMERESPONSE']._serialized_start=12662 + _globals['_GETCHANNELNAMERESPONSE']._serialized_end=12716 + _globals['_GETDEEMBEDDINGSPARAMETERSREQUEST']._serialized_start=12718 + _globals['_GETDEEMBEDDINGSPARAMETERSREQUEST']._serialized_end=12788 + _globals['_GETDEEMBEDDINGSPARAMETERSRESPONSE']._serialized_start=12791 + _globals['_GETDEEMBEDDINGSPARAMETERSRESPONSE']._serialized_end=12951 + _globals['_GETERRORREQUEST']._serialized_start=12953 + _globals['_GETERRORREQUEST']._serialized_end=13006 + _globals['_GETERRORRESPONSE']._serialized_start=13008 + _globals['_GETERRORRESPONSE']._serialized_end=13089 + _globals['_GETEXTERNALCALIBRATIONLASTDATEANDTIMEREQUEST']._serialized_start=13091 + _globals['_GETEXTERNALCALIBRATIONLASTDATEANDTIMEREQUEST']._serialized_end=13173 + _globals['_GETEXTERNALCALIBRATIONLASTDATEANDTIMERESPONSE']._serialized_start=13176 + _globals['_GETEXTERNALCALIBRATIONLASTDATEANDTIMERESPONSE']._serialized_end=13327 + _globals['_GETMAXSETTABLEPOWERREQUEST']._serialized_start=13329 + _globals['_GETMAXSETTABLEPOWERREQUEST']._serialized_end=13393 + _globals['_GETMAXSETTABLEPOWERRESPONSE']._serialized_start=13395 + _globals['_GETMAXSETTABLEPOWERRESPONSE']._serialized_end=13455 + _globals['_GETSELFCALIBRATIONDATEANDTIMEREQUEST']._serialized_start=13458 + _globals['_GETSELFCALIBRATIONDATEANDTIMEREQUEST']._serialized_end=13608 + _globals['_GETSELFCALIBRATIONDATEANDTIMERESPONSE']._serialized_start=13611 + _globals['_GETSELFCALIBRATIONDATEANDTIMERESPONSE']._serialized_end=13754 + _globals['_GETSELFCALIBRATIONTEMPERATUREREQUEST']._serialized_start=13757 + _globals['_GETSELFCALIBRATIONTEMPERATUREREQUEST']._serialized_end=13907 + _globals['_GETSELFCALIBRATIONTEMPERATURERESPONSE']._serialized_start=13909 + _globals['_GETSELFCALIBRATIONTEMPERATURERESPONSE']._serialized_end=13985 + _globals['_GETTERMINALNAMEREQUEST']._serialized_start=13988 + _globals['_GETTERMINALNAMEREQUEST']._serialized_end=14256 + _globals['_GETTERMINALNAMERESPONSE']._serialized_start=14258 + _globals['_GETTERMINALNAMERESPONSE']._serialized_end=14322 + _globals['_GETUSERDATAREQUEST']._serialized_start=14324 + _globals['_GETUSERDATAREQUEST']._serialized_end=14400 + _globals['_GETUSERDATARESPONSE']._serialized_start=14402 + _globals['_GETUSERDATARESPONSE']._serialized_end=14479 + _globals['_GETWAVEFORMBURSTSTARTLOCATIONSREQUEST']._serialized_start=14481 + _globals['_GETWAVEFORMBURSTSTARTLOCATIONSREQUEST']._serialized_end=14578 + _globals['_GETWAVEFORMBURSTSTARTLOCATIONSRESPONSE']._serialized_start=14580 + _globals['_GETWAVEFORMBURSTSTARTLOCATIONSRESPONSE']._serialized_end=14678 + _globals['_GETWAVEFORMBURSTSTOPLOCATIONSREQUEST']._serialized_start=14680 + _globals['_GETWAVEFORMBURSTSTOPLOCATIONSREQUEST']._serialized_end=14776 + _globals['_GETWAVEFORMBURSTSTOPLOCATIONSRESPONSE']._serialized_start=14778 + _globals['_GETWAVEFORMBURSTSTOPLOCATIONSRESPONSE']._serialized_end=14875 + _globals['_GETWAVEFORMMARKEREVENTLOCATIONSREQUEST']._serialized_start=14877 + _globals['_GETWAVEFORMMARKEREVENTLOCATIONSREQUEST']._serialized_end=14975 + _globals['_GETWAVEFORMMARKEREVENTLOCATIONSRESPONSE']._serialized_start=14977 + _globals['_GETWAVEFORMMARKEREVENTLOCATIONSRESPONSE']._serialized_end=15076 + _globals['_INITREQUEST']._serialized_start=15079 + _globals['_INITREQUEST']._serialized_end=15256 + _globals['_INITRESPONSE']._serialized_start=15259 + _globals['_INITRESPONSE']._serialized_end=15389 + _globals['_INITWITHOPTIONSREQUEST']._serialized_start=15392 + _globals['_INITWITHOPTIONSREQUEST']._serialized_end=15603 + _globals['_INITWITHOPTIONSRESPONSE']._serialized_start=15606 + _globals['_INITWITHOPTIONSRESPONSE']._serialized_end=15743 + _globals['_INITIATEREQUEST']._serialized_start=15745 + _globals['_INITIATEREQUEST']._serialized_end=15798 + _globals['_INITIATERESPONSE']._serialized_start=15800 + _globals['_INITIATERESPONSE']._serialized_end=15834 + _globals['_INVALIDATEALLATTRIBUTESREQUEST']._serialized_start=15836 + _globals['_INVALIDATEALLATTRIBUTESREQUEST']._serialized_end=15904 + _globals['_INVALIDATEALLATTRIBUTESRESPONSE']._serialized_start=15906 + _globals['_INVALIDATEALLATTRIBUTESRESPONSE']._serialized_end=15955 + _globals['_LOADCONFIGURATIONSFROMFILEREQUEST']._serialized_start=15957 + _globals['_LOADCONFIGURATIONSFROMFILEREQUEST']._serialized_end=16069 + _globals['_LOADCONFIGURATIONSFROMFILERESPONSE']._serialized_start=16071 + _globals['_LOADCONFIGURATIONSFROMFILERESPONSE']._serialized_end=16123 + _globals['_PERFORMPOWERSEARCHREQUEST']._serialized_start=16125 + _globals['_PERFORMPOWERSEARCHREQUEST']._serialized_end=16188 + _globals['_PERFORMPOWERSEARCHRESPONSE']._serialized_start=16190 + _globals['_PERFORMPOWERSEARCHRESPONSE']._serialized_end=16234 + _globals['_PERFORMTHERMALCORRECTIONREQUEST']._serialized_start=16236 + _globals['_PERFORMTHERMALCORRECTIONREQUEST']._serialized_end=16305 + _globals['_PERFORMTHERMALCORRECTIONRESPONSE']._serialized_start=16307 + _globals['_PERFORMTHERMALCORRECTIONRESPONSE']._serialized_end=16357 + _globals['_QUERYARBWAVEFORMCAPABILITIESREQUEST']._serialized_start=16359 + _globals['_QUERYARBWAVEFORMCAPABILITIESREQUEST']._serialized_end=16432 + _globals['_QUERYARBWAVEFORMCAPABILITIESRESPONSE']._serialized_start=16435 + _globals['_QUERYARBWAVEFORMCAPABILITIESRESPONSE']._serialized_end=16599 + _globals['_READANDDOWNLOADWAVEFORMFROMFILETDMSREQUEST']._serialized_start=16602 + _globals['_READANDDOWNLOADWAVEFORMFROMFILETDMSREQUEST']._serialized_end=16748 + _globals['_READANDDOWNLOADWAVEFORMFROMFILETDMSRESPONSE']._serialized_start=16750 + _globals['_READANDDOWNLOADWAVEFORMFROMFILETDMSRESPONSE']._serialized_end=16811 + _globals['_RESETREQUEST']._serialized_start=16813 + _globals['_RESETREQUEST']._serialized_end=16863 + _globals['_RESETRESPONSE']._serialized_start=16865 + _globals['_RESETRESPONSE']._serialized_end=16896 + _globals['_RESETATTRIBUTEREQUEST']._serialized_start=16899 + _globals['_RESETATTRIBUTEREQUEST']._serialized_end=17032 + _globals['_RESETATTRIBUTERESPONSE']._serialized_start=17034 + _globals['_RESETATTRIBUTERESPONSE']._serialized_end=17074 + _globals['_RESETDEVICEREQUEST']._serialized_start=17076 + _globals['_RESETDEVICEREQUEST']._serialized_end=17132 + _globals['_RESETDEVICERESPONSE']._serialized_start=17134 + _globals['_RESETDEVICERESPONSE']._serialized_end=17171 + _globals['_RESETWITHDEFAULTSREQUEST']._serialized_start=17173 + _globals['_RESETWITHDEFAULTSREQUEST']._serialized_end=17235 + _globals['_RESETWITHDEFAULTSRESPONSE']._serialized_start=17237 + _globals['_RESETWITHDEFAULTSRESPONSE']._serialized_end=17280 + _globals['_RESETWITHOPTIONSREQUEST']._serialized_start=17283 + _globals['_RESETWITHOPTIONSREQUEST']._serialized_end=17462 + _globals['_RESETWITHOPTIONSRESPONSE']._serialized_start=17464 + _globals['_RESETWITHOPTIONSRESPONSE']._serialized_end=17506 + _globals['_REVISIONQUERYREQUEST']._serialized_start=17508 + _globals['_REVISIONQUERYREQUEST']._serialized_end=17566 + _globals['_REVISIONQUERYRESPONSE']._serialized_start=17568 + _globals['_REVISIONQUERYRESPONSE']._serialized_end=17670 + _globals['_SAVECONFIGURATIONSTOFILEREQUEST']._serialized_start=17672 + _globals['_SAVECONFIGURATIONSTOFILEREQUEST']._serialized_end=17782 + _globals['_SAVECONFIGURATIONSTOFILERESPONSE']._serialized_start=17784 + _globals['_SAVECONFIGURATIONSTOFILERESPONSE']._serialized_end=17834 + _globals['_SELECTARBWAVEFORMREQUEST']._serialized_start=17836 + _globals['_SELECTARBWAVEFORMREQUEST']._serialized_end=17912 + _globals['_SELECTARBWAVEFORMRESPONSE']._serialized_start=17914 + _globals['_SELECTARBWAVEFORMRESPONSE']._serialized_end=17957 + _globals['_SELFCALREQUEST']._serialized_start=17959 + _globals['_SELFCALREQUEST']._serialized_end=18011 + _globals['_SELFCALRESPONSE']._serialized_start=18013 + _globals['_SELFCALRESPONSE']._serialized_end=18046 + _globals['_SELFCALIBRATERANGEREQUEST']._serialized_start=18049 + _globals['_SELFCALIBRATERANGEREQUEST']._serialized_end=18328 + _globals['_SELFCALIBRATERANGERESPONSE']._serialized_start=18330 + _globals['_SELFCALIBRATERANGERESPONSE']._serialized_end=18374 + _globals['_SELFTESTREQUEST']._serialized_start=18376 + _globals['_SELFTESTREQUEST']._serialized_end=18429 + _globals['_SELFTESTRESPONSE']._serialized_start=18431 + _globals['_SELFTESTRESPONSE']._serialized_end=18518 + _globals['_SENDSOFTWAREEDGETRIGGERREQUEST']._serialized_start=18521 + _globals['_SENDSOFTWAREEDGETRIGGERREQUEST']._serialized_end=18803 + _globals['_SENDSOFTWAREEDGETRIGGERRESPONSE']._serialized_start=18805 + _globals['_SENDSOFTWAREEDGETRIGGERRESPONSE']._serialized_end=18854 + _globals['_SETARBWAVEFORMNEXTWRITEPOSITIONREQUEST']._serialized_start=18857 + _globals['_SETARBWAVEFORMNEXTWRITEPOSITIONREQUEST']._serialized_end=19067 + _globals['_SETARBWAVEFORMNEXTWRITEPOSITIONRESPONSE']._serialized_start=19069 + _globals['_SETARBWAVEFORMNEXTWRITEPOSITIONRESPONSE']._serialized_end=19126 + _globals['_SETATTRIBUTEVIBOOLEANREQUEST']._serialized_start=19129 + _globals['_SETATTRIBUTEVIBOOLEANREQUEST']._serialized_end=19284 + _globals['_SETATTRIBUTEVIBOOLEANRESPONSE']._serialized_start=19286 + _globals['_SETATTRIBUTEVIBOOLEANRESPONSE']._serialized_end=19333 + _globals['_SETATTRIBUTEVIINT32REQUEST']._serialized_start=19336 + _globals['_SETATTRIBUTEVIINT32REQUEST']._serialized_end=19567 + _globals['_SETATTRIBUTEVIINT32RESPONSE']._serialized_start=19569 + _globals['_SETATTRIBUTEVIINT32RESPONSE']._serialized_end=19614 + _globals['_SETATTRIBUTEVIINT64REQUEST']._serialized_start=19617 + _globals['_SETATTRIBUTEVIINT64REQUEST']._serialized_end=19774 + _globals['_SETATTRIBUTEVIINT64RESPONSE']._serialized_start=19776 + _globals['_SETATTRIBUTEVIINT64RESPONSE']._serialized_end=19821 + _globals['_SETATTRIBUTEVIREAL64REQUEST']._serialized_start=19824 + _globals['_SETATTRIBUTEVIREAL64REQUEST']._serialized_end=20057 + _globals['_SETATTRIBUTEVIREAL64RESPONSE']._serialized_start=20059 + _globals['_SETATTRIBUTEVIREAL64RESPONSE']._serialized_end=20105 + _globals['_SETATTRIBUTEVISESSIONREQUEST']._serialized_start=20108 + _globals['_SETATTRIBUTEVISESSIONREQUEST']._serialized_end=20287 + _globals['_SETATTRIBUTEVISESSIONRESPONSE']._serialized_start=20289 + _globals['_SETATTRIBUTEVISESSIONRESPONSE']._serialized_end=20336 + _globals['_SETATTRIBUTEVISTRINGREQUEST']._serialized_start=20339 + _globals['_SETATTRIBUTEVISTRINGREQUEST']._serialized_end=20585 + _globals['_SETATTRIBUTEVISTRINGRESPONSE']._serialized_start=20587 + _globals['_SETATTRIBUTEVISTRINGRESPONSE']._serialized_end=20633 + _globals['_SETUSERDATAREQUEST']._serialized_start=20635 + _globals['_SETUSERDATAREQUEST']._serialized_end=20725 + _globals['_SETUSERDATARESPONSE']._serialized_start=20727 + _globals['_SETUSERDATARESPONSE']._serialized_end=20764 + _globals['_SETWAVEFORMBURSTSTARTLOCATIONSREQUEST']._serialized_start=20766 + _globals['_SETWAVEFORMBURSTSTARTLOCATIONSREQUEST']._serialized_end=20882 + _globals['_SETWAVEFORMBURSTSTARTLOCATIONSRESPONSE']._serialized_start=20884 + _globals['_SETWAVEFORMBURSTSTARTLOCATIONSRESPONSE']._serialized_end=20940 + _globals['_SETWAVEFORMBURSTSTOPLOCATIONSREQUEST']._serialized_start=20942 + _globals['_SETWAVEFORMBURSTSTOPLOCATIONSREQUEST']._serialized_end=21057 + _globals['_SETWAVEFORMBURSTSTOPLOCATIONSRESPONSE']._serialized_start=21059 + _globals['_SETWAVEFORMBURSTSTOPLOCATIONSRESPONSE']._serialized_end=21114 + _globals['_SETWAVEFORMMARKEREVENTLOCATIONSREQUEST']._serialized_start=21116 + _globals['_SETWAVEFORMMARKEREVENTLOCATIONSREQUEST']._serialized_end=21233 + _globals['_SETWAVEFORMMARKEREVENTLOCATIONSRESPONSE']._serialized_start=21235 + _globals['_SETWAVEFORMMARKEREVENTLOCATIONSRESPONSE']._serialized_end=21292 + _globals['_WAITUNTILSETTLEDREQUEST']._serialized_start=21294 + _globals['_WAITUNTILSETTLEDREQUEST']._serialized_end=21386 + _globals['_WAITUNTILSETTLEDRESPONSE']._serialized_start=21388 + _globals['_WAITUNTILSETTLEDRESPONSE']._serialized_end=21430 + _globals['_WRITEARBWAVEFORMREQUEST']._serialized_start=21433 + _globals['_WRITEARBWAVEFORMREQUEST']._serialized_end=21576 + _globals['_WRITEARBWAVEFORMRESPONSE']._serialized_start=21578 + _globals['_WRITEARBWAVEFORMRESPONSE']._serialized_end=21620 + _globals['_WRITEARBWAVEFORMCOMPLEXF32REQUEST']._serialized_start=21623 + _globals['_WRITEARBWAVEFORMCOMPLEXF32REQUEST']._serialized_end=21797 + _globals['_WRITEARBWAVEFORMCOMPLEXF32RESPONSE']._serialized_start=21799 + _globals['_WRITEARBWAVEFORMCOMPLEXF32RESPONSE']._serialized_end=21851 + _globals['_WRITEARBWAVEFORMCOMPLEXF64REQUEST']._serialized_start=21854 + _globals['_WRITEARBWAVEFORMCOMPLEXF64REQUEST']._serialized_end=22025 + _globals['_WRITEARBWAVEFORMCOMPLEXF64RESPONSE']._serialized_start=22027 + _globals['_WRITEARBWAVEFORMCOMPLEXF64RESPONSE']._serialized_end=22079 + _globals['_WRITEARBWAVEFORMCOMPLEXI16REQUEST']._serialized_start=22082 + _globals['_WRITEARBWAVEFORMCOMPLEXI16REQUEST']._serialized_end=22223 + _globals['_WRITEARBWAVEFORMCOMPLEXI16RESPONSE']._serialized_start=22225 + _globals['_WRITEARBWAVEFORMCOMPLEXI16RESPONSE']._serialized_end=22277 + _globals['_WRITEARBWAVEFORMF32REQUEST']._serialized_start=22280 + _globals['_WRITEARBWAVEFORMF32REQUEST']._serialized_end=22426 + _globals['_WRITEARBWAVEFORMF32RESPONSE']._serialized_start=22428 + _globals['_WRITEARBWAVEFORMF32RESPONSE']._serialized_end=22473 + _globals['_WRITESCRIPTREQUEST']._serialized_start=22475 + _globals['_WRITESCRIPTREQUEST']._serialized_end=22547 + _globals['_WRITESCRIPTRESPONSE']._serialized_start=22549 + _globals['_WRITESCRIPTRESPONSE']._serialized_end=22586 + _globals['_NIRFSG']._serialized_start=52581 + _globals['_NIRFSG']._serialized_end=65556 +# @@protoc_insertion_point(module_scope) diff --git a/generated/nirfsg/nirfsg/nirfsg_pb2_grpc.py b/generated/nirfsg/nirfsg/nirfsg_pb2_grpc.py new file mode 100644 index 0000000000..0fa255c612 --- /dev/null +++ b/generated/nirfsg/nirfsg/nirfsg_pb2_grpc.py @@ -0,0 +1,3762 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from . import nirfsg_pb2 as nirfsg__pb2 + + +class NiRFSGStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Abort = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/Abort', + request_serializer=nirfsg__pb2.AbortRequest.SerializeToString, + response_deserializer=nirfsg__pb2.AbortResponse.FromString, + ) + self.AllocateArbWaveform = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/AllocateArbWaveform', + request_serializer=nirfsg__pb2.AllocateArbWaveformRequest.SerializeToString, + response_deserializer=nirfsg__pb2.AllocateArbWaveformResponse.FromString, + ) + self.CheckAttributeViBoolean = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CheckAttributeViBoolean', + request_serializer=nirfsg__pb2.CheckAttributeViBooleanRequest.SerializeToString, + response_deserializer=nirfsg__pb2.CheckAttributeViBooleanResponse.FromString, + ) + self.CheckAttributeViInt32 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CheckAttributeViInt32', + request_serializer=nirfsg__pb2.CheckAttributeViInt32Request.SerializeToString, + response_deserializer=nirfsg__pb2.CheckAttributeViInt32Response.FromString, + ) + self.CheckAttributeViInt64 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CheckAttributeViInt64', + request_serializer=nirfsg__pb2.CheckAttributeViInt64Request.SerializeToString, + response_deserializer=nirfsg__pb2.CheckAttributeViInt64Response.FromString, + ) + self.CheckAttributeViReal64 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CheckAttributeViReal64', + request_serializer=nirfsg__pb2.CheckAttributeViReal64Request.SerializeToString, + response_deserializer=nirfsg__pb2.CheckAttributeViReal64Response.FromString, + ) + self.CheckAttributeViSession = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CheckAttributeViSession', + request_serializer=nirfsg__pb2.CheckAttributeViSessionRequest.SerializeToString, + response_deserializer=nirfsg__pb2.CheckAttributeViSessionResponse.FromString, + ) + self.CheckAttributeViString = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CheckAttributeViString', + request_serializer=nirfsg__pb2.CheckAttributeViStringRequest.SerializeToString, + response_deserializer=nirfsg__pb2.CheckAttributeViStringResponse.FromString, + ) + self.CheckGenerationStatus = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CheckGenerationStatus', + request_serializer=nirfsg__pb2.CheckGenerationStatusRequest.SerializeToString, + response_deserializer=nirfsg__pb2.CheckGenerationStatusResponse.FromString, + ) + self.CheckIfConfigurationListExists = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CheckIfConfigurationListExists', + request_serializer=nirfsg__pb2.CheckIfConfigurationListExistsRequest.SerializeToString, + response_deserializer=nirfsg__pb2.CheckIfConfigurationListExistsResponse.FromString, + ) + self.CheckIfScriptExists = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CheckIfScriptExists', + request_serializer=nirfsg__pb2.CheckIfScriptExistsRequest.SerializeToString, + response_deserializer=nirfsg__pb2.CheckIfScriptExistsResponse.FromString, + ) + self.CheckIfWaveformExists = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CheckIfWaveformExists', + request_serializer=nirfsg__pb2.CheckIfWaveformExistsRequest.SerializeToString, + response_deserializer=nirfsg__pb2.CheckIfWaveformExistsResponse.FromString, + ) + self.ClearAllArbWaveforms = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ClearAllArbWaveforms', + request_serializer=nirfsg__pb2.ClearAllArbWaveformsRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ClearAllArbWaveformsResponse.FromString, + ) + self.ClearArbWaveform = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ClearArbWaveform', + request_serializer=nirfsg__pb2.ClearArbWaveformRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ClearArbWaveformResponse.FromString, + ) + self.ClearError = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ClearError', + request_serializer=nirfsg__pb2.ClearErrorRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ClearErrorResponse.FromString, + ) + self.ClearSelfCalibrateRange = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ClearSelfCalibrateRange', + request_serializer=nirfsg__pb2.ClearSelfCalibrateRangeRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ClearSelfCalibrateRangeResponse.FromString, + ) + self.Close = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/Close', + request_serializer=nirfsg__pb2.CloseRequest.SerializeToString, + response_deserializer=nirfsg__pb2.CloseResponse.FromString, + ) + self.Commit = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/Commit', + request_serializer=nirfsg__pb2.CommitRequest.SerializeToString, + response_deserializer=nirfsg__pb2.CommitResponse.FromString, + ) + self.ConfigureDeembeddingTableInterpolationLinear = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureDeembeddingTableInterpolationLinear', + request_serializer=nirfsg__pb2.ConfigureDeembeddingTableInterpolationLinearRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureDeembeddingTableInterpolationLinearResponse.FromString, + ) + self.ConfigureDeembeddingTableInterpolationNearest = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureDeembeddingTableInterpolationNearest', + request_serializer=nirfsg__pb2.ConfigureDeembeddingTableInterpolationNearestRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureDeembeddingTableInterpolationNearestResponse.FromString, + ) + self.ConfigureDeembeddingTableInterpolationSpline = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureDeembeddingTableInterpolationSpline', + request_serializer=nirfsg__pb2.ConfigureDeembeddingTableInterpolationSplineRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureDeembeddingTableInterpolationSplineResponse.FromString, + ) + self.ConfigureDigitalEdgeConfigurationListStepTrigger = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureDigitalEdgeConfigurationListStepTrigger', + request_serializer=nirfsg__pb2.ConfigureDigitalEdgeConfigurationListStepTriggerRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureDigitalEdgeConfigurationListStepTriggerResponse.FromString, + ) + self.ConfigureDigitalEdgeScriptTrigger = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureDigitalEdgeScriptTrigger', + request_serializer=nirfsg__pb2.ConfigureDigitalEdgeScriptTriggerRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureDigitalEdgeScriptTriggerResponse.FromString, + ) + self.ConfigureDigitalEdgeStartTrigger = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureDigitalEdgeStartTrigger', + request_serializer=nirfsg__pb2.ConfigureDigitalEdgeStartTriggerRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureDigitalEdgeStartTriggerResponse.FromString, + ) + self.ConfigureDigitalLevelScriptTrigger = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureDigitalLevelScriptTrigger', + request_serializer=nirfsg__pb2.ConfigureDigitalLevelScriptTriggerRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureDigitalLevelScriptTriggerResponse.FromString, + ) + self.ConfigureDigitalModulationUserDefinedWaveform = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureDigitalModulationUserDefinedWaveform', + request_serializer=nirfsg__pb2.ConfigureDigitalModulationUserDefinedWaveformRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureDigitalModulationUserDefinedWaveformResponse.FromString, + ) + self.ConfigureGenerationMode = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureGenerationMode', + request_serializer=nirfsg__pb2.ConfigureGenerationModeRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureGenerationModeResponse.FromString, + ) + self.ConfigureOutputEnabled = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureOutputEnabled', + request_serializer=nirfsg__pb2.ConfigureOutputEnabledRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureOutputEnabledResponse.FromString, + ) + self.ConfigureP2PEndpointFullnessStartTrigger = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureP2PEndpointFullnessStartTrigger', + request_serializer=nirfsg__pb2.ConfigureP2PEndpointFullnessStartTriggerRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureP2PEndpointFullnessStartTriggerResponse.FromString, + ) + self.ConfigurePXIChassisClk10 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigurePXIChassisClk10', + request_serializer=nirfsg__pb2.ConfigurePXIChassisClk10Request.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigurePXIChassisClk10Response.FromString, + ) + self.ConfigurePowerLevelType = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigurePowerLevelType', + request_serializer=nirfsg__pb2.ConfigurePowerLevelTypeRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigurePowerLevelTypeResponse.FromString, + ) + self.ConfigureRF = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureRF', + request_serializer=nirfsg__pb2.ConfigureRFRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureRFResponse.FromString, + ) + self.ConfigureRefClock = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureRefClock', + request_serializer=nirfsg__pb2.ConfigureRefClockRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureRefClockResponse.FromString, + ) + self.ConfigureSignalBandwidth = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureSignalBandwidth', + request_serializer=nirfsg__pb2.ConfigureSignalBandwidthRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureSignalBandwidthResponse.FromString, + ) + self.ConfigureSoftwareScriptTrigger = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureSoftwareScriptTrigger', + request_serializer=nirfsg__pb2.ConfigureSoftwareScriptTriggerRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureSoftwareScriptTriggerResponse.FromString, + ) + self.ConfigureSoftwareStartTrigger = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureSoftwareStartTrigger', + request_serializer=nirfsg__pb2.ConfigureSoftwareStartTriggerRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureSoftwareStartTriggerResponse.FromString, + ) + self.ConfigureUpconverterPLLSettlingTime = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ConfigureUpconverterPLLSettlingTime', + request_serializer=nirfsg__pb2.ConfigureUpconverterPLLSettlingTimeRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ConfigureUpconverterPLLSettlingTimeResponse.FromString, + ) + self.CreateConfigurationList = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CreateConfigurationList', + request_serializer=nirfsg__pb2.CreateConfigurationListRequest.SerializeToString, + response_deserializer=nirfsg__pb2.CreateConfigurationListResponse.FromString, + ) + self.CreateConfigurationListStep = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CreateConfigurationListStep', + request_serializer=nirfsg__pb2.CreateConfigurationListStepRequest.SerializeToString, + response_deserializer=nirfsg__pb2.CreateConfigurationListStepResponse.FromString, + ) + self.CreateDeembeddingSparameterTableArray = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CreateDeembeddingSparameterTableArray', + request_serializer=nirfsg__pb2.CreateDeembeddingSparameterTableArrayRequest.SerializeToString, + response_deserializer=nirfsg__pb2.CreateDeembeddingSparameterTableArrayResponse.FromString, + ) + self.CreateDeembeddingSparameterTableS2PFile = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/CreateDeembeddingSparameterTableS2PFile', + request_serializer=nirfsg__pb2.CreateDeembeddingSparameterTableS2PFileRequest.SerializeToString, + response_deserializer=nirfsg__pb2.CreateDeembeddingSparameterTableS2PFileResponse.FromString, + ) + self.DeleteAllDeembeddingTables = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/DeleteAllDeembeddingTables', + request_serializer=nirfsg__pb2.DeleteAllDeembeddingTablesRequest.SerializeToString, + response_deserializer=nirfsg__pb2.DeleteAllDeembeddingTablesResponse.FromString, + ) + self.DeleteConfigurationList = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/DeleteConfigurationList', + request_serializer=nirfsg__pb2.DeleteConfigurationListRequest.SerializeToString, + response_deserializer=nirfsg__pb2.DeleteConfigurationListResponse.FromString, + ) + self.DeleteDeembeddingTable = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/DeleteDeembeddingTable', + request_serializer=nirfsg__pb2.DeleteDeembeddingTableRequest.SerializeToString, + response_deserializer=nirfsg__pb2.DeleteDeembeddingTableResponse.FromString, + ) + self.DeleteScript = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/DeleteScript', + request_serializer=nirfsg__pb2.DeleteScriptRequest.SerializeToString, + response_deserializer=nirfsg__pb2.DeleteScriptResponse.FromString, + ) + self.Disable = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/Disable', + request_serializer=nirfsg__pb2.DisableRequest.SerializeToString, + response_deserializer=nirfsg__pb2.DisableResponse.FromString, + ) + self.DisableAllModulation = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/DisableAllModulation', + request_serializer=nirfsg__pb2.DisableAllModulationRequest.SerializeToString, + response_deserializer=nirfsg__pb2.DisableAllModulationResponse.FromString, + ) + self.DisableConfigurationListStepTrigger = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/DisableConfigurationListStepTrigger', + request_serializer=nirfsg__pb2.DisableConfigurationListStepTriggerRequest.SerializeToString, + response_deserializer=nirfsg__pb2.DisableConfigurationListStepTriggerResponse.FromString, + ) + self.DisableScriptTrigger = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/DisableScriptTrigger', + request_serializer=nirfsg__pb2.DisableScriptTriggerRequest.SerializeToString, + response_deserializer=nirfsg__pb2.DisableScriptTriggerResponse.FromString, + ) + self.DisableStartTrigger = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/DisableStartTrigger', + request_serializer=nirfsg__pb2.DisableStartTriggerRequest.SerializeToString, + response_deserializer=nirfsg__pb2.DisableStartTriggerResponse.FromString, + ) + self.ErrorMessage = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ErrorMessage', + request_serializer=nirfsg__pb2.ErrorMessageRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ErrorMessageResponse.FromString, + ) + self.ErrorQuery = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ErrorQuery', + request_serializer=nirfsg__pb2.ErrorQueryRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ErrorQueryResponse.FromString, + ) + self.ExportSignal = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ExportSignal', + request_serializer=nirfsg__pb2.ExportSignalRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ExportSignalResponse.FromString, + ) + self.GetAllNamedWaveformNames = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetAllNamedWaveformNames', + request_serializer=nirfsg__pb2.GetAllNamedWaveformNamesRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetAllNamedWaveformNamesResponse.FromString, + ) + self.GetAllScriptNames = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetAllScriptNames', + request_serializer=nirfsg__pb2.GetAllScriptNamesRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetAllScriptNamesResponse.FromString, + ) + self.GetScript = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetScript', + request_serializer=nirfsg__pb2.GetScriptRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetScriptResponse.FromString, + ) + self.GetAttributeViBoolean = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetAttributeViBoolean', + request_serializer=nirfsg__pb2.GetAttributeViBooleanRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetAttributeViBooleanResponse.FromString, + ) + self.GetAttributeViInt32 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetAttributeViInt32', + request_serializer=nirfsg__pb2.GetAttributeViInt32Request.SerializeToString, + response_deserializer=nirfsg__pb2.GetAttributeViInt32Response.FromString, + ) + self.GetAttributeViInt64 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetAttributeViInt64', + request_serializer=nirfsg__pb2.GetAttributeViInt64Request.SerializeToString, + response_deserializer=nirfsg__pb2.GetAttributeViInt64Response.FromString, + ) + self.GetAttributeViReal64 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetAttributeViReal64', + request_serializer=nirfsg__pb2.GetAttributeViReal64Request.SerializeToString, + response_deserializer=nirfsg__pb2.GetAttributeViReal64Response.FromString, + ) + self.GetAttributeViSession = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetAttributeViSession', + request_serializer=nirfsg__pb2.GetAttributeViSessionRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetAttributeViSessionResponse.FromString, + ) + self.GetAttributeViString = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetAttributeViString', + request_serializer=nirfsg__pb2.GetAttributeViStringRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetAttributeViStringResponse.FromString, + ) + self.GetChannelName = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetChannelName', + request_serializer=nirfsg__pb2.GetChannelNameRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetChannelNameResponse.FromString, + ) + self.GetDeembeddingSparameters = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetDeembeddingSparameters', + request_serializer=nirfsg__pb2.GetDeembeddingSparametersRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetDeembeddingSparametersResponse.FromString, + ) + self.GetError = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetError', + request_serializer=nirfsg__pb2.GetErrorRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetErrorResponse.FromString, + ) + self.GetExternalCalibrationLastDateAndTime = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetExternalCalibrationLastDateAndTime', + request_serializer=nirfsg__pb2.GetExternalCalibrationLastDateAndTimeRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetExternalCalibrationLastDateAndTimeResponse.FromString, + ) + self.GetMaxSettablePower = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetMaxSettablePower', + request_serializer=nirfsg__pb2.GetMaxSettablePowerRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetMaxSettablePowerResponse.FromString, + ) + self.GetSelfCalibrationDateAndTime = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetSelfCalibrationDateAndTime', + request_serializer=nirfsg__pb2.GetSelfCalibrationDateAndTimeRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetSelfCalibrationDateAndTimeResponse.FromString, + ) + self.GetSelfCalibrationTemperature = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetSelfCalibrationTemperature', + request_serializer=nirfsg__pb2.GetSelfCalibrationTemperatureRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetSelfCalibrationTemperatureResponse.FromString, + ) + self.GetTerminalName = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetTerminalName', + request_serializer=nirfsg__pb2.GetTerminalNameRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetTerminalNameResponse.FromString, + ) + self.GetUserData = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetUserData', + request_serializer=nirfsg__pb2.GetUserDataRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetUserDataResponse.FromString, + ) + self.GetWaveformBurstStartLocations = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetWaveformBurstStartLocations', + request_serializer=nirfsg__pb2.GetWaveformBurstStartLocationsRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetWaveformBurstStartLocationsResponse.FromString, + ) + self.GetWaveformBurstStopLocations = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetWaveformBurstStopLocations', + request_serializer=nirfsg__pb2.GetWaveformBurstStopLocationsRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetWaveformBurstStopLocationsResponse.FromString, + ) + self.GetWaveformMarkerEventLocations = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/GetWaveformMarkerEventLocations', + request_serializer=nirfsg__pb2.GetWaveformMarkerEventLocationsRequest.SerializeToString, + response_deserializer=nirfsg__pb2.GetWaveformMarkerEventLocationsResponse.FromString, + ) + self.Init = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/Init', + request_serializer=nirfsg__pb2.InitRequest.SerializeToString, + response_deserializer=nirfsg__pb2.InitResponse.FromString, + ) + self.InitWithOptions = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/InitWithOptions', + request_serializer=nirfsg__pb2.InitWithOptionsRequest.SerializeToString, + response_deserializer=nirfsg__pb2.InitWithOptionsResponse.FromString, + ) + self.Initiate = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/Initiate', + request_serializer=nirfsg__pb2.InitiateRequest.SerializeToString, + response_deserializer=nirfsg__pb2.InitiateResponse.FromString, + ) + self.InvalidateAllAttributes = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/InvalidateAllAttributes', + request_serializer=nirfsg__pb2.InvalidateAllAttributesRequest.SerializeToString, + response_deserializer=nirfsg__pb2.InvalidateAllAttributesResponse.FromString, + ) + self.LoadConfigurationsFromFile = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/LoadConfigurationsFromFile', + request_serializer=nirfsg__pb2.LoadConfigurationsFromFileRequest.SerializeToString, + response_deserializer=nirfsg__pb2.LoadConfigurationsFromFileResponse.FromString, + ) + self.PerformPowerSearch = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/PerformPowerSearch', + request_serializer=nirfsg__pb2.PerformPowerSearchRequest.SerializeToString, + response_deserializer=nirfsg__pb2.PerformPowerSearchResponse.FromString, + ) + self.PerformThermalCorrection = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/PerformThermalCorrection', + request_serializer=nirfsg__pb2.PerformThermalCorrectionRequest.SerializeToString, + response_deserializer=nirfsg__pb2.PerformThermalCorrectionResponse.FromString, + ) + self.QueryArbWaveformCapabilities = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/QueryArbWaveformCapabilities', + request_serializer=nirfsg__pb2.QueryArbWaveformCapabilitiesRequest.SerializeToString, + response_deserializer=nirfsg__pb2.QueryArbWaveformCapabilitiesResponse.FromString, + ) + self.ReadAndDownloadWaveformFromFileTDMS = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ReadAndDownloadWaveformFromFileTDMS', + request_serializer=nirfsg__pb2.ReadAndDownloadWaveformFromFileTDMSRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ReadAndDownloadWaveformFromFileTDMSResponse.FromString, + ) + self.Reset = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/Reset', + request_serializer=nirfsg__pb2.ResetRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ResetResponse.FromString, + ) + self.ResetAttribute = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ResetAttribute', + request_serializer=nirfsg__pb2.ResetAttributeRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ResetAttributeResponse.FromString, + ) + self.ResetDevice = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ResetDevice', + request_serializer=nirfsg__pb2.ResetDeviceRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ResetDeviceResponse.FromString, + ) + self.ResetWithDefaults = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ResetWithDefaults', + request_serializer=nirfsg__pb2.ResetWithDefaultsRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ResetWithDefaultsResponse.FromString, + ) + self.ResetWithOptions = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/ResetWithOptions', + request_serializer=nirfsg__pb2.ResetWithOptionsRequest.SerializeToString, + response_deserializer=nirfsg__pb2.ResetWithOptionsResponse.FromString, + ) + self.RevisionQuery = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/RevisionQuery', + request_serializer=nirfsg__pb2.RevisionQueryRequest.SerializeToString, + response_deserializer=nirfsg__pb2.RevisionQueryResponse.FromString, + ) + self.SaveConfigurationsToFile = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SaveConfigurationsToFile', + request_serializer=nirfsg__pb2.SaveConfigurationsToFileRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SaveConfigurationsToFileResponse.FromString, + ) + self.SelectArbWaveform = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SelectArbWaveform', + request_serializer=nirfsg__pb2.SelectArbWaveformRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SelectArbWaveformResponse.FromString, + ) + self.SelfCal = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SelfCal', + request_serializer=nirfsg__pb2.SelfCalRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SelfCalResponse.FromString, + ) + self.SelfCalibrateRange = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SelfCalibrateRange', + request_serializer=nirfsg__pb2.SelfCalibrateRangeRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SelfCalibrateRangeResponse.FromString, + ) + self.SelfTest = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SelfTest', + request_serializer=nirfsg__pb2.SelfTestRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SelfTestResponse.FromString, + ) + self.SendSoftwareEdgeTrigger = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SendSoftwareEdgeTrigger', + request_serializer=nirfsg__pb2.SendSoftwareEdgeTriggerRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SendSoftwareEdgeTriggerResponse.FromString, + ) + self.SetArbWaveformNextWritePosition = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SetArbWaveformNextWritePosition', + request_serializer=nirfsg__pb2.SetArbWaveformNextWritePositionRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SetArbWaveformNextWritePositionResponse.FromString, + ) + self.SetAttributeViBoolean = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SetAttributeViBoolean', + request_serializer=nirfsg__pb2.SetAttributeViBooleanRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SetAttributeViBooleanResponse.FromString, + ) + self.SetAttributeViInt32 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SetAttributeViInt32', + request_serializer=nirfsg__pb2.SetAttributeViInt32Request.SerializeToString, + response_deserializer=nirfsg__pb2.SetAttributeViInt32Response.FromString, + ) + self.SetAttributeViInt64 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SetAttributeViInt64', + request_serializer=nirfsg__pb2.SetAttributeViInt64Request.SerializeToString, + response_deserializer=nirfsg__pb2.SetAttributeViInt64Response.FromString, + ) + self.SetAttributeViReal64 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SetAttributeViReal64', + request_serializer=nirfsg__pb2.SetAttributeViReal64Request.SerializeToString, + response_deserializer=nirfsg__pb2.SetAttributeViReal64Response.FromString, + ) + self.SetAttributeViSession = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SetAttributeViSession', + request_serializer=nirfsg__pb2.SetAttributeViSessionRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SetAttributeViSessionResponse.FromString, + ) + self.SetAttributeViString = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SetAttributeViString', + request_serializer=nirfsg__pb2.SetAttributeViStringRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SetAttributeViStringResponse.FromString, + ) + self.SetUserData = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SetUserData', + request_serializer=nirfsg__pb2.SetUserDataRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SetUserDataResponse.FromString, + ) + self.SetWaveformBurstStartLocations = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SetWaveformBurstStartLocations', + request_serializer=nirfsg__pb2.SetWaveformBurstStartLocationsRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SetWaveformBurstStartLocationsResponse.FromString, + ) + self.SetWaveformBurstStopLocations = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SetWaveformBurstStopLocations', + request_serializer=nirfsg__pb2.SetWaveformBurstStopLocationsRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SetWaveformBurstStopLocationsResponse.FromString, + ) + self.SetWaveformMarkerEventLocations = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/SetWaveformMarkerEventLocations', + request_serializer=nirfsg__pb2.SetWaveformMarkerEventLocationsRequest.SerializeToString, + response_deserializer=nirfsg__pb2.SetWaveformMarkerEventLocationsResponse.FromString, + ) + self.WaitUntilSettled = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/WaitUntilSettled', + request_serializer=nirfsg__pb2.WaitUntilSettledRequest.SerializeToString, + response_deserializer=nirfsg__pb2.WaitUntilSettledResponse.FromString, + ) + self.WriteArbWaveform = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/WriteArbWaveform', + request_serializer=nirfsg__pb2.WriteArbWaveformRequest.SerializeToString, + response_deserializer=nirfsg__pb2.WriteArbWaveformResponse.FromString, + ) + self.WriteArbWaveformComplexF32 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/WriteArbWaveformComplexF32', + request_serializer=nirfsg__pb2.WriteArbWaveformComplexF32Request.SerializeToString, + response_deserializer=nirfsg__pb2.WriteArbWaveformComplexF32Response.FromString, + ) + self.WriteArbWaveformComplexF64 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/WriteArbWaveformComplexF64', + request_serializer=nirfsg__pb2.WriteArbWaveformComplexF64Request.SerializeToString, + response_deserializer=nirfsg__pb2.WriteArbWaveformComplexF64Response.FromString, + ) + self.WriteArbWaveformComplexI16 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/WriteArbWaveformComplexI16', + request_serializer=nirfsg__pb2.WriteArbWaveformComplexI16Request.SerializeToString, + response_deserializer=nirfsg__pb2.WriteArbWaveformComplexI16Response.FromString, + ) + self.WriteArbWaveformF32 = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/WriteArbWaveformF32', + request_serializer=nirfsg__pb2.WriteArbWaveformF32Request.SerializeToString, + response_deserializer=nirfsg__pb2.WriteArbWaveformF32Response.FromString, + ) + self.WriteScript = channel.unary_unary( + '/nirfsg_grpc.NiRFSG/WriteScript', + request_serializer=nirfsg__pb2.WriteScriptRequest.SerializeToString, + response_deserializer=nirfsg__pb2.WriteScriptResponse.FromString, + ) + + +class NiRFSGServicer(object): + """Missing associated documentation comment in .proto file.""" + + def Abort(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AllocateArbWaveform(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CheckAttributeViBoolean(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CheckAttributeViInt32(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CheckAttributeViInt64(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CheckAttributeViReal64(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CheckAttributeViSession(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CheckAttributeViString(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CheckGenerationStatus(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CheckIfConfigurationListExists(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CheckIfScriptExists(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CheckIfWaveformExists(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ClearAllArbWaveforms(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ClearArbWaveform(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ClearError(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ClearSelfCalibrateRange(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Close(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Commit(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureDeembeddingTableInterpolationLinear(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureDeembeddingTableInterpolationNearest(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureDeembeddingTableInterpolationSpline(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureDigitalEdgeConfigurationListStepTrigger(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureDigitalEdgeScriptTrigger(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureDigitalEdgeStartTrigger(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureDigitalLevelScriptTrigger(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureDigitalModulationUserDefinedWaveform(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureGenerationMode(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureOutputEnabled(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureP2PEndpointFullnessStartTrigger(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigurePXIChassisClk10(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigurePowerLevelType(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureRF(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureRefClock(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureSignalBandwidth(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureSoftwareScriptTrigger(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureSoftwareStartTrigger(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ConfigureUpconverterPLLSettlingTime(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateConfigurationList(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateConfigurationListStep(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateDeembeddingSparameterTableArray(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateDeembeddingSparameterTableS2PFile(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteAllDeembeddingTables(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteConfigurationList(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteDeembeddingTable(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteScript(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Disable(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DisableAllModulation(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DisableConfigurationListStepTrigger(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DisableScriptTrigger(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DisableStartTrigger(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ErrorMessage(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ErrorQuery(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ExportSignal(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetAllNamedWaveformNames(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetAllScriptNames(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetScript(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetAttributeViBoolean(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetAttributeViInt32(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetAttributeViInt64(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetAttributeViReal64(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetAttributeViSession(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetAttributeViString(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetChannelName(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetDeembeddingSparameters(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetError(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetExternalCalibrationLastDateAndTime(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetMaxSettablePower(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetSelfCalibrationDateAndTime(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetSelfCalibrationTemperature(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetTerminalName(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetUserData(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetWaveformBurstStartLocations(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetWaveformBurstStopLocations(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetWaveformMarkerEventLocations(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Init(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def InitWithOptions(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Initiate(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def InvalidateAllAttributes(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def LoadConfigurationsFromFile(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def PerformPowerSearch(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def PerformThermalCorrection(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def QueryArbWaveformCapabilities(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ReadAndDownloadWaveformFromFileTDMS(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Reset(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ResetAttribute(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ResetDevice(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ResetWithDefaults(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ResetWithOptions(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RevisionQuery(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SaveConfigurationsToFile(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SelectArbWaveform(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SelfCal(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SelfCalibrateRange(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SelfTest(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SendSoftwareEdgeTrigger(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetArbWaveformNextWritePosition(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetAttributeViBoolean(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetAttributeViInt32(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetAttributeViInt64(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetAttributeViReal64(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetAttributeViSession(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetAttributeViString(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetUserData(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetWaveformBurstStartLocations(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetWaveformBurstStopLocations(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetWaveformMarkerEventLocations(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def WaitUntilSettled(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def WriteArbWaveform(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def WriteArbWaveformComplexF32(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def WriteArbWaveformComplexF64(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def WriteArbWaveformComplexI16(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def WriteArbWaveformF32(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def WriteScript(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_NiRFSGServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Abort': grpc.unary_unary_rpc_method_handler( + servicer.Abort, + request_deserializer=nirfsg__pb2.AbortRequest.FromString, + response_serializer=nirfsg__pb2.AbortResponse.SerializeToString, + ), + 'AllocateArbWaveform': grpc.unary_unary_rpc_method_handler( + servicer.AllocateArbWaveform, + request_deserializer=nirfsg__pb2.AllocateArbWaveformRequest.FromString, + response_serializer=nirfsg__pb2.AllocateArbWaveformResponse.SerializeToString, + ), + 'CheckAttributeViBoolean': grpc.unary_unary_rpc_method_handler( + servicer.CheckAttributeViBoolean, + request_deserializer=nirfsg__pb2.CheckAttributeViBooleanRequest.FromString, + response_serializer=nirfsg__pb2.CheckAttributeViBooleanResponse.SerializeToString, + ), + 'CheckAttributeViInt32': grpc.unary_unary_rpc_method_handler( + servicer.CheckAttributeViInt32, + request_deserializer=nirfsg__pb2.CheckAttributeViInt32Request.FromString, + response_serializer=nirfsg__pb2.CheckAttributeViInt32Response.SerializeToString, + ), + 'CheckAttributeViInt64': grpc.unary_unary_rpc_method_handler( + servicer.CheckAttributeViInt64, + request_deserializer=nirfsg__pb2.CheckAttributeViInt64Request.FromString, + response_serializer=nirfsg__pb2.CheckAttributeViInt64Response.SerializeToString, + ), + 'CheckAttributeViReal64': grpc.unary_unary_rpc_method_handler( + servicer.CheckAttributeViReal64, + request_deserializer=nirfsg__pb2.CheckAttributeViReal64Request.FromString, + response_serializer=nirfsg__pb2.CheckAttributeViReal64Response.SerializeToString, + ), + 'CheckAttributeViSession': grpc.unary_unary_rpc_method_handler( + servicer.CheckAttributeViSession, + request_deserializer=nirfsg__pb2.CheckAttributeViSessionRequest.FromString, + response_serializer=nirfsg__pb2.CheckAttributeViSessionResponse.SerializeToString, + ), + 'CheckAttributeViString': grpc.unary_unary_rpc_method_handler( + servicer.CheckAttributeViString, + request_deserializer=nirfsg__pb2.CheckAttributeViStringRequest.FromString, + response_serializer=nirfsg__pb2.CheckAttributeViStringResponse.SerializeToString, + ), + 'CheckGenerationStatus': grpc.unary_unary_rpc_method_handler( + servicer.CheckGenerationStatus, + request_deserializer=nirfsg__pb2.CheckGenerationStatusRequest.FromString, + response_serializer=nirfsg__pb2.CheckGenerationStatusResponse.SerializeToString, + ), + 'CheckIfConfigurationListExists': grpc.unary_unary_rpc_method_handler( + servicer.CheckIfConfigurationListExists, + request_deserializer=nirfsg__pb2.CheckIfConfigurationListExistsRequest.FromString, + response_serializer=nirfsg__pb2.CheckIfConfigurationListExistsResponse.SerializeToString, + ), + 'CheckIfScriptExists': grpc.unary_unary_rpc_method_handler( + servicer.CheckIfScriptExists, + request_deserializer=nirfsg__pb2.CheckIfScriptExistsRequest.FromString, + response_serializer=nirfsg__pb2.CheckIfScriptExistsResponse.SerializeToString, + ), + 'CheckIfWaveformExists': grpc.unary_unary_rpc_method_handler( + servicer.CheckIfWaveformExists, + request_deserializer=nirfsg__pb2.CheckIfWaveformExistsRequest.FromString, + response_serializer=nirfsg__pb2.CheckIfWaveformExistsResponse.SerializeToString, + ), + 'ClearAllArbWaveforms': grpc.unary_unary_rpc_method_handler( + servicer.ClearAllArbWaveforms, + request_deserializer=nirfsg__pb2.ClearAllArbWaveformsRequest.FromString, + response_serializer=nirfsg__pb2.ClearAllArbWaveformsResponse.SerializeToString, + ), + 'ClearArbWaveform': grpc.unary_unary_rpc_method_handler( + servicer.ClearArbWaveform, + request_deserializer=nirfsg__pb2.ClearArbWaveformRequest.FromString, + response_serializer=nirfsg__pb2.ClearArbWaveformResponse.SerializeToString, + ), + 'ClearError': grpc.unary_unary_rpc_method_handler( + servicer.ClearError, + request_deserializer=nirfsg__pb2.ClearErrorRequest.FromString, + response_serializer=nirfsg__pb2.ClearErrorResponse.SerializeToString, + ), + 'ClearSelfCalibrateRange': grpc.unary_unary_rpc_method_handler( + servicer.ClearSelfCalibrateRange, + request_deserializer=nirfsg__pb2.ClearSelfCalibrateRangeRequest.FromString, + response_serializer=nirfsg__pb2.ClearSelfCalibrateRangeResponse.SerializeToString, + ), + 'Close': grpc.unary_unary_rpc_method_handler( + servicer.Close, + request_deserializer=nirfsg__pb2.CloseRequest.FromString, + response_serializer=nirfsg__pb2.CloseResponse.SerializeToString, + ), + 'Commit': grpc.unary_unary_rpc_method_handler( + servicer.Commit, + request_deserializer=nirfsg__pb2.CommitRequest.FromString, + response_serializer=nirfsg__pb2.CommitResponse.SerializeToString, + ), + 'ConfigureDeembeddingTableInterpolationLinear': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureDeembeddingTableInterpolationLinear, + request_deserializer=nirfsg__pb2.ConfigureDeembeddingTableInterpolationLinearRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureDeembeddingTableInterpolationLinearResponse.SerializeToString, + ), + 'ConfigureDeembeddingTableInterpolationNearest': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureDeembeddingTableInterpolationNearest, + request_deserializer=nirfsg__pb2.ConfigureDeembeddingTableInterpolationNearestRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureDeembeddingTableInterpolationNearestResponse.SerializeToString, + ), + 'ConfigureDeembeddingTableInterpolationSpline': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureDeembeddingTableInterpolationSpline, + request_deserializer=nirfsg__pb2.ConfigureDeembeddingTableInterpolationSplineRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureDeembeddingTableInterpolationSplineResponse.SerializeToString, + ), + 'ConfigureDigitalEdgeConfigurationListStepTrigger': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureDigitalEdgeConfigurationListStepTrigger, + request_deserializer=nirfsg__pb2.ConfigureDigitalEdgeConfigurationListStepTriggerRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureDigitalEdgeConfigurationListStepTriggerResponse.SerializeToString, + ), + 'ConfigureDigitalEdgeScriptTrigger': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureDigitalEdgeScriptTrigger, + request_deserializer=nirfsg__pb2.ConfigureDigitalEdgeScriptTriggerRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureDigitalEdgeScriptTriggerResponse.SerializeToString, + ), + 'ConfigureDigitalEdgeStartTrigger': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureDigitalEdgeStartTrigger, + request_deserializer=nirfsg__pb2.ConfigureDigitalEdgeStartTriggerRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureDigitalEdgeStartTriggerResponse.SerializeToString, + ), + 'ConfigureDigitalLevelScriptTrigger': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureDigitalLevelScriptTrigger, + request_deserializer=nirfsg__pb2.ConfigureDigitalLevelScriptTriggerRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureDigitalLevelScriptTriggerResponse.SerializeToString, + ), + 'ConfigureDigitalModulationUserDefinedWaveform': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureDigitalModulationUserDefinedWaveform, + request_deserializer=nirfsg__pb2.ConfigureDigitalModulationUserDefinedWaveformRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureDigitalModulationUserDefinedWaveformResponse.SerializeToString, + ), + 'ConfigureGenerationMode': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureGenerationMode, + request_deserializer=nirfsg__pb2.ConfigureGenerationModeRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureGenerationModeResponse.SerializeToString, + ), + 'ConfigureOutputEnabled': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureOutputEnabled, + request_deserializer=nirfsg__pb2.ConfigureOutputEnabledRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureOutputEnabledResponse.SerializeToString, + ), + 'ConfigureP2PEndpointFullnessStartTrigger': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureP2PEndpointFullnessStartTrigger, + request_deserializer=nirfsg__pb2.ConfigureP2PEndpointFullnessStartTriggerRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureP2PEndpointFullnessStartTriggerResponse.SerializeToString, + ), + 'ConfigurePXIChassisClk10': grpc.unary_unary_rpc_method_handler( + servicer.ConfigurePXIChassisClk10, + request_deserializer=nirfsg__pb2.ConfigurePXIChassisClk10Request.FromString, + response_serializer=nirfsg__pb2.ConfigurePXIChassisClk10Response.SerializeToString, + ), + 'ConfigurePowerLevelType': grpc.unary_unary_rpc_method_handler( + servicer.ConfigurePowerLevelType, + request_deserializer=nirfsg__pb2.ConfigurePowerLevelTypeRequest.FromString, + response_serializer=nirfsg__pb2.ConfigurePowerLevelTypeResponse.SerializeToString, + ), + 'ConfigureRF': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureRF, + request_deserializer=nirfsg__pb2.ConfigureRFRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureRFResponse.SerializeToString, + ), + 'ConfigureRefClock': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureRefClock, + request_deserializer=nirfsg__pb2.ConfigureRefClockRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureRefClockResponse.SerializeToString, + ), + 'ConfigureSignalBandwidth': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureSignalBandwidth, + request_deserializer=nirfsg__pb2.ConfigureSignalBandwidthRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureSignalBandwidthResponse.SerializeToString, + ), + 'ConfigureSoftwareScriptTrigger': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureSoftwareScriptTrigger, + request_deserializer=nirfsg__pb2.ConfigureSoftwareScriptTriggerRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureSoftwareScriptTriggerResponse.SerializeToString, + ), + 'ConfigureSoftwareStartTrigger': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureSoftwareStartTrigger, + request_deserializer=nirfsg__pb2.ConfigureSoftwareStartTriggerRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureSoftwareStartTriggerResponse.SerializeToString, + ), + 'ConfigureUpconverterPLLSettlingTime': grpc.unary_unary_rpc_method_handler( + servicer.ConfigureUpconverterPLLSettlingTime, + request_deserializer=nirfsg__pb2.ConfigureUpconverterPLLSettlingTimeRequest.FromString, + response_serializer=nirfsg__pb2.ConfigureUpconverterPLLSettlingTimeResponse.SerializeToString, + ), + 'CreateConfigurationList': grpc.unary_unary_rpc_method_handler( + servicer.CreateConfigurationList, + request_deserializer=nirfsg__pb2.CreateConfigurationListRequest.FromString, + response_serializer=nirfsg__pb2.CreateConfigurationListResponse.SerializeToString, + ), + 'CreateConfigurationListStep': grpc.unary_unary_rpc_method_handler( + servicer.CreateConfigurationListStep, + request_deserializer=nirfsg__pb2.CreateConfigurationListStepRequest.FromString, + response_serializer=nirfsg__pb2.CreateConfigurationListStepResponse.SerializeToString, + ), + 'CreateDeembeddingSparameterTableArray': grpc.unary_unary_rpc_method_handler( + servicer.CreateDeembeddingSparameterTableArray, + request_deserializer=nirfsg__pb2.CreateDeembeddingSparameterTableArrayRequest.FromString, + response_serializer=nirfsg__pb2.CreateDeembeddingSparameterTableArrayResponse.SerializeToString, + ), + 'CreateDeembeddingSparameterTableS2PFile': grpc.unary_unary_rpc_method_handler( + servicer.CreateDeembeddingSparameterTableS2PFile, + request_deserializer=nirfsg__pb2.CreateDeembeddingSparameterTableS2PFileRequest.FromString, + response_serializer=nirfsg__pb2.CreateDeembeddingSparameterTableS2PFileResponse.SerializeToString, + ), + 'DeleteAllDeembeddingTables': grpc.unary_unary_rpc_method_handler( + servicer.DeleteAllDeembeddingTables, + request_deserializer=nirfsg__pb2.DeleteAllDeembeddingTablesRequest.FromString, + response_serializer=nirfsg__pb2.DeleteAllDeembeddingTablesResponse.SerializeToString, + ), + 'DeleteConfigurationList': grpc.unary_unary_rpc_method_handler( + servicer.DeleteConfigurationList, + request_deserializer=nirfsg__pb2.DeleteConfigurationListRequest.FromString, + response_serializer=nirfsg__pb2.DeleteConfigurationListResponse.SerializeToString, + ), + 'DeleteDeembeddingTable': grpc.unary_unary_rpc_method_handler( + servicer.DeleteDeembeddingTable, + request_deserializer=nirfsg__pb2.DeleteDeembeddingTableRequest.FromString, + response_serializer=nirfsg__pb2.DeleteDeembeddingTableResponse.SerializeToString, + ), + 'DeleteScript': grpc.unary_unary_rpc_method_handler( + servicer.DeleteScript, + request_deserializer=nirfsg__pb2.DeleteScriptRequest.FromString, + response_serializer=nirfsg__pb2.DeleteScriptResponse.SerializeToString, + ), + 'Disable': grpc.unary_unary_rpc_method_handler( + servicer.Disable, + request_deserializer=nirfsg__pb2.DisableRequest.FromString, + response_serializer=nirfsg__pb2.DisableResponse.SerializeToString, + ), + 'DisableAllModulation': grpc.unary_unary_rpc_method_handler( + servicer.DisableAllModulation, + request_deserializer=nirfsg__pb2.DisableAllModulationRequest.FromString, + response_serializer=nirfsg__pb2.DisableAllModulationResponse.SerializeToString, + ), + 'DisableConfigurationListStepTrigger': grpc.unary_unary_rpc_method_handler( + servicer.DisableConfigurationListStepTrigger, + request_deserializer=nirfsg__pb2.DisableConfigurationListStepTriggerRequest.FromString, + response_serializer=nirfsg__pb2.DisableConfigurationListStepTriggerResponse.SerializeToString, + ), + 'DisableScriptTrigger': grpc.unary_unary_rpc_method_handler( + servicer.DisableScriptTrigger, + request_deserializer=nirfsg__pb2.DisableScriptTriggerRequest.FromString, + response_serializer=nirfsg__pb2.DisableScriptTriggerResponse.SerializeToString, + ), + 'DisableStartTrigger': grpc.unary_unary_rpc_method_handler( + servicer.DisableStartTrigger, + request_deserializer=nirfsg__pb2.DisableStartTriggerRequest.FromString, + response_serializer=nirfsg__pb2.DisableStartTriggerResponse.SerializeToString, + ), + 'ErrorMessage': grpc.unary_unary_rpc_method_handler( + servicer.ErrorMessage, + request_deserializer=nirfsg__pb2.ErrorMessageRequest.FromString, + response_serializer=nirfsg__pb2.ErrorMessageResponse.SerializeToString, + ), + 'ErrorQuery': grpc.unary_unary_rpc_method_handler( + servicer.ErrorQuery, + request_deserializer=nirfsg__pb2.ErrorQueryRequest.FromString, + response_serializer=nirfsg__pb2.ErrorQueryResponse.SerializeToString, + ), + 'ExportSignal': grpc.unary_unary_rpc_method_handler( + servicer.ExportSignal, + request_deserializer=nirfsg__pb2.ExportSignalRequest.FromString, + response_serializer=nirfsg__pb2.ExportSignalResponse.SerializeToString, + ), + 'GetAllNamedWaveformNames': grpc.unary_unary_rpc_method_handler( + servicer.GetAllNamedWaveformNames, + request_deserializer=nirfsg__pb2.GetAllNamedWaveformNamesRequest.FromString, + response_serializer=nirfsg__pb2.GetAllNamedWaveformNamesResponse.SerializeToString, + ), + 'GetAllScriptNames': grpc.unary_unary_rpc_method_handler( + servicer.GetAllScriptNames, + request_deserializer=nirfsg__pb2.GetAllScriptNamesRequest.FromString, + response_serializer=nirfsg__pb2.GetAllScriptNamesResponse.SerializeToString, + ), + 'GetScript': grpc.unary_unary_rpc_method_handler( + servicer.GetScript, + request_deserializer=nirfsg__pb2.GetScriptRequest.FromString, + response_serializer=nirfsg__pb2.GetScriptResponse.SerializeToString, + ), + 'GetAttributeViBoolean': grpc.unary_unary_rpc_method_handler( + servicer.GetAttributeViBoolean, + request_deserializer=nirfsg__pb2.GetAttributeViBooleanRequest.FromString, + response_serializer=nirfsg__pb2.GetAttributeViBooleanResponse.SerializeToString, + ), + 'GetAttributeViInt32': grpc.unary_unary_rpc_method_handler( + servicer.GetAttributeViInt32, + request_deserializer=nirfsg__pb2.GetAttributeViInt32Request.FromString, + response_serializer=nirfsg__pb2.GetAttributeViInt32Response.SerializeToString, + ), + 'GetAttributeViInt64': grpc.unary_unary_rpc_method_handler( + servicer.GetAttributeViInt64, + request_deserializer=nirfsg__pb2.GetAttributeViInt64Request.FromString, + response_serializer=nirfsg__pb2.GetAttributeViInt64Response.SerializeToString, + ), + 'GetAttributeViReal64': grpc.unary_unary_rpc_method_handler( + servicer.GetAttributeViReal64, + request_deserializer=nirfsg__pb2.GetAttributeViReal64Request.FromString, + response_serializer=nirfsg__pb2.GetAttributeViReal64Response.SerializeToString, + ), + 'GetAttributeViSession': grpc.unary_unary_rpc_method_handler( + servicer.GetAttributeViSession, + request_deserializer=nirfsg__pb2.GetAttributeViSessionRequest.FromString, + response_serializer=nirfsg__pb2.GetAttributeViSessionResponse.SerializeToString, + ), + 'GetAttributeViString': grpc.unary_unary_rpc_method_handler( + servicer.GetAttributeViString, + request_deserializer=nirfsg__pb2.GetAttributeViStringRequest.FromString, + response_serializer=nirfsg__pb2.GetAttributeViStringResponse.SerializeToString, + ), + 'GetChannelName': grpc.unary_unary_rpc_method_handler( + servicer.GetChannelName, + request_deserializer=nirfsg__pb2.GetChannelNameRequest.FromString, + response_serializer=nirfsg__pb2.GetChannelNameResponse.SerializeToString, + ), + 'GetDeembeddingSparameters': grpc.unary_unary_rpc_method_handler( + servicer.GetDeembeddingSparameters, + request_deserializer=nirfsg__pb2.GetDeembeddingSparametersRequest.FromString, + response_serializer=nirfsg__pb2.GetDeembeddingSparametersResponse.SerializeToString, + ), + 'GetError': grpc.unary_unary_rpc_method_handler( + servicer.GetError, + request_deserializer=nirfsg__pb2.GetErrorRequest.FromString, + response_serializer=nirfsg__pb2.GetErrorResponse.SerializeToString, + ), + 'GetExternalCalibrationLastDateAndTime': grpc.unary_unary_rpc_method_handler( + servicer.GetExternalCalibrationLastDateAndTime, + request_deserializer=nirfsg__pb2.GetExternalCalibrationLastDateAndTimeRequest.FromString, + response_serializer=nirfsg__pb2.GetExternalCalibrationLastDateAndTimeResponse.SerializeToString, + ), + 'GetMaxSettablePower': grpc.unary_unary_rpc_method_handler( + servicer.GetMaxSettablePower, + request_deserializer=nirfsg__pb2.GetMaxSettablePowerRequest.FromString, + response_serializer=nirfsg__pb2.GetMaxSettablePowerResponse.SerializeToString, + ), + 'GetSelfCalibrationDateAndTime': grpc.unary_unary_rpc_method_handler( + servicer.GetSelfCalibrationDateAndTime, + request_deserializer=nirfsg__pb2.GetSelfCalibrationDateAndTimeRequest.FromString, + response_serializer=nirfsg__pb2.GetSelfCalibrationDateAndTimeResponse.SerializeToString, + ), + 'GetSelfCalibrationTemperature': grpc.unary_unary_rpc_method_handler( + servicer.GetSelfCalibrationTemperature, + request_deserializer=nirfsg__pb2.GetSelfCalibrationTemperatureRequest.FromString, + response_serializer=nirfsg__pb2.GetSelfCalibrationTemperatureResponse.SerializeToString, + ), + 'GetTerminalName': grpc.unary_unary_rpc_method_handler( + servicer.GetTerminalName, + request_deserializer=nirfsg__pb2.GetTerminalNameRequest.FromString, + response_serializer=nirfsg__pb2.GetTerminalNameResponse.SerializeToString, + ), + 'GetUserData': grpc.unary_unary_rpc_method_handler( + servicer.GetUserData, + request_deserializer=nirfsg__pb2.GetUserDataRequest.FromString, + response_serializer=nirfsg__pb2.GetUserDataResponse.SerializeToString, + ), + 'GetWaveformBurstStartLocations': grpc.unary_unary_rpc_method_handler( + servicer.GetWaveformBurstStartLocations, + request_deserializer=nirfsg__pb2.GetWaveformBurstStartLocationsRequest.FromString, + response_serializer=nirfsg__pb2.GetWaveformBurstStartLocationsResponse.SerializeToString, + ), + 'GetWaveformBurstStopLocations': grpc.unary_unary_rpc_method_handler( + servicer.GetWaveformBurstStopLocations, + request_deserializer=nirfsg__pb2.GetWaveformBurstStopLocationsRequest.FromString, + response_serializer=nirfsg__pb2.GetWaveformBurstStopLocationsResponse.SerializeToString, + ), + 'GetWaveformMarkerEventLocations': grpc.unary_unary_rpc_method_handler( + servicer.GetWaveformMarkerEventLocations, + request_deserializer=nirfsg__pb2.GetWaveformMarkerEventLocationsRequest.FromString, + response_serializer=nirfsg__pb2.GetWaveformMarkerEventLocationsResponse.SerializeToString, + ), + 'Init': grpc.unary_unary_rpc_method_handler( + servicer.Init, + request_deserializer=nirfsg__pb2.InitRequest.FromString, + response_serializer=nirfsg__pb2.InitResponse.SerializeToString, + ), + 'InitWithOptions': grpc.unary_unary_rpc_method_handler( + servicer.InitWithOptions, + request_deserializer=nirfsg__pb2.InitWithOptionsRequest.FromString, + response_serializer=nirfsg__pb2.InitWithOptionsResponse.SerializeToString, + ), + 'Initiate': grpc.unary_unary_rpc_method_handler( + servicer.Initiate, + request_deserializer=nirfsg__pb2.InitiateRequest.FromString, + response_serializer=nirfsg__pb2.InitiateResponse.SerializeToString, + ), + 'InvalidateAllAttributes': grpc.unary_unary_rpc_method_handler( + servicer.InvalidateAllAttributes, + request_deserializer=nirfsg__pb2.InvalidateAllAttributesRequest.FromString, + response_serializer=nirfsg__pb2.InvalidateAllAttributesResponse.SerializeToString, + ), + 'LoadConfigurationsFromFile': grpc.unary_unary_rpc_method_handler( + servicer.LoadConfigurationsFromFile, + request_deserializer=nirfsg__pb2.LoadConfigurationsFromFileRequest.FromString, + response_serializer=nirfsg__pb2.LoadConfigurationsFromFileResponse.SerializeToString, + ), + 'PerformPowerSearch': grpc.unary_unary_rpc_method_handler( + servicer.PerformPowerSearch, + request_deserializer=nirfsg__pb2.PerformPowerSearchRequest.FromString, + response_serializer=nirfsg__pb2.PerformPowerSearchResponse.SerializeToString, + ), + 'PerformThermalCorrection': grpc.unary_unary_rpc_method_handler( + servicer.PerformThermalCorrection, + request_deserializer=nirfsg__pb2.PerformThermalCorrectionRequest.FromString, + response_serializer=nirfsg__pb2.PerformThermalCorrectionResponse.SerializeToString, + ), + 'QueryArbWaveformCapabilities': grpc.unary_unary_rpc_method_handler( + servicer.QueryArbWaveformCapabilities, + request_deserializer=nirfsg__pb2.QueryArbWaveformCapabilitiesRequest.FromString, + response_serializer=nirfsg__pb2.QueryArbWaveformCapabilitiesResponse.SerializeToString, + ), + 'ReadAndDownloadWaveformFromFileTDMS': grpc.unary_unary_rpc_method_handler( + servicer.ReadAndDownloadWaveformFromFileTDMS, + request_deserializer=nirfsg__pb2.ReadAndDownloadWaveformFromFileTDMSRequest.FromString, + response_serializer=nirfsg__pb2.ReadAndDownloadWaveformFromFileTDMSResponse.SerializeToString, + ), + 'Reset': grpc.unary_unary_rpc_method_handler( + servicer.Reset, + request_deserializer=nirfsg__pb2.ResetRequest.FromString, + response_serializer=nirfsg__pb2.ResetResponse.SerializeToString, + ), + 'ResetAttribute': grpc.unary_unary_rpc_method_handler( + servicer.ResetAttribute, + request_deserializer=nirfsg__pb2.ResetAttributeRequest.FromString, + response_serializer=nirfsg__pb2.ResetAttributeResponse.SerializeToString, + ), + 'ResetDevice': grpc.unary_unary_rpc_method_handler( + servicer.ResetDevice, + request_deserializer=nirfsg__pb2.ResetDeviceRequest.FromString, + response_serializer=nirfsg__pb2.ResetDeviceResponse.SerializeToString, + ), + 'ResetWithDefaults': grpc.unary_unary_rpc_method_handler( + servicer.ResetWithDefaults, + request_deserializer=nirfsg__pb2.ResetWithDefaultsRequest.FromString, + response_serializer=nirfsg__pb2.ResetWithDefaultsResponse.SerializeToString, + ), + 'ResetWithOptions': grpc.unary_unary_rpc_method_handler( + servicer.ResetWithOptions, + request_deserializer=nirfsg__pb2.ResetWithOptionsRequest.FromString, + response_serializer=nirfsg__pb2.ResetWithOptionsResponse.SerializeToString, + ), + 'RevisionQuery': grpc.unary_unary_rpc_method_handler( + servicer.RevisionQuery, + request_deserializer=nirfsg__pb2.RevisionQueryRequest.FromString, + response_serializer=nirfsg__pb2.RevisionQueryResponse.SerializeToString, + ), + 'SaveConfigurationsToFile': grpc.unary_unary_rpc_method_handler( + servicer.SaveConfigurationsToFile, + request_deserializer=nirfsg__pb2.SaveConfigurationsToFileRequest.FromString, + response_serializer=nirfsg__pb2.SaveConfigurationsToFileResponse.SerializeToString, + ), + 'SelectArbWaveform': grpc.unary_unary_rpc_method_handler( + servicer.SelectArbWaveform, + request_deserializer=nirfsg__pb2.SelectArbWaveformRequest.FromString, + response_serializer=nirfsg__pb2.SelectArbWaveformResponse.SerializeToString, + ), + 'SelfCal': grpc.unary_unary_rpc_method_handler( + servicer.SelfCal, + request_deserializer=nirfsg__pb2.SelfCalRequest.FromString, + response_serializer=nirfsg__pb2.SelfCalResponse.SerializeToString, + ), + 'SelfCalibrateRange': grpc.unary_unary_rpc_method_handler( + servicer.SelfCalibrateRange, + request_deserializer=nirfsg__pb2.SelfCalibrateRangeRequest.FromString, + response_serializer=nirfsg__pb2.SelfCalibrateRangeResponse.SerializeToString, + ), + 'SelfTest': grpc.unary_unary_rpc_method_handler( + servicer.SelfTest, + request_deserializer=nirfsg__pb2.SelfTestRequest.FromString, + response_serializer=nirfsg__pb2.SelfTestResponse.SerializeToString, + ), + 'SendSoftwareEdgeTrigger': grpc.unary_unary_rpc_method_handler( + servicer.SendSoftwareEdgeTrigger, + request_deserializer=nirfsg__pb2.SendSoftwareEdgeTriggerRequest.FromString, + response_serializer=nirfsg__pb2.SendSoftwareEdgeTriggerResponse.SerializeToString, + ), + 'SetArbWaveformNextWritePosition': grpc.unary_unary_rpc_method_handler( + servicer.SetArbWaveformNextWritePosition, + request_deserializer=nirfsg__pb2.SetArbWaveformNextWritePositionRequest.FromString, + response_serializer=nirfsg__pb2.SetArbWaveformNextWritePositionResponse.SerializeToString, + ), + 'SetAttributeViBoolean': grpc.unary_unary_rpc_method_handler( + servicer.SetAttributeViBoolean, + request_deserializer=nirfsg__pb2.SetAttributeViBooleanRequest.FromString, + response_serializer=nirfsg__pb2.SetAttributeViBooleanResponse.SerializeToString, + ), + 'SetAttributeViInt32': grpc.unary_unary_rpc_method_handler( + servicer.SetAttributeViInt32, + request_deserializer=nirfsg__pb2.SetAttributeViInt32Request.FromString, + response_serializer=nirfsg__pb2.SetAttributeViInt32Response.SerializeToString, + ), + 'SetAttributeViInt64': grpc.unary_unary_rpc_method_handler( + servicer.SetAttributeViInt64, + request_deserializer=nirfsg__pb2.SetAttributeViInt64Request.FromString, + response_serializer=nirfsg__pb2.SetAttributeViInt64Response.SerializeToString, + ), + 'SetAttributeViReal64': grpc.unary_unary_rpc_method_handler( + servicer.SetAttributeViReal64, + request_deserializer=nirfsg__pb2.SetAttributeViReal64Request.FromString, + response_serializer=nirfsg__pb2.SetAttributeViReal64Response.SerializeToString, + ), + 'SetAttributeViSession': grpc.unary_unary_rpc_method_handler( + servicer.SetAttributeViSession, + request_deserializer=nirfsg__pb2.SetAttributeViSessionRequest.FromString, + response_serializer=nirfsg__pb2.SetAttributeViSessionResponse.SerializeToString, + ), + 'SetAttributeViString': grpc.unary_unary_rpc_method_handler( + servicer.SetAttributeViString, + request_deserializer=nirfsg__pb2.SetAttributeViStringRequest.FromString, + response_serializer=nirfsg__pb2.SetAttributeViStringResponse.SerializeToString, + ), + 'SetUserData': grpc.unary_unary_rpc_method_handler( + servicer.SetUserData, + request_deserializer=nirfsg__pb2.SetUserDataRequest.FromString, + response_serializer=nirfsg__pb2.SetUserDataResponse.SerializeToString, + ), + 'SetWaveformBurstStartLocations': grpc.unary_unary_rpc_method_handler( + servicer.SetWaveformBurstStartLocations, + request_deserializer=nirfsg__pb2.SetWaveformBurstStartLocationsRequest.FromString, + response_serializer=nirfsg__pb2.SetWaveformBurstStartLocationsResponse.SerializeToString, + ), + 'SetWaveformBurstStopLocations': grpc.unary_unary_rpc_method_handler( + servicer.SetWaveformBurstStopLocations, + request_deserializer=nirfsg__pb2.SetWaveformBurstStopLocationsRequest.FromString, + response_serializer=nirfsg__pb2.SetWaveformBurstStopLocationsResponse.SerializeToString, + ), + 'SetWaveformMarkerEventLocations': grpc.unary_unary_rpc_method_handler( + servicer.SetWaveformMarkerEventLocations, + request_deserializer=nirfsg__pb2.SetWaveformMarkerEventLocationsRequest.FromString, + response_serializer=nirfsg__pb2.SetWaveformMarkerEventLocationsResponse.SerializeToString, + ), + 'WaitUntilSettled': grpc.unary_unary_rpc_method_handler( + servicer.WaitUntilSettled, + request_deserializer=nirfsg__pb2.WaitUntilSettledRequest.FromString, + response_serializer=nirfsg__pb2.WaitUntilSettledResponse.SerializeToString, + ), + 'WriteArbWaveform': grpc.unary_unary_rpc_method_handler( + servicer.WriteArbWaveform, + request_deserializer=nirfsg__pb2.WriteArbWaveformRequest.FromString, + response_serializer=nirfsg__pb2.WriteArbWaveformResponse.SerializeToString, + ), + 'WriteArbWaveformComplexF32': grpc.unary_unary_rpc_method_handler( + servicer.WriteArbWaveformComplexF32, + request_deserializer=nirfsg__pb2.WriteArbWaveformComplexF32Request.FromString, + response_serializer=nirfsg__pb2.WriteArbWaveformComplexF32Response.SerializeToString, + ), + 'WriteArbWaveformComplexF64': grpc.unary_unary_rpc_method_handler( + servicer.WriteArbWaveformComplexF64, + request_deserializer=nirfsg__pb2.WriteArbWaveformComplexF64Request.FromString, + response_serializer=nirfsg__pb2.WriteArbWaveformComplexF64Response.SerializeToString, + ), + 'WriteArbWaveformComplexI16': grpc.unary_unary_rpc_method_handler( + servicer.WriteArbWaveformComplexI16, + request_deserializer=nirfsg__pb2.WriteArbWaveformComplexI16Request.FromString, + response_serializer=nirfsg__pb2.WriteArbWaveformComplexI16Response.SerializeToString, + ), + 'WriteArbWaveformF32': grpc.unary_unary_rpc_method_handler( + servicer.WriteArbWaveformF32, + request_deserializer=nirfsg__pb2.WriteArbWaveformF32Request.FromString, + response_serializer=nirfsg__pb2.WriteArbWaveformF32Response.SerializeToString, + ), + 'WriteScript': grpc.unary_unary_rpc_method_handler( + servicer.WriteScript, + request_deserializer=nirfsg__pb2.WriteScriptRequest.FromString, + response_serializer=nirfsg__pb2.WriteScriptResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'nirfsg_grpc.NiRFSG', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class NiRFSG(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def Abort(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/Abort', + nirfsg__pb2.AbortRequest.SerializeToString, + nirfsg__pb2.AbortResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AllocateArbWaveform(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/AllocateArbWaveform', + nirfsg__pb2.AllocateArbWaveformRequest.SerializeToString, + nirfsg__pb2.AllocateArbWaveformResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CheckAttributeViBoolean(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CheckAttributeViBoolean', + nirfsg__pb2.CheckAttributeViBooleanRequest.SerializeToString, + nirfsg__pb2.CheckAttributeViBooleanResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CheckAttributeViInt32(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CheckAttributeViInt32', + nirfsg__pb2.CheckAttributeViInt32Request.SerializeToString, + nirfsg__pb2.CheckAttributeViInt32Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CheckAttributeViInt64(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CheckAttributeViInt64', + nirfsg__pb2.CheckAttributeViInt64Request.SerializeToString, + nirfsg__pb2.CheckAttributeViInt64Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CheckAttributeViReal64(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CheckAttributeViReal64', + nirfsg__pb2.CheckAttributeViReal64Request.SerializeToString, + nirfsg__pb2.CheckAttributeViReal64Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CheckAttributeViSession(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CheckAttributeViSession', + nirfsg__pb2.CheckAttributeViSessionRequest.SerializeToString, + nirfsg__pb2.CheckAttributeViSessionResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CheckAttributeViString(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CheckAttributeViString', + nirfsg__pb2.CheckAttributeViStringRequest.SerializeToString, + nirfsg__pb2.CheckAttributeViStringResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CheckGenerationStatus(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CheckGenerationStatus', + nirfsg__pb2.CheckGenerationStatusRequest.SerializeToString, + nirfsg__pb2.CheckGenerationStatusResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CheckIfConfigurationListExists(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CheckIfConfigurationListExists', + nirfsg__pb2.CheckIfConfigurationListExistsRequest.SerializeToString, + nirfsg__pb2.CheckIfConfigurationListExistsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CheckIfScriptExists(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CheckIfScriptExists', + nirfsg__pb2.CheckIfScriptExistsRequest.SerializeToString, + nirfsg__pb2.CheckIfScriptExistsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CheckIfWaveformExists(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CheckIfWaveformExists', + nirfsg__pb2.CheckIfWaveformExistsRequest.SerializeToString, + nirfsg__pb2.CheckIfWaveformExistsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ClearAllArbWaveforms(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ClearAllArbWaveforms', + nirfsg__pb2.ClearAllArbWaveformsRequest.SerializeToString, + nirfsg__pb2.ClearAllArbWaveformsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ClearArbWaveform(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ClearArbWaveform', + nirfsg__pb2.ClearArbWaveformRequest.SerializeToString, + nirfsg__pb2.ClearArbWaveformResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ClearError(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ClearError', + nirfsg__pb2.ClearErrorRequest.SerializeToString, + nirfsg__pb2.ClearErrorResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ClearSelfCalibrateRange(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ClearSelfCalibrateRange', + nirfsg__pb2.ClearSelfCalibrateRangeRequest.SerializeToString, + nirfsg__pb2.ClearSelfCalibrateRangeResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def Close(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/Close', + nirfsg__pb2.CloseRequest.SerializeToString, + nirfsg__pb2.CloseResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def Commit(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/Commit', + nirfsg__pb2.CommitRequest.SerializeToString, + nirfsg__pb2.CommitResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureDeembeddingTableInterpolationLinear(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureDeembeddingTableInterpolationLinear', + nirfsg__pb2.ConfigureDeembeddingTableInterpolationLinearRequest.SerializeToString, + nirfsg__pb2.ConfigureDeembeddingTableInterpolationLinearResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureDeembeddingTableInterpolationNearest(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureDeembeddingTableInterpolationNearest', + nirfsg__pb2.ConfigureDeembeddingTableInterpolationNearestRequest.SerializeToString, + nirfsg__pb2.ConfigureDeembeddingTableInterpolationNearestResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureDeembeddingTableInterpolationSpline(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureDeembeddingTableInterpolationSpline', + nirfsg__pb2.ConfigureDeembeddingTableInterpolationSplineRequest.SerializeToString, + nirfsg__pb2.ConfigureDeembeddingTableInterpolationSplineResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureDigitalEdgeConfigurationListStepTrigger(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureDigitalEdgeConfigurationListStepTrigger', + nirfsg__pb2.ConfigureDigitalEdgeConfigurationListStepTriggerRequest.SerializeToString, + nirfsg__pb2.ConfigureDigitalEdgeConfigurationListStepTriggerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureDigitalEdgeScriptTrigger(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureDigitalEdgeScriptTrigger', + nirfsg__pb2.ConfigureDigitalEdgeScriptTriggerRequest.SerializeToString, + nirfsg__pb2.ConfigureDigitalEdgeScriptTriggerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureDigitalEdgeStartTrigger(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureDigitalEdgeStartTrigger', + nirfsg__pb2.ConfigureDigitalEdgeStartTriggerRequest.SerializeToString, + nirfsg__pb2.ConfigureDigitalEdgeStartTriggerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureDigitalLevelScriptTrigger(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureDigitalLevelScriptTrigger', + nirfsg__pb2.ConfigureDigitalLevelScriptTriggerRequest.SerializeToString, + nirfsg__pb2.ConfigureDigitalLevelScriptTriggerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureDigitalModulationUserDefinedWaveform(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureDigitalModulationUserDefinedWaveform', + nirfsg__pb2.ConfigureDigitalModulationUserDefinedWaveformRequest.SerializeToString, + nirfsg__pb2.ConfigureDigitalModulationUserDefinedWaveformResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureGenerationMode(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureGenerationMode', + nirfsg__pb2.ConfigureGenerationModeRequest.SerializeToString, + nirfsg__pb2.ConfigureGenerationModeResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureOutputEnabled(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureOutputEnabled', + nirfsg__pb2.ConfigureOutputEnabledRequest.SerializeToString, + nirfsg__pb2.ConfigureOutputEnabledResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureP2PEndpointFullnessStartTrigger(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureP2PEndpointFullnessStartTrigger', + nirfsg__pb2.ConfigureP2PEndpointFullnessStartTriggerRequest.SerializeToString, + nirfsg__pb2.ConfigureP2PEndpointFullnessStartTriggerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigurePXIChassisClk10(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigurePXIChassisClk10', + nirfsg__pb2.ConfigurePXIChassisClk10Request.SerializeToString, + nirfsg__pb2.ConfigurePXIChassisClk10Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigurePowerLevelType(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigurePowerLevelType', + nirfsg__pb2.ConfigurePowerLevelTypeRequest.SerializeToString, + nirfsg__pb2.ConfigurePowerLevelTypeResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureRF(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureRF', + nirfsg__pb2.ConfigureRFRequest.SerializeToString, + nirfsg__pb2.ConfigureRFResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureRefClock(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureRefClock', + nirfsg__pb2.ConfigureRefClockRequest.SerializeToString, + nirfsg__pb2.ConfigureRefClockResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureSignalBandwidth(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureSignalBandwidth', + nirfsg__pb2.ConfigureSignalBandwidthRequest.SerializeToString, + nirfsg__pb2.ConfigureSignalBandwidthResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureSoftwareScriptTrigger(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureSoftwareScriptTrigger', + nirfsg__pb2.ConfigureSoftwareScriptTriggerRequest.SerializeToString, + nirfsg__pb2.ConfigureSoftwareScriptTriggerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureSoftwareStartTrigger(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureSoftwareStartTrigger', + nirfsg__pb2.ConfigureSoftwareStartTriggerRequest.SerializeToString, + nirfsg__pb2.ConfigureSoftwareStartTriggerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ConfigureUpconverterPLLSettlingTime(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ConfigureUpconverterPLLSettlingTime', + nirfsg__pb2.ConfigureUpconverterPLLSettlingTimeRequest.SerializeToString, + nirfsg__pb2.ConfigureUpconverterPLLSettlingTimeResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateConfigurationList(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CreateConfigurationList', + nirfsg__pb2.CreateConfigurationListRequest.SerializeToString, + nirfsg__pb2.CreateConfigurationListResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateConfigurationListStep(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CreateConfigurationListStep', + nirfsg__pb2.CreateConfigurationListStepRequest.SerializeToString, + nirfsg__pb2.CreateConfigurationListStepResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateDeembeddingSparameterTableArray(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CreateDeembeddingSparameterTableArray', + nirfsg__pb2.CreateDeembeddingSparameterTableArrayRequest.SerializeToString, + nirfsg__pb2.CreateDeembeddingSparameterTableArrayResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateDeembeddingSparameterTableS2PFile(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/CreateDeembeddingSparameterTableS2PFile', + nirfsg__pb2.CreateDeembeddingSparameterTableS2PFileRequest.SerializeToString, + nirfsg__pb2.CreateDeembeddingSparameterTableS2PFileResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DeleteAllDeembeddingTables(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/DeleteAllDeembeddingTables', + nirfsg__pb2.DeleteAllDeembeddingTablesRequest.SerializeToString, + nirfsg__pb2.DeleteAllDeembeddingTablesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DeleteConfigurationList(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/DeleteConfigurationList', + nirfsg__pb2.DeleteConfigurationListRequest.SerializeToString, + nirfsg__pb2.DeleteConfigurationListResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DeleteDeembeddingTable(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/DeleteDeembeddingTable', + nirfsg__pb2.DeleteDeembeddingTableRequest.SerializeToString, + nirfsg__pb2.DeleteDeembeddingTableResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DeleteScript(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/DeleteScript', + nirfsg__pb2.DeleteScriptRequest.SerializeToString, + nirfsg__pb2.DeleteScriptResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def Disable(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/Disable', + nirfsg__pb2.DisableRequest.SerializeToString, + nirfsg__pb2.DisableResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DisableAllModulation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/DisableAllModulation', + nirfsg__pb2.DisableAllModulationRequest.SerializeToString, + nirfsg__pb2.DisableAllModulationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DisableConfigurationListStepTrigger(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/DisableConfigurationListStepTrigger', + nirfsg__pb2.DisableConfigurationListStepTriggerRequest.SerializeToString, + nirfsg__pb2.DisableConfigurationListStepTriggerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DisableScriptTrigger(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/DisableScriptTrigger', + nirfsg__pb2.DisableScriptTriggerRequest.SerializeToString, + nirfsg__pb2.DisableScriptTriggerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DisableStartTrigger(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/DisableStartTrigger', + nirfsg__pb2.DisableStartTriggerRequest.SerializeToString, + nirfsg__pb2.DisableStartTriggerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ErrorMessage(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ErrorMessage', + nirfsg__pb2.ErrorMessageRequest.SerializeToString, + nirfsg__pb2.ErrorMessageResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ErrorQuery(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ErrorQuery', + nirfsg__pb2.ErrorQueryRequest.SerializeToString, + nirfsg__pb2.ErrorQueryResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ExportSignal(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ExportSignal', + nirfsg__pb2.ExportSignalRequest.SerializeToString, + nirfsg__pb2.ExportSignalResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetAllNamedWaveformNames(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetAllNamedWaveformNames', + nirfsg__pb2.GetAllNamedWaveformNamesRequest.SerializeToString, + nirfsg__pb2.GetAllNamedWaveformNamesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetAllScriptNames(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetAllScriptNames', + nirfsg__pb2.GetAllScriptNamesRequest.SerializeToString, + nirfsg__pb2.GetAllScriptNamesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetScript(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetScript', + nirfsg__pb2.GetScriptRequest.SerializeToString, + nirfsg__pb2.GetScriptResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetAttributeViBoolean(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetAttributeViBoolean', + nirfsg__pb2.GetAttributeViBooleanRequest.SerializeToString, + nirfsg__pb2.GetAttributeViBooleanResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetAttributeViInt32(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetAttributeViInt32', + nirfsg__pb2.GetAttributeViInt32Request.SerializeToString, + nirfsg__pb2.GetAttributeViInt32Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetAttributeViInt64(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetAttributeViInt64', + nirfsg__pb2.GetAttributeViInt64Request.SerializeToString, + nirfsg__pb2.GetAttributeViInt64Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetAttributeViReal64(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetAttributeViReal64', + nirfsg__pb2.GetAttributeViReal64Request.SerializeToString, + nirfsg__pb2.GetAttributeViReal64Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetAttributeViSession(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetAttributeViSession', + nirfsg__pb2.GetAttributeViSessionRequest.SerializeToString, + nirfsg__pb2.GetAttributeViSessionResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetAttributeViString(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetAttributeViString', + nirfsg__pb2.GetAttributeViStringRequest.SerializeToString, + nirfsg__pb2.GetAttributeViStringResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetChannelName(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetChannelName', + nirfsg__pb2.GetChannelNameRequest.SerializeToString, + nirfsg__pb2.GetChannelNameResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetDeembeddingSparameters(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetDeembeddingSparameters', + nirfsg__pb2.GetDeembeddingSparametersRequest.SerializeToString, + nirfsg__pb2.GetDeembeddingSparametersResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetError(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetError', + nirfsg__pb2.GetErrorRequest.SerializeToString, + nirfsg__pb2.GetErrorResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetExternalCalibrationLastDateAndTime(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetExternalCalibrationLastDateAndTime', + nirfsg__pb2.GetExternalCalibrationLastDateAndTimeRequest.SerializeToString, + nirfsg__pb2.GetExternalCalibrationLastDateAndTimeResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetMaxSettablePower(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetMaxSettablePower', + nirfsg__pb2.GetMaxSettablePowerRequest.SerializeToString, + nirfsg__pb2.GetMaxSettablePowerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetSelfCalibrationDateAndTime(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetSelfCalibrationDateAndTime', + nirfsg__pb2.GetSelfCalibrationDateAndTimeRequest.SerializeToString, + nirfsg__pb2.GetSelfCalibrationDateAndTimeResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetSelfCalibrationTemperature(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetSelfCalibrationTemperature', + nirfsg__pb2.GetSelfCalibrationTemperatureRequest.SerializeToString, + nirfsg__pb2.GetSelfCalibrationTemperatureResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetTerminalName(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetTerminalName', + nirfsg__pb2.GetTerminalNameRequest.SerializeToString, + nirfsg__pb2.GetTerminalNameResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetUserData(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetUserData', + nirfsg__pb2.GetUserDataRequest.SerializeToString, + nirfsg__pb2.GetUserDataResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetWaveformBurstStartLocations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetWaveformBurstStartLocations', + nirfsg__pb2.GetWaveformBurstStartLocationsRequest.SerializeToString, + nirfsg__pb2.GetWaveformBurstStartLocationsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetWaveformBurstStopLocations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetWaveformBurstStopLocations', + nirfsg__pb2.GetWaveformBurstStopLocationsRequest.SerializeToString, + nirfsg__pb2.GetWaveformBurstStopLocationsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetWaveformMarkerEventLocations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/GetWaveformMarkerEventLocations', + nirfsg__pb2.GetWaveformMarkerEventLocationsRequest.SerializeToString, + nirfsg__pb2.GetWaveformMarkerEventLocationsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def Init(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/Init', + nirfsg__pb2.InitRequest.SerializeToString, + nirfsg__pb2.InitResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def InitWithOptions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/InitWithOptions', + nirfsg__pb2.InitWithOptionsRequest.SerializeToString, + nirfsg__pb2.InitWithOptionsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def Initiate(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/Initiate', + nirfsg__pb2.InitiateRequest.SerializeToString, + nirfsg__pb2.InitiateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def InvalidateAllAttributes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/InvalidateAllAttributes', + nirfsg__pb2.InvalidateAllAttributesRequest.SerializeToString, + nirfsg__pb2.InvalidateAllAttributesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def LoadConfigurationsFromFile(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/LoadConfigurationsFromFile', + nirfsg__pb2.LoadConfigurationsFromFileRequest.SerializeToString, + nirfsg__pb2.LoadConfigurationsFromFileResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def PerformPowerSearch(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/PerformPowerSearch', + nirfsg__pb2.PerformPowerSearchRequest.SerializeToString, + nirfsg__pb2.PerformPowerSearchResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def PerformThermalCorrection(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/PerformThermalCorrection', + nirfsg__pb2.PerformThermalCorrectionRequest.SerializeToString, + nirfsg__pb2.PerformThermalCorrectionResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def QueryArbWaveformCapabilities(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/QueryArbWaveformCapabilities', + nirfsg__pb2.QueryArbWaveformCapabilitiesRequest.SerializeToString, + nirfsg__pb2.QueryArbWaveformCapabilitiesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ReadAndDownloadWaveformFromFileTDMS(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ReadAndDownloadWaveformFromFileTDMS', + nirfsg__pb2.ReadAndDownloadWaveformFromFileTDMSRequest.SerializeToString, + nirfsg__pb2.ReadAndDownloadWaveformFromFileTDMSResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def Reset(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/Reset', + nirfsg__pb2.ResetRequest.SerializeToString, + nirfsg__pb2.ResetResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ResetAttribute(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ResetAttribute', + nirfsg__pb2.ResetAttributeRequest.SerializeToString, + nirfsg__pb2.ResetAttributeResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ResetDevice(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ResetDevice', + nirfsg__pb2.ResetDeviceRequest.SerializeToString, + nirfsg__pb2.ResetDeviceResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ResetWithDefaults(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ResetWithDefaults', + nirfsg__pb2.ResetWithDefaultsRequest.SerializeToString, + nirfsg__pb2.ResetWithDefaultsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ResetWithOptions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/ResetWithOptions', + nirfsg__pb2.ResetWithOptionsRequest.SerializeToString, + nirfsg__pb2.ResetWithOptionsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def RevisionQuery(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/RevisionQuery', + nirfsg__pb2.RevisionQueryRequest.SerializeToString, + nirfsg__pb2.RevisionQueryResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SaveConfigurationsToFile(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SaveConfigurationsToFile', + nirfsg__pb2.SaveConfigurationsToFileRequest.SerializeToString, + nirfsg__pb2.SaveConfigurationsToFileResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SelectArbWaveform(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SelectArbWaveform', + nirfsg__pb2.SelectArbWaveformRequest.SerializeToString, + nirfsg__pb2.SelectArbWaveformResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SelfCal(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SelfCal', + nirfsg__pb2.SelfCalRequest.SerializeToString, + nirfsg__pb2.SelfCalResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SelfCalibrateRange(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SelfCalibrateRange', + nirfsg__pb2.SelfCalibrateRangeRequest.SerializeToString, + nirfsg__pb2.SelfCalibrateRangeResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SelfTest(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SelfTest', + nirfsg__pb2.SelfTestRequest.SerializeToString, + nirfsg__pb2.SelfTestResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SendSoftwareEdgeTrigger(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SendSoftwareEdgeTrigger', + nirfsg__pb2.SendSoftwareEdgeTriggerRequest.SerializeToString, + nirfsg__pb2.SendSoftwareEdgeTriggerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SetArbWaveformNextWritePosition(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SetArbWaveformNextWritePosition', + nirfsg__pb2.SetArbWaveformNextWritePositionRequest.SerializeToString, + nirfsg__pb2.SetArbWaveformNextWritePositionResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SetAttributeViBoolean(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SetAttributeViBoolean', + nirfsg__pb2.SetAttributeViBooleanRequest.SerializeToString, + nirfsg__pb2.SetAttributeViBooleanResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SetAttributeViInt32(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SetAttributeViInt32', + nirfsg__pb2.SetAttributeViInt32Request.SerializeToString, + nirfsg__pb2.SetAttributeViInt32Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SetAttributeViInt64(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SetAttributeViInt64', + nirfsg__pb2.SetAttributeViInt64Request.SerializeToString, + nirfsg__pb2.SetAttributeViInt64Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SetAttributeViReal64(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SetAttributeViReal64', + nirfsg__pb2.SetAttributeViReal64Request.SerializeToString, + nirfsg__pb2.SetAttributeViReal64Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SetAttributeViSession(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SetAttributeViSession', + nirfsg__pb2.SetAttributeViSessionRequest.SerializeToString, + nirfsg__pb2.SetAttributeViSessionResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SetAttributeViString(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SetAttributeViString', + nirfsg__pb2.SetAttributeViStringRequest.SerializeToString, + nirfsg__pb2.SetAttributeViStringResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SetUserData(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SetUserData', + nirfsg__pb2.SetUserDataRequest.SerializeToString, + nirfsg__pb2.SetUserDataResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SetWaveformBurstStartLocations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SetWaveformBurstStartLocations', + nirfsg__pb2.SetWaveformBurstStartLocationsRequest.SerializeToString, + nirfsg__pb2.SetWaveformBurstStartLocationsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SetWaveformBurstStopLocations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SetWaveformBurstStopLocations', + nirfsg__pb2.SetWaveformBurstStopLocationsRequest.SerializeToString, + nirfsg__pb2.SetWaveformBurstStopLocationsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SetWaveformMarkerEventLocations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/SetWaveformMarkerEventLocations', + nirfsg__pb2.SetWaveformMarkerEventLocationsRequest.SerializeToString, + nirfsg__pb2.SetWaveformMarkerEventLocationsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def WaitUntilSettled(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/WaitUntilSettled', + nirfsg__pb2.WaitUntilSettledRequest.SerializeToString, + nirfsg__pb2.WaitUntilSettledResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def WriteArbWaveform(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/WriteArbWaveform', + nirfsg__pb2.WriteArbWaveformRequest.SerializeToString, + nirfsg__pb2.WriteArbWaveformResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def WriteArbWaveformComplexF32(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/WriteArbWaveformComplexF32', + nirfsg__pb2.WriteArbWaveformComplexF32Request.SerializeToString, + nirfsg__pb2.WriteArbWaveformComplexF32Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def WriteArbWaveformComplexF64(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/WriteArbWaveformComplexF64', + nirfsg__pb2.WriteArbWaveformComplexF64Request.SerializeToString, + nirfsg__pb2.WriteArbWaveformComplexF64Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def WriteArbWaveformComplexI16(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/WriteArbWaveformComplexI16', + nirfsg__pb2.WriteArbWaveformComplexI16Request.SerializeToString, + nirfsg__pb2.WriteArbWaveformComplexI16Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def WriteArbWaveformF32(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/WriteArbWaveformF32', + nirfsg__pb2.WriteArbWaveformF32Request.SerializeToString, + nirfsg__pb2.WriteArbWaveformF32Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def WriteScript(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nirfsg_grpc.NiRFSG/WriteScript', + nirfsg__pb2.WriteScriptRequest.SerializeToString, + nirfsg__pb2.WriteScriptResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/generated/nirfsg/nirfsg/session.py b/generated/nirfsg/nirfsg/session.py index 5770a5b901..002e682530 100644 --- a/generated/nirfsg/nirfsg/session.py +++ b/generated/nirfsg/nirfsg/session.py @@ -5600,7 +5600,7 @@ def unlock(self): class Session(_SessionBase): '''An NI-RFSG session to the NI-RFSG driver''' - def __init__(self, resource_name, id_query=False, reset_device=False, options={}): + def __init__(self, resource_name, id_query=False, reset_device=False, options={}, *, grpc_options=None): r'''An NI-RFSG session to the NI-RFSG driver Opens a session to the device you specify as the RESOURCE_NAME and returns a ViSession handle that you use to identify the NI-RFSG device in all subsequent NI-RFSG method calls. @@ -5679,12 +5679,18 @@ def __init__(self, resource_name, id_query=False, reset_device=False, options={} | driver_setup | {} | +-------------------------+---------+ + grpc_options (nirfsg.grpc_session_options.GrpcSessionOptions): MeasurementLink gRPC session options + Returns: new_vi (int): Returns a ViSession handle that you use to identify the NI-RFSG device in all subsequent NI-RFSG method calls. ''' - interpreter = _library_interpreter.LibraryInterpreter(encoding='windows-1251') + if grpc_options: + import nirfsg._grpc_stub_interpreter as _grpc_stub_interpreter + interpreter = _grpc_stub_interpreter.GrpcStubInterpreter(grpc_options) + else: + interpreter = _library_interpreter.LibraryInterpreter(encoding='windows-1251') # Initialize the superclass with default values first, populate them later super(Session, self).__init__( @@ -5702,7 +5708,9 @@ def __init__(self, resource_name, id_query=False, reset_device=False, options={} # with the actual session handle. self._interpreter.set_session_handle(self._init_with_options(resource_name, id_query, reset_device, options)) - self.tclk = nitclk.SessionReference(self._interpreter.get_session_handle()) + # NI-TClk does not work over NI gRPC Device Server + if not grpc_options: + self.tclk = nitclk.SessionReference(self._interpreter.get_session_handle()) # Store the parameter list for later printing in __repr__ param_list = [] @@ -5729,7 +5737,8 @@ def __enter__(self): return self def __exit__(self, exc_type, exc_value, traceback): - self.close() + if self._interpreter._close_on_exit: + self.close() def initiate(self): '''initiate diff --git a/generated/nirfsg/nirfsg/session_pb2.py b/generated/nirfsg/nirfsg/session_pb2.py new file mode 100644 index 0000000000..73b79bf26d --- /dev/null +++ b/generated/nirfsg/nirfsg/session_pb2.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: session.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rsession.proto\x12\rnidevice_grpc\"2\n\x07Session\x12\x0e\n\x04name\x18\x01 \x01(\tH\x00\x12\x0c\n\x02id\x18\x02 \x01(\rH\x00\x42\t\n\x07session\"j\n\x10\x44\x65viceProperties\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x0e\n\x06vendor\x18\x03 \x01(\t\x12\x15\n\rserial_number\x18\x04 \x01(\t\x12\x12\n\nproduct_id\x18\x05 \x01(\r\"\x19\n\x17\x45numerateDevicesRequest\"L\n\x18\x45numerateDevicesResponse\x12\x30\n\x07\x64\x65vices\x18\x01 \x03(\x0b\x32\x1f.nidevice_grpc.DeviceProperties\";\n\x0eReserveRequest\x12\x16\n\x0ereservation_id\x18\x01 \x01(\t\x12\x11\n\tclient_id\x18\x02 \x01(\t\"&\n\x0fReserveResponse\x12\x13\n\x0bis_reserved\x18\x01 \x01(\x08\"F\n\x19IsReservedByClientRequest\x12\x16\n\x0ereservation_id\x18\x01 \x01(\t\x12\x11\n\tclient_id\x18\x02 \x01(\t\"1\n\x1aIsReservedByClientResponse\x12\x13\n\x0bis_reserved\x18\x01 \x01(\x08\"=\n\x10UnreserveRequest\x12\x16\n\x0ereservation_id\x18\x01 \x01(\t\x12\x11\n\tclient_id\x18\x02 \x01(\t\"*\n\x11UnreserveResponse\x12\x15\n\ris_unreserved\x18\x01 \x01(\x08\"\x14\n\x12ResetServerRequest\".\n\x13ResetServerResponse\x12\x17\n\x0fis_server_reset\x18\x01 \x01(\x08*\xbc\x01\n\x1dSessionInitializationBehavior\x12/\n+SESSION_INITIALIZATION_BEHAVIOR_UNSPECIFIED\x10\x00\x12\x32\n.SESSION_INITIALIZATION_BEHAVIOR_INITIALIZE_NEW\x10\x01\x12\x36\n2SESSION_INITIALIZATION_BEHAVIOR_ATTACH_TO_EXISTING\x10\x02\x32\xd2\x03\n\x10SessionUtilities\x12\x63\n\x10\x45numerateDevices\x12&.nidevice_grpc.EnumerateDevicesRequest\x1a\'.nidevice_grpc.EnumerateDevicesResponse\x12H\n\x07Reserve\x12\x1d.nidevice_grpc.ReserveRequest\x1a\x1e.nidevice_grpc.ReserveResponse\x12i\n\x12IsReservedByClient\x12(.nidevice_grpc.IsReservedByClientRequest\x1a).nidevice_grpc.IsReservedByClientResponse\x12N\n\tUnreserve\x12\x1f.nidevice_grpc.UnreserveRequest\x1a .nidevice_grpc.UnreserveResponse\x12T\n\x0bResetServer\x12!.nidevice_grpc.ResetServerRequest\x1a\".nidevice_grpc.ResetServerResponseBB\n\x12\x63om.ni.grpc.deviceB\x08NiDeviceP\x01\xaa\x02\x1fNationalInstruments.Grpc.Deviceb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'session_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\022com.ni.grpc.deviceB\010NiDeviceP\001\252\002\037NationalInstruments.Grpc.Device' + _globals['_SESSIONINITIALIZATIONBEHAVIOR']._serialized_start=699 + _globals['_SESSIONINITIALIZATIONBEHAVIOR']._serialized_end=887 + _globals['_SESSION']._serialized_start=32 + _globals['_SESSION']._serialized_end=82 + _globals['_DEVICEPROPERTIES']._serialized_start=84 + _globals['_DEVICEPROPERTIES']._serialized_end=190 + _globals['_ENUMERATEDEVICESREQUEST']._serialized_start=192 + _globals['_ENUMERATEDEVICESREQUEST']._serialized_end=217 + _globals['_ENUMERATEDEVICESRESPONSE']._serialized_start=219 + _globals['_ENUMERATEDEVICESRESPONSE']._serialized_end=295 + _globals['_RESERVEREQUEST']._serialized_start=297 + _globals['_RESERVEREQUEST']._serialized_end=356 + _globals['_RESERVERESPONSE']._serialized_start=358 + _globals['_RESERVERESPONSE']._serialized_end=396 + _globals['_ISRESERVEDBYCLIENTREQUEST']._serialized_start=398 + _globals['_ISRESERVEDBYCLIENTREQUEST']._serialized_end=468 + _globals['_ISRESERVEDBYCLIENTRESPONSE']._serialized_start=470 + _globals['_ISRESERVEDBYCLIENTRESPONSE']._serialized_end=519 + _globals['_UNRESERVEREQUEST']._serialized_start=521 + _globals['_UNRESERVEREQUEST']._serialized_end=582 + _globals['_UNRESERVERESPONSE']._serialized_start=584 + _globals['_UNRESERVERESPONSE']._serialized_end=626 + _globals['_RESETSERVERREQUEST']._serialized_start=628 + _globals['_RESETSERVERREQUEST']._serialized_end=648 + _globals['_RESETSERVERRESPONSE']._serialized_start=650 + _globals['_RESETSERVERRESPONSE']._serialized_end=696 + _globals['_SESSIONUTILITIES']._serialized_start=890 + _globals['_SESSIONUTILITIES']._serialized_end=1356 +# @@protoc_insertion_point(module_scope) diff --git a/generated/nirfsg/nirfsg/session_pb2_grpc.py b/generated/nirfsg/nirfsg/session_pb2_grpc.py new file mode 100644 index 0000000000..28709265d2 --- /dev/null +++ b/generated/nirfsg/nirfsg/session_pb2_grpc.py @@ -0,0 +1,204 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from . import session_pb2 as session__pb2 + + +class SessionUtilitiesStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.EnumerateDevices = channel.unary_unary( + '/nidevice_grpc.SessionUtilities/EnumerateDevices', + request_serializer=session__pb2.EnumerateDevicesRequest.SerializeToString, + response_deserializer=session__pb2.EnumerateDevicesResponse.FromString, + ) + self.Reserve = channel.unary_unary( + '/nidevice_grpc.SessionUtilities/Reserve', + request_serializer=session__pb2.ReserveRequest.SerializeToString, + response_deserializer=session__pb2.ReserveResponse.FromString, + ) + self.IsReservedByClient = channel.unary_unary( + '/nidevice_grpc.SessionUtilities/IsReservedByClient', + request_serializer=session__pb2.IsReservedByClientRequest.SerializeToString, + response_deserializer=session__pb2.IsReservedByClientResponse.FromString, + ) + self.Unreserve = channel.unary_unary( + '/nidevice_grpc.SessionUtilities/Unreserve', + request_serializer=session__pb2.UnreserveRequest.SerializeToString, + response_deserializer=session__pb2.UnreserveResponse.FromString, + ) + self.ResetServer = channel.unary_unary( + '/nidevice_grpc.SessionUtilities/ResetServer', + request_serializer=session__pb2.ResetServerRequest.SerializeToString, + response_deserializer=session__pb2.ResetServerResponse.FromString, + ) + + +class SessionUtilitiesServicer(object): + """Missing associated documentation comment in .proto file.""" + + def EnumerateDevices(self, request, context): + """Provides a list of devices or chassis connected to server under localhost + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Reserve(self, request, context): + """Reserve a set of client defined resources for exclusive use + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def IsReservedByClient(self, request, context): + """Determines if a set of client defined resources is currently reserved by a + specific client + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Unreserve(self, request, context): + """Unreserves a previously reserved resource + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ResetServer(self, request, context): + """Resets the server to a default state with no open sessions + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_SessionUtilitiesServicer_to_server(servicer, server): + rpc_method_handlers = { + 'EnumerateDevices': grpc.unary_unary_rpc_method_handler( + servicer.EnumerateDevices, + request_deserializer=session__pb2.EnumerateDevicesRequest.FromString, + response_serializer=session__pb2.EnumerateDevicesResponse.SerializeToString, + ), + 'Reserve': grpc.unary_unary_rpc_method_handler( + servicer.Reserve, + request_deserializer=session__pb2.ReserveRequest.FromString, + response_serializer=session__pb2.ReserveResponse.SerializeToString, + ), + 'IsReservedByClient': grpc.unary_unary_rpc_method_handler( + servicer.IsReservedByClient, + request_deserializer=session__pb2.IsReservedByClientRequest.FromString, + response_serializer=session__pb2.IsReservedByClientResponse.SerializeToString, + ), + 'Unreserve': grpc.unary_unary_rpc_method_handler( + servicer.Unreserve, + request_deserializer=session__pb2.UnreserveRequest.FromString, + response_serializer=session__pb2.UnreserveResponse.SerializeToString, + ), + 'ResetServer': grpc.unary_unary_rpc_method_handler( + servicer.ResetServer, + request_deserializer=session__pb2.ResetServerRequest.FromString, + response_serializer=session__pb2.ResetServerResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'nidevice_grpc.SessionUtilities', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class SessionUtilities(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def EnumerateDevices(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nidevice_grpc.SessionUtilities/EnumerateDevices', + session__pb2.EnumerateDevicesRequest.SerializeToString, + session__pb2.EnumerateDevicesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def Reserve(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nidevice_grpc.SessionUtilities/Reserve', + session__pb2.ReserveRequest.SerializeToString, + session__pb2.ReserveResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def IsReservedByClient(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nidevice_grpc.SessionUtilities/IsReservedByClient', + session__pb2.IsReservedByClientRequest.SerializeToString, + session__pb2.IsReservedByClientResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def Unreserve(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nidevice_grpc.SessionUtilities/Unreserve', + session__pb2.UnreserveRequest.SerializeToString, + session__pb2.UnreserveResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ResetServer(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nidevice_grpc.SessionUtilities/ResetServer', + session__pb2.ResetServerRequest.SerializeToString, + session__pb2.ResetServerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/generated/nirfsg/setup.py b/generated/nirfsg/setup.py index c1428600ed..f19769766b 100644 --- a/generated/nirfsg/setup.py +++ b/generated/nirfsg/setup.py @@ -34,6 +34,12 @@ def read_contents(file_to_read): 'hightime>=0.2.0', 'nitclk', ], + extras_require={ + 'grpc': [ + 'grpcio>=1.59.0,<2.0', + 'protobuf>=4.21.6' + ], + }, classifiers=[ "Development Status :: 4 - Beta", "Intended Audience :: Developers", diff --git a/generated/nirfsg/tox-system_tests.ini b/generated/nirfsg/tox-system_tests.ini index 3bb81aa8c8..f6a4e6b11b 100644 --- a/generated/nirfsg/tox-system_tests.ini +++ b/generated/nirfsg/tox-system_tests.ini @@ -45,6 +45,7 @@ deps = nirfsg-system_tests: hightime nirfsg-system_tests: fasteners nirfsg-system_tests: pytest-json + nirfsg-system_tests: .[grpc] nirfsg-coverage: coverage diff --git a/src/nirfsg/metadata/attributes.py b/src/nirfsg/metadata/attributes.py index 102b759d56..9222d248bc 100644 --- a/src/nirfsg/metadata/attributes.py +++ b/src/nirfsg/metadata/attributes.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d9999 +# This file is generated from NI-RFSG API metadata version 26.3.0d277 attributes = { 1050302: { 'access': 'read only', diff --git a/src/nirfsg/metadata/config.py b/src/nirfsg/metadata/config.py index 6f0e29f0e2..0fd6e0028e 100644 --- a/src/nirfsg/metadata/config.py +++ b/src/nirfsg/metadata/config.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d9999 +# This file is generated from NI-RFSG API metadata version 26.3.0d277 config = { - 'api_version': '26.3.0d9999', + 'api_version': '26.3.0d277', 'c_function_prefix': 'niRFSG_', 'close_function': 'close', 'context_manager_name': { diff --git a/src/nirfsg/metadata/enums.py b/src/nirfsg/metadata/enums.py index b1c411b502..9d91dd6d44 100644 --- a/src/nirfsg/metadata/enums.py +++ b/src/nirfsg/metadata/enums.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d9999 +# This file is generated from NI-RFSG API metadata version 26.3.0d277 enums = { 'AllowOutOfSpecificationUserSettings': { 'values': [ diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index 3ab6eadc27..96c1984b11 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d9999 +# This file is generated from NI-RFSG API metadata version 26.3.0d277 functions = { 'Abort': { 'codegen_method': 'public', @@ -3922,7 +3922,6 @@ }, 'enum': 'TriggerIdentifier', 'name': 'triggerIdentifier', - 'grpc_enum': 'SignalIdentifier', 'type': 'ViConstString', 'use_array': False, 'use_in_python_api': True @@ -4120,6 +4119,7 @@ 'description': 'Specifies the value to which you want to set the attribute.', 'note': 'Some values may not be valid. The allowed values depend on the current settings of the instrument session.' }, + 'grpc_enum': 'NiRFSGInt32AttributeValues', 'name': 'value', 'type': 'ViInt32', 'use_array': False, @@ -4179,6 +4179,7 @@ 'documentation': { 'description': 'Pass the value to which you want to set the attribute.\n\n
\nSome values may not be valid. The allowed values depend on the current settings of the instrument session.\n
' }, + 'grpc_enum': 'NiRFSGInt64AttributeValues', 'name': 'value', 'type': 'ViInt64', 'use_array': False, @@ -4239,6 +4240,7 @@ 'description': 'Pass the value to which you want to set the attribute.', 'note': 'Some values may not be valid. The allowed values depend on the current settings of the instrument session.' }, + 'grpc_enum': 'NiRFSGReal64AttributeValues', 'name': 'value', 'type': 'ViReal64', 'use_array': False, @@ -4359,6 +4361,7 @@ 'description': 'Pass the value to which you want to set the attribute.', 'note': 'Some values may not be valid. The allowed values depend on the current settings of the instrument session.' }, + 'grpc_mapped_enum': 'NiRFSGStringAttributeValuesMapped', 'name': 'value', 'type': 'ViConstString', 'use_array': False, diff --git a/src/nirfsg/metadata/nirfsg.proto b/src/nirfsg/metadata/nirfsg.proto new file mode 100644 index 0000000000..3d46ed08cc --- /dev/null +++ b/src/nirfsg/metadata/nirfsg.proto @@ -0,0 +1,2066 @@ + +//--------------------------------------------------------------------- +// This file is generated from NI-RFSG API metadata version 25.5.0 +//--------------------------------------------------------------------- +// Proto file for the NI-RFSG Metadata +//--------------------------------------------------------------------- +syntax = "proto3"; + +option java_multiple_files = true; +option java_package = "com.ni.grpc.nirfsg"; +option java_outer_classname = "NiRFSG"; +option csharp_namespace = "NationalInstruments.Grpc.NiRFSG"; + +package nirfsg_grpc; + +import "nidevice.proto"; +import "session.proto"; + +service NiRFSG { + rpc Abort(AbortRequest) returns (AbortResponse); + rpc AllocateArbWaveform(AllocateArbWaveformRequest) returns (AllocateArbWaveformResponse); + rpc CheckAttributeViBoolean(CheckAttributeViBooleanRequest) returns (CheckAttributeViBooleanResponse); + rpc CheckAttributeViInt32(CheckAttributeViInt32Request) returns (CheckAttributeViInt32Response); + rpc CheckAttributeViInt64(CheckAttributeViInt64Request) returns (CheckAttributeViInt64Response); + rpc CheckAttributeViReal64(CheckAttributeViReal64Request) returns (CheckAttributeViReal64Response); + rpc CheckAttributeViSession(CheckAttributeViSessionRequest) returns (CheckAttributeViSessionResponse); + rpc CheckAttributeViString(CheckAttributeViStringRequest) returns (CheckAttributeViStringResponse); + rpc CheckGenerationStatus(CheckGenerationStatusRequest) returns (CheckGenerationStatusResponse); + rpc CheckIfConfigurationListExists(CheckIfConfigurationListExistsRequest) returns (CheckIfConfigurationListExistsResponse); + rpc CheckIfScriptExists(CheckIfScriptExistsRequest) returns (CheckIfScriptExistsResponse); + rpc CheckIfWaveformExists(CheckIfWaveformExistsRequest) returns (CheckIfWaveformExistsResponse); + rpc ClearAllArbWaveforms(ClearAllArbWaveformsRequest) returns (ClearAllArbWaveformsResponse); + rpc ClearArbWaveform(ClearArbWaveformRequest) returns (ClearArbWaveformResponse); + rpc ClearError(ClearErrorRequest) returns (ClearErrorResponse); + rpc ClearSelfCalibrateRange(ClearSelfCalibrateRangeRequest) returns (ClearSelfCalibrateRangeResponse); + rpc Close(CloseRequest) returns (CloseResponse); + rpc Commit(CommitRequest) returns (CommitResponse); + rpc ConfigureDeembeddingTableInterpolationLinear(ConfigureDeembeddingTableInterpolationLinearRequest) returns (ConfigureDeembeddingTableInterpolationLinearResponse); + rpc ConfigureDeembeddingTableInterpolationNearest(ConfigureDeembeddingTableInterpolationNearestRequest) returns (ConfigureDeembeddingTableInterpolationNearestResponse); + rpc ConfigureDeembeddingTableInterpolationSpline(ConfigureDeembeddingTableInterpolationSplineRequest) returns (ConfigureDeembeddingTableInterpolationSplineResponse); + rpc ConfigureDigitalEdgeConfigurationListStepTrigger(ConfigureDigitalEdgeConfigurationListStepTriggerRequest) returns (ConfigureDigitalEdgeConfigurationListStepTriggerResponse); + rpc ConfigureDigitalEdgeScriptTrigger(ConfigureDigitalEdgeScriptTriggerRequest) returns (ConfigureDigitalEdgeScriptTriggerResponse); + rpc ConfigureDigitalEdgeStartTrigger(ConfigureDigitalEdgeStartTriggerRequest) returns (ConfigureDigitalEdgeStartTriggerResponse); + rpc ConfigureDigitalLevelScriptTrigger(ConfigureDigitalLevelScriptTriggerRequest) returns (ConfigureDigitalLevelScriptTriggerResponse); + rpc ConfigureDigitalModulationUserDefinedWaveform(ConfigureDigitalModulationUserDefinedWaveformRequest) returns (ConfigureDigitalModulationUserDefinedWaveformResponse); + rpc ConfigureGenerationMode(ConfigureGenerationModeRequest) returns (ConfigureGenerationModeResponse); + rpc ConfigureOutputEnabled(ConfigureOutputEnabledRequest) returns (ConfigureOutputEnabledResponse); + rpc ConfigureP2PEndpointFullnessStartTrigger(ConfigureP2PEndpointFullnessStartTriggerRequest) returns (ConfigureP2PEndpointFullnessStartTriggerResponse); + rpc ConfigurePXIChassisClk10(ConfigurePXIChassisClk10Request) returns (ConfigurePXIChassisClk10Response); + rpc ConfigurePowerLevelType(ConfigurePowerLevelTypeRequest) returns (ConfigurePowerLevelTypeResponse); + rpc ConfigureRF(ConfigureRFRequest) returns (ConfigureRFResponse); + rpc ConfigureRefClock(ConfigureRefClockRequest) returns (ConfigureRefClockResponse); + rpc ConfigureSignalBandwidth(ConfigureSignalBandwidthRequest) returns (ConfigureSignalBandwidthResponse); + rpc ConfigureSoftwareScriptTrigger(ConfigureSoftwareScriptTriggerRequest) returns (ConfigureSoftwareScriptTriggerResponse); + rpc ConfigureSoftwareStartTrigger(ConfigureSoftwareStartTriggerRequest) returns (ConfigureSoftwareStartTriggerResponse); + rpc ConfigureUpconverterPLLSettlingTime(ConfigureUpconverterPLLSettlingTimeRequest) returns (ConfigureUpconverterPLLSettlingTimeResponse); + rpc CreateConfigurationList(CreateConfigurationListRequest) returns (CreateConfigurationListResponse); + rpc CreateConfigurationListStep(CreateConfigurationListStepRequest) returns (CreateConfigurationListStepResponse); + rpc CreateDeembeddingSparameterTableArray(CreateDeembeddingSparameterTableArrayRequest) returns (CreateDeembeddingSparameterTableArrayResponse); + rpc CreateDeembeddingSparameterTableS2PFile(CreateDeembeddingSparameterTableS2PFileRequest) returns (CreateDeembeddingSparameterTableS2PFileResponse); + rpc DeleteAllDeembeddingTables(DeleteAllDeembeddingTablesRequest) returns (DeleteAllDeembeddingTablesResponse); + rpc DeleteConfigurationList(DeleteConfigurationListRequest) returns (DeleteConfigurationListResponse); + rpc DeleteDeembeddingTable(DeleteDeembeddingTableRequest) returns (DeleteDeembeddingTableResponse); + rpc DeleteScript(DeleteScriptRequest) returns (DeleteScriptResponse); + rpc Disable(DisableRequest) returns (DisableResponse); + rpc DisableAllModulation(DisableAllModulationRequest) returns (DisableAllModulationResponse); + rpc DisableConfigurationListStepTrigger(DisableConfigurationListStepTriggerRequest) returns (DisableConfigurationListStepTriggerResponse); + rpc DisableScriptTrigger(DisableScriptTriggerRequest) returns (DisableScriptTriggerResponse); + rpc DisableStartTrigger(DisableStartTriggerRequest) returns (DisableStartTriggerResponse); + rpc ErrorMessage(ErrorMessageRequest) returns (ErrorMessageResponse); + rpc ErrorQuery(ErrorQueryRequest) returns (ErrorQueryResponse); + rpc ExportSignal(ExportSignalRequest) returns (ExportSignalResponse); + rpc GetAllNamedWaveformNames(GetAllNamedWaveformNamesRequest) returns (GetAllNamedWaveformNamesResponse); + rpc GetAllScriptNames(GetAllScriptNamesRequest) returns (GetAllScriptNamesResponse); + rpc GetScript(GetScriptRequest) returns (GetScriptResponse); + rpc GetAttributeViBoolean(GetAttributeViBooleanRequest) returns (GetAttributeViBooleanResponse); + rpc GetAttributeViInt32(GetAttributeViInt32Request) returns (GetAttributeViInt32Response); + rpc GetAttributeViInt64(GetAttributeViInt64Request) returns (GetAttributeViInt64Response); + rpc GetAttributeViReal64(GetAttributeViReal64Request) returns (GetAttributeViReal64Response); + rpc GetAttributeViSession(GetAttributeViSessionRequest) returns (GetAttributeViSessionResponse); + rpc GetAttributeViString(GetAttributeViStringRequest) returns (GetAttributeViStringResponse); + rpc GetChannelName(GetChannelNameRequest) returns (GetChannelNameResponse); + rpc GetDeembeddingSparameters(GetDeembeddingSparametersRequest) returns (GetDeembeddingSparametersResponse); + rpc GetError(GetErrorRequest) returns (GetErrorResponse); + rpc GetExternalCalibrationLastDateAndTime(GetExternalCalibrationLastDateAndTimeRequest) returns (GetExternalCalibrationLastDateAndTimeResponse); + rpc GetMaxSettablePower(GetMaxSettablePowerRequest) returns (GetMaxSettablePowerResponse); + rpc GetSelfCalibrationDateAndTime(GetSelfCalibrationDateAndTimeRequest) returns (GetSelfCalibrationDateAndTimeResponse); + rpc GetSelfCalibrationTemperature(GetSelfCalibrationTemperatureRequest) returns (GetSelfCalibrationTemperatureResponse); + rpc GetTerminalName(GetTerminalNameRequest) returns (GetTerminalNameResponse); + rpc GetUserData(GetUserDataRequest) returns (GetUserDataResponse); + rpc GetWaveformBurstStartLocations(GetWaveformBurstStartLocationsRequest) returns (GetWaveformBurstStartLocationsResponse); + rpc GetWaveformBurstStopLocations(GetWaveformBurstStopLocationsRequest) returns (GetWaveformBurstStopLocationsResponse); + rpc GetWaveformMarkerEventLocations(GetWaveformMarkerEventLocationsRequest) returns (GetWaveformMarkerEventLocationsResponse); + rpc Init(InitRequest) returns (InitResponse); + rpc InitWithOptions(InitWithOptionsRequest) returns (InitWithOptionsResponse); + rpc Initiate(InitiateRequest) returns (InitiateResponse); + rpc InvalidateAllAttributes(InvalidateAllAttributesRequest) returns (InvalidateAllAttributesResponse); + rpc LoadConfigurationsFromFile(LoadConfigurationsFromFileRequest) returns (LoadConfigurationsFromFileResponse); + rpc PerformPowerSearch(PerformPowerSearchRequest) returns (PerformPowerSearchResponse); + rpc PerformThermalCorrection(PerformThermalCorrectionRequest) returns (PerformThermalCorrectionResponse); + rpc QueryArbWaveformCapabilities(QueryArbWaveformCapabilitiesRequest) returns (QueryArbWaveformCapabilitiesResponse); + rpc ReadAndDownloadWaveformFromFileTDMS(ReadAndDownloadWaveformFromFileTDMSRequest) returns (ReadAndDownloadWaveformFromFileTDMSResponse); + rpc Reset(ResetRequest) returns (ResetResponse); + rpc ResetAttribute(ResetAttributeRequest) returns (ResetAttributeResponse); + rpc ResetDevice(ResetDeviceRequest) returns (ResetDeviceResponse); + rpc ResetWithDefaults(ResetWithDefaultsRequest) returns (ResetWithDefaultsResponse); + rpc ResetWithOptions(ResetWithOptionsRequest) returns (ResetWithOptionsResponse); + rpc RevisionQuery(RevisionQueryRequest) returns (RevisionQueryResponse); + rpc SaveConfigurationsToFile(SaveConfigurationsToFileRequest) returns (SaveConfigurationsToFileResponse); + rpc SelectArbWaveform(SelectArbWaveformRequest) returns (SelectArbWaveformResponse); + rpc SelfCal(SelfCalRequest) returns (SelfCalResponse); + rpc SelfCalibrateRange(SelfCalibrateRangeRequest) returns (SelfCalibrateRangeResponse); + rpc SelfTest(SelfTestRequest) returns (SelfTestResponse); + rpc SendSoftwareEdgeTrigger(SendSoftwareEdgeTriggerRequest) returns (SendSoftwareEdgeTriggerResponse); + rpc SetArbWaveformNextWritePosition(SetArbWaveformNextWritePositionRequest) returns (SetArbWaveformNextWritePositionResponse); + rpc SetAttributeViBoolean(SetAttributeViBooleanRequest) returns (SetAttributeViBooleanResponse); + rpc SetAttributeViInt32(SetAttributeViInt32Request) returns (SetAttributeViInt32Response); + rpc SetAttributeViInt64(SetAttributeViInt64Request) returns (SetAttributeViInt64Response); + rpc SetAttributeViReal64(SetAttributeViReal64Request) returns (SetAttributeViReal64Response); + rpc SetAttributeViSession(SetAttributeViSessionRequest) returns (SetAttributeViSessionResponse); + rpc SetAttributeViString(SetAttributeViStringRequest) returns (SetAttributeViStringResponse); + rpc SetUserData(SetUserDataRequest) returns (SetUserDataResponse); + rpc SetWaveformBurstStartLocations(SetWaveformBurstStartLocationsRequest) returns (SetWaveformBurstStartLocationsResponse); + rpc SetWaveformBurstStopLocations(SetWaveformBurstStopLocationsRequest) returns (SetWaveformBurstStopLocationsResponse); + rpc SetWaveformMarkerEventLocations(SetWaveformMarkerEventLocationsRequest) returns (SetWaveformMarkerEventLocationsResponse); + rpc WaitUntilSettled(WaitUntilSettledRequest) returns (WaitUntilSettledResponse); + rpc WriteArbWaveform(WriteArbWaveformRequest) returns (WriteArbWaveformResponse); + rpc WriteArbWaveformComplexF32(WriteArbWaveformComplexF32Request) returns (WriteArbWaveformComplexF32Response); + rpc WriteArbWaveformComplexF64(WriteArbWaveformComplexF64Request) returns (WriteArbWaveformComplexF64Response); + rpc WriteArbWaveformComplexI16(WriteArbWaveformComplexI16Request) returns (WriteArbWaveformComplexI16Response); + rpc WriteArbWaveformF32(WriteArbWaveformF32Request) returns (WriteArbWaveformF32Response); + rpc WriteScript(WriteScriptRequest) returns (WriteScriptResponse); +} + +enum NiRFSGAttribute { + NIRFSG_ATTRIBUTE_UNSPECIFIED = 0; + NIRFSG_ATTRIBUTE_RANGE_CHECK = 1050002; + NIRFSG_ATTRIBUTE_QUERY_INSTRUMENT_STATUS = 1050003; + NIRFSG_ATTRIBUTE_CACHE = 1050004; + NIRFSG_ATTRIBUTE_SIMULATE = 1050005; + NIRFSG_ATTRIBUTE_RECORD_COERCIONS = 1050006; + NIRFSG_ATTRIBUTE_DRIVER_SETUP = 1050007; + NIRFSG_ATTRIBUTE_INTERCHANGE_CHECK = 1050021; + NIRFSG_ATTRIBUTE_SPY = 1050022; + NIRFSG_ATTRIBUTE_USE_SPECIFIC_SIMULATION = 1050023; + NIRFSG_ATTRIBUTE_CHANNEL_COUNT = 1050203; + NIRFSG_ATTRIBUTE_SPECIFIC_DRIVER_PREFIX = 1050302; + NIRFSG_ATTRIBUTE_IO_RESOURCE_DESCRIPTOR = 1050304; + NIRFSG_ATTRIBUTE_LOGICAL_NAME = 1050305; + NIRFSG_ATTRIBUTE_SUPPORTED_INSTRUMENT_MODELS = 1050327; + NIRFSG_ATTRIBUTE_GROUP_CAPABILITIES = 1050401; + NIRFSG_ATTRIBUTE_FUNCTION_CAPABILITIES = 1050402; + NIRFSG_ATTRIBUTE_INSTRUMENT_FIRMWARE_REVISION = 1050510; + NIRFSG_ATTRIBUTE_INSTRUMENT_MANUFACTURER = 1050511; + NIRFSG_ATTRIBUTE_INSTRUMENT_MODEL = 1050512; + NIRFSG_ATTRIBUTE_SPECIFIC_DRIVER_VENDOR = 1050513; + NIRFSG_ATTRIBUTE_SPECIFIC_DRIVER_DESCRIPTION = 1050514; + NIRFSG_ATTRIBUTE_SPECIFIC_DRIVER_CLASS_SPEC_MAJOR_VERSION = 1050515; + NIRFSG_ATTRIBUTE_SPECIFIC_DRIVER_CLASS_SPEC_MINOR_VERSION = 1050516; + NIRFSG_ATTRIBUTE_SPECIFIC_DRIVER_REVISION = 1050551; + NIRFSG_ATTRIBUTE_REF_CLOCK_SOURCE = 1150001; + NIRFSG_ATTRIBUTE_DIGITAL_EDGE_START_TRIGGER_SOURCE = 1150002; + NIRFSG_ATTRIBUTE_EXPORTED_START_TRIGGER_OUTPUT_TERMINAL = 1150003; + NIRFSG_ATTRIBUTE_PXI_CHASSIS_CLK10_SOURCE = 1150004; + NIRFSG_ATTRIBUTE_PHASE_CONTINUITY_ENABLED = 1150005; + NIRFSG_ATTRIBUTE_FREQUENCY_TOLERANCE = 1150006; + NIRFSG_ATTRIBUTE_SIGNAL_BANDWIDTH = 1150007; + NIRFSG_ATTRIBUTE_AUTOMATIC_THERMAL_CORRECTION = 1150008; + NIRFSG_ATTRIBUTE_ATTENUATOR_HOLD_ENABLED = 1150009; + NIRFSG_ATTRIBUTE_ATTENUATOR_HOLD_MAX_POWER = 1150010; + NIRFSG_ATTRIBUTE_PEAK_ENVELOPE_POWER = 1150011; + NIRFSG_ATTRIBUTE_DIGITAL_EQUALIZATION_ENABLED = 1150012; + NIRFSG_ATTRIBUTE_LO_OUT_ENABLED = 1150013; + NIRFSG_ATTRIBUTE_ALLOW_OUT_OF_SPECIFICATION_USER_SETTINGS = 1150014; + NIRFSG_ATTRIBUTE_ARB_CARRIER_FREQUENCY = 1150015; + NIRFSG_ATTRIBUTE_ARB_POWER = 1150016; + NIRFSG_ATTRIBUTE_DEVICE_TEMPERATURE = 1150017; + NIRFSG_ATTRIBUTE_GENERATION_MODE = 1150018; + NIRFSG_ATTRIBUTE_SCRIPT_TRIGGER_TYPE = 1150019; + NIRFSG_ATTRIBUTE_DIGITAL_EDGE_SCRIPT_TRIGGER_SOURCE = 1150020; + NIRFSG_ATTRIBUTE_DIGITAL_EDGE_SCRIPT_TRIGGER_EDGE = 1150021; + NIRFSG_ATTRIBUTE_EXPORTED_SCRIPT_TRIGGER_OUTPUT_TERMINAL = 1150022; + NIRFSG_ATTRIBUTE_SELECTED_SCRIPT = 1150023; + NIRFSG_ATTRIBUTE_PHASE_OFFSET = 1150024; + NIRFSG_ATTRIBUTE_ARB_PRE_FILTER_GAIN = 1150025; + NIRFSG_ATTRIBUTE_SERIAL_NUMBER = 1150026; + NIRFSG_ATTRIBUTE_LOOP_BANDWIDTH = 1150027; + NIRFSG_ATTRIBUTE_ARB_ONBOARD_SAMPLE_CLOCK_MODE = 1150029; + NIRFSG_ATTRIBUTE_ARB_SAMPLE_CLOCK_SOURCE = 1150030; + NIRFSG_ATTRIBUTE_ARB_SAMPLE_CLOCK_RATE = 1150031; + NIRFSG_ATTRIBUTE_ANALOG_MODULATION_TYPE = 1150032; + NIRFSG_ATTRIBUTE_ANALOG_MODULATION_WAVEFORM_TYPE = 1150033; + NIRFSG_ATTRIBUTE_ANALOG_MODULATION_WAVEFORM_FREQUENCY = 1150034; + NIRFSG_ATTRIBUTE_ANALOG_MODULATION_FM_DEVIATION = 1150035; + NIRFSG_ATTRIBUTE_DIGITAL_MODULATION_TYPE = 1150036; + NIRFSG_ATTRIBUTE_DIGITAL_MODULATION_SYMBOL_RATE = 1150037; + NIRFSG_ATTRIBUTE_DIGITAL_MODULATION_WAVEFORM_TYPE = 1150038; + NIRFSG_ATTRIBUTE_DIGITAL_MODULATION_PRBS_ORDER = 1150039; + NIRFSG_ATTRIBUTE_DIGITAL_MODULATION_PRBS_SEED = 1150040; + NIRFSG_ATTRIBUTE_DIGITAL_MODULATION_FSK_DEVIATION = 1150041; + NIRFSG_ATTRIBUTE_DIRECT_DOWNLOAD = 1150042; + NIRFSG_ATTRIBUTE_POWER_LEVEL_TYPE = 1150043; + NIRFSG_ATTRIBUTE_DIGITAL_PATTERN = 1150044; + NIRFSG_ATTRIBUTE_STREAMING_ENABLED = 1150045; + NIRFSG_ATTRIBUTE_STREAMING_WAVEFORM_NAME = 1150046; + NIRFSG_ATTRIBUTE_STREAMING_SPACE_AVAILABLE_IN_WAVEFORM = 1150047; + NIRFSG_ATTRIBUTE_DATA_TRANSFER_BLOCK_SIZE = 1150048; + NIRFSG_ATTRIBUTE_ARB_WAVEFORM_SOFTWARE_SCALING_FACTOR = 1150052; + NIRFSG_ATTRIBUTE_EXPORTED_REF_CLOCK_OUTPUT_TERMINAL = 1150053; + NIRFSG_ATTRIBUTE_DIGITAL_LEVEL_SCRIPT_TRIGGER_SOURCE = 1150054; + NIRFSG_ATTRIBUTE_DIGITAL_LEVEL_SCRIPT_TRIGGER_ACTIVE_LEVEL = 1150055; + NIRFSG_ATTRIBUTE_ARB_FILTER_TYPE = 1150056; + NIRFSG_ATTRIBUTE_ARB_FILTER_ROOT_RAISED_COSINE_ALPHA = 1150057; + NIRFSG_ATTRIBUTE_UPCONVERTER_CENTER_FREQUENCY_INCREMENT = 1150058; + NIRFSG_ATTRIBUTE_UPCONVERTER_CENTER_FREQUENCY_INCREMENT_ANCHOR = 1150059; + NIRFSG_ATTRIBUTE_ARB_FILTER_RAISED_COSINE_ALPHA = 1150060; + NIRFSG_ATTRIBUTE_MEMORY_SIZE = 1150061; + NIRFSG_ATTRIBUTE_ANALOG_MODULATION_PM_DEVIATION = 1150062; + NIRFSG_ATTRIBUTE_EXPORTED_DONE_EVENT_OUTPUT_TERMINAL = 1150063; + NIRFSG_ATTRIBUTE_EXPORTED_MARKER_EVENT_OUTPUT_TERMINAL = 1150064; + NIRFSG_ATTRIBUTE_EXPORTED_STARTED_EVENT_OUTPUT_TERMINAL = 1150065; + NIRFSG_ATTRIBUTE_LO_OUT_POWER = 1150066; + NIRFSG_ATTRIBUTE_LO_IN_POWER = 1150067; + NIRFSG_ATTRIBUTE_ARB_TEMPERATURE = 1150068; + NIRFSG_ATTRIBUTE_IQ_IMPAIRMENT_ENABLED = 1150069; + NIRFSG_ATTRIBUTE_IQ_I_OFFSET = 1150070; + NIRFSG_ATTRIBUTE_IQ_Q_OFFSET = 1150071; + NIRFSG_ATTRIBUTE_IQ_GAIN_IMBALANCE = 1150072; + NIRFSG_ATTRIBUTE_IQ_SKEW = 1150073; + NIRFSG_ATTRIBUTE_LO_TEMPERATURE = 1150075; + NIRFSG_ATTRIBUTE_EXTERNAL_CALIBRATION_RECOMMENDED_INTERVAL = 1150076; + NIRFSG_ATTRIBUTE_EXTERNAL_CALIBRATION_TEMPERATURE = 1150077; + NIRFSG_ATTRIBUTE_EXTERNAL_CALIBRATION_USER_DEFINED_INFO = 1150078; + NIRFSG_ATTRIBUTE_EXTERNAL_CALIBRATION_USER_DEFINED_INFO_MAX_SIZE = 1150079; + NIRFSG_ATTRIBUTE_IQ_OFFSET_UNITS = 1150081; + NIRFSG_ATTRIBUTE_FREQUENCY_SETTLING_UNITS = 1150082; + NIRFSG_ATTRIBUTE_FREQUENCY_SETTLING = 1150083; + NIRFSG_ATTRIBUTE_MODULE_REVISION = 1150084; + NIRFSG_ATTRIBUTE_EXTERNAL_GAIN = 1150085; + NIRFSG_ATTRIBUTE_DATA_TRANSFER_MAXIMUM_BANDWIDTH = 1150086; + NIRFSG_ATTRIBUTE_DATA_TRANSFER_PREFERRED_PACKET_SIZE = 1150087; + NIRFSG_ATTRIBUTE_DATA_TRANSFER_MAXIMUM_IN_FLIGHT_READS = 1150088; + NIRFSG_ATTRIBUTE_ARB_OSCILLATOR_PHASE_DAC_VALUE = 1150089; + NIRFSG_ATTRIBUTE_ACTIVE_CONFIGURATION_LIST = 1150096; + NIRFSG_ATTRIBUTE_ACTIVE_CONFIGURATION_LIST_STEP = 1150097; + NIRFSG_ATTRIBUTE_CONFIGURATION_LIST_STEP_TRIGGER_TYPE = 1150098; + NIRFSG_ATTRIBUTE_DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE = 1150099; + NIRFSG_ATTRIBUTE_TIMER_EVENT_INTERVAL = 1150100; + NIRFSG_ATTRIBUTE_CONFIGURATION_LIST_REPEAT = 1150102; + NIRFSG_ATTRIBUTE_DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_EDGE = 1150103; + NIRFSG_ATTRIBUTE_CORRECTION_TEMPERATURE = 1150104; + NIRFSG_ATTRIBUTE_EXPORTED_CONFIGURATION_LIST_STEP_TRIGGER_OUTPUT_TERMINAL = 1150105; + NIRFSG_ATTRIBUTE_STARTED_EVENT_TERMINAL_NAME = 1150112; + NIRFSG_ATTRIBUTE_DONE_EVENT_TERMINAL_NAME = 1150113; + NIRFSG_ATTRIBUTE_START_TRIGGER_TERMINAL_NAME = 1150114; + NIRFSG_ATTRIBUTE_MARKER_EVENT_TERMINAL_NAME = 1150115; + NIRFSG_ATTRIBUTE_SCRIPT_TRIGGER_TERMINAL_NAME = 1150116; + NIRFSG_ATTRIBUTE_CONFIGURATION_LIST_STEP_TRIGGER_TERMINAL_NAME = 1150117; + NIRFSG_ATTRIBUTE_YIG_MAIN_COIL_DRIVE = 1150118; + NIRFSG_ATTRIBUTE_CONFIGURATION_LIST_STEP_IN_PROGRESS = 1150122; + NIRFSG_ATTRIBUTE_P2P_ENABLED = 1150123; + NIRFSG_ATTRIBUTE_P2P_ENDPOINT_SIZE = 1150124; + NIRFSG_ATTRIBUTE_P2P_SPACE_AVAILABLE_IN_ENDPOINT = 1150125; + NIRFSG_ATTRIBUTE_P2P_MOST_SPACE_AVAILABLE_IN_ENDPOINT = 1150126; + NIRFSG_ATTRIBUTE_P2P_ENDPOINT_COUNT = 1150127; + NIRFSG_ATTRIBUTE_P2P_ENDPOINT_FULLNESS_START_TRIGGER_LEVEL = 1150128; + NIRFSG_ATTRIBUTE_EXPORTED_CONFIGURATION_SETTLED_EVENT_OUTPUT_TERMINAL = 1150129; + NIRFSG_ATTRIBUTE_PEAK_POWER_ADJUSTMENT = 1150132; + NIRFSG_ATTRIBUTE_REF_PLL_BANDWIDTH = 1150133; + NIRFSG_ATTRIBUTE_P2P_DATA_TRANSFER_PERMISSION_INTERVAL = 1150134; + NIRFSG_ATTRIBUTE_P2P_DATA_TRANSFER_PERMISSION_INITIAL_CREDITS = 1150135; + NIRFSG_ATTRIBUTE_SELF_CALIBRATION_TEMPERATURE = 1150136; + NIRFSG_ATTRIBUTE_AMPLITUDE_SETTLING = 1150137; + NIRFSG_ATTRIBUTE_STREAMING_WRITE_TIMEOUT = 1150140; + NIRFSG_ATTRIBUTE_PEAK_POWER_ADJUSTMENT_INHERITANCE = 1150141; + NIRFSG_ATTRIBUTE_SYNC_SCRIPT_TRIGGER_MASTER = 1150142; + NIRFSG_ATTRIBUTE_SYNC_SCRIPT_TRIGGER_DIST_LINE = 1150143; + NIRFSG_ATTRIBUTE_OUTPUT_PORT = 1150144; + NIRFSG_ATTRIBUTE_IQ_OUT_PORT_CARRIER_FREQUENCY = 1150145; + NIRFSG_ATTRIBUTE_IQ_OUT_PORT_TERMINAL_CONFIGURATION = 1150146; + NIRFSG_ATTRIBUTE_IQ_OUT_PORT_LEVEL = 1150147; + NIRFSG_ATTRIBUTE_IQ_OUT_PORT_COMMON_MODE_OFFSET = 1150148; + NIRFSG_ATTRIBUTE_IQ_OUT_PORT_OFFSET = 1150149; + NIRFSG_ATTRIBUTE_LO_SOURCE = 1150150; + NIRFSG_ATTRIBUTE_LO_FREQUENCY_STEP_SIZE = 1150151; + NIRFSG_ATTRIBUTE_LO_PLL_FRACTIONAL_MODE_ENABLED = 1150152; + NIRFSG_ATTRIBUTE_INTERPOLATION_DELAY = 1150153; + NIRFSG_ATTRIBUTE_EVENTS_DELAY = 1150154; + NIRFSG_ATTRIBUTE_SYNC_START_TRIGGER_MASTER = 1150155; + NIRFSG_ATTRIBUTE_SYNC_START_TRIGGER_DIST_LINE = 1150156; + NIRFSG_ATTRIBUTE_ARB_WAVEFORM_REPEAT_COUNT_IS_FINITE = 1150157; + NIRFSG_ATTRIBUTE_ARB_WAVEFORM_REPEAT_COUNT = 1150158; + NIRFSG_ATTRIBUTE_UPCONVERTER_FREQUENCY_OFFSET = 1150160; + NIRFSG_ATTRIBUTE_IQ_OUT_PORT_TEMPERATURE = 1150161; + NIRFSG_ATTRIBUTE_RF_BLANKING_SOURCE = 1150162; + NIRFSG_ATTRIBUTE_IQ_OUT_PORT_LOAD_IMPEDANCE = 1150163; + NIRFSG_ATTRIBUTE_ANALOG_MODULATION_FM_NARROWBAND_INTEGRATOR = 1150165; + NIRFSG_ATTRIBUTE_ANALOG_MODULATION_FM_SENSITIVITY = 1150166; + NIRFSG_ATTRIBUTE_ANALOG_MODULATION_AM_SENSITIVITY = 1150167; + NIRFSG_ATTRIBUTE_ANALOG_MODULATION_PM_SENSITIVITY = 1150168; + NIRFSG_ATTRIBUTE_ATTENUATOR_SETTING = 1150173; + NIRFSG_ATTRIBUTE_CONFIGURATION_LIST_IS_DONE = 1150175; + NIRFSG_ATTRIBUTE_SYNC_SAMPLE_CLOCK_MASTER = 1150180; + NIRFSG_ATTRIBUTE_SYNC_SAMPLE_CLOCK_DIST_LINE = 1150181; + NIRFSG_ATTRIBUTE_AE_TEMPERATURE = 1150182; + NIRFSG_ATTRIBUTE_AMP_PATH = 1150185; + NIRFSG_ATTRIBUTE_FPGA_BITFILE_PATH = 1150186; + NIRFSG_ATTRIBUTE_FAST_TUNING_OPTION = 1150188; + NIRFSG_ATTRIBUTE_PULSE_MODULATION_MODE = 1150190; + NIRFSG_ATTRIBUTE_ANALOG_MODULATION_FM_BAND = 1150191; + NIRFSG_ATTRIBUTE_ANALOG_MODULATION_PM_MODE = 1150192; + NIRFSG_ATTRIBUTE_CONFIGURATION_SETTLED_EVENT_TERMINAL_NAME = 1150194; + NIRFSG_ATTRIBUTE_ALC_CONTROL = 1150195; + NIRFSG_ATTRIBUTE_AUTO_POWER_SEARCH = 1150196; + NIRFSG_ATTRIBUTE_LO_FREQUENCY = 1150199; + NIRFSG_ATTRIBUTE_ARB_DIGITAL_GAIN = 1150204; + NIRFSG_ATTRIBUTE_MARKER_EVENT_OUTPUT_BEHAVIOR = 1150206; + NIRFSG_ATTRIBUTE_MARKER_EVENT_PULSE_WIDTH = 1150207; + NIRFSG_ATTRIBUTE_MARKER_EVENT_PULSE_WIDTH_UNITS = 1150208; + NIRFSG_ATTRIBUTE_MARKER_EVENT_TOGGLE_INITIAL_STATE = 1150209; + NIRFSG_ATTRIBUTE_MODULE_POWER_CONSUMPTION = 1150210; + NIRFSG_ATTRIBUTE_FPGA_TEMPERATURE = 1150211; + NIRFSG_ATTRIBUTE_TEMPERATURE_READ_INTERVAL = 1150212; + NIRFSG_ATTRIBUTE_P2P_IS_FINITE_GENERATION = 1150217; + NIRFSG_ATTRIBUTE_P2P_NUMBER_OF_SAMPLES_TO_GENERATE = 1150218; + NIRFSG_ATTRIBUTE_P2P_GENERATION_FIFO_SAMPLE_QUANTUM = 1150219; + NIRFSG_ATTRIBUTE_RELATIVE_DELAY = 1150220; + NIRFSG_ATTRIBUTE_ABSOLUTE_DELAY = 1150225; + NIRFSG_ATTRIBUTE_DEVICE_INSTANTANEOUS_BANDWIDTH = 1150226; + NIRFSG_ATTRIBUTE_OVERFLOW_ERROR_REPORTING = 1150228; + NIRFSG_ATTRIBUTE_HOST_DMA_BUFFER_SIZE = 1150239; + NIRFSG_ATTRIBUTE_SELECTED_PORTS = 1150241; + NIRFSG_ATTRIBUTE_LO_OUT_EXPORT_CONFIGURE_FROM_RFSA = 1150242; + NIRFSG_ATTRIBUTE_RF_IN_LO_EXPORT_ENABLED = 1150243; + NIRFSG_ATTRIBUTE_THERMAL_CORRECTION_TEMPERATURE_RESOLUTION = 1150244; + NIRFSG_ATTRIBUTE_UPCONVERTER_FREQUENCY_OFFSET_MODE = 1150248; + NIRFSG_ATTRIBUTE_AVAILABLE_PORTS = 1150249; + NIRFSG_ATTRIBUTE_FPGA_TARGET_NAME = 1150251; + NIRFSG_ATTRIBUTE_DEEMBEDDING_TYPE = 1150252; + NIRFSG_ATTRIBUTE_DEEMBEDDING_SELECTED_TABLE = 1150253; + NIRFSG_ATTRIBUTE_LO_VCO_FREQUENCY_STEP_SIZE = 1150257; + NIRFSG_ATTRIBUTE_THERMAL_CORRECTION_HEADROOM_RANGE = 1150258; + NIRFSG_ATTRIBUTE_WAVEFORM_IQ_RATE = 1150263; + NIRFSG_ATTRIBUTE_WAVEFORM_SIGNAL_BANDWIDTH = 1150264; + NIRFSG_ATTRIBUTE_WAVEFORM_RUNTIME_SCALING = 1150265; + NIRFSG_ATTRIBUTE_WAVEFORM_PAPR = 1150266; + NIRFSG_ATTRIBUTE_FIXED_GROUP_DELAY_ACROSS_PORTS = 1150271; + NIRFSG_ATTRIBUTE_WAVEFORM_FILEPATH = 1150272; + NIRFSG_ATTRIBUTE_WRITE_WAVEFORM_BURST_DETECTION = 1150273; + NIRFSG_ATTRIBUTE_WRITE_WAVEFORM_BURST_DETECTION_MODE = 1150274; + NIRFSG_ATTRIBUTE_WRITE_WAVEFORM_BURST_DETECTION_MINIMUM_QUIET_TIME = 1150275; + NIRFSG_ATTRIBUTE_WRITE_WAVEFORM_BURST_DETECTION_POWER_THRESHOLD = 1150276; + NIRFSG_ATTRIBUTE_WRITE_WAVEFORM_BURST_DETECTION_MINIMUM_BURST_TIME = 1150277; + NIRFSG_ATTRIBUTE_WAVEFORM_RF_BLANKING = 1150278; + NIRFSG_ATTRIBUTE_DEEMBEDDING_COMPENSATION_GAIN = 1150289; + NIRFSG_ATTRIBUTE_LOAD_CONFIGURATIONS_FROM_FILE_LOAD_OPTIONS = 1150290; + NIRFSG_ATTRIBUTE_LOAD_CONFIGURATIONS_FROM_FILE_RESET_OPTIONS = 1150291; + NIRFSG_ATTRIBUTE_EXPORTED_REF_CLOCK_RATE = 1150292; + NIRFSG_ATTRIBUTE_WRITE_WAVEFORM_NORMALIZATION = 1150293; + NIRFSG_ATTRIBUTE_WAVEFORM_WAVEFORM_SIZE = 1150297; + NIRFSG_ATTRIBUTE_PULSE_MODULATION_ACTIVE_LEVEL = 1150307; + NIRFSG_ATTRIBUTE_PULSE_MODULATION_SOURCE = 1150308; + NIRFSG_ATTRIBUTE_EXPORTED_PULSE_MODULATION_EVENT_OUTPUT_TERMINAL = 1150309; + NIRFSG_ATTRIBUTE_EXPORTED_PULSE_MODULATION_EVENT_ACTIVE_LEVEL = 1150310; + NIRFSG_ATTRIBUTE_SELECTED_PATH = 1150311; + NIRFSG_ATTRIBUTE_AVAILABLE_PATHS = 1150312; + NIRFSG_ATTRIBUTE_COMPENSATE_FOR_FILTER_GROUP_DELAY = 1152832; + NIRFSG_ATTRIBUTE_UPCONVERTER_GAIN = 1154097; + NIRFSG_ATTRIBUTE_UPCONVERTER_CENTER_FREQUENCY = 1154098; + NIRFSG_ATTRIBUTE_FREQUENCY = 1250001; + NIRFSG_ATTRIBUTE_POWER_LEVEL = 1250002; + NIRFSG_ATTRIBUTE_OUTPUT_ENABLED = 1250004; + NIRFSG_ATTRIBUTE_PULSE_MODULATION_ENABLED = 1250051; + NIRFSG_ATTRIBUTE_REF_CLOCK_RATE = 1250322; + NIRFSG_ATTRIBUTE_IQ_ENABLED = 1250401; + NIRFSG_ATTRIBUTE_IQ_NOMINAL_VOLTAGE = 1250402; + NIRFSG_ATTRIBUTE_IQ_SWAP_ENABLED = 1250404; + NIRFSG_ATTRIBUTE_ARB_SELECTED_WAVEFORM = 1250451; + NIRFSG_ATTRIBUTE_IQ_RATE = 1250452; + NIRFSG_ATTRIBUTE_ARB_FILTER_FREQUENCY = 1250453; + NIRFSG_ATTRIBUTE_ARB_MAX_NUMBER_WAVEFORMS = 1250454; + NIRFSG_ATTRIBUTE_ARB_WAVEFORM_QUANTUM = 1250455; + NIRFSG_ATTRIBUTE_ARB_WAVEFORM_SIZE_MIN = 1250456; + NIRFSG_ATTRIBUTE_ARB_WAVEFORM_SIZE_MAX = 1250457; + NIRFSG_ATTRIBUTE_START_TRIGGER_TYPE = 1250458; + NIRFSG_ATTRIBUTE_DIGITAL_EDGE_START_TRIGGER_EDGE = 1250459; +} + +enum DigitalEdgeConfigurationListStepTriggerSource { + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_UNSPECIFIED = 0; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_PFI0 = 1; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_PFI1 = 2; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_PFI2 = 3; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_PFI3 = 4; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_PXI_TRIG0 = 5; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_PXI_TRIG1 = 6; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_PXI_TRIG2 = 7; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_PXI_TRIG3 = 8; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_PXI_TRIG4 = 9; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_PXI_TRIG5 = 10; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_PXI_TRIG6 = 11; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_PXI_TRIG7 = 12; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_PXI_STAR = 13; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_MARKER0_EVENT = 14; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_MARKER1_EVENT = 15; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_MARKER2_EVENT = 16; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_MARKER3_EVENT = 17; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_TIMER_EVENT = 18; + DIGITAL_EDGE_CONFIGURATION_LIST_STEP_TRIGGER_SOURCE_TRIG_IN = 19; +} + +enum DigitalEdgeEdge { + DIGITAL_EDGE_EDGE_RISING_EDGE = 0; + DIGITAL_EDGE_EDGE_FALLING_EDGE = 1; +} + +enum DigitalEdgeScriptTriggerIdentifier { + DIGITAL_EDGE_SCRIPT_TRIGGER_IDENTIFIER_UNSPECIFIED = 0; + DIGITAL_EDGE_SCRIPT_TRIGGER_IDENTIFIER_SCRIPT_TRIGGER0 = 1; + DIGITAL_EDGE_SCRIPT_TRIGGER_IDENTIFIER_SCRIPT_TRIGGER1 = 2; + DIGITAL_EDGE_SCRIPT_TRIGGER_IDENTIFIER_SCRIPT_TRIGGER2 = 3; + DIGITAL_EDGE_SCRIPT_TRIGGER_IDENTIFIER_SCRIPT_TRIGGER3 = 4; +} + +enum DigitalLevelActiveLevel { + DIGITAL_LEVEL_ACTIVE_LEVEL_UNSPECIFIED = 0; + DIGITAL_LEVEL_ACTIVE_LEVEL_ACTIVE_HIGH = 9000; + DIGITAL_LEVEL_ACTIVE_LEVEL_ACTIVE_LOW = 9001; +} + +enum GenerationMode { + GENERATION_MODE_UNSPECIFIED = 0; + GENERATION_MODE_CW = 1000; + GENERATION_MODE_ARB_WAVEFORM = 1001; + GENERATION_MODE_SCRIPT = 1002; +} + +enum LinearInterpolationFormat { + LINEAR_INTERPOLATION_FORMAT_UNSPECIFIED = 0; + LINEAR_INTERPOLATION_FORMAT_REAL_AND_IMAGINARY = 26000; + LINEAR_INTERPOLATION_FORMAT_MAGNITUDE_AND_PHASE = 26001; + LINEAR_INTERPOLATION_FORMAT_MAGNITUDE_DB_AND_PHASE = 26002; +} + +enum Module { + MODULE_UNSPECIFIED = 0; + MODULE_PRIMARY_MODULE = 13000; + MODULE_AWG = 13001; + MODULE_LO = 13002; +} + +enum OutputSignal { + OUTPUT_SIGNAL_UNSPECIFIED = 0; + OUTPUT_SIGNAL_DO_NOT_EXPORT = 1; + OUTPUT_SIGNAL_PFI0 = 2; + OUTPUT_SIGNAL_PFI1 = 3; + OUTPUT_SIGNAL_PFI4 = 4; + OUTPUT_SIGNAL_PFI5 = 5; + OUTPUT_SIGNAL_PXI_STAR = 6; + OUTPUT_SIGNAL_PXI_TRIG0 = 7; + OUTPUT_SIGNAL_PXI_TRIG1 = 8; + OUTPUT_SIGNAL_PXI_TRIG2 = 9; + OUTPUT_SIGNAL_PXI_TRIG3 = 10; + OUTPUT_SIGNAL_PXI_TRIG4 = 11; + OUTPUT_SIGNAL_PXI_TRIG5 = 12; + OUTPUT_SIGNAL_PXI_TRIG6 = 13; + OUTPUT_SIGNAL_REF_OUT2 = 14; + OUTPUT_SIGNAL_REF_OUT = 15; + OUTPUT_SIGNAL_TRIG_OUT = 16; +} + +enum PXIChassisClk10 { + PXI_CHASSIS_CLK10_UNSPECIFIED = 0; + PXI_CHASSIS_CLK10_NONE = 1; + PXI_CHASSIS_CLK10_ONBOARD_CLOCK = 2; + PXI_CHASSIS_CLK10_REF_IN = 3; +} + +enum PowerLevelType { + POWER_LEVEL_TYPE_UNSPECIFIED = 0; + POWER_LEVEL_TYPE_AVERAGE_POWER = 7000; + POWER_LEVEL_TYPE_PEAK_POWER = 7001; +} + +enum RefClockSource { + REF_CLOCK_SOURCE_UNSPECIFIED = 0; + REF_CLOCK_SOURCE_ONBOARD_CLOCK = 1; + REF_CLOCK_SOURCE_REF_IN = 2; + REF_CLOCK_SOURCE_PXI_CLK = 3; + REF_CLOCK_SOURCE_CLK_IN = 4; + REF_CLOCK_SOURCE_REF_IN_2 = 5; + REF_CLOCK_SOURCE_PXI_CLK_MASTER = 6; +} + +enum RelativeTo { + RELATIVE_TO_UNSPECIFIED = 0; + RELATIVE_TO_START_OF_WAVEFORM = 8000; + RELATIVE_TO_CURRENT_POSITION = 8001; +} + +enum ResetWithOptionsStepsToOmit { + RESET_WITH_OPTIONS_STEPS_TO_OMIT_NONE = 0; + RESET_WITH_OPTIONS_STEPS_TO_OMIT_WAVEFORMS = 1; + RESET_WITH_OPTIONS_STEPS_TO_OMIT_SCRIPTS = 2; + RESET_WITH_OPTIONS_STEPS_TO_OMIT_ROUTES = 4; + RESET_WITH_OPTIONS_STEPS_TO_OMIT_DEEMBEDDING_TABLES = 8; +} + +enum RoutedSignal { + ROUTED_SIGNAL_START_TRIGGER = 0; + ROUTED_SIGNAL_CONFIGURATION_LIST_STEP_TRIGGER = 6; + ROUTED_SIGNAL_CONFIGURATION_SETTLED_EVENT = 7; + ROUTED_SIGNAL_DONE_EVENT = 5; + ROUTED_SIGNAL_MARKER_EVENT = 2; + ROUTED_SIGNAL_REF_CLOCK = 3; + ROUTED_SIGNAL_SCRIPT_TRIGGER = 1; + ROUTED_SIGNAL_STARTED_EVENT = 4; +} + +enum SParameterOrientation { + S_PARAMETER_ORIENTATION_UNSPECIFIED = 0; + S_PARAMETER_ORIENTATION_PORT1_TOWARDS_DUT = 24000; + S_PARAMETER_ORIENTATION_PORT2_TOWARDS_DUT = 24001; +} + +enum SelfCalibrateRangeStepsToOmit { + SELF_CALIBRATE_RANGE_STEPS_TO_OMIT_OMIT_NONE = 0; + SELF_CALIBRATE_RANGE_STEPS_TO_OMIT_LO_SELF_CAL = 1; + SELF_CALIBRATE_RANGE_STEPS_TO_OMIT_POWER_LEVEL_ACCURACY = 2; + SELF_CALIBRATE_RANGE_STEPS_TO_OMIT_RESIDUAL_LO_POWER = 4; + SELF_CALIBRATE_RANGE_STEPS_TO_OMIT_IMAGE_SUPPRESSION = 8; + SELF_CALIBRATE_RANGE_STEPS_TO_OMIT_SYNTHESIZER_ALIGNMENT = 16; +} + +enum SignalIdentifier { + SIGNAL_IDENTIFIER_UNSPECIFIED = 0; + SIGNAL_IDENTIFIER_NONE = 1; + SIGNAL_IDENTIFIER_SCRIPT_TRIGGER0 = 2; + SIGNAL_IDENTIFIER_SCRIPT_TRIGGER1 = 3; + SIGNAL_IDENTIFIER_SCRIPT_TRIGGER2 = 4; + SIGNAL_IDENTIFIER_SCRIPT_TRIGGER3 = 5; + SIGNAL_IDENTIFIER_MARKER0 = 6; + SIGNAL_IDENTIFIER_MARKER1 = 7; + SIGNAL_IDENTIFIER_MARKER2 = 8; + SIGNAL_IDENTIFIER_MARKER3 = 9; +} + +enum TriggerSource { + TRIGGER_SOURCE_UNSPECIFIED = 0; + TRIGGER_SOURCE_PFI0 = 1; + TRIGGER_SOURCE_PFI1 = 2; + TRIGGER_SOURCE_PFI2 = 3; + TRIGGER_SOURCE_PFI3 = 4; + TRIGGER_SOURCE_PXI_TRIG0 = 5; + TRIGGER_SOURCE_PXI_TRIG1 = 6; + TRIGGER_SOURCE_PXI_TRIG2 = 7; + TRIGGER_SOURCE_PXI_TRIG3 = 8; + TRIGGER_SOURCE_PXI_TRIG4 = 9; + TRIGGER_SOURCE_PXI_TRIG5 = 10; + TRIGGER_SOURCE_PXI_TRIG6 = 11; + TRIGGER_SOURCE_PXI_TRIG7 = 12; + TRIGGER_SOURCE_PXI_STAR = 13; + TRIGGER_SOURCE_PXIE_DSTARB = 14; + TRIGGER_SOURCE_SYNC_START_TRIGGER = 15; + TRIGGER_SOURCE_SYNC_SCRIPT_TRIGGER = 16; + TRIGGER_SOURCE_TRIG_IN = 17; + TRIGGER_SOURCE_PULSE_IN = 18; + TRIGGER_SOURCE_DIO0 = 19; + TRIGGER_SOURCE_DIO1 = 20; + TRIGGER_SOURCE_DIO2 = 21; + TRIGGER_SOURCE_DIO3 = 22; + TRIGGER_SOURCE_DIO4 = 23; + TRIGGER_SOURCE_DIO5 = 24; + TRIGGER_SOURCE_DIO6 = 25; + TRIGGER_SOURCE_DIO7 = 26; +} + +enum NiRFSGInt32AttributeValues { + option allow_alias = true; + NIRFSG_INT32_UNSPECIFIED = 0; + NIRFSG_INT32_AMP_PATH_HIGH_POWER = 16000; + NIRFSG_INT32_AMP_PATH_LOW_HARMONIC = 16001; + NIRFSG_INT32_ANALOG_MODULATION_FM_BAND_NARROWBAND = 17000; + NIRFSG_INT32_ANALOG_MODULATION_FM_BAND_WIDEBAND = 17001; + NIRFSG_INT32_ANALOG_MODULATION_FM_NARROWBAND_INTEGRATOR_100_HZ_TO_1_KHZ = 18000; + NIRFSG_INT32_ANALOG_MODULATION_FM_NARROWBAND_INTEGRATOR_1_KHZ_TO_10_KHZ = 18001; + NIRFSG_INT32_ANALOG_MODULATION_FM_NARROWBAND_INTEGRATOR_10_KHZ_TO_100_KHZ = 18002; + NIRFSG_INT32_ANALOG_MODULATION_PM_MODE_HIGH_DEVIATION = 19000; + NIRFSG_INT32_ANALOG_MODULATION_PM_MODE_LOW_PHASE_NOISE = 19001; + NIRFSG_INT32_ANALOG_MODULATION_TYPE_NONE = 0; + NIRFSG_INT32_ANALOG_MODULATION_TYPE_FM = 2000; + NIRFSG_INT32_ANALOG_MODULATION_TYPE_PM = 2001; + NIRFSG_INT32_ANALOG_MODULATION_TYPE_AM = 2002; + NIRFSG_INT32_ANALOG_MODULATION_WAVEFORM_TYPE_SINE = 3000; + NIRFSG_INT32_ANALOG_MODULATION_WAVEFORM_TYPE_SQUARE = 3001; + NIRFSG_INT32_ANALOG_MODULATION_WAVEFORM_TYPE_TRIANGLE = 3002; + NIRFSG_INT32_ARB_FILTER_TYPE_NONE = 10000; + NIRFSG_INT32_ARB_FILTER_TYPE_ROOT_RAISED_COSINE = 10001; + NIRFSG_INT32_ARB_FILTER_TYPE_RAISED_COSINE = 10002; + NIRFSG_INT32_ARB_ONBOARD_SAMPLE_CLOCK_MODE_HIGH_RESOLUTION = 6000; + NIRFSG_INT32_ARB_ONBOARD_SAMPLE_CLOCK_MODE_DIVIDE_DOWN = 6001; + NIRFSG_INT32_CONFIG_LIST_TRIGGER_DIG_EDGE_EDGE_RISING_EDGE = 0; + NIRFSG_INT32_CONFIGURATION_LIST_REPEAT_CONFIGURATION_LIST_REPEAT_CONTINUOUS = 0; + NIRFSG_INT32_CONFIGURATION_LIST_REPEAT_CONFIGURATION_LIST_REPEAT_SINGLE = 1; + NIRFSG_INT32_DEEMBEDDING_TYPE_NONE = 25000; + NIRFSG_INT32_DEEMBEDDING_TYPE_SCALAR = 25001; + NIRFSG_INT32_DEEMBEDDING_TYPE_VECTOR = 25002; + NIRFSG_INT32_DIGITAL_EDGE_EDGE_RISING_EDGE = 0; + NIRFSG_INT32_DIGITAL_EDGE_EDGE_FALLING_EDGE = 1; + NIRFSG_INT32_DIGITAL_LEVEL_ACTIVE_LEVEL_ACTIVE_HIGH = 9000; + NIRFSG_INT32_DIGITAL_LEVEL_ACTIVE_LEVEL_ACTIVE_LOW = 9001; + NIRFSG_INT32_DIGITAL_MODULATION_TYPE_NONE = 0; + NIRFSG_INT32_DIGITAL_MODULATION_TYPE_FSK = 4000; + NIRFSG_INT32_DIGITAL_MODULATION_TYPE_OOK = 4001; + NIRFSG_INT32_DIGITAL_MODULATION_TYPE_PSK = 4002; + NIRFSG_INT32_DIGITAL_MODULATION_WAVEFORM_TYPE_PRBS = 5000; + NIRFSG_INT32_DIGITAL_MODULATION_WAVEFORM_TYPE_USER_DEFINED = 5001; + NIRFSG_INT32_ENABLE_VALUES_DISABLE = 0; + NIRFSG_INT32_ENABLE_VALUES_ENABLE = 1; + NIRFSG_INT32_FREQUENCY_SETTLING_UNITS_TIME_AFTER_LOCK = 12000; + NIRFSG_INT32_FREQUENCY_SETTLING_UNITS_TIME_AFTER_IO = 12001; + NIRFSG_INT32_FREQUENCY_SETTLING_UNITS_PPM = 12002; + NIRFSG_INT32_GENERATION_MODE_CW = 1000; + NIRFSG_INT32_GENERATION_MODE_ARB_WAVEFORM = 1001; + NIRFSG_INT32_GENERATION_MODE_SCRIPT = 1002; + NIRFSG_INT32_IQ_OFFSET_UNITS_PERCENT = 11000; + NIRFSG_INT32_IQ_OFFSET_UNITS_VOLTS = 11001; + NIRFSG_INT32_IQ_OUT_PORT_TERM_CONFIG_DIFFERENTIAL = 15000; + NIRFSG_INT32_IQ_OUT_PORT_TERM_CONFIG_SINGLE_ENDED = 15001; + NIRFSG_INT32_LIST_STEP_TRIGGER_TYPE_NONE = 0; + NIRFSG_INT32_LIST_STEP_TRIGGER_TYPE_DIGITAL_EDGE = 1; + NIRFSG_INT32_LOAD_OPTIONS_SKIP_NONE = 0; + NIRFSG_INT32_LOAD_OPTIONS_SKIP_WAVEFORMS = 1; + NIRFSG_INT32_LOOP_BANDWIDTH_NARROW = 0; + NIRFSG_INT32_LOOP_BANDWIDTH_MEDIUM = 1; + NIRFSG_INT32_LOOP_BANDWIDTH_WIDE = 2; + NIRFSG_INT32_MARKER_EVENT_OUTPUT_BEHAVIOR_PULSE = 23000; + NIRFSG_INT32_MARKER_EVENT_OUTPUT_BEHAVIOR_TOGGLE = 23001; + NIRFSG_INT32_MARKER_EVENT_PULSE_WIDTH_UNITS_SECONDS = 22000; + NIRFSG_INT32_MARKER_EVENT_PULSE_WIDTH_UNITS_SAMPLE_CLOCK_PERIODS = 22001; + NIRFSG_INT32_MARKER_EVENT_TOGGLE_INITIAL_STATE_DIGITAL_LOW = 21000; + NIRFSG_INT32_MARKER_EVENT_TOGGLE_INITIAL_STATE_DIGITAL_HIGH = 21001; + NIRFSG_INT32_OUTPUT_PORT_RF_OUT = 14000; + NIRFSG_INT32_OUTPUT_PORT_IQ_OUT = 14001; + NIRFSG_INT32_OUTPUT_PORT_CAL_OUT = 14002; + NIRFSG_INT32_OUTPUT_PORT_I_ONLY = 14003; + NIRFSG_INT32_OVERFLOW_ERROR_REPORTING_WARNING = 1301; + NIRFSG_INT32_OVERFLOW_ERROR_REPORTING_DISABLED = 1302; + NIRFSG_INT32_PPA_SCRIPT_INHERITANCE_EXACT_MATCH = 0; + NIRFSG_INT32_PPA_SCRIPT_INHERITANCE_MINIMUM = 1; + NIRFSG_INT32_PPA_SCRIPT_INHERITANCE_MAXIMUM = 2; + NIRFSG_INT32_PHASE_CONTINUITY_DISABLE = 0; + NIRFSG_INT32_PHASE_CONTINUITY_AUTO = -1; + NIRFSG_INT32_PHASE_CONTINUITY_ENABLE = 1; + NIRFSG_INT32_POWER_LEVEL_TYPE_AVERAGE_POWER = 7000; + NIRFSG_INT32_POWER_LEVEL_TYPE_PEAK_POWER = 7001; + NIRFSG_INT32_PULSE_MODULATION_MODE_OPTIMAL_MATCH = 20000; + NIRFSG_INT32_PULSE_MODULATION_MODE_HIGH_ISOLATION = 20001; + NIRFSG_INT32_RESET_OPTIONS_SKIP_NONE = 0; + NIRFSG_INT32_RESET_OPTIONS_SKIP_WAVEFORMS = 1; + NIRFSG_INT32_RESET_OPTIONS_SKIP_SCRIPTS = 2; + NIRFSG_INT32_RESET_OPTIONS_SKIP_DEEMBEDING_TABLES = 8; + NIRFSG_INT32_RF_IN_LO_EXPORT_ENABLED_DISABLE = 0; + NIRFSG_INT32_RF_IN_LO_EXPORT_ENABLED_UNSPECIFIED = -2; + NIRFSG_INT32_RF_IN_LO_EXPORT_ENABLED_ENABLE = 1; + NIRFSG_INT32_SCRIPT_TRIGGER_TYPE_NONE = 0; + NIRFSG_INT32_SCRIPT_TRIGGER_TYPE_DIGITAL_EDGE = 1; + NIRFSG_INT32_SCRIPT_TRIGGER_TYPE_DIGITAL_LEVEL = 8000; + NIRFSG_INT32_SCRIPT_TRIGGER_TYPE_SOFTWARE = 2; + NIRFSG_INT32_START_TRIGGER_TYPE_NONE = 0; + NIRFSG_INT32_START_TRIGGER_TYPE_DIGITAL_EDGE = 1; + NIRFSG_INT32_START_TRIGGER_TYPE_SOFTWARE = 2; + NIRFSG_INT32_START_TRIGGER_TYPE_P2_P_ENDPOINT_FULLNESS = 3; + NIRFSG_INT32_UPCONVERTER_FREQUENCY_OFFSET_MODE_AUTO = -1; + NIRFSG_INT32_UPCONVERTER_FREQUENCY_OFFSET_MODE_ENABLE = 1; + NIRFSG_INT32_UPCONVERTER_FREQUENCY_OFFSET_MODE_USER_DEFINED = 5001; + NIRFSG_INT32_WRITE_WAVEFORM_BURST_DETECTION_MODE_MANUAL = 0; + NIRFSG_INT32_WRITE_WAVEFORM_BURST_DETECTION_MODE_AUTO = -1; + NIRFSG_INT32_YIG_MAIN_COIL_SLOW = 0; + NIRFSG_INT32_YIG_MAIN_COIL_FAST = 1; +} + +enum NiRFSGReal64AttributeValues { + NIRFSG_REAL64_UNSPECIFIED = 0; + NIRFSG_REAL64_REF_CLOCK_RATE_10_MHZ = 10000000; + NIRFSG_REAL64_REF_CLOCK_RATE_AUTO = -1; +} + +enum NiRFSGStringAttributeValuesMapped { + NIRFSG_STRING_MAPPED_UNSPECIFIED = 0; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DO_NOT_EXPORT = 1; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PFI0 = 2; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PFI1 = 3; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PFI4 = 4; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PFI5 = 5; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG0 = 6; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG1 = 7; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG2 = 8; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG3 = 9; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG4 = 10; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG5 = 11; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXI_TRIG6 = 12; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_PXIE_DSTARC = 13; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_TRIG_OUT = 14; + NIRFSG_STRING_ARB_SAMPLE_CLOCK_SOURCE_ONBOARD_CLOCK = 15; + NIRFSG_STRING_ARB_SAMPLE_CLOCK_SOURCE_CLK_IN = 16; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DO_NOT_EXPORT = 17; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PFI0 = 18; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PFI1 = 19; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG0 = 20; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG1 = 21; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG2 = 22; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG3 = 23; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG4 = 24; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG5 = 25; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG6 = 26; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXIE_DSTARC = 27; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_TRIG_OUT = 28; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PFI0 = 29; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PFI1 = 30; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG0 = 31; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG1 = 32; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG2 = 33; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG3 = 34; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG4 = 35; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG5 = 36; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG6 = 37; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG7 = 38; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXIE_DSTARB = 39; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_MARKER0_EVENT = 40; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_MARKER1_EVENT = 41; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_MARKER2_EVENT = 42; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_MARKER3_EVENT = 43; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_TIMER_EVENT = 44; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_TRIG_IN = 45; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_DO_NOT_EXPORT = 46; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG0 = 47; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG1 = 48; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG2 = 49; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG3 = 50; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG4 = 51; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG5 = 52; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG6 = 53; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXIE_DSTARC = 54; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_TRIG_OUT = 55; + NIRFSG_STRING_LO_SOURCE_ONBOARD = 56; + NIRFSG_STRING_LO_SOURCE_LO_IN = 57; + NIRFSG_STRING_LO_SOURCE_SECONDARY = 58; + NIRFSG_STRING_LO_SOURCE_SG_SA_SHARED = 59; + NIRFSG_STRING_LO_SOURCE_AUTOMATIC_SG_SA_SHARED = 60; + NIRFSG_STRING_PXI_CHASSIS_CLK10_NONE = 61; + NIRFSG_STRING_PXI_CHASSIS_CLK10_ONBOARD_CLOCK = 62; + NIRFSG_STRING_PXI_CHASSIS_CLK10_REF_IN = 63; + NIRFSG_STRING_REF_CLOCK_OUTPUT_TERM_DO_NOT_EXPORT = 64; + NIRFSG_STRING_REF_CLOCK_OUTPUT_TERM_REF_OUT = 65; + NIRFSG_STRING_REF_CLOCK_OUTPUT_TERM_REF_OUT2 = 66; + NIRFSG_STRING_REF_CLOCK_OUTPUT_TERM_CLK_OUT = 67; + NIRFSG_STRING_REF_CLOCK_SOURCE_ONBOARD_CLOCK = 68; + NIRFSG_STRING_REF_CLOCK_SOURCE_REF_IN = 69; + NIRFSG_STRING_REF_CLOCK_SOURCE_PXI_CLK = 70; + NIRFSG_STRING_REF_CLOCK_SOURCE_CLK_IN = 71; + NIRFSG_STRING_REF_CLOCK_SOURCE_REF_IN_2 = 72; + NIRFSG_STRING_REF_CLOCK_SOURCE_PXI_CLK_MASTER = 73; + NIRFSG_STRING_TRIGGER_SOURCE_PFI0 = 74; + NIRFSG_STRING_TRIGGER_SOURCE_PFI1 = 75; + NIRFSG_STRING_TRIGGER_SOURCE_PFI2 = 76; + NIRFSG_STRING_TRIGGER_SOURCE_PFI3 = 77; + NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG0 = 78; + NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG1 = 79; + NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG2 = 80; + NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG3 = 81; + NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG4 = 82; + NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG5 = 83; + NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG6 = 84; + NIRFSG_STRING_TRIGGER_SOURCE_PXI_TRIG7 = 85; + NIRFSG_STRING_TRIGGER_SOURCE_PXI_STAR = 86; + NIRFSG_STRING_TRIGGER_SOURCE_PXIE_DSTARB = 87; + NIRFSG_STRING_TRIGGER_SOURCE_SYNC_START_TRIGGER = 88; + NIRFSG_STRING_TRIGGER_SOURCE_SYNC_SCRIPT_TRIGGER = 89; + NIRFSG_STRING_TRIGGER_SOURCE_TRIG_IN = 90; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO0 = 91; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO1 = 92; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO2 = 93; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO3 = 94; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO4 = 95; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO5 = 96; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO6 = 97; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO7 = 98; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO0 = 99; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO1 = 100; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO2 = 101; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO3 = 102; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO4 = 103; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO5 = 104; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO6 = 105; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO7 = 106; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO0 = 107; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO1 = 108; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO2 = 109; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO3 = 110; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO4 = 111; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO5 = 112; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO6 = 113; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO7 = 114; + NIRFSG_STRING_TRIGGER_SOURCE_PULSE_IN = 115; + NIRFSG_STRING_TRIGGER_SOURCE_DIO0 = 116; + NIRFSG_STRING_TRIGGER_SOURCE_DIO1 = 117; + NIRFSG_STRING_TRIGGER_SOURCE_DIO2 = 118; + NIRFSG_STRING_TRIGGER_SOURCE_DIO3 = 119; + NIRFSG_STRING_TRIGGER_SOURCE_DIO4 = 120; + NIRFSG_STRING_TRIGGER_SOURCE_DIO5 = 121; + NIRFSG_STRING_TRIGGER_SOURCE_DIO6 = 122; + NIRFSG_STRING_TRIGGER_SOURCE_DIO7 = 123; +} + +message AbortRequest { + nidevice_grpc.Session vi = 1; +} + +message AbortResponse { + int32 status = 1; +} + +message AllocateArbWaveformRequest { + nidevice_grpc.Session vi = 1; + string waveform_name = 2; + sint32 size_in_samples = 3; +} + +message AllocateArbWaveformResponse { + int32 status = 1; +} + +message CheckAttributeViBooleanRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; + bool value = 4; +} + +message CheckAttributeViBooleanResponse { + int32 status = 1; +} + +message CheckAttributeViInt32Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; + oneof value_enum { + NiRFSGInt32AttributeValues value = 4; + sint32 value_raw = 5; + } +} + +message CheckAttributeViInt32Response { + int32 status = 1; +} + +message CheckAttributeViInt64Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; + int64 value_raw = 4; +} + +message CheckAttributeViInt64Response { + int32 status = 1; +} + +message CheckAttributeViReal64Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; + oneof value_enum { + NiRFSGReal64AttributeValues value = 4; + double value_raw = 5; + } +} + +message CheckAttributeViReal64Response { + int32 status = 1; +} + +message CheckAttributeViSessionRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; + nidevice_grpc.Session value = 4; +} + +message CheckAttributeViSessionResponse { + int32 status = 1; +} + +message CheckAttributeViStringRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; + oneof value_enum { + NiRFSGStringAttributeValuesMapped value_mapped = 4; + string value_raw = 5; + } +} + +message CheckAttributeViStringResponse { + int32 status = 1; +} + +message CheckGenerationStatusRequest { + nidevice_grpc.Session vi = 1; +} + +message CheckGenerationStatusResponse { + int32 status = 1; + bool is_done = 2; +} + +message CheckIfConfigurationListExistsRequest { + nidevice_grpc.Session vi = 1; + string list_name = 2; +} + +message CheckIfConfigurationListExistsResponse { + int32 status = 1; + bool list_exists = 2; +} + +message CheckIfScriptExistsRequest { + nidevice_grpc.Session vi = 1; + string script_name = 2; +} + +message CheckIfScriptExistsResponse { + int32 status = 1; + bool script_exists = 2; +} + +message CheckIfWaveformExistsRequest { + nidevice_grpc.Session vi = 1; + string waveform_name = 2; +} + +message CheckIfWaveformExistsResponse { + int32 status = 1; + bool waveform_exists = 2; +} + +message ClearAllArbWaveformsRequest { + nidevice_grpc.Session vi = 1; +} + +message ClearAllArbWaveformsResponse { + int32 status = 1; +} + +message ClearArbWaveformRequest { + nidevice_grpc.Session vi = 1; + string name = 2; +} + +message ClearArbWaveformResponse { + int32 status = 1; +} + +message ClearErrorRequest { + nidevice_grpc.Session vi = 1; +} + +message ClearErrorResponse { + int32 status = 1; +} + +message ClearSelfCalibrateRangeRequest { + nidevice_grpc.Session vi = 1; +} + +message ClearSelfCalibrateRangeResponse { + int32 status = 1; +} + +message CloseRequest { + nidevice_grpc.Session vi = 1; +} + +message CloseResponse { + int32 status = 1; +} + +message CommitRequest { + nidevice_grpc.Session vi = 1; +} + +message CommitResponse { + int32 status = 1; +} + +message ConfigureDeembeddingTableInterpolationLinearRequest { + nidevice_grpc.Session vi = 1; + string port = 2; + string table_name = 3; + oneof format_enum { + LinearInterpolationFormat format = 4; + sint32 format_raw = 5; + } +} + +message ConfigureDeembeddingTableInterpolationLinearResponse { + int32 status = 1; +} + +message ConfigureDeembeddingTableInterpolationNearestRequest { + nidevice_grpc.Session vi = 1; + string port = 2; + string table_name = 3; +} + +message ConfigureDeembeddingTableInterpolationNearestResponse { + int32 status = 1; +} + +message ConfigureDeembeddingTableInterpolationSplineRequest { + nidevice_grpc.Session vi = 1; + string port = 2; + string table_name = 3; +} + +message ConfigureDeembeddingTableInterpolationSplineResponse { + int32 status = 1; +} + +message ConfigureDigitalEdgeConfigurationListStepTriggerRequest { + nidevice_grpc.Session vi = 1; + oneof source_enum { + DigitalEdgeConfigurationListStepTriggerSource source_mapped = 2; + string source_raw = 3; + } + oneof edge_enum { + DigitalEdgeEdge edge = 4; + sint32 edge_raw = 5; + } +} + +message ConfigureDigitalEdgeConfigurationListStepTriggerResponse { + int32 status = 1; +} + +message ConfigureDigitalEdgeScriptTriggerRequest { + nidevice_grpc.Session vi = 1; + oneof trigger_id_enum { + DigitalEdgeScriptTriggerIdentifier trigger_id_mapped = 2; + string trigger_id_raw = 3; + } + oneof source_enum { + TriggerSource source_mapped = 4; + string source_raw = 5; + } + oneof edge_enum { + DigitalEdgeEdge edge = 6; + sint32 edge_raw = 7; + } +} + +message ConfigureDigitalEdgeScriptTriggerResponse { + int32 status = 1; +} + +message ConfigureDigitalEdgeStartTriggerRequest { + nidevice_grpc.Session vi = 1; + oneof source_enum { + TriggerSource source_mapped = 2; + string source_raw = 3; + } + oneof edge_enum { + DigitalEdgeEdge edge = 4; + sint32 edge_raw = 5; + } +} + +message ConfigureDigitalEdgeStartTriggerResponse { + int32 status = 1; +} + +message ConfigureDigitalLevelScriptTriggerRequest { + nidevice_grpc.Session vi = 1; + oneof trigger_id_enum { + DigitalEdgeScriptTriggerIdentifier trigger_id_mapped = 2; + string trigger_id_raw = 3; + } + oneof source_enum { + TriggerSource source_mapped = 4; + string source_raw = 5; + } + oneof level_enum { + DigitalLevelActiveLevel level = 6; + sint32 level_raw = 7; + } +} + +message ConfigureDigitalLevelScriptTriggerResponse { + int32 status = 1; +} + +message ConfigureDigitalModulationUserDefinedWaveformRequest { + nidevice_grpc.Session vi = 1; + bytes user_defined_waveform = 2; +} + +message ConfigureDigitalModulationUserDefinedWaveformResponse { + int32 status = 1; +} + +message ConfigureGenerationModeRequest { + nidevice_grpc.Session vi = 1; + oneof generation_mode_enum { + GenerationMode generation_mode = 2; + sint32 generation_mode_raw = 3; + } +} + +message ConfigureGenerationModeResponse { + int32 status = 1; +} + +message ConfigureOutputEnabledRequest { + nidevice_grpc.Session vi = 1; + bool output_enabled = 2; +} + +message ConfigureOutputEnabledResponse { + int32 status = 1; +} + +message ConfigureP2PEndpointFullnessStartTriggerRequest { + nidevice_grpc.Session vi = 1; + int64 p2p_endpoint_fullness_level = 2; +} + +message ConfigureP2PEndpointFullnessStartTriggerResponse { + int32 status = 1; +} + +message ConfigurePXIChassisClk10Request { + nidevice_grpc.Session vi = 1; + oneof pxi_clk10_source_enum { + PXIChassisClk10 pxi_clk10_source_mapped = 2; + string pxi_clk10_source_raw = 3; + } +} + +message ConfigurePXIChassisClk10Response { + int32 status = 1; +} + +message ConfigurePowerLevelTypeRequest { + nidevice_grpc.Session vi = 1; + oneof power_level_type_enum { + PowerLevelType power_level_type = 2; + sint32 power_level_type_raw = 3; + } +} + +message ConfigurePowerLevelTypeResponse { + int32 status = 1; +} + +message ConfigureRFRequest { + nidevice_grpc.Session vi = 1; + double frequency = 2; + double power_level = 3; +} + +message ConfigureRFResponse { + int32 status = 1; +} + +message ConfigureRefClockRequest { + nidevice_grpc.Session vi = 1; + oneof ref_clock_source_enum { + RefClockSource ref_clock_source_mapped = 2; + string ref_clock_source_raw = 3; + } + double ref_clock_rate = 4; +} + +message ConfigureRefClockResponse { + int32 status = 1; +} + +message ConfigureSignalBandwidthRequest { + nidevice_grpc.Session vi = 1; + double signal_bandwidth = 2; +} + +message ConfigureSignalBandwidthResponse { + int32 status = 1; +} + +message ConfigureSoftwareScriptTriggerRequest { + nidevice_grpc.Session vi = 1; + oneof trigger_id_enum { + DigitalEdgeScriptTriggerIdentifier trigger_id_mapped = 2; + string trigger_id_raw = 3; + } +} + +message ConfigureSoftwareScriptTriggerResponse { + int32 status = 1; +} + +message ConfigureSoftwareStartTriggerRequest { + nidevice_grpc.Session vi = 1; +} + +message ConfigureSoftwareStartTriggerResponse { + int32 status = 1; +} + +message ConfigureUpconverterPLLSettlingTimeRequest { + nidevice_grpc.Session vi = 1; + double pll_settling_time = 2; + bool ensure_pll_locked = 3; +} + +message ConfigureUpconverterPLLSettlingTimeResponse { + int32 status = 1; +} + +message CreateConfigurationListRequest { + nidevice_grpc.Session vi = 1; + string list_name = 2; + repeated NiRFSGAttribute configuration_list_attributes = 3; + bool set_as_active_list = 4; +} + +message CreateConfigurationListResponse { + int32 status = 1; +} + +message CreateConfigurationListStepRequest { + nidevice_grpc.Session vi = 1; + bool set_as_active_step = 2; +} + +message CreateConfigurationListStepResponse { + int32 status = 1; +} + +message CreateDeembeddingSparameterTableArrayRequest { + nidevice_grpc.Session vi = 1; + string port = 2; + string table_name = 3; + repeated double frequencies = 4; + repeated nidevice_grpc.NIComplexNumber sparameter_table = 5; + sint32 number_of_ports = 6; + oneof sparameter_orientation_enum { + SParameterOrientation sparameter_orientation = 7; + sint32 sparameter_orientation_raw = 8; + } +} + +message CreateDeembeddingSparameterTableArrayResponse { + int32 status = 1; +} + +message CreateDeembeddingSparameterTableS2PFileRequest { + nidevice_grpc.Session vi = 1; + string port = 2; + string table_name = 3; + string s2p_file_path = 4; + oneof sparameter_orientation_enum { + SParameterOrientation sparameter_orientation = 5; + sint32 sparameter_orientation_raw = 6; + } +} + +message CreateDeembeddingSparameterTableS2PFileResponse { + int32 status = 1; +} + +message DeleteAllDeembeddingTablesRequest { + nidevice_grpc.Session vi = 1; +} + +message DeleteAllDeembeddingTablesResponse { + int32 status = 1; +} + +message DeleteConfigurationListRequest { + nidevice_grpc.Session vi = 1; + string list_name = 2; +} + +message DeleteConfigurationListResponse { + int32 status = 1; +} + +message DeleteDeembeddingTableRequest { + nidevice_grpc.Session vi = 1; + string port = 2; + string table_name = 3; +} + +message DeleteDeembeddingTableResponse { + int32 status = 1; +} + +message DeleteScriptRequest { + nidevice_grpc.Session vi = 1; + string script_name = 2; +} + +message DeleteScriptResponse { + int32 status = 1; +} + +message DisableRequest { + nidevice_grpc.Session vi = 1; +} + +message DisableResponse { + int32 status = 1; +} + +message DisableAllModulationRequest { + nidevice_grpc.Session vi = 1; +} + +message DisableAllModulationResponse { + int32 status = 1; +} + +message DisableConfigurationListStepTriggerRequest { + nidevice_grpc.Session vi = 1; +} + +message DisableConfigurationListStepTriggerResponse { + int32 status = 1; +} + +message DisableScriptTriggerRequest { + nidevice_grpc.Session vi = 1; + oneof trigger_id_enum { + DigitalEdgeScriptTriggerIdentifier trigger_id_mapped = 2; + string trigger_id_raw = 3; + } +} + +message DisableScriptTriggerResponse { + int32 status = 1; +} + +message DisableStartTriggerRequest { + nidevice_grpc.Session vi = 1; +} + +message DisableStartTriggerResponse { + int32 status = 1; +} + +message ErrorMessageRequest { + nidevice_grpc.Session vi = 1; + sint32 error_code = 2; +} + +message ErrorMessageResponse { + int32 status = 1; + string error_message = 2; +} + +message ErrorQueryRequest { + nidevice_grpc.Session vi = 1; +} + +message ErrorQueryResponse { + int32 status = 1; + sint32 error_code = 2; + string error_message = 3; +} + +message ExportSignalRequest { + nidevice_grpc.Session vi = 1; + oneof signal_enum { + RoutedSignal signal = 2; + sint32 signal_raw = 3; + } + oneof signal_identifier_enum { + SignalIdentifier signal_identifier_mapped = 4; + string signal_identifier_raw = 5; + } + oneof output_terminal_enum { + OutputSignal output_terminal_mapped = 6; + string output_terminal_raw = 7; + } +} + +message ExportSignalResponse { + int32 status = 1; +} + +message GetAllNamedWaveformNamesRequest { + nidevice_grpc.Session vi = 1; +} + +message GetAllNamedWaveformNamesResponse { + int32 status = 1; + string waveform_names = 2; + sint32 actual_buffer_size = 3; +} + +message GetAllScriptNamesRequest { + nidevice_grpc.Session vi = 1; +} + +message GetAllScriptNamesResponse { + int32 status = 1; + string script_names = 2; + sint32 actual_buffer_size = 3; +} + +message GetScriptRequest { + nidevice_grpc.Session vi = 1; + string script_name = 2; +} + +message GetScriptResponse { + int32 status = 1; + string script = 2; + sint32 actual_buffer_size = 3; +} + +message GetAttributeViBooleanRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; +} + +message GetAttributeViBooleanResponse { + int32 status = 1; + bool value = 2; +} + +message GetAttributeViInt32Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; +} + +message GetAttributeViInt32Response { + int32 status = 1; + sint32 value = 2; +} + +message GetAttributeViInt64Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; +} + +message GetAttributeViInt64Response { + int32 status = 1; + int64 value = 2; +} + +message GetAttributeViReal64Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; +} + +message GetAttributeViReal64Response { + int32 status = 1; + double value = 2; +} + +message GetAttributeViSessionRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; +} + +message GetAttributeViSessionResponse { + int32 status = 1; + nidevice_grpc.Session value = 2; +} + +message GetAttributeViStringRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; +} + +message GetAttributeViStringResponse { + int32 status = 1; + string value = 2; +} + +message GetChannelNameRequest { + nidevice_grpc.Session vi = 1; + sint32 index = 2; +} + +message GetChannelNameResponse { + int32 status = 1; + string name = 2; +} + +message GetDeembeddingSparametersRequest { + nidevice_grpc.Session vi = 1; +} + +message GetDeembeddingSparametersResponse { + int32 status = 1; + repeated nidevice_grpc.NIComplexNumber sparameters = 2; + sint32 number_of_sparameters = 3; + sint32 number_of_ports = 4; +} + +message GetErrorRequest { + nidevice_grpc.Session vi = 1; +} + +message GetErrorResponse { + int32 status = 1; + sint32 error_code = 2; + string error_description = 3; +} + +message GetExternalCalibrationLastDateAndTimeRequest { + nidevice_grpc.Session vi = 1; +} + +message GetExternalCalibrationLastDateAndTimeResponse { + int32 status = 1; + sint32 year = 2; + sint32 month = 3; + sint32 day = 4; + sint32 hour = 5; + sint32 minute = 6; + sint32 second = 7; +} + +message GetMaxSettablePowerRequest { + nidevice_grpc.Session vi = 1; +} + +message GetMaxSettablePowerResponse { + int32 status = 1; + double value = 2; +} + +message GetSelfCalibrationDateAndTimeRequest { + nidevice_grpc.Session vi = 1; + oneof module_enum { + Module module = 2; + sint32 module_raw = 3; + } +} + +message GetSelfCalibrationDateAndTimeResponse { + int32 status = 1; + sint32 year = 2; + sint32 month = 3; + sint32 day = 4; + sint32 hour = 5; + sint32 minute = 6; + sint32 second = 7; +} + +message GetSelfCalibrationTemperatureRequest { + nidevice_grpc.Session vi = 1; + oneof module_enum { + Module module = 2; + sint32 module_raw = 3; + } +} + +message GetSelfCalibrationTemperatureResponse { + int32 status = 1; + double temperature = 2; +} + +message GetTerminalNameRequest { + nidevice_grpc.Session vi = 1; + oneof signal_enum { + RoutedSignal signal = 2; + sint32 signal_raw = 3; + } + oneof signal_identifier_enum { + SignalIdentifier signal_identifier_mapped = 4; + string signal_identifier_raw = 5; + } +} + +message GetTerminalNameResponse { + int32 status = 1; + string terminal_name = 2; +} + +message GetUserDataRequest { + nidevice_grpc.Session vi = 1; + string identifier = 2; +} + +message GetUserDataResponse { + int32 status = 1; + bytes data = 2; + sint32 actual_data_size = 3; +} + +message GetWaveformBurstStartLocationsRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; +} + +message GetWaveformBurstStartLocationsResponse { + int32 status = 1; + repeated double locations = 2; + sint32 required_size = 3; +} + +message GetWaveformBurstStopLocationsRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; +} + +message GetWaveformBurstStopLocationsResponse { + int32 status = 1; + repeated double locations = 2; + sint32 required_size = 3; +} + +message GetWaveformMarkerEventLocationsRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; +} + +message GetWaveformMarkerEventLocationsResponse { + int32 status = 1; + repeated double locations = 2; + sint32 required_size = 3; +} + +message InitRequest { + string session_name = 1; + string resource_name = 2; + bool id_query = 3; + bool reset_device = 4; + nidevice_grpc.SessionInitializationBehavior initialization_behavior = 5; +} + +message InitResponse { + int32 status = 1; + nidevice_grpc.Session new_vi = 2; + string error_message = 3 [deprecated = true]; + bool new_session_initialized = 4; +} + +message InitWithOptionsRequest { + string session_name = 1; + string resource_name = 2; + bool id_query = 3; + bool reset_device = 4; + string option_string = 5; + nidevice_grpc.SessionInitializationBehavior initialization_behavior = 6; +} + +message InitWithOptionsResponse { + int32 status = 1; + nidevice_grpc.Session vi = 2; + string error_message = 3 [deprecated = true]; + bool new_session_initialized = 4; +} + +message InitiateRequest { + nidevice_grpc.Session vi = 1; +} + +message InitiateResponse { + int32 status = 1; +} + +message InvalidateAllAttributesRequest { + nidevice_grpc.Session vi = 1; +} + +message InvalidateAllAttributesResponse { + int32 status = 1; +} + +message LoadConfigurationsFromFileRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + string file_path = 3; +} + +message LoadConfigurationsFromFileResponse { + int32 status = 1; +} + +message PerformPowerSearchRequest { + nidevice_grpc.Session vi = 1; +} + +message PerformPowerSearchResponse { + int32 status = 1; +} + +message PerformThermalCorrectionRequest { + nidevice_grpc.Session vi = 1; +} + +message PerformThermalCorrectionResponse { + int32 status = 1; +} + +message QueryArbWaveformCapabilitiesRequest { + nidevice_grpc.Session vi = 1; +} + +message QueryArbWaveformCapabilitiesResponse { + int32 status = 1; + sint32 max_number_waveforms = 2; + sint32 waveform_quantum = 3; + sint32 min_waveform_size = 4; + sint32 max_waveform_size = 5; +} + +message ReadAndDownloadWaveformFromFileTDMSRequest { + nidevice_grpc.Session vi = 1; + string waveform_name = 2; + string file_path = 3; + uint32 waveform_index = 4; +} + +message ReadAndDownloadWaveformFromFileTDMSResponse { + int32 status = 1; +} + +message ResetRequest { + nidevice_grpc.Session vi = 1; +} + +message ResetResponse { + int32 status = 1; +} + +message ResetAttributeRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; +} + +message ResetAttributeResponse { + int32 status = 1; +} + +message ResetDeviceRequest { + nidevice_grpc.Session vi = 1; +} + +message ResetDeviceResponse { + int32 status = 1; +} + +message ResetWithDefaultsRequest { + nidevice_grpc.Session vi = 1; +} + +message ResetWithDefaultsResponse { + int32 status = 1; +} + +message ResetWithOptionsRequest { + nidevice_grpc.Session vi = 1; + oneof steps_to_omit_enum { + ResetWithOptionsStepsToOmit steps_to_omit = 2; + uint64 steps_to_omit_raw = 3; + } +} + +message ResetWithOptionsResponse { + int32 status = 1; +} + +message RevisionQueryRequest { + nidevice_grpc.Session vi = 1; +} + +message RevisionQueryResponse { + int32 status = 1; + string instrument_driver_revision = 2; + string firmware_revision = 3; +} + +message SaveConfigurationsToFileRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + string file_path = 3; +} + +message SaveConfigurationsToFileResponse { + int32 status = 1; +} + +message SelectArbWaveformRequest { + nidevice_grpc.Session vi = 1; + string name = 2; +} + +message SelectArbWaveformResponse { + int32 status = 1; +} + +message SelfCalRequest { + nidevice_grpc.Session vi = 1; +} + +message SelfCalResponse { + int32 status = 1; +} + +message SelfCalibrateRangeRequest { + nidevice_grpc.Session vi = 1; + oneof steps_to_omit_enum { + SelfCalibrateRangeStepsToOmit steps_to_omit = 2; + int64 steps_to_omit_raw = 3; + } + double min_frequency = 4; + double max_frequency = 5; + double min_power_level = 6; + double max_power_level = 7; +} + +message SelfCalibrateRangeResponse { + int32 status = 1; +} + +message SelfTestRequest { + nidevice_grpc.Session vi = 1; +} + +message SelfTestResponse { + int32 status = 1; + sint32 self_test_result = 2; + string self_test_message = 3; +} + +message SendSoftwareEdgeTriggerRequest { + nidevice_grpc.Session vi = 1; + oneof trigger_enum { + RoutedSignal trigger = 2; + sint32 trigger_raw = 3; + } + oneof trigger_identifier_enum { + SignalIdentifier trigger_identifier_mapped = 4; + string trigger_identifier_raw = 5; + } +} + +message SendSoftwareEdgeTriggerResponse { + int32 status = 1; +} + +message SetArbWaveformNextWritePositionRequest { + nidevice_grpc.Session vi = 1; + string waveform_name = 2; + oneof relative_to_enum { + RelativeTo relative_to = 3; + sint32 relative_to_raw = 4; + } + sint32 offset = 5; +} + +message SetArbWaveformNextWritePositionResponse { + int32 status = 1; +} + +message SetAttributeViBooleanRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; + bool value = 4; +} + +message SetAttributeViBooleanResponse { + int32 status = 1; +} + +message SetAttributeViInt32Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; + oneof value_enum { + NiRFSGInt32AttributeValues value = 4; + sint32 value_raw = 5; + } +} + +message SetAttributeViInt32Response { + int32 status = 1; +} + +message SetAttributeViInt64Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; + int64 value_raw = 4; +} + +message SetAttributeViInt64Response { + int32 status = 1; +} + +message SetAttributeViReal64Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; + oneof value_enum { + NiRFSGReal64AttributeValues value = 4; + double value_raw = 5; + } +} + +message SetAttributeViReal64Response { + int32 status = 1; +} + +message SetAttributeViSessionRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; + nidevice_grpc.Session value = 4; +} + +message SetAttributeViSessionResponse { + int32 status = 1; +} + +message SetAttributeViStringRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute_id = 3; + oneof value_enum { + NiRFSGStringAttributeValuesMapped value_mapped = 4; + string value_raw = 5; + } +} + +message SetAttributeViStringResponse { + int32 status = 1; +} + +message SetUserDataRequest { + nidevice_grpc.Session vi = 1; + string identifier = 2; + bytes data = 3; +} + +message SetUserDataResponse { + int32 status = 1; +} + +message SetWaveformBurstStartLocationsRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + repeated double locations = 3; +} + +message SetWaveformBurstStartLocationsResponse { + int32 status = 1; +} + +message SetWaveformBurstStopLocationsRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + repeated double locations = 3; +} + +message SetWaveformBurstStopLocationsResponse { + int32 status = 1; +} + +message SetWaveformMarkerEventLocationsRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + repeated double locations = 3; +} + +message SetWaveformMarkerEventLocationsResponse { + int32 status = 1; +} + +message WaitUntilSettledRequest { + nidevice_grpc.Session vi = 1; + sint32 max_time_milliseconds = 2; +} + +message WaitUntilSettledResponse { + int32 status = 1; +} + +message WriteArbWaveformRequest { + nidevice_grpc.Session vi = 1; + string waveform_name = 2; + repeated double i_data = 3; + repeated double q_data = 4; + bool more_data_pending = 5; +} + +message WriteArbWaveformResponse { + int32 status = 1; +} + +message WriteArbWaveformComplexF32Request { + nidevice_grpc.Session vi = 1; + string waveform_name = 2; + repeated nidevice_grpc.NIComplexNumberF32 wfm_data = 3; + bool more_data_pending = 4; +} + +message WriteArbWaveformComplexF32Response { + int32 status = 1; +} + +message WriteArbWaveformComplexF64Request { + nidevice_grpc.Session vi = 1; + string waveform_name = 2; + repeated nidevice_grpc.NIComplexNumber wfm_data = 3; + bool more_data_pending = 4; +} + +message WriteArbWaveformComplexF64Response { + int32 status = 1; +} + +message WriteArbWaveformComplexI16Request { + nidevice_grpc.Session vi = 1; + string waveform_name = 2; + repeated nidevice_grpc.NIComplexI16 wfm_data = 3; +} + +message WriteArbWaveformComplexI16Response { + int32 status = 1; +} + +message WriteArbWaveformF32Request { + nidevice_grpc.Session vi = 1; + string waveform_name = 2; + repeated float i_data = 3; + repeated float q_data = 4; + bool more_data_pending = 5; +} + +message WriteArbWaveformF32Response { + int32 status = 1; +} + +message WriteScriptRequest { + nidevice_grpc.Session vi = 1; + string script = 2; +} + +message WriteScriptResponse { + int32 status = 1; +} + diff --git a/src/nirfsg/templates/_grpc_stub_interpreter.py/get_deembedding_sparameter.py.mako b/src/nirfsg/templates/_grpc_stub_interpreter.py/get_deembedding_sparameter.py.mako index 27c91dd4fa..21f6d66e5a 100644 --- a/src/nirfsg/templates/_grpc_stub_interpreter.py/get_deembedding_sparameter.py.mako +++ b/src/nirfsg/templates/_grpc_stub_interpreter.py/get_deembedding_sparameter.py.mako @@ -3,6 +3,7 @@ '''Retrieves S-parameters from the gRPC call response and converts them to a reshaped numpy array.''' import build.helper as helper %>\ + def ${f['interpreter_name']}(self): import numpy as np response = self._invoke( From 8bbb8544653351b9164b294275874abb233b0e3e Mon Sep 17 00:00:00 2001 From: Rahul R Date: Wed, 18 Mar 2026 10:14:17 +0000 Subject: [PATCH 02/20] Enabling grpc for nirfsg --- src/nirfsg/metadata/attributes.py | 2 +- src/nirfsg/metadata/config.py | 4 ++-- src/nirfsg/metadata/enums.py | 2 +- src/nirfsg/metadata/functions.py | 3 ++- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/nirfsg/metadata/attributes.py b/src/nirfsg/metadata/attributes.py index 9222d248bc..102b759d56 100644 --- a/src/nirfsg/metadata/attributes.py +++ b/src/nirfsg/metadata/attributes.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d277 +# This file is generated from NI-RFSG API metadata version 26.3.0d9999 attributes = { 1050302: { 'access': 'read only', diff --git a/src/nirfsg/metadata/config.py b/src/nirfsg/metadata/config.py index 0fd6e0028e..6f0e29f0e2 100644 --- a/src/nirfsg/metadata/config.py +++ b/src/nirfsg/metadata/config.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d277 +# This file is generated from NI-RFSG API metadata version 26.3.0d9999 config = { - 'api_version': '26.3.0d277', + 'api_version': '26.3.0d9999', 'c_function_prefix': 'niRFSG_', 'close_function': 'close', 'context_manager_name': { diff --git a/src/nirfsg/metadata/enums.py b/src/nirfsg/metadata/enums.py index 9d91dd6d44..b1c411b502 100644 --- a/src/nirfsg/metadata/enums.py +++ b/src/nirfsg/metadata/enums.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d277 +# This file is generated from NI-RFSG API metadata version 26.3.0d9999 enums = { 'AllowOutOfSpecificationUserSettings': { 'values': [ diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index 96c1984b11..ea0a800d81 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d277 +# This file is generated from NI-RFSG API metadata version 26.3.0d9999 functions = { 'Abort': { 'codegen_method': 'public', @@ -3922,6 +3922,7 @@ }, 'enum': 'TriggerIdentifier', 'name': 'triggerIdentifier', + 'grpc_enum': 'SignalIdentifier', 'type': 'ViConstString', 'use_array': False, 'use_in_python_api': True From 0d0e20916be6de5e788eb030ca334cbabde74bf5 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Wed, 18 Mar 2026 12:56:32 +0000 Subject: [PATCH 03/20] Updated change log --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 668c634103..c6117b6546 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1706,6 +1706,7 @@ - `SCRIPTS` added to enum `LoadOptions` - `DO_NOT_DRIVE_SIGNAL` added to enum `PulseModulationSource` - `numpy` is now an install dependency + - gRPC support, enabling remote session management via NI gRPC Device Server - Changed - Removed From 89c16cc0625e691dfe0b18fa224b1528a324e58e Mon Sep 17 00:00:00 2001 From: Rahul R Date: Fri, 20 Mar 2026 07:23:38 +0000 Subject: [PATCH 04/20] nirfsg grpc enable --- .../templates/_grpc_stub_interpreter.py.mako | 4 ++ .../nifake/nifake/_grpc_stub_interpreter.py | 1 + .../nirfsg/nirfsg/_grpc_stub_interpreter.py | 41 ++++++++++-- .../system_tests/grpc_server_config.json | 9 +++ src/nirfsg/system_tests/test_system_nirfsg.py | 37 ++++++++--- .../numpy_write_method.py.mako | 62 +++++++++++++++++++ 6 files changed, 140 insertions(+), 14 deletions(-) create mode 100644 src/nirfsg/system_tests/grpc_server_config.json create mode 100644 src/nirfsg/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako diff --git a/build/templates/_grpc_stub_interpreter.py.mako b/build/templates/_grpc_stub_interpreter.py.mako index 0a5f0e4ef1..dbff0a676c 100644 --- a/build/templates/_grpc_stub_interpreter.py.mako +++ b/build/templates/_grpc_stub_interpreter.py.mako @@ -8,6 +8,7 @@ module_name = config['module_name'] proto_name = config.get('proto_name', module_name) service_class_prefix = config['grpc_service_class_prefix'] functions = helper.filter_codegen_functions(config['functions']) +are_complex_parameters_used = helper.are_complex_parameters_used(functions) %>\ import grpc @@ -19,6 +20,9 @@ import warnings from . import enums as enums # noqa: F401 % endif from . import errors as errors +% if are_complex_parameters_used: +from . import nidevice_pb2 as grpc_complex_types # noqa: F401 +% endif from . import ${proto_name}_pb2 as grpc_types from . import ${proto_name}_pb2_grpc as ${module_name}_grpc from . import session_pb2 as session_grpc_types diff --git a/generated/nifake/nifake/_grpc_stub_interpreter.py b/generated/nifake/nifake/_grpc_stub_interpreter.py index 5ef4005c57..3c02d285c2 100644 --- a/generated/nifake/nifake/_grpc_stub_interpreter.py +++ b/generated/nifake/nifake/_grpc_stub_interpreter.py @@ -8,6 +8,7 @@ from . import enums as enums # noqa: F401 from . import errors as errors +from . import nidevice_pb2 as grpc_complex_types # noqa: F401 from . import nifake_pb2 as grpc_types from . import nifake_pb2_grpc as nifake_grpc from . import session_pb2 as session_grpc_types diff --git a/generated/nirfsg/nirfsg/_grpc_stub_interpreter.py b/generated/nirfsg/nirfsg/_grpc_stub_interpreter.py index 708d6d500a..bb360b4f01 100644 --- a/generated/nirfsg/nirfsg/_grpc_stub_interpreter.py +++ b/generated/nirfsg/nirfsg/_grpc_stub_interpreter.py @@ -8,6 +8,7 @@ from . import enums as enums # noqa: F401 from . import errors as errors +from . import nidevice_pb2 as grpc_complex_types # noqa: F401 from . import nirfsg_pb2 as grpc_types from . import nirfsg_pb2_grpc as nirfsg_grpc from . import session_pb2 as session_grpc_types @@ -194,7 +195,14 @@ def configure_software_start_trigger(self): # noqa: N802 ) def create_deembedding_sparameter_table_array(self, port, table_name, frequencies, sparameter_table, number_of_ports, sparameter_orientation): # noqa: N802 - raise NotImplementedError('numpy-specific methods are not supported over gRPC') + sparameter_table_list = [ + grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) + for val in sparameter_table.ravel() + ] + self._invoke( + self._client.CreateDeembeddingSparameterTableArray, + grpc_types.CreateDeembeddingSparameterTableArrayRequest(vi=self._vi, port=port, table_name=table_name, frequencies=frequencies, sparameter_table=sparameter_table_list, number_of_ports=number_of_ports, sparameter_orientation_raw=sparameter_orientation.value), + ) def create_deembedding_sparameter_table_s2p_file(self, port, table_name, s2p_file_path, sparameter_orientation): # noqa: N802 self._invoke( @@ -552,13 +560,38 @@ def wait_until_settled(self, max_time_milliseconds): # noqa: N802 ) def write_arb_waveform_complex_f32(self, waveform_name, waveform_data_array, more_data_pending): # noqa: N802 - raise NotImplementedError('numpy-specific methods are not supported over gRPC') + waveform_data_array_list = [ + grpc_complex_types.NIComplexNumberF32(real=val.real, imaginary=val.imag) + for val in waveform_data_array.ravel() + ] + self._invoke( + self._client.WriteArbWaveformComplexF32, + grpc_types.WriteArbWaveformComplexF32Request(vi=self._vi, waveform_name=waveform_name, wfm_data=waveform_data_array_list, more_data_pending=more_data_pending), + ) def write_arb_waveform_complex_f64(self, waveform_name, waveform_data_array, more_data_pending): # noqa: N802 - raise NotImplementedError('numpy-specific methods are not supported over gRPC') + waveform_data_array_list = [ + grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) + for val in waveform_data_array.ravel() + ] + self._invoke( + self._client.WriteArbWaveformComplexF64, + grpc_types.WriteArbWaveformComplexF64Request(vi=self._vi, waveform_name=waveform_name, wfm_data=waveform_data_array_list, more_data_pending=more_data_pending), + ) def write_arb_waveform_complex_i16(self, waveform_name, waveform_data_array): # noqa: N802 - raise NotImplementedError('numpy-specific methods are not supported over gRPC') + arr = waveform_data_array.ravel() + if arr.size % 2 != 0: + raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") + arr_pairs = arr.reshape(-1, 2) + waveform_data_array_list = [ + grpc_complex_types.NIComplexI16(real=int(pair[0]), imaginary=int(pair[1])) + for pair in arr_pairs + ] + self._invoke( + self._client.WriteArbWaveformComplexI16, + grpc_types.WriteArbWaveformComplexI16Request(vi=self._vi, waveform_name=waveform_name, wfm_data=waveform_data_array_list), + ) def write_script(self, script): # noqa: N802 self._invoke( diff --git a/src/nirfsg/system_tests/grpc_server_config.json b/src/nirfsg/system_tests/grpc_server_config.json new file mode 100644 index 0000000000..d9755289e3 --- /dev/null +++ b/src/nirfsg/system_tests/grpc_server_config.json @@ -0,0 +1,9 @@ +{ + "address": "[::1]", + "port": 31766, + "security" : { + "server_cert": "", + "server_key": "", + "root_cert": "" + } + } \ No newline at end of file diff --git a/src/nirfsg/system_tests/test_system_nirfsg.py b/src/nirfsg/system_tests/test_system_nirfsg.py index 073701c0ea..eacfff0350 100644 --- a/src/nirfsg/system_tests/test_system_nirfsg.py +++ b/src/nirfsg/system_tests/test_system_nirfsg.py @@ -1,4 +1,5 @@ import array +import grpc import hightime import nirfsg import numpy as np @@ -622,16 +623,6 @@ def test_wait_until_settled(self, rfsg_device_session): with rfsg_device_session.initiate(): rfsg_device_session.wait_until_settled() - def test_get_all_named_waveform_names(self, rfsg_device_session): - rfsg_device_session.generation_mode = nirfsg.GenerationMode.ARB_WAVEFORM - waveform_data1 = np.full(1000, 1 + 0j, dtype=np.complex128) - waveform_data2 = np.full(800, 1 + 0j, dtype=np.complex128) - rfsg_device_session.write_arb_waveform('waveform1', waveform_data1, False) - rfsg_device_session.write_arb_waveform('waveform2', waveform_data2, False) - names = rfsg_device_session.get_all_named_waveform_names() - assert 'waveform1' in names - assert 'waveform2' in names - @pytest.mark.skipif(use_simulated_session is True, reason="Scripts not compiled on simulated device") def test_get_all_script_names(self, rfsg_device_session): rfsg_device_session.generation_mode = nirfsg.GenerationMode.SCRIPT @@ -658,3 +649,29 @@ class TestLibrary(SystemTests): @pytest.fixture(scope='class') def session_creation_kwargs(self): return {} + + def test_get_all_named_waveform_names(self, rfsg_device_session): + rfsg_device_session.generation_mode = nirfsg.GenerationMode.ARB_WAVEFORM + waveform_data1 = np.full(1000, 1 + 0j, dtype=np.complex128) + waveform_data2 = np.full(800, 1 + 0j, dtype=np.complex128) + rfsg_device_session.write_arb_waveform('waveform1', waveform_data1, False) + rfsg_device_session.write_arb_waveform('waveform2', waveform_data2, False) + names = rfsg_device_session.get_all_named_waveform_names() + assert 'waveform1' in names + assert 'waveform2' in names + + +class TestGrpc(SystemTests): + @pytest.fixture(scope='class') + def grpc_channel(self): + current_directory = os.path.dirname(os.path.abspath(__file__)) + config_file_path = os.path.join(current_directory, 'grpc_server_config.json') + with system_test_utilities.GrpcServerProcess(config_file_path) as proc: + channel = grpc.insecure_channel(f"localhost:{proc.server_port}") + yield channel + + @pytest.fixture(scope='class') + def session_creation_kwargs(self, grpc_channel): + grpc_options = nirfsg.GrpcSessionOptions(grpc_channel, "") + return {'grpc_options': grpc_options} + diff --git a/src/nirfsg/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako b/src/nirfsg/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako new file mode 100644 index 0000000000..02050e9549 --- /dev/null +++ b/src/nirfsg/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako @@ -0,0 +1,62 @@ +<%page args="f, config, method_template"/>\ +<% + '''Renders a GrpcStubInterpreter method corresponding to the passed-in function metadata.''' + import build.helper as helper + parameters = f['parameters'] + full_func_name = f['interpreter_name'] + method_template['method_python_name_suffix'] + method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION) + grpc_name = f.get('grpc_name', f['name']) + grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) + return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) + if return_statement == 'return': + return_statement = None + capture_response = 'response = ' if return_statement else '' + included_in_proto = f.get('included_in_proto', True) + numpy_complex_params = [ + p for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.NUMPY_PARAMETERS) + if p.get('complex_array_representation') is not None and p.get('original_type') in ('NIComplexNumber[]', 'NIComplexNumberF32[]', 'NIComplexI16[]') + ] + # For numpy complex inputs, create NIComplex message lists and map them in the request args + for p in numpy_complex_params: + # Replace occurrences like "field=python_name" with "field=python_name_list" + grpc_request_args = grpc_request_args.replace( + p['grpc_name'] + '=' + p['python_name'], + p['grpc_name'] + '=' + p['python_name'] + '_list' + ) + +%>\ + + def ${full_func_name}(${method_decl_params}): # noqa: N802 +% if included_in_proto: +% for p in numpy_complex_params: +% if p['original_type'] == 'NIComplexNumber[]': + ${p['python_name']}_list = [ + grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) + for val in ${p['python_name']}.ravel() + ] +% elif p['original_type'] == 'NIComplexNumberF32[]': + ${p['python_name']}_list = [ + grpc_complex_types.NIComplexNumberF32(real=val.real, imaginary=val.imag) + for val in ${p['python_name']}.ravel() + ] +% elif p['original_type'] == 'NIComplexI16[]': + arr = ${p['python_name']}.ravel() + if arr.size % 2 != 0: + raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") + arr_pairs = arr.reshape(-1, 2) + ${p['python_name']}_list = [ + grpc_complex_types.NIComplexI16(real=int(pair[0]), imaginary=int(pair[1])) + for pair in arr_pairs + ] +% endif +% endfor + ${capture_response}self._invoke( + self._client.${grpc_name}, + grpc_types.${grpc_name}Request(${grpc_request_args}), + ) +% if return_statement: + ${return_statement} +% endif +% else: + raise NotImplementedError('${full_func_name} is not supported over gRPC') +% endif From fd619a3295152eab704cc39177fd3a4dc3fa394d Mon Sep 17 00:00:00 2001 From: Rahul R Date: Fri, 20 Mar 2026 16:39:22 +0000 Subject: [PATCH 05/20] With default template update --- .../numpy_read_method.py.mako | 64 ++++++++++++++++++- .../numpy_write_method.py.mako | 2 +- .../numpy_write_method.py.mako | 62 ------------------ 3 files changed, 62 insertions(+), 66 deletions(-) delete mode 100644 src/nirfsg/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako index 94c4cd4215..71a57773a5 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako @@ -1,12 +1,70 @@ <%page args="f, config, method_template"/>\ <% - '''Renders a NotImplemented method for to the passed-in function metadata, because numpy is not supported over grpc.''' - + '''Renders a GrpcStubInterpreter method corresponding to the passed-in function metadata.''' import build.helper as helper - + parameters = f['parameters'] full_func_name = f['interpreter_name'] + method_template['method_python_name_suffix'] method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION) + included_in_proto = f.get('included_in_proto', True) + + # Identify numpy parameters with complex number types + numpy_complex_params = [ + p for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.NUMPY_PARAMETERS) + if p.get('complex_array_representation') is not None and p.get('original_type') in ('NIComplexNumber[]', 'NIComplexNumberF32[]', 'NIComplexI16[]') + ] + + # Only generate gRPC implementation if complex parameters exist and included in proto + should_generate_grpc_impl = len(numpy_complex_params) > 0 and included_in_proto + + if should_generate_grpc_impl: + # Generate gRPC request with complex number conversion + grpc_name = f.get('grpc_name', f['name']) + grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) + + # Replace parameter names with _list suffixed versions for complex parameters + for p in numpy_complex_params: + grpc_request_args = grpc_request_args.replace( + p['grpc_name'] + '=' + p['python_name'], + p['grpc_name'] + '=' + p['python_name'] + '_list' + ) + + return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) + if return_statement == 'return': + return_statement = None + capture_response = 'response = ' if return_statement else '' %>\ def ${full_func_name}(${method_decl_params}): # noqa: N802 +% if should_generate_grpc_impl: +% for p in numpy_complex_params: +% if p['original_type'] == 'NIComplexNumber[]': + ${p['python_name']}_list = [ + grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) + for val in ${p['python_name']}.ravel() + ] +% elif p['original_type'] == 'NIComplexNumberF32[]': + ${p['python_name']}_list = [ + grpc_complex_types.NIComplexNumberF32(real=val.real, imaginary=val.imag) + for val in ${p['python_name']}.ravel() + ] +% elif p['original_type'] == 'NIComplexI16[]': + arr = ${p['python_name']}.ravel() + if arr.size % 2 != 0: + raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") + arr_pairs = arr.reshape(-1, 2) + ${p['python_name']}_list = [ + grpc_complex_types.NIComplexI16(real=int(pair[0]), imaginary=int(pair[1])) + for pair in arr_pairs + ] +% endif +% endfor + ${capture_response}self._invoke( + self._client.${grpc_name}, + grpc_types.${grpc_name}Request(${grpc_request_args}), + ) +% if return_statement: + ${return_statement} +% endif +% else: raise NotImplementedError('numpy-specific methods are not supported over gRPC') +% endif diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako index 648b9a0e14..ebedae3a65 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako @@ -1,3 +1,3 @@ <%page args="f, config, method_template"/>\ -## numpy_read and numpy_write are identical for gRPC -- both return a NotImplementedError +## numpy_read and numpy_write use the same logic - both support gRPC with complex number handling when needed <%include file="/_grpc_stub_interpreter.py/numpy_read_method.py.mako" args="f=f, config=config, method_template=method_template" />\ diff --git a/src/nirfsg/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako b/src/nirfsg/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako deleted file mode 100644 index 02050e9549..0000000000 --- a/src/nirfsg/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako +++ /dev/null @@ -1,62 +0,0 @@ -<%page args="f, config, method_template"/>\ -<% - '''Renders a GrpcStubInterpreter method corresponding to the passed-in function metadata.''' - import build.helper as helper - parameters = f['parameters'] - full_func_name = f['interpreter_name'] + method_template['method_python_name_suffix'] - method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION) - grpc_name = f.get('grpc_name', f['name']) - grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) - return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) - if return_statement == 'return': - return_statement = None - capture_response = 'response = ' if return_statement else '' - included_in_proto = f.get('included_in_proto', True) - numpy_complex_params = [ - p for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.NUMPY_PARAMETERS) - if p.get('complex_array_representation') is not None and p.get('original_type') in ('NIComplexNumber[]', 'NIComplexNumberF32[]', 'NIComplexI16[]') - ] - # For numpy complex inputs, create NIComplex message lists and map them in the request args - for p in numpy_complex_params: - # Replace occurrences like "field=python_name" with "field=python_name_list" - grpc_request_args = grpc_request_args.replace( - p['grpc_name'] + '=' + p['python_name'], - p['grpc_name'] + '=' + p['python_name'] + '_list' - ) - -%>\ - - def ${full_func_name}(${method_decl_params}): # noqa: N802 -% if included_in_proto: -% for p in numpy_complex_params: -% if p['original_type'] == 'NIComplexNumber[]': - ${p['python_name']}_list = [ - grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) - for val in ${p['python_name']}.ravel() - ] -% elif p['original_type'] == 'NIComplexNumberF32[]': - ${p['python_name']}_list = [ - grpc_complex_types.NIComplexNumberF32(real=val.real, imaginary=val.imag) - for val in ${p['python_name']}.ravel() - ] -% elif p['original_type'] == 'NIComplexI16[]': - arr = ${p['python_name']}.ravel() - if arr.size % 2 != 0: - raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") - arr_pairs = arr.reshape(-1, 2) - ${p['python_name']}_list = [ - grpc_complex_types.NIComplexI16(real=int(pair[0]), imaginary=int(pair[1])) - for pair in arr_pairs - ] -% endif -% endfor - ${capture_response}self._invoke( - self._client.${grpc_name}, - grpc_types.${grpc_name}Request(${grpc_request_args}), - ) -% if return_statement: - ${return_statement} -% endif -% else: - raise NotImplementedError('${full_func_name} is not supported over gRPC') -% endif From 86fde87c5fcb150491af378798d5d26820b20067 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Fri, 20 Mar 2026 16:53:47 +0000 Subject: [PATCH 06/20] SIngle template changes --- .../numpy_read_method.py.mako | 64 +- .../numpy_write_method.py.mako | 71 +- log.log | 2683 +++++++++++++++++ 3 files changed, 2755 insertions(+), 63 deletions(-) create mode 100644 log.log diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako index 71a57773a5..94c4cd4215 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako @@ -1,70 +1,12 @@ <%page args="f, config, method_template"/>\ <% - '''Renders a GrpcStubInterpreter method corresponding to the passed-in function metadata.''' + '''Renders a NotImplemented method for to the passed-in function metadata, because numpy is not supported over grpc.''' + import build.helper as helper - parameters = f['parameters'] + full_func_name = f['interpreter_name'] + method_template['method_python_name_suffix'] method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION) - included_in_proto = f.get('included_in_proto', True) - - # Identify numpy parameters with complex number types - numpy_complex_params = [ - p for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.NUMPY_PARAMETERS) - if p.get('complex_array_representation') is not None and p.get('original_type') in ('NIComplexNumber[]', 'NIComplexNumberF32[]', 'NIComplexI16[]') - ] - - # Only generate gRPC implementation if complex parameters exist and included in proto - should_generate_grpc_impl = len(numpy_complex_params) > 0 and included_in_proto - - if should_generate_grpc_impl: - # Generate gRPC request with complex number conversion - grpc_name = f.get('grpc_name', f['name']) - grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) - - # Replace parameter names with _list suffixed versions for complex parameters - for p in numpy_complex_params: - grpc_request_args = grpc_request_args.replace( - p['grpc_name'] + '=' + p['python_name'], - p['grpc_name'] + '=' + p['python_name'] + '_list' - ) - - return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) - if return_statement == 'return': - return_statement = None - capture_response = 'response = ' if return_statement else '' %>\ def ${full_func_name}(${method_decl_params}): # noqa: N802 -% if should_generate_grpc_impl: -% for p in numpy_complex_params: -% if p['original_type'] == 'NIComplexNumber[]': - ${p['python_name']}_list = [ - grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) - for val in ${p['python_name']}.ravel() - ] -% elif p['original_type'] == 'NIComplexNumberF32[]': - ${p['python_name']}_list = [ - grpc_complex_types.NIComplexNumberF32(real=val.real, imaginary=val.imag) - for val in ${p['python_name']}.ravel() - ] -% elif p['original_type'] == 'NIComplexI16[]': - arr = ${p['python_name']}.ravel() - if arr.size % 2 != 0: - raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") - arr_pairs = arr.reshape(-1, 2) - ${p['python_name']}_list = [ - grpc_complex_types.NIComplexI16(real=int(pair[0]), imaginary=int(pair[1])) - for pair in arr_pairs - ] -% endif -% endfor - ${capture_response}self._invoke( - self._client.${grpc_name}, - grpc_types.${grpc_name}Request(${grpc_request_args}), - ) -% if return_statement: - ${return_statement} -% endif -% else: raise NotImplementedError('numpy-specific methods are not supported over gRPC') -% endif diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako index ebedae3a65..8454f60a92 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako @@ -1,3 +1,70 @@ <%page args="f, config, method_template"/>\ -## numpy_read and numpy_write use the same logic - both support gRPC with complex number handling when needed -<%include file="/_grpc_stub_interpreter.py/numpy_read_method.py.mako" args="f=f, config=config, method_template=method_template" />\ +<% + '''Renders a GrpcStubInterpreter method for numpy write operations with complex number support.''' + import build.helper as helper + parameters = f['parameters'] + full_func_name = f['interpreter_name'] + method_template['method_python_name_suffix'] + method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION) + included_in_proto = f.get('included_in_proto', True) + + # Identify numpy parameters with complex number types + numpy_complex_params = [ + p for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.NUMPY_PARAMETERS) + if p.get('complex_array_representation') is not None and p.get('original_type') in ('NIComplexNumber[]', 'NIComplexNumberF32[]', 'NIComplexI16[]') + ] + + # Only generate gRPC implementation if complex parameters exist and included in proto + should_generate_grpc_impl = len(numpy_complex_params) > 0 and included_in_proto + + if should_generate_grpc_impl: + # Generate gRPC request with complex number conversion + grpc_name = f.get('grpc_name', f['name']) + grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) + + # Replace parameter names with _list suffixed versions for complex parameters + for p in numpy_complex_params: + grpc_request_args = grpc_request_args.replace( + p['grpc_name'] + '=' + p['python_name'], + p['grpc_name'] + '=' + p['python_name'] + '_list' + ) + + return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) + if return_statement == 'return': + return_statement = None + capture_response = 'response = ' if return_statement else '' +%>\ + + def ${full_func_name}(${method_decl_params}): # noqa: N802 +% if should_generate_grpc_impl: +% for p in numpy_complex_params: +% if p['original_type'] == 'NIComplexNumber[]': + ${p['python_name']}_list = [ + grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) + for val in ${p['python_name']}.ravel() + ] +% elif p['original_type'] == 'NIComplexNumberF32[]': + ${p['python_name']}_list = [ + grpc_complex_types.NIComplexNumberF32(real=val.real, imaginary=val.imag) + for val in ${p['python_name']}.ravel() + ] +% elif p['original_type'] == 'NIComplexI16[]': + arr = ${p['python_name']}.ravel() + if arr.size % 2 != 0: + raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") + arr_pairs = arr.reshape(-1, 2) + ${p['python_name']}_list = [ + grpc_complex_types.NIComplexI16(real=int(pair[0]), imaginary=int(pair[1])) + for pair in arr_pairs + ] +% endif +% endfor + ${capture_response}self._invoke( + self._client.${grpc_name}, + grpc_types.${grpc_name}Request(${grpc_request_args}), + ) +% if return_statement: + ${return_statement} +% endif +% else: + raise NotImplementedError('numpy-specific methods are not supported over gRPC') +% endif \ No newline at end of file diff --git a/log.log b/log.log new file mode 100644 index 0000000000..66e2fcb63f --- /dev/null +++ b/log.log @@ -0,0 +1,2683 @@ +py312-build_test: commands[0]> python --version +Python 3.12.3 +py312-build_test: commands[1]> python -c 'import platform; print(platform.architecture())' +('64bit', 'ELF') +py312-build_test: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip +Requirement already satisfied: pip in ./.tox/64/py312-build_test/lib/python3.12/site-packages (26.0.1) +py312-build_test: commands[3]> python -m pip list +Package Version +----------- ------- +coverage 7.13.4 +flake8 7.3.0 +hacking 8.0.0 +iniconfig 2.3.0 +Mako 1.3.10 +MarkupSafe 3.0.3 +mccabe 0.7.0 +packaging 26.0 +pep8-naming 0.15.1 +pip 26.0.1 +pluggy 1.6.0 +pycodestyle 2.14.0 +pyflakes 3.4.0 +Pygments 2.19.2 +pytest 9.0.2 +py312-build_test: commands[4]> coverage run --rcfile=tools/coverage_unit_tests.rc --source build.helper -m pytest --pyargs build.helper +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-build_test/bin/python +cachedir: .tox/64/py312-build_test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +collecting ... collected 1 item + +build/helper/documentation_helper.py::build.helper.documentation_helper.as_rest_table PASSED [100%] + +============================== 1 passed in 0.48s =============================== +py312-build_test: commands[5]> coverage run --append --rcfile=tools/coverage_unit_tests.rc --source build.helper -m pytest build/unit_tests -s +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-build_test/bin/python +cachedir: .tox/64/py312-build_test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +collecting ... collected 98 items + +build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_vi PASSED +build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_int PASSED +build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_string PASSED +build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_custom_type PASSED +build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_enum PASSED +build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_into PASSED +build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_vi PASSED +build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_int PASSED +build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_string PASSED +build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_custom_type PASSED +build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_enum PASSED +build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_bytes PASSED +build/unit_tests/test_codegen_helper.py::test_get_session_method_return_snippet PASSED +build/unit_tests/test_codegen_helper.py::test_get_session_method_return_snippet_non_numpy PASSED +build/unit_tests/test_codegen_helper.py::test_get_session_method_return_snippet_numpy PASSED +build/unit_tests/test_codegen_helper.py::test_get_enum_type_check_snippet PASSED +build/unit_tests/test_codegen_helper.py::test_get_buffer_parameters_for_size_parameter_none PASSED +build/unit_tests/test_codegen_helper.py::test_get_buffer_parameters_for_size_parameter PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c010 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c020 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c030 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c050 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c060 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c070 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c080 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c090 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c100 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s110 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s120 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s130 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s150 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s160 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s161 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s170 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s180 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s2190 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s200 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s210 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s220 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b510 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b540 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b550_array PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b550_list PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b560 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b570 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b580_array PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b590_array PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b580_list PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b590_list PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b600 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b610_array PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b620_array PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b610_list PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b620_list PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_bad_ivi_dance_step PASSED +build/unit_tests/test_codegen_helper.py::test_get_enum_value_snippet PASSED +build/unit_tests/test_documentation_helper.py::test_get_function_rst_default PASSED +build/unit_tests/test_documentation_helper.py::test_get_function_rst_numpy PASSED +build/unit_tests/test_documentation_helper.py::test_get_attribute_repeated_caps PASSED +build/unit_tests/test_documentation_helper.py::test_get_attribute_repeated_caps_with_conjunction PASSED +build/unit_tests/test_documentation_helper.py::test_module_supports_repeated_caps PASSED +build/unit_tests/test_documentation_helper.py::test_get_function_docstring_default PASSED +build/unit_tests/test_documentation_helper.py::test_get_function_docstring_numpy PASSED +build/unit_tests/test_documentation_helper.py::test_get_rst_header_snippet PASSED +build/unit_tests/test_documentation_helper.py::test_get_documentation_for_node_docstring PASSED +build/unit_tests/test_documentation_helper.py::test_get_rst_picture_reference PASSED +build/unit_tests/test_documentation_helper.py::test_square_up_tables PASSED +build/unit_tests/test_documentation_helper.py::test_add_notes_re_links PASSED +build/unit_tests/test_documentation_snippets.py::test_close_function_def_for_doc_note_not_list PASSED +build/unit_tests/test_documentation_snippets.py::test_close_function_def_for_doc_note_list PASSED +build/unit_tests/test_documentation_snippets.py::test_close_function_def_for_doc_no_note PASSED +build/unit_tests/test_documentation_snippets.py::test_initiate_function_def_for_doc_note_not_list PASSED +build/unit_tests/test_documentation_snippets.py::test_initiate_function_def_for_doc_note_list PASSED +build/unit_tests/test_documentation_snippets.py::test_initiate_function_def_for_doc_no_note PASSED +build/unit_tests/test_helper.py::test_get_development_status PASSED +build/unit_tests/test_helper.py::test_enum_uses_converter PASSED +build/unit_tests/test_metadata_add_all.py::test_add_functions_metadata_simple Couldn't find InitWithOptions init function +PASSED +build/unit_tests/test_metadata_add_all.py::test_add_attributes_metadata_simple PASSED +build/unit_tests/test_metadata_add_all.py::test_add_enums_metadata_simple PASSED +build/unit_tests/test_metadata_add_all.py::test_add_all_metadata_defaults Couldn't find InitWithOptions init function +PASSED +build/unit_tests/test_metadata_add_all.py::test_add_all_metadata Couldn't find InitWithOptions init function +PASSED +build/unit_tests/test_metadata_add_all.py::test_add_enum_codegen_method PASSED +build/unit_tests/test_metadata_add_all.py::test_add_enum_codegen_method_error PASSED +build/unit_tests/test_metadata_add_all.py::test_get_functions_that_use_enums PASSED +build/unit_tests/test_metadata_add_all.py::test_get_attributes_that_use_enums PASSED +build/unit_tests/test_metadata_add_all.py::test_get_least_restrictive_codegen_method PASSED +build/unit_tests/test_metadata_filters.py::test_filter_parameters_mixed_usage_ivi_dance_and_len PASSED +build/unit_tests/test_metadata_filters.py::test_filter_parameters_multiple_len_sizes PASSED +build/unit_tests/test_metadata_find.py::test_find_len_size_parameter_names_multiple_sizes PASSED +build/unit_tests/test_metadata_find.py::test_find_len_size_parameter_names_empty_when_no_len_parameters PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_second_is_empty PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_key_exists PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_recurse PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_replace_in_list PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_replace_in_dict_and_list PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_with_regex PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_with_regex_off PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_top_level_key_missing PASSED + +============================== 98 passed in 0.61s ============================== +py312-build_test: commands[6]> coverage report +Name Stmts Miss Cover +------------------------------------------------------------- +build/helper/__init__.py 53 0 100% +build/helper/codegen_helper.py 310 50 84% +build/helper/documentation_helper.py 519 60 88% +build/helper/documentation_snippets.py 53 8 85% +build/helper/helper.py 52 11 79% +build/helper/metadata_add_all.py 434 82 81% +build/helper/metadata_filters.py 103 24 77% +build/helper/metadata_find.py 36 7 81% +build/helper/metadata_merge_dicts.py 43 9 79% +build/helper/parameter_usage_options.py 60 0 100% +------------------------------------------------------------- +TOTAL 1663 251 85% +py312-build_test: commands[7]> coverage xml -o codegen.xml +Wrote XML report to codegen.xml +py312-build_test: commands[8]> coverage html --directory=generated/htmlcov/unit_tests/codegen +Wrote HTML report to generated/htmlcov/unit_tests/codegen/index.html +py312-build_test: commands[9]> flake8 --config=./tox.ini '--per-file-ignores=build/unit_tests/*.py:F403,F405' build/ +py312-build_test: OK ✔ in 3.85 seconds +py312-codegen: commands[0]> python --version +Python 3.12.3 +py312-codegen: commands[1]> python -c 'import platform; print(platform.architecture())' +('64bit', 'ELF') +py312-codegen: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip +Requirement already satisfied: pip in ./.tox/64/py312-codegen/lib/python3.12/site-packages (26.0.1) +py312-codegen: commands[3]> make + +Making nifake + Making dir: generated/nifake + Making dir: generated/nifake/nifake + Making dir: generated/nifake/nifake/unit_tests + Making dir: generated/nifake/log + Generating: generated/nifake/nifake/_attributes.py + Generating: generated/nifake/nifake/enums.py + Generating: generated/nifake/nifake/_library.py + Generating: generated/nifake/nifake/_library_interpreter.py + Generating: generated/nifake/nifake/_library_singleton.py + Generating: generated/nifake/nifake/session.py + Generating: generated/nifake/nifake/errors.py + Generating: generated/nifake/nifake/unit_tests/_mock_helper.py + Generating: generated/nifake/nifake/unit_tests/_matchers.py + Generating: generated/nifake/nifake/__init__.py + Generating: generated/nifake/nifake/_converters.py + Generating: generated/nifake/nifake/VERSION + Generating: generated/nifake/nifake/_grpc_stub_interpreter.py + Generating: generated/nifake/nifake/grpc_session_options.py + Generating: generated/nifake/nifake/nifake_pb2.py and nifake_pb2_grpc.py + Generating: generated/nifake/nifake/nidevice_pb2.py and nidevice_pb2_grpc.py + Generating: generated/nifake/nifake/session_pb2.py and session_pb2_grpc.py + Generating: generated/nifake/nifake/_complextype.py + Copying: generated/nifake/nifake/_visatype.py + Copying: generated/nifake/nifake/custom_struct.py + Copying: generated/nifake/nifake/custom_struct_typedef.py + Copying: generated/nifake/nifake/custom_struct_nested_typedef.py + Copying: generated/nifake/README.rst + Generating: generated/nifake/setup.py + Generating: generated/nifake/tox-system_tests.ini + Copying: generated/nifake/nifake/unit_tests/test_converters.py + Copying: generated/nifake/nifake/unit_tests/test_grpc.py + Copying: generated/nifake/nifake/unit_tests/test_library_interpreter.py + Copying: generated/nifake/nifake/unit_tests/test_library_singleton.py + Copying: generated/nifake/nifake/unit_tests/test_session.py + +Making nidcpower + Making dir: generated/nidcpower + Making dir: generated/nidcpower/nidcpower + Making dir: generated/nidcpower/nidcpower/unit_tests + Making dir: generated/nidcpower/log + Making dir: generated/examples + Generating: generated/nidcpower/nidcpower/_attributes.py + Generating: generated/nidcpower/nidcpower/enums.py + Generating: generated/nidcpower/nidcpower/_library.py + Generating: generated/nidcpower/nidcpower/_library_interpreter.py + Generating: generated/nidcpower/nidcpower/_library_singleton.py + Generating: generated/nidcpower/nidcpower/session.py +Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! +Warning: "reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! + Generating: generated/nidcpower/nidcpower/errors.py + Generating: generated/nidcpower/nidcpower/unit_tests/_mock_helper.py + Generating: generated/nidcpower/nidcpower/unit_tests/_matchers.py + Generating: generated/nidcpower/nidcpower/__init__.py + Generating: generated/nidcpower/nidcpower/_converters.py + Generating: generated/nidcpower/nidcpower/VERSION + Generating: generated/nidcpower/nidcpower/_grpc_stub_interpreter.py + Generating: generated/nidcpower/nidcpower/grpc_session_options.py + Generating: generated/nidcpower/nidcpower/nidcpower_pb2.py and nidcpower_pb2_grpc.py + Generating: generated/nidcpower/nidcpower/nidevice_pb2.py and nidevice_pb2_grpc.py + Generating: generated/nidcpower/nidcpower/session_pb2.py and session_pb2_grpc.py + Copying: generated/nidcpower/nidcpower/_visatype.py + Copying: generated/nidcpower/nidcpower/lcr_load_compensation_spot.py + Copying: generated/nidcpower/nidcpower/lcr_measurement.py + Generating: docs/nidcpower/about_nidcpower.inc + Generating: docs/nidcpower/index.rst + Generating: docs/nidcpower/nidcpower.rst + Generating: docs/nidcpower/enums.rst + Generating: docs/nidcpower/examples.rst + Generating: docs/nidcpower/installation.inc + Generating: docs/nidcpower/status.inc + Generating: docs/nidcpower/class.rst +Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! +Warning: "reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! + Generating: docs/nidcpower/toc.inc + Generating: docs/nidcpower/errors.rst + Generating: docs/nidcpower/rep_caps.rst + Generating: docs/nidcpower/grpc_session_options.rst + Creating: generated/nidcpower/README.rst + Generating: generated/nidcpower/setup.py + Generating: generated/nidcpower/tox-system_tests.ini + Zipping: generated/examples/nidcpower_examples.zip + zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nidcpower_examples.zip not found or empty + adding: nidcpower_advanced_sequence.py (deflated 66%) + adding: nidcpower_constant_resistance_and_constant_power.py (deflated 73%) + adding: nidcpower_lcr_source_ac_voltage.py (deflated 71%) + adding: nidcpower_measure_record.py (deflated 59%) + adding: nidcpower_sink_dc_current_into_electronic_load.py (deflated 74%) + adding: nidcpower_source_delay_measure.py (deflated 64%) + Copying: generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py + Generating: docs/nidcpower/conf.py + Generating: docs/nidcpower/.readthedocs.yaml + +Making nidigital + Making dir: generated/nidigital + Making dir: generated/nidigital/nidigital + Making dir: generated/nidigital/nidigital/unit_tests + Making dir: generated/nidigital/log + Generating: generated/nidigital/nidigital/_attributes.py + Generating: generated/nidigital/nidigital/enums.py + Generating: generated/nidigital/nidigital/_library.py + Generating: generated/nidigital/nidigital/_library_interpreter.py + Generating: generated/nidigital/nidigital/_library_singleton.py + Generating: generated/nidigital/nidigital/session.py +Warning: "PPMU_ConfigureCurrentLevelRange" not found in function metadata. Typo? Generated code will be funky! +Warning: "PPMU_ConfigureCurrentLevelRange" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "GetPatternPinIndexeswith" not found in function metadata. Typo? Generated code will be funky! +Warning: "GetChannelName" not found in function metadata. Typo? Generated code will be funky! +Warning: "SortSiteResultsViBoolean" not found in function metadata. Typo? Generated code will be funky! + Generating: generated/nidigital/nidigital/errors.py + Generating: generated/nidigital/nidigital/unit_tests/_mock_helper.py + Generating: generated/nidigital/nidigital/unit_tests/_matchers.py + Generating: generated/nidigital/nidigital/__init__.py + Generating: generated/nidigital/nidigital/_converters.py + Generating: generated/nidigital/nidigital/VERSION + Generating: generated/nidigital/nidigital/_grpc_stub_interpreter.py + Generating: generated/nidigital/nidigital/grpc_session_options.py + Generating: generated/nidigital/nidigital/nidigitalpattern_pb2.py and nidigitalpattern_pb2_grpc.py + Generating: generated/nidigital/nidigital/nidevice_pb2.py and nidevice_pb2_grpc.py + Generating: generated/nidigital/nidigital/session_pb2.py and session_pb2_grpc.py + Copying: generated/nidigital/nidigital/_visatype.py + Copying: generated/nidigital/nidigital/history_ram_cycle_information.py + Generating: docs/nidigital/about_nidigital.inc + Generating: docs/nidigital/index.rst + Generating: docs/nidigital/nidigital.rst + Generating: docs/nidigital/enums.rst + Generating: docs/nidigital/examples.rst + Generating: docs/nidigital/installation.inc + Generating: docs/nidigital/status.inc + Generating: docs/nidigital/class.rst +Warning: "PPMU_ConfigureCurrentLevelRange" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! + Generating: docs/nidigital/toc.inc + Generating: docs/nidigital/errors.rst + Generating: docs/nidigital/rep_caps.rst + Generating: docs/nidigital/grpc_session_options.rst + Creating: generated/nidigital/README.rst + Generating: generated/nidigital/setup.py + Generating: generated/nidigital/tox-system_tests.ini + Zipping: generated/examples/nidigital_examples.zip + zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nidigital_examples.zip not found or empty + adding: burst_with_start_trigger/ (stored 0%) + adding: burst_with_start_trigger/Pattern.digipat (deflated 82%) + adding: burst_with_start_trigger/PinLevels.digilevels (deflated 54%) + adding: burst_with_start_trigger/Timing.digitiming (deflated 58%) + adding: burst_with_start_trigger/PinMap.pinmap (deflated 80%) + adding: burst_with_start_trigger/burst_with_start_trigger.digiproj (deflated 76%) + adding: burst_with_start_trigger/Specifications.specs (deflated 44%) + adding: burst_with_start_trigger/nidigital_burst_with_start_trigger.py (deflated 67%) + adding: configure_time_set_and_voltage_levels/ (stored 0%) + adding: configure_time_set_and_voltage_levels/Pattern.digipat (deflated 82%) + adding: configure_time_set_and_voltage_levels/nidigital_configure_time_set_and_voltage_levels.py (deflated 72%) + adding: configure_time_set_and_voltage_levels/configure_time_set_and_voltage_levels.digiproj (deflated 73%) + adding: configure_time_set_and_voltage_levels/PinMap.pinmap (deflated 80%) + adding: ppmu_source_and_measure/ (stored 0%) + adding: ppmu_source_and_measure/ppmu_source_and_measure.digiproj (deflated 74%) + adding: ppmu_source_and_measure/nidigital_ppmu_source_and_measure.py (deflated 77%) + adding: ppmu_source_and_measure/PinMap.pinmap (deflated 80%) + Copying: generated/nidigital/nidigital/unit_tests/test_nidigital.py + Generating: docs/nidigital/conf.py + Generating: docs/nidigital/.readthedocs.yaml + +Making nidmm + Making dir: generated/nidmm + Making dir: generated/nidmm/nidmm + Making dir: generated/nidmm/nidmm/unit_tests + Making dir: generated/nidmm/log + Generating: generated/nidmm/nidmm/_attributes.py + Generating: generated/nidmm/nidmm/enums.py + Generating: generated/nidmm/nidmm/_library.py + Generating: generated/nidmm/nidmm/_library_interpreter.py + Generating: generated/nidmm/nidmm/_library_singleton.py + Generating: generated/nidmm/nidmm/session.py +Warning: "ConfigureMeasurement" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureMeasurement" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureThermistorType" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureThermistorType" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureThermistorType" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOpenCableCompValues" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureShortCableCompValues" not found in function metadata. Typo? Generated code will be funky! + Generating: generated/nidmm/nidmm/errors.py + Generating: generated/nidmm/nidmm/unit_tests/_mock_helper.py + Generating: generated/nidmm/nidmm/unit_tests/_matchers.py + Generating: generated/nidmm/nidmm/__init__.py + Generating: generated/nidmm/nidmm/_converters.py + Generating: generated/nidmm/nidmm/VERSION + Generating: generated/nidmm/nidmm/_grpc_stub_interpreter.py + Generating: generated/nidmm/nidmm/grpc_session_options.py + Generating: generated/nidmm/nidmm/nidmm_pb2.py and nidmm_pb2_grpc.py + Generating: generated/nidmm/nidmm/nidevice_pb2.py and nidevice_pb2_grpc.py + Generating: generated/nidmm/nidmm/session_pb2.py and session_pb2_grpc.py + Copying: generated/nidmm/nidmm/_visatype.py + Generating: docs/nidmm/about_nidmm.inc + Generating: docs/nidmm/index.rst + Generating: docs/nidmm/nidmm.rst + Generating: docs/nidmm/enums.rst + Generating: docs/nidmm/examples.rst + Generating: docs/nidmm/installation.inc + Generating: docs/nidmm/status.inc + Generating: docs/nidmm/class.rst +Warning: "ConfigureThermistorType" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureThermistorType" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureThermistorType" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOpenCableCompValues" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureShortCableCompValues" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureMeasurement" not found in function metadata. Typo? Generated code will be funky! + Generating: docs/nidmm/toc.inc + Generating: docs/nidmm/errors.rst + Generating: docs/nidmm/grpc_session_options.rst + Creating: generated/nidmm/README.rst + Generating: generated/nidmm/setup.py + Generating: generated/nidmm/tox-system_tests.ini + Zipping: generated/examples/nidmm_examples.zip + zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nidmm_examples.zip not found or empty + adding: nidmm_fetch_waveform.py (deflated 59%) + adding: nidmm_measurement.py (deflated 58%) + adding: nidmm_multi_point_measurement.py (deflated 60%) + Generating: docs/nidmm/conf.py + Generating: docs/nidmm/.readthedocs.yaml + +Making nifgen + Making dir: generated/nifgen + Making dir: generated/nifgen/nifgen + Making dir: generated/nifgen/nifgen/unit_tests + Making dir: generated/nifgen/log + Generating: generated/nifgen/nifgen/_attributes.py + Generating: generated/nifgen/nifgen/enums.py + Generating: generated/nifgen/nifgen/_library.py + Generating: generated/nifgen/nifgen/_library_interpreter.py + Generating: generated/nifgen/nifgen/_library_singleton.py + Generating: generated/nifgen/nifgen/session.py +Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! +Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureTriggerMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureTriggerMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! +Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! +Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! +Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! +Warning: "RouteSignalOut" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! +Warning: "RouteSignalOut" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! + Generating: generated/nifgen/nifgen/errors.py + Generating: generated/nifgen/nifgen/unit_tests/_mock_helper.py + Generating: generated/nifgen/nifgen/unit_tests/_matchers.py + Generating: generated/nifgen/nifgen/__init__.py + Generating: generated/nifgen/nifgen/_converters.py + Generating: generated/nifgen/nifgen/VERSION + Generating: generated/nifgen/nifgen/_grpc_stub_interpreter.py + Generating: generated/nifgen/nifgen/grpc_session_options.py + Generating: generated/nifgen/nifgen/nifgen_pb2.py and nifgen_pb2_grpc.py + Generating: generated/nifgen/nifgen/nidevice_pb2.py and nidevice_pb2_grpc.py + Generating: generated/nifgen/nifgen/session_pb2.py and session_pb2_grpc.py + Copying: generated/nifgen/nifgen/_visatype.py + Generating: docs/nifgen/about_nifgen.inc + Generating: docs/nifgen/index.rst + Generating: docs/nifgen/nifgen.rst + Generating: docs/nifgen/enums.rst + Generating: docs/nifgen/examples.rst + Generating: docs/nifgen/installation.inc + Generating: docs/nifgen/status.inc + Generating: docs/nifgen/class.rst +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! +Warning: "RouteSignalOut" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureTriggerMode" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! +Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! + Generating: docs/nifgen/toc.inc + Generating: docs/nifgen/errors.rst + Generating: docs/nifgen/rep_caps.rst + Generating: docs/nifgen/grpc_session_options.rst + Creating: generated/nifgen/README.rst + Generating: generated/nifgen/setup.py + Generating: generated/nifgen/tox-system_tests.ini + Zipping: generated/examples/nifgen_examples.zip + zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nifgen_examples.zip not found or empty + adding: nifgen_arb_waveform.py (deflated 61%) + adding: nifgen_script.py (deflated 66%) + adding: nifgen_standard_function.py (deflated 60%) + adding: nifgen_trigger.py (deflated 62%) + Generating: docs/nifgen/conf.py + Generating: docs/nifgen/.readthedocs.yaml + +Making nirfsg + Making dir: generated/nirfsg + Making dir: generated/nirfsg/nirfsg + Making dir: generated/nirfsg/nirfsg/unit_tests + Making dir: generated/nirfsg/log + Generating: generated/nirfsg/nirfsg/_attributes.py + Generating: generated/nirfsg/nirfsg/enums.py + Generating: generated/nirfsg/nirfsg/_library.py + Generating: generated/nirfsg/nirfsg/_library_interpreter.py + Generating: generated/nirfsg/nirfsg/_library_singleton.py + Generating: generated/nirfsg/nirfsg/session.py +Warning: "Init" not found in function metadata. Typo? Generated code will be funky! +Warning: "Init" not found in function metadata. Typo? Generated code will be funky! +Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! +Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! +Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! +Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureRf" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureRf" not found in function metadata. Typo? Generated code will be funky! +Warning: "Init" not found in function metadata. Typo? Generated code will be funky! +Warning: "Init" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureRf" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureRf" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "ReadAndDownloadWaveformFromFileTdms" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "ReadAndDownloadWaveformFromFileTdms" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! +Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! + Generating: generated/nirfsg/nirfsg/errors.py + Generating: generated/nirfsg/nirfsg/unit_tests/_mock_helper.py + Generating: generated/nirfsg/nirfsg/unit_tests/_matchers.py + Generating: generated/nirfsg/nirfsg/__init__.py + Generating: generated/nirfsg/nirfsg/_converters.py + Generating: generated/nirfsg/nirfsg/VERSION + Generating: generated/nirfsg/nirfsg/_grpc_stub_interpreter.py + Generating: generated/nirfsg/nirfsg/grpc_session_options.py + Generating: generated/nirfsg/nirfsg/nirfsg_pb2.py and nirfsg_pb2_grpc.py + Generating: generated/nirfsg/nirfsg/nidevice_pb2.py and nidevice_pb2_grpc.py + Generating: generated/nirfsg/nirfsg/session_pb2.py and session_pb2_grpc.py + Generating: generated/nirfsg/nirfsg/_complextype.py + Copying: generated/nirfsg/nirfsg/_visatype.py + Generating: docs/nirfsg/about_nirfsg.inc + Generating: docs/nirfsg/index.rst + Generating: docs/nirfsg/nirfsg.rst + Generating: docs/nirfsg/enums.rst + Generating: docs/nirfsg/examples.rst + Generating: docs/nirfsg/installation.inc + Generating: docs/nirfsg/status.inc + Generating: docs/nirfsg/class.rst +Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! +Warning: "ClearError" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! +Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! +Warning: "Init" not found in function metadata. Typo? Generated code will be funky! +Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! +Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureRf" not found in function metadata. Typo? Generated code will be funky! +Warning: "Init" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureRf" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "ReadAndDownloadWaveformFromFileTdms" not found in function metadata. Typo? Generated code will be funky! +Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! + Generating: docs/nirfsg/toc.inc + Generating: docs/nirfsg/errors.rst + Generating: docs/nirfsg/rep_caps.rst + Generating: docs/nirfsg/grpc_session_options.rst + Creating: generated/nirfsg/README.rst + Generating: generated/nirfsg/setup.py + Generating: generated/nirfsg/tox-system_tests.ini + Zipping: generated/examples/nirfsg_examples.zip + zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nirfsg_examples.zip not found or empty + adding: nirfsg_arb_waveform.py (deflated 59%) + adding: nirfsg_cw.py (deflated 59%) + adding: nirfsg_script.py (deflated 59%) + Generating: docs/nirfsg/conf.py + Generating: docs/nirfsg/.readthedocs.yaml + +Making niscope + Making dir: generated/niscope + Making dir: generated/niscope/niscope + Making dir: generated/niscope/niscope/unit_tests + Making dir: generated/niscope/log + Generating: generated/niscope/niscope/_attributes.py + Generating: generated/niscope/niscope/enums.py +Warning: "SendSoftwareTrigger" not found in function metadata. Typo? Generated code will be funky! +Warning: "SendSoftwareTrigger" not found in function metadata. Typo? Generated code will be funky! + Generating: generated/niscope/niscope/_library.py + Generating: generated/niscope/niscope/_library_interpreter.py + Generating: generated/niscope/niscope/_library_singleton.py + Generating: generated/niscope/niscope/session.py +Warning: "CableSenseSignalStart" not found in function metadata. Typo? Generated code will be funky! +Warning: "CableSenseSignalStart" not found in function metadata. Typo? Generated code will be funky! +Warning: "Init" not found in function metadata. Typo? Generated code will be funky! +Warning: "Init" not found in function metadata. Typo? Generated code will be funky! +Warning: "Init" not found in function metadata. Typo? Generated code will be funky! +Warning: "Init" not found in function metadata. Typo? Generated code will be funky! +Warning: "FetchWaveformMeasurementArray" not found in function metadata. Typo? Generated code will be funky! +Warning: "FetchWaveformMeasurementArray" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureAcquisition" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureAcquisition" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureTriggerSource" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureTriggerSource" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureTriggerSource" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureTriggerSource" not found in function metadata. Typo? Generated code will be funky! +Warning: "CalEnd" not found in function metadata. Typo? Generated code will be funky! +Warning: "ActualNumwfms" not found in function metadata. Typo? Generated code will be funky! +Warning: "ActualNumwfms" not found in function metadata. Typo? Generated code will be funky! +Warning: "ActualNumwfms" not found in function metadata. Typo? Generated code will be funky! +Warning: "ActualNumwfms" not found in function metadata. Typo? Generated code will be funky! +Warning: "ActualNumwfms" not found in function metadata. Typo? Generated code will be funky! +Warning: "ActualNumwfms" not found in function metadata. Typo? Generated code will be funky! +Warning: "ActualRecordLength" not found in function metadata. Typo? Generated code will be funky! +Warning: "FetchMeasurement" not found in function metadata. Typo? Generated code will be funky! + Generating: generated/niscope/niscope/errors.py + Generating: generated/niscope/niscope/unit_tests/_mock_helper.py + Generating: generated/niscope/niscope/unit_tests/_matchers.py + Generating: generated/niscope/niscope/__init__.py + Generating: generated/niscope/niscope/_converters.py + Generating: generated/niscope/niscope/VERSION + Generating: generated/niscope/niscope/_grpc_stub_interpreter.py + Generating: generated/niscope/niscope/grpc_session_options.py + Generating: generated/niscope/niscope/niscope_pb2.py and niscope_pb2_grpc.py + Generating: generated/niscope/niscope/nidevice_pb2.py and nidevice_pb2_grpc.py + Generating: generated/niscope/niscope/session_pb2.py and session_pb2_grpc.py + Copying: generated/niscope/niscope/_visatype.py + Copying: generated/niscope/niscope/waveform_info.py + Copying: generated/niscope/niscope/measurement_stats.py + Generating: docs/niscope/about_niscope.inc + Generating: docs/niscope/index.rst + Generating: docs/niscope/niscope.rst + Generating: docs/niscope/enums.rst +Warning: "SendSoftwareTrigger" not found in function metadata. Typo? Generated code will be funky! + Generating: docs/niscope/examples.rst + Generating: docs/niscope/installation.inc + Generating: docs/niscope/status.inc + Generating: docs/niscope/class.rst +Warning: "ActualRecordLength" not found in function metadata. Typo? Generated code will be funky! +Warning: "CalEnd" not found in function metadata. Typo? Generated code will be funky! +Warning: "CableSenseSignalStart" not found in function metadata. Typo? Generated code will be funky! +Warning: "Init" not found in function metadata. Typo? Generated code will be funky! +Warning: "Init" not found in function metadata. Typo? Generated code will be funky! +Warning: "FetchWaveformMeasurementArray" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureAcquisition" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureTriggerSource" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureTriggerSource" not found in function metadata. Typo? Generated code will be funky! + Generating: docs/niscope/toc.inc + Generating: docs/niscope/errors.rst + Generating: docs/niscope/rep_caps.rst + Generating: docs/niscope/grpc_session_options.rst + Creating: generated/niscope/README.rst + Generating: generated/niscope/setup.py + Generating: generated/niscope/tox-system_tests.ini + Zipping: generated/examples/niscope_examples.zip + zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/niscope_examples.zip not found or empty + adding: niscope_fetch.py (deflated 56%) + adding: niscope_fetch_forever.py (deflated 59%) + adding: niscope_fetch_into.py (deflated 56%) + adding: niscope_read.py (deflated 56%) + Copying: generated/niscope/niscope/unit_tests/test_niscope.py + Generating: docs/niscope/conf.py + Generating: docs/niscope/.readthedocs.yaml + +Making niswitch + Making dir: generated/niswitch + Making dir: generated/niswitch/niswitch + Making dir: generated/niswitch/niswitch/unit_tests + Making dir: generated/niswitch/log + Generating: generated/niswitch/niswitch/_attributes.py + Generating: generated/niswitch/niswitch/enums.py +Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! +Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! +Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! +Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! +Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! +Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! + Generating: generated/niswitch/niswitch/_library.py + Generating: generated/niswitch/niswitch/_library_interpreter.py + Generating: generated/niswitch/niswitch/_library_singleton.py + Generating: generated/niswitch/niswitch/session.py +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureScanTrigger" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! + Generating: generated/niswitch/niswitch/errors.py + Generating: generated/niswitch/niswitch/unit_tests/_mock_helper.py + Generating: generated/niswitch/niswitch/unit_tests/_matchers.py + Generating: generated/niswitch/niswitch/__init__.py + Generating: generated/niswitch/niswitch/_converters.py + Generating: generated/niswitch/niswitch/VERSION + Generating: generated/niswitch/niswitch/_grpc_stub_interpreter.py + Generating: generated/niswitch/niswitch/grpc_session_options.py + Generating: generated/niswitch/niswitch/niswitch_pb2.py and niswitch_pb2_grpc.py + Generating: generated/niswitch/niswitch/nidevice_pb2.py and nidevice_pb2_grpc.py + Generating: generated/niswitch/niswitch/session_pb2.py and session_pb2_grpc.py + Copying: generated/niswitch/niswitch/_visatype.py + Generating: docs/niswitch/about_niswitch.inc + Generating: docs/niswitch/index.rst + Generating: docs/niswitch/niswitch.rst + Generating: docs/niswitch/enums.rst +Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! +Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! +Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! + Generating: docs/niswitch/examples.rst + Generating: docs/niswitch/installation.inc + Generating: docs/niswitch/status.inc + Generating: docs/niswitch/class.rst +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureScanTrigger" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! +Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! + Generating: docs/niswitch/toc.inc + Generating: docs/niswitch/errors.rst + Generating: docs/niswitch/rep_caps.rst + Generating: docs/niswitch/grpc_session_options.rst + Creating: generated/niswitch/README.rst + Generating: generated/niswitch/setup.py + Generating: generated/niswitch/tox-system_tests.ini + Zipping: generated/examples/niswitch_examples.zip + zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/niswitch_examples.zip not found or empty + adding: niswitch_connect_channels.py (deflated 62%) + adding: niswitch_get_device_info.py (deflated 69%) + adding: niswitch_relay_control.py (deflated 59%) + Generating: docs/niswitch/conf.py + Generating: docs/niswitch/.readthedocs.yaml + +Making nise + Making dir: generated/nise + Making dir: generated/nise/nise + Making dir: generated/nise/nise/unit_tests + Making dir: generated/nise/log + Generating: generated/nise/nise/enums.py + Generating: generated/nise/nise/_library.py + Generating: generated/nise/nise/_library_interpreter.py + Generating: generated/nise/nise/_library_singleton.py + Generating: generated/nise/nise/session.py + Generating: generated/nise/nise/errors.py + Generating: generated/nise/nise/unit_tests/_mock_helper.py + Generating: generated/nise/nise/unit_tests/_matchers.py + Generating: generated/nise/nise/__init__.py + Generating: generated/nise/nise/_converters.py + Generating: generated/nise/nise/VERSION + Copying: generated/nise/nise/_visatype.py + Generating: docs/nise/about_nise.inc + Generating: docs/nise/index.rst + Generating: docs/nise/nise.rst + Generating: docs/nise/enums.rst + Generating: docs/nise/examples.rst + Generating: docs/nise/installation.inc + Generating: docs/nise/status.inc + Generating: docs/nise/class.rst + Generating: docs/nise/toc.inc + Generating: docs/nise/errors.rst + Creating: generated/nise/README.rst + Generating: generated/nise/setup.py + Generating: generated/nise/tox-system_tests.ini + Zipping: generated/examples/nise_examples.zip + zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nise_examples.zip not found or empty + adding: nise_basic_example.py (deflated 56%) + Generating: docs/nise/conf.py + Generating: docs/nise/.readthedocs.yaml + +Making nimodinst + Making dir: generated/nimodinst + Making dir: generated/nimodinst/nimodinst + Making dir: generated/nimodinst/nimodinst/unit_tests + Making dir: generated/nimodinst/log + Generating: generated/nimodinst/nimodinst/_library.py + Generating: generated/nimodinst/nimodinst/_library_interpreter.py + Generating: generated/nimodinst/nimodinst/_library_singleton.py + Generating: generated/nimodinst/nimodinst/session.py + Generating: generated/nimodinst/nimodinst/errors.py + Generating: generated/nimodinst/nimodinst/unit_tests/_mock_helper.py + Generating: generated/nimodinst/nimodinst/unit_tests/_matchers.py + Generating: generated/nimodinst/nimodinst/__init__.py + Generating: generated/nimodinst/nimodinst/_converters.py + Generating: generated/nimodinst/nimodinst/VERSION + Copying: generated/nimodinst/nimodinst/_visatype.py + Generating: docs/nimodinst/about_nimodinst.inc + Generating: docs/nimodinst/index.rst + Generating: docs/nimodinst/nimodinst.rst + Generating: docs/nimodinst/examples.rst + Generating: docs/nimodinst/installation.inc + Generating: docs/nimodinst/status.inc + Generating: docs/nimodinst/class.rst + Generating: docs/nimodinst/toc.inc + Generating: docs/nimodinst/errors.rst + Creating: generated/nimodinst/README.rst + Generating: generated/nimodinst/setup.py + Generating: generated/nimodinst/tox-system_tests.ini + Zipping: generated/examples/nimodinst_examples.zip + zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nimodinst_examples.zip not found or empty + adding: nimodinst_all_devices.py (deflated 47%) + Copying: generated/nimodinst/nimodinst/unit_tests/test_modinst.py + Generating: docs/nimodinst/conf.py + Generating: docs/nimodinst/.readthedocs.yaml + +Making nitclk + Making dir: generated/nitclk + Making dir: generated/nitclk/nitclk + Making dir: generated/nitclk/nitclk/unit_tests + Making dir: generated/nitclk/log + Generating: generated/nitclk/nitclk/_attributes.py + Generating: generated/nitclk/nitclk/_library.py + Generating: generated/nitclk/nitclk/_library_interpreter.py + Generating: generated/nitclk/nitclk/_library_singleton.py + Generating: generated/nitclk/nitclk/session.py + Generating: generated/nitclk/nitclk/errors.py + Generating: generated/nitclk/nitclk/unit_tests/_mock_helper.py + Generating: generated/nitclk/nitclk/unit_tests/_matchers.py + Generating: generated/nitclk/nitclk/__init__.py + Generating: generated/nitclk/nitclk/_converters.py + Generating: generated/nitclk/nitclk/VERSION + Copying: generated/nitclk/nitclk/_visatype.py + Generating: docs/nitclk/about_nitclk.inc + Generating: docs/nitclk/index.rst + Generating: docs/nitclk/nitclk.rst + Generating: docs/nitclk/examples.rst + Generating: docs/nitclk/installation.inc + Generating: docs/nitclk/status.inc + Generating: docs/nitclk/class.rst + Generating: docs/nitclk/toc.inc + Generating: docs/nitclk/errors.rst + Creating: generated/nitclk/README.rst + Generating: generated/nitclk/setup.py + Generating: generated/nitclk/tox-system_tests.ini + Zipping: generated/examples/nitclk_examples.zip + zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nitclk_examples.zip not found or empty + adding: nitclk_niscope_synchronize_with_trigger.py (deflated 59%) + Copying: generated/nitclk/nitclk/unit_tests/test_nitclk.py + Generating: docs/nitclk/conf.py + Generating: docs/nitclk/.readthedocs.yaml + +Making Global Files + Creating Root: README.rst +py312-codegen: OK ✔ in 58.51 seconds +py312-installers: commands[0]> python --version +Python 3.12.3 +py312-installers: commands[1]> python -c 'import platform; print(platform.architecture())' +('64bit', 'ELF') +py312-installers: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip +Requirement already satisfied: pip in ./.tox/64/py312-installers/lib/python3.12/site-packages (26.0.1) +py312-installers: commands[3]> make installers + +Making nifake installers +Creating sdist and wheel: generated/nifake/dist + +Making nidcpower installers +Creating sdist and wheel: generated/nidcpower/dist + +Making nidigital installers +Creating sdist and wheel: generated/nidigital/dist + +Making nidmm installers +Creating sdist and wheel: generated/nidmm/dist + +Making nifgen installers +Creating sdist and wheel: generated/nifgen/dist + +Making nirfsg installers +Creating sdist and wheel: generated/nirfsg/dist + +Making niscope installers +Creating sdist and wheel: generated/niscope/dist + +Making niswitch installers +Creating sdist and wheel: generated/niswitch/dist + +Making nise installers +Creating sdist and wheel: generated/nise/dist + +Making nimodinst installers +Creating sdist and wheel: generated/nimodinst/dist + +Making nitclk installers +Creating sdist and wheel: generated/nitclk/dist +py312-installers: OK ✔ in 30.76 seconds +py312-flake8: commands[0]> python --version +Python 3.12.3 +py312-flake8: commands[1]> python -c 'import platform; print(platform.architecture())' +('64bit', 'ELF') +py312-flake8: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip +Requirement already satisfied: pip in ./.tox/64/py312-flake8/lib/python3.12/site-packages (26.0.1) +py312-flake8: commands[3]> flake8 --config=./tox.ini generated/ +py312-flake8: commands[4]> flake8 --config=./tox.ini tools/ +py312-flake8: commands[5]> flake8 --config=./tox.ini src/nidcpower/system_tests/ src/nidcpower/examples/ +py312-flake8: commands[6]> flake8 --config=./tox.ini src/nidigital/system_tests/ src/nidigital/examples/ +py312-flake8: commands[7]> flake8 --config=./tox.ini src/nidmm/system_tests/ src/nidmm/examples/ +py312-flake8: commands[8]> flake8 --config=./tox.ini src/nifgen/system_tests/ src/nifgen/examples/ +py312-flake8: commands[9]> flake8 --config=./tox.ini src/nimodinst/system_tests/ src/nimodinst/examples/ +py312-flake8: commands[10]> flake8 --config=./tox.ini src/nirfsg/system_tests/ src/nirfsg/examples/ +py312-flake8: commands[11]> flake8 --config=./tox.ini src/niscope/system_tests/ src/niscope/examples/ +py312-flake8: commands[12]> flake8 --config=./tox.ini src/nise/system_tests/ src/nise/examples/ +py312-flake8: commands[13]> flake8 --config=./tox.ini src/niswitch/system_tests/ src/niswitch/examples/ +py312-flake8: commands[14]> flake8 --config=./tox.ini src/nitclk/system_tests/ src/nitclk/examples/ +py312-flake8: OK ✔ in 4.4 seconds +py312-docs: commands[0] /home/rahur/nimi-python-rahur/nimi-python/docs> python --version +Python 3.12.3 +py312-docs: commands[1] /home/rahur/nimi-python-rahur/nimi-python/docs> python -c 'import platform; print(platform.architecture())' +('64bit', 'ELF') +py312-docs: commands[2] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nidcpower ../generated/docs/nidcpower/html +Running Sphinx v9.1.0 +loading translations [en]... done +making output directory... done +Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. +loading pickled environment... failed: source directory has changed +done +building [mo]: targets for 0 po files that are out of date +writing output... +building [html]: targets for 8 source files that are out of date +updating environment: [new config] 8 added, 0 changed, 0 removed +reading sources... [ 12%] class +reading sources... [ 25%] enums +reading sources... [ 38%] errors +reading sources... [ 50%] examples +reading sources... [ 62%] grpc_session_options +reading sources... [ 75%] index +reading sources... [ 88%] nidcpower +reading sources... [100%] rep_caps + +looking for now-outdated files... none found +pickling environment... done +checking consistency... done +preparing documents... done +copying assets... +copying static files... +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidcpower/html/_static/documentation_options.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidcpower/html/_static/language_data.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidcpower/html/_static/basic.css +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidcpower/html/_static/js/versions.js +copying static files: done +copying extra files... +copying extra files: done +copying assets: done +writing output... [ 12%] class +writing output... [ 25%] enums +writing output... [ 38%] errors +writing output... [ 50%] examples +writing output... [ 62%] grpc_session_options +writing output... [ 75%] index +writing output... [ 88%] nidcpower +writing output... [100%] rep_caps + +generating indices... genindex py-modindex done +highlighting module code... +writing additional pages... search done +dumping search index in English (code: en)... done +dumping object inventory... done +build succeeded. + +The HTML pages are in ../generated/docs/nidcpower/html. +py312-docs: commands[3] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nidigital ../generated/docs/nidigital/html +Running Sphinx v9.1.0 +loading translations [en]... done +making output directory... done +Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. +loading pickled environment... failed: source directory has changed +done +building [mo]: targets for 0 po files that are out of date +writing output... +building [html]: targets for 8 source files that are out of date +updating environment: [new config] 8 added, 0 changed, 0 removed +reading sources... [ 12%] class +reading sources... [ 25%] enums +reading sources... [ 38%] errors +reading sources... [ 50%] examples +reading sources... [ 62%] grpc_session_options +reading sources... [ 75%] index +reading sources... [ 88%] nidigital +reading sources... [100%] rep_caps + +looking for now-outdated files... none found +pickling environment... done +checking consistency... done +preparing documents... done +copying assets... +copying static files... +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidigital/html/_static/documentation_options.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidigital/html/_static/language_data.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidigital/html/_static/basic.css +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidigital/html/_static/js/versions.js +copying static files: done +copying extra files... +copying extra files: done +copying assets: done +writing output... [ 12%] class +writing output... [ 25%] enums +writing output... [ 38%] errors +writing output... [ 50%] examples +writing output... [ 62%] grpc_session_options +writing output... [ 75%] index +writing output... [ 88%] nidigital +writing output... [100%] rep_caps + +generating indices... genindex py-modindex done +highlighting module code... +writing additional pages... search done +dumping search index in English (code: en)... done +dumping object inventory... done +build succeeded, 3 warnings. + +The HTML pages are in ../generated/docs/nidigital/html. +py312-docs: commands[4] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nidmm ../generated/docs/nidmm/html +Running Sphinx v9.1.0 +loading translations [en]... done +making output directory... done +Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. +loading pickled environment... failed: source directory has changed +done +building [mo]: targets for 0 po files that are out of date +writing output... +building [html]: targets for 7 source files that are out of date +updating environment: [new config] 7 added, 0 changed, 0 removed +reading sources... [ 14%] class +reading sources... [ 29%] enums +reading sources... [ 43%] errors +reading sources... [ 57%] examples +reading sources... [ 71%] grpc_session_options +reading sources... [ 86%] index +reading sources... [100%] nidmm + +looking for now-outdated files... none found +pickling environment... done +checking consistency... done +preparing documents... done +copying assets... +copying static files... +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidmm/html/_static/documentation_options.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidmm/html/_static/language_data.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidmm/html/_static/basic.css +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidmm/html/_static/js/versions.js +copying static files: done +copying extra files... +copying extra files: done +copying assets: done +writing output... [ 14%] class +writing output... [ 29%] enums +writing output... [ 43%] errors +writing output... [ 57%] examples +writing output... [ 71%] grpc_session_options +writing output... [ 86%] index +writing output... [100%] nidmm + +generating indices... genindex py-modindex done +highlighting module code... +writing additional pages... search done +dumping search index in English (code: en)... done +dumping object inventory... done +build succeeded. + +The HTML pages are in ../generated/docs/nidmm/html. +py312-docs: commands[5] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nifgen ../generated/docs/nifgen/html +Running Sphinx v9.1.0 +loading translations [en]... done +making output directory... done +Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. +loading pickled environment... failed: source directory has changed +done +building [mo]: targets for 0 po files that are out of date +writing output... +building [html]: targets for 8 source files that are out of date +updating environment: [new config] 8 added, 0 changed, 0 removed +reading sources... [ 12%] class +reading sources... [ 25%] enums +reading sources... [ 38%] errors +reading sources... [ 50%] examples +reading sources... [ 62%] grpc_session_options +reading sources... [ 75%] index +reading sources... [ 88%] nifgen +reading sources... [100%] rep_caps + +looking for now-outdated files... none found +pickling environment... done +checking consistency... done +preparing documents... done +copying assets... +copying static files... +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nifgen/html/_static/documentation_options.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nifgen/html/_static/language_data.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nifgen/html/_static/basic.css +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nifgen/html/_static/js/versions.js +copying static files: done +copying extra files... +copying extra files: done +copying assets: done +writing output... [ 12%] class +writing output... [ 25%] enums +writing output... [ 38%] errors +writing output... [ 50%] examples +writing output... [ 62%] grpc_session_options +writing output... [ 75%] index +writing output... [ 88%] nifgen +writing output... [100%] rep_caps + +generating indices... genindex py-modindex done +highlighting module code... +writing additional pages... search done +dumping search index in English (code: en)... done +dumping object inventory... done +build succeeded. + +The HTML pages are in ../generated/docs/nifgen/html. +py312-docs: commands[6] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nimodinst ../generated/docs/nimodinst/html +Running Sphinx v9.1.0 +loading translations [en]... done +making output directory... done +Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. +loading pickled environment... failed: source directory has changed +done +building [mo]: targets for 0 po files that are out of date +writing output... +building [html]: targets for 5 source files that are out of date +updating environment: [new config] 5 added, 0 changed, 0 removed +reading sources... [ 20%] class +reading sources... [ 40%] errors +reading sources... [ 60%] examples +reading sources... [ 80%] index +reading sources... [100%] nimodinst + +looking for now-outdated files... none found +pickling environment... done +checking consistency... done +preparing documents... done +copying assets... +copying static files... +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nimodinst/html/_static/documentation_options.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nimodinst/html/_static/language_data.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nimodinst/html/_static/basic.css +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nimodinst/html/_static/js/versions.js +copying static files: done +copying extra files... +copying extra files: done +copying assets: done +writing output... [ 20%] class +writing output... [ 40%] errors +writing output... [ 60%] examples +writing output... [ 80%] index +writing output... [100%] nimodinst + +generating indices... genindex py-modindex done +highlighting module code... +writing additional pages... search done +dumping search index in English (code: en)... done +dumping object inventory... done +build succeeded. + +The HTML pages are in ../generated/docs/nimodinst/html. +py312-docs: commands[7] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nirfsg ../generated/docs/nirfsg/html +Running Sphinx v9.1.0 +loading translations [en]... done +making output directory... done +Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. +loading pickled environment... failed: source directory has changed +done +building [mo]: targets for 0 po files that are out of date +writing output... +building [html]: targets for 8 source files that are out of date +updating environment: [new config] 8 added, 0 changed, 0 removed +reading sources... [ 12%] class +reading sources... [ 25%] enums +reading sources... [ 38%] errors +reading sources... [ 50%] examples +reading sources... [ 62%] grpc_session_options +reading sources... [ 75%] index +reading sources... [ 88%] nirfsg +reading sources... [100%] rep_caps + +looking for now-outdated files... none found +pickling environment... done +checking consistency... done +preparing documents... done +copying assets... +copying static files... +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nirfsg/html/_static/documentation_options.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nirfsg/html/_static/language_data.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nirfsg/html/_static/basic.css +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nirfsg/html/_static/js/versions.js +copying static files: done +copying extra files... +copying extra files: done +copying assets: done +writing output... [ 12%] class +writing output... [ 25%] enums +writing output... [ 38%] errors +writing output... [ 50%] examples +writing output... [ 62%] grpc_session_options +writing output... [ 75%] index +writing output... [ 88%] nirfsg +writing output... [100%] rep_caps + +generating indices... genindex py-modindex done +highlighting module code... +writing additional pages... search done +dumping search index in English (code: en)... done +dumping object inventory... done +build succeeded, 1 warning. + +The HTML pages are in ../generated/docs/nirfsg/html. +py312-docs: commands[8] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./niscope ../generated/docs/niscope/html +Running Sphinx v9.1.0 +loading translations [en]... done +making output directory... done +Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. +loading pickled environment... failed: source directory has changed +done +building [mo]: targets for 0 po files that are out of date +writing output... +building [html]: targets for 8 source files that are out of date +updating environment: [new config] 8 added, 0 changed, 0 removed +reading sources... [ 12%] class +reading sources... [ 25%] enums +reading sources... [ 38%] errors +reading sources... [ 50%] examples +reading sources... [ 62%] grpc_session_options +reading sources... [ 75%] index +reading sources... [ 88%] niscope +reading sources... [100%] rep_caps + +looking for now-outdated files... none found +pickling environment... done +checking consistency... done +preparing documents... done +copying assets... +copying static files... +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niscope/html/_static/documentation_options.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niscope/html/_static/language_data.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niscope/html/_static/basic.css +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niscope/html/_static/js/versions.js +copying static files: done +copying extra files... +copying extra files: done +copying assets: done +writing output... [ 12%] class +writing output... [ 25%] enums +writing output... [ 38%] errors +writing output... [ 50%] examples +writing output... [ 62%] grpc_session_options +writing output... [ 75%] index +writing output... [ 88%] niscope +writing output... [100%] rep_caps + +generating indices... genindex py-modindex done +highlighting module code... +writing additional pages... search done +dumping search index in English (code: en)... done +dumping object inventory... done +build succeeded, 2 warnings. + +The HTML pages are in ../generated/docs/niscope/html. +py312-docs: commands[9] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nise ../generated/docs/nise/html +Running Sphinx v9.1.0 +loading translations [en]... done +making output directory... done +Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. +loading pickled environment... failed: source directory has changed +done +building [mo]: targets for 0 po files that are out of date +writing output... +building [html]: targets for 6 source files that are out of date +updating environment: [new config] 6 added, 0 changed, 0 removed +reading sources... [ 17%] class +reading sources... [ 33%] enums +reading sources... [ 50%] errors +reading sources... [ 67%] examples +reading sources... [ 83%] index +reading sources... [100%] nise + +looking for now-outdated files... none found +pickling environment... done +checking consistency... done +preparing documents... done +copying assets... +copying static files... +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nise/html/_static/documentation_options.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nise/html/_static/language_data.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nise/html/_static/basic.css +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nise/html/_static/js/versions.js +copying static files: done +copying extra files... +copying extra files: done +copying assets: done +writing output... [ 17%] class +writing output... [ 33%] enums +writing output... [ 50%] errors +writing output... [ 67%] examples +writing output... [ 83%] index +writing output... [100%] nise + +generating indices... genindex py-modindex done +highlighting module code... +writing additional pages... search done +dumping search index in English (code: en)... done +dumping object inventory... done +build succeeded. + +The HTML pages are in ../generated/docs/nise/html. +py312-docs: commands[10] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./niswitch ../generated/docs/niswitch/html +Running Sphinx v9.1.0 +loading translations [en]... done +making output directory... done +Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. +loading pickled environment... failed: source directory has changed +done +building [mo]: targets for 0 po files that are out of date +writing output... +building [html]: targets for 8 source files that are out of date +updating environment: [new config] 8 added, 0 changed, 0 removed +reading sources... [ 12%] class +reading sources... [ 25%] enums +reading sources... [ 38%] errors +reading sources... [ 50%] examples +reading sources... [ 62%] grpc_session_options +reading sources... [ 75%] index +reading sources... [ 88%] niswitch +reading sources... [100%] rep_caps + +looking for now-outdated files... none found +pickling environment... done +checking consistency... done +preparing documents... done +copying assets... +copying static files... +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niswitch/html/_static/documentation_options.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niswitch/html/_static/language_data.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niswitch/html/_static/basic.css +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niswitch/html/_static/js/versions.js +copying static files: done +copying extra files... +copying extra files: done +copying assets: done +writing output... [ 12%] class +writing output... [ 25%] enums +writing output... [ 38%] errors +writing output... [ 50%] examples +writing output... [ 62%] grpc_session_options +writing output... [ 75%] index +writing output... [ 88%] niswitch +writing output... [100%] rep_caps + +generating indices... genindex py-modindex done +highlighting module code... +writing additional pages... search done +dumping search index in English (code: en)... done +dumping object inventory... done +build succeeded. + +The HTML pages are in ../generated/docs/niswitch/html. +py312-docs: commands[11] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nitclk ../generated/docs/nitclk/html +Running Sphinx v9.1.0 +loading translations [en]... done +making output directory... done +Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. +loading pickled environment... failed: source directory has changed +done +building [mo]: targets for 0 po files that are out of date +writing output... +building [html]: targets for 5 source files that are out of date +updating environment: [new config] 5 added, 0 changed, 0 removed +reading sources... [ 20%] class +reading sources... [ 40%] errors +reading sources... [ 60%] examples +reading sources... [ 80%] index +reading sources... [100%] nitclk + +looking for now-outdated files... none found +pickling environment... done +checking consistency... done +preparing documents... done +copying assets... +copying static files... +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nitclk/html/_static/documentation_options.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nitclk/html/_static/language_data.js +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nitclk/html/_static/basic.css +Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nitclk/html/_static/js/versions.js +copying static files: done +copying extra files... +copying extra files: done +copying assets: done +writing output... [ 20%] class +writing output... [ 40%] errors +writing output... [ 60%] examples +writing output... [ 80%] index +writing output... [100%] nitclk + +generating indices... genindex py-modindex done +highlighting module code... +writing additional pages... search done +dumping search index in English (code: en)... done +dumping object inventory... done +build succeeded. + +The HTML pages are in ../generated/docs/nitclk/html. +py312-docs: OK ✔ in 20.52 seconds +py310-test: skipped because could not find python interpreter with spec(s): py310 +py310-test: SKIP ⚠ in 0.73 seconds +py311-test: skipped because could not find python interpreter with spec(s): py311 +py311-test: SKIP ⚠ in 0.7 seconds +py312-test: commands[0]> python --version +Python 3.12.3 +py312-test: commands[1]> python -c 'import platform; print(platform.architecture())' +('64bit', 'ELF') +py312-test: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip +Requirement already satisfied: pip in ./.tox/64/py312-test/lib/python3.12/site-packages (26.0.1) +py312-test: commands[3]> python tools/install_local_wheel.py --driver nitclk +Processing ./generated/nitclk/dist/nitclk-1.4.10.dev0-py3-none-any.whl +Requirement already satisfied: hightime>=0.2.0 in ./.tox/64/py312-test/lib/python3.12/site-packages (from nitclk==1.4.10.dev0) (1.0.0) +nitclk is already installed with the same version as the provided wheel. Use --force-reinstall to force an installation of the wheel. +py312-test: commands[4]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nifake -m pytest generated/nifake/nifake -s +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-test/bin/python +cachedir: .tox/64/py312-test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +plugins: timeout-2.4.0 +collecting ... collected 272 items + +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_init_with_options_dictionary PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedelta_to_seconds_double PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedelta_to_milliseconds_int32 PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedeltas_to_seconds_real64 PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedelta_to_months_int32 PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_seconds_real64_to_timedelta PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_seconds_real64_to_timedeltas PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_string_channel PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_string_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_list_channel PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_list_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_tuple_channel PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_tuple_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_unicode PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_raw PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_slice_channel PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_mixed_channel PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_mixed_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_invalid_repeated_capabilities PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_slice_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_without_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_string_resource_name PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_list_resource_name PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_tuple_resource_name PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_mixed_resource_name PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_invalid_resource_names PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_expand_channel_string_non_fully_qualified_channel_names PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_expand_channel_string_fully_qualified_channel_names PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_chained_repeated_capability_to_parts_three_parts PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_chained_repeated_capability_to_parts_single_part PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_chained_repeated_capability_to_parts_empty_string PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_string_to_list_channel PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_string_to_list_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_comma_separated_string_to_list PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_list_to_comma_separated_string PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_list_to_comma_separated_string_invalid_input PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_server_unavailable PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_function_not_implemented PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_api_key_sent_to_init PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_new_session_already_exists PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_attach_to_non_existent_session PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_lock_unlock PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_simple_function PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_number PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_one_input_function PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_vi_int_64_function PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_two_input_function PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_enum_value PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_list_enums PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_boolean PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_list_booleans PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_single_point_read_nan PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_fetch_waveform PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_fetch_waveform_into PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_write_waveform PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_write_waveform_numpy PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_return_multiple_types PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_array_types PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_array_types_none_input PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_same_size PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_same_size_none_input PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_different_size PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_different_size_none_input PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_mixed_ivi_dance_and_len_mechanism PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_same_size_wrong_size PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_parameters_are_multiple_types PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_method_with_error PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_call_not_enough_parameters_error PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_invalid_method_call_wrong_type_error PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_method_with_warning PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_read_with_warning PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_string_of_fixed_maximum_size PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_return_a_number_and_a_string PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_an_ivi_dance_char_array PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_string_ivi_dance_error PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_an_ivi_dance_with_a_twist_string PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_array_using_ivi_dance PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_real64 PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_real64 PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_string PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_string PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_boolean PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_boolean PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_int64 PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_int64 PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_error_message_returns_error PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_custom_type PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_custom_type PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_custom_type_array PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_custom_type_array PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_custom_type_typedef PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_cal_date_time PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_import_attribute_configuration_buffer PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_missing_function PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_simple_function PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_number PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_one_input_function PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_vi_int_64_function PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_two_input_function PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_enum_value PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_list_enums PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_boolean PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_list_booleans PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_single_point_read_nan PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_fetch_waveform PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_fetch_waveform_into PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_return_multiple_types PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_array_types PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_array_types_none_input PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_same_size PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_same_size_none_input PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_different_size PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_different_size_none_input PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_mixed_ivi_dance_and_len_mechanism PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_parameters_are_multiple_types PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_method_with_error PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_call_not_enough_parameters_error PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_invalid_method_call_wrong_type_error PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_method_with_warning PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_read_with_warning PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_library_interpreter_always_uses_same_library_instance PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_runtime_environment_is_called_once_if_present PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_runtime_environment_not_present_in_driver_runtime PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_string_of_fixed_maximum_size PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_string_of_size_python_code PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_return_a_number_and_a_string PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_an_ivi_dance_char_array PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_string_ivi_dance_error PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_an_ivi_dance_with_a_twist_string PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_array_using_ivi_dance PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_real64 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_real64 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_string PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_string PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_boolean PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_boolean PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_int64 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_int64 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_error_returns_mismatched_error_code PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_error_and_error_message_returns_error PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_error_description_error_message_error PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_custom_type PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_custom_type PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_custom_type_array PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_custom_type_array PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_custom_type_typedef PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_array_using_python_code_double PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_array_using_python_code_custom_type PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_cal_date_time PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_list_i8 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_bytes PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_bytearray PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_array_bytes PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_str PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy_complex128_valid_input PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy_complex64_valid_input PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy_complex_interleaved_i16_valid_input PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_3d_numpy_array_of_numpy_complex128 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_no_memorycopy_with_multi_dimensional_numpy_complex128_array PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_no_memorycopy_with_numpy_complex64_array PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_matcher_prints PASSED +generated/nifake/nifake/unit_tests/test_library_singleton.py::test_driver_runtime_not_installed_raises_driver_not_installed_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_init_with_options_and_close PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_init_with_options_nondefault_and_close PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_close PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_context_manager PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_init_with_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_close_with_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_context_manager_init_with_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_context_manager_close_with_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_lock_session_none PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_unlock_session_none PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_lock_context_manager PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_lock_context_manager_abnormal_exit PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_self_test PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_self_test_fail PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_acquisition_context_manager PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_acquisition_no_context_manager PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_single_point_read_timedelta PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_enum_input_function_with_defaults PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_string_valued_enum_input_function_with_defaults PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_fetch_waveform_into_wrong_type PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_parameters_are_multiple_types_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_error_with_rep_cap PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_call_not_enough_parameters_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_enum_input_function_with_defaults_bad_type_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_channel_names PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_repeated_capability_method_on_session_timedelta PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_repeated_capability_method_on_specific_channel PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_device_method_not_exist_on_repeated_capability_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_repeated_capabilities_list PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_chained_repeated_capabilities_list PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_chained_repeated_capability_method_on_specific_channel PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_function_with_repeated_capability_type PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int32_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int32_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int32_with_month_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int32_with_month_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_real64 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_real64 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_real64_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_real64_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_string PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_string PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_comma_separated_string PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_comma_separated_string PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_string_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_string_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_boolean PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_boolean PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_int32 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_int32 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_real64 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_real64 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_with_converter_invalid_value_from_driver PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_with_converter_invalid_input PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_channel PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_channel PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int64 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int64 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_session_error_set PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_session_error_get PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_repeated_capability_error_set PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_repeated_capability_error_get PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_enum_attribute_int32_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_wrong_enum_attribute_int32_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_same_size_wrong_size_2 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_same_size_wrong_size_3 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_same_size_wrong_size_4 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_different_size_none_input PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_cal_date_time PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_cal_interval PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_import_attribute_configuration_buffer_list_i8_big PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_import_attribute_configuration_buffer_list_i8_float PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_import_attribute_configuration_buffer_list_i8_big_float PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_export_attribute_configuration_buffer PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_channel_on_session PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_function_name PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_buffer_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_nitclk_integration PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_accept_list_of_time_values_as_floats PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_accept_array_of_time_values_as_floats PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_accept_list_of_time_values_as_timedelta_instances PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_return_timedelta PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_return_timedeltas PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_with_valid_intflag_parameter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_with_intflag_parameter_invalid PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_write_waveform_numpy_complex64_invalid_dtype PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_write_waveform_numpy_complex128_invalid_dtype PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_write_waveform_numpy_complex_interleaved_i16_invalid_dtype PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_init_with_options_and_close PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_lock_session_none PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_unlock_session_none PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_lock_context_manager PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_lock_context_manager_abnormal_exit PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_self_test PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_export_attribute_configuration_buffer PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_get_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_session.py::test_diagnostic_information OS: + Name: Linux + Version: #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 + Bits: 64 +Driver: + Name: NI-FAKE + Version: Unknown +Module: + Name: nifake + Version: 1.4.10.dev0 +Python: + Version: 3.12.3 (main, Mar 3 2026, 12:15:18) [GCC 13.3.0] + Bits: 64 + Is_Venv: True + Installed Packages: + Mako==1.3.10 + MarkupSafe==3.0.3 + Pygments==2.19.2 + coverage==7.13.4 + grpcio==1.75.1 + hightime==1.0.0 + iniconfig==2.3.0 + nifake==1.4.10.dev0 + nitclk==1.4.10.dev0 + numpy==2.4.3 + packaging==26.0 + pip==26.0.1 + pluggy==1.6.0 + protobuf==5.27.2 + pytest==9.0.2 + pytest-timeout==2.4.0 + typing_extensions==4.15.0 +PASSED +generated/nifake/nifake/unit_tests/test_session.py::test_dunder_version Version = 1.4.10.dev0 +PASSED + +============================= 272 passed in 13.03s ============================= +py312-test: commands[5]> coverage report +Name Stmts Miss Cover +----------------------------------------------------------------------------- +generated/nifake/nifake/__init__.py 72 11 85% +generated/nifake/nifake/_attributes.py 89 3 97% +generated/nifake/nifake/_complextype.py 8 0 100% +generated/nifake/nifake/_converters.py 138 6 96% +generated/nifake/nifake/_grpc_stub_interpreter.py 254 42 83% +generated/nifake/nifake/_visatype.py 20 0 100% +generated/nifake/nifake/custom_struct.py 28 3 89% +generated/nifake/nifake/custom_struct_nested_typedef.py 26 2 92% +generated/nifake/nifake/custom_struct_typedef.py 24 2 92% +generated/nifake/nifake/enums.py 50 0 100% +generated/nifake/nifake/errors.py 61 3 95% +generated/nifake/nifake/grpc_session_options.py 16 0 100% +generated/nifake/nifake/session.py 500 112 78% +----------------------------------------------------------------------------- +TOTAL 1286 184 86% +py312-test: commands[6]> coverage xml -o nifakeunittest.xml +Wrote XML report to nifakeunittest.xml +py312-test: commands[7]> coverage html --directory=generated/htmlcov/unit_tests/nifake +Wrote HTML report to generated/htmlcov/unit_tests/nifake/index.html +py312-test: commands[8]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nidcpower -m pytest generated/nidcpower/nidcpower -s +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-test/bin/python +cachedir: .tox/64/py312-test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +plugins: timeout-2.4.0 +collecting ... collected 7 items + +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_measurement[ctype_members0-Dev1/0-expected_python_members0-Channel : Dev1/0\nDC voltage : 0.1 V\nDC current : 0.001 A\nStimulus frequency : 10,000 Hz\nAC voltage : 1+0.1j V RMS\nAC current : 0.01+0.001j A RMS\nImpedance : 100+10j \u03a9\nImpedance magnitude : 100.499 \u03a9\nImpedance phase : 5.71059 \xb0\nAdmittance : 0.00990099-0.000990099j S\nAdmittance magnitude: 0.00995037 S\nAdmittance phase : -5.71059 \xb0\nSeries inductance : 10 H\nSeries capacitance : 20 F\nSeries resistance : 90 \u03a9\nParallel inductance : 30 H\nParallel capacitance: 40 F\nParallel resistance : 110 \u03a9\nDissipation factor : 10\nQuality factor : 0.1\nMeasurement mode : SMU_PS\nDC in compliance : True\nAC in compliance : True\nUnbalanced : True\n] PASSED +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_measurement[ctype_members1-1-expected_python_members1-Channel : 1\nDC voltage : 0 V\nDC current : 0 A\nStimulus frequency : 0 Hz\nAC voltage : 0+0j V RMS\nAC current : 0+0j A RMS\nImpedance : 0+0j \u03a9\nImpedance magnitude : 0 \u03a9\nImpedance phase : 0 \xb0\nAdmittance : nan+nanj S\nAdmittance magnitude: nan S\nAdmittance phase : nan \xb0\nSeries inductance : 0 H\nSeries capacitance : 0 F\nSeries resistance : 0 \u03a9\nParallel inductance : 0 H\nParallel capacitance: 0 F\nParallel resistance : 0 \u03a9\nDissipation factor : 0\nQuality factor : nan\nMeasurement mode : LCR\nDC in compliance : False\nAC in compliance : False\nUnbalanced : False\n] PASSED +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params0-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=200.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IMPEDANCE, reference_value=(3+4j))-Frequency : 200 Hz\nImpedance : 3+4j \u03a9\n-expected_ctype_members0] PASSED +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params1-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=300.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IDEAL_CAPACITANCE, reference_value=5.0)-Frequency : 300 Hz\nIdeal Capacitance: 5 F\n-expected_ctype_members1] PASSED +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params2-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=400.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IDEAL_INDUCTANCE, reference_value=6.0)-Frequency : 400 Hz\nIdeal Inductance : 6 H\n-expected_ctype_members2] PASSED +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params3-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=500.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IDEAL_RESISTANCE, reference_value=7.0)-Frequency : 500 Hz\nIdeal Resistance : 7 \u03a9\n-expected_ctype_members3] PASSED +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot_byte_packing_alignment PASSED + +============================== 7 passed in 0.77s =============================== +py312-test: commands[9]> coverage report +Name Stmts Miss Cover +--------------------------------------------------------------------------------- +generated/nidcpower/nidcpower/lcr_load_compensation_spot.py 33 5 85% +generated/nidcpower/nidcpower/lcr_measurement.py 53 4 92% +--------------------------------------------------------------------------------- +TOTAL 86 9 90% +py312-test: commands[10]> coverage xml -o nidcpowerunittest.xml +Wrote XML report to nidcpowerunittest.xml +py312-test: commands[11]> coverage html --directory=generated/htmlcov/unit_tests/nidcpower +Wrote HTML report to generated/htmlcov/unit_tests/nidcpower/index.html +py312-test: commands[12]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nidigital -m pytest generated/nidigital/nidigital -s +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-test/bin/python +cachedir: .tox/64/py312-test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +plugins: timeout-2.4.0 +collecting ... collected 8 items + +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_position_out_of_bound PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_position_last PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_samples_to_read_too_much PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_samples_to_read_all PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_pin_list PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_site_n PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_pin_state_enum_print PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_write_static_pin_state_enum_print PASSED + +============================== 8 passed in 0.96s =============================== +py312-test: commands[13]> coverage report +Name Stmts Miss Cover +-------------------------------------------------------------- +generated/nidigital/nidigital/session.py 786 248 68% +-------------------------------------------------------------- +TOTAL 786 248 68% +py312-test: commands[14]> coverage xml -o nidigitalunittest.xml +Wrote XML report to nidigitalunittest.xml +py312-test: commands[15]> coverage html --directory=generated/htmlcov/unit_tests/nidigital +Wrote HTML report to generated/htmlcov/unit_tests/nidigital/index.html +py312-test: commands[16]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nimodinst -m pytest generated/nimodinst/nimodinst -s +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-test/bin/python +cachedir: .tox/64/py312-test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +plugins: timeout-2.4.0 +collecting ... collected 23 items + +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_open_and_close PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_close PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_context_manager PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_iterating_for PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_iterating_for_empty PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_extended_error_info PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_error_description_fails PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_session PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_int32_for_loop_index PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_string_for_loop_index PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_session_no_index PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_int32_for_loop_multiple_devices PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_string_for_loop_multiple_devices PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_session_set PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_session_get PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_device_set PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_device_get PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_vi_int32_attribute_read_only PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_vi_string_attribute_read_only PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_int_attribute_error PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_int_attribute_warning PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_repr_and_str nimodinst.Session(driver=''): +nimodinst._Device(owner=nimodinst.Session(driver=''), index=0): + bus_number = 42 + chassis_number = 42 + device_model = 'fourty two' + device_name = 'fourty two' + max_pciexpress_link_width = 42 + pciexpress_link_width = 42 + serial_number = 'fourty two' + slot_number = 42 + socket_number = 42 + +nimodinst._Device(owner=nimodinst.Session(driver=''), index=1): + bus_number = 42 + chassis_number = 42 + device_model = 'fourty two' + device_name = 'fourty two' + max_pciexpress_link_width = 42 + pciexpress_link_width = 42 + serial_number = 'fourty two' + slot_number = 42 + socket_number = 42 + + +nimodinst._Device(owner=nimodinst.Session(driver=''), index=0): + bus_number = 42 + chassis_number = 42 + device_model = 'fourty two' + device_name = 'fourty two' + max_pciexpress_link_width = 42 + pciexpress_link_width = 42 + serial_number = 'fourty two' + slot_number = 42 + socket_number = 42 + +nimodinst._Device(owner=nimodinst.Session(driver=''), index=1): + bus_number = 42 + chassis_number = 42 + device_model = 'fourty two' + device_name = 'fourty two' + max_pciexpress_link_width = 42 + pciexpress_link_width = 42 + serial_number = 'fourty two' + slot_number = 42 + socket_number = 42 + +PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::test_diagnostic_information OS: + Name: Linux + Version: #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 + Bits: 64 +Driver: + Name: NI-ModInst + Version: Unknown +Module: + Name: nimodinst + Version: 1.4.10.dev0 +Python: + Version: 3.12.3 (main, Mar 3 2026, 12:15:18) [GCC 13.3.0] + Bits: 64 + Is_Venv: True + Installed Packages: + Mako==1.3.10 + MarkupSafe==3.0.3 + Pygments==2.19.2 + coverage==7.13.4 + grpcio==1.75.1 + hightime==1.0.0 + iniconfig==2.3.0 + nimodinst==1.4.10.dev0 + nitclk==1.4.10.dev0 + numpy==2.4.3 + packaging==26.0 + pip==26.0.1 + pluggy==1.6.0 + protobuf==5.27.2 + pytest==9.0.2 + pytest-timeout==2.4.0 + typing_extensions==4.15.0 +PASSED + +============================== 23 passed in 0.66s ============================== +py312-test: commands[17]> coverage report +Name Stmts Miss Cover +-------------------------------------------------------------- +generated/nimodinst/nimodinst/session.py 138 8 94% +-------------------------------------------------------------- +TOTAL 138 8 94% +py312-test: commands[18]> coverage xml -o nimodinstunittest.xml +Wrote XML report to nimodinstunittest.xml +py312-test: commands[19]> coverage html --directory=generated/htmlcov/unit_tests/nimodinst +Wrote HTML report to generated/htmlcov/unit_tests/nimodinst/index.html +py312-test: commands[20]> coverage run --rcfile=tools/coverage_unit_tests.rc --source niscope -m pytest generated/niscope/niscope -s +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-test/bin/python +cachedir: .tox/64/py312-test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +plugins: timeout-2.4.0 +collecting ... collected 2 items + +generated/niscope/niscope/unit_tests/test_niscope.py::test_populate_samples_info PASSED +generated/niscope/niscope/unit_tests/test_niscope.py::test_populate_channel_and_record_info PASSED + +============================== 2 passed in 0.71s =============================== +py312-test: commands[21]> coverage report +Name Stmts Miss Cover +---------------------------------------------------------------- +generated/niscope/niscope/waveform_info.py 81 46 43% +---------------------------------------------------------------- +TOTAL 81 46 43% +py312-test: commands[22]> coverage xml -o niscopeunittest.xml +Wrote XML report to niscopeunittest.xml +py312-test: commands[23]> coverage html --directory=generated/htmlcov/unit_tests/niscope +Wrote HTML report to generated/htmlcov/unit_tests/niscope/index.html +py312-test: commands[24]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nitclk -m pytest generated/nitclk/nitclk -s +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-test/bin/python +cachedir: .tox/64/py312-test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +plugins: timeout-2.4.0 +collecting ... collected 25 items + +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_initialize_one_session PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_initialize_multiple_sessions PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_configure_for_homogeneous_triggers PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_finish_sync_pulse_sender_synchronize PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_is_done PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_setup_for_sync_pulse_sender_synchronize PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_synchronize PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_synchronize_timedelta PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_synchronize_to_sync_pulse_sender PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_wait_until_done PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_api_error PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_api_get_error_description_fails PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_session_reference_error PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_session_reference_get_error_description_fails PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_real64 PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_vi_real64 PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_timedelta_as_vi_real64 PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_timedelta_as_timedelta PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_timedelta PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_string PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_vi_string PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_session_with_int PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_session_with_session_reference PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_session_with_session PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_tclk_session_reference PASSED + +============================== 25 passed in 0.60s ============================== +py312-test: commands[25]> coverage report +Name Stmts Miss Cover +-------------------------------------------------------- +generated/nitclk/nitclk/session.py 115 2 98% +-------------------------------------------------------- +TOTAL 115 2 98% +py312-test: commands[26]> coverage xml -o nitclkunittest.xml +Wrote XML report to nitclkunittest.xml +py312-test: commands[27]> coverage html --directory=generated/htmlcov/unit_tests/nitclk +Wrote HTML report to generated/htmlcov/unit_tests/nitclk/index.html +py312-test: OK ✔ in 24.03 seconds +py313-test: skipped because could not find python interpreter with spec(s): py313 +py313-test: SKIP ⚠ in 0.44 seconds +py314-test: commands[0]> python --version +Python 3.14.0 +py314-test: commands[1]> python -c 'import platform; print(platform.architecture())' +('64bit', 'ELF') +py314-test: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip +Requirement already satisfied: pip in ./.tox/64/py314-test/lib/python3.14/site-packages (26.0.1) +py314-test: commands[3]> python tools/install_local_wheel.py --driver nitclk +Processing ./generated/nitclk/dist/nitclk-1.4.10.dev0-py3-none-any.whl +Requirement already satisfied: hightime>=0.2.0 in ./.tox/64/py314-test/lib/python3.14/site-packages (from nitclk==1.4.10.dev0) (1.0.0) +nitclk is already installed with the same version as the provided wheel. Use --force-reinstall to force an installation of the wheel. +py314-test: commands[4]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nifake -m pytest generated/nifake/nifake -s +============================= test session starts ============================== +platform linux -- Python 3.14.0, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py314-test/bin/python +cachedir: .tox/64/py314-test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +plugins: timeout-2.4.0 +collecting ... collected 272 items + +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_init_with_options_dictionary PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedelta_to_seconds_double PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedelta_to_milliseconds_int32 PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedeltas_to_seconds_real64 PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedelta_to_months_int32 PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_seconds_real64_to_timedelta PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_seconds_real64_to_timedeltas PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_string_channel PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_string_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_list_channel PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_list_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_tuple_channel PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_tuple_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_unicode PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_raw PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_slice_channel PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_mixed_channel PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_mixed_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_invalid_repeated_capabilities PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_slice_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_without_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_string_resource_name PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_list_resource_name PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_tuple_resource_name PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_mixed_resource_name PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_invalid_resource_names PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_expand_channel_string_non_fully_qualified_channel_names PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_expand_channel_string_fully_qualified_channel_names PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_chained_repeated_capability_to_parts_three_parts PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_chained_repeated_capability_to_parts_single_part PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_chained_repeated_capability_to_parts_empty_string PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_string_to_list_channel PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_string_to_list_prefix PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_comma_separated_string_to_list PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_list_to_comma_separated_string PASSED +generated/nifake/nifake/unit_tests/test_converters.py::test_convert_list_to_comma_separated_string_invalid_input PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_server_unavailable PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_function_not_implemented PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_api_key_sent_to_init PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_new_session_already_exists PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_attach_to_non_existent_session PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_lock_unlock PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_simple_function PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_number PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_one_input_function PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_vi_int_64_function PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_two_input_function PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_enum_value PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_list_enums PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_boolean PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_list_booleans PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_single_point_read_nan PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_fetch_waveform PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_fetch_waveform_into PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_write_waveform PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_write_waveform_numpy PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_return_multiple_types PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_array_types PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_array_types_none_input PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_same_size PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_same_size_none_input PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_different_size PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_different_size_none_input PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_mixed_ivi_dance_and_len_mechanism PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_same_size_wrong_size PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_parameters_are_multiple_types PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_method_with_error PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_call_not_enough_parameters_error PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_invalid_method_call_wrong_type_error PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_method_with_warning PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_read_with_warning PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_string_of_fixed_maximum_size PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_return_a_number_and_a_string PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_an_ivi_dance_char_array PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_string_ivi_dance_error PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_an_ivi_dance_with_a_twist_string PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_array_using_ivi_dance PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_real64 PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_real64 PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_string PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_string PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_boolean PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_boolean PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_int64 PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_int64 PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_error_message_returns_error PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_custom_type PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_custom_type PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_custom_type_array PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_custom_type_array PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_custom_type_typedef PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_cal_date_time PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_import_attribute_configuration_buffer PASSED +generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_missing_function PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_simple_function PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_number PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_one_input_function PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_vi_int_64_function PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_two_input_function PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_enum_value PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_list_enums PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_boolean PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_list_booleans PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_single_point_read_nan PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_fetch_waveform PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_fetch_waveform_into PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_return_multiple_types PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_array_types PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_array_types_none_input PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_same_size PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_same_size_none_input PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_different_size PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_different_size_none_input PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_mixed_ivi_dance_and_len_mechanism PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_parameters_are_multiple_types PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_method_with_error PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_call_not_enough_parameters_error PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_invalid_method_call_wrong_type_error PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_method_with_warning PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_read_with_warning PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_library_interpreter_always_uses_same_library_instance PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_runtime_environment_is_called_once_if_present PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_runtime_environment_not_present_in_driver_runtime PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_string_of_fixed_maximum_size PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_string_of_size_python_code PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_return_a_number_and_a_string PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_an_ivi_dance_char_array PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_string_ivi_dance_error PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_an_ivi_dance_with_a_twist_string PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_array_using_ivi_dance PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_real64 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_real64 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_string PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_string PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_boolean PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_boolean PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_int64 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_int64 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_error_returns_mismatched_error_code PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_error_and_error_message_returns_error PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_error_description_error_message_error PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_custom_type PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_custom_type PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_custom_type_array PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_custom_type_array PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_custom_type_typedef PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_array_using_python_code_double PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_array_using_python_code_custom_type PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_cal_date_time PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_list_i8 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_bytes PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_bytearray PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_array_bytes PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_str PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy_complex128_valid_input PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy_complex64_valid_input PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy_complex_interleaved_i16_valid_input PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_3d_numpy_array_of_numpy_complex128 PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_no_memorycopy_with_multi_dimensional_numpy_complex128_array PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_no_memorycopy_with_numpy_complex64_array PASSED +generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_matcher_prints PASSED +generated/nifake/nifake/unit_tests/test_library_singleton.py::test_driver_runtime_not_installed_raises_driver_not_installed_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_init_with_options_and_close PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_init_with_options_nondefault_and_close PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_close PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_context_manager PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_init_with_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_close_with_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_context_manager_init_with_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_context_manager_close_with_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_lock_session_none PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_unlock_session_none PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_lock_context_manager PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_lock_context_manager_abnormal_exit PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_self_test PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_self_test_fail PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_acquisition_context_manager PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_acquisition_no_context_manager PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_single_point_read_timedelta PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_enum_input_function_with_defaults PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_string_valued_enum_input_function_with_defaults PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_fetch_waveform_into_wrong_type PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_parameters_are_multiple_types_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_error_with_rep_cap PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_call_not_enough_parameters_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_enum_input_function_with_defaults_bad_type_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_channel_names PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_repeated_capability_method_on_session_timedelta PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_repeated_capability_method_on_specific_channel PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_device_method_not_exist_on_repeated_capability_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_repeated_capabilities_list PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_chained_repeated_capabilities_list PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_chained_repeated_capability_method_on_specific_channel PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_function_with_repeated_capability_type PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int32_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int32_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int32_with_month_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int32_with_month_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_real64 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_real64 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_real64_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_real64_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_string PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_string PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_comma_separated_string PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_comma_separated_string PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_string_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_string_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_boolean PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_boolean PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_int32 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_int32 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_real64 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_real64 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_with_converter_invalid_value_from_driver PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_with_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_with_converter_invalid_input PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_channel PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_channel PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int64 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int64 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_session_error_set PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_session_error_get PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_repeated_capability_error_set PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_repeated_capability_error_get PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_enum_attribute_int32_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_wrong_enum_attribute_int32_error PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_same_size_wrong_size_2 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_same_size_wrong_size_3 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_same_size_wrong_size_4 PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_different_size_none_input PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_cal_date_time PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_cal_interval PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_import_attribute_configuration_buffer_list_i8_big PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_import_attribute_configuration_buffer_list_i8_float PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_import_attribute_configuration_buffer_list_i8_big_float PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_export_attribute_configuration_buffer PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_channel_on_session PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_function_name PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_buffer_converter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_nitclk_integration PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_accept_list_of_time_values_as_floats PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_accept_array_of_time_values_as_floats PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_accept_list_of_time_values_as_timedelta_instances PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_return_timedelta PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_return_timedeltas PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_with_valid_intflag_parameter PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_with_intflag_parameter_invalid PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_write_waveform_numpy_complex64_invalid_dtype PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_write_waveform_numpy_complex128_invalid_dtype PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_write_waveform_numpy_complex_interleaved_i16_invalid_dtype PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_init_with_options_and_close PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_lock_session_none PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_unlock_session_none PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_lock_context_manager PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_lock_context_manager_abnormal_exit PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_self_test PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_export_attribute_configuration_buffer PASSED +generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_get_attribute_int32 PASSED +generated/nifake/nifake/unit_tests/test_session.py::test_diagnostic_information OS: + Name: Linux + Version: #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 + Bits: 64 +Driver: + Name: NI-FAKE + Version: Unknown +Module: + Name: nifake + Version: 1.4.10.dev0 +Python: + Version: 3.14.0 (main, Feb 11 2026, 08:04:23) [GCC 13.3.0] + Bits: 64 + Is_Venv: True + Installed Packages: + Mako==1.3.10 + MarkupSafe==3.0.3 + Pygments==2.19.2 + coverage==7.13.4 + grpcio==1.75.1 + hightime==1.0.0 + iniconfig==2.3.0 + nifake==1.4.10.dev0 + nitclk==1.4.10.dev0 + numpy==2.4.3 + packaging==26.0 + pip==26.0.1 + pluggy==1.6.0 + protobuf==5.27.2 + pytest==9.0.2 + pytest-timeout==2.4.0 + typing_extensions==4.15.0 +PASSED +generated/nifake/nifake/unit_tests/test_session.py::test_dunder_version Version = 1.4.10.dev0 +PASSED + +============================= 272 passed in 8.71s ============================== +py314-test: commands[5]> coverage report +Name Stmts Miss Cover +----------------------------------------------------------------------------- +generated/nifake/nifake/__init__.py 72 11 85% +generated/nifake/nifake/_attributes.py 89 3 97% +generated/nifake/nifake/_complextype.py 8 0 100% +generated/nifake/nifake/_converters.py 138 6 96% +generated/nifake/nifake/_grpc_stub_interpreter.py 254 42 83% +generated/nifake/nifake/_visatype.py 20 0 100% +generated/nifake/nifake/custom_struct.py 28 3 89% +generated/nifake/nifake/custom_struct_nested_typedef.py 26 2 92% +generated/nifake/nifake/custom_struct_typedef.py 24 2 92% +generated/nifake/nifake/enums.py 50 0 100% +generated/nifake/nifake/errors.py 61 3 95% +generated/nifake/nifake/grpc_session_options.py 16 0 100% +generated/nifake/nifake/session.py 500 112 78% +----------------------------------------------------------------------------- +TOTAL 1286 184 86% +py314-test: commands[6]> coverage xml -o nifakeunittest.xml +Wrote XML report to nifakeunittest.xml +py314-test: commands[7]> coverage html --directory=generated/htmlcov/unit_tests/nifake +Wrote HTML report to generated/htmlcov/unit_tests/nifake/index.html +py314-test: commands[8]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nidcpower -m pytest generated/nidcpower/nidcpower -s +============================= test session starts ============================== +platform linux -- Python 3.14.0, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py314-test/bin/python +cachedir: .tox/64/py314-test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +plugins: timeout-2.4.0 +collecting ... collected 7 items + +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_measurement[ctype_members0-Dev1/0-expected_python_members0-Channel : Dev1/0\nDC voltage : 0.1 V\nDC current : 0.001 A\nStimulus frequency : 10,000 Hz\nAC voltage : 1+0.1j V RMS\nAC current : 0.01+0.001j A RMS\nImpedance : 100+10j \u03a9\nImpedance magnitude : 100.499 \u03a9\nImpedance phase : 5.71059 \xb0\nAdmittance : 0.00990099-0.000990099j S\nAdmittance magnitude: 0.00995037 S\nAdmittance phase : -5.71059 \xb0\nSeries inductance : 10 H\nSeries capacitance : 20 F\nSeries resistance : 90 \u03a9\nParallel inductance : 30 H\nParallel capacitance: 40 F\nParallel resistance : 110 \u03a9\nDissipation factor : 10\nQuality factor : 0.1\nMeasurement mode : SMU_PS\nDC in compliance : True\nAC in compliance : True\nUnbalanced : True\n] PASSED +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_measurement[ctype_members1-1-expected_python_members1-Channel : 1\nDC voltage : 0 V\nDC current : 0 A\nStimulus frequency : 0 Hz\nAC voltage : 0+0j V RMS\nAC current : 0+0j A RMS\nImpedance : 0+0j \u03a9\nImpedance magnitude : 0 \u03a9\nImpedance phase : 0 \xb0\nAdmittance : nan+nanj S\nAdmittance magnitude: nan S\nAdmittance phase : nan \xb0\nSeries inductance : 0 H\nSeries capacitance : 0 F\nSeries resistance : 0 \u03a9\nParallel inductance : 0 H\nParallel capacitance: 0 F\nParallel resistance : 0 \u03a9\nDissipation factor : 0\nQuality factor : nan\nMeasurement mode : LCR\nDC in compliance : False\nAC in compliance : False\nUnbalanced : False\n] PASSED +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params0-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=200.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IMPEDANCE, reference_value=(3+4j))-Frequency : 200 Hz\nImpedance : 3+4j \u03a9\n-expected_ctype_members0] PASSED +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params1-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=300.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IDEAL_CAPACITANCE, reference_value=5.0)-Frequency : 300 Hz\nIdeal Capacitance: 5 F\n-expected_ctype_members1] PASSED +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params2-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=400.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IDEAL_INDUCTANCE, reference_value=6.0)-Frequency : 400 Hz\nIdeal Inductance : 6 H\n-expected_ctype_members2] PASSED +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params3-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=500.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IDEAL_RESISTANCE, reference_value=7.0)-Frequency : 500 Hz\nIdeal Resistance : 7 \u03a9\n-expected_ctype_members3] PASSED +generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot_byte_packing_alignment PASSED + +=============================== warnings summary =============================== +generated/nidcpower/nidcpower/lcr_measurement.py:10 + /home/rahur/nimi-python-rahur/nimi-python/generated/nidcpower/nidcpower/lcr_measurement.py:10: DeprecationWarning: Due to '_pack_', the 'struct_NILCRMeasurement' Structure will use memory layout compatible with MSVC (Windows). If this is intended, set _layout_ to 'ms'. The implicit default is deprecated and slated to become an error in Python 3.19. + class struct_NILCRMeasurement(ctypes.Structure): # noqa N801 + +generated/nidcpower/nidcpower/lcr_load_compensation_spot.py:10 + /home/rahur/nimi-python-rahur/nimi-python/generated/nidcpower/nidcpower/lcr_load_compensation_spot.py:10: DeprecationWarning: Due to '_pack_', the 'struct_NILCRLoadCompensationSpot' Structure will use memory layout compatible with MSVC (Windows). If this is intended, set _layout_ to 'ms'. The implicit default is deprecated and slated to become an error in Python 3.19. + class struct_NILCRLoadCompensationSpot(ctypes.Structure): # noqa N801 + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +======================== 7 passed, 2 warnings in 0.49s ========================= +py314-test: commands[9]> coverage report +Name Stmts Miss Cover +--------------------------------------------------------------------------------- +generated/nidcpower/nidcpower/lcr_load_compensation_spot.py 33 5 85% +generated/nidcpower/nidcpower/lcr_measurement.py 53 4 92% +--------------------------------------------------------------------------------- +TOTAL 86 9 90% +py314-test: commands[10]> coverage xml -o nidcpowerunittest.xml +Wrote XML report to nidcpowerunittest.xml +py314-test: commands[11]> coverage html --directory=generated/htmlcov/unit_tests/nidcpower +Wrote HTML report to generated/htmlcov/unit_tests/nidcpower/index.html +py314-test: commands[12]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nidigital -m pytest generated/nidigital/nidigital -s +============================= test session starts ============================== +platform linux -- Python 3.14.0, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py314-test/bin/python +cachedir: .tox/64/py314-test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +plugins: timeout-2.4.0 +collecting ... collected 8 items + +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_position_out_of_bound PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_position_last PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_samples_to_read_too_much PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_samples_to_read_all PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_pin_list PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_site_n PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_pin_state_enum_print PASSED +generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_write_static_pin_state_enum_print PASSED + +============================== 8 passed in 0.57s =============================== +py314-test: commands[13]> coverage report +Name Stmts Miss Cover +-------------------------------------------------------------- +generated/nidigital/nidigital/session.py 786 248 68% +-------------------------------------------------------------- +TOTAL 786 248 68% +py314-test: commands[14]> coverage xml -o nidigitalunittest.xml +Wrote XML report to nidigitalunittest.xml +py314-test: commands[15]> coverage html --directory=generated/htmlcov/unit_tests/nidigital +Wrote HTML report to generated/htmlcov/unit_tests/nidigital/index.html +py314-test: commands[16]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nimodinst -m pytest generated/nimodinst/nimodinst -s +============================= test session starts ============================== +platform linux -- Python 3.14.0, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py314-test/bin/python +cachedir: .tox/64/py314-test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +plugins: timeout-2.4.0 +collecting ... collected 23 items + +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_open_and_close PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_close PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_context_manager PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_iterating_for PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_iterating_for_empty PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_extended_error_info PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_error_description_fails PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_session PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_int32_for_loop_index PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_string_for_loop_index PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_session_no_index PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_int32_for_loop_multiple_devices PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_string_for_loop_multiple_devices PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_session_set PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_session_get PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_device_set PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_device_get PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_vi_int32_attribute_read_only PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_vi_string_attribute_read_only PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_int_attribute_error PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_int_attribute_warning PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_repr_and_str nimodinst.Session(driver=''): +nimodinst._Device(owner=nimodinst.Session(driver=''), index=0): + bus_number = 42 + chassis_number = 42 + device_model = 'fourty two' + device_name = 'fourty two' + max_pciexpress_link_width = 42 + pciexpress_link_width = 42 + serial_number = 'fourty two' + slot_number = 42 + socket_number = 42 + +nimodinst._Device(owner=nimodinst.Session(driver=''), index=1): + bus_number = 42 + chassis_number = 42 + device_model = 'fourty two' + device_name = 'fourty two' + max_pciexpress_link_width = 42 + pciexpress_link_width = 42 + serial_number = 'fourty two' + slot_number = 42 + socket_number = 42 + + +nimodinst._Device(owner=nimodinst.Session(driver=''), index=0): + bus_number = 42 + chassis_number = 42 + device_model = 'fourty two' + device_name = 'fourty two' + max_pciexpress_link_width = 42 + pciexpress_link_width = 42 + serial_number = 'fourty two' + slot_number = 42 + socket_number = 42 + +nimodinst._Device(owner=nimodinst.Session(driver=''), index=1): + bus_number = 42 + chassis_number = 42 + device_model = 'fourty two' + device_name = 'fourty two' + max_pciexpress_link_width = 42 + pciexpress_link_width = 42 + serial_number = 'fourty two' + slot_number = 42 + socket_number = 42 + +PASSED +generated/nimodinst/nimodinst/unit_tests/test_modinst.py::test_diagnostic_information OS: + Name: Linux + Version: #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 + Bits: 64 +Driver: + Name: NI-ModInst + Version: Unknown +Module: + Name: nimodinst + Version: 1.4.10.dev0 +Python: + Version: 3.14.0 (main, Feb 11 2026, 08:04:23) [GCC 13.3.0] + Bits: 64 + Is_Venv: True + Installed Packages: + Mako==1.3.10 + MarkupSafe==3.0.3 + Pygments==2.19.2 + coverage==7.13.4 + grpcio==1.75.1 + hightime==1.0.0 + iniconfig==2.3.0 + nimodinst==1.4.10.dev0 + nitclk==1.4.10.dev0 + numpy==2.4.3 + packaging==26.0 + pip==26.0.1 + pluggy==1.6.0 + protobuf==5.27.2 + pytest==9.0.2 + pytest-timeout==2.4.0 + typing_extensions==4.15.0 +PASSED + +============================== 23 passed in 0.35s ============================== +py314-test: commands[17]> coverage report +Name Stmts Miss Cover +-------------------------------------------------------------- +generated/nimodinst/nimodinst/session.py 138 8 94% +-------------------------------------------------------------- +TOTAL 138 8 94% +py314-test: commands[18]> coverage xml -o nimodinstunittest.xml +Wrote XML report to nimodinstunittest.xml +py314-test: commands[19]> coverage html --directory=generated/htmlcov/unit_tests/nimodinst +Wrote HTML report to generated/htmlcov/unit_tests/nimodinst/index.html +py314-test: commands[20]> coverage run --rcfile=tools/coverage_unit_tests.rc --source niscope -m pytest generated/niscope/niscope -s +============================= test session starts ============================== +platform linux -- Python 3.14.0, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py314-test/bin/python +cachedir: .tox/64/py314-test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +plugins: timeout-2.4.0 +collecting ... collected 2 items + +generated/niscope/niscope/unit_tests/test_niscope.py::test_populate_samples_info PASSED +generated/niscope/niscope/unit_tests/test_niscope.py::test_populate_channel_and_record_info PASSED + +=============================== warnings summary =============================== +generated/niscope/niscope/waveform_info.py:9 + /home/rahur/nimi-python-rahur/nimi-python/generated/niscope/niscope/waveform_info.py:9: DeprecationWarning: Due to '_pack_', the 'struct_niScope_wfmInfo' Structure will use memory layout compatible with MSVC (Windows). If this is intended, set _layout_ to 'ms'. The implicit default is deprecated and slated to become an error in Python 3.19. + class struct_niScope_wfmInfo(ctypes.Structure): # noqa N801 + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +========================= 2 passed, 1 warning in 0.42s ========================= +py314-test: commands[21]> coverage report +Name Stmts Miss Cover +---------------------------------------------------------------- +generated/niscope/niscope/waveform_info.py 81 46 43% +---------------------------------------------------------------- +TOTAL 81 46 43% +py314-test: commands[22]> coverage xml -o niscopeunittest.xml +Wrote XML report to niscopeunittest.xml +py314-test: commands[23]> coverage html --directory=generated/htmlcov/unit_tests/niscope +Wrote HTML report to generated/htmlcov/unit_tests/niscope/index.html +py314-test: commands[24]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nitclk -m pytest generated/nitclk/nitclk -s +============================= test session starts ============================== +platform linux -- Python 3.14.0, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py314-test/bin/python +cachedir: .tox/64/py314-test/.pytest_cache +rootdir: /home/rahur/nimi-python-rahur/nimi-python +configfile: tox.ini +plugins: timeout-2.4.0 +collecting ... collected 25 items + +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_initialize_one_session PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_initialize_multiple_sessions PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_configure_for_homogeneous_triggers PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_finish_sync_pulse_sender_synchronize PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_is_done PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_setup_for_sync_pulse_sender_synchronize PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_synchronize PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_synchronize_timedelta PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_synchronize_to_sync_pulse_sender PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_wait_until_done PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_api_error PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_api_get_error_description_fails PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_session_reference_error PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_session_reference_get_error_description_fails PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_real64 PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_vi_real64 PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_timedelta_as_vi_real64 PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_timedelta_as_timedelta PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_timedelta PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_string PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_vi_string PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_session_with_int PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_session_with_session_reference PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_session_with_session PASSED +generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_tclk_session_reference PASSED + +============================== 25 passed in 0.32s ============================== +py314-test: commands[25]> coverage report +Name Stmts Miss Cover +-------------------------------------------------------- +generated/nitclk/nitclk/session.py 115 2 98% +-------------------------------------------------------- +TOTAL 115 2 98% +py314-test: commands[26]> coverage xml -o nitclkunittest.xml +Wrote XML report to nitclkunittest.xml +py314-test: commands[27]> coverage html --directory=generated/htmlcov/unit_tests/nitclk +Wrote HTML report to generated/htmlcov/unit_tests/nitclk/index.html +py314-test: OK ✔ in 19.55 seconds +py312-pkg: commands[0]> python --version +Python 3.12.3 +py312-pkg: commands[1]> python -c 'import platform; print(platform.architecture())' +('64bit', 'ELF') +py312-pkg: commands[2]> python -m twine --version +twine version 6.2.0 (keyring: 25.7.0, packaging: 26.0, requests: 2.32.5, +requests-toolbelt: 1.0.0, urllib3: 2.6.3, id: 1.6.1) +py312-pkg: commands[3]> python -m twine check 'generated/nifake/dist/*' +Checking generated/nifake/dist/nifake-1.4.10.dev0-py3-none-any.whl: PASSED +Checking generated/nifake/dist/nifake-1.4.10.dev0.tar.gz: PASSED +py312-pkg: commands[4]> python -m twine check 'generated/nidcpower/dist/*' +Checking generated/nidcpower/dist/nidcpower-1.5.1.dev0-py3-none-any.whl: PASSED +Checking generated/nidcpower/dist/nidcpower-1.5.1.dev0.tar.gz: PASSED +py312-pkg: commands[5]> python -m twine check 'generated/nidigital/dist/*' +Checking generated/nidigital/dist/nidigital-1.4.10.dev0-py3-none-any.whl: PASSED +Checking generated/nidigital/dist/nidigital-1.4.10.dev0.tar.gz: PASSED +py312-pkg: commands[6]> python -m twine check 'generated/nidmm/dist/*' +Checking generated/nidmm/dist/nidmm-1.4.10.dev0-py3-none-any.whl: PASSED +Checking generated/nidmm/dist/nidmm-1.4.10.dev0.tar.gz: PASSED +py312-pkg: commands[7]> python -m twine check 'generated/nifgen/dist/*' +Checking generated/nifgen/dist/nifgen-1.4.10.dev0-py3-none-any.whl: PASSED +Checking generated/nifgen/dist/nifgen-1.4.10.dev0.tar.gz: PASSED +py312-pkg: commands[8]> python -m twine check 'generated/nirfsg/dist/*' +Checking generated/nirfsg/dist/nirfsg-1.0.2.dev0-py3-none-any.whl: PASSED +Checking generated/nirfsg/dist/nirfsg-1.0.2.dev0.tar.gz: PASSED +py312-pkg: commands[9]> python -m twine check 'generated/niscope/dist/*' +Checking generated/niscope/dist/niscope-1.4.10.dev0-py3-none-any.whl: PASSED +Checking generated/niscope/dist/niscope-1.4.10.dev0.tar.gz: PASSED +py312-pkg: commands[10]> python -m twine check 'generated/nise/dist/*' +Checking generated/nise/dist/nise-1.4.10.dev0-py3-none-any.whl: PASSED +Checking generated/nise/dist/nise-1.4.10.dev0.tar.gz: PASSED +py312-pkg: commands[11]> python -m twine check 'generated/niswitch/dist/*' +Checking generated/niswitch/dist/niswitch-1.4.10.dev0-py3-none-any.whl: PASSED +Checking generated/niswitch/dist/niswitch-1.4.10.dev0.tar.gz: PASSED + py312-build_test: OK (3.85=setup[0.03]+cmd[0.00,0.03,0.59,0.14,0.91,0.96,0.16,0.16,0.35,0.49] seconds) + py312-codegen: OK (58.51=setup[0.01]+cmd[0.00,0.03,0.55,57.92] seconds) + py312-installers: OK (30.76=setup[0.01]+cmd[0.00,0.03,0.67,30.05] seconds) + py310-test: SKIP (0.72 seconds) + py311-test: SKIP (0.69 seconds) + py312-test: OK (24.03=setup[0.04]+cmd[0.00,0.03,0.68,0.43,14.88,0.15,0.17,0.35,1.15,0.09,0.09,0.12,1.40,0.12,0.13,0.23,1.04,0.09,0.09,0.11,1.10,0.09,0.09,0.10,0.98,0.09,0.09,0.11] seconds) + py313-test: SKIP (0.44 seconds) + py314-test: OK (19.55=setup[0.11]+cmd[0.01,0.06,0.75,0.45,11.06,0.15,0.17,0.20,1.05,0.10,0.10,0.11,1.18,0.13,0.14,0.15,0.89,0.09,0.10,0.11,0.96,0.10,0.09,0.10,0.88,0.09,0.10,0.11] seconds) + py312-flake8: OK (4.40=setup[0.02]+cmd[0.00,0.03,0.58,1.59,0.14,0.29,0.33,0.18,0.22,0.14,0.23,0.22,0.14,0.15,0.14] seconds) + py312-docs: OK (20.52=setup[0.02]+cmd[0.00,0.04,4.03,2.18,1.64,2.25,0.78,3.66,2.76,0.90,1.40,0.88] seconds) + py312-pkg: OK (2.89=setup[0.01]+cmd[0.00,0.03,0.20,0.26,0.32,0.31,0.30,0.29,0.29,0.30,0.29,0.28] seconds) + congratulations :) (166.44 seconds) From ffced12b8a6ec647a948a60864c161d6a70bd88f Mon Sep 17 00:00:00 2001 From: Rahul R Date: Sun, 22 Mar 2026 15:07:09 +0000 Subject: [PATCH 07/20] Updated version of numpy template --- .../numpy_write_method.py.mako | 45 ++++++++----------- 1 file changed, 19 insertions(+), 26 deletions(-) diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako index 8454f60a92..de608f09a5 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako @@ -1,41 +1,33 @@ <%page args="f, config, method_template"/>\ <% - '''Renders a GrpcStubInterpreter method for numpy write operations with complex number support.''' + '''Renders a GrpcStubInterpreter method corresponding to the passed-in function metadata.''' import build.helper as helper parameters = f['parameters'] full_func_name = f['interpreter_name'] + method_template['method_python_name_suffix'] method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION) + grpc_name = f.get('grpc_name', f['name']) + grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) + return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) + if return_statement == 'return': + return_statement = None + capture_response = 'response = ' if return_statement else '' included_in_proto = f.get('included_in_proto', True) - - # Identify numpy parameters with complex number types numpy_complex_params = [ p for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.NUMPY_PARAMETERS) if p.get('complex_array_representation') is not None and p.get('original_type') in ('NIComplexNumber[]', 'NIComplexNumberF32[]', 'NIComplexI16[]') ] - - # Only generate gRPC implementation if complex parameters exist and included in proto - should_generate_grpc_impl = len(numpy_complex_params) > 0 and included_in_proto - - if should_generate_grpc_impl: - # Generate gRPC request with complex number conversion - grpc_name = f.get('grpc_name', f['name']) - grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) - - # Replace parameter names with _list suffixed versions for complex parameters - for p in numpy_complex_params: - grpc_request_args = grpc_request_args.replace( - p['grpc_name'] + '=' + p['python_name'], - p['grpc_name'] + '=' + p['python_name'] + '_list' - ) - - return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) - if return_statement == 'return': - return_statement = None - capture_response = 'response = ' if return_statement else '' + # For numpy complex inputs, create NIComplex message lists and map them in the request args + for p in numpy_complex_params: + # Replace occurrences like "field=python_name" with "field=python_name_list" + grpc_request_args = grpc_request_args.replace( + p['grpc_name'] + '=' + p['python_name'], + p['grpc_name'] + '=' + p['python_name'] + '_list' + ) + %>\ def ${full_func_name}(${method_decl_params}): # noqa: N802 -% if should_generate_grpc_impl: +% if included_in_proto: % for p in numpy_complex_params: % if p['original_type'] == 'NIComplexNumber[]': ${p['python_name']}_list = [ @@ -48,6 +40,7 @@ for val in ${p['python_name']}.ravel() ] % elif p['original_type'] == 'NIComplexI16[]': + import numpy as np arr = ${p['python_name']}.ravel() if arr.size % 2 != 0: raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") @@ -66,5 +59,5 @@ ${return_statement} % endif % else: - raise NotImplementedError('numpy-specific methods are not supported over gRPC') -% endif \ No newline at end of file + raise NotImplementedError('${full_func_name} is not supported over gRPC') +% endif From b98dcfb64a0f4ee83a063926283f4d47a82b6bb8 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Mon, 23 Mar 2026 06:16:49 +0000 Subject: [PATCH 08/20] Updating generate temply for numpy_write_method --- .../numpy_write_method.py.mako | 43 +++++++++++-------- src/nirfsg/metadata/attributes.py | 2 +- src/nirfsg/metadata/config.py | 4 +- src/nirfsg/metadata/enums.py | 2 +- src/nirfsg/metadata/functions.py | 4 +- 5 files changed, 31 insertions(+), 24 deletions(-) diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako index de608f09a5..4fd444a3b5 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako @@ -1,33 +1,41 @@ <%page args="f, config, method_template"/>\ <% - '''Renders a GrpcStubInterpreter method corresponding to the passed-in function metadata.''' + '''Renders a GrpcStubInterpreter method for numpy write operations with complex number support.''' import build.helper as helper parameters = f['parameters'] full_func_name = f['interpreter_name'] + method_template['method_python_name_suffix'] method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION) - grpc_name = f.get('grpc_name', f['name']) - grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) - return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) - if return_statement == 'return': - return_statement = None - capture_response = 'response = ' if return_statement else '' included_in_proto = f.get('included_in_proto', True) + + # Identify numpy parameters with complex number types numpy_complex_params = [ p for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.NUMPY_PARAMETERS) if p.get('complex_array_representation') is not None and p.get('original_type') in ('NIComplexNumber[]', 'NIComplexNumberF32[]', 'NIComplexI16[]') ] - # For numpy complex inputs, create NIComplex message lists and map them in the request args - for p in numpy_complex_params: - # Replace occurrences like "field=python_name" with "field=python_name_list" - grpc_request_args = grpc_request_args.replace( - p['grpc_name'] + '=' + p['python_name'], - p['grpc_name'] + '=' + p['python_name'] + '_list' - ) - + + # Only generate gRPC implementation if the function has complex parameters and is included in proto + should_generate_grpc_impl = len(numpy_complex_params) > 0 and included_in_proto + + if should_generate_grpc_impl: + # Generate gRPC request with complex number conversion + grpc_name = f.get('grpc_name', f['name']) + grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) + + # Replace parameter names with _list suffixed versions for complex parameters + for p in numpy_complex_params: + grpc_request_args = grpc_request_args.replace( + p['grpc_name'] + '=' + p['python_name'], + p['grpc_name'] + '=' + p['python_name'] + '_list' + ) + + return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) + if return_statement == 'return': + return_statement = None + capture_response = 'response = ' if return_statement else '' %>\ def ${full_func_name}(${method_decl_params}): # noqa: N802 -% if included_in_proto: +% if should_generate_grpc_impl: % for p in numpy_complex_params: % if p['original_type'] == 'NIComplexNumber[]': ${p['python_name']}_list = [ @@ -40,7 +48,6 @@ for val in ${p['python_name']}.ravel() ] % elif p['original_type'] == 'NIComplexI16[]': - import numpy as np arr = ${p['python_name']}.ravel() if arr.size % 2 != 0: raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") @@ -59,5 +66,5 @@ ${return_statement} % endif % else: - raise NotImplementedError('${full_func_name} is not supported over gRPC') + raise NotImplementedError('numpy-specific methods are not supported over gRPC') % endif diff --git a/src/nirfsg/metadata/attributes.py b/src/nirfsg/metadata/attributes.py index 102b759d56..f75335335c 100644 --- a/src/nirfsg/metadata/attributes.py +++ b/src/nirfsg/metadata/attributes.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d9999 +# This file is generated from NI-RFSG API metadata version 26.3.0d293 attributes = { 1050302: { 'access': 'read only', diff --git a/src/nirfsg/metadata/config.py b/src/nirfsg/metadata/config.py index 6f0e29f0e2..002938a108 100644 --- a/src/nirfsg/metadata/config.py +++ b/src/nirfsg/metadata/config.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d9999 +# This file is generated from NI-RFSG API metadata version 26.3.0d293 config = { - 'api_version': '26.3.0d9999', + 'api_version': '26.3.0d293', 'c_function_prefix': 'niRFSG_', 'close_function': 'close', 'context_manager_name': { diff --git a/src/nirfsg/metadata/enums.py b/src/nirfsg/metadata/enums.py index b1c411b502..adccf2857d 100644 --- a/src/nirfsg/metadata/enums.py +++ b/src/nirfsg/metadata/enums.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d9999 +# This file is generated from NI-RFSG API metadata version 26.3.0d293 enums = { 'AllowOutOfSpecificationUserSettings': { 'values': [ diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index ea0a800d81..0c89b8debf 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d9999 +# This file is generated from NI-RFSG API metadata version 26.3.0d293 functions = { 'Abort': { 'codegen_method': 'public', @@ -3921,8 +3921,8 @@ ] }, 'enum': 'TriggerIdentifier', - 'name': 'triggerIdentifier', 'grpc_enum': 'SignalIdentifier', + 'name': 'triggerIdentifier', 'type': 'ViConstString', 'use_array': False, 'use_in_python_api': True From d69e84363e000a2a026f3d0bd3cc147b45a915b1 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Mon, 23 Mar 2026 06:27:42 +0000 Subject: [PATCH 09/20] updating numpy read template instead of write template. --- .../numpy_write_method.py.mako | 71 +------------------ 1 file changed, 2 insertions(+), 69 deletions(-) diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako index 4fd444a3b5..648b9a0e14 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako @@ -1,70 +1,3 @@ <%page args="f, config, method_template"/>\ -<% - '''Renders a GrpcStubInterpreter method for numpy write operations with complex number support.''' - import build.helper as helper - parameters = f['parameters'] - full_func_name = f['interpreter_name'] + method_template['method_python_name_suffix'] - method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION) - included_in_proto = f.get('included_in_proto', True) - - # Identify numpy parameters with complex number types - numpy_complex_params = [ - p for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.NUMPY_PARAMETERS) - if p.get('complex_array_representation') is not None and p.get('original_type') in ('NIComplexNumber[]', 'NIComplexNumberF32[]', 'NIComplexI16[]') - ] - - # Only generate gRPC implementation if the function has complex parameters and is included in proto - should_generate_grpc_impl = len(numpy_complex_params) > 0 and included_in_proto - - if should_generate_grpc_impl: - # Generate gRPC request with complex number conversion - grpc_name = f.get('grpc_name', f['name']) - grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) - - # Replace parameter names with _list suffixed versions for complex parameters - for p in numpy_complex_params: - grpc_request_args = grpc_request_args.replace( - p['grpc_name'] + '=' + p['python_name'], - p['grpc_name'] + '=' + p['python_name'] + '_list' - ) - - return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) - if return_statement == 'return': - return_statement = None - capture_response = 'response = ' if return_statement else '' -%>\ - - def ${full_func_name}(${method_decl_params}): # noqa: N802 -% if should_generate_grpc_impl: -% for p in numpy_complex_params: -% if p['original_type'] == 'NIComplexNumber[]': - ${p['python_name']}_list = [ - grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) - for val in ${p['python_name']}.ravel() - ] -% elif p['original_type'] == 'NIComplexNumberF32[]': - ${p['python_name']}_list = [ - grpc_complex_types.NIComplexNumberF32(real=val.real, imaginary=val.imag) - for val in ${p['python_name']}.ravel() - ] -% elif p['original_type'] == 'NIComplexI16[]': - arr = ${p['python_name']}.ravel() - if arr.size % 2 != 0: - raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") - arr_pairs = arr.reshape(-1, 2) - ${p['python_name']}_list = [ - grpc_complex_types.NIComplexI16(real=int(pair[0]), imaginary=int(pair[1])) - for pair in arr_pairs - ] -% endif -% endfor - ${capture_response}self._invoke( - self._client.${grpc_name}, - grpc_types.${grpc_name}Request(${grpc_request_args}), - ) -% if return_statement: - ${return_statement} -% endif -% else: - raise NotImplementedError('numpy-specific methods are not supported over gRPC') -% endif +## numpy_read and numpy_write are identical for gRPC -- both return a NotImplementedError +<%include file="/_grpc_stub_interpreter.py/numpy_read_method.py.mako" args="f=f, config=config, method_template=method_template" />\ From cd63014fc45798e265b0e93ecff307fc3e8c4d03 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Mon, 23 Mar 2026 06:27:58 +0000 Subject: [PATCH 10/20] Updated read method --- .../numpy_read_method.py.mako | 64 ++++++++++++++++++- 1 file changed, 61 insertions(+), 3 deletions(-) diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako index 94c4cd4215..4fd444a3b5 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako @@ -1,12 +1,70 @@ <%page args="f, config, method_template"/>\ <% - '''Renders a NotImplemented method for to the passed-in function metadata, because numpy is not supported over grpc.''' - + '''Renders a GrpcStubInterpreter method for numpy write operations with complex number support.''' import build.helper as helper - + parameters = f['parameters'] full_func_name = f['interpreter_name'] + method_template['method_python_name_suffix'] method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION) + included_in_proto = f.get('included_in_proto', True) + + # Identify numpy parameters with complex number types + numpy_complex_params = [ + p for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.NUMPY_PARAMETERS) + if p.get('complex_array_representation') is not None and p.get('original_type') in ('NIComplexNumber[]', 'NIComplexNumberF32[]', 'NIComplexI16[]') + ] + + # Only generate gRPC implementation if the function has complex parameters and is included in proto + should_generate_grpc_impl = len(numpy_complex_params) > 0 and included_in_proto + + if should_generate_grpc_impl: + # Generate gRPC request with complex number conversion + grpc_name = f.get('grpc_name', f['name']) + grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) + + # Replace parameter names with _list suffixed versions for complex parameters + for p in numpy_complex_params: + grpc_request_args = grpc_request_args.replace( + p['grpc_name'] + '=' + p['python_name'], + p['grpc_name'] + '=' + p['python_name'] + '_list' + ) + + return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) + if return_statement == 'return': + return_statement = None + capture_response = 'response = ' if return_statement else '' %>\ def ${full_func_name}(${method_decl_params}): # noqa: N802 +% if should_generate_grpc_impl: +% for p in numpy_complex_params: +% if p['original_type'] == 'NIComplexNumber[]': + ${p['python_name']}_list = [ + grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) + for val in ${p['python_name']}.ravel() + ] +% elif p['original_type'] == 'NIComplexNumberF32[]': + ${p['python_name']}_list = [ + grpc_complex_types.NIComplexNumberF32(real=val.real, imaginary=val.imag) + for val in ${p['python_name']}.ravel() + ] +% elif p['original_type'] == 'NIComplexI16[]': + arr = ${p['python_name']}.ravel() + if arr.size % 2 != 0: + raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") + arr_pairs = arr.reshape(-1, 2) + ${p['python_name']}_list = [ + grpc_complex_types.NIComplexI16(real=int(pair[0]), imaginary=int(pair[1])) + for pair in arr_pairs + ] +% endif +% endfor + ${capture_response}self._invoke( + self._client.${grpc_name}, + grpc_types.${grpc_name}Request(${grpc_request_args}), + ) +% if return_statement: + ${return_statement} +% endif +% else: raise NotImplementedError('numpy-specific methods are not supported over gRPC') +% endif From 104ab9767f28a2d4714553b289fea5b841dff0ec Mon Sep 17 00:00:00 2001 From: Rahul R Date: Mon, 23 Mar 2026 08:12:36 +0000 Subject: [PATCH 11/20] With nifake changes --- generated/nifake/nifake/_grpc_stub_interpreter.py | 9 ++++++++- src/nifake/metadata/functions.py | 2 +- src/nirfsg/metadata/attributes.py | 2 +- src/nirfsg/metadata/config.py | 4 ++-- src/nirfsg/metadata/enums.py | 2 +- src/nirfsg/metadata/functions.py | 4 ++-- 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/generated/nifake/nifake/_grpc_stub_interpreter.py b/generated/nifake/nifake/_grpc_stub_interpreter.py index 3c02d285c2..4e1defa12c 100644 --- a/generated/nifake/nifake/_grpc_stub_interpreter.py +++ b/generated/nifake/nifake/_grpc_stub_interpreter.py @@ -146,7 +146,14 @@ def fetch_waveform_into(self, number_of_samples): # noqa: N802 raise NotImplementedError('numpy-specific methods are not supported over gRPC') def function_with_3d_numpy_array_of_numpy_complex128_input_parameter(self, multidimensional_array): # noqa: N802 - raise NotImplementedError('numpy-specific methods are not supported over gRPC') + multidimensional_array_list = [ + grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) + for val in multidimensional_array.ravel() + ] + self._invoke( + self._client.FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter, + grpc_types.FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterRequest(vi=self._vi, multidimensional_array=multidimensional_array_list), + ) def function_with_intflag_parameter(self, flag): # noqa: N802 self._invoke( diff --git a/src/nifake/metadata/functions.py b/src/nifake/metadata/functions.py index 66aec01d86..adf2e26e5c 100644 --- a/src/nifake/metadata/functions.py +++ b/src/nifake/metadata/functions.py @@ -2991,7 +2991,7 @@ 'documentation': { 'description': 'Function that takes a 3D numpy array of numpy complex128 as an input parameter.' }, - 'included_in_proto': False, + 'included_in_proto': True, 'is_error_handling': False, 'method_templates': [ { diff --git a/src/nirfsg/metadata/attributes.py b/src/nirfsg/metadata/attributes.py index f75335335c..102b759d56 100644 --- a/src/nirfsg/metadata/attributes.py +++ b/src/nirfsg/metadata/attributes.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d293 +# This file is generated from NI-RFSG API metadata version 26.3.0d9999 attributes = { 1050302: { 'access': 'read only', diff --git a/src/nirfsg/metadata/config.py b/src/nirfsg/metadata/config.py index 002938a108..6f0e29f0e2 100644 --- a/src/nirfsg/metadata/config.py +++ b/src/nirfsg/metadata/config.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d293 +# This file is generated from NI-RFSG API metadata version 26.3.0d9999 config = { - 'api_version': '26.3.0d293', + 'api_version': '26.3.0d9999', 'c_function_prefix': 'niRFSG_', 'close_function': 'close', 'context_manager_name': { diff --git a/src/nirfsg/metadata/enums.py b/src/nirfsg/metadata/enums.py index adccf2857d..b1c411b502 100644 --- a/src/nirfsg/metadata/enums.py +++ b/src/nirfsg/metadata/enums.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d293 +# This file is generated from NI-RFSG API metadata version 26.3.0d9999 enums = { 'AllowOutOfSpecificationUserSettings': { 'values': [ diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index 0c89b8debf..ea0a800d81 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-RFSG API metadata version 26.3.0d293 +# This file is generated from NI-RFSG API metadata version 26.3.0d9999 functions = { 'Abort': { 'codegen_method': 'public', @@ -3921,8 +3921,8 @@ ] }, 'enum': 'TriggerIdentifier', - 'grpc_enum': 'SignalIdentifier', 'name': 'triggerIdentifier', + 'grpc_enum': 'SignalIdentifier', 'type': 'ViConstString', 'use_array': False, 'use_in_python_api': True From 5af2c2dd0bd46ce1bd0d8ce1210c0060b1dbd7c5 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Mon, 23 Mar 2026 08:45:42 +0000 Subject: [PATCH 12/20] Updated template to use helper methods --- build/helper/__init__.py | 1 + build/helper/metadata_filters.py | 5 +++++ .../_grpc_stub_interpreter.py/numpy_read_method.py.mako | 7 ++----- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/build/helper/__init__.py b/build/helper/__init__.py index 08ed178f15..5cc9085467 100644 --- a/build/helper/__init__.py +++ b/build/helper/__init__.py @@ -52,6 +52,7 @@ from build.helper.metadata_filters import filter_library_functions # noqa: F401 from build.helper.metadata_filters import filter_parameters # noqa: F401 from build.helper.metadata_filters import filter_public_functions # noqa: F401 +from build.helper.metadata_filters import function_has_complex_parameters # noqa: F401 from build.helper.metadata_find import find_custom_type # noqa: F401 from build.helper.metadata_find import find_session_handle_parameter # noqa: F401 diff --git a/build/helper/metadata_filters.py b/build/helper/metadata_filters.py index e5280e9c74..aa03e28de6 100644 --- a/build/helper/metadata_filters.py +++ b/build/helper/metadata_filters.py @@ -499,3 +499,8 @@ def are_complex_parameters_used(functions): are_complex_parameters_used = True break return are_complex_parameters_used + + +def function_has_complex_parameters(function): + '''Returns bool based on whether any complex parameters are used in the function metadata.''' + return bool(filter_parameters(function['parameters'], ParameterUsageOptions.COMPLEX_NUMBER_PARAMETERS)) diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako index 4fd444a3b5..b6a1c2305c 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako @@ -8,13 +8,10 @@ included_in_proto = f.get('included_in_proto', True) # Identify numpy parameters with complex number types - numpy_complex_params = [ - p for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.NUMPY_PARAMETERS) - if p.get('complex_array_representation') is not None and p.get('original_type') in ('NIComplexNumber[]', 'NIComplexNumberF32[]', 'NIComplexI16[]') - ] + numpy_complex_params = helper.filter_parameters(parameters, helper.ParameterUsageOptions.COMPLEX_NUMBER_PARAMETERS) # Only generate gRPC implementation if the function has complex parameters and is included in proto - should_generate_grpc_impl = len(numpy_complex_params) > 0 and included_in_proto + should_generate_grpc_impl = helper.function_has_complex_parameters(f) and included_in_proto if should_generate_grpc_impl: # Generate gRPC request with complex number conversion From cf39c3b2b87f363a64ed0f0cc505508649ab9284 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Mon, 23 Mar 2026 09:41:02 +0000 Subject: [PATCH 13/20] Updated with proto changes --- .../numpy_read_method.py.mako | 6 ++-- .../nifake/nifake/_grpc_stub_interpreter.py | 31 +++++++++++++++++-- src/nifake/metadata/functions.py | 6 ++-- 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako index b6a1c2305c..21c9aca762 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako @@ -11,9 +11,9 @@ numpy_complex_params = helper.filter_parameters(parameters, helper.ParameterUsageOptions.COMPLEX_NUMBER_PARAMETERS) # Only generate gRPC implementation if the function has complex parameters and is included in proto - should_generate_grpc_impl = helper.function_has_complex_parameters(f) and included_in_proto + has_complex_grpc_support = helper.function_has_complex_parameters(f) and included_in_proto - if should_generate_grpc_impl: + if has_complex_grpc_support: # Generate gRPC request with complex number conversion grpc_name = f.get('grpc_name', f['name']) grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) @@ -32,7 +32,7 @@ %>\ def ${full_func_name}(${method_decl_params}): # noqa: N802 -% if should_generate_grpc_impl: +% if has_complex_grpc_support: % for p in numpy_complex_params: % if p['original_type'] == 'NIComplexNumber[]': ${p['python_name']}_list = [ diff --git a/generated/nifake/nifake/_grpc_stub_interpreter.py b/generated/nifake/nifake/_grpc_stub_interpreter.py index 4e1defa12c..ef685192cf 100644 --- a/generated/nifake/nifake/_grpc_stub_interpreter.py +++ b/generated/nifake/nifake/_grpc_stub_interpreter.py @@ -520,13 +520,38 @@ def write_waveform_numpy(self, waveform): # noqa: N802 raise NotImplementedError('numpy-specific methods are not supported over gRPC') def write_waveform_numpy_complex128(self, waveform_data_array): # noqa: N802 - raise NotImplementedError('numpy-specific methods are not supported over gRPC') + waveform_data_array_list = [ + grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) + for val in waveform_data_array.ravel() + ] + self._invoke( + self._client.WriteWaveformNumpyComplex128, + grpc_types.WriteWaveformNumpyComplex128Request(vi=self._vi, waveform_data_array=waveform_data_array_list), + ) def write_waveform_numpy_complex64(self, waveform_data_array): # noqa: N802 - raise NotImplementedError('numpy-specific methods are not supported over gRPC') + waveform_data_array_list = [ + grpc_complex_types.NIComplexNumberF32(real=val.real, imaginary=val.imag) + for val in waveform_data_array.ravel() + ] + self._invoke( + self._client.WriteWaveformNumpyComplex64, + grpc_types.WriteWaveformNumpyComplex64Request(vi=self._vi, waveform_data_array=waveform_data_array_list), + ) def write_waveform_numpy_complex_interleaved_i16(self, waveform_data_array): # noqa: N802 - raise NotImplementedError('numpy-specific methods are not supported over gRPC') + arr = waveform_data_array.ravel() + if arr.size % 2 != 0: + raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") + arr_pairs = arr.reshape(-1, 2) + waveform_data_array_list = [ + grpc_complex_types.NIComplexI16(real=int(pair[0]), imaginary=int(pair[1])) + for pair in arr_pairs + ] + self._invoke( + self._client.WriteWaveformNumpyComplexInterleavedI16, + grpc_types.WriteWaveformNumpyComplexInterleavedI16Request(vi=self._vi, waveform_data_array=waveform_data_array_list), + ) def close(self): # noqa: N802 self._invoke( diff --git a/src/nifake/metadata/functions.py b/src/nifake/metadata/functions.py index adf2e26e5c..ea56244b6e 100644 --- a/src/nifake/metadata/functions.py +++ b/src/nifake/metadata/functions.py @@ -2830,7 +2830,7 @@ 'documentation': { 'description': 'A function that writes a waveform of numpy complex64 samples.' }, - 'included_in_proto': False, + 'included_in_proto': True, 'method_templates': [ { 'documentation_filename': 'numpy_method', @@ -2883,7 +2883,7 @@ 'documentation': { 'description': 'A function that writes a waveform of numpy complex128 samples.' }, - 'included_in_proto': False, + 'included_in_proto': True, 'is_error_handling': False, 'method_templates': [ { @@ -2937,7 +2937,7 @@ 'documentation': { 'description': 'A function that writes a waveform of numpy complex i16 samples.' }, - 'included_in_proto': False, + 'included_in_proto': True, 'is_error_handling': False, 'method_templates': [ { From 66d41ad31bbe1fde273137c9976a9fa4bcf22a89 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Mon, 23 Mar 2026 09:45:07 +0000 Subject: [PATCH 14/20] Remove log file --- log.log | 2683 ------------------------------------------------------- 1 file changed, 2683 deletions(-) delete mode 100644 log.log diff --git a/log.log b/log.log deleted file mode 100644 index 66e2fcb63f..0000000000 --- a/log.log +++ /dev/null @@ -1,2683 +0,0 @@ -py312-build_test: commands[0]> python --version -Python 3.12.3 -py312-build_test: commands[1]> python -c 'import platform; print(platform.architecture())' -('64bit', 'ELF') -py312-build_test: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip -Requirement already satisfied: pip in ./.tox/64/py312-build_test/lib/python3.12/site-packages (26.0.1) -py312-build_test: commands[3]> python -m pip list -Package Version ------------ ------- -coverage 7.13.4 -flake8 7.3.0 -hacking 8.0.0 -iniconfig 2.3.0 -Mako 1.3.10 -MarkupSafe 3.0.3 -mccabe 0.7.0 -packaging 26.0 -pep8-naming 0.15.1 -pip 26.0.1 -pluggy 1.6.0 -pycodestyle 2.14.0 -pyflakes 3.4.0 -Pygments 2.19.2 -pytest 9.0.2 -py312-build_test: commands[4]> coverage run --rcfile=tools/coverage_unit_tests.rc --source build.helper -m pytest --pyargs build.helper -============================= test session starts ============================== -platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-build_test/bin/python -cachedir: .tox/64/py312-build_test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -collecting ... collected 1 item - -build/helper/documentation_helper.py::build.helper.documentation_helper.as_rest_table PASSED [100%] - -============================== 1 passed in 0.48s =============================== -py312-build_test: commands[5]> coverage run --append --rcfile=tools/coverage_unit_tests.rc --source build.helper -m pytest build/unit_tests -s -============================= test session starts ============================== -platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-build_test/bin/python -cachedir: .tox/64/py312-build_test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -collecting ... collected 98 items - -build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_vi PASSED -build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_int PASSED -build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_string PASSED -build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_custom_type PASSED -build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_enum PASSED -build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_into PASSED -build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_vi PASSED -build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_int PASSED -build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_string PASSED -build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_custom_type PASSED -build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_enum PASSED -build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_bytes PASSED -build/unit_tests/test_codegen_helper.py::test_get_session_method_return_snippet PASSED -build/unit_tests/test_codegen_helper.py::test_get_session_method_return_snippet_non_numpy PASSED -build/unit_tests/test_codegen_helper.py::test_get_session_method_return_snippet_numpy PASSED -build/unit_tests/test_codegen_helper.py::test_get_enum_type_check_snippet PASSED -build/unit_tests/test_codegen_helper.py::test_get_buffer_parameters_for_size_parameter_none PASSED -build/unit_tests/test_codegen_helper.py::test_get_buffer_parameters_for_size_parameter PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c010 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c020 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c030 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c050 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c060 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c070 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c080 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c090 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c100 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s110 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s120 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s130 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s150 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s160 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s161 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s170 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s180 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s2190 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s200 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s210 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s220 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b510 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b540 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b550_array PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b550_list PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b560 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b570 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b580_array PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b590_array PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b580_list PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b590_list PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b600 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b610_array PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b620_array PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b610_list PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b620_list PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_bad_ivi_dance_step PASSED -build/unit_tests/test_codegen_helper.py::test_get_enum_value_snippet PASSED -build/unit_tests/test_documentation_helper.py::test_get_function_rst_default PASSED -build/unit_tests/test_documentation_helper.py::test_get_function_rst_numpy PASSED -build/unit_tests/test_documentation_helper.py::test_get_attribute_repeated_caps PASSED -build/unit_tests/test_documentation_helper.py::test_get_attribute_repeated_caps_with_conjunction PASSED -build/unit_tests/test_documentation_helper.py::test_module_supports_repeated_caps PASSED -build/unit_tests/test_documentation_helper.py::test_get_function_docstring_default PASSED -build/unit_tests/test_documentation_helper.py::test_get_function_docstring_numpy PASSED -build/unit_tests/test_documentation_helper.py::test_get_rst_header_snippet PASSED -build/unit_tests/test_documentation_helper.py::test_get_documentation_for_node_docstring PASSED -build/unit_tests/test_documentation_helper.py::test_get_rst_picture_reference PASSED -build/unit_tests/test_documentation_helper.py::test_square_up_tables PASSED -build/unit_tests/test_documentation_helper.py::test_add_notes_re_links PASSED -build/unit_tests/test_documentation_snippets.py::test_close_function_def_for_doc_note_not_list PASSED -build/unit_tests/test_documentation_snippets.py::test_close_function_def_for_doc_note_list PASSED -build/unit_tests/test_documentation_snippets.py::test_close_function_def_for_doc_no_note PASSED -build/unit_tests/test_documentation_snippets.py::test_initiate_function_def_for_doc_note_not_list PASSED -build/unit_tests/test_documentation_snippets.py::test_initiate_function_def_for_doc_note_list PASSED -build/unit_tests/test_documentation_snippets.py::test_initiate_function_def_for_doc_no_note PASSED -build/unit_tests/test_helper.py::test_get_development_status PASSED -build/unit_tests/test_helper.py::test_enum_uses_converter PASSED -build/unit_tests/test_metadata_add_all.py::test_add_functions_metadata_simple Couldn't find InitWithOptions init function -PASSED -build/unit_tests/test_metadata_add_all.py::test_add_attributes_metadata_simple PASSED -build/unit_tests/test_metadata_add_all.py::test_add_enums_metadata_simple PASSED -build/unit_tests/test_metadata_add_all.py::test_add_all_metadata_defaults Couldn't find InitWithOptions init function -PASSED -build/unit_tests/test_metadata_add_all.py::test_add_all_metadata Couldn't find InitWithOptions init function -PASSED -build/unit_tests/test_metadata_add_all.py::test_add_enum_codegen_method PASSED -build/unit_tests/test_metadata_add_all.py::test_add_enum_codegen_method_error PASSED -build/unit_tests/test_metadata_add_all.py::test_get_functions_that_use_enums PASSED -build/unit_tests/test_metadata_add_all.py::test_get_attributes_that_use_enums PASSED -build/unit_tests/test_metadata_add_all.py::test_get_least_restrictive_codegen_method PASSED -build/unit_tests/test_metadata_filters.py::test_filter_parameters_mixed_usage_ivi_dance_and_len PASSED -build/unit_tests/test_metadata_filters.py::test_filter_parameters_multiple_len_sizes PASSED -build/unit_tests/test_metadata_find.py::test_find_len_size_parameter_names_multiple_sizes PASSED -build/unit_tests/test_metadata_find.py::test_find_len_size_parameter_names_empty_when_no_len_parameters PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_second_is_empty PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_key_exists PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_recurse PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_replace_in_list PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_replace_in_dict_and_list PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_with_regex PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_with_regex_off PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_top_level_key_missing PASSED - -============================== 98 passed in 0.61s ============================== -py312-build_test: commands[6]> coverage report -Name Stmts Miss Cover -------------------------------------------------------------- -build/helper/__init__.py 53 0 100% -build/helper/codegen_helper.py 310 50 84% -build/helper/documentation_helper.py 519 60 88% -build/helper/documentation_snippets.py 53 8 85% -build/helper/helper.py 52 11 79% -build/helper/metadata_add_all.py 434 82 81% -build/helper/metadata_filters.py 103 24 77% -build/helper/metadata_find.py 36 7 81% -build/helper/metadata_merge_dicts.py 43 9 79% -build/helper/parameter_usage_options.py 60 0 100% -------------------------------------------------------------- -TOTAL 1663 251 85% -py312-build_test: commands[7]> coverage xml -o codegen.xml -Wrote XML report to codegen.xml -py312-build_test: commands[8]> coverage html --directory=generated/htmlcov/unit_tests/codegen -Wrote HTML report to generated/htmlcov/unit_tests/codegen/index.html -py312-build_test: commands[9]> flake8 --config=./tox.ini '--per-file-ignores=build/unit_tests/*.py:F403,F405' build/ -py312-build_test: OK ✔ in 3.85 seconds -py312-codegen: commands[0]> python --version -Python 3.12.3 -py312-codegen: commands[1]> python -c 'import platform; print(platform.architecture())' -('64bit', 'ELF') -py312-codegen: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip -Requirement already satisfied: pip in ./.tox/64/py312-codegen/lib/python3.12/site-packages (26.0.1) -py312-codegen: commands[3]> make - -Making nifake - Making dir: generated/nifake - Making dir: generated/nifake/nifake - Making dir: generated/nifake/nifake/unit_tests - Making dir: generated/nifake/log - Generating: generated/nifake/nifake/_attributes.py - Generating: generated/nifake/nifake/enums.py - Generating: generated/nifake/nifake/_library.py - Generating: generated/nifake/nifake/_library_interpreter.py - Generating: generated/nifake/nifake/_library_singleton.py - Generating: generated/nifake/nifake/session.py - Generating: generated/nifake/nifake/errors.py - Generating: generated/nifake/nifake/unit_tests/_mock_helper.py - Generating: generated/nifake/nifake/unit_tests/_matchers.py - Generating: generated/nifake/nifake/__init__.py - Generating: generated/nifake/nifake/_converters.py - Generating: generated/nifake/nifake/VERSION - Generating: generated/nifake/nifake/_grpc_stub_interpreter.py - Generating: generated/nifake/nifake/grpc_session_options.py - Generating: generated/nifake/nifake/nifake_pb2.py and nifake_pb2_grpc.py - Generating: generated/nifake/nifake/nidevice_pb2.py and nidevice_pb2_grpc.py - Generating: generated/nifake/nifake/session_pb2.py and session_pb2_grpc.py - Generating: generated/nifake/nifake/_complextype.py - Copying: generated/nifake/nifake/_visatype.py - Copying: generated/nifake/nifake/custom_struct.py - Copying: generated/nifake/nifake/custom_struct_typedef.py - Copying: generated/nifake/nifake/custom_struct_nested_typedef.py - Copying: generated/nifake/README.rst - Generating: generated/nifake/setup.py - Generating: generated/nifake/tox-system_tests.ini - Copying: generated/nifake/nifake/unit_tests/test_converters.py - Copying: generated/nifake/nifake/unit_tests/test_grpc.py - Copying: generated/nifake/nifake/unit_tests/test_library_interpreter.py - Copying: generated/nifake/nifake/unit_tests/test_library_singleton.py - Copying: generated/nifake/nifake/unit_tests/test_session.py - -Making nidcpower - Making dir: generated/nidcpower - Making dir: generated/nidcpower/nidcpower - Making dir: generated/nidcpower/nidcpower/unit_tests - Making dir: generated/nidcpower/log - Making dir: generated/examples - Generating: generated/nidcpower/nidcpower/_attributes.py - Generating: generated/nidcpower/nidcpower/enums.py - Generating: generated/nidcpower/nidcpower/_library.py - Generating: generated/nidcpower/nidcpower/_library_interpreter.py - Generating: generated/nidcpower/nidcpower/_library_singleton.py - Generating: generated/nidcpower/nidcpower/session.py -Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! -Warning: "reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! - Generating: generated/nidcpower/nidcpower/errors.py - Generating: generated/nidcpower/nidcpower/unit_tests/_mock_helper.py - Generating: generated/nidcpower/nidcpower/unit_tests/_matchers.py - Generating: generated/nidcpower/nidcpower/__init__.py - Generating: generated/nidcpower/nidcpower/_converters.py - Generating: generated/nidcpower/nidcpower/VERSION - Generating: generated/nidcpower/nidcpower/_grpc_stub_interpreter.py - Generating: generated/nidcpower/nidcpower/grpc_session_options.py - Generating: generated/nidcpower/nidcpower/nidcpower_pb2.py and nidcpower_pb2_grpc.py - Generating: generated/nidcpower/nidcpower/nidevice_pb2.py and nidevice_pb2_grpc.py - Generating: generated/nidcpower/nidcpower/session_pb2.py and session_pb2_grpc.py - Copying: generated/nidcpower/nidcpower/_visatype.py - Copying: generated/nidcpower/nidcpower/lcr_load_compensation_spot.py - Copying: generated/nidcpower/nidcpower/lcr_measurement.py - Generating: docs/nidcpower/about_nidcpower.inc - Generating: docs/nidcpower/index.rst - Generating: docs/nidcpower/nidcpower.rst - Generating: docs/nidcpower/enums.rst - Generating: docs/nidcpower/examples.rst - Generating: docs/nidcpower/installation.inc - Generating: docs/nidcpower/status.inc - Generating: docs/nidcpower/class.rst -Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! -Warning: "reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! - Generating: docs/nidcpower/toc.inc - Generating: docs/nidcpower/errors.rst - Generating: docs/nidcpower/rep_caps.rst - Generating: docs/nidcpower/grpc_session_options.rst - Creating: generated/nidcpower/README.rst - Generating: generated/nidcpower/setup.py - Generating: generated/nidcpower/tox-system_tests.ini - Zipping: generated/examples/nidcpower_examples.zip - zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nidcpower_examples.zip not found or empty - adding: nidcpower_advanced_sequence.py (deflated 66%) - adding: nidcpower_constant_resistance_and_constant_power.py (deflated 73%) - adding: nidcpower_lcr_source_ac_voltage.py (deflated 71%) - adding: nidcpower_measure_record.py (deflated 59%) - adding: nidcpower_sink_dc_current_into_electronic_load.py (deflated 74%) - adding: nidcpower_source_delay_measure.py (deflated 64%) - Copying: generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py - Generating: docs/nidcpower/conf.py - Generating: docs/nidcpower/.readthedocs.yaml - -Making nidigital - Making dir: generated/nidigital - Making dir: generated/nidigital/nidigital - Making dir: generated/nidigital/nidigital/unit_tests - Making dir: generated/nidigital/log - Generating: generated/nidigital/nidigital/_attributes.py - Generating: generated/nidigital/nidigital/enums.py - Generating: generated/nidigital/nidigital/_library.py - Generating: generated/nidigital/nidigital/_library_interpreter.py - Generating: generated/nidigital/nidigital/_library_singleton.py - Generating: generated/nidigital/nidigital/session.py -Warning: "PPMU_ConfigureCurrentLevelRange" not found in function metadata. Typo? Generated code will be funky! -Warning: "PPMU_ConfigureCurrentLevelRange" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "GetPatternPinIndexeswith" not found in function metadata. Typo? Generated code will be funky! -Warning: "GetChannelName" not found in function metadata. Typo? Generated code will be funky! -Warning: "SortSiteResultsViBoolean" not found in function metadata. Typo? Generated code will be funky! - Generating: generated/nidigital/nidigital/errors.py - Generating: generated/nidigital/nidigital/unit_tests/_mock_helper.py - Generating: generated/nidigital/nidigital/unit_tests/_matchers.py - Generating: generated/nidigital/nidigital/__init__.py - Generating: generated/nidigital/nidigital/_converters.py - Generating: generated/nidigital/nidigital/VERSION - Generating: generated/nidigital/nidigital/_grpc_stub_interpreter.py - Generating: generated/nidigital/nidigital/grpc_session_options.py - Generating: generated/nidigital/nidigital/nidigitalpattern_pb2.py and nidigitalpattern_pb2_grpc.py - Generating: generated/nidigital/nidigital/nidevice_pb2.py and nidevice_pb2_grpc.py - Generating: generated/nidigital/nidigital/session_pb2.py and session_pb2_grpc.py - Copying: generated/nidigital/nidigital/_visatype.py - Copying: generated/nidigital/nidigital/history_ram_cycle_information.py - Generating: docs/nidigital/about_nidigital.inc - Generating: docs/nidigital/index.rst - Generating: docs/nidigital/nidigital.rst - Generating: docs/nidigital/enums.rst - Generating: docs/nidigital/examples.rst - Generating: docs/nidigital/installation.inc - Generating: docs/nidigital/status.inc - Generating: docs/nidigital/class.rst -Warning: "PPMU_ConfigureCurrentLevelRange" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! - Generating: docs/nidigital/toc.inc - Generating: docs/nidigital/errors.rst - Generating: docs/nidigital/rep_caps.rst - Generating: docs/nidigital/grpc_session_options.rst - Creating: generated/nidigital/README.rst - Generating: generated/nidigital/setup.py - Generating: generated/nidigital/tox-system_tests.ini - Zipping: generated/examples/nidigital_examples.zip - zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nidigital_examples.zip not found or empty - adding: burst_with_start_trigger/ (stored 0%) - adding: burst_with_start_trigger/Pattern.digipat (deflated 82%) - adding: burst_with_start_trigger/PinLevels.digilevels (deflated 54%) - adding: burst_with_start_trigger/Timing.digitiming (deflated 58%) - adding: burst_with_start_trigger/PinMap.pinmap (deflated 80%) - adding: burst_with_start_trigger/burst_with_start_trigger.digiproj (deflated 76%) - adding: burst_with_start_trigger/Specifications.specs (deflated 44%) - adding: burst_with_start_trigger/nidigital_burst_with_start_trigger.py (deflated 67%) - adding: configure_time_set_and_voltage_levels/ (stored 0%) - adding: configure_time_set_and_voltage_levels/Pattern.digipat (deflated 82%) - adding: configure_time_set_and_voltage_levels/nidigital_configure_time_set_and_voltage_levels.py (deflated 72%) - adding: configure_time_set_and_voltage_levels/configure_time_set_and_voltage_levels.digiproj (deflated 73%) - adding: configure_time_set_and_voltage_levels/PinMap.pinmap (deflated 80%) - adding: ppmu_source_and_measure/ (stored 0%) - adding: ppmu_source_and_measure/ppmu_source_and_measure.digiproj (deflated 74%) - adding: ppmu_source_and_measure/nidigital_ppmu_source_and_measure.py (deflated 77%) - adding: ppmu_source_and_measure/PinMap.pinmap (deflated 80%) - Copying: generated/nidigital/nidigital/unit_tests/test_nidigital.py - Generating: docs/nidigital/conf.py - Generating: docs/nidigital/.readthedocs.yaml - -Making nidmm - Making dir: generated/nidmm - Making dir: generated/nidmm/nidmm - Making dir: generated/nidmm/nidmm/unit_tests - Making dir: generated/nidmm/log - Generating: generated/nidmm/nidmm/_attributes.py - Generating: generated/nidmm/nidmm/enums.py - Generating: generated/nidmm/nidmm/_library.py - Generating: generated/nidmm/nidmm/_library_interpreter.py - Generating: generated/nidmm/nidmm/_library_singleton.py - Generating: generated/nidmm/nidmm/session.py -Warning: "ConfigureMeasurement" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureMeasurement" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureThermistorType" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureThermistorType" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureThermistorType" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOpenCableCompValues" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureShortCableCompValues" not found in function metadata. Typo? Generated code will be funky! - Generating: generated/nidmm/nidmm/errors.py - Generating: generated/nidmm/nidmm/unit_tests/_mock_helper.py - Generating: generated/nidmm/nidmm/unit_tests/_matchers.py - Generating: generated/nidmm/nidmm/__init__.py - Generating: generated/nidmm/nidmm/_converters.py - Generating: generated/nidmm/nidmm/VERSION - Generating: generated/nidmm/nidmm/_grpc_stub_interpreter.py - Generating: generated/nidmm/nidmm/grpc_session_options.py - Generating: generated/nidmm/nidmm/nidmm_pb2.py and nidmm_pb2_grpc.py - Generating: generated/nidmm/nidmm/nidevice_pb2.py and nidevice_pb2_grpc.py - Generating: generated/nidmm/nidmm/session_pb2.py and session_pb2_grpc.py - Copying: generated/nidmm/nidmm/_visatype.py - Generating: docs/nidmm/about_nidmm.inc - Generating: docs/nidmm/index.rst - Generating: docs/nidmm/nidmm.rst - Generating: docs/nidmm/enums.rst - Generating: docs/nidmm/examples.rst - Generating: docs/nidmm/installation.inc - Generating: docs/nidmm/status.inc - Generating: docs/nidmm/class.rst -Warning: "ConfigureThermistorType" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureThermistorType" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureThermistorType" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOpenCableCompValues" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureShortCableCompValues" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureMeasurement" not found in function metadata. Typo? Generated code will be funky! - Generating: docs/nidmm/toc.inc - Generating: docs/nidmm/errors.rst - Generating: docs/nidmm/grpc_session_options.rst - Creating: generated/nidmm/README.rst - Generating: generated/nidmm/setup.py - Generating: generated/nidmm/tox-system_tests.ini - Zipping: generated/examples/nidmm_examples.zip - zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nidmm_examples.zip not found or empty - adding: nidmm_fetch_waveform.py (deflated 59%) - adding: nidmm_measurement.py (deflated 58%) - adding: nidmm_multi_point_measurement.py (deflated 60%) - Generating: docs/nidmm/conf.py - Generating: docs/nidmm/.readthedocs.yaml - -Making nifgen - Making dir: generated/nifgen - Making dir: generated/nifgen/nifgen - Making dir: generated/nifgen/nifgen/unit_tests - Making dir: generated/nifgen/log - Generating: generated/nifgen/nifgen/_attributes.py - Generating: generated/nifgen/nifgen/enums.py - Generating: generated/nifgen/nifgen/_library.py - Generating: generated/nifgen/nifgen/_library_interpreter.py - Generating: generated/nifgen/nifgen/_library_singleton.py - Generating: generated/nifgen/nifgen/session.py -Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! -Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureTriggerMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureTriggerMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! -Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! -Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! -Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! -Warning: "RouteSignalOut" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! -Warning: "RouteSignalOut" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! - Generating: generated/nifgen/nifgen/errors.py - Generating: generated/nifgen/nifgen/unit_tests/_mock_helper.py - Generating: generated/nifgen/nifgen/unit_tests/_matchers.py - Generating: generated/nifgen/nifgen/__init__.py - Generating: generated/nifgen/nifgen/_converters.py - Generating: generated/nifgen/nifgen/VERSION - Generating: generated/nifgen/nifgen/_grpc_stub_interpreter.py - Generating: generated/nifgen/nifgen/grpc_session_options.py - Generating: generated/nifgen/nifgen/nifgen_pb2.py and nifgen_pb2_grpc.py - Generating: generated/nifgen/nifgen/nidevice_pb2.py and nidevice_pb2_grpc.py - Generating: generated/nifgen/nifgen/session_pb2.py and session_pb2_grpc.py - Copying: generated/nifgen/nifgen/_visatype.py - Generating: docs/nifgen/about_nifgen.inc - Generating: docs/nifgen/index.rst - Generating: docs/nifgen/nifgen.rst - Generating: docs/nifgen/enums.rst - Generating: docs/nifgen/examples.rst - Generating: docs/nifgen/installation.inc - Generating: docs/nifgen/status.inc - Generating: docs/nifgen/class.rst -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! -Warning: "RouteSignalOut" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureTriggerMode" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! -Warning: "ExportSignal" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! - Generating: docs/nifgen/toc.inc - Generating: docs/nifgen/errors.rst - Generating: docs/nifgen/rep_caps.rst - Generating: docs/nifgen/grpc_session_options.rst - Creating: generated/nifgen/README.rst - Generating: generated/nifgen/setup.py - Generating: generated/nifgen/tox-system_tests.ini - Zipping: generated/examples/nifgen_examples.zip - zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nifgen_examples.zip not found or empty - adding: nifgen_arb_waveform.py (deflated 61%) - adding: nifgen_script.py (deflated 66%) - adding: nifgen_standard_function.py (deflated 60%) - adding: nifgen_trigger.py (deflated 62%) - Generating: docs/nifgen/conf.py - Generating: docs/nifgen/.readthedocs.yaml - -Making nirfsg - Making dir: generated/nirfsg - Making dir: generated/nirfsg/nirfsg - Making dir: generated/nirfsg/nirfsg/unit_tests - Making dir: generated/nirfsg/log - Generating: generated/nirfsg/nirfsg/_attributes.py - Generating: generated/nirfsg/nirfsg/enums.py - Generating: generated/nirfsg/nirfsg/_library.py - Generating: generated/nirfsg/nirfsg/_library_interpreter.py - Generating: generated/nirfsg/nirfsg/_library_singleton.py - Generating: generated/nirfsg/nirfsg/session.py -Warning: "Init" not found in function metadata. Typo? Generated code will be funky! -Warning: "Init" not found in function metadata. Typo? Generated code will be funky! -Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! -Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! -Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! -Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureRf" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureRf" not found in function metadata. Typo? Generated code will be funky! -Warning: "Init" not found in function metadata. Typo? Generated code will be funky! -Warning: "Init" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureRf" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureRf" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "ReadAndDownloadWaveformFromFileTdms" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "ReadAndDownloadWaveformFromFileTdms" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! -Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! - Generating: generated/nirfsg/nirfsg/errors.py - Generating: generated/nirfsg/nirfsg/unit_tests/_mock_helper.py - Generating: generated/nirfsg/nirfsg/unit_tests/_matchers.py - Generating: generated/nirfsg/nirfsg/__init__.py - Generating: generated/nirfsg/nirfsg/_converters.py - Generating: generated/nirfsg/nirfsg/VERSION - Generating: generated/nirfsg/nirfsg/_grpc_stub_interpreter.py - Generating: generated/nirfsg/nirfsg/grpc_session_options.py - Generating: generated/nirfsg/nirfsg/nirfsg_pb2.py and nirfsg_pb2_grpc.py - Generating: generated/nirfsg/nirfsg/nidevice_pb2.py and nidevice_pb2_grpc.py - Generating: generated/nirfsg/nirfsg/session_pb2.py and session_pb2_grpc.py - Generating: generated/nirfsg/nirfsg/_complextype.py - Copying: generated/nirfsg/nirfsg/_visatype.py - Generating: docs/nirfsg/about_nirfsg.inc - Generating: docs/nirfsg/index.rst - Generating: docs/nirfsg/nirfsg.rst - Generating: docs/nirfsg/enums.rst - Generating: docs/nirfsg/examples.rst - Generating: docs/nirfsg/installation.inc - Generating: docs/nirfsg/status.inc - Generating: docs/nirfsg/class.rst -Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! -Warning: "ClearError" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! -Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! -Warning: "Init" not found in function metadata. Typo? Generated code will be funky! -Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! -Warning: "WriteArbWaveform" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureRf" not found in function metadata. Typo? Generated code will be funky! -Warning: "Init" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureRf" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "ReadAndDownloadWaveformFromFileTdms" not found in function metadata. Typo? Generated code will be funky! -Warning: "Reset" not found in function metadata. Typo? Generated code will be funky! - Generating: docs/nirfsg/toc.inc - Generating: docs/nirfsg/errors.rst - Generating: docs/nirfsg/rep_caps.rst - Generating: docs/nirfsg/grpc_session_options.rst - Creating: generated/nirfsg/README.rst - Generating: generated/nirfsg/setup.py - Generating: generated/nirfsg/tox-system_tests.ini - Zipping: generated/examples/nirfsg_examples.zip - zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nirfsg_examples.zip not found or empty - adding: nirfsg_arb_waveform.py (deflated 59%) - adding: nirfsg_cw.py (deflated 59%) - adding: nirfsg_script.py (deflated 59%) - Generating: docs/nirfsg/conf.py - Generating: docs/nirfsg/.readthedocs.yaml - -Making niscope - Making dir: generated/niscope - Making dir: generated/niscope/niscope - Making dir: generated/niscope/niscope/unit_tests - Making dir: generated/niscope/log - Generating: generated/niscope/niscope/_attributes.py - Generating: generated/niscope/niscope/enums.py -Warning: "SendSoftwareTrigger" not found in function metadata. Typo? Generated code will be funky! -Warning: "SendSoftwareTrigger" not found in function metadata. Typo? Generated code will be funky! - Generating: generated/niscope/niscope/_library.py - Generating: generated/niscope/niscope/_library_interpreter.py - Generating: generated/niscope/niscope/_library_singleton.py - Generating: generated/niscope/niscope/session.py -Warning: "CableSenseSignalStart" not found in function metadata. Typo? Generated code will be funky! -Warning: "CableSenseSignalStart" not found in function metadata. Typo? Generated code will be funky! -Warning: "Init" not found in function metadata. Typo? Generated code will be funky! -Warning: "Init" not found in function metadata. Typo? Generated code will be funky! -Warning: "Init" not found in function metadata. Typo? Generated code will be funky! -Warning: "Init" not found in function metadata. Typo? Generated code will be funky! -Warning: "FetchWaveformMeasurementArray" not found in function metadata. Typo? Generated code will be funky! -Warning: "FetchWaveformMeasurementArray" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureAcquisition" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureAcquisition" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureTriggerSource" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureTriggerSource" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureTriggerSource" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureTriggerSource" not found in function metadata. Typo? Generated code will be funky! -Warning: "CalEnd" not found in function metadata. Typo? Generated code will be funky! -Warning: "ActualNumwfms" not found in function metadata. Typo? Generated code will be funky! -Warning: "ActualNumwfms" not found in function metadata. Typo? Generated code will be funky! -Warning: "ActualNumwfms" not found in function metadata. Typo? Generated code will be funky! -Warning: "ActualNumwfms" not found in function metadata. Typo? Generated code will be funky! -Warning: "ActualNumwfms" not found in function metadata. Typo? Generated code will be funky! -Warning: "ActualNumwfms" not found in function metadata. Typo? Generated code will be funky! -Warning: "ActualRecordLength" not found in function metadata. Typo? Generated code will be funky! -Warning: "FetchMeasurement" not found in function metadata. Typo? Generated code will be funky! - Generating: generated/niscope/niscope/errors.py - Generating: generated/niscope/niscope/unit_tests/_mock_helper.py - Generating: generated/niscope/niscope/unit_tests/_matchers.py - Generating: generated/niscope/niscope/__init__.py - Generating: generated/niscope/niscope/_converters.py - Generating: generated/niscope/niscope/VERSION - Generating: generated/niscope/niscope/_grpc_stub_interpreter.py - Generating: generated/niscope/niscope/grpc_session_options.py - Generating: generated/niscope/niscope/niscope_pb2.py and niscope_pb2_grpc.py - Generating: generated/niscope/niscope/nidevice_pb2.py and nidevice_pb2_grpc.py - Generating: generated/niscope/niscope/session_pb2.py and session_pb2_grpc.py - Copying: generated/niscope/niscope/_visatype.py - Copying: generated/niscope/niscope/waveform_info.py - Copying: generated/niscope/niscope/measurement_stats.py - Generating: docs/niscope/about_niscope.inc - Generating: docs/niscope/index.rst - Generating: docs/niscope/niscope.rst - Generating: docs/niscope/enums.rst -Warning: "SendSoftwareTrigger" not found in function metadata. Typo? Generated code will be funky! - Generating: docs/niscope/examples.rst - Generating: docs/niscope/installation.inc - Generating: docs/niscope/status.inc - Generating: docs/niscope/class.rst -Warning: "ActualRecordLength" not found in function metadata. Typo? Generated code will be funky! -Warning: "CalEnd" not found in function metadata. Typo? Generated code will be funky! -Warning: "CableSenseSignalStart" not found in function metadata. Typo? Generated code will be funky! -Warning: "Init" not found in function metadata. Typo? Generated code will be funky! -Warning: "Init" not found in function metadata. Typo? Generated code will be funky! -Warning: "FetchWaveformMeasurementArray" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureAcquisition" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureTriggerSource" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureTriggerSource" not found in function metadata. Typo? Generated code will be funky! - Generating: docs/niscope/toc.inc - Generating: docs/niscope/errors.rst - Generating: docs/niscope/rep_caps.rst - Generating: docs/niscope/grpc_session_options.rst - Creating: generated/niscope/README.rst - Generating: generated/niscope/setup.py - Generating: generated/niscope/tox-system_tests.ini - Zipping: generated/examples/niscope_examples.zip - zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/niscope_examples.zip not found or empty - adding: niscope_fetch.py (deflated 56%) - adding: niscope_fetch_forever.py (deflated 59%) - adding: niscope_fetch_into.py (deflated 56%) - adding: niscope_read.py (deflated 56%) - Copying: generated/niscope/niscope/unit_tests/test_niscope.py - Generating: docs/niscope/conf.py - Generating: docs/niscope/.readthedocs.yaml - -Making niswitch - Making dir: generated/niswitch - Making dir: generated/niswitch/niswitch - Making dir: generated/niswitch/niswitch/unit_tests - Making dir: generated/niswitch/log - Generating: generated/niswitch/niswitch/_attributes.py - Generating: generated/niswitch/niswitch/enums.py -Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! -Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! -Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! -Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! -Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! -Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! - Generating: generated/niswitch/niswitch/_library.py - Generating: generated/niswitch/niswitch/_library_interpreter.py - Generating: generated/niswitch/niswitch/_library_singleton.py - Generating: generated/niswitch/niswitch/session.py -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureScanTrigger" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! - Generating: generated/niswitch/niswitch/errors.py - Generating: generated/niswitch/niswitch/unit_tests/_mock_helper.py - Generating: generated/niswitch/niswitch/unit_tests/_matchers.py - Generating: generated/niswitch/niswitch/__init__.py - Generating: generated/niswitch/niswitch/_converters.py - Generating: generated/niswitch/niswitch/VERSION - Generating: generated/niswitch/niswitch/_grpc_stub_interpreter.py - Generating: generated/niswitch/niswitch/grpc_session_options.py - Generating: generated/niswitch/niswitch/niswitch_pb2.py and niswitch_pb2_grpc.py - Generating: generated/niswitch/niswitch/nidevice_pb2.py and nidevice_pb2_grpc.py - Generating: generated/niswitch/niswitch/session_pb2.py and session_pb2_grpc.py - Copying: generated/niswitch/niswitch/_visatype.py - Generating: docs/niswitch/about_niswitch.inc - Generating: docs/niswitch/index.rst - Generating: docs/niswitch/niswitch.rst - Generating: docs/niswitch/enums.rst -Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! -Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! -Warning: "Initiate_Scan" not found in function metadata. Typo? Generated code will be funky! - Generating: docs/niswitch/examples.rst - Generating: docs/niswitch/installation.inc - Generating: docs/niswitch/status.inc - Generating: docs/niswitch/class.rst -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureScanTrigger" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! -Warning: "InitWithOptions" not found in function metadata. Typo? Generated code will be funky! - Generating: docs/niswitch/toc.inc - Generating: docs/niswitch/errors.rst - Generating: docs/niswitch/rep_caps.rst - Generating: docs/niswitch/grpc_session_options.rst - Creating: generated/niswitch/README.rst - Generating: generated/niswitch/setup.py - Generating: generated/niswitch/tox-system_tests.ini - Zipping: generated/examples/niswitch_examples.zip - zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/niswitch_examples.zip not found or empty - adding: niswitch_connect_channels.py (deflated 62%) - adding: niswitch_get_device_info.py (deflated 69%) - adding: niswitch_relay_control.py (deflated 59%) - Generating: docs/niswitch/conf.py - Generating: docs/niswitch/.readthedocs.yaml - -Making nise - Making dir: generated/nise - Making dir: generated/nise/nise - Making dir: generated/nise/nise/unit_tests - Making dir: generated/nise/log - Generating: generated/nise/nise/enums.py - Generating: generated/nise/nise/_library.py - Generating: generated/nise/nise/_library_interpreter.py - Generating: generated/nise/nise/_library_singleton.py - Generating: generated/nise/nise/session.py - Generating: generated/nise/nise/errors.py - Generating: generated/nise/nise/unit_tests/_mock_helper.py - Generating: generated/nise/nise/unit_tests/_matchers.py - Generating: generated/nise/nise/__init__.py - Generating: generated/nise/nise/_converters.py - Generating: generated/nise/nise/VERSION - Copying: generated/nise/nise/_visatype.py - Generating: docs/nise/about_nise.inc - Generating: docs/nise/index.rst - Generating: docs/nise/nise.rst - Generating: docs/nise/enums.rst - Generating: docs/nise/examples.rst - Generating: docs/nise/installation.inc - Generating: docs/nise/status.inc - Generating: docs/nise/class.rst - Generating: docs/nise/toc.inc - Generating: docs/nise/errors.rst - Creating: generated/nise/README.rst - Generating: generated/nise/setup.py - Generating: generated/nise/tox-system_tests.ini - Zipping: generated/examples/nise_examples.zip - zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nise_examples.zip not found or empty - adding: nise_basic_example.py (deflated 56%) - Generating: docs/nise/conf.py - Generating: docs/nise/.readthedocs.yaml - -Making nimodinst - Making dir: generated/nimodinst - Making dir: generated/nimodinst/nimodinst - Making dir: generated/nimodinst/nimodinst/unit_tests - Making dir: generated/nimodinst/log - Generating: generated/nimodinst/nimodinst/_library.py - Generating: generated/nimodinst/nimodinst/_library_interpreter.py - Generating: generated/nimodinst/nimodinst/_library_singleton.py - Generating: generated/nimodinst/nimodinst/session.py - Generating: generated/nimodinst/nimodinst/errors.py - Generating: generated/nimodinst/nimodinst/unit_tests/_mock_helper.py - Generating: generated/nimodinst/nimodinst/unit_tests/_matchers.py - Generating: generated/nimodinst/nimodinst/__init__.py - Generating: generated/nimodinst/nimodinst/_converters.py - Generating: generated/nimodinst/nimodinst/VERSION - Copying: generated/nimodinst/nimodinst/_visatype.py - Generating: docs/nimodinst/about_nimodinst.inc - Generating: docs/nimodinst/index.rst - Generating: docs/nimodinst/nimodinst.rst - Generating: docs/nimodinst/examples.rst - Generating: docs/nimodinst/installation.inc - Generating: docs/nimodinst/status.inc - Generating: docs/nimodinst/class.rst - Generating: docs/nimodinst/toc.inc - Generating: docs/nimodinst/errors.rst - Creating: generated/nimodinst/README.rst - Generating: generated/nimodinst/setup.py - Generating: generated/nimodinst/tox-system_tests.ini - Zipping: generated/examples/nimodinst_examples.zip - zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nimodinst_examples.zip not found or empty - adding: nimodinst_all_devices.py (deflated 47%) - Copying: generated/nimodinst/nimodinst/unit_tests/test_modinst.py - Generating: docs/nimodinst/conf.py - Generating: docs/nimodinst/.readthedocs.yaml - -Making nitclk - Making dir: generated/nitclk - Making dir: generated/nitclk/nitclk - Making dir: generated/nitclk/nitclk/unit_tests - Making dir: generated/nitclk/log - Generating: generated/nitclk/nitclk/_attributes.py - Generating: generated/nitclk/nitclk/_library.py - Generating: generated/nitclk/nitclk/_library_interpreter.py - Generating: generated/nitclk/nitclk/_library_singleton.py - Generating: generated/nitclk/nitclk/session.py - Generating: generated/nitclk/nitclk/errors.py - Generating: generated/nitclk/nitclk/unit_tests/_mock_helper.py - Generating: generated/nitclk/nitclk/unit_tests/_matchers.py - Generating: generated/nitclk/nitclk/__init__.py - Generating: generated/nitclk/nitclk/_converters.py - Generating: generated/nitclk/nitclk/VERSION - Copying: generated/nitclk/nitclk/_visatype.py - Generating: docs/nitclk/about_nitclk.inc - Generating: docs/nitclk/index.rst - Generating: docs/nitclk/nitclk.rst - Generating: docs/nitclk/examples.rst - Generating: docs/nitclk/installation.inc - Generating: docs/nitclk/status.inc - Generating: docs/nitclk/class.rst - Generating: docs/nitclk/toc.inc - Generating: docs/nitclk/errors.rst - Creating: generated/nitclk/README.rst - Generating: generated/nitclk/setup.py - Generating: generated/nitclk/tox-system_tests.ini - Zipping: generated/examples/nitclk_examples.zip - zip warning: /home/rahur/nimi-python-rahur/nimi-python/generated/examples/nitclk_examples.zip not found or empty - adding: nitclk_niscope_synchronize_with_trigger.py (deflated 59%) - Copying: generated/nitclk/nitclk/unit_tests/test_nitclk.py - Generating: docs/nitclk/conf.py - Generating: docs/nitclk/.readthedocs.yaml - -Making Global Files - Creating Root: README.rst -py312-codegen: OK ✔ in 58.51 seconds -py312-installers: commands[0]> python --version -Python 3.12.3 -py312-installers: commands[1]> python -c 'import platform; print(platform.architecture())' -('64bit', 'ELF') -py312-installers: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip -Requirement already satisfied: pip in ./.tox/64/py312-installers/lib/python3.12/site-packages (26.0.1) -py312-installers: commands[3]> make installers - -Making nifake installers -Creating sdist and wheel: generated/nifake/dist - -Making nidcpower installers -Creating sdist and wheel: generated/nidcpower/dist - -Making nidigital installers -Creating sdist and wheel: generated/nidigital/dist - -Making nidmm installers -Creating sdist and wheel: generated/nidmm/dist - -Making nifgen installers -Creating sdist and wheel: generated/nifgen/dist - -Making nirfsg installers -Creating sdist and wheel: generated/nirfsg/dist - -Making niscope installers -Creating sdist and wheel: generated/niscope/dist - -Making niswitch installers -Creating sdist and wheel: generated/niswitch/dist - -Making nise installers -Creating sdist and wheel: generated/nise/dist - -Making nimodinst installers -Creating sdist and wheel: generated/nimodinst/dist - -Making nitclk installers -Creating sdist and wheel: generated/nitclk/dist -py312-installers: OK ✔ in 30.76 seconds -py312-flake8: commands[0]> python --version -Python 3.12.3 -py312-flake8: commands[1]> python -c 'import platform; print(platform.architecture())' -('64bit', 'ELF') -py312-flake8: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip -Requirement already satisfied: pip in ./.tox/64/py312-flake8/lib/python3.12/site-packages (26.0.1) -py312-flake8: commands[3]> flake8 --config=./tox.ini generated/ -py312-flake8: commands[4]> flake8 --config=./tox.ini tools/ -py312-flake8: commands[5]> flake8 --config=./tox.ini src/nidcpower/system_tests/ src/nidcpower/examples/ -py312-flake8: commands[6]> flake8 --config=./tox.ini src/nidigital/system_tests/ src/nidigital/examples/ -py312-flake8: commands[7]> flake8 --config=./tox.ini src/nidmm/system_tests/ src/nidmm/examples/ -py312-flake8: commands[8]> flake8 --config=./tox.ini src/nifgen/system_tests/ src/nifgen/examples/ -py312-flake8: commands[9]> flake8 --config=./tox.ini src/nimodinst/system_tests/ src/nimodinst/examples/ -py312-flake8: commands[10]> flake8 --config=./tox.ini src/nirfsg/system_tests/ src/nirfsg/examples/ -py312-flake8: commands[11]> flake8 --config=./tox.ini src/niscope/system_tests/ src/niscope/examples/ -py312-flake8: commands[12]> flake8 --config=./tox.ini src/nise/system_tests/ src/nise/examples/ -py312-flake8: commands[13]> flake8 --config=./tox.ini src/niswitch/system_tests/ src/niswitch/examples/ -py312-flake8: commands[14]> flake8 --config=./tox.ini src/nitclk/system_tests/ src/nitclk/examples/ -py312-flake8: OK ✔ in 4.4 seconds -py312-docs: commands[0] /home/rahur/nimi-python-rahur/nimi-python/docs> python --version -Python 3.12.3 -py312-docs: commands[1] /home/rahur/nimi-python-rahur/nimi-python/docs> python -c 'import platform; print(platform.architecture())' -('64bit', 'ELF') -py312-docs: commands[2] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nidcpower ../generated/docs/nidcpower/html -Running Sphinx v9.1.0 -loading translations [en]... done -making output directory... done -Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. -loading pickled environment... failed: source directory has changed -done -building [mo]: targets for 0 po files that are out of date -writing output... -building [html]: targets for 8 source files that are out of date -updating environment: [new config] 8 added, 0 changed, 0 removed -reading sources... [ 12%] class -reading sources... [ 25%] enums -reading sources... [ 38%] errors -reading sources... [ 50%] examples -reading sources... [ 62%] grpc_session_options -reading sources... [ 75%] index -reading sources... [ 88%] nidcpower -reading sources... [100%] rep_caps - -looking for now-outdated files... none found -pickling environment... done -checking consistency... done -preparing documents... done -copying assets... -copying static files... -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidcpower/html/_static/documentation_options.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidcpower/html/_static/language_data.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidcpower/html/_static/basic.css -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidcpower/html/_static/js/versions.js -copying static files: done -copying extra files... -copying extra files: done -copying assets: done -writing output... [ 12%] class -writing output... [ 25%] enums -writing output... [ 38%] errors -writing output... [ 50%] examples -writing output... [ 62%] grpc_session_options -writing output... [ 75%] index -writing output... [ 88%] nidcpower -writing output... [100%] rep_caps - -generating indices... genindex py-modindex done -highlighting module code... -writing additional pages... search done -dumping search index in English (code: en)... done -dumping object inventory... done -build succeeded. - -The HTML pages are in ../generated/docs/nidcpower/html. -py312-docs: commands[3] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nidigital ../generated/docs/nidigital/html -Running Sphinx v9.1.0 -loading translations [en]... done -making output directory... done -Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. -loading pickled environment... failed: source directory has changed -done -building [mo]: targets for 0 po files that are out of date -writing output... -building [html]: targets for 8 source files that are out of date -updating environment: [new config] 8 added, 0 changed, 0 removed -reading sources... [ 12%] class -reading sources... [ 25%] enums -reading sources... [ 38%] errors -reading sources... [ 50%] examples -reading sources... [ 62%] grpc_session_options -reading sources... [ 75%] index -reading sources... [ 88%] nidigital -reading sources... [100%] rep_caps - -looking for now-outdated files... none found -pickling environment... done -checking consistency... done -preparing documents... done -copying assets... -copying static files... -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidigital/html/_static/documentation_options.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidigital/html/_static/language_data.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidigital/html/_static/basic.css -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidigital/html/_static/js/versions.js -copying static files: done -copying extra files... -copying extra files: done -copying assets: done -writing output... [ 12%] class -writing output... [ 25%] enums -writing output... [ 38%] errors -writing output... [ 50%] examples -writing output... [ 62%] grpc_session_options -writing output... [ 75%] index -writing output... [ 88%] nidigital -writing output... [100%] rep_caps - -generating indices... genindex py-modindex done -highlighting module code... -writing additional pages... search done -dumping search index in English (code: en)... done -dumping object inventory... done -build succeeded, 3 warnings. - -The HTML pages are in ../generated/docs/nidigital/html. -py312-docs: commands[4] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nidmm ../generated/docs/nidmm/html -Running Sphinx v9.1.0 -loading translations [en]... done -making output directory... done -Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. -loading pickled environment... failed: source directory has changed -done -building [mo]: targets for 0 po files that are out of date -writing output... -building [html]: targets for 7 source files that are out of date -updating environment: [new config] 7 added, 0 changed, 0 removed -reading sources... [ 14%] class -reading sources... [ 29%] enums -reading sources... [ 43%] errors -reading sources... [ 57%] examples -reading sources... [ 71%] grpc_session_options -reading sources... [ 86%] index -reading sources... [100%] nidmm - -looking for now-outdated files... none found -pickling environment... done -checking consistency... done -preparing documents... done -copying assets... -copying static files... -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidmm/html/_static/documentation_options.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidmm/html/_static/language_data.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidmm/html/_static/basic.css -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nidmm/html/_static/js/versions.js -copying static files: done -copying extra files... -copying extra files: done -copying assets: done -writing output... [ 14%] class -writing output... [ 29%] enums -writing output... [ 43%] errors -writing output... [ 57%] examples -writing output... [ 71%] grpc_session_options -writing output... [ 86%] index -writing output... [100%] nidmm - -generating indices... genindex py-modindex done -highlighting module code... -writing additional pages... search done -dumping search index in English (code: en)... done -dumping object inventory... done -build succeeded. - -The HTML pages are in ../generated/docs/nidmm/html. -py312-docs: commands[5] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nifgen ../generated/docs/nifgen/html -Running Sphinx v9.1.0 -loading translations [en]... done -making output directory... done -Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. -loading pickled environment... failed: source directory has changed -done -building [mo]: targets for 0 po files that are out of date -writing output... -building [html]: targets for 8 source files that are out of date -updating environment: [new config] 8 added, 0 changed, 0 removed -reading sources... [ 12%] class -reading sources... [ 25%] enums -reading sources... [ 38%] errors -reading sources... [ 50%] examples -reading sources... [ 62%] grpc_session_options -reading sources... [ 75%] index -reading sources... [ 88%] nifgen -reading sources... [100%] rep_caps - -looking for now-outdated files... none found -pickling environment... done -checking consistency... done -preparing documents... done -copying assets... -copying static files... -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nifgen/html/_static/documentation_options.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nifgen/html/_static/language_data.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nifgen/html/_static/basic.css -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nifgen/html/_static/js/versions.js -copying static files: done -copying extra files... -copying extra files: done -copying assets: done -writing output... [ 12%] class -writing output... [ 25%] enums -writing output... [ 38%] errors -writing output... [ 50%] examples -writing output... [ 62%] grpc_session_options -writing output... [ 75%] index -writing output... [ 88%] nifgen -writing output... [100%] rep_caps - -generating indices... genindex py-modindex done -highlighting module code... -writing additional pages... search done -dumping search index in English (code: en)... done -dumping object inventory... done -build succeeded. - -The HTML pages are in ../generated/docs/nifgen/html. -py312-docs: commands[6] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nimodinst ../generated/docs/nimodinst/html -Running Sphinx v9.1.0 -loading translations [en]... done -making output directory... done -Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. -loading pickled environment... failed: source directory has changed -done -building [mo]: targets for 0 po files that are out of date -writing output... -building [html]: targets for 5 source files that are out of date -updating environment: [new config] 5 added, 0 changed, 0 removed -reading sources... [ 20%] class -reading sources... [ 40%] errors -reading sources... [ 60%] examples -reading sources... [ 80%] index -reading sources... [100%] nimodinst - -looking for now-outdated files... none found -pickling environment... done -checking consistency... done -preparing documents... done -copying assets... -copying static files... -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nimodinst/html/_static/documentation_options.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nimodinst/html/_static/language_data.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nimodinst/html/_static/basic.css -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nimodinst/html/_static/js/versions.js -copying static files: done -copying extra files... -copying extra files: done -copying assets: done -writing output... [ 20%] class -writing output... [ 40%] errors -writing output... [ 60%] examples -writing output... [ 80%] index -writing output... [100%] nimodinst - -generating indices... genindex py-modindex done -highlighting module code... -writing additional pages... search done -dumping search index in English (code: en)... done -dumping object inventory... done -build succeeded. - -The HTML pages are in ../generated/docs/nimodinst/html. -py312-docs: commands[7] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nirfsg ../generated/docs/nirfsg/html -Running Sphinx v9.1.0 -loading translations [en]... done -making output directory... done -Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. -loading pickled environment... failed: source directory has changed -done -building [mo]: targets for 0 po files that are out of date -writing output... -building [html]: targets for 8 source files that are out of date -updating environment: [new config] 8 added, 0 changed, 0 removed -reading sources... [ 12%] class -reading sources... [ 25%] enums -reading sources... [ 38%] errors -reading sources... [ 50%] examples -reading sources... [ 62%] grpc_session_options -reading sources... [ 75%] index -reading sources... [ 88%] nirfsg -reading sources... [100%] rep_caps - -looking for now-outdated files... none found -pickling environment... done -checking consistency... done -preparing documents... done -copying assets... -copying static files... -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nirfsg/html/_static/documentation_options.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nirfsg/html/_static/language_data.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nirfsg/html/_static/basic.css -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nirfsg/html/_static/js/versions.js -copying static files: done -copying extra files... -copying extra files: done -copying assets: done -writing output... [ 12%] class -writing output... [ 25%] enums -writing output... [ 38%] errors -writing output... [ 50%] examples -writing output... [ 62%] grpc_session_options -writing output... [ 75%] index -writing output... [ 88%] nirfsg -writing output... [100%] rep_caps - -generating indices... genindex py-modindex done -highlighting module code... -writing additional pages... search done -dumping search index in English (code: en)... done -dumping object inventory... done -build succeeded, 1 warning. - -The HTML pages are in ../generated/docs/nirfsg/html. -py312-docs: commands[8] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./niscope ../generated/docs/niscope/html -Running Sphinx v9.1.0 -loading translations [en]... done -making output directory... done -Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. -loading pickled environment... failed: source directory has changed -done -building [mo]: targets for 0 po files that are out of date -writing output... -building [html]: targets for 8 source files that are out of date -updating environment: [new config] 8 added, 0 changed, 0 removed -reading sources... [ 12%] class -reading sources... [ 25%] enums -reading sources... [ 38%] errors -reading sources... [ 50%] examples -reading sources... [ 62%] grpc_session_options -reading sources... [ 75%] index -reading sources... [ 88%] niscope -reading sources... [100%] rep_caps - -looking for now-outdated files... none found -pickling environment... done -checking consistency... done -preparing documents... done -copying assets... -copying static files... -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niscope/html/_static/documentation_options.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niscope/html/_static/language_data.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niscope/html/_static/basic.css -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niscope/html/_static/js/versions.js -copying static files: done -copying extra files... -copying extra files: done -copying assets: done -writing output... [ 12%] class -writing output... [ 25%] enums -writing output... [ 38%] errors -writing output... [ 50%] examples -writing output... [ 62%] grpc_session_options -writing output... [ 75%] index -writing output... [ 88%] niscope -writing output... [100%] rep_caps - -generating indices... genindex py-modindex done -highlighting module code... -writing additional pages... search done -dumping search index in English (code: en)... done -dumping object inventory... done -build succeeded, 2 warnings. - -The HTML pages are in ../generated/docs/niscope/html. -py312-docs: commands[9] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nise ../generated/docs/nise/html -Running Sphinx v9.1.0 -loading translations [en]... done -making output directory... done -Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. -loading pickled environment... failed: source directory has changed -done -building [mo]: targets for 0 po files that are out of date -writing output... -building [html]: targets for 6 source files that are out of date -updating environment: [new config] 6 added, 0 changed, 0 removed -reading sources... [ 17%] class -reading sources... [ 33%] enums -reading sources... [ 50%] errors -reading sources... [ 67%] examples -reading sources... [ 83%] index -reading sources... [100%] nise - -looking for now-outdated files... none found -pickling environment... done -checking consistency... done -preparing documents... done -copying assets... -copying static files... -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nise/html/_static/documentation_options.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nise/html/_static/language_data.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nise/html/_static/basic.css -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nise/html/_static/js/versions.js -copying static files: done -copying extra files... -copying extra files: done -copying assets: done -writing output... [ 17%] class -writing output... [ 33%] enums -writing output... [ 50%] errors -writing output... [ 67%] examples -writing output... [ 83%] index -writing output... [100%] nise - -generating indices... genindex py-modindex done -highlighting module code... -writing additional pages... search done -dumping search index in English (code: en)... done -dumping object inventory... done -build succeeded. - -The HTML pages are in ../generated/docs/nise/html. -py312-docs: commands[10] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./niswitch ../generated/docs/niswitch/html -Running Sphinx v9.1.0 -loading translations [en]... done -making output directory... done -Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. -loading pickled environment... failed: source directory has changed -done -building [mo]: targets for 0 po files that are out of date -writing output... -building [html]: targets for 8 source files that are out of date -updating environment: [new config] 8 added, 0 changed, 0 removed -reading sources... [ 12%] class -reading sources... [ 25%] enums -reading sources... [ 38%] errors -reading sources... [ 50%] examples -reading sources... [ 62%] grpc_session_options -reading sources... [ 75%] index -reading sources... [ 88%] niswitch -reading sources... [100%] rep_caps - -looking for now-outdated files... none found -pickling environment... done -checking consistency... done -preparing documents... done -copying assets... -copying static files... -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niswitch/html/_static/documentation_options.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niswitch/html/_static/language_data.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niswitch/html/_static/basic.css -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/niswitch/html/_static/js/versions.js -copying static files: done -copying extra files... -copying extra files: done -copying assets: done -writing output... [ 12%] class -writing output... [ 25%] enums -writing output... [ 38%] errors -writing output... [ 50%] examples -writing output... [ 62%] grpc_session_options -writing output... [ 75%] index -writing output... [ 88%] niswitch -writing output... [100%] rep_caps - -generating indices... genindex py-modindex done -highlighting module code... -writing additional pages... search done -dumping search index in English (code: en)... done -dumping object inventory... done -build succeeded. - -The HTML pages are in ../generated/docs/niswitch/html. -py312-docs: commands[11] /home/rahur/nimi-python-rahur/nimi-python/docs> sphinx-build -b html -d .tox/64/py312-docs/tmp/doctrees ./nitclk ../generated/docs/nitclk/html -Running Sphinx v9.1.0 -loading translations [en]... done -making output directory... done -Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. -loading pickled environment... failed: source directory has changed -done -building [mo]: targets for 0 po files that are out of date -writing output... -building [html]: targets for 5 source files that are out of date -updating environment: [new config] 5 added, 0 changed, 0 removed -reading sources... [ 20%] class -reading sources... [ 40%] errors -reading sources... [ 60%] examples -reading sources... [ 80%] index -reading sources... [100%] nitclk - -looking for now-outdated files... none found -pickling environment... done -checking consistency... done -preparing documents... done -copying assets... -copying static files... -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nitclk/html/_static/documentation_options.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nitclk/html/_static/language_data.js -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nitclk/html/_static/basic.css -Writing evaluated template result to /home/rahur/nimi-python-rahur/nimi-python/generated/docs/nitclk/html/_static/js/versions.js -copying static files: done -copying extra files... -copying extra files: done -copying assets: done -writing output... [ 20%] class -writing output... [ 40%] errors -writing output... [ 60%] examples -writing output... [ 80%] index -writing output... [100%] nitclk - -generating indices... genindex py-modindex done -highlighting module code... -writing additional pages... search done -dumping search index in English (code: en)... done -dumping object inventory... done -build succeeded. - -The HTML pages are in ../generated/docs/nitclk/html. -py312-docs: OK ✔ in 20.52 seconds -py310-test: skipped because could not find python interpreter with spec(s): py310 -py310-test: SKIP ⚠ in 0.73 seconds -py311-test: skipped because could not find python interpreter with spec(s): py311 -py311-test: SKIP ⚠ in 0.7 seconds -py312-test: commands[0]> python --version -Python 3.12.3 -py312-test: commands[1]> python -c 'import platform; print(platform.architecture())' -('64bit', 'ELF') -py312-test: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip -Requirement already satisfied: pip in ./.tox/64/py312-test/lib/python3.12/site-packages (26.0.1) -py312-test: commands[3]> python tools/install_local_wheel.py --driver nitclk -Processing ./generated/nitclk/dist/nitclk-1.4.10.dev0-py3-none-any.whl -Requirement already satisfied: hightime>=0.2.0 in ./.tox/64/py312-test/lib/python3.12/site-packages (from nitclk==1.4.10.dev0) (1.0.0) -nitclk is already installed with the same version as the provided wheel. Use --force-reinstall to force an installation of the wheel. -py312-test: commands[4]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nifake -m pytest generated/nifake/nifake -s -============================= test session starts ============================== -platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-test/bin/python -cachedir: .tox/64/py312-test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -plugins: timeout-2.4.0 -collecting ... collected 272 items - -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_init_with_options_dictionary PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedelta_to_seconds_double PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedelta_to_milliseconds_int32 PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedeltas_to_seconds_real64 PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedelta_to_months_int32 PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_seconds_real64_to_timedelta PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_seconds_real64_to_timedeltas PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_string_channel PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_string_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_list_channel PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_list_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_tuple_channel PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_tuple_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_unicode PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_raw PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_slice_channel PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_mixed_channel PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_mixed_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_invalid_repeated_capabilities PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_slice_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_without_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_string_resource_name PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_list_resource_name PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_tuple_resource_name PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_mixed_resource_name PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_invalid_resource_names PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_expand_channel_string_non_fully_qualified_channel_names PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_expand_channel_string_fully_qualified_channel_names PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_chained_repeated_capability_to_parts_three_parts PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_chained_repeated_capability_to_parts_single_part PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_chained_repeated_capability_to_parts_empty_string PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_string_to_list_channel PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_string_to_list_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_comma_separated_string_to_list PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_list_to_comma_separated_string PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_list_to_comma_separated_string_invalid_input PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_server_unavailable PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_function_not_implemented PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_api_key_sent_to_init PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_new_session_already_exists PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_attach_to_non_existent_session PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_lock_unlock PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_simple_function PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_number PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_one_input_function PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_vi_int_64_function PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_two_input_function PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_enum_value PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_list_enums PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_boolean PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_list_booleans PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_single_point_read_nan PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_fetch_waveform PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_fetch_waveform_into PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_write_waveform PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_write_waveform_numpy PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_return_multiple_types PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_array_types PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_array_types_none_input PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_same_size PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_same_size_none_input PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_different_size PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_different_size_none_input PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_mixed_ivi_dance_and_len_mechanism PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_same_size_wrong_size PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_parameters_are_multiple_types PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_method_with_error PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_call_not_enough_parameters_error PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_invalid_method_call_wrong_type_error PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_method_with_warning PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_read_with_warning PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_string_of_fixed_maximum_size PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_return_a_number_and_a_string PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_an_ivi_dance_char_array PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_string_ivi_dance_error PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_an_ivi_dance_with_a_twist_string PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_array_using_ivi_dance PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_real64 PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_real64 PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_string PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_string PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_boolean PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_boolean PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_int64 PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_int64 PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_error_message_returns_error PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_custom_type PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_custom_type PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_custom_type_array PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_custom_type_array PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_custom_type_typedef PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_cal_date_time PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_import_attribute_configuration_buffer PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_missing_function PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_simple_function PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_number PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_one_input_function PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_vi_int_64_function PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_two_input_function PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_enum_value PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_list_enums PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_boolean PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_list_booleans PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_single_point_read_nan PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_fetch_waveform PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_fetch_waveform_into PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_return_multiple_types PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_array_types PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_array_types_none_input PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_same_size PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_same_size_none_input PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_different_size PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_different_size_none_input PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_mixed_ivi_dance_and_len_mechanism PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_parameters_are_multiple_types PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_method_with_error PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_call_not_enough_parameters_error PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_invalid_method_call_wrong_type_error PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_method_with_warning PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_read_with_warning PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_library_interpreter_always_uses_same_library_instance PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_runtime_environment_is_called_once_if_present PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_runtime_environment_not_present_in_driver_runtime PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_string_of_fixed_maximum_size PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_string_of_size_python_code PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_return_a_number_and_a_string PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_an_ivi_dance_char_array PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_string_ivi_dance_error PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_an_ivi_dance_with_a_twist_string PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_array_using_ivi_dance PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_real64 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_real64 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_string PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_string PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_boolean PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_boolean PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_int64 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_int64 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_error_returns_mismatched_error_code PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_error_and_error_message_returns_error PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_error_description_error_message_error PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_custom_type PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_custom_type PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_custom_type_array PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_custom_type_array PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_custom_type_typedef PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_array_using_python_code_double PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_array_using_python_code_custom_type PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_cal_date_time PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_list_i8 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_bytes PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_bytearray PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_array_bytes PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_str PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy_complex128_valid_input PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy_complex64_valid_input PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy_complex_interleaved_i16_valid_input PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_3d_numpy_array_of_numpy_complex128 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_no_memorycopy_with_multi_dimensional_numpy_complex128_array PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_no_memorycopy_with_numpy_complex64_array PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_matcher_prints PASSED -generated/nifake/nifake/unit_tests/test_library_singleton.py::test_driver_runtime_not_installed_raises_driver_not_installed_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_init_with_options_and_close PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_init_with_options_nondefault_and_close PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_close PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_context_manager PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_init_with_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_close_with_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_context_manager_init_with_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_context_manager_close_with_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_lock_session_none PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_unlock_session_none PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_lock_context_manager PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_lock_context_manager_abnormal_exit PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_self_test PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_self_test_fail PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_acquisition_context_manager PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_acquisition_no_context_manager PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_single_point_read_timedelta PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_enum_input_function_with_defaults PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_string_valued_enum_input_function_with_defaults PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_fetch_waveform_into_wrong_type PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_parameters_are_multiple_types_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_error_with_rep_cap PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_call_not_enough_parameters_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_enum_input_function_with_defaults_bad_type_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_channel_names PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_repeated_capability_method_on_session_timedelta PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_repeated_capability_method_on_specific_channel PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_device_method_not_exist_on_repeated_capability_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_repeated_capabilities_list PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_chained_repeated_capabilities_list PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_chained_repeated_capability_method_on_specific_channel PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_function_with_repeated_capability_type PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int32_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int32_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int32_with_month_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int32_with_month_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_real64 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_real64 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_real64_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_real64_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_string PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_string PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_comma_separated_string PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_comma_separated_string PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_string_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_string_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_boolean PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_boolean PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_int32 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_int32 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_real64 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_real64 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_with_converter_invalid_value_from_driver PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_with_converter_invalid_input PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_channel PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_channel PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int64 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int64 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_session_error_set PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_session_error_get PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_repeated_capability_error_set PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_repeated_capability_error_get PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_enum_attribute_int32_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_wrong_enum_attribute_int32_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_same_size_wrong_size_2 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_same_size_wrong_size_3 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_same_size_wrong_size_4 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_different_size_none_input PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_cal_date_time PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_cal_interval PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_import_attribute_configuration_buffer_list_i8_big PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_import_attribute_configuration_buffer_list_i8_float PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_import_attribute_configuration_buffer_list_i8_big_float PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_export_attribute_configuration_buffer PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_channel_on_session PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_function_name PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_buffer_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_nitclk_integration PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_accept_list_of_time_values_as_floats PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_accept_array_of_time_values_as_floats PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_accept_list_of_time_values_as_timedelta_instances PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_return_timedelta PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_return_timedeltas PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_with_valid_intflag_parameter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_with_intflag_parameter_invalid PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_write_waveform_numpy_complex64_invalid_dtype PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_write_waveform_numpy_complex128_invalid_dtype PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_write_waveform_numpy_complex_interleaved_i16_invalid_dtype PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_init_with_options_and_close PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_lock_session_none PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_unlock_session_none PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_lock_context_manager PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_lock_context_manager_abnormal_exit PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_self_test PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_export_attribute_configuration_buffer PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_get_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_session.py::test_diagnostic_information OS: - Name: Linux - Version: #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 - Bits: 64 -Driver: - Name: NI-FAKE - Version: Unknown -Module: - Name: nifake - Version: 1.4.10.dev0 -Python: - Version: 3.12.3 (main, Mar 3 2026, 12:15:18) [GCC 13.3.0] - Bits: 64 - Is_Venv: True - Installed Packages: - Mako==1.3.10 - MarkupSafe==3.0.3 - Pygments==2.19.2 - coverage==7.13.4 - grpcio==1.75.1 - hightime==1.0.0 - iniconfig==2.3.0 - nifake==1.4.10.dev0 - nitclk==1.4.10.dev0 - numpy==2.4.3 - packaging==26.0 - pip==26.0.1 - pluggy==1.6.0 - protobuf==5.27.2 - pytest==9.0.2 - pytest-timeout==2.4.0 - typing_extensions==4.15.0 -PASSED -generated/nifake/nifake/unit_tests/test_session.py::test_dunder_version Version = 1.4.10.dev0 -PASSED - -============================= 272 passed in 13.03s ============================= -py312-test: commands[5]> coverage report -Name Stmts Miss Cover ------------------------------------------------------------------------------ -generated/nifake/nifake/__init__.py 72 11 85% -generated/nifake/nifake/_attributes.py 89 3 97% -generated/nifake/nifake/_complextype.py 8 0 100% -generated/nifake/nifake/_converters.py 138 6 96% -generated/nifake/nifake/_grpc_stub_interpreter.py 254 42 83% -generated/nifake/nifake/_visatype.py 20 0 100% -generated/nifake/nifake/custom_struct.py 28 3 89% -generated/nifake/nifake/custom_struct_nested_typedef.py 26 2 92% -generated/nifake/nifake/custom_struct_typedef.py 24 2 92% -generated/nifake/nifake/enums.py 50 0 100% -generated/nifake/nifake/errors.py 61 3 95% -generated/nifake/nifake/grpc_session_options.py 16 0 100% -generated/nifake/nifake/session.py 500 112 78% ------------------------------------------------------------------------------ -TOTAL 1286 184 86% -py312-test: commands[6]> coverage xml -o nifakeunittest.xml -Wrote XML report to nifakeunittest.xml -py312-test: commands[7]> coverage html --directory=generated/htmlcov/unit_tests/nifake -Wrote HTML report to generated/htmlcov/unit_tests/nifake/index.html -py312-test: commands[8]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nidcpower -m pytest generated/nidcpower/nidcpower -s -============================= test session starts ============================== -platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-test/bin/python -cachedir: .tox/64/py312-test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -plugins: timeout-2.4.0 -collecting ... collected 7 items - -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_measurement[ctype_members0-Dev1/0-expected_python_members0-Channel : Dev1/0\nDC voltage : 0.1 V\nDC current : 0.001 A\nStimulus frequency : 10,000 Hz\nAC voltage : 1+0.1j V RMS\nAC current : 0.01+0.001j A RMS\nImpedance : 100+10j \u03a9\nImpedance magnitude : 100.499 \u03a9\nImpedance phase : 5.71059 \xb0\nAdmittance : 0.00990099-0.000990099j S\nAdmittance magnitude: 0.00995037 S\nAdmittance phase : -5.71059 \xb0\nSeries inductance : 10 H\nSeries capacitance : 20 F\nSeries resistance : 90 \u03a9\nParallel inductance : 30 H\nParallel capacitance: 40 F\nParallel resistance : 110 \u03a9\nDissipation factor : 10\nQuality factor : 0.1\nMeasurement mode : SMU_PS\nDC in compliance : True\nAC in compliance : True\nUnbalanced : True\n] PASSED -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_measurement[ctype_members1-1-expected_python_members1-Channel : 1\nDC voltage : 0 V\nDC current : 0 A\nStimulus frequency : 0 Hz\nAC voltage : 0+0j V RMS\nAC current : 0+0j A RMS\nImpedance : 0+0j \u03a9\nImpedance magnitude : 0 \u03a9\nImpedance phase : 0 \xb0\nAdmittance : nan+nanj S\nAdmittance magnitude: nan S\nAdmittance phase : nan \xb0\nSeries inductance : 0 H\nSeries capacitance : 0 F\nSeries resistance : 0 \u03a9\nParallel inductance : 0 H\nParallel capacitance: 0 F\nParallel resistance : 0 \u03a9\nDissipation factor : 0\nQuality factor : nan\nMeasurement mode : LCR\nDC in compliance : False\nAC in compliance : False\nUnbalanced : False\n] PASSED -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params0-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=200.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IMPEDANCE, reference_value=(3+4j))-Frequency : 200 Hz\nImpedance : 3+4j \u03a9\n-expected_ctype_members0] PASSED -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params1-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=300.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IDEAL_CAPACITANCE, reference_value=5.0)-Frequency : 300 Hz\nIdeal Capacitance: 5 F\n-expected_ctype_members1] PASSED -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params2-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=400.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IDEAL_INDUCTANCE, reference_value=6.0)-Frequency : 400 Hz\nIdeal Inductance : 6 H\n-expected_ctype_members2] PASSED -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params3-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=500.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IDEAL_RESISTANCE, reference_value=7.0)-Frequency : 500 Hz\nIdeal Resistance : 7 \u03a9\n-expected_ctype_members3] PASSED -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot_byte_packing_alignment PASSED - -============================== 7 passed in 0.77s =============================== -py312-test: commands[9]> coverage report -Name Stmts Miss Cover ---------------------------------------------------------------------------------- -generated/nidcpower/nidcpower/lcr_load_compensation_spot.py 33 5 85% -generated/nidcpower/nidcpower/lcr_measurement.py 53 4 92% ---------------------------------------------------------------------------------- -TOTAL 86 9 90% -py312-test: commands[10]> coverage xml -o nidcpowerunittest.xml -Wrote XML report to nidcpowerunittest.xml -py312-test: commands[11]> coverage html --directory=generated/htmlcov/unit_tests/nidcpower -Wrote HTML report to generated/htmlcov/unit_tests/nidcpower/index.html -py312-test: commands[12]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nidigital -m pytest generated/nidigital/nidigital -s -============================= test session starts ============================== -platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-test/bin/python -cachedir: .tox/64/py312-test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -plugins: timeout-2.4.0 -collecting ... collected 8 items - -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_position_out_of_bound PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_position_last PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_samples_to_read_too_much PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_samples_to_read_all PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_pin_list PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_site_n PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_pin_state_enum_print PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_write_static_pin_state_enum_print PASSED - -============================== 8 passed in 0.96s =============================== -py312-test: commands[13]> coverage report -Name Stmts Miss Cover --------------------------------------------------------------- -generated/nidigital/nidigital/session.py 786 248 68% --------------------------------------------------------------- -TOTAL 786 248 68% -py312-test: commands[14]> coverage xml -o nidigitalunittest.xml -Wrote XML report to nidigitalunittest.xml -py312-test: commands[15]> coverage html --directory=generated/htmlcov/unit_tests/nidigital -Wrote HTML report to generated/htmlcov/unit_tests/nidigital/index.html -py312-test: commands[16]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nimodinst -m pytest generated/nimodinst/nimodinst -s -============================= test session starts ============================== -platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-test/bin/python -cachedir: .tox/64/py312-test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -plugins: timeout-2.4.0 -collecting ... collected 23 items - -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_open_and_close PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_close PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_context_manager PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_iterating_for PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_iterating_for_empty PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_extended_error_info PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_error_description_fails PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_session PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_int32_for_loop_index PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_string_for_loop_index PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_session_no_index PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_int32_for_loop_multiple_devices PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_string_for_loop_multiple_devices PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_session_set PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_session_get PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_device_set PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_device_get PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_vi_int32_attribute_read_only PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_vi_string_attribute_read_only PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_int_attribute_error PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_int_attribute_warning PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_repr_and_str nimodinst.Session(driver=''): -nimodinst._Device(owner=nimodinst.Session(driver=''), index=0): - bus_number = 42 - chassis_number = 42 - device_model = 'fourty two' - device_name = 'fourty two' - max_pciexpress_link_width = 42 - pciexpress_link_width = 42 - serial_number = 'fourty two' - slot_number = 42 - socket_number = 42 - -nimodinst._Device(owner=nimodinst.Session(driver=''), index=1): - bus_number = 42 - chassis_number = 42 - device_model = 'fourty two' - device_name = 'fourty two' - max_pciexpress_link_width = 42 - pciexpress_link_width = 42 - serial_number = 'fourty two' - slot_number = 42 - socket_number = 42 - - -nimodinst._Device(owner=nimodinst.Session(driver=''), index=0): - bus_number = 42 - chassis_number = 42 - device_model = 'fourty two' - device_name = 'fourty two' - max_pciexpress_link_width = 42 - pciexpress_link_width = 42 - serial_number = 'fourty two' - slot_number = 42 - socket_number = 42 - -nimodinst._Device(owner=nimodinst.Session(driver=''), index=1): - bus_number = 42 - chassis_number = 42 - device_model = 'fourty two' - device_name = 'fourty two' - max_pciexpress_link_width = 42 - pciexpress_link_width = 42 - serial_number = 'fourty two' - slot_number = 42 - socket_number = 42 - -PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::test_diagnostic_information OS: - Name: Linux - Version: #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 - Bits: 64 -Driver: - Name: NI-ModInst - Version: Unknown -Module: - Name: nimodinst - Version: 1.4.10.dev0 -Python: - Version: 3.12.3 (main, Mar 3 2026, 12:15:18) [GCC 13.3.0] - Bits: 64 - Is_Venv: True - Installed Packages: - Mako==1.3.10 - MarkupSafe==3.0.3 - Pygments==2.19.2 - coverage==7.13.4 - grpcio==1.75.1 - hightime==1.0.0 - iniconfig==2.3.0 - nimodinst==1.4.10.dev0 - nitclk==1.4.10.dev0 - numpy==2.4.3 - packaging==26.0 - pip==26.0.1 - pluggy==1.6.0 - protobuf==5.27.2 - pytest==9.0.2 - pytest-timeout==2.4.0 - typing_extensions==4.15.0 -PASSED - -============================== 23 passed in 0.66s ============================== -py312-test: commands[17]> coverage report -Name Stmts Miss Cover --------------------------------------------------------------- -generated/nimodinst/nimodinst/session.py 138 8 94% --------------------------------------------------------------- -TOTAL 138 8 94% -py312-test: commands[18]> coverage xml -o nimodinstunittest.xml -Wrote XML report to nimodinstunittest.xml -py312-test: commands[19]> coverage html --directory=generated/htmlcov/unit_tests/nimodinst -Wrote HTML report to generated/htmlcov/unit_tests/nimodinst/index.html -py312-test: commands[20]> coverage run --rcfile=tools/coverage_unit_tests.rc --source niscope -m pytest generated/niscope/niscope -s -============================= test session starts ============================== -platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-test/bin/python -cachedir: .tox/64/py312-test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -plugins: timeout-2.4.0 -collecting ... collected 2 items - -generated/niscope/niscope/unit_tests/test_niscope.py::test_populate_samples_info PASSED -generated/niscope/niscope/unit_tests/test_niscope.py::test_populate_channel_and_record_info PASSED - -============================== 2 passed in 0.71s =============================== -py312-test: commands[21]> coverage report -Name Stmts Miss Cover ----------------------------------------------------------------- -generated/niscope/niscope/waveform_info.py 81 46 43% ----------------------------------------------------------------- -TOTAL 81 46 43% -py312-test: commands[22]> coverage xml -o niscopeunittest.xml -Wrote XML report to niscopeunittest.xml -py312-test: commands[23]> coverage html --directory=generated/htmlcov/unit_tests/niscope -Wrote HTML report to generated/htmlcov/unit_tests/niscope/index.html -py312-test: commands[24]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nitclk -m pytest generated/nitclk/nitclk -s -============================= test session starts ============================== -platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py312-test/bin/python -cachedir: .tox/64/py312-test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -plugins: timeout-2.4.0 -collecting ... collected 25 items - -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_initialize_one_session PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_initialize_multiple_sessions PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_configure_for_homogeneous_triggers PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_finish_sync_pulse_sender_synchronize PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_is_done PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_setup_for_sync_pulse_sender_synchronize PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_synchronize PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_synchronize_timedelta PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_synchronize_to_sync_pulse_sender PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_wait_until_done PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_api_error PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_api_get_error_description_fails PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_session_reference_error PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_session_reference_get_error_description_fails PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_real64 PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_vi_real64 PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_timedelta_as_vi_real64 PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_timedelta_as_timedelta PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_timedelta PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_string PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_vi_string PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_session_with_int PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_session_with_session_reference PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_session_with_session PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_tclk_session_reference PASSED - -============================== 25 passed in 0.60s ============================== -py312-test: commands[25]> coverage report -Name Stmts Miss Cover --------------------------------------------------------- -generated/nitclk/nitclk/session.py 115 2 98% --------------------------------------------------------- -TOTAL 115 2 98% -py312-test: commands[26]> coverage xml -o nitclkunittest.xml -Wrote XML report to nitclkunittest.xml -py312-test: commands[27]> coverage html --directory=generated/htmlcov/unit_tests/nitclk -Wrote HTML report to generated/htmlcov/unit_tests/nitclk/index.html -py312-test: OK ✔ in 24.03 seconds -py313-test: skipped because could not find python interpreter with spec(s): py313 -py313-test: SKIP ⚠ in 0.44 seconds -py314-test: commands[0]> python --version -Python 3.14.0 -py314-test: commands[1]> python -c 'import platform; print(platform.architecture())' -('64bit', 'ELF') -py314-test: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip -Requirement already satisfied: pip in ./.tox/64/py314-test/lib/python3.14/site-packages (26.0.1) -py314-test: commands[3]> python tools/install_local_wheel.py --driver nitclk -Processing ./generated/nitclk/dist/nitclk-1.4.10.dev0-py3-none-any.whl -Requirement already satisfied: hightime>=0.2.0 in ./.tox/64/py314-test/lib/python3.14/site-packages (from nitclk==1.4.10.dev0) (1.0.0) -nitclk is already installed with the same version as the provided wheel. Use --force-reinstall to force an installation of the wheel. -py314-test: commands[4]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nifake -m pytest generated/nifake/nifake -s -============================= test session starts ============================== -platform linux -- Python 3.14.0, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py314-test/bin/python -cachedir: .tox/64/py314-test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -plugins: timeout-2.4.0 -collecting ... collected 272 items - -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_init_with_options_dictionary PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedelta_to_seconds_double PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedelta_to_milliseconds_int32 PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedeltas_to_seconds_real64 PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_timedelta_to_months_int32 PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_seconds_real64_to_timedelta PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_seconds_real64_to_timedeltas PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_string_channel PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_string_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_list_channel PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_list_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_tuple_channel PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_tuple_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_unicode PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_raw PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_slice_channel PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_mixed_channel PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_mixed_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_invalid_repeated_capabilities PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_slice_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_without_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_string_resource_name PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_list_resource_name PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_tuple_resource_name PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_mixed_resource_name PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_repeated_capabilities_invalid_resource_names PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_expand_channel_string_non_fully_qualified_channel_names PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_expand_channel_string_fully_qualified_channel_names PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_chained_repeated_capability_to_parts_three_parts PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_chained_repeated_capability_to_parts_single_part PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_chained_repeated_capability_to_parts_empty_string PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_string_to_list_channel PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_string_to_list_prefix PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_comma_separated_string_to_list PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_list_to_comma_separated_string PASSED -generated/nifake/nifake/unit_tests/test_converters.py::test_convert_list_to_comma_separated_string_invalid_input PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_server_unavailable PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_function_not_implemented PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_api_key_sent_to_init PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_new_session_already_exists PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_attach_to_non_existent_session PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_lock_unlock PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_simple_function PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_number PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_one_input_function PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_vi_int_64_function PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_two_input_function PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_enum_value PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_list_enums PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_boolean PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_list_booleans PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_single_point_read_nan PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_fetch_waveform PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_fetch_waveform_into PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_write_waveform PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_write_waveform_numpy PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_return_multiple_types PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_array_types PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_array_types_none_input PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_same_size PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_same_size_none_input PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_different_size PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_different_size_none_input PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_mixed_ivi_dance_and_len_mechanism PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_multiple_arrays_same_size_wrong_size PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_parameters_are_multiple_types PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_method_with_error PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_call_not_enough_parameters_error PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_invalid_method_call_wrong_type_error PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_method_with_warning PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_read_with_warning PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_a_string_of_fixed_maximum_size PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_return_a_number_and_a_string PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_an_ivi_dance_char_array PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_string_ivi_dance_error PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_an_ivi_dance_with_a_twist_string PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_array_using_ivi_dance PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_real64 PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_real64 PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_string PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_string PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_boolean PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_boolean PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_attribute_int64 PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_attribute_int64 PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_error_message_returns_error PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_custom_type PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_custom_type PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_set_custom_type_array PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_custom_type_array PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_custom_type_typedef PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_get_cal_date_time PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_import_attribute_configuration_buffer PASSED -generated/nifake/nifake/unit_tests/test_grpc.py::TestGrpcStubInterpreter::test_missing_function PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_simple_function PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_number PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_one_input_function PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_vi_int_64_function PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_two_input_function PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_enum_value PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_list_enums PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_boolean PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_list_booleans PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_single_point_read_nan PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_fetch_waveform PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_fetch_waveform_into PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_return_multiple_types PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_array_types PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_array_types_none_input PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_same_size PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_same_size_none_input PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_different_size PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_multiple_arrays_different_size_none_input PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_mixed_ivi_dance_and_len_mechanism PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_parameters_are_multiple_types PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_method_with_error PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_call_not_enough_parameters_error PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_invalid_method_call_wrong_type_error PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_method_with_warning PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_read_with_warning PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_library_interpreter_always_uses_same_library_instance PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_runtime_environment_is_called_once_if_present PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_runtime_environment_not_present_in_driver_runtime PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_string_of_fixed_maximum_size PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_a_string_of_size_python_code PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_return_a_number_and_a_string PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_an_ivi_dance_char_array PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_string_ivi_dance_error PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_an_ivi_dance_with_a_twist_string PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_array_using_ivi_dance PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_real64 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_real64 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_string PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_string PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_boolean PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_boolean PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_attribute_int64 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_attribute_int64 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_error_returns_mismatched_error_code PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_error_and_error_message_returns_error PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_error_description_error_message_error PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_custom_type PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_custom_type PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_set_custom_type_array PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_custom_type_array PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_custom_type_typedef PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_array_using_python_code_double PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_array_using_python_code_custom_type PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_get_cal_date_time PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_list_i8 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_bytes PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_bytearray PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_array_bytes PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_import_attribute_configuration_buffer_str PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy_complex128_valid_input PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy_complex64_valid_input PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_waveform_numpy_complex_interleaved_i16_valid_input PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_write_3d_numpy_array_of_numpy_complex128 PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_no_memorycopy_with_multi_dimensional_numpy_complex128_array PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_no_memorycopy_with_numpy_complex64_array PASSED -generated/nifake/nifake/unit_tests/test_library_interpreter.py::TestLibraryInterpreter::test_matcher_prints PASSED -generated/nifake/nifake/unit_tests/test_library_singleton.py::test_driver_runtime_not_installed_raises_driver_not_installed_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_init_with_options_and_close PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_init_with_options_nondefault_and_close PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_close PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_context_manager PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_init_with_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_close_with_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_context_manager_init_with_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_context_manager_close_with_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_lock_session_none PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_unlock_session_none PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_lock_context_manager PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_lock_context_manager_abnormal_exit PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_self_test PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_self_test_fail PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_acquisition_context_manager PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_acquisition_no_context_manager PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_single_point_read_timedelta PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_enum_input_function_with_defaults PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_string_valued_enum_input_function_with_defaults PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_fetch_waveform_into_wrong_type PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_parameters_are_multiple_types_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_error_with_rep_cap PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_call_not_enough_parameters_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_enum_input_function_with_defaults_bad_type_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_channel_names PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_repeated_capability_method_on_session_timedelta PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_repeated_capability_method_on_specific_channel PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_device_method_not_exist_on_repeated_capability_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_repeated_capabilities_list PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_chained_repeated_capabilities_list PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_chained_repeated_capability_method_on_specific_channel PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_function_with_repeated_capability_type PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int32_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int32_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int32_with_month_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int32_with_month_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_real64 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_real64 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_real64_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_real64_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_string PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_string PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_comma_separated_string PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_comma_separated_string PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_string_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_string_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_boolean PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_boolean PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_int32 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_int32 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_real64 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_real64 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_enum_with_converter_invalid_value_from_driver PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_with_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_enum_with_converter_invalid_input PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_channel PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_channel PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_int64 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_int64 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_attribute_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_attribute_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_session_error_set PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_session_error_get PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_repeated_capability_error_set PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_add_properties_to_repeated_capability_error_get PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_enum_attribute_int32_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_set_wrong_enum_attribute_int32_error PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_same_size_wrong_size_2 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_same_size_wrong_size_3 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_same_size_wrong_size_4 PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_multiple_arrays_different_size_none_input PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_cal_date_time PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_get_cal_interval PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_import_attribute_configuration_buffer_list_i8_big PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_import_attribute_configuration_buffer_list_i8_float PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_import_attribute_configuration_buffer_list_i8_big_float PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_export_attribute_configuration_buffer PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_channel_on_session PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_function_name PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_buffer_converter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_nitclk_integration PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_accept_list_of_time_values_as_floats PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_accept_array_of_time_values_as_floats PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_accept_list_of_time_values_as_timedelta_instances PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_return_timedelta PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_return_timedeltas PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_with_valid_intflag_parameter PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_with_intflag_parameter_invalid PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_write_waveform_numpy_complex64_invalid_dtype PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_write_waveform_numpy_complex128_invalid_dtype PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestSession::test_session_write_waveform_numpy_complex_interleaved_i16_invalid_dtype PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_init_with_options_and_close PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_lock_session_none PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_unlock_session_none PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_lock_context_manager PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_lock_context_manager_abnormal_exit PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_self_test PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_export_attribute_configuration_buffer PASSED -generated/nifake/nifake/unit_tests/test_session.py::TestGrpcSession::test_get_attribute_int32 PASSED -generated/nifake/nifake/unit_tests/test_session.py::test_diagnostic_information OS: - Name: Linux - Version: #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 - Bits: 64 -Driver: - Name: NI-FAKE - Version: Unknown -Module: - Name: nifake - Version: 1.4.10.dev0 -Python: - Version: 3.14.0 (main, Feb 11 2026, 08:04:23) [GCC 13.3.0] - Bits: 64 - Is_Venv: True - Installed Packages: - Mako==1.3.10 - MarkupSafe==3.0.3 - Pygments==2.19.2 - coverage==7.13.4 - grpcio==1.75.1 - hightime==1.0.0 - iniconfig==2.3.0 - nifake==1.4.10.dev0 - nitclk==1.4.10.dev0 - numpy==2.4.3 - packaging==26.0 - pip==26.0.1 - pluggy==1.6.0 - protobuf==5.27.2 - pytest==9.0.2 - pytest-timeout==2.4.0 - typing_extensions==4.15.0 -PASSED -generated/nifake/nifake/unit_tests/test_session.py::test_dunder_version Version = 1.4.10.dev0 -PASSED - -============================= 272 passed in 8.71s ============================== -py314-test: commands[5]> coverage report -Name Stmts Miss Cover ------------------------------------------------------------------------------ -generated/nifake/nifake/__init__.py 72 11 85% -generated/nifake/nifake/_attributes.py 89 3 97% -generated/nifake/nifake/_complextype.py 8 0 100% -generated/nifake/nifake/_converters.py 138 6 96% -generated/nifake/nifake/_grpc_stub_interpreter.py 254 42 83% -generated/nifake/nifake/_visatype.py 20 0 100% -generated/nifake/nifake/custom_struct.py 28 3 89% -generated/nifake/nifake/custom_struct_nested_typedef.py 26 2 92% -generated/nifake/nifake/custom_struct_typedef.py 24 2 92% -generated/nifake/nifake/enums.py 50 0 100% -generated/nifake/nifake/errors.py 61 3 95% -generated/nifake/nifake/grpc_session_options.py 16 0 100% -generated/nifake/nifake/session.py 500 112 78% ------------------------------------------------------------------------------ -TOTAL 1286 184 86% -py314-test: commands[6]> coverage xml -o nifakeunittest.xml -Wrote XML report to nifakeunittest.xml -py314-test: commands[7]> coverage html --directory=generated/htmlcov/unit_tests/nifake -Wrote HTML report to generated/htmlcov/unit_tests/nifake/index.html -py314-test: commands[8]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nidcpower -m pytest generated/nidcpower/nidcpower -s -============================= test session starts ============================== -platform linux -- Python 3.14.0, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py314-test/bin/python -cachedir: .tox/64/py314-test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -plugins: timeout-2.4.0 -collecting ... collected 7 items - -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_measurement[ctype_members0-Dev1/0-expected_python_members0-Channel : Dev1/0\nDC voltage : 0.1 V\nDC current : 0.001 A\nStimulus frequency : 10,000 Hz\nAC voltage : 1+0.1j V RMS\nAC current : 0.01+0.001j A RMS\nImpedance : 100+10j \u03a9\nImpedance magnitude : 100.499 \u03a9\nImpedance phase : 5.71059 \xb0\nAdmittance : 0.00990099-0.000990099j S\nAdmittance magnitude: 0.00995037 S\nAdmittance phase : -5.71059 \xb0\nSeries inductance : 10 H\nSeries capacitance : 20 F\nSeries resistance : 90 \u03a9\nParallel inductance : 30 H\nParallel capacitance: 40 F\nParallel resistance : 110 \u03a9\nDissipation factor : 10\nQuality factor : 0.1\nMeasurement mode : SMU_PS\nDC in compliance : True\nAC in compliance : True\nUnbalanced : True\n] PASSED -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_measurement[ctype_members1-1-expected_python_members1-Channel : 1\nDC voltage : 0 V\nDC current : 0 A\nStimulus frequency : 0 Hz\nAC voltage : 0+0j V RMS\nAC current : 0+0j A RMS\nImpedance : 0+0j \u03a9\nImpedance magnitude : 0 \u03a9\nImpedance phase : 0 \xb0\nAdmittance : nan+nanj S\nAdmittance magnitude: nan S\nAdmittance phase : nan \xb0\nSeries inductance : 0 H\nSeries capacitance : 0 F\nSeries resistance : 0 \u03a9\nParallel inductance : 0 H\nParallel capacitance: 0 F\nParallel resistance : 0 \u03a9\nDissipation factor : 0\nQuality factor : nan\nMeasurement mode : LCR\nDC in compliance : False\nAC in compliance : False\nUnbalanced : False\n] PASSED -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params0-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=200.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IMPEDANCE, reference_value=(3+4j))-Frequency : 200 Hz\nImpedance : 3+4j \u03a9\n-expected_ctype_members0] PASSED -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params1-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=300.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IDEAL_CAPACITANCE, reference_value=5.0)-Frequency : 300 Hz\nIdeal Capacitance: 5 F\n-expected_ctype_members1] PASSED -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params2-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=400.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IDEAL_INDUCTANCE, reference_value=6.0)-Frequency : 400 Hz\nIdeal Inductance : 6 H\n-expected_ctype_members2] PASSED -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot[python_init_params3-nidcpower.lcr_load_compensation_spot.LCRLoadCompensationSpot(frequency=500.0, reference_value_type=nidcpower.enums.LCRReferenceValueType.IDEAL_RESISTANCE, reference_value=7.0)-Frequency : 500 Hz\nIdeal Resistance : 7 \u03a9\n-expected_ctype_members3] PASSED -generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py::test_lcr_load_compensation_spot_byte_packing_alignment PASSED - -=============================== warnings summary =============================== -generated/nidcpower/nidcpower/lcr_measurement.py:10 - /home/rahur/nimi-python-rahur/nimi-python/generated/nidcpower/nidcpower/lcr_measurement.py:10: DeprecationWarning: Due to '_pack_', the 'struct_NILCRMeasurement' Structure will use memory layout compatible with MSVC (Windows). If this is intended, set _layout_ to 'ms'. The implicit default is deprecated and slated to become an error in Python 3.19. - class struct_NILCRMeasurement(ctypes.Structure): # noqa N801 - -generated/nidcpower/nidcpower/lcr_load_compensation_spot.py:10 - /home/rahur/nimi-python-rahur/nimi-python/generated/nidcpower/nidcpower/lcr_load_compensation_spot.py:10: DeprecationWarning: Due to '_pack_', the 'struct_NILCRLoadCompensationSpot' Structure will use memory layout compatible with MSVC (Windows). If this is intended, set _layout_ to 'ms'. The implicit default is deprecated and slated to become an error in Python 3.19. - class struct_NILCRLoadCompensationSpot(ctypes.Structure): # noqa N801 - --- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html -======================== 7 passed, 2 warnings in 0.49s ========================= -py314-test: commands[9]> coverage report -Name Stmts Miss Cover ---------------------------------------------------------------------------------- -generated/nidcpower/nidcpower/lcr_load_compensation_spot.py 33 5 85% -generated/nidcpower/nidcpower/lcr_measurement.py 53 4 92% ---------------------------------------------------------------------------------- -TOTAL 86 9 90% -py314-test: commands[10]> coverage xml -o nidcpowerunittest.xml -Wrote XML report to nidcpowerunittest.xml -py314-test: commands[11]> coverage html --directory=generated/htmlcov/unit_tests/nidcpower -Wrote HTML report to generated/htmlcov/unit_tests/nidcpower/index.html -py314-test: commands[12]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nidigital -m pytest generated/nidigital/nidigital -s -============================= test session starts ============================== -platform linux -- Python 3.14.0, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py314-test/bin/python -cachedir: .tox/64/py314-test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -plugins: timeout-2.4.0 -collecting ... collected 8 items - -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_position_out_of_bound PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_position_last PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_samples_to_read_too_much PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_samples_to_read_all PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_pin_list PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_fetch_history_ram_cycle_information_site_n PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_pin_state_enum_print PASSED -generated/nidigital/nidigital/unit_tests/test_nidigital.py::TestSession::test_write_static_pin_state_enum_print PASSED - -============================== 8 passed in 0.57s =============================== -py314-test: commands[13]> coverage report -Name Stmts Miss Cover --------------------------------------------------------------- -generated/nidigital/nidigital/session.py 786 248 68% --------------------------------------------------------------- -TOTAL 786 248 68% -py314-test: commands[14]> coverage xml -o nidigitalunittest.xml -Wrote XML report to nidigitalunittest.xml -py314-test: commands[15]> coverage html --directory=generated/htmlcov/unit_tests/nidigital -Wrote HTML report to generated/htmlcov/unit_tests/nidigital/index.html -py314-test: commands[16]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nimodinst -m pytest generated/nimodinst/nimodinst -s -============================= test session starts ============================== -platform linux -- Python 3.14.0, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py314-test/bin/python -cachedir: .tox/64/py314-test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -plugins: timeout-2.4.0 -collecting ... collected 23 items - -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_open_and_close PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_close PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_context_manager PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_iterating_for PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_iterating_for_empty PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_extended_error_info PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_error_description_fails PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_session PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_int32_for_loop_index PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_string_for_loop_index PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_session_no_index PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_int32_for_loop_multiple_devices PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_get_attribute_vi_string_for_loop_multiple_devices PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_session_set PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_session_get PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_device_set PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_cannot_add_properties_to_device_get PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_vi_int32_attribute_read_only PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_vi_string_attribute_read_only PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_int_attribute_error PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_int_attribute_warning PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::TestSession::test_repr_and_str nimodinst.Session(driver=''): -nimodinst._Device(owner=nimodinst.Session(driver=''), index=0): - bus_number = 42 - chassis_number = 42 - device_model = 'fourty two' - device_name = 'fourty two' - max_pciexpress_link_width = 42 - pciexpress_link_width = 42 - serial_number = 'fourty two' - slot_number = 42 - socket_number = 42 - -nimodinst._Device(owner=nimodinst.Session(driver=''), index=1): - bus_number = 42 - chassis_number = 42 - device_model = 'fourty two' - device_name = 'fourty two' - max_pciexpress_link_width = 42 - pciexpress_link_width = 42 - serial_number = 'fourty two' - slot_number = 42 - socket_number = 42 - - -nimodinst._Device(owner=nimodinst.Session(driver=''), index=0): - bus_number = 42 - chassis_number = 42 - device_model = 'fourty two' - device_name = 'fourty two' - max_pciexpress_link_width = 42 - pciexpress_link_width = 42 - serial_number = 'fourty two' - slot_number = 42 - socket_number = 42 - -nimodinst._Device(owner=nimodinst.Session(driver=''), index=1): - bus_number = 42 - chassis_number = 42 - device_model = 'fourty two' - device_name = 'fourty two' - max_pciexpress_link_width = 42 - pciexpress_link_width = 42 - serial_number = 'fourty two' - slot_number = 42 - socket_number = 42 - -PASSED -generated/nimodinst/nimodinst/unit_tests/test_modinst.py::test_diagnostic_information OS: - Name: Linux - Version: #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 - Bits: 64 -Driver: - Name: NI-ModInst - Version: Unknown -Module: - Name: nimodinst - Version: 1.4.10.dev0 -Python: - Version: 3.14.0 (main, Feb 11 2026, 08:04:23) [GCC 13.3.0] - Bits: 64 - Is_Venv: True - Installed Packages: - Mako==1.3.10 - MarkupSafe==3.0.3 - Pygments==2.19.2 - coverage==7.13.4 - grpcio==1.75.1 - hightime==1.0.0 - iniconfig==2.3.0 - nimodinst==1.4.10.dev0 - nitclk==1.4.10.dev0 - numpy==2.4.3 - packaging==26.0 - pip==26.0.1 - pluggy==1.6.0 - protobuf==5.27.2 - pytest==9.0.2 - pytest-timeout==2.4.0 - typing_extensions==4.15.0 -PASSED - -============================== 23 passed in 0.35s ============================== -py314-test: commands[17]> coverage report -Name Stmts Miss Cover --------------------------------------------------------------- -generated/nimodinst/nimodinst/session.py 138 8 94% --------------------------------------------------------------- -TOTAL 138 8 94% -py314-test: commands[18]> coverage xml -o nimodinstunittest.xml -Wrote XML report to nimodinstunittest.xml -py314-test: commands[19]> coverage html --directory=generated/htmlcov/unit_tests/nimodinst -Wrote HTML report to generated/htmlcov/unit_tests/nimodinst/index.html -py314-test: commands[20]> coverage run --rcfile=tools/coverage_unit_tests.rc --source niscope -m pytest generated/niscope/niscope -s -============================= test session starts ============================== -platform linux -- Python 3.14.0, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py314-test/bin/python -cachedir: .tox/64/py314-test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -plugins: timeout-2.4.0 -collecting ... collected 2 items - -generated/niscope/niscope/unit_tests/test_niscope.py::test_populate_samples_info PASSED -generated/niscope/niscope/unit_tests/test_niscope.py::test_populate_channel_and_record_info PASSED - -=============================== warnings summary =============================== -generated/niscope/niscope/waveform_info.py:9 - /home/rahur/nimi-python-rahur/nimi-python/generated/niscope/niscope/waveform_info.py:9: DeprecationWarning: Due to '_pack_', the 'struct_niScope_wfmInfo' Structure will use memory layout compatible with MSVC (Windows). If this is intended, set _layout_ to 'ms'. The implicit default is deprecated and slated to become an error in Python 3.19. - class struct_niScope_wfmInfo(ctypes.Structure): # noqa N801 - --- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html -========================= 2 passed, 1 warning in 0.42s ========================= -py314-test: commands[21]> coverage report -Name Stmts Miss Cover ----------------------------------------------------------------- -generated/niscope/niscope/waveform_info.py 81 46 43% ----------------------------------------------------------------- -TOTAL 81 46 43% -py314-test: commands[22]> coverage xml -o niscopeunittest.xml -Wrote XML report to niscopeunittest.xml -py314-test: commands[23]> coverage html --directory=generated/htmlcov/unit_tests/niscope -Wrote HTML report to generated/htmlcov/unit_tests/niscope/index.html -py314-test: commands[24]> coverage run --rcfile=tools/coverage_unit_tests.rc --source nitclk -m pytest generated/nitclk/nitclk -s -============================= test session starts ============================== -platform linux -- Python 3.14.0, pytest-9.0.2, pluggy-1.6.0 -- /home/rahur/nimi-python-rahur/nimi-python/.tox/64/py314-test/bin/python -cachedir: .tox/64/py314-test/.pytest_cache -rootdir: /home/rahur/nimi-python-rahur/nimi-python -configfile: tox.ini -plugins: timeout-2.4.0 -collecting ... collected 25 items - -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_initialize_one_session PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_initialize_multiple_sessions PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_configure_for_homogeneous_triggers PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_finish_sync_pulse_sender_synchronize PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_is_done PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_setup_for_sync_pulse_sender_synchronize PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_synchronize PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_synchronize_timedelta PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_synchronize_to_sync_pulse_sender PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_wait_until_done PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_api_error PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_api_get_error_description_fails PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_session_reference_error PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_session_reference_get_error_description_fails PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_real64 PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_vi_real64 PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_timedelta_as_vi_real64 PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_timedelta_as_timedelta PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_timedelta PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_string PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_vi_string PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_session_with_int PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_session_with_session_reference PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_set_vi_session_with_session PASSED -generated/nitclk/nitclk/unit_tests/test_nitclk.py::TestNitclkApi::test_get_tclk_session_reference PASSED - -============================== 25 passed in 0.32s ============================== -py314-test: commands[25]> coverage report -Name Stmts Miss Cover --------------------------------------------------------- -generated/nitclk/nitclk/session.py 115 2 98% --------------------------------------------------------- -TOTAL 115 2 98% -py314-test: commands[26]> coverage xml -o nitclkunittest.xml -Wrote XML report to nitclkunittest.xml -py314-test: commands[27]> coverage html --directory=generated/htmlcov/unit_tests/nitclk -Wrote HTML report to generated/htmlcov/unit_tests/nitclk/index.html -py314-test: OK ✔ in 19.55 seconds -py312-pkg: commands[0]> python --version -Python 3.12.3 -py312-pkg: commands[1]> python -c 'import platform; print(platform.architecture())' -('64bit', 'ELF') -py312-pkg: commands[2]> python -m twine --version -twine version 6.2.0 (keyring: 25.7.0, packaging: 26.0, requests: 2.32.5, -requests-toolbelt: 1.0.0, urllib3: 2.6.3, id: 1.6.1) -py312-pkg: commands[3]> python -m twine check 'generated/nifake/dist/*' -Checking generated/nifake/dist/nifake-1.4.10.dev0-py3-none-any.whl: PASSED -Checking generated/nifake/dist/nifake-1.4.10.dev0.tar.gz: PASSED -py312-pkg: commands[4]> python -m twine check 'generated/nidcpower/dist/*' -Checking generated/nidcpower/dist/nidcpower-1.5.1.dev0-py3-none-any.whl: PASSED -Checking generated/nidcpower/dist/nidcpower-1.5.1.dev0.tar.gz: PASSED -py312-pkg: commands[5]> python -m twine check 'generated/nidigital/dist/*' -Checking generated/nidigital/dist/nidigital-1.4.10.dev0-py3-none-any.whl: PASSED -Checking generated/nidigital/dist/nidigital-1.4.10.dev0.tar.gz: PASSED -py312-pkg: commands[6]> python -m twine check 'generated/nidmm/dist/*' -Checking generated/nidmm/dist/nidmm-1.4.10.dev0-py3-none-any.whl: PASSED -Checking generated/nidmm/dist/nidmm-1.4.10.dev0.tar.gz: PASSED -py312-pkg: commands[7]> python -m twine check 'generated/nifgen/dist/*' -Checking generated/nifgen/dist/nifgen-1.4.10.dev0-py3-none-any.whl: PASSED -Checking generated/nifgen/dist/nifgen-1.4.10.dev0.tar.gz: PASSED -py312-pkg: commands[8]> python -m twine check 'generated/nirfsg/dist/*' -Checking generated/nirfsg/dist/nirfsg-1.0.2.dev0-py3-none-any.whl: PASSED -Checking generated/nirfsg/dist/nirfsg-1.0.2.dev0.tar.gz: PASSED -py312-pkg: commands[9]> python -m twine check 'generated/niscope/dist/*' -Checking generated/niscope/dist/niscope-1.4.10.dev0-py3-none-any.whl: PASSED -Checking generated/niscope/dist/niscope-1.4.10.dev0.tar.gz: PASSED -py312-pkg: commands[10]> python -m twine check 'generated/nise/dist/*' -Checking generated/nise/dist/nise-1.4.10.dev0-py3-none-any.whl: PASSED -Checking generated/nise/dist/nise-1.4.10.dev0.tar.gz: PASSED -py312-pkg: commands[11]> python -m twine check 'generated/niswitch/dist/*' -Checking generated/niswitch/dist/niswitch-1.4.10.dev0-py3-none-any.whl: PASSED -Checking generated/niswitch/dist/niswitch-1.4.10.dev0.tar.gz: PASSED - py312-build_test: OK (3.85=setup[0.03]+cmd[0.00,0.03,0.59,0.14,0.91,0.96,0.16,0.16,0.35,0.49] seconds) - py312-codegen: OK (58.51=setup[0.01]+cmd[0.00,0.03,0.55,57.92] seconds) - py312-installers: OK (30.76=setup[0.01]+cmd[0.00,0.03,0.67,30.05] seconds) - py310-test: SKIP (0.72 seconds) - py311-test: SKIP (0.69 seconds) - py312-test: OK (24.03=setup[0.04]+cmd[0.00,0.03,0.68,0.43,14.88,0.15,0.17,0.35,1.15,0.09,0.09,0.12,1.40,0.12,0.13,0.23,1.04,0.09,0.09,0.11,1.10,0.09,0.09,0.10,0.98,0.09,0.09,0.11] seconds) - py313-test: SKIP (0.44 seconds) - py314-test: OK (19.55=setup[0.11]+cmd[0.01,0.06,0.75,0.45,11.06,0.15,0.17,0.20,1.05,0.10,0.10,0.11,1.18,0.13,0.14,0.15,0.89,0.09,0.10,0.11,0.96,0.10,0.09,0.10,0.88,0.09,0.10,0.11] seconds) - py312-flake8: OK (4.40=setup[0.02]+cmd[0.00,0.03,0.58,1.59,0.14,0.29,0.33,0.18,0.22,0.14,0.23,0.22,0.14,0.15,0.14] seconds) - py312-docs: OK (20.52=setup[0.02]+cmd[0.00,0.04,4.03,2.18,1.64,2.25,0.78,3.66,2.76,0.90,1.40,0.88] seconds) - py312-pkg: OK (2.89=setup[0.01]+cmd[0.00,0.03,0.20,0.26,0.32,0.31,0.30,0.29,0.29,0.30,0.29,0.28] seconds) - congratulations :) (166.44 seconds) From e2964b705a7f4da1b5746536e92bc833db077b90 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Mon, 23 Mar 2026 16:45:39 +0000 Subject: [PATCH 15/20] Code refractoring for template. --- build/helper/__init__.py | 4 ++- build/helper/codegen_helper.py | 9 +++++ build/helper/metadata_filters.py | 14 +++++++- .../numpy_read_method.py.mako | 36 +++++++------------ 4 files changed, 37 insertions(+), 26 deletions(-) diff --git a/build/helper/__init__.py b/build/helper/__init__.py index 5cc9085467..2686ea6609 100644 --- a/build/helper/__init__.py +++ b/build/helper/__init__.py @@ -3,6 +3,7 @@ from build.helper.codegen_helper import get_enum_type_check_snippet # noqa: F401 from build.helper.codegen_helper import get_enum_value_snippet # noqa: F401 from build.helper.codegen_helper import get_grpc_interpreter_method_return_snippet # noqa: F401 +from build.helper.codegen_helper import get_grpc_response_info # noqa: F401 from build.helper.codegen_helper import get_library_interpreter_method_return_snippet # noqa: F401 from build.helper.codegen_helper import get_parameter_size_check_snippets # noqa: F401 from build.helper.codegen_helper import get_params_snippet # noqa: F401 @@ -43,6 +44,7 @@ from build.helper.metadata_add_all import add_all_metadata # noqa: F401 from build.helper.metadata_filters import are_complex_parameters_used # noqa: F401 +from build.helper.metadata_filters import does_function_use_complex_parameters # noqa: F401 from build.helper.metadata_filters import filter_codegen_attributes # noqa: F401 from build.helper.metadata_filters import filter_codegen_attributes_public_only # noqa: F401 from build.helper.metadata_filters import filter_codegen_enums # noqa: F401 @@ -52,7 +54,7 @@ from build.helper.metadata_filters import filter_library_functions # noqa: F401 from build.helper.metadata_filters import filter_parameters # noqa: F401 from build.helper.metadata_filters import filter_public_functions # noqa: F401 -from build.helper.metadata_filters import function_has_complex_parameters # noqa: F401 +from build.helper.metadata_filters import get_grpc_complex_request_args_snippet # noqa: F401 from build.helper.metadata_find import find_custom_type # noqa: F401 from build.helper.metadata_find import find_session_handle_parameter # noqa: F401 diff --git a/build/helper/codegen_helper.py b/build/helper/codegen_helper.py index 61298c7d48..171d9ecf7b 100644 --- a/build/helper/codegen_helper.py +++ b/build/helper/codegen_helper.py @@ -199,6 +199,15 @@ def get_grpc_interpreter_method_return_snippet(parameters, config): return ('return ' + ', '.join(snippets)).strip() +def get_grpc_response_info(function, config): + '''Returns (return_snippet, response_assignment_prefix) for a gRPC stub method.''' + return_snippet = get_grpc_interpreter_method_return_snippet(function['parameters'], config) + if return_snippet == 'return': + return_snippet = None + response_assignment_prefix = 'response = ' if return_snippet else '' + return return_snippet, response_assignment_prefix + + def get_session_method_return_snippet(parameters, config, use_numpy_array=False): '''Returns a string suitable to use as the return argument of a Session method''' options = ParameterUsageOptions.API_NUMPY_OUTPUT_PARAMETERS if use_numpy_array else ParameterUsageOptions.API_OUTPUT_PARAMETERS diff --git a/build/helper/metadata_filters.py b/build/helper/metadata_filters.py index aa03e28de6..fbb301eaa7 100644 --- a/build/helper/metadata_filters.py +++ b/build/helper/metadata_filters.py @@ -501,6 +501,18 @@ def are_complex_parameters_used(functions): return are_complex_parameters_used -def function_has_complex_parameters(function): +def does_function_use_complex_parameters(function): '''Returns bool based on whether any complex parameters are used in the function metadata.''' return bool(filter_parameters(function['parameters'], ParameterUsageOptions.COMPLEX_NUMBER_PARAMETERS)) + + +def get_grpc_complex_request_args_snippet(function, complex_params): + '''Builds the gRPC request args snippet for a function, replacing complex parameter names with _list suffixed versions.''' + from build.helper.codegen_helper import get_params_snippet + snippet = get_params_snippet(function, ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) + for p in complex_params: + snippet = snippet.replace( + p['grpc_name'] + '=' + p['python_name'], + p['grpc_name'] + '=' + p['python_name'] + '_list' + ) + return snippet diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako index 21c9aca762..0a5b047c9d 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako @@ -7,32 +7,20 @@ method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION) included_in_proto = f.get('included_in_proto', True) - # Identify numpy parameters with complex number types + # Identify numpy parameters with complex number types. numpy_complex_params = helper.filter_parameters(parameters, helper.ParameterUsageOptions.COMPLEX_NUMBER_PARAMETERS) # Only generate gRPC implementation if the function has complex parameters and is included in proto - has_complex_grpc_support = helper.function_has_complex_parameters(f) and included_in_proto + should_generate_complex_grpc_impl = bool(numpy_complex_params) and included_in_proto - if has_complex_grpc_support: - # Generate gRPC request with complex number conversion - grpc_name = f.get('grpc_name', f['name']) - grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) - - # Replace parameter names with _list suffixed versions for complex parameters - for p in numpy_complex_params: - grpc_request_args = grpc_request_args.replace( - p['grpc_name'] + '=' + p['python_name'], - p['grpc_name'] + '=' + p['python_name'] + '_list' - ) - - return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) - if return_statement == 'return': - return_statement = None - capture_response = 'response = ' if return_statement else '' + if should_generate_complex_grpc_impl: + grpc_method_name = f.get('grpc_name', f['name']) + grpc_request_args_snippet = helper.get_grpc_complex_request_args_snippet(f, numpy_complex_params) + return_snippet, response_assignment_prefix = helper.get_grpc_response_info(f, config) %>\ def ${full_func_name}(${method_decl_params}): # noqa: N802 -% if has_complex_grpc_support: +% if should_generate_complex_grpc_impl: % for p in numpy_complex_params: % if p['original_type'] == 'NIComplexNumber[]': ${p['python_name']}_list = [ @@ -55,12 +43,12 @@ ] % endif % endfor - ${capture_response}self._invoke( - self._client.${grpc_name}, - grpc_types.${grpc_name}Request(${grpc_request_args}), + ${response_assignment_prefix}self._invoke( + self._client.${grpc_method_name}, + grpc_types.${grpc_method_name}Request(${grpc_request_args_snippet}), ) -% if return_statement: - ${return_statement} +% if return_snippet: + ${return_snippet} % endif % else: raise NotImplementedError('numpy-specific methods are not supported over gRPC') From 544dcdd45fb5c63af670d48871adec6e7959f8ce Mon Sep 17 00:00:00 2001 From: Rahul R Date: Tue, 24 Mar 2026 10:57:25 +0000 Subject: [PATCH 16/20] Updated with code review comments --- build/helper/__init__.py | 3 -- build/helper/codegen_helper.py | 9 ----- build/helper/metadata_filters.py | 17 --------- .../numpy_read_method.py.mako | 36 ++++++++++--------- 4 files changed, 20 insertions(+), 45 deletions(-) diff --git a/build/helper/__init__.py b/build/helper/__init__.py index 2686ea6609..08ed178f15 100644 --- a/build/helper/__init__.py +++ b/build/helper/__init__.py @@ -3,7 +3,6 @@ from build.helper.codegen_helper import get_enum_type_check_snippet # noqa: F401 from build.helper.codegen_helper import get_enum_value_snippet # noqa: F401 from build.helper.codegen_helper import get_grpc_interpreter_method_return_snippet # noqa: F401 -from build.helper.codegen_helper import get_grpc_response_info # noqa: F401 from build.helper.codegen_helper import get_library_interpreter_method_return_snippet # noqa: F401 from build.helper.codegen_helper import get_parameter_size_check_snippets # noqa: F401 from build.helper.codegen_helper import get_params_snippet # noqa: F401 @@ -44,7 +43,6 @@ from build.helper.metadata_add_all import add_all_metadata # noqa: F401 from build.helper.metadata_filters import are_complex_parameters_used # noqa: F401 -from build.helper.metadata_filters import does_function_use_complex_parameters # noqa: F401 from build.helper.metadata_filters import filter_codegen_attributes # noqa: F401 from build.helper.metadata_filters import filter_codegen_attributes_public_only # noqa: F401 from build.helper.metadata_filters import filter_codegen_enums # noqa: F401 @@ -54,7 +52,6 @@ from build.helper.metadata_filters import filter_library_functions # noqa: F401 from build.helper.metadata_filters import filter_parameters # noqa: F401 from build.helper.metadata_filters import filter_public_functions # noqa: F401 -from build.helper.metadata_filters import get_grpc_complex_request_args_snippet # noqa: F401 from build.helper.metadata_find import find_custom_type # noqa: F401 from build.helper.metadata_find import find_session_handle_parameter # noqa: F401 diff --git a/build/helper/codegen_helper.py b/build/helper/codegen_helper.py index 171d9ecf7b..61298c7d48 100644 --- a/build/helper/codegen_helper.py +++ b/build/helper/codegen_helper.py @@ -199,15 +199,6 @@ def get_grpc_interpreter_method_return_snippet(parameters, config): return ('return ' + ', '.join(snippets)).strip() -def get_grpc_response_info(function, config): - '''Returns (return_snippet, response_assignment_prefix) for a gRPC stub method.''' - return_snippet = get_grpc_interpreter_method_return_snippet(function['parameters'], config) - if return_snippet == 'return': - return_snippet = None - response_assignment_prefix = 'response = ' if return_snippet else '' - return return_snippet, response_assignment_prefix - - def get_session_method_return_snippet(parameters, config, use_numpy_array=False): '''Returns a string suitable to use as the return argument of a Session method''' options = ParameterUsageOptions.API_NUMPY_OUTPUT_PARAMETERS if use_numpy_array else ParameterUsageOptions.API_OUTPUT_PARAMETERS diff --git a/build/helper/metadata_filters.py b/build/helper/metadata_filters.py index fbb301eaa7..e5280e9c74 100644 --- a/build/helper/metadata_filters.py +++ b/build/helper/metadata_filters.py @@ -499,20 +499,3 @@ def are_complex_parameters_used(functions): are_complex_parameters_used = True break return are_complex_parameters_used - - -def does_function_use_complex_parameters(function): - '''Returns bool based on whether any complex parameters are used in the function metadata.''' - return bool(filter_parameters(function['parameters'], ParameterUsageOptions.COMPLEX_NUMBER_PARAMETERS)) - - -def get_grpc_complex_request_args_snippet(function, complex_params): - '''Builds the gRPC request args snippet for a function, replacing complex parameter names with _list suffixed versions.''' - from build.helper.codegen_helper import get_params_snippet - snippet = get_params_snippet(function, ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) - for p in complex_params: - snippet = snippet.replace( - p['grpc_name'] + '=' + p['python_name'], - p['grpc_name'] + '=' + p['python_name'] + '_list' - ) - return snippet diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako index 0a5b047c9d..2cbe001413 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako @@ -2,25 +2,26 @@ <% '''Renders a GrpcStubInterpreter method for numpy write operations with complex number support.''' import build.helper as helper - parameters = f['parameters'] full_func_name = f['interpreter_name'] + method_template['method_python_name_suffix'] method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION) + grpc_name = f.get('grpc_name', f['name']) + grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) + return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) + if return_statement == 'return': + return_statement = None + capture_response = 'response = ' if return_statement else '' included_in_proto = f.get('included_in_proto', True) - - # Identify numpy parameters with complex number types. - numpy_complex_params = helper.filter_parameters(parameters, helper.ParameterUsageOptions.COMPLEX_NUMBER_PARAMETERS) - - # Only generate gRPC implementation if the function has complex parameters and is included in proto - should_generate_complex_grpc_impl = bool(numpy_complex_params) and included_in_proto - - if should_generate_complex_grpc_impl: - grpc_method_name = f.get('grpc_name', f['name']) - grpc_request_args_snippet = helper.get_grpc_complex_request_args_snippet(f, numpy_complex_params) - return_snippet, response_assignment_prefix = helper.get_grpc_response_info(f, config) + numpy_complex_params = helper.filter_parameters(f['parameters'], helper.ParameterUsageOptions.COMPLEX_NUMBER_PARAMETERS) + for param in numpy_complex_params: + grpc_request_args = grpc_request_args.replace( + param['grpc_name'] + '=' + param['python_name'], + param['grpc_name'] + '=' + param['python_name'] + '_list' + ) %>\ def ${full_func_name}(${method_decl_params}): # noqa: N802 -% if should_generate_complex_grpc_impl: +% if included_in_proto: +% if numpy_complex_params: % for p in numpy_complex_params: % if p['original_type'] == 'NIComplexNumber[]': ${p['python_name']}_list = [ @@ -43,9 +44,9 @@ ] % endif % endfor - ${response_assignment_prefix}self._invoke( - self._client.${grpc_method_name}, - grpc_types.${grpc_method_name}Request(${grpc_request_args_snippet}), + ${capture_response}self._invoke( + self._client.${grpc_name}, + grpc_types.${grpc_name}Request(${grpc_request_args}), ) % if return_snippet: ${return_snippet} @@ -53,3 +54,6 @@ % else: raise NotImplementedError('numpy-specific methods are not supported over gRPC') % endif +% else: + raise NotImplementedError('${full_func_name} is not supported over gRPC') +% endif From 9033a52f667b7055bf9426eac58ee476c421a660 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Fri, 27 Mar 2026 10:42:42 +0000 Subject: [PATCH 17/20] Including more verbose output to check on system test failure --- build/templates/tox-system_tests.ini.mako | 2 +- generated/nidcpower/tox-system_tests.ini | 2 +- generated/nidigital/tox-system_tests.ini | 2 +- generated/nidmm/tox-system_tests.ini | 2 +- generated/nifake/tox-system_tests.ini | 2 +- generated/nifgen/tox-system_tests.ini | 2 +- generated/nimodinst/tox-system_tests.ini | 2 +- generated/nirfsg/tox-system_tests.ini | 2 +- generated/niscope/tox-system_tests.ini | 2 +- generated/nise/tox-system_tests.ini | 2 +- generated/niswitch/tox-system_tests.ini | 2 +- generated/nitclk/tox-system_tests.ini | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/build/templates/tox-system_tests.ini.mako b/build/templates/tox-system_tests.ini.mako index 3f2aa0cb74..9700d01c3a 100644 --- a/build/templates/tox-system_tests.ini.mako +++ b/build/templates/tox-system_tests.ini.mako @@ -61,7 +61,7 @@ commands = % endif ${module_name}-system_tests: python -c "import ${module_name}; ${module_name}.print_diagnostic_information()" ${module_name}-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source ${module_name} --parallel-mode -m pytest ../../src/${module_name}/examples --junitxml=../junit/junit-${module_name}-{envname}-examples-{env:BITNESS:64}.xml {posargs} - ${module_name}-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source ${module_name} --parallel-mode -m pytest ../../src/${module_name}/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-${module_name}-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + ${module_name}-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source ${module_name} --parallel-mode -m pytest ../../src/${module_name}/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-${module_name}-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} ${module_name}-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nidcpower/tox-system_tests.ini b/generated/nidcpower/tox-system_tests.ini index 47ec3a93ac..c7075a9dd8 100644 --- a/generated/nidcpower/tox-system_tests.ini +++ b/generated/nidcpower/tox-system_tests.ini @@ -23,7 +23,7 @@ commands = nidcpower-system_tests: python -m pip install --disable-pip-version-check --upgrade pip nidcpower-system_tests: python -c "import nidcpower; nidcpower.print_diagnostic_information()" nidcpower-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidcpower --parallel-mode -m pytest ../../src/nidcpower/examples --junitxml=../junit/junit-nidcpower-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nidcpower-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidcpower --parallel-mode -m pytest ../../src/nidcpower/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nidcpower-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nidcpower-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidcpower --parallel-mode -m pytest ../../src/nidcpower/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nidcpower-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nidcpower-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nidigital/tox-system_tests.ini b/generated/nidigital/tox-system_tests.ini index 9b6f91b473..15e93e1e3d 100644 --- a/generated/nidigital/tox-system_tests.ini +++ b/generated/nidigital/tox-system_tests.ini @@ -28,7 +28,7 @@ commands = nidigital-system_tests: python ../../tools/install_local_wheel.py --driver nitclk --start-path ../.. nidigital-system_tests: python -c "import nidigital; nidigital.print_diagnostic_information()" nidigital-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidigital --parallel-mode -m pytest ../../src/nidigital/examples --junitxml=../junit/junit-nidigital-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nidigital-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidigital --parallel-mode -m pytest ../../src/nidigital/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nidigital-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nidigital-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidigital --parallel-mode -m pytest ../../src/nidigital/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nidigital-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nidigital-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nidmm/tox-system_tests.ini b/generated/nidmm/tox-system_tests.ini index 834c3f2ecb..4c6afdbfc3 100644 --- a/generated/nidmm/tox-system_tests.ini +++ b/generated/nidmm/tox-system_tests.ini @@ -23,7 +23,7 @@ commands = nidmm-system_tests: python -m pip install --disable-pip-version-check --upgrade pip nidmm-system_tests: python -c "import nidmm; nidmm.print_diagnostic_information()" nidmm-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidmm --parallel-mode -m pytest ../../src/nidmm/examples --junitxml=../junit/junit-nidmm-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nidmm-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidmm --parallel-mode -m pytest ../../src/nidmm/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nidmm-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nidmm-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidmm --parallel-mode -m pytest ../../src/nidmm/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nidmm-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nidmm-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nifake/tox-system_tests.ini b/generated/nifake/tox-system_tests.ini index b575b61a3b..9499002b0d 100644 --- a/generated/nifake/tox-system_tests.ini +++ b/generated/nifake/tox-system_tests.ini @@ -28,7 +28,7 @@ commands = nifake-system_tests: python ../../tools/install_local_wheel.py --driver nitclk --start-path ../.. nifake-system_tests: python -c "import nifake; nifake.print_diagnostic_information()" nifake-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nifake --parallel-mode -m pytest ../../src/nifake/examples --junitxml=../junit/junit-nifake-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nifake-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nifake --parallel-mode -m pytest ../../src/nifake/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nifake-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nifake-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nifake --parallel-mode -m pytest ../../src/nifake/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nifake-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nifake-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nifgen/tox-system_tests.ini b/generated/nifgen/tox-system_tests.ini index 78198bf6b0..1919e8f8a0 100644 --- a/generated/nifgen/tox-system_tests.ini +++ b/generated/nifgen/tox-system_tests.ini @@ -28,7 +28,7 @@ commands = nifgen-system_tests: python ../../tools/install_local_wheel.py --driver nitclk --start-path ../.. nifgen-system_tests: python -c "import nifgen; nifgen.print_diagnostic_information()" nifgen-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nifgen --parallel-mode -m pytest ../../src/nifgen/examples --junitxml=../junit/junit-nifgen-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nifgen-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nifgen --parallel-mode -m pytest ../../src/nifgen/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nifgen-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nifgen-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nifgen --parallel-mode -m pytest ../../src/nifgen/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nifgen-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nifgen-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nimodinst/tox-system_tests.ini b/generated/nimodinst/tox-system_tests.ini index 02aedd7a0c..53f5187058 100644 --- a/generated/nimodinst/tox-system_tests.ini +++ b/generated/nimodinst/tox-system_tests.ini @@ -23,7 +23,7 @@ commands = nimodinst-system_tests: python -m pip install --disable-pip-version-check --upgrade pip nimodinst-system_tests: python -c "import nimodinst; nimodinst.print_diagnostic_information()" nimodinst-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nimodinst --parallel-mode -m pytest ../../src/nimodinst/examples --junitxml=../junit/junit-nimodinst-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nimodinst-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nimodinst --parallel-mode -m pytest ../../src/nimodinst/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nimodinst-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nimodinst-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nimodinst --parallel-mode -m pytest ../../src/nimodinst/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nimodinst-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nimodinst-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nirfsg/tox-system_tests.ini b/generated/nirfsg/tox-system_tests.ini index f6a4e6b11b..ec00447e02 100644 --- a/generated/nirfsg/tox-system_tests.ini +++ b/generated/nirfsg/tox-system_tests.ini @@ -28,7 +28,7 @@ commands = nirfsg-system_tests: python ../../tools/install_local_wheel.py --driver nitclk --start-path ../.. nirfsg-system_tests: python -c "import nirfsg; nirfsg.print_diagnostic_information()" nirfsg-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nirfsg --parallel-mode -m pytest ../../src/nirfsg/examples --junitxml=../junit/junit-nirfsg-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nirfsg-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nirfsg --parallel-mode -m pytest ../../src/nirfsg/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nirfsg-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nirfsg-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nirfsg --parallel-mode -m pytest ../../src/nirfsg/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nirfsg-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nirfsg-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/niscope/tox-system_tests.ini b/generated/niscope/tox-system_tests.ini index 6a4697f30b..a55f494b30 100644 --- a/generated/niscope/tox-system_tests.ini +++ b/generated/niscope/tox-system_tests.ini @@ -28,7 +28,7 @@ commands = niscope-system_tests: python ../../tools/install_local_wheel.py --driver nitclk --start-path ../.. niscope-system_tests: python -c "import niscope; niscope.print_diagnostic_information()" niscope-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source niscope --parallel-mode -m pytest ../../src/niscope/examples --junitxml=../junit/junit-niscope-{envname}-examples-{env:BITNESS:64}.xml {posargs} - niscope-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source niscope --parallel-mode -m pytest ../../src/niscope/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-niscope-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + niscope-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source niscope --parallel-mode -m pytest ../../src/niscope/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-niscope-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} niscope-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nise/tox-system_tests.ini b/generated/nise/tox-system_tests.ini index 71a03441e6..e46e0009af 100644 --- a/generated/nise/tox-system_tests.ini +++ b/generated/nise/tox-system_tests.ini @@ -23,7 +23,7 @@ commands = nise-system_tests: python -m pip install --disable-pip-version-check --upgrade pip nise-system_tests: python -c "import nise; nise.print_diagnostic_information()" nise-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nise --parallel-mode -m pytest ../../src/nise/examples --junitxml=../junit/junit-nise-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nise-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nise --parallel-mode -m pytest ../../src/nise/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nise-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nise-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nise --parallel-mode -m pytest ../../src/nise/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nise-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nise-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/niswitch/tox-system_tests.ini b/generated/niswitch/tox-system_tests.ini index 1b91d3845f..5777d646cd 100644 --- a/generated/niswitch/tox-system_tests.ini +++ b/generated/niswitch/tox-system_tests.ini @@ -23,7 +23,7 @@ commands = niswitch-system_tests: python -m pip install --disable-pip-version-check --upgrade pip niswitch-system_tests: python -c "import niswitch; niswitch.print_diagnostic_information()" niswitch-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source niswitch --parallel-mode -m pytest ../../src/niswitch/examples --junitxml=../junit/junit-niswitch-{envname}-examples-{env:BITNESS:64}.xml {posargs} - niswitch-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source niswitch --parallel-mode -m pytest ../../src/niswitch/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-niswitch-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + niswitch-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source niswitch --parallel-mode -m pytest ../../src/niswitch/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-niswitch-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} niswitch-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nitclk/tox-system_tests.ini b/generated/nitclk/tox-system_tests.ini index de0c1f037f..aa2d938eda 100644 --- a/generated/nitclk/tox-system_tests.ini +++ b/generated/nitclk/tox-system_tests.ini @@ -28,7 +28,7 @@ commands = nitclk-system_tests: python ../../tools/install_local_wheel.py --driver niscope --start-path ../.. nitclk-system_tests: python -c "import nitclk; nitclk.print_diagnostic_information()" nitclk-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nitclk --parallel-mode -m pytest ../../src/nitclk/examples --junitxml=../junit/junit-nitclk-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nitclk-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nitclk --parallel-mode -m pytest ../../src/nitclk/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nitclk-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nitclk-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nitclk --parallel-mode -m pytest ../../src/nitclk/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nitclk-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nitclk-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload From 097a731f9bd52464e34766151a00b8594b364486 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Fri, 27 Mar 2026 11:47:08 +0000 Subject: [PATCH 18/20] Reverting verbose log change of nirfsg system test and moving the test_get_all_named_waveform_names in test_system_nirfsg to common path for testing --- build/templates/tox-system_tests.ini.mako | 2 +- generated/nidcpower/tox-system_tests.ini | 2 +- generated/nidigital/tox-system_tests.ini | 2 +- generated/nidmm/tox-system_tests.ini | 2 +- generated/nifake/tox-system_tests.ini | 2 +- generated/nifgen/tox-system_tests.ini | 2 +- generated/nimodinst/tox-system_tests.ini | 2 +- generated/nirfsg/tox-system_tests.ini | 2 +- generated/niscope/tox-system_tests.ini | 2 +- generated/nise/tox-system_tests.ini | 2 +- generated/niswitch/tox-system_tests.ini | 2 +- generated/nitclk/tox-system_tests.ini | 2 +- src/nirfsg/system_tests/test_system_nirfsg.py | 22 ++++++++++--------- 13 files changed, 24 insertions(+), 22 deletions(-) diff --git a/build/templates/tox-system_tests.ini.mako b/build/templates/tox-system_tests.ini.mako index 9700d01c3a..3f2aa0cb74 100644 --- a/build/templates/tox-system_tests.ini.mako +++ b/build/templates/tox-system_tests.ini.mako @@ -61,7 +61,7 @@ commands = % endif ${module_name}-system_tests: python -c "import ${module_name}; ${module_name}.print_diagnostic_information()" ${module_name}-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source ${module_name} --parallel-mode -m pytest ../../src/${module_name}/examples --junitxml=../junit/junit-${module_name}-{envname}-examples-{env:BITNESS:64}.xml {posargs} - ${module_name}-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source ${module_name} --parallel-mode -m pytest ../../src/${module_name}/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-${module_name}-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + ${module_name}-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source ${module_name} --parallel-mode -m pytest ../../src/${module_name}/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-${module_name}-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} ${module_name}-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nidcpower/tox-system_tests.ini b/generated/nidcpower/tox-system_tests.ini index c7075a9dd8..47ec3a93ac 100644 --- a/generated/nidcpower/tox-system_tests.ini +++ b/generated/nidcpower/tox-system_tests.ini @@ -23,7 +23,7 @@ commands = nidcpower-system_tests: python -m pip install --disable-pip-version-check --upgrade pip nidcpower-system_tests: python -c "import nidcpower; nidcpower.print_diagnostic_information()" nidcpower-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidcpower --parallel-mode -m pytest ../../src/nidcpower/examples --junitxml=../junit/junit-nidcpower-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nidcpower-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidcpower --parallel-mode -m pytest ../../src/nidcpower/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nidcpower-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nidcpower-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidcpower --parallel-mode -m pytest ../../src/nidcpower/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nidcpower-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nidcpower-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nidigital/tox-system_tests.ini b/generated/nidigital/tox-system_tests.ini index 15e93e1e3d..9b6f91b473 100644 --- a/generated/nidigital/tox-system_tests.ini +++ b/generated/nidigital/tox-system_tests.ini @@ -28,7 +28,7 @@ commands = nidigital-system_tests: python ../../tools/install_local_wheel.py --driver nitclk --start-path ../.. nidigital-system_tests: python -c "import nidigital; nidigital.print_diagnostic_information()" nidigital-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidigital --parallel-mode -m pytest ../../src/nidigital/examples --junitxml=../junit/junit-nidigital-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nidigital-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidigital --parallel-mode -m pytest ../../src/nidigital/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nidigital-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nidigital-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidigital --parallel-mode -m pytest ../../src/nidigital/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nidigital-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nidigital-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nidmm/tox-system_tests.ini b/generated/nidmm/tox-system_tests.ini index 4c6afdbfc3..834c3f2ecb 100644 --- a/generated/nidmm/tox-system_tests.ini +++ b/generated/nidmm/tox-system_tests.ini @@ -23,7 +23,7 @@ commands = nidmm-system_tests: python -m pip install --disable-pip-version-check --upgrade pip nidmm-system_tests: python -c "import nidmm; nidmm.print_diagnostic_information()" nidmm-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidmm --parallel-mode -m pytest ../../src/nidmm/examples --junitxml=../junit/junit-nidmm-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nidmm-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidmm --parallel-mode -m pytest ../../src/nidmm/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nidmm-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nidmm-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nidmm --parallel-mode -m pytest ../../src/nidmm/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nidmm-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nidmm-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nifake/tox-system_tests.ini b/generated/nifake/tox-system_tests.ini index 9499002b0d..b575b61a3b 100644 --- a/generated/nifake/tox-system_tests.ini +++ b/generated/nifake/tox-system_tests.ini @@ -28,7 +28,7 @@ commands = nifake-system_tests: python ../../tools/install_local_wheel.py --driver nitclk --start-path ../.. nifake-system_tests: python -c "import nifake; nifake.print_diagnostic_information()" nifake-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nifake --parallel-mode -m pytest ../../src/nifake/examples --junitxml=../junit/junit-nifake-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nifake-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nifake --parallel-mode -m pytest ../../src/nifake/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nifake-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nifake-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nifake --parallel-mode -m pytest ../../src/nifake/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nifake-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nifake-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nifgen/tox-system_tests.ini b/generated/nifgen/tox-system_tests.ini index 1919e8f8a0..78198bf6b0 100644 --- a/generated/nifgen/tox-system_tests.ini +++ b/generated/nifgen/tox-system_tests.ini @@ -28,7 +28,7 @@ commands = nifgen-system_tests: python ../../tools/install_local_wheel.py --driver nitclk --start-path ../.. nifgen-system_tests: python -c "import nifgen; nifgen.print_diagnostic_information()" nifgen-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nifgen --parallel-mode -m pytest ../../src/nifgen/examples --junitxml=../junit/junit-nifgen-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nifgen-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nifgen --parallel-mode -m pytest ../../src/nifgen/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nifgen-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nifgen-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nifgen --parallel-mode -m pytest ../../src/nifgen/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nifgen-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nifgen-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nimodinst/tox-system_tests.ini b/generated/nimodinst/tox-system_tests.ini index 53f5187058..02aedd7a0c 100644 --- a/generated/nimodinst/tox-system_tests.ini +++ b/generated/nimodinst/tox-system_tests.ini @@ -23,7 +23,7 @@ commands = nimodinst-system_tests: python -m pip install --disable-pip-version-check --upgrade pip nimodinst-system_tests: python -c "import nimodinst; nimodinst.print_diagnostic_information()" nimodinst-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nimodinst --parallel-mode -m pytest ../../src/nimodinst/examples --junitxml=../junit/junit-nimodinst-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nimodinst-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nimodinst --parallel-mode -m pytest ../../src/nimodinst/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nimodinst-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nimodinst-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nimodinst --parallel-mode -m pytest ../../src/nimodinst/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nimodinst-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nimodinst-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nirfsg/tox-system_tests.ini b/generated/nirfsg/tox-system_tests.ini index ec00447e02..f6a4e6b11b 100644 --- a/generated/nirfsg/tox-system_tests.ini +++ b/generated/nirfsg/tox-system_tests.ini @@ -28,7 +28,7 @@ commands = nirfsg-system_tests: python ../../tools/install_local_wheel.py --driver nitclk --start-path ../.. nirfsg-system_tests: python -c "import nirfsg; nirfsg.print_diagnostic_information()" nirfsg-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nirfsg --parallel-mode -m pytest ../../src/nirfsg/examples --junitxml=../junit/junit-nirfsg-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nirfsg-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nirfsg --parallel-mode -m pytest ../../src/nirfsg/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nirfsg-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nirfsg-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nirfsg --parallel-mode -m pytest ../../src/nirfsg/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nirfsg-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nirfsg-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/niscope/tox-system_tests.ini b/generated/niscope/tox-system_tests.ini index a55f494b30..6a4697f30b 100644 --- a/generated/niscope/tox-system_tests.ini +++ b/generated/niscope/tox-system_tests.ini @@ -28,7 +28,7 @@ commands = niscope-system_tests: python ../../tools/install_local_wheel.py --driver nitclk --start-path ../.. niscope-system_tests: python -c "import niscope; niscope.print_diagnostic_information()" niscope-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source niscope --parallel-mode -m pytest ../../src/niscope/examples --junitxml=../junit/junit-niscope-{envname}-examples-{env:BITNESS:64}.xml {posargs} - niscope-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source niscope --parallel-mode -m pytest ../../src/niscope/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-niscope-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + niscope-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source niscope --parallel-mode -m pytest ../../src/niscope/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-niscope-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} niscope-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nise/tox-system_tests.ini b/generated/nise/tox-system_tests.ini index e46e0009af..71a03441e6 100644 --- a/generated/nise/tox-system_tests.ini +++ b/generated/nise/tox-system_tests.ini @@ -23,7 +23,7 @@ commands = nise-system_tests: python -m pip install --disable-pip-version-check --upgrade pip nise-system_tests: python -c "import nise; nise.print_diagnostic_information()" nise-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nise --parallel-mode -m pytest ../../src/nise/examples --junitxml=../junit/junit-nise-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nise-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nise --parallel-mode -m pytest ../../src/nise/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nise-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nise-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nise --parallel-mode -m pytest ../../src/nise/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nise-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nise-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/niswitch/tox-system_tests.ini b/generated/niswitch/tox-system_tests.ini index 5777d646cd..1b91d3845f 100644 --- a/generated/niswitch/tox-system_tests.ini +++ b/generated/niswitch/tox-system_tests.ini @@ -23,7 +23,7 @@ commands = niswitch-system_tests: python -m pip install --disable-pip-version-check --upgrade pip niswitch-system_tests: python -c "import niswitch; niswitch.print_diagnostic_information()" niswitch-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source niswitch --parallel-mode -m pytest ../../src/niswitch/examples --junitxml=../junit/junit-niswitch-{envname}-examples-{env:BITNESS:64}.xml {posargs} - niswitch-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source niswitch --parallel-mode -m pytest ../../src/niswitch/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-niswitch-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + niswitch-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source niswitch --parallel-mode -m pytest ../../src/niswitch/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-niswitch-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} niswitch-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/generated/nitclk/tox-system_tests.ini b/generated/nitclk/tox-system_tests.ini index aa2d938eda..de0c1f037f 100644 --- a/generated/nitclk/tox-system_tests.ini +++ b/generated/nitclk/tox-system_tests.ini @@ -28,7 +28,7 @@ commands = nitclk-system_tests: python ../../tools/install_local_wheel.py --driver niscope --start-path ../.. nitclk-system_tests: python -c "import nitclk; nitclk.print_diagnostic_information()" nitclk-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nitclk --parallel-mode -m pytest ../../src/nitclk/examples --junitxml=../junit/junit-nitclk-{envname}-examples-{env:BITNESS:64}.xml {posargs} - nitclk-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nitclk --parallel-mode -m pytest ../../src/nitclk/system_tests -vv -s -c tox-system_tests.ini --junitxml=../junit/junit-nitclk-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} + nitclk-system_tests: coverage run --rcfile=../../tools/coverage_system_tests.rc --source nitclk --parallel-mode -m pytest ../../src/nitclk/system_tests -c tox-system_tests.ini --junitxml=../junit/junit-nitclk-{envname}-{env:BITNESS:64}.xml --durations=5 {posargs} nitclk-coverage: coverage combine --rcfile=../../tools/coverage_system_tests.rc ./ # Create the report to upload diff --git a/src/nirfsg/system_tests/test_system_nirfsg.py b/src/nirfsg/system_tests/test_system_nirfsg.py index eacfff0350..5ac26c04cb 100644 --- a/src/nirfsg/system_tests/test_system_nirfsg.py +++ b/src/nirfsg/system_tests/test_system_nirfsg.py @@ -623,6 +623,18 @@ def test_wait_until_settled(self, rfsg_device_session): with rfsg_device_session.initiate(): rfsg_device_session.wait_until_settled() + # Re-enabled for 32-bit testing after gRPC device update + @pytest.mark.skipif(use_simulated_session is True, reason="Needs Updated gRPC device that supports get_all_named_waveform_names bug fix") + def test_get_all_named_waveform_names(self, rfsg_device_session): + rfsg_device_session.generation_mode = nirfsg.GenerationMode.ARB_WAVEFORM + waveform_data1 = np.full(1000, 1 + 0j, dtype=np.complex128) + waveform_data2 = np.full(800, 1 + 0j, dtype=np.complex128) + rfsg_device_session.write_arb_waveform('waveform1', waveform_data1, False) + rfsg_device_session.write_arb_waveform('waveform2', waveform_data2, False) + names = rfsg_device_session.get_all_named_waveform_names() + assert 'waveform1' in names + assert 'waveform2' in names + @pytest.mark.skipif(use_simulated_session is True, reason="Scripts not compiled on simulated device") def test_get_all_script_names(self, rfsg_device_session): rfsg_device_session.generation_mode = nirfsg.GenerationMode.SCRIPT @@ -650,16 +662,6 @@ class TestLibrary(SystemTests): def session_creation_kwargs(self): return {} - def test_get_all_named_waveform_names(self, rfsg_device_session): - rfsg_device_session.generation_mode = nirfsg.GenerationMode.ARB_WAVEFORM - waveform_data1 = np.full(1000, 1 + 0j, dtype=np.complex128) - waveform_data2 = np.full(800, 1 + 0j, dtype=np.complex128) - rfsg_device_session.write_arb_waveform('waveform1', waveform_data1, False) - rfsg_device_session.write_arb_waveform('waveform2', waveform_data2, False) - names = rfsg_device_session.get_all_named_waveform_names() - assert 'waveform1' in names - assert 'waveform2' in names - class TestGrpc(SystemTests): @pytest.fixture(scope='class') From d6e6f1858f6b5daacaa1e68b6d0bbe102c139d57 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Fri, 27 Mar 2026 13:12:46 +0000 Subject: [PATCH 19/20] Implementation of code review comments. --- .../numpy_read_method.py.mako | 53 +- .../numpy_write_method.py.mako | 63 +- .../nifake/nifake/_grpc_stub_interpreter.py | 4 + generated/nifake/nifake/nifake_pb2.py | 884 +++++++++--------- generated/nifake/nifake/nifake_pb2_grpc.py | 132 +++ .../nifake/nifake/unit_tests/test_grpc.py | 65 ++ .../nirfsg/nirfsg/_grpc_stub_interpreter.py | 4 + src/nifake/metadata/nifake.proto | 45 + src/nifake/unit_tests/test_grpc.py | 65 ++ 9 files changed, 830 insertions(+), 485 deletions(-) diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako index 2cbe001413..94c4cd4215 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_read_method.py.mako @@ -1,59 +1,12 @@ <%page args="f, config, method_template"/>\ <% - '''Renders a GrpcStubInterpreter method for numpy write operations with complex number support.''' + '''Renders a NotImplemented method for to the passed-in function metadata, because numpy is not supported over grpc.''' + import build.helper as helper + full_func_name = f['interpreter_name'] + method_template['method_python_name_suffix'] method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION) - grpc_name = f.get('grpc_name', f['name']) - grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) - return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) - if return_statement == 'return': - return_statement = None - capture_response = 'response = ' if return_statement else '' - included_in_proto = f.get('included_in_proto', True) - numpy_complex_params = helper.filter_parameters(f['parameters'], helper.ParameterUsageOptions.COMPLEX_NUMBER_PARAMETERS) - for param in numpy_complex_params: - grpc_request_args = grpc_request_args.replace( - param['grpc_name'] + '=' + param['python_name'], - param['grpc_name'] + '=' + param['python_name'] + '_list' - ) %>\ def ${full_func_name}(${method_decl_params}): # noqa: N802 -% if included_in_proto: -% if numpy_complex_params: -% for p in numpy_complex_params: -% if p['original_type'] == 'NIComplexNumber[]': - ${p['python_name']}_list = [ - grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) - for val in ${p['python_name']}.ravel() - ] -% elif p['original_type'] == 'NIComplexNumberF32[]': - ${p['python_name']}_list = [ - grpc_complex_types.NIComplexNumberF32(real=val.real, imaginary=val.imag) - for val in ${p['python_name']}.ravel() - ] -% elif p['original_type'] == 'NIComplexI16[]': - arr = ${p['python_name']}.ravel() - if arr.size % 2 != 0: - raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") - arr_pairs = arr.reshape(-1, 2) - ${p['python_name']}_list = [ - grpc_complex_types.NIComplexI16(real=int(pair[0]), imaginary=int(pair[1])) - for pair in arr_pairs - ] -% endif -% endfor - ${capture_response}self._invoke( - self._client.${grpc_name}, - grpc_types.${grpc_name}Request(${grpc_request_args}), - ) -% if return_snippet: - ${return_snippet} -% endif -% else: raise NotImplementedError('numpy-specific methods are not supported over gRPC') -% endif -% else: - raise NotImplementedError('${full_func_name} is not supported over gRPC') -% endif diff --git a/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako b/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako index 648b9a0e14..387af3b721 100644 --- a/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako +++ b/build/templates/_grpc_stub_interpreter.py/numpy_write_method.py.mako @@ -1,3 +1,62 @@ <%page args="f, config, method_template"/>\ -## numpy_read and numpy_write are identical for gRPC -- both return a NotImplementedError -<%include file="/_grpc_stub_interpreter.py/numpy_read_method.py.mako" args="f=f, config=config, method_template=method_template" />\ +<% + '''Renders a GrpcStubInterpreter method for numpy write operations with complex number support.''' + + import build.helper as helper + + full_func_name = f['interpreter_name'] + method_template['method_python_name_suffix'] + method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION) + grpc_name = f.get('grpc_name', f['name']) + grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS) + return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config) + if return_statement == 'return': + return_statement = None + capture_response = 'response = ' if return_statement else '' + included_in_proto = f.get('included_in_proto', True) + numpy_complex_params = helper.filter_parameters(f['parameters'], helper.ParameterUsageOptions.COMPLEX_NUMBER_PARAMETERS) + for param in numpy_complex_params: + grpc_request_args = grpc_request_args.replace( + param['grpc_name'] + '=' + param['python_name'], + param['grpc_name'] + '=' + param['python_name'] + '_list' + ) +%>\ + + def ${full_func_name}(${method_decl_params}): # noqa: N802 +% if included_in_proto: +% if numpy_complex_params: + # Use ravel() so that gRPC always receives a flat numpy array, regardless of input dimensions. +% for param in numpy_complex_params: +% if param['original_type'] == 'NIComplexNumber[]': + ${param['python_name']}_list = [ + grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) + for val in ${param['python_name']}.ravel() + ] +% elif param['original_type'] == 'NIComplexNumberF32[]': + ${param['python_name']}_list = [ + grpc_complex_types.NIComplexNumberF32(real=val.real, imaginary=val.imag) + for val in ${param['python_name']}.ravel() + ] +% elif param['original_type'] == 'NIComplexI16[]': + arr = ${param['python_name']}.ravel() + if arr.size % 2 != 0: + raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") + arr_pairs = arr.reshape(-1, 2) + ${param['python_name']}_list = [ + grpc_complex_types.NIComplexI16(real=int(pair[0]), imaginary=int(pair[1])) + for pair in arr_pairs + ] +% endif +% endfor + ${capture_response}self._invoke( + self._client.${grpc_name}, + grpc_types.${grpc_name}Request(${grpc_request_args}), + ) +% if return_statement: + ${return_statement} +% endif +% else: + raise NotImplementedError('numpy-specific methods are not supported over gRPC') +% endif +% else: + raise NotImplementedError('${full_func_name} is not supported over gRPC') +% endif diff --git a/generated/nifake/nifake/_grpc_stub_interpreter.py b/generated/nifake/nifake/_grpc_stub_interpreter.py index ef685192cf..fa6902751d 100644 --- a/generated/nifake/nifake/_grpc_stub_interpreter.py +++ b/generated/nifake/nifake/_grpc_stub_interpreter.py @@ -146,6 +146,7 @@ def fetch_waveform_into(self, number_of_samples): # noqa: N802 raise NotImplementedError('numpy-specific methods are not supported over gRPC') def function_with_3d_numpy_array_of_numpy_complex128_input_parameter(self, multidimensional_array): # noqa: N802 + # Use ravel() so that gRPC always receives a flat numpy array, regardless of input dimensions. multidimensional_array_list = [ grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) for val in multidimensional_array.ravel() @@ -520,6 +521,7 @@ def write_waveform_numpy(self, waveform): # noqa: N802 raise NotImplementedError('numpy-specific methods are not supported over gRPC') def write_waveform_numpy_complex128(self, waveform_data_array): # noqa: N802 + # Use ravel() so that gRPC always receives a flat numpy array, regardless of input dimensions. waveform_data_array_list = [ grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) for val in waveform_data_array.ravel() @@ -530,6 +532,7 @@ def write_waveform_numpy_complex128(self, waveform_data_array): # noqa: N802 ) def write_waveform_numpy_complex64(self, waveform_data_array): # noqa: N802 + # Use ravel() so that gRPC always receives a flat numpy array, regardless of input dimensions. waveform_data_array_list = [ grpc_complex_types.NIComplexNumberF32(real=val.real, imaginary=val.imag) for val in waveform_data_array.ravel() @@ -540,6 +543,7 @@ def write_waveform_numpy_complex64(self, waveform_data_array): # noqa: N802 ) def write_waveform_numpy_complex_interleaved_i16(self, waveform_data_array): # noqa: N802 + # Use ravel() so that gRPC always receives a flat numpy array, regardless of input dimensions. arr = waveform_data_array.ravel() if arr.size % 2 != 0: raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") diff --git a/generated/nifake/nifake/nifake_pb2.py b/generated/nifake/nifake/nifake_pb2.py index ff0178b96d..4c3684d51f 100644 --- a/generated/nifake/nifake/nifake_pb2.py +++ b/generated/nifake/nifake/nifake_pb2.py @@ -14,7 +14,7 @@ from . import session_pb2 as session__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cnifake.proto\x12\x0bnifake_grpc\x1a\rsession.proto\"=\n\x10\x46\x61keCustomStruct\x12\x12\n\nstruct_int\x18\x01 \x01(\x11\x12\x15\n\rstruct_double\x18\x02 \x01(\x01\"\xa0\x01\n\x19\x43ustomStructNestedTypedef\x12;\n\x14struct_custom_struct\x18\x01 \x01(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\x12\x46\n\x1cstruct_custom_struct_typedef\x18\x02 \x01(\x0b\x32 .nifake_grpc.CustomStructTypedef\"@\n\x13\x43ustomStructTypedef\x12\x12\n\nstruct_int\x18\x01 \x01(\x11\x12\x15\n\rstruct_double\x18\x02 \x01(\x01\"6\n\x13NIComplexI16_struct\x12\x0c\n\x04real\x18\x01 \x01(\x11\x12\x11\n\timaginary\x18\x02 \x01(\x11\"9\n\x16NIComplexNumber_struct\x12\x0c\n\x04real\x18\x01 \x01(\x01\x12\x11\n\timaginary\x18\x02 \x01(\x01\"J\n\x0fStringAndTurtle\x12\x12\n\nstring_arg\x18\x01 \x01(\t\x12#\n\x06turtle\x18\x02 \x01(\x0e\x32\x13.nifake_grpc.Turtle\"%\n\x0f\x43ustomNamedType\x12\x12\n\nstring_arg\x18\x01 \x01(\t\"2\n\x0c\x41\x62ortRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x1f\n\rAbortResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"`\n\x1e\x42oolArrayOutputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\"C\n\x1f\x42oolArrayOutputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08\x61n_array\x18\x02 \x03(\x08\"2\n\x0c\x43loseRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x1f\n\rCloseResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"`\n\x1e\x45numArrayOutputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\"n\n\x1f\x45numArrayOutputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12%\n\x08\x61n_array\x18\x02 \x03(\x0e\x32\x13.nifake_grpc.Turtle\x12\x14\n\x0c\x61n_array_raw\x18\x03 \x03(\x11\"\x9c\x01\n$EnumInputFunctionWithDefaultsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\'\n\x08\x61_turtle\x18\x02 \x01(\x0e\x32\x13.nifake_grpc.TurtleH\x00\x12\x16\n\x0c\x61_turtle_raw\x18\x03 \x01(\x11H\x00\x42\x0f\n\ra_turtle_enum\"7\n%EnumInputFunctionWithDefaultsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xce\x01\n0StringValuedEnumInputFunctionWithDefaultsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12=\n\x17\x61_mobile_os_name_mapped\x18\x02 \x01(\x0e\x32\x1a.nifake_grpc.MobileOSNamesH\x00\x12\x1e\n\x14\x61_mobile_os_name_raw\x18\x03 \x01(\tH\x00\x42\x17\n\x15\x61_mobile_os_name_enum\"C\n1StringValuedEnumInputFunctionWithDefaultsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"M\n\x13\x45rrorMessageRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x12\n\nerror_code\x18\x02 \x01(\x11\"=\n\x14\x45rrorMessageResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\rerror_message\x18\x02 \x01(\t\"U\n\x14\x46\x65tchWaveformRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x19\n\x11number_of_samples\x18\x02 \x01(\x11\"`\n\x15\x46\x65tchWaveformResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\rwaveform_data\x18\x02 \x03(\x01\x12 \n\x18\x61\x63tual_number_of_samples\x18\x03 \x01(\x11\"8\n\x12GetABooleanRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"8\n\x13GetABooleanResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\ta_boolean\x18\x02 \x01(\x08\"7\n\x11GetANumberRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"6\n\x12GetANumberResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08\x61_number\x18\x02 \x01(\x11\"I\n#GetAStringOfFixedMaximumSizeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"H\n$GetAStringOfFixedMaximumSizeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08\x61_string\x18\x02 \x01(\t\"C\n\x1dGetAnIviDanceCharArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"D\n\x1eGetAnIviDanceCharArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x12\n\nchar_array\x18\x02 \x01(\t\"B\n\x1cGetArrayUsingIviDanceRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"B\n\x1dGetArrayUsingIviDanceResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tarray_out\x18\x02 \x03(\x01\"\x8c\x01\n\x1cGetAttributeViBooleanRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"H\n\x1dGetAttributeViBooleanResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x17\n\x0f\x61ttribute_value\x18\x02 \x01(\x08\"\x8a\x01\n\x1aGetAttributeViInt32Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"F\n\x1bGetAttributeViInt32Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x17\n\x0f\x61ttribute_value\x18\x02 \x01(\x11\"\x8a\x01\n\x1aGetAttributeViInt64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"F\n\x1bGetAttributeViInt64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x17\n\x0f\x61ttribute_value\x18\x02 \x01(\x03\"\x8b\x01\n\x1bGetAttributeViReal64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"G\n\x1cGetAttributeViReal64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x17\n\x0f\x61ttribute_value\x18\x02 \x01(\x01\"\x8c\x01\n\x1cGetAttributeViSessionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"`\n\x1dGetAttributeViSessionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12/\n\x0f\x61ttribute_value\x18\x02 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x8b\x01\n\x1bGetAttributeViStringRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"G\n\x1cGetAttributeViStringResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x17\n\x0f\x61ttribute_value\x18\x02 \x01(\t\"P\n\x18GetCalDateAndTimeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x10\n\x08\x63\x61l_type\x18\x02 \x01(\x11\"s\n\x19GetCalDateAndTimeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\r\n\x05month\x18\x02 \x01(\x11\x12\x0b\n\x03\x64\x61y\x18\x03 \x01(\x11\x12\x0c\n\x04year\x18\x04 \x01(\x11\x12\x0c\n\x04hour\x18\x05 \x01(\x11\x12\x0e\n\x06minute\x18\x06 \x01(\x11\";\n\x15GetCalIntervalRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"8\n\x16GetCalIntervalResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0e\n\x06months\x18\x02 \x01(\x11\"9\n\x13GetEnumValueRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"w\n\x14GetEnumValueResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x12\n\na_quantity\x18\x02 \x01(\x11\x12%\n\x08\x61_turtle\x18\x03 \x01(\x0e\x32\x13.nifake_grpc.Turtle\x12\x14\n\x0c\x61_turtle_raw\x18\x04 \x01(\x11\"5\n\x0fGetErrorRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"K\n\x10GetErrorResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x12\n\nerror_code\x18\x02 \x01(\x11\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\"\xd3\x01\n\x16InitWithOptionsRequest\x12\x14\n\x0csession_name\x18\x01 \x01(\t\x12\x15\n\rresource_name\x18\x02 \x01(\t\x12\x10\n\x08id_query\x18\x03 \x01(\x08\x12\x14\n\x0creset_device\x18\x04 \x01(\x08\x12\x15\n\roption_string\x18\x05 \x01(\t\x12M\n\x17initialization_behavior\x18\x06 \x01(\x0e\x32,.nidevice_grpc.SessionInitializationBehavior\"n\n\x17InitWithOptionsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\"\n\x02vi\x18\x02 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1f\n\x17new_session_initialized\x18\x03 \x01(\x08\"\x9a\x01\n\x19MultipleArrayTypesRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x19\n\x11output_array_size\x18\x02 \x01(\x11\x12\x1d\n\x15input_array_of_floats\x18\x03 \x03(\x01\x12\x1f\n\x17input_array_of_integers\x18\x04 \x03(\x11\"h\n\x1aMultipleArrayTypesResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x14\n\x0coutput_array\x18\x02 \x03(\x01\x12$\n\x1coutput_array_of_fixed_length\x18\x03 \x03(\x01\"\x87\x01\n\x1dMultipleArraysSameSizeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0f\n\x07values1\x18\x02 \x03(\x01\x12\x0f\n\x07values2\x18\x03 \x03(\x01\x12\x0f\n\x07values3\x18\x04 \x03(\x01\x12\x0f\n\x07values4\x18\x05 \x03(\x01\"0\n\x1eMultipleArraysSameSizeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"r\n\"MultipleArraysDifferentSizeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0cvalues_array\x18\x02 \x03(\x01\x12\x12\n\ndata_array\x18\x03 \x03(\x11\"5\n#MultipleArraysDifferentSizeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"_\n#MixedIviDanceAndLenMechanismRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0cinput_values\x18\x02 \x03(\x01\"L\n$MixedIviDanceAndLenMechanismResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x14\n\x0coutput_array\x18\x02 \x03(\x11\"O\n\x17OneInputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x10\n\x08\x61_number\x18\x02 \x01(\x11\"*\n\x18OneInputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xe4\x02\n!ParametersAreMultipleTypesRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x11\n\ta_boolean\x18\x02 \x01(\x08\x12\x10\n\x08\x61n_int32\x18\x03 \x01(\x11\x12\x10\n\x08\x61n_int64\x18\x04 \x01(\x03\x12*\n\x0b\x61n_int_enum\x18\x05 \x01(\x0e\x32\x13.nifake_grpc.TurtleH\x00\x12\x19\n\x0f\x61n_int_enum_raw\x18\x06 \x01(\x11H\x00\x12\x0f\n\x07\x61_float\x18\x07 \x01(\x01\x12\x35\n\x13\x61_float_enum_mapped\x18\x08 \x01(\x0e\x32\x16.nifake_grpc.FloatEnumH\x01\x12\x1a\n\x10\x61_float_enum_raw\x18\t \x01(\x01H\x01\x12\x10\n\x08\x61_string\x18\n \x01(\tB\x12\n\x10\x61n_int_enum_enumB\x13\n\x11\x61_float_enum_enum\"4\n\"ParametersAreMultipleTypesResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"F\n PoorlyNamedSimpleFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"3\n!PoorlyNamedSimpleFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"G\n\x0bReadRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0cmaximum_time\x18\x02 \x01(\x01\"/\n\x0cReadResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0f\n\x07reading\x18\x02 \x01(\x01\"h\n\x16ReadFromChannelRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x14\n\x0cmaximum_time\x18\x03 \x01(\x11\":\n\x17ReadFromChannelResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0f\n\x07reading\x18\x02 \x01(\x01\"D\n\x1eReturnANumberAndAStringRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"U\n\x1fReturnANumberAndAStringResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08\x61_number\x18\x02 \x01(\x11\x12\x10\n\x08\x61_string\x18\x03 \x01(\t\"T\n\x1aReturnMultipleTypesRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x12\n\narray_size\x18\x02 \x01(\x11\"\xab\x02\n\x1bReturnMultipleTypesResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\ta_boolean\x18\x02 \x01(\x08\x12\x10\n\x08\x61n_int32\x18\x03 \x01(\x11\x12\x10\n\x08\x61n_int64\x18\x04 \x01(\x03\x12(\n\x0b\x61n_int_enum\x18\x05 \x01(\x0e\x32\x13.nifake_grpc.Turtle\x12\x17\n\x0f\x61n_int_enum_raw\x18\x06 \x01(\x11\x12\x0f\n\x07\x61_float\x18\x07 \x01(\x01\x12\x33\n\x13\x61_float_enum_mapped\x18\x08 \x01(\x0e\x32\x16.nifake_grpc.FloatEnum\x12\x18\n\x10\x61_float_enum_raw\x18\t \x01(\x01\x12\x10\n\x08\x61n_array\x18\n \x03(\x01\x12\x10\n\x08\x61_string\x18\x0b \x01(\t\"\xa5\x01\n\x1cSetAttributeViBooleanRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\x12\x17\n\x0f\x61ttribute_value\x18\x04 \x01(\x08\"/\n\x1dSetAttributeViBooleanResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x85\x02\n\x1aSetAttributeViInt32Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\x12\x42\n\x0f\x61ttribute_value\x18\x04 \x01(\x0e\x32\'.nifake_grpc.NiFakeInt32AttributeValuesH\x00\x12\x1d\n\x13\x61ttribute_value_raw\x18\x05 \x01(\x11H\x00\x42\x16\n\x14\x61ttribute_value_enum\"-\n\x1bSetAttributeViInt32Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xa7\x01\n\x1aSetAttributeViInt64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\x12\x1b\n\x13\x61ttribute_value_raw\x18\x04 \x01(\x03\"-\n\x1bSetAttributeViInt64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xd9\x02\n\x1bSetAttributeViReal64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\x12\x43\n\x0f\x61ttribute_value\x18\x04 \x01(\x0e\x32(.nifake_grpc.NiFakeReal64AttributeValuesH\x00\x12P\n\x16\x61ttribute_value_mapped\x18\x05 \x01(\x0e\x32..nifake_grpc.NiFakeReal64AttributeValuesMappedH\x00\x12\x1d\n\x13\x61ttribute_value_raw\x18\x06 \x01(\x01H\x00\x42\x16\n\x14\x61ttribute_value_enum\".\n\x1cSetAttributeViReal64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xa8\x01\n\x1bSetAttributeViStringRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\x12\x1b\n\x13\x61ttribute_value_raw\x18\x04 \x01(\t\".\n\x1cSetAttributeViStringResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"a\n\x17TwoInputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x10\n\x08\x61_number\x18\x02 \x01(\x01\x12\x10\n\x08\x61_string\x18\x03 \x01(\t\"*\n\x18TwoInputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"J\n\x15Use64BitNumberRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\r\n\x05input\x18\x02 \x01(\x03\"8\n\x16Use64BitNumberResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0e\n\x06output\x18\x02 \x01(\x03\"L\n\x14WriteWaveformRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x10\n\x08waveform\x18\x02 \x03(\x01\"\'\n\x15WriteWaveformResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"e\n\x14SetCustomTypeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12)\n\x02\x63s\x18\x02 \x01(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\"\'\n\x15SetCustomTypeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"j\n\x19SetCustomTypeArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12)\n\x02\x63s\x18\x02 \x03(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\",\n\x1aSetCustomTypeArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\":\n\x14GetCustomTypeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"R\n\x15GetCustomTypeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12)\n\x02\x63s\x18\x02 \x01(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\"[\n\x19GetCustomTypeArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\"W\n\x1aGetCustomTypeArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12)\n\x02\x63s\x18\x02 \x03(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\"[\n#GetAnIviDanceWithATwistArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x10\n\x08\x61_string\x18\x02 \x01(\t\"^\n$GetAnIviDanceWithATwistArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tarray_out\x18\x02 \x03(\x11\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\"J\n$GetAnIviDanceWithATwistStringRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"^\n%GetAnIviDanceWithATwistStringResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08\x61_string\x18\x02 \x01(\t\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\"N\n\x17\x44oubleAllTheNumsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0f\n\x07numbers\x18\x02 \x03(\x01\"*\n\x18\x44oubleAllTheNumsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"[\n%AcceptListOfDurationsInSecondsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0e\n\x06\x64\x65lays\x18\x02 \x03(\x01\"8\n&AcceptListOfDurationsInSecondsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"D\n\x1eReturnDurationInSecondsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"D\n\x1fReturnDurationInSecondsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\ttimedelta\x18\x02 \x01(\x01\"g\n%ReturnListOfDurationsInSecondsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\"L\n&ReturnListOfDurationsInSecondsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x12\n\ntimedeltas\x18\x02 \x03(\x01\"9\n\x13\x43onfigureAbcRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"&\n\x14\x43onfigureAbcResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x8d\x02\n\x15\x43onfigureEnumsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x30\n\x0csample_count\x18\x02 \x01(\x0e\x32\x18.nifake_grpc.SampleCountH\x00\x12\x1a\n\x10sample_count_raw\x18\x03 \x01(\x11H\x00\x12\x36\n\x0fsample_interval\x18\x04 \x01(\x0e\x32\x1b.nifake_grpc.SampleIntervalH\x01\x12\x1d\n\x13sample_interval_raw\x18\x05 \x01(\x01H\x01\x42\x13\n\x11sample_count_enumB\x16\n\x14sample_interval_enum\"(\n\x16\x43onfigureEnumsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"Q\n+ExportAttributeConfigurationBufferExRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"U\n,ExportAttributeConfigurationBufferExResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\rconfiguration\x18\x02 \x01(\x0c\"h\n+ImportAttributeConfigurationBufferExRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rconfiguration\x18\x02 \x01(\x0c\">\n,ImportAttributeConfigurationBufferExResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"x\n\x1a\x46\x65tchWithCustomSizeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1b\n\x13number_of_waveforms\x18\x02 \x01(\x11\x12\x19\n\x11number_of_samples\x18\x03 \x01(\x11\"D\n\x1b\x46\x65tchWithCustomSizeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\rwaveform_data\x18\x02 \x03(\x01\"\xbf\x01\n)GetParameterWithOverriddenGrpcNameRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x31\n\x12\x65num_parameter_raw\x18\x02 \x01(\x0e\x32\x13.nifake_grpc.TurtleH\x00\x12 \n\x16\x65num_parameter_raw_raw\x18\x03 \x01(\x11H\x00\x42\x19\n\x17\x65num_parameter_raw_enum\"Z\n*GetParameterWithOverriddenGrpcNameResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x1c\n\x14overridden_parameter\x18\x02 \x01(\x11\"`\n:IviDanceWithTwistWithMultipleArraysAndOneBufferSizeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x9a\x01\n;IviDanceWithTwistWithMultipleArraysAndOneBufferSizeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0e\n\x06\x61rray1\x18\x02 \x03(\x11\x12\x0e\n\x06\x61rray2\x18\x03 \x03(\x11\x12\x0e\n\x06\x61rray3\x18\x04 \x03(\x11\x12\x1b\n\x13\x61\x63tual_num_elements\x18\x05 \x01(\x11\"M\n\'FunctionWithOverriddenGrpcName2xRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\":\n(FunctionWithOverriddenGrpcName2xResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"c\n&StringValuedEnumNoEnumGeneratedRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\ra_string_enum\x18\x02 \x01(\t\"9\n\'StringValuedEnumNoEnumGeneratedResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"P\n*IviDanceWithATwistCalculatedSizeOutRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x8e\x01\n+IviDanceWithATwistCalculatedSizeOutResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x02 \x03(\r\x12\x1c\n\x14\x61\x63tual_num_waveforms\x18\x03 \x01(\x11\x12#\n\x1b\x61\x63tual_samples_per_waveform\x18\x04 \x01(\x11\"f\n)ImportAttributeConfigurationBufferRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rconfiguration\x18\x02 \x01(\x0c\"<\n*ImportAttributeConfigurationBufferResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"O\n)ExportAttributeConfigurationBufferRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"S\n*ExportAttributeConfigurationBufferResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\rconfiguration\x18\x02 \x01(\x0c\"B\n\x12\x43ontrol4022Request\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x15\n\rconfiguration\x18\x02 \x01(\x11\"%\n\x13\x43ontrol4022Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"c\n\x1b\x41\x63\x63\x65ptViSessionArrayRequest\x12\x15\n\rsession_count\x18\x01 \x01(\r\x12-\n\rsession_array\x18\x02 \x03(\x0b\x32\x16.nidevice_grpc.Session\".\n\x1c\x41\x63\x63\x65ptViSessionArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"W\n\x1a\x41\x63\x63\x65ptViUInt32ArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\ru_int32_array\x18\x02 \x03(\r\"-\n\x1b\x41\x63\x63\x65ptViUInt32ArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"q\n\x1d\x42oolArrayInputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\x12\x10\n\x08\x61n_array\x18\x03 \x03(\x08\"0\n\x1e\x42oolArrayInputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"H\n\x12\x43loseExtCalRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\x11\"%\n\x13\x43loseExtCalResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"E\n\x1f\x43ommandWithReservedParamRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"2\n CommandWithReservedParamResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"Z\n\x1e\x43reateConfigurationListRequest\x12\x38\n\x12list_attribute_ids\x18\x01 \x03(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"1\n\x1f\x43reateConfigurationListResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"k\n\"CustomNestedStructRoundtripRequest\x12\x45\n\x15nested_custom_type_in\x18\x01 \x01(\x0b\x32&.nifake_grpc.CustomStructNestedTypedef\"}\n#CustomNestedStructRoundtripResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x46\n\x16nested_custom_type_out\x18\x02 \x01(\x0b\x32&.nifake_grpc.CustomStructNestedTypedef\"\x1f\n\x1dGetBitfieldAsEnumArrayRequest\"o\n\x1eGetBitfieldAsEnumArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12*\n\x0b\x66lags_array\x18\x02 \x03(\x0e\x32\x15.nifake_grpc.Bitfield\x12\x11\n\tflags_raw\x18\x03 \x01(\x03\"U\n/GetAnIviDanceWithATwistArrayOfCustomTypeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x89\x01\n0GetAnIviDanceWithATwistArrayOfCustomTypeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x30\n\tarray_out\x18\x02 \x03(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\"D\n1GetAnIviDanceWithATwistArrayWithInputArrayRequest\x12\x0f\n\x07\x64\x61ta_in\x18\x01 \x03(\x11\"l\n2GetAnIviDanceWithATwistArrayWithInputArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tarray_out\x18\x02 \x03(\x11\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\")\n\'GetAnIviDanceWithATwistByteArrayRequest\"b\n(GetAnIviDanceWithATwistByteArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tarray_out\x18\x02 \x01(\x0c\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\"/\n-GetAnIviDanceWithATwistStringStrlenBugRequest\"i\n.GetAnIviDanceWithATwistStringStrlenBugResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x12\n\nstring_out\x18\x02 \x01(\t\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\"F\n GetArraySizeForCustomCodeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"E\n!GetArraySizeForCustomCodeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08size_out\x18\x02 \x01(\x11\"W\n\x1eGetArrayViUInt8WithEnumRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x11\n\tarray_len\x18\x02 \x01(\x11\"\x8b\x01\n\x1fGetArrayViUInt8WithEnumResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x39\n\x11u_int8_enum_array\x18\x02 \x03(\x0e\x32\x1e.nifake_grpc.GrpcColorOverride\x12\x1d\n\x15u_int8_enum_array_raw\x18\x03 \x01(\x0c\"7\n\x11GetViUInt8Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"<\n\x12GetViUInt8Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x16\n\x0e\x61_uint8_number\x18\x02 \x01(\r\"O\n\x16GetViInt32ArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x11\n\tarray_len\x18\x02 \x01(\x11\">\n\x17GetViInt32ArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x13\n\x0bint32_array\x18\x02 \x03(\x11\"P\n\x17GetViUInt32ArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x11\n\tarray_len\x18\x02 \x01(\x11\"A\n\x18GetViUInt32ArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\ru_int32_array\x18\x02 \x03(\r\"\x92\x01\n(MethodUsingEnumWithGrpcNameValuesRequest\x12\x39\n\nusing_enum\x18\x01 \x01(\x0e\x32#.nifake_grpc.EnumWithGrpcNameValuesH\x00\x12\x18\n\x0eusing_enum_raw\x18\x02 \x01(\x11H\x00\x42\x11\n\x0fusing_enum_enum\";\n)MethodUsingEnumWithGrpcNameValuesResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"$\n\"MethodWithGetLastErrorParamRequest\"M\n#MethodWithGetLastErrorParamResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x16\n\nlast_error\x18\x02 \x01(\tB\x02\x18\x01\"6\n\x1eMethodWithGrpcOnlyParamRequest\x12\x14\n\x0csimple_param\x18\x01 \x01(\x11\"J\n\x1fMethodWithGrpcOnlyParamResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x17\n\x0fgrpc_only_param\x18\x02 \x01(\x11\"-\n+MethodUsingWholeAndFractionalNumbersRequest\"\xf1\x01\n,MethodUsingWholeAndFractionalNumbersResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x35\n\x0cwhole_number\x18\x02 \x01(\x0e\x32\x1f.nifake_grpc.DecimalWholeNumber\x12\x18\n\x10whole_number_raw\x18\x03 \x01(\x11\x12\x41\n\x18\x66ractional_number_mapped\x18\x04 \x01(\x0e\x32\x1f.nifake_grpc.DecimalMixedNumber\x12\x1d\n\x15\x66ractional_number_raw\x18\x05 \x01(\x01\"&\n$MethodUsingWholeMappedNumbersRequest\"\x95\x01\n%MethodUsingWholeMappedNumbersResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x42\n\x13whole_number_mapped\x18\x02 \x01(\x0e\x32%.nifake_grpc.DecimalWholeNumberMapped\x12\x18\n\x10whole_number_raw\x18\x03 \x01(\x01\";\n MethodWithGrpcFieldNumberRequest\x12\x17\n\x0f\x61ttribute_value\x18\x05 \x01(\x11\"3\n!MethodWithGrpcFieldNumberResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\">\n#MethodWithProtoOnlyParameterRequest\x12\x17\n\x0f\x61ttribute_value\x18\x01 \x01(\x11\"6\n$MethodWithProtoOnlyParameterResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\"\n ReadDataWithInOutIviTwistRequest\"V\n!ReadDataWithInOutIviTwistResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x02 \x03(\x11\x12\x13\n\x0b\x62uffer_size\x18\x03 \x01(\x11\".\n,ReadDataWithMultipleIviTwistParamSetsRequest\"\x9b\x01\n-ReadDataWithMultipleIviTwistParamSetsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tarray_out\x18\x02 \x03(\x11\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\x12\x17\n\x0fother_array_out\x18\x04 \x03(\x11\x12\x19\n\x11other_actual_size\x18\x05 \x01(\x11\"^\n\x11InitExtCalRequest\x12\x14\n\x0csession_name\x18\x01 \x01(\t\x12\x15\n\rresource_name\x18\x02 \x01(\t\x12\x1c\n\x14\x63\x61libration_password\x18\x03 \x01(\t\"H\n\x12InitExtCalResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\"\n\x02vi\x18\x02 \x01(\x0b\x32\x16.nidevice_grpc.Session\"|\n\x16InitWithVarArgsRequest\x12\x14\n\x0csession_name\x18\x01 \x01(\t\x12\x15\n\rresource_name\x18\x02 \x01(\t\x12\x35\n\x0fname_and_turtle\x18\x03 \x03(\x0b\x32\x1c.nifake_grpc.StringAndTurtle\"M\n\x17InitWithVarArgsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\"\n\x02vi\x18\x02 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\xc3\x01\n)MultipleArraysSameSizeWithOptionalRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0f\n\x07values1\x18\x02 \x03(\x01\x12\x0f\n\x07values2\x18\x03 \x03(\x01\x12\x0f\n\x07values3\x18\x04 \x03(\x01\x12\x0f\n\x07values4\x18\x05 \x03(\x01\x12.\n\x07values5\x18\x06 \x03(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\"<\n*MultipleArraysSameSizeWithOptionalResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"l\n UseATwoDimensionParameterRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\r\n\x05\x61rray\x18\x02 \x03(\x11\x12\x15\n\rarray_lengths\x18\x03 \x03(\x11\"3\n!UseATwoDimensionParameterResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"t\n ViUInt8ArrayInputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\x12\x10\n\x08\x61n_array\x18\x03 \x01(\x0c\"3\n!ViUInt8ArrayInputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"c\n!ViUInt8ArrayOutputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\"F\n\"ViUInt8ArrayOutputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08\x61n_array\x18\x02 \x01(\x0c\"X\n ViInt16ArrayInputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x10\n\x08\x61n_array\x18\x02 \x03(\x11\"3\n!ViInt16ArrayInputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05*\x9e\x05\n\x0fNiFakeAttribute\x12 \n\x1cNIFAKE_ATTRIBUTE_UNSPECIFIED\x10\x00\x12&\n NIFAKE_ATTRIBUTE_READ_WRITE_BOOL\x10\xc0\x84=\x12(\n\"NIFAKE_ATTRIBUTE_READ_WRITE_DOUBLE\x10\xc1\x84=\x12(\n\"NIFAKE_ATTRIBUTE_READ_WRITE_STRING\x10\xc2\x84=\x12\'\n!NIFAKE_ATTRIBUTE_READ_WRITE_COLOR\x10\xc3\x84=\x12)\n#NIFAKE_ATTRIBUTE_READ_WRITE_INTEGER\x10\xc4\x84=\x12/\n)NIFAKE_ATTRIBUTE_FLOAT_ENUM_NAME_OVERRIDE\x10\xc5\x84=\x12\'\n!NIFAKE_ATTRIBUTE_READ_WRITE_INT64\x10\xc6\x84=\x12\x37\n1NIFAKE_ATTRIBUTE_READ_WRITE_DOUBLE_WITH_CONVERTER\x10\xc7\x84=\x12\x38\n2NIFAKE_ATTRIBUTE_READ_WRITE_INTEGER_WITH_CONVERTER\x10\xc8\x84=\x12\x41\n;NIFAKE_ATTRIBUTE_READ_WRITE_DOUBLE_WITH_REPEATED_CAPABILITY\x10\xc9\x84=\x12<\n6NIFAKE_ATTRIBUTE_READ_WRITE_STRING_REPEATED_CAPABILITY\x10\xca\x84=\x12#\n\x1dNIFAKE_ATTRIBUTE_SAMPLE_COUNT\x10\xcc\x84=\x12&\n NIFAKE_ATTRIBUTE_SAMPLE_INTERVAL\x10\xcd\x84=*\xb2\x01\n\x11GrpcColorOverride\x12#\n\x1fGRPC_COLOR_OVERRIDE_UNSPECIFIED\x10\x00\x12\x1b\n\x17GRPC_COLOR_OVERRIDE_RED\x10\x01\x12\x1c\n\x18GRPC_COLOR_OVERRIDE_BLUE\x10\x02\x12\x1e\n\x1aGRPC_COLOR_OVERRIDE_YELLOW\x10\x05\x12\x1d\n\x19GRPC_COLOR_OVERRIDE_BLACK\x10**\xc8\x01\n\tFloatEnum\x12\x1a\n\x16\x46LOAT_ENUM_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x46LOAT_ENUM_THREE_POINT_FIVE\x10\x01\x12\x1e\n\x1a\x46LOAT_ENUM_FOUR_POINT_FIVE\x10\x02\x12\x1e\n\x1a\x46LOAT_ENUM_FIVE_POINT_FIVE\x10\x03\x12\x1d\n\x19\x46LOAT_ENUM_SIX_POINT_FIVE\x10\x04\x12\x1f\n\x1b\x46LOAT_ENUM_SEVEN_POINT_FIVE\x10\x05*`\n\x06Turtle\x12\x13\n\x0fTURTLE_LEONARDO\x10\x00\x12\x14\n\x10TURTLE_DONATELLO\x10\x01\x12\x12\n\x0eTURTLE_RAPHAEL\x10\x02\x12\x17\n\x13TURTLE_MICHELANGELO\x10\x03*\x80\x01\n\rMobileOSNames\x12\x1f\n\x1bMOBILE_OS_NAMES_UNSPECIFIED\x10\x00\x12\x1b\n\x17MOBILE_OS_NAMES_ANDROID\x10\x01\x12\x17\n\x13MOBILE_OS_NAMES_IOS\x10\x02\x12\x18\n\x14MOBILE_OS_NAMES_NONE\x10\x03*x\n\x08\x42itfield\x12\x18\n\x14\x42ITFIELD_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x42ITFIELD_FLAG_A\x10\x01\x12\x13\n\x0f\x42ITFIELD_FLAG_B\x10\x02\x12\x13\n\x0f\x42ITFIELD_FLAG_C\x10\x04\x12\x13\n\x0f\x42ITFIELD_FLAG_D\x10\x08*\x88\x01\n\x12\x44\x65\x63imalWholeNumber\x12\x1d\n\x19\x44\x45\x43IMAL_WHOLE_NUMBER_ZERO\x10\x00\x12.\n!DECIMAL_WHOLE_NUMBER_NEGATIVE_ONE\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12#\n\x1f\x44\x45\x43IMAL_WHOLE_NUMBER_TWENTY_TWO\x10\x16*\xc7\x01\n\x18\x44\x65\x63imalWholeNumberMapped\x12+\n\'DECIMAL_WHOLE_NUMBER_MAPPED_UNSPECIFIED\x10\x00\x12$\n DECIMAL_WHOLE_NUMBER_MAPPED_ZERO\x10\x01\x12,\n(DECIMAL_WHOLE_NUMBER_MAPPED_NEGATIVE_ONE\x10\x02\x12*\n&DECIMAL_WHOLE_NUMBER_MAPPED_TWENTY_TWO\x10\x03*\xd7\x02\n\x12\x44\x65\x63imalMixedNumber\x12$\n DECIMAL_MIXED_NUMBER_UNSPECIFIED\x10\x00\x12#\n\x1f\x44\x45\x43IMAL_MIXED_NUMBER_TWENTY_TWO\x10\x01\x12&\n\"DECIMAL_MIXED_NUMBER_TWO_POINT_TWO\x10\x02\x12\'\n#DECIMAL_MIXED_NUMBER_NEGATIVE_THREE\x10\x03\x12#\n\x1f\x44\x45\x43IMAL_MIXED_NUMBER_MAX_INT_32\x10\x04\x12,\n(DECIMAL_MIXED_NUMBER_MAX_INT_32_PLUS_ONE\x10\x05\x12#\n\x1f\x44\x45\x43IMAL_MIXED_NUMBER_MIN_INT_32\x10\x06\x12-\n)DECIMAL_MIXED_NUMBER_MIN_INT_32_MINUS_ONE\x10\x07*\x9e\x01\n\x16\x45numWithGrpcNameValues\x12*\n&ENUM_WITH_GRPC_NAME_VALUES_UNSPECIFIED\x10\x00\x12\x34\n0ENUM_WITH_GRPC_NAME_VALUES_ALTERED_GRPC_NAME_ONE\x10\x01\x12\"\n\x1e\x45NUM_WITH_GRPC_NAME_VALUES_TWO\x10\x02*5\n\x0bSampleCount\x12&\n\"SAMPLE_COUNT_SAMPLE_COUNT_INFINITE\x10\x00*Z\n\x0eSampleInterval\x12\x1f\n\x1bSAMPLE_INTERVAL_UNSPECIFIED\x10\x00\x12\'\n\x1aSAMPLE_INTERVAL_AUTO_DELAY\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01*\xa1\x02\n\x1aNiFakeInt32AttributeValues\x12\x1c\n\x18NIFAKE_INT32_UNSPECIFIED\x10\x00\x12(\n$NIFAKE_INT32_GRPC_COLOR_OVERRIDE_RED\x10\x01\x12)\n%NIFAKE_INT32_GRPC_COLOR_OVERRIDE_BLUE\x10\x02\x12+\n\'NIFAKE_INT32_GRPC_COLOR_OVERRIDE_YELLOW\x10\x05\x12*\n&NIFAKE_INT32_GRPC_COLOR_OVERRIDE_BLACK\x10*\x12\x33\n/NIFAKE_INT32_SAMPLE_COUNT_SAMPLE_COUNT_INFINITE\x10\x00\x1a\x02\x10\x01*s\n\x1bNiFakeReal64AttributeValues\x12\x1d\n\x19NIFAKE_REAL64_UNSPECIFIED\x10\x00\x12\x35\n(NIFAKE_REAL64_SAMPLE_INTERVAL_AUTO_DELAY\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01*\xb0\x02\n!NiFakeReal64AttributeValuesMapped\x12$\n NIFAKE_REAL64_MAPPED_UNSPECIFIED\x10\x00\x12-\n)NIFAKE_REAL64_FLOAT_ENUM_THREE_POINT_FIVE\x10\x01\x12,\n(NIFAKE_REAL64_FLOAT_ENUM_FOUR_POINT_FIVE\x10\x02\x12,\n(NIFAKE_REAL64_FLOAT_ENUM_FIVE_POINT_FIVE\x10\x03\x12+\n\'NIFAKE_REAL64_FLOAT_ENUM_SIX_POINT_FIVE\x10\x04\x12-\n)NIFAKE_REAL64_FLOAT_ENUM_SEVEN_POINT_FIVE\x10\x05\x32\xa6Z\n\x06NiFake\x12>\n\x05\x41\x62ort\x12\x19.nifake_grpc.AbortRequest\x1a\x1a.nifake_grpc.AbortResponse\x12t\n\x17\x42oolArrayOutputFunction\x12+.nifake_grpc.BoolArrayOutputFunctionRequest\x1a,.nifake_grpc.BoolArrayOutputFunctionResponse\x12>\n\x05\x43lose\x12\x19.nifake_grpc.CloseRequest\x1a\x1a.nifake_grpc.CloseResponse\x12t\n\x17\x45numArrayOutputFunction\x12+.nifake_grpc.EnumArrayOutputFunctionRequest\x1a,.nifake_grpc.EnumArrayOutputFunctionResponse\x12\x86\x01\n\x1d\x45numInputFunctionWithDefaults\x12\x31.nifake_grpc.EnumInputFunctionWithDefaultsRequest\x1a\x32.nifake_grpc.EnumInputFunctionWithDefaultsResponse\x12\xaa\x01\n)StringValuedEnumInputFunctionWithDefaults\x12=.nifake_grpc.StringValuedEnumInputFunctionWithDefaultsRequest\x1a>.nifake_grpc.StringValuedEnumInputFunctionWithDefaultsResponse\x12S\n\x0c\x45rrorMessage\x12 .nifake_grpc.ErrorMessageRequest\x1a!.nifake_grpc.ErrorMessageResponse\x12V\n\rFetchWaveform\x12!.nifake_grpc.FetchWaveformRequest\x1a\".nifake_grpc.FetchWaveformResponse\x12P\n\x0bGetABoolean\x12\x1f.nifake_grpc.GetABooleanRequest\x1a .nifake_grpc.GetABooleanResponse\x12M\n\nGetANumber\x12\x1e.nifake_grpc.GetANumberRequest\x1a\x1f.nifake_grpc.GetANumberResponse\x12\x83\x01\n\x1cGetAStringOfFixedMaximumSize\x12\x30.nifake_grpc.GetAStringOfFixedMaximumSizeRequest\x1a\x31.nifake_grpc.GetAStringOfFixedMaximumSizeResponse\x12q\n\x16GetAnIviDanceCharArray\x12*.nifake_grpc.GetAnIviDanceCharArrayRequest\x1a+.nifake_grpc.GetAnIviDanceCharArrayResponse\x12n\n\x15GetArrayUsingIviDance\x12).nifake_grpc.GetArrayUsingIviDanceRequest\x1a*.nifake_grpc.GetArrayUsingIviDanceResponse\x12n\n\x15GetAttributeViBoolean\x12).nifake_grpc.GetAttributeViBooleanRequest\x1a*.nifake_grpc.GetAttributeViBooleanResponse\x12h\n\x13GetAttributeViInt32\x12\'.nifake_grpc.GetAttributeViInt32Request\x1a(.nifake_grpc.GetAttributeViInt32Response\x12h\n\x13GetAttributeViInt64\x12\'.nifake_grpc.GetAttributeViInt64Request\x1a(.nifake_grpc.GetAttributeViInt64Response\x12k\n\x14GetAttributeViReal64\x12(.nifake_grpc.GetAttributeViReal64Request\x1a).nifake_grpc.GetAttributeViReal64Response\x12n\n\x15GetAttributeViSession\x12).nifake_grpc.GetAttributeViSessionRequest\x1a*.nifake_grpc.GetAttributeViSessionResponse\x12k\n\x14GetAttributeViString\x12(.nifake_grpc.GetAttributeViStringRequest\x1a).nifake_grpc.GetAttributeViStringResponse\x12\x62\n\x11GetCalDateAndTime\x12%.nifake_grpc.GetCalDateAndTimeRequest\x1a&.nifake_grpc.GetCalDateAndTimeResponse\x12Y\n\x0eGetCalInterval\x12\".nifake_grpc.GetCalIntervalRequest\x1a#.nifake_grpc.GetCalIntervalResponse\x12S\n\x0cGetEnumValue\x12 .nifake_grpc.GetEnumValueRequest\x1a!.nifake_grpc.GetEnumValueResponse\x12G\n\x08GetError\x12\x1c.nifake_grpc.GetErrorRequest\x1a\x1d.nifake_grpc.GetErrorResponse\x12\\\n\x0fInitWithOptions\x12#.nifake_grpc.InitWithOptionsRequest\x1a$.nifake_grpc.InitWithOptionsResponse\x12\x65\n\x12MultipleArrayTypes\x12&.nifake_grpc.MultipleArrayTypesRequest\x1a\'.nifake_grpc.MultipleArrayTypesResponse\x12q\n\x16MultipleArraysSameSize\x12*.nifake_grpc.MultipleArraysSameSizeRequest\x1a+.nifake_grpc.MultipleArraysSameSizeResponse\x12\x80\x01\n\x1bMultipleArraysDifferentSize\x12/.nifake_grpc.MultipleArraysDifferentSizeRequest\x1a\x30.nifake_grpc.MultipleArraysDifferentSizeResponse\x12\x83\x01\n\x1cMixedIviDanceAndLenMechanism\x12\x30.nifake_grpc.MixedIviDanceAndLenMechanismRequest\x1a\x31.nifake_grpc.MixedIviDanceAndLenMechanismResponse\x12_\n\x10OneInputFunction\x12$.nifake_grpc.OneInputFunctionRequest\x1a%.nifake_grpc.OneInputFunctionResponse\x12}\n\x1aParametersAreMultipleTypes\x12..nifake_grpc.ParametersAreMultipleTypesRequest\x1a/.nifake_grpc.ParametersAreMultipleTypesResponse\x12z\n\x19PoorlyNamedSimpleFunction\x12-.nifake_grpc.PoorlyNamedSimpleFunctionRequest\x1a..nifake_grpc.PoorlyNamedSimpleFunctionResponse\x12;\n\x04Read\x12\x18.nifake_grpc.ReadRequest\x1a\x19.nifake_grpc.ReadResponse\x12\\\n\x0fReadFromChannel\x12#.nifake_grpc.ReadFromChannelRequest\x1a$.nifake_grpc.ReadFromChannelResponse\x12t\n\x17ReturnANumberAndAString\x12+.nifake_grpc.ReturnANumberAndAStringRequest\x1a,.nifake_grpc.ReturnANumberAndAStringResponse\x12h\n\x13ReturnMultipleTypes\x12\'.nifake_grpc.ReturnMultipleTypesRequest\x1a(.nifake_grpc.ReturnMultipleTypesResponse\x12n\n\x15SetAttributeViBoolean\x12).nifake_grpc.SetAttributeViBooleanRequest\x1a*.nifake_grpc.SetAttributeViBooleanResponse\x12h\n\x13SetAttributeViInt32\x12\'.nifake_grpc.SetAttributeViInt32Request\x1a(.nifake_grpc.SetAttributeViInt32Response\x12h\n\x13SetAttributeViInt64\x12\'.nifake_grpc.SetAttributeViInt64Request\x1a(.nifake_grpc.SetAttributeViInt64Response\x12k\n\x14SetAttributeViReal64\x12(.nifake_grpc.SetAttributeViReal64Request\x1a).nifake_grpc.SetAttributeViReal64Response\x12k\n\x14SetAttributeViString\x12(.nifake_grpc.SetAttributeViStringRequest\x1a).nifake_grpc.SetAttributeViStringResponse\x12_\n\x10TwoInputFunction\x12$.nifake_grpc.TwoInputFunctionRequest\x1a%.nifake_grpc.TwoInputFunctionResponse\x12Y\n\x0eUse64BitNumber\x12\".nifake_grpc.Use64BitNumberRequest\x1a#.nifake_grpc.Use64BitNumberResponse\x12V\n\rWriteWaveform\x12!.nifake_grpc.WriteWaveformRequest\x1a\".nifake_grpc.WriteWaveformResponse\x12V\n\rSetCustomType\x12!.nifake_grpc.SetCustomTypeRequest\x1a\".nifake_grpc.SetCustomTypeResponse\x12\x65\n\x12SetCustomTypeArray\x12&.nifake_grpc.SetCustomTypeArrayRequest\x1a\'.nifake_grpc.SetCustomTypeArrayResponse\x12V\n\rGetCustomType\x12!.nifake_grpc.GetCustomTypeRequest\x1a\".nifake_grpc.GetCustomTypeResponse\x12\x65\n\x12GetCustomTypeArray\x12&.nifake_grpc.GetCustomTypeArrayRequest\x1a\'.nifake_grpc.GetCustomTypeArrayResponse\x12\x83\x01\n\x1cGetAnIviDanceWithATwistArray\x12\x30.nifake_grpc.GetAnIviDanceWithATwistArrayRequest\x1a\x31.nifake_grpc.GetAnIviDanceWithATwistArrayResponse\x12\x86\x01\n\x1dGetAnIviDanceWithATwistString\x12\x31.nifake_grpc.GetAnIviDanceWithATwistStringRequest\x1a\x32.nifake_grpc.GetAnIviDanceWithATwistStringResponse\x12_\n\x10\x44oubleAllTheNums\x12$.nifake_grpc.DoubleAllTheNumsRequest\x1a%.nifake_grpc.DoubleAllTheNumsResponse\x12\x89\x01\n\x1e\x41\x63\x63\x65ptListOfDurationsInSeconds\x12\x32.nifake_grpc.AcceptListOfDurationsInSecondsRequest\x1a\x33.nifake_grpc.AcceptListOfDurationsInSecondsResponse\x12t\n\x17ReturnDurationInSeconds\x12+.nifake_grpc.ReturnDurationInSecondsRequest\x1a,.nifake_grpc.ReturnDurationInSecondsResponse\x12\x89\x01\n\x1eReturnListOfDurationsInSeconds\x12\x32.nifake_grpc.ReturnListOfDurationsInSecondsRequest\x1a\x33.nifake_grpc.ReturnListOfDurationsInSecondsResponse\x12S\n\x0c\x43onfigureAbc\x12 .nifake_grpc.ConfigureAbcRequest\x1a!.nifake_grpc.ConfigureAbcResponse\x12Y\n\x0e\x43onfigureEnums\x12\".nifake_grpc.ConfigureEnumsRequest\x1a#.nifake_grpc.ConfigureEnumsResponse\x12\x9b\x01\n$ExportAttributeConfigurationBufferEx\x12\x38.nifake_grpc.ExportAttributeConfigurationBufferExRequest\x1a\x39.nifake_grpc.ExportAttributeConfigurationBufferExResponse\x12\x9b\x01\n$ImportAttributeConfigurationBufferEx\x12\x38.nifake_grpc.ImportAttributeConfigurationBufferExRequest\x1a\x39.nifake_grpc.ImportAttributeConfigurationBufferExResponse\x12h\n\x13\x46\x65tchWithCustomSize\x12\'.nifake_grpc.FetchWithCustomSizeRequest\x1a(.nifake_grpc.FetchWithCustomSizeResponse\x12\x95\x01\n\"GetParameterWithOverriddenGrpcName\x12\x36.nifake_grpc.GetParameterWithOverriddenGrpcNameRequest\x1a\x37.nifake_grpc.GetParameterWithOverriddenGrpcNameResponse\x12\xc8\x01\n3IviDanceWithTwistWithMultipleArraysAndOneBufferSize\x12G.nifake_grpc.IviDanceWithTwistWithMultipleArraysAndOneBufferSizeRequest\x1aH.nifake_grpc.IviDanceWithTwistWithMultipleArraysAndOneBufferSizeResponse\x12\x8f\x01\n FunctionWithOverriddenGrpcName2x\x12\x34.nifake_grpc.FunctionWithOverriddenGrpcName2xRequest\x1a\x35.nifake_grpc.FunctionWithOverriddenGrpcName2xResponse\x12\x8c\x01\n\x1fStringValuedEnumNoEnumGenerated\x12\x33.nifake_grpc.StringValuedEnumNoEnumGeneratedRequest\x1a\x34.nifake_grpc.StringValuedEnumNoEnumGeneratedResponse\x12\x98\x01\n#IviDanceWithATwistCalculatedSizeOut\x12\x37.nifake_grpc.IviDanceWithATwistCalculatedSizeOutRequest\x1a\x38.nifake_grpc.IviDanceWithATwistCalculatedSizeOutResponse\x12\x95\x01\n\"ImportAttributeConfigurationBuffer\x12\x36.nifake_grpc.ImportAttributeConfigurationBufferRequest\x1a\x37.nifake_grpc.ImportAttributeConfigurationBufferResponse\x12\x95\x01\n\"ExportAttributeConfigurationBuffer\x12\x36.nifake_grpc.ExportAttributeConfigurationBufferRequest\x1a\x37.nifake_grpc.ExportAttributeConfigurationBufferResponse\x12P\n\x0b\x43ontrol4022\x12\x1f.nifake_grpc.Control4022Request\x1a .nifake_grpc.Control4022Response\x12k\n\x14\x41\x63\x63\x65ptViSessionArray\x12(.nifake_grpc.AcceptViSessionArrayRequest\x1a).nifake_grpc.AcceptViSessionArrayResponse\x12h\n\x13\x41\x63\x63\x65ptViUInt32Array\x12\'.nifake_grpc.AcceptViUInt32ArrayRequest\x1a(.nifake_grpc.AcceptViUInt32ArrayResponse\x12q\n\x16\x42oolArrayInputFunction\x12*.nifake_grpc.BoolArrayInputFunctionRequest\x1a+.nifake_grpc.BoolArrayInputFunctionResponse\x12P\n\x0b\x43loseExtCal\x12\x1f.nifake_grpc.CloseExtCalRequest\x1a .nifake_grpc.CloseExtCalResponse\x12w\n\x18\x43ommandWithReservedParam\x12,.nifake_grpc.CommandWithReservedParamRequest\x1a-.nifake_grpc.CommandWithReservedParamResponse\x12t\n\x17\x43reateConfigurationList\x12+.nifake_grpc.CreateConfigurationListRequest\x1a,.nifake_grpc.CreateConfigurationListResponse\x12\x80\x01\n\x1b\x43ustomNestedStructRoundtrip\x12/.nifake_grpc.CustomNestedStructRoundtripRequest\x1a\x30.nifake_grpc.CustomNestedStructRoundtripResponse\x12q\n\x16GetBitfieldAsEnumArray\x12*.nifake_grpc.GetBitfieldAsEnumArrayRequest\x1a+.nifake_grpc.GetBitfieldAsEnumArrayResponse\x12\xa7\x01\n(GetAnIviDanceWithATwistArrayOfCustomType\x12<.nifake_grpc.GetAnIviDanceWithATwistArrayOfCustomTypeRequest\x1a=.nifake_grpc.GetAnIviDanceWithATwistArrayOfCustomTypeResponse\x12\xad\x01\n*GetAnIviDanceWithATwistArrayWithInputArray\x12>.nifake_grpc.GetAnIviDanceWithATwistArrayWithInputArrayRequest\x1a?.nifake_grpc.GetAnIviDanceWithATwistArrayWithInputArrayResponse\x12\x8f\x01\n GetAnIviDanceWithATwistByteArray\x12\x34.nifake_grpc.GetAnIviDanceWithATwistByteArrayRequest\x1a\x35.nifake_grpc.GetAnIviDanceWithATwistByteArrayResponse\x12\xa1\x01\n&GetAnIviDanceWithATwistStringStrlenBug\x12:.nifake_grpc.GetAnIviDanceWithATwistStringStrlenBugRequest\x1a;.nifake_grpc.GetAnIviDanceWithATwistStringStrlenBugResponse\x12z\n\x19GetArraySizeForCustomCode\x12-.nifake_grpc.GetArraySizeForCustomCodeRequest\x1a..nifake_grpc.GetArraySizeForCustomCodeResponse\x12t\n\x17GetArrayViUInt8WithEnum\x12+.nifake_grpc.GetArrayViUInt8WithEnumRequest\x1a,.nifake_grpc.GetArrayViUInt8WithEnumResponse\x12M\n\nGetViUInt8\x12\x1e.nifake_grpc.GetViUInt8Request\x1a\x1f.nifake_grpc.GetViUInt8Response\x12\\\n\x0fGetViInt32Array\x12#.nifake_grpc.GetViInt32ArrayRequest\x1a$.nifake_grpc.GetViInt32ArrayResponse\x12_\n\x10GetViUInt32Array\x12$.nifake_grpc.GetViUInt32ArrayRequest\x1a%.nifake_grpc.GetViUInt32ArrayResponse\x12\x92\x01\n!MethodUsingEnumWithGrpcNameValues\x12\x35.nifake_grpc.MethodUsingEnumWithGrpcNameValuesRequest\x1a\x36.nifake_grpc.MethodUsingEnumWithGrpcNameValuesResponse\x12\x80\x01\n\x1bMethodWithGetLastErrorParam\x12/.nifake_grpc.MethodWithGetLastErrorParamRequest\x1a\x30.nifake_grpc.MethodWithGetLastErrorParamResponse\x12t\n\x17MethodWithGrpcOnlyParam\x12+.nifake_grpc.MethodWithGrpcOnlyParamRequest\x1a,.nifake_grpc.MethodWithGrpcOnlyParamResponse\x12\x9b\x01\n$MethodUsingWholeAndFractionalNumbers\x12\x38.nifake_grpc.MethodUsingWholeAndFractionalNumbersRequest\x1a\x39.nifake_grpc.MethodUsingWholeAndFractionalNumbersResponse\x12\x86\x01\n\x1dMethodUsingWholeMappedNumbers\x12\x31.nifake_grpc.MethodUsingWholeMappedNumbersRequest\x1a\x32.nifake_grpc.MethodUsingWholeMappedNumbersResponse\x12z\n\x19MethodWithGrpcFieldNumber\x12-.nifake_grpc.MethodWithGrpcFieldNumberRequest\x1a..nifake_grpc.MethodWithGrpcFieldNumberResponse\x12\x83\x01\n\x1cMethodWithProtoOnlyParameter\x12\x30.nifake_grpc.MethodWithProtoOnlyParameterRequest\x1a\x31.nifake_grpc.MethodWithProtoOnlyParameterResponse\x12z\n\x19ReadDataWithInOutIviTwist\x12-.nifake_grpc.ReadDataWithInOutIviTwistRequest\x1a..nifake_grpc.ReadDataWithInOutIviTwistResponse\x12\x9e\x01\n%ReadDataWithMultipleIviTwistParamSets\x12\x39.nifake_grpc.ReadDataWithMultipleIviTwistParamSetsRequest\x1a:.nifake_grpc.ReadDataWithMultipleIviTwistParamSetsResponse\x12M\n\nInitExtCal\x12\x1e.nifake_grpc.InitExtCalRequest\x1a\x1f.nifake_grpc.InitExtCalResponse\x12\\\n\x0fInitWithVarArgs\x12#.nifake_grpc.InitWithVarArgsRequest\x1a$.nifake_grpc.InitWithVarArgsResponse\x12\x95\x01\n\"MultipleArraysSameSizeWithOptional\x12\x36.nifake_grpc.MultipleArraysSameSizeWithOptionalRequest\x1a\x37.nifake_grpc.MultipleArraysSameSizeWithOptionalResponse\x12z\n\x19UseATwoDimensionParameter\x12-.nifake_grpc.UseATwoDimensionParameterRequest\x1a..nifake_grpc.UseATwoDimensionParameterResponse\x12z\n\x19ViUInt8ArrayInputFunction\x12-.nifake_grpc.ViUInt8ArrayInputFunctionRequest\x1a..nifake_grpc.ViUInt8ArrayInputFunctionResponse\x12}\n\x1aViUInt8ArrayOutputFunction\x12..nifake_grpc.ViUInt8ArrayOutputFunctionRequest\x1a/.nifake_grpc.ViUInt8ArrayOutputFunctionResponse\x12z\n\x19ViInt16ArrayInputFunction\x12-.nifake_grpc.ViInt16ArrayInputFunctionRequest\x1a..nifake_grpc.ViInt16ArrayInputFunctionResponseB<\n\x10\x63om.ni.grpc.fakeB\x06NiFakeP\x01\xaa\x02\x1dNationalInstruments.Grpc.Fakeb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cnifake.proto\x12\x0bnifake_grpc\x1a\rsession.proto\"=\n\x10\x46\x61keCustomStruct\x12\x12\n\nstruct_int\x18\x01 \x01(\x11\x12\x15\n\rstruct_double\x18\x02 \x01(\x01\"\xa0\x01\n\x19\x43ustomStructNestedTypedef\x12;\n\x14struct_custom_struct\x18\x01 \x01(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\x12\x46\n\x1cstruct_custom_struct_typedef\x18\x02 \x01(\x0b\x32 .nifake_grpc.CustomStructTypedef\"@\n\x13\x43ustomStructTypedef\x12\x12\n\nstruct_int\x18\x01 \x01(\x11\x12\x15\n\rstruct_double\x18\x02 \x01(\x01\"6\n\x13NIComplexI16_struct\x12\x0c\n\x04real\x18\x01 \x01(\x11\x12\x11\n\timaginary\x18\x02 \x01(\x11\"9\n\x16NIComplexNumber_struct\x12\x0c\n\x04real\x18\x01 \x01(\x01\x12\x11\n\timaginary\x18\x02 \x01(\x01\"<\n\x19NIComplexNumberF32_struct\x12\x0c\n\x04real\x18\x01 \x01(\x02\x12\x11\n\timaginary\x18\x02 \x01(\x02\"J\n\x0fStringAndTurtle\x12\x12\n\nstring_arg\x18\x01 \x01(\t\x12#\n\x06turtle\x18\x02 \x01(\x0e\x32\x13.nifake_grpc.Turtle\"%\n\x0f\x43ustomNamedType\x12\x12\n\nstring_arg\x18\x01 \x01(\t\"2\n\x0c\x41\x62ortRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x1f\n\rAbortResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"`\n\x1e\x42oolArrayOutputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\"C\n\x1f\x42oolArrayOutputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08\x61n_array\x18\x02 \x03(\x08\"2\n\x0c\x43loseRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x1f\n\rCloseResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"`\n\x1e\x45numArrayOutputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\"n\n\x1f\x45numArrayOutputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12%\n\x08\x61n_array\x18\x02 \x03(\x0e\x32\x13.nifake_grpc.Turtle\x12\x14\n\x0c\x61n_array_raw\x18\x03 \x03(\x11\"\x9c\x01\n$EnumInputFunctionWithDefaultsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\'\n\x08\x61_turtle\x18\x02 \x01(\x0e\x32\x13.nifake_grpc.TurtleH\x00\x12\x16\n\x0c\x61_turtle_raw\x18\x03 \x01(\x11H\x00\x42\x0f\n\ra_turtle_enum\"7\n%EnumInputFunctionWithDefaultsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xce\x01\n0StringValuedEnumInputFunctionWithDefaultsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12=\n\x17\x61_mobile_os_name_mapped\x18\x02 \x01(\x0e\x32\x1a.nifake_grpc.MobileOSNamesH\x00\x12\x1e\n\x14\x61_mobile_os_name_raw\x18\x03 \x01(\tH\x00\x42\x17\n\x15\x61_mobile_os_name_enum\"C\n1StringValuedEnumInputFunctionWithDefaultsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"M\n\x13\x45rrorMessageRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x12\n\nerror_code\x18\x02 \x01(\x11\"=\n\x14\x45rrorMessageResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\rerror_message\x18\x02 \x01(\t\"U\n\x14\x46\x65tchWaveformRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x19\n\x11number_of_samples\x18\x02 \x01(\x11\"`\n\x15\x46\x65tchWaveformResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\rwaveform_data\x18\x02 \x03(\x01\x12 \n\x18\x61\x63tual_number_of_samples\x18\x03 \x01(\x11\"8\n\x12GetABooleanRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"8\n\x13GetABooleanResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\ta_boolean\x18\x02 \x01(\x08\"7\n\x11GetANumberRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"6\n\x12GetANumberResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08\x61_number\x18\x02 \x01(\x11\"I\n#GetAStringOfFixedMaximumSizeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"H\n$GetAStringOfFixedMaximumSizeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08\x61_string\x18\x02 \x01(\t\"C\n\x1dGetAnIviDanceCharArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"D\n\x1eGetAnIviDanceCharArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x12\n\nchar_array\x18\x02 \x01(\t\"B\n\x1cGetArrayUsingIviDanceRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"B\n\x1dGetArrayUsingIviDanceResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tarray_out\x18\x02 \x03(\x01\"\x8c\x01\n\x1cGetAttributeViBooleanRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"H\n\x1dGetAttributeViBooleanResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x17\n\x0f\x61ttribute_value\x18\x02 \x01(\x08\"\x8a\x01\n\x1aGetAttributeViInt32Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"F\n\x1bGetAttributeViInt32Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x17\n\x0f\x61ttribute_value\x18\x02 \x01(\x11\"\x8a\x01\n\x1aGetAttributeViInt64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"F\n\x1bGetAttributeViInt64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x17\n\x0f\x61ttribute_value\x18\x02 \x01(\x03\"\x8b\x01\n\x1bGetAttributeViReal64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"G\n\x1cGetAttributeViReal64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x17\n\x0f\x61ttribute_value\x18\x02 \x01(\x01\"\x8c\x01\n\x1cGetAttributeViSessionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"`\n\x1dGetAttributeViSessionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12/\n\x0f\x61ttribute_value\x18\x02 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x8b\x01\n\x1bGetAttributeViStringRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"G\n\x1cGetAttributeViStringResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x17\n\x0f\x61ttribute_value\x18\x02 \x01(\t\"P\n\x18GetCalDateAndTimeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x10\n\x08\x63\x61l_type\x18\x02 \x01(\x11\"s\n\x19GetCalDateAndTimeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\r\n\x05month\x18\x02 \x01(\x11\x12\x0b\n\x03\x64\x61y\x18\x03 \x01(\x11\x12\x0c\n\x04year\x18\x04 \x01(\x11\x12\x0c\n\x04hour\x18\x05 \x01(\x11\x12\x0e\n\x06minute\x18\x06 \x01(\x11\";\n\x15GetCalIntervalRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"8\n\x16GetCalIntervalResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0e\n\x06months\x18\x02 \x01(\x11\"9\n\x13GetEnumValueRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"w\n\x14GetEnumValueResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x12\n\na_quantity\x18\x02 \x01(\x11\x12%\n\x08\x61_turtle\x18\x03 \x01(\x0e\x32\x13.nifake_grpc.Turtle\x12\x14\n\x0c\x61_turtle_raw\x18\x04 \x01(\x11\"5\n\x0fGetErrorRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"K\n\x10GetErrorResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x12\n\nerror_code\x18\x02 \x01(\x11\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\"\xd3\x01\n\x16InitWithOptionsRequest\x12\x14\n\x0csession_name\x18\x01 \x01(\t\x12\x15\n\rresource_name\x18\x02 \x01(\t\x12\x10\n\x08id_query\x18\x03 \x01(\x08\x12\x14\n\x0creset_device\x18\x04 \x01(\x08\x12\x15\n\roption_string\x18\x05 \x01(\t\x12M\n\x17initialization_behavior\x18\x06 \x01(\x0e\x32,.nidevice_grpc.SessionInitializationBehavior\"n\n\x17InitWithOptionsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\"\n\x02vi\x18\x02 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1f\n\x17new_session_initialized\x18\x03 \x01(\x08\"\x9a\x01\n\x19MultipleArrayTypesRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x19\n\x11output_array_size\x18\x02 \x01(\x11\x12\x1d\n\x15input_array_of_floats\x18\x03 \x03(\x01\x12\x1f\n\x17input_array_of_integers\x18\x04 \x03(\x11\"h\n\x1aMultipleArrayTypesResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x14\n\x0coutput_array\x18\x02 \x03(\x01\x12$\n\x1coutput_array_of_fixed_length\x18\x03 \x03(\x01\"\x87\x01\n\x1dMultipleArraysSameSizeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0f\n\x07values1\x18\x02 \x03(\x01\x12\x0f\n\x07values2\x18\x03 \x03(\x01\x12\x0f\n\x07values3\x18\x04 \x03(\x01\x12\x0f\n\x07values4\x18\x05 \x03(\x01\"0\n\x1eMultipleArraysSameSizeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"r\n\"MultipleArraysDifferentSizeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0cvalues_array\x18\x02 \x03(\x01\x12\x12\n\ndata_array\x18\x03 \x03(\x11\"5\n#MultipleArraysDifferentSizeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"_\n#MixedIviDanceAndLenMechanismRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0cinput_values\x18\x02 \x03(\x01\"L\n$MixedIviDanceAndLenMechanismResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x14\n\x0coutput_array\x18\x02 \x03(\x11\"O\n\x17OneInputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x10\n\x08\x61_number\x18\x02 \x01(\x11\"*\n\x18OneInputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xe4\x02\n!ParametersAreMultipleTypesRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x11\n\ta_boolean\x18\x02 \x01(\x08\x12\x10\n\x08\x61n_int32\x18\x03 \x01(\x11\x12\x10\n\x08\x61n_int64\x18\x04 \x01(\x03\x12*\n\x0b\x61n_int_enum\x18\x05 \x01(\x0e\x32\x13.nifake_grpc.TurtleH\x00\x12\x19\n\x0f\x61n_int_enum_raw\x18\x06 \x01(\x11H\x00\x12\x0f\n\x07\x61_float\x18\x07 \x01(\x01\x12\x35\n\x13\x61_float_enum_mapped\x18\x08 \x01(\x0e\x32\x16.nifake_grpc.FloatEnumH\x01\x12\x1a\n\x10\x61_float_enum_raw\x18\t \x01(\x01H\x01\x12\x10\n\x08\x61_string\x18\n \x01(\tB\x12\n\x10\x61n_int_enum_enumB\x13\n\x11\x61_float_enum_enum\"4\n\"ParametersAreMultipleTypesResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"F\n PoorlyNamedSimpleFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"3\n!PoorlyNamedSimpleFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"G\n\x0bReadRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0cmaximum_time\x18\x02 \x01(\x01\"/\n\x0cReadResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0f\n\x07reading\x18\x02 \x01(\x01\"h\n\x16ReadFromChannelRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x14\n\x0cmaximum_time\x18\x03 \x01(\x11\":\n\x17ReadFromChannelResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0f\n\x07reading\x18\x02 \x01(\x01\"D\n\x1eReturnANumberAndAStringRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"U\n\x1fReturnANumberAndAStringResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08\x61_number\x18\x02 \x01(\x11\x12\x10\n\x08\x61_string\x18\x03 \x01(\t\"T\n\x1aReturnMultipleTypesRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x12\n\narray_size\x18\x02 \x01(\x11\"\xab\x02\n\x1bReturnMultipleTypesResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\ta_boolean\x18\x02 \x01(\x08\x12\x10\n\x08\x61n_int32\x18\x03 \x01(\x11\x12\x10\n\x08\x61n_int64\x18\x04 \x01(\x03\x12(\n\x0b\x61n_int_enum\x18\x05 \x01(\x0e\x32\x13.nifake_grpc.Turtle\x12\x17\n\x0f\x61n_int_enum_raw\x18\x06 \x01(\x11\x12\x0f\n\x07\x61_float\x18\x07 \x01(\x01\x12\x33\n\x13\x61_float_enum_mapped\x18\x08 \x01(\x0e\x32\x16.nifake_grpc.FloatEnum\x12\x18\n\x10\x61_float_enum_raw\x18\t \x01(\x01\x12\x10\n\x08\x61n_array\x18\n \x03(\x01\x12\x10\n\x08\x61_string\x18\x0b \x01(\t\"\xa5\x01\n\x1cSetAttributeViBooleanRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\x12\x17\n\x0f\x61ttribute_value\x18\x04 \x01(\x08\"/\n\x1dSetAttributeViBooleanResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x85\x02\n\x1aSetAttributeViInt32Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\x12\x42\n\x0f\x61ttribute_value\x18\x04 \x01(\x0e\x32\'.nifake_grpc.NiFakeInt32AttributeValuesH\x00\x12\x1d\n\x13\x61ttribute_value_raw\x18\x05 \x01(\x11H\x00\x42\x16\n\x14\x61ttribute_value_enum\"-\n\x1bSetAttributeViInt32Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xa7\x01\n\x1aSetAttributeViInt64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\x12\x1b\n\x13\x61ttribute_value_raw\x18\x04 \x01(\x03\"-\n\x1bSetAttributeViInt64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xd9\x02\n\x1bSetAttributeViReal64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\x12\x43\n\x0f\x61ttribute_value\x18\x04 \x01(\x0e\x32(.nifake_grpc.NiFakeReal64AttributeValuesH\x00\x12P\n\x16\x61ttribute_value_mapped\x18\x05 \x01(\x0e\x32..nifake_grpc.NiFakeReal64AttributeValuesMappedH\x00\x12\x1d\n\x13\x61ttribute_value_raw\x18\x06 \x01(\x01H\x00\x42\x16\n\x14\x61ttribute_value_enum\".\n\x1cSetAttributeViReal64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xa8\x01\n\x1bSetAttributeViStringRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x14\n\x0c\x63hannel_name\x18\x02 \x01(\t\x12\x32\n\x0c\x61ttribute_id\x18\x03 \x01(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\x12\x1b\n\x13\x61ttribute_value_raw\x18\x04 \x01(\t\".\n\x1cSetAttributeViStringResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"a\n\x17TwoInputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x10\n\x08\x61_number\x18\x02 \x01(\x01\x12\x10\n\x08\x61_string\x18\x03 \x01(\t\"*\n\x18TwoInputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"J\n\x15Use64BitNumberRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\r\n\x05input\x18\x02 \x01(\x03\"8\n\x16Use64BitNumberResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0e\n\x06output\x18\x02 \x01(\x03\"L\n\x14WriteWaveformRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x10\n\x08waveform\x18\x02 \x03(\x01\"\'\n\x15WriteWaveformResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x8b\x01\n#WriteWaveformNumpyComplex128Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12@\n\x13waveform_data_array\x18\x02 \x03(\x0b\x32#.nifake_grpc.NIComplexNumber_struct\"6\n$WriteWaveformNumpyComplex128Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x8d\x01\n\"WriteWaveformNumpyComplex64Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x43\n\x13waveform_data_array\x18\x02 \x03(\x0b\x32&.nifake_grpc.NIComplexNumberF32_struct\"5\n#WriteWaveformNumpyComplex64Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x93\x01\n.WriteWaveformNumpyComplexInterleavedI16Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12=\n\x13waveform_data_array\x18\x02 \x03(\x0b\x32 .nifake_grpc.NIComplexI16_struct\"A\n/WriteWaveformNumpyComplexInterleavedI16Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"e\n\x14SetCustomTypeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12)\n\x02\x63s\x18\x02 \x01(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\"\'\n\x15SetCustomTypeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"j\n\x19SetCustomTypeArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12)\n\x02\x63s\x18\x02 \x03(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\",\n\x1aSetCustomTypeArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\":\n\x14GetCustomTypeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"R\n\x15GetCustomTypeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12)\n\x02\x63s\x18\x02 \x01(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\"[\n\x19GetCustomTypeArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\"W\n\x1aGetCustomTypeArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12)\n\x02\x63s\x18\x02 \x03(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\"[\n#GetAnIviDanceWithATwistArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x10\n\x08\x61_string\x18\x02 \x01(\t\"^\n$GetAnIviDanceWithATwistArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tarray_out\x18\x02 \x03(\x11\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\"J\n$GetAnIviDanceWithATwistStringRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"^\n%GetAnIviDanceWithATwistStringResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08\x61_string\x18\x02 \x01(\t\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\"N\n\x17\x44oubleAllTheNumsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0f\n\x07numbers\x18\x02 \x03(\x01\"*\n\x18\x44oubleAllTheNumsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"[\n%AcceptListOfDurationsInSecondsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0e\n\x06\x64\x65lays\x18\x02 \x03(\x01\"8\n&AcceptListOfDurationsInSecondsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"D\n\x1eReturnDurationInSecondsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"D\n\x1fReturnDurationInSecondsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\ttimedelta\x18\x02 \x01(\x01\"g\n%ReturnListOfDurationsInSecondsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\"L\n&ReturnListOfDurationsInSecondsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x12\n\ntimedeltas\x18\x02 \x03(\x01\"9\n\x13\x43onfigureAbcRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"&\n\x14\x43onfigureAbcResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\x8d\x02\n\x15\x43onfigureEnumsRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x30\n\x0csample_count\x18\x02 \x01(\x0e\x32\x18.nifake_grpc.SampleCountH\x00\x12\x1a\n\x10sample_count_raw\x18\x03 \x01(\x11H\x00\x12\x36\n\x0fsample_interval\x18\x04 \x01(\x0e\x32\x1b.nifake_grpc.SampleIntervalH\x01\x12\x1d\n\x13sample_interval_raw\x18\x05 \x01(\x01H\x01\x42\x13\n\x11sample_count_enumB\x16\n\x14sample_interval_enum\"(\n\x16\x43onfigureEnumsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"Q\n+ExportAttributeConfigurationBufferExRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"U\n,ExportAttributeConfigurationBufferExResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\rconfiguration\x18\x02 \x01(\x0c\"h\n+ImportAttributeConfigurationBufferExRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rconfiguration\x18\x02 \x01(\x0c\">\n,ImportAttributeConfigurationBufferExResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"x\n\x1a\x46\x65tchWithCustomSizeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1b\n\x13number_of_waveforms\x18\x02 \x01(\x11\x12\x19\n\x11number_of_samples\x18\x03 \x01(\x11\"D\n\x1b\x46\x65tchWithCustomSizeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\rwaveform_data\x18\x02 \x03(\x01\"\xbf\x01\n)GetParameterWithOverriddenGrpcNameRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x31\n\x12\x65num_parameter_raw\x18\x02 \x01(\x0e\x32\x13.nifake_grpc.TurtleH\x00\x12 \n\x16\x65num_parameter_raw_raw\x18\x03 \x01(\x11H\x00\x42\x19\n\x17\x65num_parameter_raw_enum\"Z\n*GetParameterWithOverriddenGrpcNameResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x1c\n\x14overridden_parameter\x18\x02 \x01(\x11\"`\n:IviDanceWithTwistWithMultipleArraysAndOneBufferSizeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x9a\x01\n;IviDanceWithTwistWithMultipleArraysAndOneBufferSizeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0e\n\x06\x61rray1\x18\x02 \x03(\x11\x12\x0e\n\x06\x61rray2\x18\x03 \x03(\x11\x12\x0e\n\x06\x61rray3\x18\x04 \x03(\x11\x12\x1b\n\x13\x61\x63tual_num_elements\x18\x05 \x01(\x11\"M\n\'FunctionWithOverriddenGrpcName2xRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\":\n(FunctionWithOverriddenGrpcName2xResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xa9\x01\n>FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x43\n\x16multidimensional_array\x18\x02 \x03(\x0b\x32#.nifake_grpc.NIComplexNumber_struct\"Q\n?FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"c\n&StringValuedEnumNoEnumGeneratedRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\ra_string_enum\x18\x02 \x01(\t\"9\n\'StringValuedEnumNoEnumGeneratedResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"P\n*IviDanceWithATwistCalculatedSizeOutRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x8e\x01\n+IviDanceWithATwistCalculatedSizeOutResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x02 \x03(\r\x12\x1c\n\x14\x61\x63tual_num_waveforms\x18\x03 \x01(\x11\x12#\n\x1b\x61\x63tual_samples_per_waveform\x18\x04 \x01(\x11\"f\n)ImportAttributeConfigurationBufferRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rconfiguration\x18\x02 \x01(\x0c\"<\n*ImportAttributeConfigurationBufferResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"O\n)ExportAttributeConfigurationBufferRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"S\n*ExportAttributeConfigurationBufferResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\rconfiguration\x18\x02 \x01(\x0c\"B\n\x12\x43ontrol4022Request\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x15\n\rconfiguration\x18\x02 \x01(\x11\"%\n\x13\x43ontrol4022Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\"c\n\x1b\x41\x63\x63\x65ptViSessionArrayRequest\x12\x15\n\rsession_count\x18\x01 \x01(\r\x12-\n\rsession_array\x18\x02 \x03(\x0b\x32\x16.nidevice_grpc.Session\".\n\x1c\x41\x63\x63\x65ptViSessionArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"W\n\x1a\x41\x63\x63\x65ptViUInt32ArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\ru_int32_array\x18\x02 \x03(\r\"-\n\x1b\x41\x63\x63\x65ptViUInt32ArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"q\n\x1d\x42oolArrayInputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\x12\x10\n\x08\x61n_array\x18\x03 \x03(\x08\"0\n\x1e\x42oolArrayInputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"H\n\x12\x43loseExtCalRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\x11\"%\n\x13\x43loseExtCalResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"E\n\x1f\x43ommandWithReservedParamRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"2\n CommandWithReservedParamResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"Z\n\x1e\x43reateConfigurationListRequest\x12\x38\n\x12list_attribute_ids\x18\x01 \x03(\x0e\x32\x1c.nifake_grpc.NiFakeAttribute\"1\n\x1f\x43reateConfigurationListResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"k\n\"CustomNestedStructRoundtripRequest\x12\x45\n\x15nested_custom_type_in\x18\x01 \x01(\x0b\x32&.nifake_grpc.CustomStructNestedTypedef\"}\n#CustomNestedStructRoundtripResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x46\n\x16nested_custom_type_out\x18\x02 \x01(\x0b\x32&.nifake_grpc.CustomStructNestedTypedef\"\x1f\n\x1dGetBitfieldAsEnumArrayRequest\"o\n\x1eGetBitfieldAsEnumArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12*\n\x0b\x66lags_array\x18\x02 \x03(\x0e\x32\x15.nifake_grpc.Bitfield\x12\x11\n\tflags_raw\x18\x03 \x01(\x03\"U\n/GetAnIviDanceWithATwistArrayOfCustomTypeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\x89\x01\n0GetAnIviDanceWithATwistArrayOfCustomTypeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x30\n\tarray_out\x18\x02 \x03(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\"D\n1GetAnIviDanceWithATwistArrayWithInputArrayRequest\x12\x0f\n\x07\x64\x61ta_in\x18\x01 \x03(\x11\"l\n2GetAnIviDanceWithATwistArrayWithInputArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tarray_out\x18\x02 \x03(\x11\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\")\n\'GetAnIviDanceWithATwistByteArrayRequest\"b\n(GetAnIviDanceWithATwistByteArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tarray_out\x18\x02 \x01(\x0c\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\"/\n-GetAnIviDanceWithATwistStringStrlenBugRequest\"i\n.GetAnIviDanceWithATwistStringStrlenBugResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x12\n\nstring_out\x18\x02 \x01(\t\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\"F\n GetArraySizeForCustomCodeRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"E\n!GetArraySizeForCustomCodeResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08size_out\x18\x02 \x01(\x11\"W\n\x1eGetArrayViUInt8WithEnumRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x11\n\tarray_len\x18\x02 \x01(\x11\"\x8b\x01\n\x1fGetArrayViUInt8WithEnumResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x39\n\x11u_int8_enum_array\x18\x02 \x03(\x0e\x32\x1e.nifake_grpc.GrpcColorOverride\x12\x1d\n\x15u_int8_enum_array_raw\x18\x03 \x01(\x0c\"7\n\x11GetViUInt8Request\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\"<\n\x12GetViUInt8Response\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x16\n\x0e\x61_uint8_number\x18\x02 \x01(\r\"O\n\x16GetViInt32ArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x11\n\tarray_len\x18\x02 \x01(\x11\">\n\x17GetViInt32ArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x13\n\x0bint32_array\x18\x02 \x03(\x11\"P\n\x17GetViUInt32ArrayRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x11\n\tarray_len\x18\x02 \x01(\x11\"A\n\x18GetViUInt32ArrayResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x15\n\ru_int32_array\x18\x02 \x03(\r\"\x92\x01\n(MethodUsingEnumWithGrpcNameValuesRequest\x12\x39\n\nusing_enum\x18\x01 \x01(\x0e\x32#.nifake_grpc.EnumWithGrpcNameValuesH\x00\x12\x18\n\x0eusing_enum_raw\x18\x02 \x01(\x11H\x00\x42\x11\n\x0fusing_enum_enum\";\n)MethodUsingEnumWithGrpcNameValuesResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"$\n\"MethodWithGetLastErrorParamRequest\"M\n#MethodWithGetLastErrorParamResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x16\n\nlast_error\x18\x02 \x01(\tB\x02\x18\x01\"6\n\x1eMethodWithGrpcOnlyParamRequest\x12\x14\n\x0csimple_param\x18\x01 \x01(\x11\"J\n\x1fMethodWithGrpcOnlyParamResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x17\n\x0fgrpc_only_param\x18\x02 \x01(\x11\"-\n+MethodUsingWholeAndFractionalNumbersRequest\"\xf1\x01\n,MethodUsingWholeAndFractionalNumbersResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x35\n\x0cwhole_number\x18\x02 \x01(\x0e\x32\x1f.nifake_grpc.DecimalWholeNumber\x12\x18\n\x10whole_number_raw\x18\x03 \x01(\x11\x12\x41\n\x18\x66ractional_number_mapped\x18\x04 \x01(\x0e\x32\x1f.nifake_grpc.DecimalMixedNumber\x12\x1d\n\x15\x66ractional_number_raw\x18\x05 \x01(\x01\"&\n$MethodUsingWholeMappedNumbersRequest\"\x95\x01\n%MethodUsingWholeMappedNumbersResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x42\n\x13whole_number_mapped\x18\x02 \x01(\x0e\x32%.nifake_grpc.DecimalWholeNumberMapped\x12\x18\n\x10whole_number_raw\x18\x03 \x01(\x01\";\n MethodWithGrpcFieldNumberRequest\x12\x17\n\x0f\x61ttribute_value\x18\x05 \x01(\x11\"3\n!MethodWithGrpcFieldNumberResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\">\n#MethodWithProtoOnlyParameterRequest\x12\x17\n\x0f\x61ttribute_value\x18\x01 \x01(\x11\"6\n$MethodWithProtoOnlyParameterResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\"\n ReadDataWithInOutIviTwistRequest\"V\n!ReadDataWithInOutIviTwistResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x02 \x03(\x11\x12\x13\n\x0b\x62uffer_size\x18\x03 \x01(\x11\".\n,ReadDataWithMultipleIviTwistParamSetsRequest\"\x9b\x01\n-ReadDataWithMultipleIviTwistParamSetsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tarray_out\x18\x02 \x03(\x11\x12\x13\n\x0b\x61\x63tual_size\x18\x03 \x01(\x11\x12\x17\n\x0fother_array_out\x18\x04 \x03(\x11\x12\x19\n\x11other_actual_size\x18\x05 \x01(\x11\"^\n\x11InitExtCalRequest\x12\x14\n\x0csession_name\x18\x01 \x01(\t\x12\x15\n\rresource_name\x18\x02 \x01(\t\x12\x1c\n\x14\x63\x61libration_password\x18\x03 \x01(\t\"H\n\x12InitExtCalResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\"\n\x02vi\x18\x02 \x01(\x0b\x32\x16.nidevice_grpc.Session\"|\n\x16InitWithVarArgsRequest\x12\x14\n\x0csession_name\x18\x01 \x01(\t\x12\x15\n\rresource_name\x18\x02 \x01(\t\x12\x35\n\x0fname_and_turtle\x18\x03 \x03(\x0b\x32\x1c.nifake_grpc.StringAndTurtle\"M\n\x17InitWithVarArgsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\"\n\x02vi\x18\x02 \x01(\x0b\x32\x16.nidevice_grpc.Session\"\xc3\x01\n)MultipleArraysSameSizeWithOptionalRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x0f\n\x07values1\x18\x02 \x03(\x01\x12\x0f\n\x07values2\x18\x03 \x03(\x01\x12\x0f\n\x07values3\x18\x04 \x03(\x01\x12\x0f\n\x07values4\x18\x05 \x03(\x01\x12.\n\x07values5\x18\x06 \x03(\x0b\x32\x1d.nifake_grpc.FakeCustomStruct\"<\n*MultipleArraysSameSizeWithOptionalResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"l\n UseATwoDimensionParameterRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\r\n\x05\x61rray\x18\x02 \x03(\x11\x12\x15\n\rarray_lengths\x18\x03 \x03(\x11\"3\n!UseATwoDimensionParameterResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"t\n ViUInt8ArrayInputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\x12\x10\n\x08\x61n_array\x18\x03 \x01(\x0c\"3\n!ViUInt8ArrayInputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\"c\n!ViUInt8ArrayOutputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x1a\n\x12number_of_elements\x18\x02 \x01(\x11\"F\n\"ViUInt8ArrayOutputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x10\n\x08\x61n_array\x18\x02 \x01(\x0c\"X\n ViInt16ArrayInputFunctionRequest\x12\"\n\x02vi\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x10\n\x08\x61n_array\x18\x02 \x03(\x11\"3\n!ViInt16ArrayInputFunctionResponse\x12\x0e\n\x06status\x18\x01 \x01(\x05*\x9e\x05\n\x0fNiFakeAttribute\x12 \n\x1cNIFAKE_ATTRIBUTE_UNSPECIFIED\x10\x00\x12&\n NIFAKE_ATTRIBUTE_READ_WRITE_BOOL\x10\xc0\x84=\x12(\n\"NIFAKE_ATTRIBUTE_READ_WRITE_DOUBLE\x10\xc1\x84=\x12(\n\"NIFAKE_ATTRIBUTE_READ_WRITE_STRING\x10\xc2\x84=\x12\'\n!NIFAKE_ATTRIBUTE_READ_WRITE_COLOR\x10\xc3\x84=\x12)\n#NIFAKE_ATTRIBUTE_READ_WRITE_INTEGER\x10\xc4\x84=\x12/\n)NIFAKE_ATTRIBUTE_FLOAT_ENUM_NAME_OVERRIDE\x10\xc5\x84=\x12\'\n!NIFAKE_ATTRIBUTE_READ_WRITE_INT64\x10\xc6\x84=\x12\x37\n1NIFAKE_ATTRIBUTE_READ_WRITE_DOUBLE_WITH_CONVERTER\x10\xc7\x84=\x12\x38\n2NIFAKE_ATTRIBUTE_READ_WRITE_INTEGER_WITH_CONVERTER\x10\xc8\x84=\x12\x41\n;NIFAKE_ATTRIBUTE_READ_WRITE_DOUBLE_WITH_REPEATED_CAPABILITY\x10\xc9\x84=\x12<\n6NIFAKE_ATTRIBUTE_READ_WRITE_STRING_REPEATED_CAPABILITY\x10\xca\x84=\x12#\n\x1dNIFAKE_ATTRIBUTE_SAMPLE_COUNT\x10\xcc\x84=\x12&\n NIFAKE_ATTRIBUTE_SAMPLE_INTERVAL\x10\xcd\x84=*\xb2\x01\n\x11GrpcColorOverride\x12#\n\x1fGRPC_COLOR_OVERRIDE_UNSPECIFIED\x10\x00\x12\x1b\n\x17GRPC_COLOR_OVERRIDE_RED\x10\x01\x12\x1c\n\x18GRPC_COLOR_OVERRIDE_BLUE\x10\x02\x12\x1e\n\x1aGRPC_COLOR_OVERRIDE_YELLOW\x10\x05\x12\x1d\n\x19GRPC_COLOR_OVERRIDE_BLACK\x10**\xc8\x01\n\tFloatEnum\x12\x1a\n\x16\x46LOAT_ENUM_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x46LOAT_ENUM_THREE_POINT_FIVE\x10\x01\x12\x1e\n\x1a\x46LOAT_ENUM_FOUR_POINT_FIVE\x10\x02\x12\x1e\n\x1a\x46LOAT_ENUM_FIVE_POINT_FIVE\x10\x03\x12\x1d\n\x19\x46LOAT_ENUM_SIX_POINT_FIVE\x10\x04\x12\x1f\n\x1b\x46LOAT_ENUM_SEVEN_POINT_FIVE\x10\x05*`\n\x06Turtle\x12\x13\n\x0fTURTLE_LEONARDO\x10\x00\x12\x14\n\x10TURTLE_DONATELLO\x10\x01\x12\x12\n\x0eTURTLE_RAPHAEL\x10\x02\x12\x17\n\x13TURTLE_MICHELANGELO\x10\x03*\x80\x01\n\rMobileOSNames\x12\x1f\n\x1bMOBILE_OS_NAMES_UNSPECIFIED\x10\x00\x12\x1b\n\x17MOBILE_OS_NAMES_ANDROID\x10\x01\x12\x17\n\x13MOBILE_OS_NAMES_IOS\x10\x02\x12\x18\n\x14MOBILE_OS_NAMES_NONE\x10\x03*x\n\x08\x42itfield\x12\x18\n\x14\x42ITFIELD_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x42ITFIELD_FLAG_A\x10\x01\x12\x13\n\x0f\x42ITFIELD_FLAG_B\x10\x02\x12\x13\n\x0f\x42ITFIELD_FLAG_C\x10\x04\x12\x13\n\x0f\x42ITFIELD_FLAG_D\x10\x08*\x88\x01\n\x12\x44\x65\x63imalWholeNumber\x12\x1d\n\x19\x44\x45\x43IMAL_WHOLE_NUMBER_ZERO\x10\x00\x12.\n!DECIMAL_WHOLE_NUMBER_NEGATIVE_ONE\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12#\n\x1f\x44\x45\x43IMAL_WHOLE_NUMBER_TWENTY_TWO\x10\x16*\xc7\x01\n\x18\x44\x65\x63imalWholeNumberMapped\x12+\n\'DECIMAL_WHOLE_NUMBER_MAPPED_UNSPECIFIED\x10\x00\x12$\n DECIMAL_WHOLE_NUMBER_MAPPED_ZERO\x10\x01\x12,\n(DECIMAL_WHOLE_NUMBER_MAPPED_NEGATIVE_ONE\x10\x02\x12*\n&DECIMAL_WHOLE_NUMBER_MAPPED_TWENTY_TWO\x10\x03*\xd7\x02\n\x12\x44\x65\x63imalMixedNumber\x12$\n DECIMAL_MIXED_NUMBER_UNSPECIFIED\x10\x00\x12#\n\x1f\x44\x45\x43IMAL_MIXED_NUMBER_TWENTY_TWO\x10\x01\x12&\n\"DECIMAL_MIXED_NUMBER_TWO_POINT_TWO\x10\x02\x12\'\n#DECIMAL_MIXED_NUMBER_NEGATIVE_THREE\x10\x03\x12#\n\x1f\x44\x45\x43IMAL_MIXED_NUMBER_MAX_INT_32\x10\x04\x12,\n(DECIMAL_MIXED_NUMBER_MAX_INT_32_PLUS_ONE\x10\x05\x12#\n\x1f\x44\x45\x43IMAL_MIXED_NUMBER_MIN_INT_32\x10\x06\x12-\n)DECIMAL_MIXED_NUMBER_MIN_INT_32_MINUS_ONE\x10\x07*\x9e\x01\n\x16\x45numWithGrpcNameValues\x12*\n&ENUM_WITH_GRPC_NAME_VALUES_UNSPECIFIED\x10\x00\x12\x34\n0ENUM_WITH_GRPC_NAME_VALUES_ALTERED_GRPC_NAME_ONE\x10\x01\x12\"\n\x1e\x45NUM_WITH_GRPC_NAME_VALUES_TWO\x10\x02*5\n\x0bSampleCount\x12&\n\"SAMPLE_COUNT_SAMPLE_COUNT_INFINITE\x10\x00*Z\n\x0eSampleInterval\x12\x1f\n\x1bSAMPLE_INTERVAL_UNSPECIFIED\x10\x00\x12\'\n\x1aSAMPLE_INTERVAL_AUTO_DELAY\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01*\xa1\x02\n\x1aNiFakeInt32AttributeValues\x12\x1c\n\x18NIFAKE_INT32_UNSPECIFIED\x10\x00\x12(\n$NIFAKE_INT32_GRPC_COLOR_OVERRIDE_RED\x10\x01\x12)\n%NIFAKE_INT32_GRPC_COLOR_OVERRIDE_BLUE\x10\x02\x12+\n\'NIFAKE_INT32_GRPC_COLOR_OVERRIDE_YELLOW\x10\x05\x12*\n&NIFAKE_INT32_GRPC_COLOR_OVERRIDE_BLACK\x10*\x12\x33\n/NIFAKE_INT32_SAMPLE_COUNT_SAMPLE_COUNT_INFINITE\x10\x00\x1a\x02\x10\x01*s\n\x1bNiFakeReal64AttributeValues\x12\x1d\n\x19NIFAKE_REAL64_UNSPECIFIED\x10\x00\x12\x35\n(NIFAKE_REAL64_SAMPLE_INTERVAL_AUTO_DELAY\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01*\xb0\x02\n!NiFakeReal64AttributeValuesMapped\x12$\n NIFAKE_REAL64_MAPPED_UNSPECIFIED\x10\x00\x12-\n)NIFAKE_REAL64_FLOAT_ENUM_THREE_POINT_FIVE\x10\x01\x12,\n(NIFAKE_REAL64_FLOAT_ENUM_FOUR_POINT_FIVE\x10\x02\x12,\n(NIFAKE_REAL64_FLOAT_ENUM_FIVE_POINT_FIVE\x10\x03\x12+\n\'NIFAKE_REAL64_FLOAT_ENUM_SIX_POINT_FIVE\x10\x04\x12-\n)NIFAKE_REAL64_FLOAT_ENUM_SEVEN_POINT_FIVE\x10\x05\x32\xad_\n\x06NiFake\x12>\n\x05\x41\x62ort\x12\x19.nifake_grpc.AbortRequest\x1a\x1a.nifake_grpc.AbortResponse\x12t\n\x17\x42oolArrayOutputFunction\x12+.nifake_grpc.BoolArrayOutputFunctionRequest\x1a,.nifake_grpc.BoolArrayOutputFunctionResponse\x12>\n\x05\x43lose\x12\x19.nifake_grpc.CloseRequest\x1a\x1a.nifake_grpc.CloseResponse\x12t\n\x17\x45numArrayOutputFunction\x12+.nifake_grpc.EnumArrayOutputFunctionRequest\x1a,.nifake_grpc.EnumArrayOutputFunctionResponse\x12\x86\x01\n\x1d\x45numInputFunctionWithDefaults\x12\x31.nifake_grpc.EnumInputFunctionWithDefaultsRequest\x1a\x32.nifake_grpc.EnumInputFunctionWithDefaultsResponse\x12\xaa\x01\n)StringValuedEnumInputFunctionWithDefaults\x12=.nifake_grpc.StringValuedEnumInputFunctionWithDefaultsRequest\x1a>.nifake_grpc.StringValuedEnumInputFunctionWithDefaultsResponse\x12S\n\x0c\x45rrorMessage\x12 .nifake_grpc.ErrorMessageRequest\x1a!.nifake_grpc.ErrorMessageResponse\x12V\n\rFetchWaveform\x12!.nifake_grpc.FetchWaveformRequest\x1a\".nifake_grpc.FetchWaveformResponse\x12P\n\x0bGetABoolean\x12\x1f.nifake_grpc.GetABooleanRequest\x1a .nifake_grpc.GetABooleanResponse\x12M\n\nGetANumber\x12\x1e.nifake_grpc.GetANumberRequest\x1a\x1f.nifake_grpc.GetANumberResponse\x12\x83\x01\n\x1cGetAStringOfFixedMaximumSize\x12\x30.nifake_grpc.GetAStringOfFixedMaximumSizeRequest\x1a\x31.nifake_grpc.GetAStringOfFixedMaximumSizeResponse\x12q\n\x16GetAnIviDanceCharArray\x12*.nifake_grpc.GetAnIviDanceCharArrayRequest\x1a+.nifake_grpc.GetAnIviDanceCharArrayResponse\x12n\n\x15GetArrayUsingIviDance\x12).nifake_grpc.GetArrayUsingIviDanceRequest\x1a*.nifake_grpc.GetArrayUsingIviDanceResponse\x12n\n\x15GetAttributeViBoolean\x12).nifake_grpc.GetAttributeViBooleanRequest\x1a*.nifake_grpc.GetAttributeViBooleanResponse\x12h\n\x13GetAttributeViInt32\x12\'.nifake_grpc.GetAttributeViInt32Request\x1a(.nifake_grpc.GetAttributeViInt32Response\x12h\n\x13GetAttributeViInt64\x12\'.nifake_grpc.GetAttributeViInt64Request\x1a(.nifake_grpc.GetAttributeViInt64Response\x12k\n\x14GetAttributeViReal64\x12(.nifake_grpc.GetAttributeViReal64Request\x1a).nifake_grpc.GetAttributeViReal64Response\x12n\n\x15GetAttributeViSession\x12).nifake_grpc.GetAttributeViSessionRequest\x1a*.nifake_grpc.GetAttributeViSessionResponse\x12k\n\x14GetAttributeViString\x12(.nifake_grpc.GetAttributeViStringRequest\x1a).nifake_grpc.GetAttributeViStringResponse\x12\x62\n\x11GetCalDateAndTime\x12%.nifake_grpc.GetCalDateAndTimeRequest\x1a&.nifake_grpc.GetCalDateAndTimeResponse\x12Y\n\x0eGetCalInterval\x12\".nifake_grpc.GetCalIntervalRequest\x1a#.nifake_grpc.GetCalIntervalResponse\x12S\n\x0cGetEnumValue\x12 .nifake_grpc.GetEnumValueRequest\x1a!.nifake_grpc.GetEnumValueResponse\x12G\n\x08GetError\x12\x1c.nifake_grpc.GetErrorRequest\x1a\x1d.nifake_grpc.GetErrorResponse\x12\\\n\x0fInitWithOptions\x12#.nifake_grpc.InitWithOptionsRequest\x1a$.nifake_grpc.InitWithOptionsResponse\x12\x65\n\x12MultipleArrayTypes\x12&.nifake_grpc.MultipleArrayTypesRequest\x1a\'.nifake_grpc.MultipleArrayTypesResponse\x12q\n\x16MultipleArraysSameSize\x12*.nifake_grpc.MultipleArraysSameSizeRequest\x1a+.nifake_grpc.MultipleArraysSameSizeResponse\x12\x80\x01\n\x1bMultipleArraysDifferentSize\x12/.nifake_grpc.MultipleArraysDifferentSizeRequest\x1a\x30.nifake_grpc.MultipleArraysDifferentSizeResponse\x12\x83\x01\n\x1cMixedIviDanceAndLenMechanism\x12\x30.nifake_grpc.MixedIviDanceAndLenMechanismRequest\x1a\x31.nifake_grpc.MixedIviDanceAndLenMechanismResponse\x12_\n\x10OneInputFunction\x12$.nifake_grpc.OneInputFunctionRequest\x1a%.nifake_grpc.OneInputFunctionResponse\x12}\n\x1aParametersAreMultipleTypes\x12..nifake_grpc.ParametersAreMultipleTypesRequest\x1a/.nifake_grpc.ParametersAreMultipleTypesResponse\x12z\n\x19PoorlyNamedSimpleFunction\x12-.nifake_grpc.PoorlyNamedSimpleFunctionRequest\x1a..nifake_grpc.PoorlyNamedSimpleFunctionResponse\x12;\n\x04Read\x12\x18.nifake_grpc.ReadRequest\x1a\x19.nifake_grpc.ReadResponse\x12\\\n\x0fReadFromChannel\x12#.nifake_grpc.ReadFromChannelRequest\x1a$.nifake_grpc.ReadFromChannelResponse\x12t\n\x17ReturnANumberAndAString\x12+.nifake_grpc.ReturnANumberAndAStringRequest\x1a,.nifake_grpc.ReturnANumberAndAStringResponse\x12h\n\x13ReturnMultipleTypes\x12\'.nifake_grpc.ReturnMultipleTypesRequest\x1a(.nifake_grpc.ReturnMultipleTypesResponse\x12n\n\x15SetAttributeViBoolean\x12).nifake_grpc.SetAttributeViBooleanRequest\x1a*.nifake_grpc.SetAttributeViBooleanResponse\x12h\n\x13SetAttributeViInt32\x12\'.nifake_grpc.SetAttributeViInt32Request\x1a(.nifake_grpc.SetAttributeViInt32Response\x12h\n\x13SetAttributeViInt64\x12\'.nifake_grpc.SetAttributeViInt64Request\x1a(.nifake_grpc.SetAttributeViInt64Response\x12k\n\x14SetAttributeViReal64\x12(.nifake_grpc.SetAttributeViReal64Request\x1a).nifake_grpc.SetAttributeViReal64Response\x12k\n\x14SetAttributeViString\x12(.nifake_grpc.SetAttributeViStringRequest\x1a).nifake_grpc.SetAttributeViStringResponse\x12_\n\x10TwoInputFunction\x12$.nifake_grpc.TwoInputFunctionRequest\x1a%.nifake_grpc.TwoInputFunctionResponse\x12Y\n\x0eUse64BitNumber\x12\".nifake_grpc.Use64BitNumberRequest\x1a#.nifake_grpc.Use64BitNumberResponse\x12V\n\rWriteWaveform\x12!.nifake_grpc.WriteWaveformRequest\x1a\".nifake_grpc.WriteWaveformResponse\x12\x83\x01\n\x1cWriteWaveformNumpyComplex128\x12\x30.nifake_grpc.WriteWaveformNumpyComplex128Request\x1a\x31.nifake_grpc.WriteWaveformNumpyComplex128Response\x12\x80\x01\n\x1bWriteWaveformNumpyComplex64\x12/.nifake_grpc.WriteWaveformNumpyComplex64Request\x1a\x30.nifake_grpc.WriteWaveformNumpyComplex64Response\x12\xa4\x01\n\'WriteWaveformNumpyComplexInterleavedI16\x12;.nifake_grpc.WriteWaveformNumpyComplexInterleavedI16Request\x1a<.nifake_grpc.WriteWaveformNumpyComplexInterleavedI16Response\x12V\n\rSetCustomType\x12!.nifake_grpc.SetCustomTypeRequest\x1a\".nifake_grpc.SetCustomTypeResponse\x12\x65\n\x12SetCustomTypeArray\x12&.nifake_grpc.SetCustomTypeArrayRequest\x1a\'.nifake_grpc.SetCustomTypeArrayResponse\x12V\n\rGetCustomType\x12!.nifake_grpc.GetCustomTypeRequest\x1a\".nifake_grpc.GetCustomTypeResponse\x12\x65\n\x12GetCustomTypeArray\x12&.nifake_grpc.GetCustomTypeArrayRequest\x1a\'.nifake_grpc.GetCustomTypeArrayResponse\x12\x83\x01\n\x1cGetAnIviDanceWithATwistArray\x12\x30.nifake_grpc.GetAnIviDanceWithATwistArrayRequest\x1a\x31.nifake_grpc.GetAnIviDanceWithATwistArrayResponse\x12\x86\x01\n\x1dGetAnIviDanceWithATwistString\x12\x31.nifake_grpc.GetAnIviDanceWithATwistStringRequest\x1a\x32.nifake_grpc.GetAnIviDanceWithATwistStringResponse\x12_\n\x10\x44oubleAllTheNums\x12$.nifake_grpc.DoubleAllTheNumsRequest\x1a%.nifake_grpc.DoubleAllTheNumsResponse\x12\x89\x01\n\x1e\x41\x63\x63\x65ptListOfDurationsInSeconds\x12\x32.nifake_grpc.AcceptListOfDurationsInSecondsRequest\x1a\x33.nifake_grpc.AcceptListOfDurationsInSecondsResponse\x12t\n\x17ReturnDurationInSeconds\x12+.nifake_grpc.ReturnDurationInSecondsRequest\x1a,.nifake_grpc.ReturnDurationInSecondsResponse\x12\x89\x01\n\x1eReturnListOfDurationsInSeconds\x12\x32.nifake_grpc.ReturnListOfDurationsInSecondsRequest\x1a\x33.nifake_grpc.ReturnListOfDurationsInSecondsResponse\x12S\n\x0c\x43onfigureAbc\x12 .nifake_grpc.ConfigureAbcRequest\x1a!.nifake_grpc.ConfigureAbcResponse\x12Y\n\x0e\x43onfigureEnums\x12\".nifake_grpc.ConfigureEnumsRequest\x1a#.nifake_grpc.ConfigureEnumsResponse\x12\x9b\x01\n$ExportAttributeConfigurationBufferEx\x12\x38.nifake_grpc.ExportAttributeConfigurationBufferExRequest\x1a\x39.nifake_grpc.ExportAttributeConfigurationBufferExResponse\x12\x9b\x01\n$ImportAttributeConfigurationBufferEx\x12\x38.nifake_grpc.ImportAttributeConfigurationBufferExRequest\x1a\x39.nifake_grpc.ImportAttributeConfigurationBufferExResponse\x12h\n\x13\x46\x65tchWithCustomSize\x12\'.nifake_grpc.FetchWithCustomSizeRequest\x1a(.nifake_grpc.FetchWithCustomSizeResponse\x12\x95\x01\n\"GetParameterWithOverriddenGrpcName\x12\x36.nifake_grpc.GetParameterWithOverriddenGrpcNameRequest\x1a\x37.nifake_grpc.GetParameterWithOverriddenGrpcNameResponse\x12\xc8\x01\n3IviDanceWithTwistWithMultipleArraysAndOneBufferSize\x12G.nifake_grpc.IviDanceWithTwistWithMultipleArraysAndOneBufferSizeRequest\x1aH.nifake_grpc.IviDanceWithTwistWithMultipleArraysAndOneBufferSizeResponse\x12\x8f\x01\n FunctionWithOverriddenGrpcName2x\x12\x34.nifake_grpc.FunctionWithOverriddenGrpcName2xRequest\x1a\x35.nifake_grpc.FunctionWithOverriddenGrpcName2xResponse\x12\xd4\x01\n7FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter\x12K.nifake_grpc.FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterRequest\x1aL.nifake_grpc.FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterResponse\x12\x8c\x01\n\x1fStringValuedEnumNoEnumGenerated\x12\x33.nifake_grpc.StringValuedEnumNoEnumGeneratedRequest\x1a\x34.nifake_grpc.StringValuedEnumNoEnumGeneratedResponse\x12\x98\x01\n#IviDanceWithATwistCalculatedSizeOut\x12\x37.nifake_grpc.IviDanceWithATwistCalculatedSizeOutRequest\x1a\x38.nifake_grpc.IviDanceWithATwistCalculatedSizeOutResponse\x12\x95\x01\n\"ImportAttributeConfigurationBuffer\x12\x36.nifake_grpc.ImportAttributeConfigurationBufferRequest\x1a\x37.nifake_grpc.ImportAttributeConfigurationBufferResponse\x12\x95\x01\n\"ExportAttributeConfigurationBuffer\x12\x36.nifake_grpc.ExportAttributeConfigurationBufferRequest\x1a\x37.nifake_grpc.ExportAttributeConfigurationBufferResponse\x12P\n\x0b\x43ontrol4022\x12\x1f.nifake_grpc.Control4022Request\x1a .nifake_grpc.Control4022Response\x12k\n\x14\x41\x63\x63\x65ptViSessionArray\x12(.nifake_grpc.AcceptViSessionArrayRequest\x1a).nifake_grpc.AcceptViSessionArrayResponse\x12h\n\x13\x41\x63\x63\x65ptViUInt32Array\x12\'.nifake_grpc.AcceptViUInt32ArrayRequest\x1a(.nifake_grpc.AcceptViUInt32ArrayResponse\x12q\n\x16\x42oolArrayInputFunction\x12*.nifake_grpc.BoolArrayInputFunctionRequest\x1a+.nifake_grpc.BoolArrayInputFunctionResponse\x12P\n\x0b\x43loseExtCal\x12\x1f.nifake_grpc.CloseExtCalRequest\x1a .nifake_grpc.CloseExtCalResponse\x12w\n\x18\x43ommandWithReservedParam\x12,.nifake_grpc.CommandWithReservedParamRequest\x1a-.nifake_grpc.CommandWithReservedParamResponse\x12t\n\x17\x43reateConfigurationList\x12+.nifake_grpc.CreateConfigurationListRequest\x1a,.nifake_grpc.CreateConfigurationListResponse\x12\x80\x01\n\x1b\x43ustomNestedStructRoundtrip\x12/.nifake_grpc.CustomNestedStructRoundtripRequest\x1a\x30.nifake_grpc.CustomNestedStructRoundtripResponse\x12q\n\x16GetBitfieldAsEnumArray\x12*.nifake_grpc.GetBitfieldAsEnumArrayRequest\x1a+.nifake_grpc.GetBitfieldAsEnumArrayResponse\x12\xa7\x01\n(GetAnIviDanceWithATwistArrayOfCustomType\x12<.nifake_grpc.GetAnIviDanceWithATwistArrayOfCustomTypeRequest\x1a=.nifake_grpc.GetAnIviDanceWithATwistArrayOfCustomTypeResponse\x12\xad\x01\n*GetAnIviDanceWithATwistArrayWithInputArray\x12>.nifake_grpc.GetAnIviDanceWithATwistArrayWithInputArrayRequest\x1a?.nifake_grpc.GetAnIviDanceWithATwistArrayWithInputArrayResponse\x12\x8f\x01\n GetAnIviDanceWithATwistByteArray\x12\x34.nifake_grpc.GetAnIviDanceWithATwistByteArrayRequest\x1a\x35.nifake_grpc.GetAnIviDanceWithATwistByteArrayResponse\x12\xa1\x01\n&GetAnIviDanceWithATwistStringStrlenBug\x12:.nifake_grpc.GetAnIviDanceWithATwistStringStrlenBugRequest\x1a;.nifake_grpc.GetAnIviDanceWithATwistStringStrlenBugResponse\x12z\n\x19GetArraySizeForCustomCode\x12-.nifake_grpc.GetArraySizeForCustomCodeRequest\x1a..nifake_grpc.GetArraySizeForCustomCodeResponse\x12t\n\x17GetArrayViUInt8WithEnum\x12+.nifake_grpc.GetArrayViUInt8WithEnumRequest\x1a,.nifake_grpc.GetArrayViUInt8WithEnumResponse\x12M\n\nGetViUInt8\x12\x1e.nifake_grpc.GetViUInt8Request\x1a\x1f.nifake_grpc.GetViUInt8Response\x12\\\n\x0fGetViInt32Array\x12#.nifake_grpc.GetViInt32ArrayRequest\x1a$.nifake_grpc.GetViInt32ArrayResponse\x12_\n\x10GetViUInt32Array\x12$.nifake_grpc.GetViUInt32ArrayRequest\x1a%.nifake_grpc.GetViUInt32ArrayResponse\x12\x92\x01\n!MethodUsingEnumWithGrpcNameValues\x12\x35.nifake_grpc.MethodUsingEnumWithGrpcNameValuesRequest\x1a\x36.nifake_grpc.MethodUsingEnumWithGrpcNameValuesResponse\x12\x80\x01\n\x1bMethodWithGetLastErrorParam\x12/.nifake_grpc.MethodWithGetLastErrorParamRequest\x1a\x30.nifake_grpc.MethodWithGetLastErrorParamResponse\x12t\n\x17MethodWithGrpcOnlyParam\x12+.nifake_grpc.MethodWithGrpcOnlyParamRequest\x1a,.nifake_grpc.MethodWithGrpcOnlyParamResponse\x12\x9b\x01\n$MethodUsingWholeAndFractionalNumbers\x12\x38.nifake_grpc.MethodUsingWholeAndFractionalNumbersRequest\x1a\x39.nifake_grpc.MethodUsingWholeAndFractionalNumbersResponse\x12\x86\x01\n\x1dMethodUsingWholeMappedNumbers\x12\x31.nifake_grpc.MethodUsingWholeMappedNumbersRequest\x1a\x32.nifake_grpc.MethodUsingWholeMappedNumbersResponse\x12z\n\x19MethodWithGrpcFieldNumber\x12-.nifake_grpc.MethodWithGrpcFieldNumberRequest\x1a..nifake_grpc.MethodWithGrpcFieldNumberResponse\x12\x83\x01\n\x1cMethodWithProtoOnlyParameter\x12\x30.nifake_grpc.MethodWithProtoOnlyParameterRequest\x1a\x31.nifake_grpc.MethodWithProtoOnlyParameterResponse\x12z\n\x19ReadDataWithInOutIviTwist\x12-.nifake_grpc.ReadDataWithInOutIviTwistRequest\x1a..nifake_grpc.ReadDataWithInOutIviTwistResponse\x12\x9e\x01\n%ReadDataWithMultipleIviTwistParamSets\x12\x39.nifake_grpc.ReadDataWithMultipleIviTwistParamSetsRequest\x1a:.nifake_grpc.ReadDataWithMultipleIviTwistParamSetsResponse\x12M\n\nInitExtCal\x12\x1e.nifake_grpc.InitExtCalRequest\x1a\x1f.nifake_grpc.InitExtCalResponse\x12\\\n\x0fInitWithVarArgs\x12#.nifake_grpc.InitWithVarArgsRequest\x1a$.nifake_grpc.InitWithVarArgsResponse\x12\x95\x01\n\"MultipleArraysSameSizeWithOptional\x12\x36.nifake_grpc.MultipleArraysSameSizeWithOptionalRequest\x1a\x37.nifake_grpc.MultipleArraysSameSizeWithOptionalResponse\x12z\n\x19UseATwoDimensionParameter\x12-.nifake_grpc.UseATwoDimensionParameterRequest\x1a..nifake_grpc.UseATwoDimensionParameterResponse\x12z\n\x19ViUInt8ArrayInputFunction\x12-.nifake_grpc.ViUInt8ArrayInputFunctionRequest\x1a..nifake_grpc.ViUInt8ArrayInputFunctionResponse\x12}\n\x1aViUInt8ArrayOutputFunction\x12..nifake_grpc.ViUInt8ArrayOutputFunctionRequest\x1a/.nifake_grpc.ViUInt8ArrayOutputFunctionResponse\x12z\n\x19ViInt16ArrayInputFunction\x12-.nifake_grpc.ViInt16ArrayInputFunctionRequest\x1a..nifake_grpc.ViInt16ArrayInputFunctionResponseB<\n\x10\x63om.ni.grpc.fakeB\x06NiFakeP\x01\xaa\x02\x1dNationalInstruments.Grpc.Fakeb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -26,36 +26,36 @@ _NIFAKEINT32ATTRIBUTEVALUES._serialized_options = b'\020\001' _METHODWITHGETLASTERRORPARAMRESPONSE.fields_by_name['last_error']._options = None _METHODWITHGETLASTERRORPARAMRESPONSE.fields_by_name['last_error']._serialized_options = b'\030\001' - _globals['_NIFAKEATTRIBUTE']._serialized_start=18436 - _globals['_NIFAKEATTRIBUTE']._serialized_end=19106 - _globals['_GRPCCOLOROVERRIDE']._serialized_start=19109 - _globals['_GRPCCOLOROVERRIDE']._serialized_end=19287 - _globals['_FLOATENUM']._serialized_start=19290 - _globals['_FLOATENUM']._serialized_end=19490 - _globals['_TURTLE']._serialized_start=19492 - _globals['_TURTLE']._serialized_end=19588 - _globals['_MOBILEOSNAMES']._serialized_start=19591 - _globals['_MOBILEOSNAMES']._serialized_end=19719 - _globals['_BITFIELD']._serialized_start=19721 - _globals['_BITFIELD']._serialized_end=19841 - _globals['_DECIMALWHOLENUMBER']._serialized_start=19844 - _globals['_DECIMALWHOLENUMBER']._serialized_end=19980 - _globals['_DECIMALWHOLENUMBERMAPPED']._serialized_start=19983 - _globals['_DECIMALWHOLENUMBERMAPPED']._serialized_end=20182 - _globals['_DECIMALMIXEDNUMBER']._serialized_start=20185 - _globals['_DECIMALMIXEDNUMBER']._serialized_end=20528 - _globals['_ENUMWITHGRPCNAMEVALUES']._serialized_start=20531 - _globals['_ENUMWITHGRPCNAMEVALUES']._serialized_end=20689 - _globals['_SAMPLECOUNT']._serialized_start=20691 - _globals['_SAMPLECOUNT']._serialized_end=20744 - _globals['_SAMPLEINTERVAL']._serialized_start=20746 - _globals['_SAMPLEINTERVAL']._serialized_end=20836 - _globals['_NIFAKEINT32ATTRIBUTEVALUES']._serialized_start=20839 - _globals['_NIFAKEINT32ATTRIBUTEVALUES']._serialized_end=21128 - _globals['_NIFAKEREAL64ATTRIBUTEVALUES']._serialized_start=21130 - _globals['_NIFAKEREAL64ATTRIBUTEVALUES']._serialized_end=21245 - _globals['_NIFAKEREAL64ATTRIBUTEVALUESMAPPED']._serialized_start=21248 - _globals['_NIFAKEREAL64ATTRIBUTEVALUESMAPPED']._serialized_end=21552 + _globals['_NIFAKEATTRIBUTE']._serialized_start=19367 + _globals['_NIFAKEATTRIBUTE']._serialized_end=20037 + _globals['_GRPCCOLOROVERRIDE']._serialized_start=20040 + _globals['_GRPCCOLOROVERRIDE']._serialized_end=20218 + _globals['_FLOATENUM']._serialized_start=20221 + _globals['_FLOATENUM']._serialized_end=20421 + _globals['_TURTLE']._serialized_start=20423 + _globals['_TURTLE']._serialized_end=20519 + _globals['_MOBILEOSNAMES']._serialized_start=20522 + _globals['_MOBILEOSNAMES']._serialized_end=20650 + _globals['_BITFIELD']._serialized_start=20652 + _globals['_BITFIELD']._serialized_end=20772 + _globals['_DECIMALWHOLENUMBER']._serialized_start=20775 + _globals['_DECIMALWHOLENUMBER']._serialized_end=20911 + _globals['_DECIMALWHOLENUMBERMAPPED']._serialized_start=20914 + _globals['_DECIMALWHOLENUMBERMAPPED']._serialized_end=21113 + _globals['_DECIMALMIXEDNUMBER']._serialized_start=21116 + _globals['_DECIMALMIXEDNUMBER']._serialized_end=21459 + _globals['_ENUMWITHGRPCNAMEVALUES']._serialized_start=21462 + _globals['_ENUMWITHGRPCNAMEVALUES']._serialized_end=21620 + _globals['_SAMPLECOUNT']._serialized_start=21622 + _globals['_SAMPLECOUNT']._serialized_end=21675 + _globals['_SAMPLEINTERVAL']._serialized_start=21677 + _globals['_SAMPLEINTERVAL']._serialized_end=21767 + _globals['_NIFAKEINT32ATTRIBUTEVALUES']._serialized_start=21770 + _globals['_NIFAKEINT32ATTRIBUTEVALUES']._serialized_end=22059 + _globals['_NIFAKEREAL64ATTRIBUTEVALUES']._serialized_start=22061 + _globals['_NIFAKEREAL64ATTRIBUTEVALUES']._serialized_end=22176 + _globals['_NIFAKEREAL64ATTRIBUTEVALUESMAPPED']._serialized_start=22179 + _globals['_NIFAKEREAL64ATTRIBUTEVALUESMAPPED']._serialized_end=22483 _globals['_FAKECUSTOMSTRUCT']._serialized_start=44 _globals['_FAKECUSTOMSTRUCT']._serialized_end=105 _globals['_CUSTOMSTRUCTNESTEDTYPEDEF']._serialized_start=108 @@ -66,406 +66,424 @@ _globals['_NICOMPLEXI16_STRUCT']._serialized_end=390 _globals['_NICOMPLEXNUMBER_STRUCT']._serialized_start=392 _globals['_NICOMPLEXNUMBER_STRUCT']._serialized_end=449 - _globals['_STRINGANDTURTLE']._serialized_start=451 - _globals['_STRINGANDTURTLE']._serialized_end=525 - _globals['_CUSTOMNAMEDTYPE']._serialized_start=527 - _globals['_CUSTOMNAMEDTYPE']._serialized_end=564 - _globals['_ABORTREQUEST']._serialized_start=566 - _globals['_ABORTREQUEST']._serialized_end=616 - _globals['_ABORTRESPONSE']._serialized_start=618 - _globals['_ABORTRESPONSE']._serialized_end=649 - _globals['_BOOLARRAYOUTPUTFUNCTIONREQUEST']._serialized_start=651 - _globals['_BOOLARRAYOUTPUTFUNCTIONREQUEST']._serialized_end=747 - _globals['_BOOLARRAYOUTPUTFUNCTIONRESPONSE']._serialized_start=749 - _globals['_BOOLARRAYOUTPUTFUNCTIONRESPONSE']._serialized_end=816 - _globals['_CLOSEREQUEST']._serialized_start=818 - _globals['_CLOSEREQUEST']._serialized_end=868 - _globals['_CLOSERESPONSE']._serialized_start=870 - _globals['_CLOSERESPONSE']._serialized_end=901 - _globals['_ENUMARRAYOUTPUTFUNCTIONREQUEST']._serialized_start=903 - _globals['_ENUMARRAYOUTPUTFUNCTIONREQUEST']._serialized_end=999 - _globals['_ENUMARRAYOUTPUTFUNCTIONRESPONSE']._serialized_start=1001 - _globals['_ENUMARRAYOUTPUTFUNCTIONRESPONSE']._serialized_end=1111 - _globals['_ENUMINPUTFUNCTIONWITHDEFAULTSREQUEST']._serialized_start=1114 - _globals['_ENUMINPUTFUNCTIONWITHDEFAULTSREQUEST']._serialized_end=1270 - _globals['_ENUMINPUTFUNCTIONWITHDEFAULTSRESPONSE']._serialized_start=1272 - _globals['_ENUMINPUTFUNCTIONWITHDEFAULTSRESPONSE']._serialized_end=1327 - _globals['_STRINGVALUEDENUMINPUTFUNCTIONWITHDEFAULTSREQUEST']._serialized_start=1330 - _globals['_STRINGVALUEDENUMINPUTFUNCTIONWITHDEFAULTSREQUEST']._serialized_end=1536 - _globals['_STRINGVALUEDENUMINPUTFUNCTIONWITHDEFAULTSRESPONSE']._serialized_start=1538 - _globals['_STRINGVALUEDENUMINPUTFUNCTIONWITHDEFAULTSRESPONSE']._serialized_end=1605 - _globals['_ERRORMESSAGEREQUEST']._serialized_start=1607 - _globals['_ERRORMESSAGEREQUEST']._serialized_end=1684 - _globals['_ERRORMESSAGERESPONSE']._serialized_start=1686 - _globals['_ERRORMESSAGERESPONSE']._serialized_end=1747 - _globals['_FETCHWAVEFORMREQUEST']._serialized_start=1749 - _globals['_FETCHWAVEFORMREQUEST']._serialized_end=1834 - _globals['_FETCHWAVEFORMRESPONSE']._serialized_start=1836 - _globals['_FETCHWAVEFORMRESPONSE']._serialized_end=1932 - _globals['_GETABOOLEANREQUEST']._serialized_start=1934 - _globals['_GETABOOLEANREQUEST']._serialized_end=1990 - _globals['_GETABOOLEANRESPONSE']._serialized_start=1992 - _globals['_GETABOOLEANRESPONSE']._serialized_end=2048 - _globals['_GETANUMBERREQUEST']._serialized_start=2050 - _globals['_GETANUMBERREQUEST']._serialized_end=2105 - _globals['_GETANUMBERRESPONSE']._serialized_start=2107 - _globals['_GETANUMBERRESPONSE']._serialized_end=2161 - _globals['_GETASTRINGOFFIXEDMAXIMUMSIZEREQUEST']._serialized_start=2163 - _globals['_GETASTRINGOFFIXEDMAXIMUMSIZEREQUEST']._serialized_end=2236 - _globals['_GETASTRINGOFFIXEDMAXIMUMSIZERESPONSE']._serialized_start=2238 - _globals['_GETASTRINGOFFIXEDMAXIMUMSIZERESPONSE']._serialized_end=2310 - _globals['_GETANIVIDANCECHARARRAYREQUEST']._serialized_start=2312 - _globals['_GETANIVIDANCECHARARRAYREQUEST']._serialized_end=2379 - _globals['_GETANIVIDANCECHARARRAYRESPONSE']._serialized_start=2381 - _globals['_GETANIVIDANCECHARARRAYRESPONSE']._serialized_end=2449 - _globals['_GETARRAYUSINGIVIDANCEREQUEST']._serialized_start=2451 - _globals['_GETARRAYUSINGIVIDANCEREQUEST']._serialized_end=2517 - _globals['_GETARRAYUSINGIVIDANCERESPONSE']._serialized_start=2519 - _globals['_GETARRAYUSINGIVIDANCERESPONSE']._serialized_end=2585 - _globals['_GETATTRIBUTEVIBOOLEANREQUEST']._serialized_start=2588 - _globals['_GETATTRIBUTEVIBOOLEANREQUEST']._serialized_end=2728 - _globals['_GETATTRIBUTEVIBOOLEANRESPONSE']._serialized_start=2730 - _globals['_GETATTRIBUTEVIBOOLEANRESPONSE']._serialized_end=2802 - _globals['_GETATTRIBUTEVIINT32REQUEST']._serialized_start=2805 - _globals['_GETATTRIBUTEVIINT32REQUEST']._serialized_end=2943 - _globals['_GETATTRIBUTEVIINT32RESPONSE']._serialized_start=2945 - _globals['_GETATTRIBUTEVIINT32RESPONSE']._serialized_end=3015 - _globals['_GETATTRIBUTEVIINT64REQUEST']._serialized_start=3018 - _globals['_GETATTRIBUTEVIINT64REQUEST']._serialized_end=3156 - _globals['_GETATTRIBUTEVIINT64RESPONSE']._serialized_start=3158 - _globals['_GETATTRIBUTEVIINT64RESPONSE']._serialized_end=3228 - _globals['_GETATTRIBUTEVIREAL64REQUEST']._serialized_start=3231 - _globals['_GETATTRIBUTEVIREAL64REQUEST']._serialized_end=3370 - _globals['_GETATTRIBUTEVIREAL64RESPONSE']._serialized_start=3372 - _globals['_GETATTRIBUTEVIREAL64RESPONSE']._serialized_end=3443 - _globals['_GETATTRIBUTEVISESSIONREQUEST']._serialized_start=3446 - _globals['_GETATTRIBUTEVISESSIONREQUEST']._serialized_end=3586 - _globals['_GETATTRIBUTEVISESSIONRESPONSE']._serialized_start=3588 - _globals['_GETATTRIBUTEVISESSIONRESPONSE']._serialized_end=3684 - _globals['_GETATTRIBUTEVISTRINGREQUEST']._serialized_start=3687 - _globals['_GETATTRIBUTEVISTRINGREQUEST']._serialized_end=3826 - _globals['_GETATTRIBUTEVISTRINGRESPONSE']._serialized_start=3828 - _globals['_GETATTRIBUTEVISTRINGRESPONSE']._serialized_end=3899 - _globals['_GETCALDATEANDTIMEREQUEST']._serialized_start=3901 - _globals['_GETCALDATEANDTIMEREQUEST']._serialized_end=3981 - _globals['_GETCALDATEANDTIMERESPONSE']._serialized_start=3983 - _globals['_GETCALDATEANDTIMERESPONSE']._serialized_end=4098 - _globals['_GETCALINTERVALREQUEST']._serialized_start=4100 - _globals['_GETCALINTERVALREQUEST']._serialized_end=4159 - _globals['_GETCALINTERVALRESPONSE']._serialized_start=4161 - _globals['_GETCALINTERVALRESPONSE']._serialized_end=4217 - _globals['_GETENUMVALUEREQUEST']._serialized_start=4219 - _globals['_GETENUMVALUEREQUEST']._serialized_end=4276 - _globals['_GETENUMVALUERESPONSE']._serialized_start=4278 - _globals['_GETENUMVALUERESPONSE']._serialized_end=4397 - _globals['_GETERRORREQUEST']._serialized_start=4399 - _globals['_GETERRORREQUEST']._serialized_end=4452 - _globals['_GETERRORRESPONSE']._serialized_start=4454 - _globals['_GETERRORRESPONSE']._serialized_end=4529 - _globals['_INITWITHOPTIONSREQUEST']._serialized_start=4532 - _globals['_INITWITHOPTIONSREQUEST']._serialized_end=4743 - _globals['_INITWITHOPTIONSRESPONSE']._serialized_start=4745 - _globals['_INITWITHOPTIONSRESPONSE']._serialized_end=4855 - _globals['_MULTIPLEARRAYTYPESREQUEST']._serialized_start=4858 - _globals['_MULTIPLEARRAYTYPESREQUEST']._serialized_end=5012 - _globals['_MULTIPLEARRAYTYPESRESPONSE']._serialized_start=5014 - _globals['_MULTIPLEARRAYTYPESRESPONSE']._serialized_end=5118 - _globals['_MULTIPLEARRAYSSAMESIZEREQUEST']._serialized_start=5121 - _globals['_MULTIPLEARRAYSSAMESIZEREQUEST']._serialized_end=5256 - _globals['_MULTIPLEARRAYSSAMESIZERESPONSE']._serialized_start=5258 - _globals['_MULTIPLEARRAYSSAMESIZERESPONSE']._serialized_end=5306 - _globals['_MULTIPLEARRAYSDIFFERENTSIZEREQUEST']._serialized_start=5308 - _globals['_MULTIPLEARRAYSDIFFERENTSIZEREQUEST']._serialized_end=5422 - _globals['_MULTIPLEARRAYSDIFFERENTSIZERESPONSE']._serialized_start=5424 - _globals['_MULTIPLEARRAYSDIFFERENTSIZERESPONSE']._serialized_end=5477 - _globals['_MIXEDIVIDANCEANDLENMECHANISMREQUEST']._serialized_start=5479 - _globals['_MIXEDIVIDANCEANDLENMECHANISMREQUEST']._serialized_end=5574 - _globals['_MIXEDIVIDANCEANDLENMECHANISMRESPONSE']._serialized_start=5576 - _globals['_MIXEDIVIDANCEANDLENMECHANISMRESPONSE']._serialized_end=5652 - _globals['_ONEINPUTFUNCTIONREQUEST']._serialized_start=5654 - _globals['_ONEINPUTFUNCTIONREQUEST']._serialized_end=5733 - _globals['_ONEINPUTFUNCTIONRESPONSE']._serialized_start=5735 - _globals['_ONEINPUTFUNCTIONRESPONSE']._serialized_end=5777 - _globals['_PARAMETERSAREMULTIPLETYPESREQUEST']._serialized_start=5780 - _globals['_PARAMETERSAREMULTIPLETYPESREQUEST']._serialized_end=6136 - _globals['_PARAMETERSAREMULTIPLETYPESRESPONSE']._serialized_start=6138 - _globals['_PARAMETERSAREMULTIPLETYPESRESPONSE']._serialized_end=6190 - _globals['_POORLYNAMEDSIMPLEFUNCTIONREQUEST']._serialized_start=6192 - _globals['_POORLYNAMEDSIMPLEFUNCTIONREQUEST']._serialized_end=6262 - _globals['_POORLYNAMEDSIMPLEFUNCTIONRESPONSE']._serialized_start=6264 - _globals['_POORLYNAMEDSIMPLEFUNCTIONRESPONSE']._serialized_end=6315 - _globals['_READREQUEST']._serialized_start=6317 - _globals['_READREQUEST']._serialized_end=6388 - _globals['_READRESPONSE']._serialized_start=6390 - _globals['_READRESPONSE']._serialized_end=6437 - _globals['_READFROMCHANNELREQUEST']._serialized_start=6439 - _globals['_READFROMCHANNELREQUEST']._serialized_end=6543 - _globals['_READFROMCHANNELRESPONSE']._serialized_start=6545 - _globals['_READFROMCHANNELRESPONSE']._serialized_end=6603 - _globals['_RETURNANUMBERANDASTRINGREQUEST']._serialized_start=6605 - _globals['_RETURNANUMBERANDASTRINGREQUEST']._serialized_end=6673 - _globals['_RETURNANUMBERANDASTRINGRESPONSE']._serialized_start=6675 - _globals['_RETURNANUMBERANDASTRINGRESPONSE']._serialized_end=6760 - _globals['_RETURNMULTIPLETYPESREQUEST']._serialized_start=6762 - _globals['_RETURNMULTIPLETYPESREQUEST']._serialized_end=6846 - _globals['_RETURNMULTIPLETYPESRESPONSE']._serialized_start=6849 - _globals['_RETURNMULTIPLETYPESRESPONSE']._serialized_end=7148 - _globals['_SETATTRIBUTEVIBOOLEANREQUEST']._serialized_start=7151 - _globals['_SETATTRIBUTEVIBOOLEANREQUEST']._serialized_end=7316 - _globals['_SETATTRIBUTEVIBOOLEANRESPONSE']._serialized_start=7318 - _globals['_SETATTRIBUTEVIBOOLEANRESPONSE']._serialized_end=7365 - _globals['_SETATTRIBUTEVIINT32REQUEST']._serialized_start=7368 - _globals['_SETATTRIBUTEVIINT32REQUEST']._serialized_end=7629 - _globals['_SETATTRIBUTEVIINT32RESPONSE']._serialized_start=7631 - _globals['_SETATTRIBUTEVIINT32RESPONSE']._serialized_end=7676 - _globals['_SETATTRIBUTEVIINT64REQUEST']._serialized_start=7679 - _globals['_SETATTRIBUTEVIINT64REQUEST']._serialized_end=7846 - _globals['_SETATTRIBUTEVIINT64RESPONSE']._serialized_start=7848 - _globals['_SETATTRIBUTEVIINT64RESPONSE']._serialized_end=7893 - _globals['_SETATTRIBUTEVIREAL64REQUEST']._serialized_start=7896 - _globals['_SETATTRIBUTEVIREAL64REQUEST']._serialized_end=8241 - _globals['_SETATTRIBUTEVIREAL64RESPONSE']._serialized_start=8243 - _globals['_SETATTRIBUTEVIREAL64RESPONSE']._serialized_end=8289 - _globals['_SETATTRIBUTEVISTRINGREQUEST']._serialized_start=8292 - _globals['_SETATTRIBUTEVISTRINGREQUEST']._serialized_end=8460 - _globals['_SETATTRIBUTEVISTRINGRESPONSE']._serialized_start=8462 - _globals['_SETATTRIBUTEVISTRINGRESPONSE']._serialized_end=8508 - _globals['_TWOINPUTFUNCTIONREQUEST']._serialized_start=8510 - _globals['_TWOINPUTFUNCTIONREQUEST']._serialized_end=8607 - _globals['_TWOINPUTFUNCTIONRESPONSE']._serialized_start=8609 - _globals['_TWOINPUTFUNCTIONRESPONSE']._serialized_end=8651 - _globals['_USE64BITNUMBERREQUEST']._serialized_start=8653 - _globals['_USE64BITNUMBERREQUEST']._serialized_end=8727 - _globals['_USE64BITNUMBERRESPONSE']._serialized_start=8729 - _globals['_USE64BITNUMBERRESPONSE']._serialized_end=8785 - _globals['_WRITEWAVEFORMREQUEST']._serialized_start=8787 - _globals['_WRITEWAVEFORMREQUEST']._serialized_end=8863 - _globals['_WRITEWAVEFORMRESPONSE']._serialized_start=8865 - _globals['_WRITEWAVEFORMRESPONSE']._serialized_end=8904 - _globals['_SETCUSTOMTYPEREQUEST']._serialized_start=8906 - _globals['_SETCUSTOMTYPEREQUEST']._serialized_end=9007 - _globals['_SETCUSTOMTYPERESPONSE']._serialized_start=9009 - _globals['_SETCUSTOMTYPERESPONSE']._serialized_end=9048 - _globals['_SETCUSTOMTYPEARRAYREQUEST']._serialized_start=9050 - _globals['_SETCUSTOMTYPEARRAYREQUEST']._serialized_end=9156 - _globals['_SETCUSTOMTYPEARRAYRESPONSE']._serialized_start=9158 - _globals['_SETCUSTOMTYPEARRAYRESPONSE']._serialized_end=9202 - _globals['_GETCUSTOMTYPEREQUEST']._serialized_start=9204 - _globals['_GETCUSTOMTYPEREQUEST']._serialized_end=9262 - _globals['_GETCUSTOMTYPERESPONSE']._serialized_start=9264 - _globals['_GETCUSTOMTYPERESPONSE']._serialized_end=9346 - _globals['_GETCUSTOMTYPEARRAYREQUEST']._serialized_start=9348 - _globals['_GETCUSTOMTYPEARRAYREQUEST']._serialized_end=9439 - _globals['_GETCUSTOMTYPEARRAYRESPONSE']._serialized_start=9441 - _globals['_GETCUSTOMTYPEARRAYRESPONSE']._serialized_end=9528 - _globals['_GETANIVIDANCEWITHATWISTARRAYREQUEST']._serialized_start=9530 - _globals['_GETANIVIDANCEWITHATWISTARRAYREQUEST']._serialized_end=9621 - _globals['_GETANIVIDANCEWITHATWISTARRAYRESPONSE']._serialized_start=9623 - _globals['_GETANIVIDANCEWITHATWISTARRAYRESPONSE']._serialized_end=9717 - _globals['_GETANIVIDANCEWITHATWISTSTRINGREQUEST']._serialized_start=9719 - _globals['_GETANIVIDANCEWITHATWISTSTRINGREQUEST']._serialized_end=9793 - _globals['_GETANIVIDANCEWITHATWISTSTRINGRESPONSE']._serialized_start=9795 - _globals['_GETANIVIDANCEWITHATWISTSTRINGRESPONSE']._serialized_end=9889 - _globals['_DOUBLEALLTHENUMSREQUEST']._serialized_start=9891 - _globals['_DOUBLEALLTHENUMSREQUEST']._serialized_end=9969 - _globals['_DOUBLEALLTHENUMSRESPONSE']._serialized_start=9971 - _globals['_DOUBLEALLTHENUMSRESPONSE']._serialized_end=10013 - _globals['_ACCEPTLISTOFDURATIONSINSECONDSREQUEST']._serialized_start=10015 - _globals['_ACCEPTLISTOFDURATIONSINSECONDSREQUEST']._serialized_end=10106 - _globals['_ACCEPTLISTOFDURATIONSINSECONDSRESPONSE']._serialized_start=10108 - _globals['_ACCEPTLISTOFDURATIONSINSECONDSRESPONSE']._serialized_end=10164 - _globals['_RETURNDURATIONINSECONDSREQUEST']._serialized_start=10166 - _globals['_RETURNDURATIONINSECONDSREQUEST']._serialized_end=10234 - _globals['_RETURNDURATIONINSECONDSRESPONSE']._serialized_start=10236 - _globals['_RETURNDURATIONINSECONDSRESPONSE']._serialized_end=10304 - _globals['_RETURNLISTOFDURATIONSINSECONDSREQUEST']._serialized_start=10306 - _globals['_RETURNLISTOFDURATIONSINSECONDSREQUEST']._serialized_end=10409 - _globals['_RETURNLISTOFDURATIONSINSECONDSRESPONSE']._serialized_start=10411 - _globals['_RETURNLISTOFDURATIONSINSECONDSRESPONSE']._serialized_end=10487 - _globals['_CONFIGUREABCREQUEST']._serialized_start=10489 - _globals['_CONFIGUREABCREQUEST']._serialized_end=10546 - _globals['_CONFIGUREABCRESPONSE']._serialized_start=10548 - _globals['_CONFIGUREABCRESPONSE']._serialized_end=10586 - _globals['_CONFIGUREENUMSREQUEST']._serialized_start=10589 - _globals['_CONFIGUREENUMSREQUEST']._serialized_end=10858 - _globals['_CONFIGUREENUMSRESPONSE']._serialized_start=10860 - _globals['_CONFIGUREENUMSRESPONSE']._serialized_end=10900 - _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFEREXREQUEST']._serialized_start=10902 - _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFEREXREQUEST']._serialized_end=10983 - _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFEREXRESPONSE']._serialized_start=10985 - _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFEREXRESPONSE']._serialized_end=11070 - _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFEREXREQUEST']._serialized_start=11072 - _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFEREXREQUEST']._serialized_end=11176 - _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFEREXRESPONSE']._serialized_start=11178 - _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFEREXRESPONSE']._serialized_end=11240 - _globals['_FETCHWITHCUSTOMSIZEREQUEST']._serialized_start=11242 - _globals['_FETCHWITHCUSTOMSIZEREQUEST']._serialized_end=11362 - _globals['_FETCHWITHCUSTOMSIZERESPONSE']._serialized_start=11364 - _globals['_FETCHWITHCUSTOMSIZERESPONSE']._serialized_end=11432 - _globals['_GETPARAMETERWITHOVERRIDDENGRPCNAMEREQUEST']._serialized_start=11435 - _globals['_GETPARAMETERWITHOVERRIDDENGRPCNAMEREQUEST']._serialized_end=11626 - _globals['_GETPARAMETERWITHOVERRIDDENGRPCNAMERESPONSE']._serialized_start=11628 - _globals['_GETPARAMETERWITHOVERRIDDENGRPCNAMERESPONSE']._serialized_end=11718 - _globals['_IVIDANCEWITHTWISTWITHMULTIPLEARRAYSANDONEBUFFERSIZEREQUEST']._serialized_start=11720 - _globals['_IVIDANCEWITHTWISTWITHMULTIPLEARRAYSANDONEBUFFERSIZEREQUEST']._serialized_end=11816 - _globals['_IVIDANCEWITHTWISTWITHMULTIPLEARRAYSANDONEBUFFERSIZERESPONSE']._serialized_start=11819 - _globals['_IVIDANCEWITHTWISTWITHMULTIPLEARRAYSANDONEBUFFERSIZERESPONSE']._serialized_end=11973 - _globals['_FUNCTIONWITHOVERRIDDENGRPCNAME2XREQUEST']._serialized_start=11975 - _globals['_FUNCTIONWITHOVERRIDDENGRPCNAME2XREQUEST']._serialized_end=12052 - _globals['_FUNCTIONWITHOVERRIDDENGRPCNAME2XRESPONSE']._serialized_start=12054 - _globals['_FUNCTIONWITHOVERRIDDENGRPCNAME2XRESPONSE']._serialized_end=12112 - _globals['_STRINGVALUEDENUMNOENUMGENERATEDREQUEST']._serialized_start=12114 - _globals['_STRINGVALUEDENUMNOENUMGENERATEDREQUEST']._serialized_end=12213 - _globals['_STRINGVALUEDENUMNOENUMGENERATEDRESPONSE']._serialized_start=12215 - _globals['_STRINGVALUEDENUMNOENUMGENERATEDRESPONSE']._serialized_end=12272 - _globals['_IVIDANCEWITHATWISTCALCULATEDSIZEOUTREQUEST']._serialized_start=12274 - _globals['_IVIDANCEWITHATWISTCALCULATEDSIZEOUTREQUEST']._serialized_end=12354 - _globals['_IVIDANCEWITHATWISTCALCULATEDSIZEOUTRESPONSE']._serialized_start=12357 - _globals['_IVIDANCEWITHATWISTCALCULATEDSIZEOUTRESPONSE']._serialized_end=12499 - _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFERREQUEST']._serialized_start=12501 - _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFERREQUEST']._serialized_end=12603 - _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFERRESPONSE']._serialized_start=12605 - _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFERRESPONSE']._serialized_end=12665 - _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFERREQUEST']._serialized_start=12667 - _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFERREQUEST']._serialized_end=12746 - _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFERRESPONSE']._serialized_start=12748 - _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFERRESPONSE']._serialized_end=12831 - _globals['_CONTROL4022REQUEST']._serialized_start=12833 - _globals['_CONTROL4022REQUEST']._serialized_end=12899 - _globals['_CONTROL4022RESPONSE']._serialized_start=12901 - _globals['_CONTROL4022RESPONSE']._serialized_end=12938 - _globals['_ACCEPTVISESSIONARRAYREQUEST']._serialized_start=12940 - _globals['_ACCEPTVISESSIONARRAYREQUEST']._serialized_end=13039 - _globals['_ACCEPTVISESSIONARRAYRESPONSE']._serialized_start=13041 - _globals['_ACCEPTVISESSIONARRAYRESPONSE']._serialized_end=13087 - _globals['_ACCEPTVIUINT32ARRAYREQUEST']._serialized_start=13089 - _globals['_ACCEPTVIUINT32ARRAYREQUEST']._serialized_end=13176 - _globals['_ACCEPTVIUINT32ARRAYRESPONSE']._serialized_start=13178 - _globals['_ACCEPTVIUINT32ARRAYRESPONSE']._serialized_end=13223 - _globals['_BOOLARRAYINPUTFUNCTIONREQUEST']._serialized_start=13225 - _globals['_BOOLARRAYINPUTFUNCTIONREQUEST']._serialized_end=13338 - _globals['_BOOLARRAYINPUTFUNCTIONRESPONSE']._serialized_start=13340 - _globals['_BOOLARRAYINPUTFUNCTIONRESPONSE']._serialized_end=13388 - _globals['_CLOSEEXTCALREQUEST']._serialized_start=13390 - _globals['_CLOSEEXTCALREQUEST']._serialized_end=13462 - _globals['_CLOSEEXTCALRESPONSE']._serialized_start=13464 - _globals['_CLOSEEXTCALRESPONSE']._serialized_end=13501 - _globals['_COMMANDWITHRESERVEDPARAMREQUEST']._serialized_start=13503 - _globals['_COMMANDWITHRESERVEDPARAMREQUEST']._serialized_end=13572 - _globals['_COMMANDWITHRESERVEDPARAMRESPONSE']._serialized_start=13574 - _globals['_COMMANDWITHRESERVEDPARAMRESPONSE']._serialized_end=13624 - _globals['_CREATECONFIGURATIONLISTREQUEST']._serialized_start=13626 - _globals['_CREATECONFIGURATIONLISTREQUEST']._serialized_end=13716 - _globals['_CREATECONFIGURATIONLISTRESPONSE']._serialized_start=13718 - _globals['_CREATECONFIGURATIONLISTRESPONSE']._serialized_end=13767 - _globals['_CUSTOMNESTEDSTRUCTROUNDTRIPREQUEST']._serialized_start=13769 - _globals['_CUSTOMNESTEDSTRUCTROUNDTRIPREQUEST']._serialized_end=13876 - _globals['_CUSTOMNESTEDSTRUCTROUNDTRIPRESPONSE']._serialized_start=13878 - _globals['_CUSTOMNESTEDSTRUCTROUNDTRIPRESPONSE']._serialized_end=14003 - _globals['_GETBITFIELDASENUMARRAYREQUEST']._serialized_start=14005 - _globals['_GETBITFIELDASENUMARRAYREQUEST']._serialized_end=14036 - _globals['_GETBITFIELDASENUMARRAYRESPONSE']._serialized_start=14038 - _globals['_GETBITFIELDASENUMARRAYRESPONSE']._serialized_end=14149 - _globals['_GETANIVIDANCEWITHATWISTARRAYOFCUSTOMTYPEREQUEST']._serialized_start=14151 - _globals['_GETANIVIDANCEWITHATWISTARRAYOFCUSTOMTYPEREQUEST']._serialized_end=14236 - _globals['_GETANIVIDANCEWITHATWISTARRAYOFCUSTOMTYPERESPONSE']._serialized_start=14239 - _globals['_GETANIVIDANCEWITHATWISTARRAYOFCUSTOMTYPERESPONSE']._serialized_end=14376 - _globals['_GETANIVIDANCEWITHATWISTARRAYWITHINPUTARRAYREQUEST']._serialized_start=14378 - _globals['_GETANIVIDANCEWITHATWISTARRAYWITHINPUTARRAYREQUEST']._serialized_end=14446 - _globals['_GETANIVIDANCEWITHATWISTARRAYWITHINPUTARRAYRESPONSE']._serialized_start=14448 - _globals['_GETANIVIDANCEWITHATWISTARRAYWITHINPUTARRAYRESPONSE']._serialized_end=14556 - _globals['_GETANIVIDANCEWITHATWISTBYTEARRAYREQUEST']._serialized_start=14558 - _globals['_GETANIVIDANCEWITHATWISTBYTEARRAYREQUEST']._serialized_end=14599 - _globals['_GETANIVIDANCEWITHATWISTBYTEARRAYRESPONSE']._serialized_start=14601 - _globals['_GETANIVIDANCEWITHATWISTBYTEARRAYRESPONSE']._serialized_end=14699 - _globals['_GETANIVIDANCEWITHATWISTSTRINGSTRLENBUGREQUEST']._serialized_start=14701 - _globals['_GETANIVIDANCEWITHATWISTSTRINGSTRLENBUGREQUEST']._serialized_end=14748 - _globals['_GETANIVIDANCEWITHATWISTSTRINGSTRLENBUGRESPONSE']._serialized_start=14750 - _globals['_GETANIVIDANCEWITHATWISTSTRINGSTRLENBUGRESPONSE']._serialized_end=14855 - _globals['_GETARRAYSIZEFORCUSTOMCODEREQUEST']._serialized_start=14857 - _globals['_GETARRAYSIZEFORCUSTOMCODEREQUEST']._serialized_end=14927 - _globals['_GETARRAYSIZEFORCUSTOMCODERESPONSE']._serialized_start=14929 - _globals['_GETARRAYSIZEFORCUSTOMCODERESPONSE']._serialized_end=14998 - _globals['_GETARRAYVIUINT8WITHENUMREQUEST']._serialized_start=15000 - _globals['_GETARRAYVIUINT8WITHENUMREQUEST']._serialized_end=15087 - _globals['_GETARRAYVIUINT8WITHENUMRESPONSE']._serialized_start=15090 - _globals['_GETARRAYVIUINT8WITHENUMRESPONSE']._serialized_end=15229 - _globals['_GETVIUINT8REQUEST']._serialized_start=15231 - _globals['_GETVIUINT8REQUEST']._serialized_end=15286 - _globals['_GETVIUINT8RESPONSE']._serialized_start=15288 - _globals['_GETVIUINT8RESPONSE']._serialized_end=15348 - _globals['_GETVIINT32ARRAYREQUEST']._serialized_start=15350 - _globals['_GETVIINT32ARRAYREQUEST']._serialized_end=15429 - _globals['_GETVIINT32ARRAYRESPONSE']._serialized_start=15431 - _globals['_GETVIINT32ARRAYRESPONSE']._serialized_end=15493 - _globals['_GETVIUINT32ARRAYREQUEST']._serialized_start=15495 - _globals['_GETVIUINT32ARRAYREQUEST']._serialized_end=15575 - _globals['_GETVIUINT32ARRAYRESPONSE']._serialized_start=15577 - _globals['_GETVIUINT32ARRAYRESPONSE']._serialized_end=15642 - _globals['_METHODUSINGENUMWITHGRPCNAMEVALUESREQUEST']._serialized_start=15645 - _globals['_METHODUSINGENUMWITHGRPCNAMEVALUESREQUEST']._serialized_end=15791 - _globals['_METHODUSINGENUMWITHGRPCNAMEVALUESRESPONSE']._serialized_start=15793 - _globals['_METHODUSINGENUMWITHGRPCNAMEVALUESRESPONSE']._serialized_end=15852 - _globals['_METHODWITHGETLASTERRORPARAMREQUEST']._serialized_start=15854 - _globals['_METHODWITHGETLASTERRORPARAMREQUEST']._serialized_end=15890 - _globals['_METHODWITHGETLASTERRORPARAMRESPONSE']._serialized_start=15892 - _globals['_METHODWITHGETLASTERRORPARAMRESPONSE']._serialized_end=15969 - _globals['_METHODWITHGRPCONLYPARAMREQUEST']._serialized_start=15971 - _globals['_METHODWITHGRPCONLYPARAMREQUEST']._serialized_end=16025 - _globals['_METHODWITHGRPCONLYPARAMRESPONSE']._serialized_start=16027 - _globals['_METHODWITHGRPCONLYPARAMRESPONSE']._serialized_end=16101 - _globals['_METHODUSINGWHOLEANDFRACTIONALNUMBERSREQUEST']._serialized_start=16103 - _globals['_METHODUSINGWHOLEANDFRACTIONALNUMBERSREQUEST']._serialized_end=16148 - _globals['_METHODUSINGWHOLEANDFRACTIONALNUMBERSRESPONSE']._serialized_start=16151 - _globals['_METHODUSINGWHOLEANDFRACTIONALNUMBERSRESPONSE']._serialized_end=16392 - _globals['_METHODUSINGWHOLEMAPPEDNUMBERSREQUEST']._serialized_start=16394 - _globals['_METHODUSINGWHOLEMAPPEDNUMBERSREQUEST']._serialized_end=16432 - _globals['_METHODUSINGWHOLEMAPPEDNUMBERSRESPONSE']._serialized_start=16435 - _globals['_METHODUSINGWHOLEMAPPEDNUMBERSRESPONSE']._serialized_end=16584 - _globals['_METHODWITHGRPCFIELDNUMBERREQUEST']._serialized_start=16586 - _globals['_METHODWITHGRPCFIELDNUMBERREQUEST']._serialized_end=16645 - _globals['_METHODWITHGRPCFIELDNUMBERRESPONSE']._serialized_start=16647 - _globals['_METHODWITHGRPCFIELDNUMBERRESPONSE']._serialized_end=16698 - _globals['_METHODWITHPROTOONLYPARAMETERREQUEST']._serialized_start=16700 - _globals['_METHODWITHPROTOONLYPARAMETERREQUEST']._serialized_end=16762 - _globals['_METHODWITHPROTOONLYPARAMETERRESPONSE']._serialized_start=16764 - _globals['_METHODWITHPROTOONLYPARAMETERRESPONSE']._serialized_end=16818 - _globals['_READDATAWITHINOUTIVITWISTREQUEST']._serialized_start=16820 - _globals['_READDATAWITHINOUTIVITWISTREQUEST']._serialized_end=16854 - _globals['_READDATAWITHINOUTIVITWISTRESPONSE']._serialized_start=16856 - _globals['_READDATAWITHINOUTIVITWISTRESPONSE']._serialized_end=16942 - _globals['_READDATAWITHMULTIPLEIVITWISTPARAMSETSREQUEST']._serialized_start=16944 - _globals['_READDATAWITHMULTIPLEIVITWISTPARAMSETSREQUEST']._serialized_end=16990 - _globals['_READDATAWITHMULTIPLEIVITWISTPARAMSETSRESPONSE']._serialized_start=16993 - _globals['_READDATAWITHMULTIPLEIVITWISTPARAMSETSRESPONSE']._serialized_end=17148 - _globals['_INITEXTCALREQUEST']._serialized_start=17150 - _globals['_INITEXTCALREQUEST']._serialized_end=17244 - _globals['_INITEXTCALRESPONSE']._serialized_start=17246 - _globals['_INITEXTCALRESPONSE']._serialized_end=17318 - _globals['_INITWITHVARARGSREQUEST']._serialized_start=17320 - _globals['_INITWITHVARARGSREQUEST']._serialized_end=17444 - _globals['_INITWITHVARARGSRESPONSE']._serialized_start=17446 - _globals['_INITWITHVARARGSRESPONSE']._serialized_end=17523 - _globals['_MULTIPLEARRAYSSAMESIZEWITHOPTIONALREQUEST']._serialized_start=17526 - _globals['_MULTIPLEARRAYSSAMESIZEWITHOPTIONALREQUEST']._serialized_end=17721 - _globals['_MULTIPLEARRAYSSAMESIZEWITHOPTIONALRESPONSE']._serialized_start=17723 - _globals['_MULTIPLEARRAYSSAMESIZEWITHOPTIONALRESPONSE']._serialized_end=17783 - _globals['_USEATWODIMENSIONPARAMETERREQUEST']._serialized_start=17785 - _globals['_USEATWODIMENSIONPARAMETERREQUEST']._serialized_end=17893 - _globals['_USEATWODIMENSIONPARAMETERRESPONSE']._serialized_start=17895 - _globals['_USEATWODIMENSIONPARAMETERRESPONSE']._serialized_end=17946 - _globals['_VIUINT8ARRAYINPUTFUNCTIONREQUEST']._serialized_start=17948 - _globals['_VIUINT8ARRAYINPUTFUNCTIONREQUEST']._serialized_end=18064 - _globals['_VIUINT8ARRAYINPUTFUNCTIONRESPONSE']._serialized_start=18066 - _globals['_VIUINT8ARRAYINPUTFUNCTIONRESPONSE']._serialized_end=18117 - _globals['_VIUINT8ARRAYOUTPUTFUNCTIONREQUEST']._serialized_start=18119 - _globals['_VIUINT8ARRAYOUTPUTFUNCTIONREQUEST']._serialized_end=18218 - _globals['_VIUINT8ARRAYOUTPUTFUNCTIONRESPONSE']._serialized_start=18220 - _globals['_VIUINT8ARRAYOUTPUTFUNCTIONRESPONSE']._serialized_end=18290 - _globals['_VIINT16ARRAYINPUTFUNCTIONREQUEST']._serialized_start=18292 - _globals['_VIINT16ARRAYINPUTFUNCTIONREQUEST']._serialized_end=18380 - _globals['_VIINT16ARRAYINPUTFUNCTIONRESPONSE']._serialized_start=18382 - _globals['_VIINT16ARRAYINPUTFUNCTIONRESPONSE']._serialized_end=18433 - _globals['_NIFAKE']._serialized_start=21555 - _globals['_NIFAKE']._serialized_end=33113 + _globals['_NICOMPLEXNUMBERF32_STRUCT']._serialized_start=451 + _globals['_NICOMPLEXNUMBERF32_STRUCT']._serialized_end=511 + _globals['_STRINGANDTURTLE']._serialized_start=513 + _globals['_STRINGANDTURTLE']._serialized_end=587 + _globals['_CUSTOMNAMEDTYPE']._serialized_start=589 + _globals['_CUSTOMNAMEDTYPE']._serialized_end=626 + _globals['_ABORTREQUEST']._serialized_start=628 + _globals['_ABORTREQUEST']._serialized_end=678 + _globals['_ABORTRESPONSE']._serialized_start=680 + _globals['_ABORTRESPONSE']._serialized_end=711 + _globals['_BOOLARRAYOUTPUTFUNCTIONREQUEST']._serialized_start=713 + _globals['_BOOLARRAYOUTPUTFUNCTIONREQUEST']._serialized_end=809 + _globals['_BOOLARRAYOUTPUTFUNCTIONRESPONSE']._serialized_start=811 + _globals['_BOOLARRAYOUTPUTFUNCTIONRESPONSE']._serialized_end=878 + _globals['_CLOSEREQUEST']._serialized_start=880 + _globals['_CLOSEREQUEST']._serialized_end=930 + _globals['_CLOSERESPONSE']._serialized_start=932 + _globals['_CLOSERESPONSE']._serialized_end=963 + _globals['_ENUMARRAYOUTPUTFUNCTIONREQUEST']._serialized_start=965 + _globals['_ENUMARRAYOUTPUTFUNCTIONREQUEST']._serialized_end=1061 + _globals['_ENUMARRAYOUTPUTFUNCTIONRESPONSE']._serialized_start=1063 + _globals['_ENUMARRAYOUTPUTFUNCTIONRESPONSE']._serialized_end=1173 + _globals['_ENUMINPUTFUNCTIONWITHDEFAULTSREQUEST']._serialized_start=1176 + _globals['_ENUMINPUTFUNCTIONWITHDEFAULTSREQUEST']._serialized_end=1332 + _globals['_ENUMINPUTFUNCTIONWITHDEFAULTSRESPONSE']._serialized_start=1334 + _globals['_ENUMINPUTFUNCTIONWITHDEFAULTSRESPONSE']._serialized_end=1389 + _globals['_STRINGVALUEDENUMINPUTFUNCTIONWITHDEFAULTSREQUEST']._serialized_start=1392 + _globals['_STRINGVALUEDENUMINPUTFUNCTIONWITHDEFAULTSREQUEST']._serialized_end=1598 + _globals['_STRINGVALUEDENUMINPUTFUNCTIONWITHDEFAULTSRESPONSE']._serialized_start=1600 + _globals['_STRINGVALUEDENUMINPUTFUNCTIONWITHDEFAULTSRESPONSE']._serialized_end=1667 + _globals['_ERRORMESSAGEREQUEST']._serialized_start=1669 + _globals['_ERRORMESSAGEREQUEST']._serialized_end=1746 + _globals['_ERRORMESSAGERESPONSE']._serialized_start=1748 + _globals['_ERRORMESSAGERESPONSE']._serialized_end=1809 + _globals['_FETCHWAVEFORMREQUEST']._serialized_start=1811 + _globals['_FETCHWAVEFORMREQUEST']._serialized_end=1896 + _globals['_FETCHWAVEFORMRESPONSE']._serialized_start=1898 + _globals['_FETCHWAVEFORMRESPONSE']._serialized_end=1994 + _globals['_GETABOOLEANREQUEST']._serialized_start=1996 + _globals['_GETABOOLEANREQUEST']._serialized_end=2052 + _globals['_GETABOOLEANRESPONSE']._serialized_start=2054 + _globals['_GETABOOLEANRESPONSE']._serialized_end=2110 + _globals['_GETANUMBERREQUEST']._serialized_start=2112 + _globals['_GETANUMBERREQUEST']._serialized_end=2167 + _globals['_GETANUMBERRESPONSE']._serialized_start=2169 + _globals['_GETANUMBERRESPONSE']._serialized_end=2223 + _globals['_GETASTRINGOFFIXEDMAXIMUMSIZEREQUEST']._serialized_start=2225 + _globals['_GETASTRINGOFFIXEDMAXIMUMSIZEREQUEST']._serialized_end=2298 + _globals['_GETASTRINGOFFIXEDMAXIMUMSIZERESPONSE']._serialized_start=2300 + _globals['_GETASTRINGOFFIXEDMAXIMUMSIZERESPONSE']._serialized_end=2372 + _globals['_GETANIVIDANCECHARARRAYREQUEST']._serialized_start=2374 + _globals['_GETANIVIDANCECHARARRAYREQUEST']._serialized_end=2441 + _globals['_GETANIVIDANCECHARARRAYRESPONSE']._serialized_start=2443 + _globals['_GETANIVIDANCECHARARRAYRESPONSE']._serialized_end=2511 + _globals['_GETARRAYUSINGIVIDANCEREQUEST']._serialized_start=2513 + _globals['_GETARRAYUSINGIVIDANCEREQUEST']._serialized_end=2579 + _globals['_GETARRAYUSINGIVIDANCERESPONSE']._serialized_start=2581 + _globals['_GETARRAYUSINGIVIDANCERESPONSE']._serialized_end=2647 + _globals['_GETATTRIBUTEVIBOOLEANREQUEST']._serialized_start=2650 + _globals['_GETATTRIBUTEVIBOOLEANREQUEST']._serialized_end=2790 + _globals['_GETATTRIBUTEVIBOOLEANRESPONSE']._serialized_start=2792 + _globals['_GETATTRIBUTEVIBOOLEANRESPONSE']._serialized_end=2864 + _globals['_GETATTRIBUTEVIINT32REQUEST']._serialized_start=2867 + _globals['_GETATTRIBUTEVIINT32REQUEST']._serialized_end=3005 + _globals['_GETATTRIBUTEVIINT32RESPONSE']._serialized_start=3007 + _globals['_GETATTRIBUTEVIINT32RESPONSE']._serialized_end=3077 + _globals['_GETATTRIBUTEVIINT64REQUEST']._serialized_start=3080 + _globals['_GETATTRIBUTEVIINT64REQUEST']._serialized_end=3218 + _globals['_GETATTRIBUTEVIINT64RESPONSE']._serialized_start=3220 + _globals['_GETATTRIBUTEVIINT64RESPONSE']._serialized_end=3290 + _globals['_GETATTRIBUTEVIREAL64REQUEST']._serialized_start=3293 + _globals['_GETATTRIBUTEVIREAL64REQUEST']._serialized_end=3432 + _globals['_GETATTRIBUTEVIREAL64RESPONSE']._serialized_start=3434 + _globals['_GETATTRIBUTEVIREAL64RESPONSE']._serialized_end=3505 + _globals['_GETATTRIBUTEVISESSIONREQUEST']._serialized_start=3508 + _globals['_GETATTRIBUTEVISESSIONREQUEST']._serialized_end=3648 + _globals['_GETATTRIBUTEVISESSIONRESPONSE']._serialized_start=3650 + _globals['_GETATTRIBUTEVISESSIONRESPONSE']._serialized_end=3746 + _globals['_GETATTRIBUTEVISTRINGREQUEST']._serialized_start=3749 + _globals['_GETATTRIBUTEVISTRINGREQUEST']._serialized_end=3888 + _globals['_GETATTRIBUTEVISTRINGRESPONSE']._serialized_start=3890 + _globals['_GETATTRIBUTEVISTRINGRESPONSE']._serialized_end=3961 + _globals['_GETCALDATEANDTIMEREQUEST']._serialized_start=3963 + _globals['_GETCALDATEANDTIMEREQUEST']._serialized_end=4043 + _globals['_GETCALDATEANDTIMERESPONSE']._serialized_start=4045 + _globals['_GETCALDATEANDTIMERESPONSE']._serialized_end=4160 + _globals['_GETCALINTERVALREQUEST']._serialized_start=4162 + _globals['_GETCALINTERVALREQUEST']._serialized_end=4221 + _globals['_GETCALINTERVALRESPONSE']._serialized_start=4223 + _globals['_GETCALINTERVALRESPONSE']._serialized_end=4279 + _globals['_GETENUMVALUEREQUEST']._serialized_start=4281 + _globals['_GETENUMVALUEREQUEST']._serialized_end=4338 + _globals['_GETENUMVALUERESPONSE']._serialized_start=4340 + _globals['_GETENUMVALUERESPONSE']._serialized_end=4459 + _globals['_GETERRORREQUEST']._serialized_start=4461 + _globals['_GETERRORREQUEST']._serialized_end=4514 + _globals['_GETERRORRESPONSE']._serialized_start=4516 + _globals['_GETERRORRESPONSE']._serialized_end=4591 + _globals['_INITWITHOPTIONSREQUEST']._serialized_start=4594 + _globals['_INITWITHOPTIONSREQUEST']._serialized_end=4805 + _globals['_INITWITHOPTIONSRESPONSE']._serialized_start=4807 + _globals['_INITWITHOPTIONSRESPONSE']._serialized_end=4917 + _globals['_MULTIPLEARRAYTYPESREQUEST']._serialized_start=4920 + _globals['_MULTIPLEARRAYTYPESREQUEST']._serialized_end=5074 + _globals['_MULTIPLEARRAYTYPESRESPONSE']._serialized_start=5076 + _globals['_MULTIPLEARRAYTYPESRESPONSE']._serialized_end=5180 + _globals['_MULTIPLEARRAYSSAMESIZEREQUEST']._serialized_start=5183 + _globals['_MULTIPLEARRAYSSAMESIZEREQUEST']._serialized_end=5318 + _globals['_MULTIPLEARRAYSSAMESIZERESPONSE']._serialized_start=5320 + _globals['_MULTIPLEARRAYSSAMESIZERESPONSE']._serialized_end=5368 + _globals['_MULTIPLEARRAYSDIFFERENTSIZEREQUEST']._serialized_start=5370 + _globals['_MULTIPLEARRAYSDIFFERENTSIZEREQUEST']._serialized_end=5484 + _globals['_MULTIPLEARRAYSDIFFERENTSIZERESPONSE']._serialized_start=5486 + _globals['_MULTIPLEARRAYSDIFFERENTSIZERESPONSE']._serialized_end=5539 + _globals['_MIXEDIVIDANCEANDLENMECHANISMREQUEST']._serialized_start=5541 + _globals['_MIXEDIVIDANCEANDLENMECHANISMREQUEST']._serialized_end=5636 + _globals['_MIXEDIVIDANCEANDLENMECHANISMRESPONSE']._serialized_start=5638 + _globals['_MIXEDIVIDANCEANDLENMECHANISMRESPONSE']._serialized_end=5714 + _globals['_ONEINPUTFUNCTIONREQUEST']._serialized_start=5716 + _globals['_ONEINPUTFUNCTIONREQUEST']._serialized_end=5795 + _globals['_ONEINPUTFUNCTIONRESPONSE']._serialized_start=5797 + _globals['_ONEINPUTFUNCTIONRESPONSE']._serialized_end=5839 + _globals['_PARAMETERSAREMULTIPLETYPESREQUEST']._serialized_start=5842 + _globals['_PARAMETERSAREMULTIPLETYPESREQUEST']._serialized_end=6198 + _globals['_PARAMETERSAREMULTIPLETYPESRESPONSE']._serialized_start=6200 + _globals['_PARAMETERSAREMULTIPLETYPESRESPONSE']._serialized_end=6252 + _globals['_POORLYNAMEDSIMPLEFUNCTIONREQUEST']._serialized_start=6254 + _globals['_POORLYNAMEDSIMPLEFUNCTIONREQUEST']._serialized_end=6324 + _globals['_POORLYNAMEDSIMPLEFUNCTIONRESPONSE']._serialized_start=6326 + _globals['_POORLYNAMEDSIMPLEFUNCTIONRESPONSE']._serialized_end=6377 + _globals['_READREQUEST']._serialized_start=6379 + _globals['_READREQUEST']._serialized_end=6450 + _globals['_READRESPONSE']._serialized_start=6452 + _globals['_READRESPONSE']._serialized_end=6499 + _globals['_READFROMCHANNELREQUEST']._serialized_start=6501 + _globals['_READFROMCHANNELREQUEST']._serialized_end=6605 + _globals['_READFROMCHANNELRESPONSE']._serialized_start=6607 + _globals['_READFROMCHANNELRESPONSE']._serialized_end=6665 + _globals['_RETURNANUMBERANDASTRINGREQUEST']._serialized_start=6667 + _globals['_RETURNANUMBERANDASTRINGREQUEST']._serialized_end=6735 + _globals['_RETURNANUMBERANDASTRINGRESPONSE']._serialized_start=6737 + _globals['_RETURNANUMBERANDASTRINGRESPONSE']._serialized_end=6822 + _globals['_RETURNMULTIPLETYPESREQUEST']._serialized_start=6824 + _globals['_RETURNMULTIPLETYPESREQUEST']._serialized_end=6908 + _globals['_RETURNMULTIPLETYPESRESPONSE']._serialized_start=6911 + _globals['_RETURNMULTIPLETYPESRESPONSE']._serialized_end=7210 + _globals['_SETATTRIBUTEVIBOOLEANREQUEST']._serialized_start=7213 + _globals['_SETATTRIBUTEVIBOOLEANREQUEST']._serialized_end=7378 + _globals['_SETATTRIBUTEVIBOOLEANRESPONSE']._serialized_start=7380 + _globals['_SETATTRIBUTEVIBOOLEANRESPONSE']._serialized_end=7427 + _globals['_SETATTRIBUTEVIINT32REQUEST']._serialized_start=7430 + _globals['_SETATTRIBUTEVIINT32REQUEST']._serialized_end=7691 + _globals['_SETATTRIBUTEVIINT32RESPONSE']._serialized_start=7693 + _globals['_SETATTRIBUTEVIINT32RESPONSE']._serialized_end=7738 + _globals['_SETATTRIBUTEVIINT64REQUEST']._serialized_start=7741 + _globals['_SETATTRIBUTEVIINT64REQUEST']._serialized_end=7908 + _globals['_SETATTRIBUTEVIINT64RESPONSE']._serialized_start=7910 + _globals['_SETATTRIBUTEVIINT64RESPONSE']._serialized_end=7955 + _globals['_SETATTRIBUTEVIREAL64REQUEST']._serialized_start=7958 + _globals['_SETATTRIBUTEVIREAL64REQUEST']._serialized_end=8303 + _globals['_SETATTRIBUTEVIREAL64RESPONSE']._serialized_start=8305 + _globals['_SETATTRIBUTEVIREAL64RESPONSE']._serialized_end=8351 + _globals['_SETATTRIBUTEVISTRINGREQUEST']._serialized_start=8354 + _globals['_SETATTRIBUTEVISTRINGREQUEST']._serialized_end=8522 + _globals['_SETATTRIBUTEVISTRINGRESPONSE']._serialized_start=8524 + _globals['_SETATTRIBUTEVISTRINGRESPONSE']._serialized_end=8570 + _globals['_TWOINPUTFUNCTIONREQUEST']._serialized_start=8572 + _globals['_TWOINPUTFUNCTIONREQUEST']._serialized_end=8669 + _globals['_TWOINPUTFUNCTIONRESPONSE']._serialized_start=8671 + _globals['_TWOINPUTFUNCTIONRESPONSE']._serialized_end=8713 + _globals['_USE64BITNUMBERREQUEST']._serialized_start=8715 + _globals['_USE64BITNUMBERREQUEST']._serialized_end=8789 + _globals['_USE64BITNUMBERRESPONSE']._serialized_start=8791 + _globals['_USE64BITNUMBERRESPONSE']._serialized_end=8847 + _globals['_WRITEWAVEFORMREQUEST']._serialized_start=8849 + _globals['_WRITEWAVEFORMREQUEST']._serialized_end=8925 + _globals['_WRITEWAVEFORMRESPONSE']._serialized_start=8927 + _globals['_WRITEWAVEFORMRESPONSE']._serialized_end=8966 + _globals['_WRITEWAVEFORMNUMPYCOMPLEX128REQUEST']._serialized_start=8969 + _globals['_WRITEWAVEFORMNUMPYCOMPLEX128REQUEST']._serialized_end=9108 + _globals['_WRITEWAVEFORMNUMPYCOMPLEX128RESPONSE']._serialized_start=9110 + _globals['_WRITEWAVEFORMNUMPYCOMPLEX128RESPONSE']._serialized_end=9164 + _globals['_WRITEWAVEFORMNUMPYCOMPLEX64REQUEST']._serialized_start=9167 + _globals['_WRITEWAVEFORMNUMPYCOMPLEX64REQUEST']._serialized_end=9308 + _globals['_WRITEWAVEFORMNUMPYCOMPLEX64RESPONSE']._serialized_start=9310 + _globals['_WRITEWAVEFORMNUMPYCOMPLEX64RESPONSE']._serialized_end=9363 + _globals['_WRITEWAVEFORMNUMPYCOMPLEXINTERLEAVEDI16REQUEST']._serialized_start=9366 + _globals['_WRITEWAVEFORMNUMPYCOMPLEXINTERLEAVEDI16REQUEST']._serialized_end=9513 + _globals['_WRITEWAVEFORMNUMPYCOMPLEXINTERLEAVEDI16RESPONSE']._serialized_start=9515 + _globals['_WRITEWAVEFORMNUMPYCOMPLEXINTERLEAVEDI16RESPONSE']._serialized_end=9580 + _globals['_SETCUSTOMTYPEREQUEST']._serialized_start=9582 + _globals['_SETCUSTOMTYPEREQUEST']._serialized_end=9683 + _globals['_SETCUSTOMTYPERESPONSE']._serialized_start=9685 + _globals['_SETCUSTOMTYPERESPONSE']._serialized_end=9724 + _globals['_SETCUSTOMTYPEARRAYREQUEST']._serialized_start=9726 + _globals['_SETCUSTOMTYPEARRAYREQUEST']._serialized_end=9832 + _globals['_SETCUSTOMTYPEARRAYRESPONSE']._serialized_start=9834 + _globals['_SETCUSTOMTYPEARRAYRESPONSE']._serialized_end=9878 + _globals['_GETCUSTOMTYPEREQUEST']._serialized_start=9880 + _globals['_GETCUSTOMTYPEREQUEST']._serialized_end=9938 + _globals['_GETCUSTOMTYPERESPONSE']._serialized_start=9940 + _globals['_GETCUSTOMTYPERESPONSE']._serialized_end=10022 + _globals['_GETCUSTOMTYPEARRAYREQUEST']._serialized_start=10024 + _globals['_GETCUSTOMTYPEARRAYREQUEST']._serialized_end=10115 + _globals['_GETCUSTOMTYPEARRAYRESPONSE']._serialized_start=10117 + _globals['_GETCUSTOMTYPEARRAYRESPONSE']._serialized_end=10204 + _globals['_GETANIVIDANCEWITHATWISTARRAYREQUEST']._serialized_start=10206 + _globals['_GETANIVIDANCEWITHATWISTARRAYREQUEST']._serialized_end=10297 + _globals['_GETANIVIDANCEWITHATWISTARRAYRESPONSE']._serialized_start=10299 + _globals['_GETANIVIDANCEWITHATWISTARRAYRESPONSE']._serialized_end=10393 + _globals['_GETANIVIDANCEWITHATWISTSTRINGREQUEST']._serialized_start=10395 + _globals['_GETANIVIDANCEWITHATWISTSTRINGREQUEST']._serialized_end=10469 + _globals['_GETANIVIDANCEWITHATWISTSTRINGRESPONSE']._serialized_start=10471 + _globals['_GETANIVIDANCEWITHATWISTSTRINGRESPONSE']._serialized_end=10565 + _globals['_DOUBLEALLTHENUMSREQUEST']._serialized_start=10567 + _globals['_DOUBLEALLTHENUMSREQUEST']._serialized_end=10645 + _globals['_DOUBLEALLTHENUMSRESPONSE']._serialized_start=10647 + _globals['_DOUBLEALLTHENUMSRESPONSE']._serialized_end=10689 + _globals['_ACCEPTLISTOFDURATIONSINSECONDSREQUEST']._serialized_start=10691 + _globals['_ACCEPTLISTOFDURATIONSINSECONDSREQUEST']._serialized_end=10782 + _globals['_ACCEPTLISTOFDURATIONSINSECONDSRESPONSE']._serialized_start=10784 + _globals['_ACCEPTLISTOFDURATIONSINSECONDSRESPONSE']._serialized_end=10840 + _globals['_RETURNDURATIONINSECONDSREQUEST']._serialized_start=10842 + _globals['_RETURNDURATIONINSECONDSREQUEST']._serialized_end=10910 + _globals['_RETURNDURATIONINSECONDSRESPONSE']._serialized_start=10912 + _globals['_RETURNDURATIONINSECONDSRESPONSE']._serialized_end=10980 + _globals['_RETURNLISTOFDURATIONSINSECONDSREQUEST']._serialized_start=10982 + _globals['_RETURNLISTOFDURATIONSINSECONDSREQUEST']._serialized_end=11085 + _globals['_RETURNLISTOFDURATIONSINSECONDSRESPONSE']._serialized_start=11087 + _globals['_RETURNLISTOFDURATIONSINSECONDSRESPONSE']._serialized_end=11163 + _globals['_CONFIGUREABCREQUEST']._serialized_start=11165 + _globals['_CONFIGUREABCREQUEST']._serialized_end=11222 + _globals['_CONFIGUREABCRESPONSE']._serialized_start=11224 + _globals['_CONFIGUREABCRESPONSE']._serialized_end=11262 + _globals['_CONFIGUREENUMSREQUEST']._serialized_start=11265 + _globals['_CONFIGUREENUMSREQUEST']._serialized_end=11534 + _globals['_CONFIGUREENUMSRESPONSE']._serialized_start=11536 + _globals['_CONFIGUREENUMSRESPONSE']._serialized_end=11576 + _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFEREXREQUEST']._serialized_start=11578 + _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFEREXREQUEST']._serialized_end=11659 + _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFEREXRESPONSE']._serialized_start=11661 + _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFEREXRESPONSE']._serialized_end=11746 + _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFEREXREQUEST']._serialized_start=11748 + _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFEREXREQUEST']._serialized_end=11852 + _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFEREXRESPONSE']._serialized_start=11854 + _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFEREXRESPONSE']._serialized_end=11916 + _globals['_FETCHWITHCUSTOMSIZEREQUEST']._serialized_start=11918 + _globals['_FETCHWITHCUSTOMSIZEREQUEST']._serialized_end=12038 + _globals['_FETCHWITHCUSTOMSIZERESPONSE']._serialized_start=12040 + _globals['_FETCHWITHCUSTOMSIZERESPONSE']._serialized_end=12108 + _globals['_GETPARAMETERWITHOVERRIDDENGRPCNAMEREQUEST']._serialized_start=12111 + _globals['_GETPARAMETERWITHOVERRIDDENGRPCNAMEREQUEST']._serialized_end=12302 + _globals['_GETPARAMETERWITHOVERRIDDENGRPCNAMERESPONSE']._serialized_start=12304 + _globals['_GETPARAMETERWITHOVERRIDDENGRPCNAMERESPONSE']._serialized_end=12394 + _globals['_IVIDANCEWITHTWISTWITHMULTIPLEARRAYSANDONEBUFFERSIZEREQUEST']._serialized_start=12396 + _globals['_IVIDANCEWITHTWISTWITHMULTIPLEARRAYSANDONEBUFFERSIZEREQUEST']._serialized_end=12492 + _globals['_IVIDANCEWITHTWISTWITHMULTIPLEARRAYSANDONEBUFFERSIZERESPONSE']._serialized_start=12495 + _globals['_IVIDANCEWITHTWISTWITHMULTIPLEARRAYSANDONEBUFFERSIZERESPONSE']._serialized_end=12649 + _globals['_FUNCTIONWITHOVERRIDDENGRPCNAME2XREQUEST']._serialized_start=12651 + _globals['_FUNCTIONWITHOVERRIDDENGRPCNAME2XREQUEST']._serialized_end=12728 + _globals['_FUNCTIONWITHOVERRIDDENGRPCNAME2XRESPONSE']._serialized_start=12730 + _globals['_FUNCTIONWITHOVERRIDDENGRPCNAME2XRESPONSE']._serialized_end=12788 + _globals['_FUNCTIONWITH3DNUMPYARRAYOFNUMPYCOMPLEX128INPUTPARAMETERREQUEST']._serialized_start=12791 + _globals['_FUNCTIONWITH3DNUMPYARRAYOFNUMPYCOMPLEX128INPUTPARAMETERREQUEST']._serialized_end=12960 + _globals['_FUNCTIONWITH3DNUMPYARRAYOFNUMPYCOMPLEX128INPUTPARAMETERRESPONSE']._serialized_start=12962 + _globals['_FUNCTIONWITH3DNUMPYARRAYOFNUMPYCOMPLEX128INPUTPARAMETERRESPONSE']._serialized_end=13043 + _globals['_STRINGVALUEDENUMNOENUMGENERATEDREQUEST']._serialized_start=13045 + _globals['_STRINGVALUEDENUMNOENUMGENERATEDREQUEST']._serialized_end=13144 + _globals['_STRINGVALUEDENUMNOENUMGENERATEDRESPONSE']._serialized_start=13146 + _globals['_STRINGVALUEDENUMNOENUMGENERATEDRESPONSE']._serialized_end=13203 + _globals['_IVIDANCEWITHATWISTCALCULATEDSIZEOUTREQUEST']._serialized_start=13205 + _globals['_IVIDANCEWITHATWISTCALCULATEDSIZEOUTREQUEST']._serialized_end=13285 + _globals['_IVIDANCEWITHATWISTCALCULATEDSIZEOUTRESPONSE']._serialized_start=13288 + _globals['_IVIDANCEWITHATWISTCALCULATEDSIZEOUTRESPONSE']._serialized_end=13430 + _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFERREQUEST']._serialized_start=13432 + _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFERREQUEST']._serialized_end=13534 + _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFERRESPONSE']._serialized_start=13536 + _globals['_IMPORTATTRIBUTECONFIGURATIONBUFFERRESPONSE']._serialized_end=13596 + _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFERREQUEST']._serialized_start=13598 + _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFERREQUEST']._serialized_end=13677 + _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFERRESPONSE']._serialized_start=13679 + _globals['_EXPORTATTRIBUTECONFIGURATIONBUFFERRESPONSE']._serialized_end=13762 + _globals['_CONTROL4022REQUEST']._serialized_start=13764 + _globals['_CONTROL4022REQUEST']._serialized_end=13830 + _globals['_CONTROL4022RESPONSE']._serialized_start=13832 + _globals['_CONTROL4022RESPONSE']._serialized_end=13869 + _globals['_ACCEPTVISESSIONARRAYREQUEST']._serialized_start=13871 + _globals['_ACCEPTVISESSIONARRAYREQUEST']._serialized_end=13970 + _globals['_ACCEPTVISESSIONARRAYRESPONSE']._serialized_start=13972 + _globals['_ACCEPTVISESSIONARRAYRESPONSE']._serialized_end=14018 + _globals['_ACCEPTVIUINT32ARRAYREQUEST']._serialized_start=14020 + _globals['_ACCEPTVIUINT32ARRAYREQUEST']._serialized_end=14107 + _globals['_ACCEPTVIUINT32ARRAYRESPONSE']._serialized_start=14109 + _globals['_ACCEPTVIUINT32ARRAYRESPONSE']._serialized_end=14154 + _globals['_BOOLARRAYINPUTFUNCTIONREQUEST']._serialized_start=14156 + _globals['_BOOLARRAYINPUTFUNCTIONREQUEST']._serialized_end=14269 + _globals['_BOOLARRAYINPUTFUNCTIONRESPONSE']._serialized_start=14271 + _globals['_BOOLARRAYINPUTFUNCTIONRESPONSE']._serialized_end=14319 + _globals['_CLOSEEXTCALREQUEST']._serialized_start=14321 + _globals['_CLOSEEXTCALREQUEST']._serialized_end=14393 + _globals['_CLOSEEXTCALRESPONSE']._serialized_start=14395 + _globals['_CLOSEEXTCALRESPONSE']._serialized_end=14432 + _globals['_COMMANDWITHRESERVEDPARAMREQUEST']._serialized_start=14434 + _globals['_COMMANDWITHRESERVEDPARAMREQUEST']._serialized_end=14503 + _globals['_COMMANDWITHRESERVEDPARAMRESPONSE']._serialized_start=14505 + _globals['_COMMANDWITHRESERVEDPARAMRESPONSE']._serialized_end=14555 + _globals['_CREATECONFIGURATIONLISTREQUEST']._serialized_start=14557 + _globals['_CREATECONFIGURATIONLISTREQUEST']._serialized_end=14647 + _globals['_CREATECONFIGURATIONLISTRESPONSE']._serialized_start=14649 + _globals['_CREATECONFIGURATIONLISTRESPONSE']._serialized_end=14698 + _globals['_CUSTOMNESTEDSTRUCTROUNDTRIPREQUEST']._serialized_start=14700 + _globals['_CUSTOMNESTEDSTRUCTROUNDTRIPREQUEST']._serialized_end=14807 + _globals['_CUSTOMNESTEDSTRUCTROUNDTRIPRESPONSE']._serialized_start=14809 + _globals['_CUSTOMNESTEDSTRUCTROUNDTRIPRESPONSE']._serialized_end=14934 + _globals['_GETBITFIELDASENUMARRAYREQUEST']._serialized_start=14936 + _globals['_GETBITFIELDASENUMARRAYREQUEST']._serialized_end=14967 + _globals['_GETBITFIELDASENUMARRAYRESPONSE']._serialized_start=14969 + _globals['_GETBITFIELDASENUMARRAYRESPONSE']._serialized_end=15080 + _globals['_GETANIVIDANCEWITHATWISTARRAYOFCUSTOMTYPEREQUEST']._serialized_start=15082 + _globals['_GETANIVIDANCEWITHATWISTARRAYOFCUSTOMTYPEREQUEST']._serialized_end=15167 + _globals['_GETANIVIDANCEWITHATWISTARRAYOFCUSTOMTYPERESPONSE']._serialized_start=15170 + _globals['_GETANIVIDANCEWITHATWISTARRAYOFCUSTOMTYPERESPONSE']._serialized_end=15307 + _globals['_GETANIVIDANCEWITHATWISTARRAYWITHINPUTARRAYREQUEST']._serialized_start=15309 + _globals['_GETANIVIDANCEWITHATWISTARRAYWITHINPUTARRAYREQUEST']._serialized_end=15377 + _globals['_GETANIVIDANCEWITHATWISTARRAYWITHINPUTARRAYRESPONSE']._serialized_start=15379 + _globals['_GETANIVIDANCEWITHATWISTARRAYWITHINPUTARRAYRESPONSE']._serialized_end=15487 + _globals['_GETANIVIDANCEWITHATWISTBYTEARRAYREQUEST']._serialized_start=15489 + _globals['_GETANIVIDANCEWITHATWISTBYTEARRAYREQUEST']._serialized_end=15530 + _globals['_GETANIVIDANCEWITHATWISTBYTEARRAYRESPONSE']._serialized_start=15532 + _globals['_GETANIVIDANCEWITHATWISTBYTEARRAYRESPONSE']._serialized_end=15630 + _globals['_GETANIVIDANCEWITHATWISTSTRINGSTRLENBUGREQUEST']._serialized_start=15632 + _globals['_GETANIVIDANCEWITHATWISTSTRINGSTRLENBUGREQUEST']._serialized_end=15679 + _globals['_GETANIVIDANCEWITHATWISTSTRINGSTRLENBUGRESPONSE']._serialized_start=15681 + _globals['_GETANIVIDANCEWITHATWISTSTRINGSTRLENBUGRESPONSE']._serialized_end=15786 + _globals['_GETARRAYSIZEFORCUSTOMCODEREQUEST']._serialized_start=15788 + _globals['_GETARRAYSIZEFORCUSTOMCODEREQUEST']._serialized_end=15858 + _globals['_GETARRAYSIZEFORCUSTOMCODERESPONSE']._serialized_start=15860 + _globals['_GETARRAYSIZEFORCUSTOMCODERESPONSE']._serialized_end=15929 + _globals['_GETARRAYVIUINT8WITHENUMREQUEST']._serialized_start=15931 + _globals['_GETARRAYVIUINT8WITHENUMREQUEST']._serialized_end=16018 + _globals['_GETARRAYVIUINT8WITHENUMRESPONSE']._serialized_start=16021 + _globals['_GETARRAYVIUINT8WITHENUMRESPONSE']._serialized_end=16160 + _globals['_GETVIUINT8REQUEST']._serialized_start=16162 + _globals['_GETVIUINT8REQUEST']._serialized_end=16217 + _globals['_GETVIUINT8RESPONSE']._serialized_start=16219 + _globals['_GETVIUINT8RESPONSE']._serialized_end=16279 + _globals['_GETVIINT32ARRAYREQUEST']._serialized_start=16281 + _globals['_GETVIINT32ARRAYREQUEST']._serialized_end=16360 + _globals['_GETVIINT32ARRAYRESPONSE']._serialized_start=16362 + _globals['_GETVIINT32ARRAYRESPONSE']._serialized_end=16424 + _globals['_GETVIUINT32ARRAYREQUEST']._serialized_start=16426 + _globals['_GETVIUINT32ARRAYREQUEST']._serialized_end=16506 + _globals['_GETVIUINT32ARRAYRESPONSE']._serialized_start=16508 + _globals['_GETVIUINT32ARRAYRESPONSE']._serialized_end=16573 + _globals['_METHODUSINGENUMWITHGRPCNAMEVALUESREQUEST']._serialized_start=16576 + _globals['_METHODUSINGENUMWITHGRPCNAMEVALUESREQUEST']._serialized_end=16722 + _globals['_METHODUSINGENUMWITHGRPCNAMEVALUESRESPONSE']._serialized_start=16724 + _globals['_METHODUSINGENUMWITHGRPCNAMEVALUESRESPONSE']._serialized_end=16783 + _globals['_METHODWITHGETLASTERRORPARAMREQUEST']._serialized_start=16785 + _globals['_METHODWITHGETLASTERRORPARAMREQUEST']._serialized_end=16821 + _globals['_METHODWITHGETLASTERRORPARAMRESPONSE']._serialized_start=16823 + _globals['_METHODWITHGETLASTERRORPARAMRESPONSE']._serialized_end=16900 + _globals['_METHODWITHGRPCONLYPARAMREQUEST']._serialized_start=16902 + _globals['_METHODWITHGRPCONLYPARAMREQUEST']._serialized_end=16956 + _globals['_METHODWITHGRPCONLYPARAMRESPONSE']._serialized_start=16958 + _globals['_METHODWITHGRPCONLYPARAMRESPONSE']._serialized_end=17032 + _globals['_METHODUSINGWHOLEANDFRACTIONALNUMBERSREQUEST']._serialized_start=17034 + _globals['_METHODUSINGWHOLEANDFRACTIONALNUMBERSREQUEST']._serialized_end=17079 + _globals['_METHODUSINGWHOLEANDFRACTIONALNUMBERSRESPONSE']._serialized_start=17082 + _globals['_METHODUSINGWHOLEANDFRACTIONALNUMBERSRESPONSE']._serialized_end=17323 + _globals['_METHODUSINGWHOLEMAPPEDNUMBERSREQUEST']._serialized_start=17325 + _globals['_METHODUSINGWHOLEMAPPEDNUMBERSREQUEST']._serialized_end=17363 + _globals['_METHODUSINGWHOLEMAPPEDNUMBERSRESPONSE']._serialized_start=17366 + _globals['_METHODUSINGWHOLEMAPPEDNUMBERSRESPONSE']._serialized_end=17515 + _globals['_METHODWITHGRPCFIELDNUMBERREQUEST']._serialized_start=17517 + _globals['_METHODWITHGRPCFIELDNUMBERREQUEST']._serialized_end=17576 + _globals['_METHODWITHGRPCFIELDNUMBERRESPONSE']._serialized_start=17578 + _globals['_METHODWITHGRPCFIELDNUMBERRESPONSE']._serialized_end=17629 + _globals['_METHODWITHPROTOONLYPARAMETERREQUEST']._serialized_start=17631 + _globals['_METHODWITHPROTOONLYPARAMETERREQUEST']._serialized_end=17693 + _globals['_METHODWITHPROTOONLYPARAMETERRESPONSE']._serialized_start=17695 + _globals['_METHODWITHPROTOONLYPARAMETERRESPONSE']._serialized_end=17749 + _globals['_READDATAWITHINOUTIVITWISTREQUEST']._serialized_start=17751 + _globals['_READDATAWITHINOUTIVITWISTREQUEST']._serialized_end=17785 + _globals['_READDATAWITHINOUTIVITWISTRESPONSE']._serialized_start=17787 + _globals['_READDATAWITHINOUTIVITWISTRESPONSE']._serialized_end=17873 + _globals['_READDATAWITHMULTIPLEIVITWISTPARAMSETSREQUEST']._serialized_start=17875 + _globals['_READDATAWITHMULTIPLEIVITWISTPARAMSETSREQUEST']._serialized_end=17921 + _globals['_READDATAWITHMULTIPLEIVITWISTPARAMSETSRESPONSE']._serialized_start=17924 + _globals['_READDATAWITHMULTIPLEIVITWISTPARAMSETSRESPONSE']._serialized_end=18079 + _globals['_INITEXTCALREQUEST']._serialized_start=18081 + _globals['_INITEXTCALREQUEST']._serialized_end=18175 + _globals['_INITEXTCALRESPONSE']._serialized_start=18177 + _globals['_INITEXTCALRESPONSE']._serialized_end=18249 + _globals['_INITWITHVARARGSREQUEST']._serialized_start=18251 + _globals['_INITWITHVARARGSREQUEST']._serialized_end=18375 + _globals['_INITWITHVARARGSRESPONSE']._serialized_start=18377 + _globals['_INITWITHVARARGSRESPONSE']._serialized_end=18454 + _globals['_MULTIPLEARRAYSSAMESIZEWITHOPTIONALREQUEST']._serialized_start=18457 + _globals['_MULTIPLEARRAYSSAMESIZEWITHOPTIONALREQUEST']._serialized_end=18652 + _globals['_MULTIPLEARRAYSSAMESIZEWITHOPTIONALRESPONSE']._serialized_start=18654 + _globals['_MULTIPLEARRAYSSAMESIZEWITHOPTIONALRESPONSE']._serialized_end=18714 + _globals['_USEATWODIMENSIONPARAMETERREQUEST']._serialized_start=18716 + _globals['_USEATWODIMENSIONPARAMETERREQUEST']._serialized_end=18824 + _globals['_USEATWODIMENSIONPARAMETERRESPONSE']._serialized_start=18826 + _globals['_USEATWODIMENSIONPARAMETERRESPONSE']._serialized_end=18877 + _globals['_VIUINT8ARRAYINPUTFUNCTIONREQUEST']._serialized_start=18879 + _globals['_VIUINT8ARRAYINPUTFUNCTIONREQUEST']._serialized_end=18995 + _globals['_VIUINT8ARRAYINPUTFUNCTIONRESPONSE']._serialized_start=18997 + _globals['_VIUINT8ARRAYINPUTFUNCTIONRESPONSE']._serialized_end=19048 + _globals['_VIUINT8ARRAYOUTPUTFUNCTIONREQUEST']._serialized_start=19050 + _globals['_VIUINT8ARRAYOUTPUTFUNCTIONREQUEST']._serialized_end=19149 + _globals['_VIUINT8ARRAYOUTPUTFUNCTIONRESPONSE']._serialized_start=19151 + _globals['_VIUINT8ARRAYOUTPUTFUNCTIONRESPONSE']._serialized_end=19221 + _globals['_VIINT16ARRAYINPUTFUNCTIONREQUEST']._serialized_start=19223 + _globals['_VIINT16ARRAYINPUTFUNCTIONREQUEST']._serialized_end=19311 + _globals['_VIINT16ARRAYINPUTFUNCTIONRESPONSE']._serialized_start=19313 + _globals['_VIINT16ARRAYINPUTFUNCTIONRESPONSE']._serialized_end=19364 + _globals['_NIFAKE']._serialized_start=22486 + _globals['_NIFAKE']._serialized_end=34691 # @@protoc_insertion_point(module_scope) diff --git a/generated/nifake/nifake/nifake_pb2_grpc.py b/generated/nifake/nifake/nifake_pb2_grpc.py index 7e0a3f2e46..6c68c06d4a 100644 --- a/generated/nifake/nifake/nifake_pb2_grpc.py +++ b/generated/nifake/nifake/nifake_pb2_grpc.py @@ -229,6 +229,21 @@ def __init__(self, channel): request_serializer=nifake__pb2.WriteWaveformRequest.SerializeToString, response_deserializer=nifake__pb2.WriteWaveformResponse.FromString, ) + self.WriteWaveformNumpyComplex128 = channel.unary_unary( + '/nifake_grpc.NiFake/WriteWaveformNumpyComplex128', + request_serializer=nifake__pb2.WriteWaveformNumpyComplex128Request.SerializeToString, + response_deserializer=nifake__pb2.WriteWaveformNumpyComplex128Response.FromString, + ) + self.WriteWaveformNumpyComplex64 = channel.unary_unary( + '/nifake_grpc.NiFake/WriteWaveformNumpyComplex64', + request_serializer=nifake__pb2.WriteWaveformNumpyComplex64Request.SerializeToString, + response_deserializer=nifake__pb2.WriteWaveformNumpyComplex64Response.FromString, + ) + self.WriteWaveformNumpyComplexInterleavedI16 = channel.unary_unary( + '/nifake_grpc.NiFake/WriteWaveformNumpyComplexInterleavedI16', + request_serializer=nifake__pb2.WriteWaveformNumpyComplexInterleavedI16Request.SerializeToString, + response_deserializer=nifake__pb2.WriteWaveformNumpyComplexInterleavedI16Response.FromString, + ) self.SetCustomType = channel.unary_unary( '/nifake_grpc.NiFake/SetCustomType', request_serializer=nifake__pb2.SetCustomTypeRequest.SerializeToString, @@ -319,6 +334,11 @@ def __init__(self, channel): request_serializer=nifake__pb2.FunctionWithOverriddenGrpcName2xRequest.SerializeToString, response_deserializer=nifake__pb2.FunctionWithOverriddenGrpcName2xResponse.FromString, ) + self.FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter = channel.unary_unary( + '/nifake_grpc.NiFake/FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter', + request_serializer=nifake__pb2.FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterRequest.SerializeToString, + response_deserializer=nifake__pb2.FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterResponse.FromString, + ) self.StringValuedEnumNoEnumGenerated = channel.unary_unary( '/nifake_grpc.NiFake/StringValuedEnumNoEnumGenerated', request_serializer=nifake__pb2.StringValuedEnumNoEnumGeneratedRequest.SerializeToString, @@ -772,6 +792,24 @@ def WriteWaveform(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def WriteWaveformNumpyComplex128(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def WriteWaveformNumpyComplex64(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def WriteWaveformNumpyComplexInterleavedI16(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def SetCustomType(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -880,6 +918,12 @@ def FunctionWithOverriddenGrpcName2x(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def StringValuedEnumNoEnumGenerated(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -1326,6 +1370,21 @@ def add_NiFakeServicer_to_server(servicer, server): request_deserializer=nifake__pb2.WriteWaveformRequest.FromString, response_serializer=nifake__pb2.WriteWaveformResponse.SerializeToString, ), + 'WriteWaveformNumpyComplex128': grpc.unary_unary_rpc_method_handler( + servicer.WriteWaveformNumpyComplex128, + request_deserializer=nifake__pb2.WriteWaveformNumpyComplex128Request.FromString, + response_serializer=nifake__pb2.WriteWaveformNumpyComplex128Response.SerializeToString, + ), + 'WriteWaveformNumpyComplex64': grpc.unary_unary_rpc_method_handler( + servicer.WriteWaveformNumpyComplex64, + request_deserializer=nifake__pb2.WriteWaveformNumpyComplex64Request.FromString, + response_serializer=nifake__pb2.WriteWaveformNumpyComplex64Response.SerializeToString, + ), + 'WriteWaveformNumpyComplexInterleavedI16': grpc.unary_unary_rpc_method_handler( + servicer.WriteWaveformNumpyComplexInterleavedI16, + request_deserializer=nifake__pb2.WriteWaveformNumpyComplexInterleavedI16Request.FromString, + response_serializer=nifake__pb2.WriteWaveformNumpyComplexInterleavedI16Response.SerializeToString, + ), 'SetCustomType': grpc.unary_unary_rpc_method_handler( servicer.SetCustomType, request_deserializer=nifake__pb2.SetCustomTypeRequest.FromString, @@ -1416,6 +1475,11 @@ def add_NiFakeServicer_to_server(servicer, server): request_deserializer=nifake__pb2.FunctionWithOverriddenGrpcName2xRequest.FromString, response_serializer=nifake__pb2.FunctionWithOverriddenGrpcName2xResponse.SerializeToString, ), + 'FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter': grpc.unary_unary_rpc_method_handler( + servicer.FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter, + request_deserializer=nifake__pb2.FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterRequest.FromString, + response_serializer=nifake__pb2.FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterResponse.SerializeToString, + ), 'StringValuedEnumNoEnumGenerated': grpc.unary_unary_rpc_method_handler( servicer.StringValuedEnumNoEnumGenerated, request_deserializer=nifake__pb2.StringValuedEnumNoEnumGeneratedRequest.FromString, @@ -2347,6 +2411,57 @@ def WriteWaveform(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def WriteWaveformNumpyComplex128(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nifake_grpc.NiFake/WriteWaveformNumpyComplex128', + nifake__pb2.WriteWaveformNumpyComplex128Request.SerializeToString, + nifake__pb2.WriteWaveformNumpyComplex128Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def WriteWaveformNumpyComplex64(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nifake_grpc.NiFake/WriteWaveformNumpyComplex64', + nifake__pb2.WriteWaveformNumpyComplex64Request.SerializeToString, + nifake__pb2.WriteWaveformNumpyComplex64Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def WriteWaveformNumpyComplexInterleavedI16(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nifake_grpc.NiFake/WriteWaveformNumpyComplexInterleavedI16', + nifake__pb2.WriteWaveformNumpyComplexInterleavedI16Request.SerializeToString, + nifake__pb2.WriteWaveformNumpyComplexInterleavedI16Response.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def SetCustomType(request, target, @@ -2653,6 +2768,23 @@ def FunctionWithOverriddenGrpcName2x(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/nifake_grpc.NiFake/FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter', + nifake__pb2.FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterRequest.SerializeToString, + nifake__pb2.FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def StringValuedEnumNoEnumGenerated(request, target, diff --git a/generated/nifake/nifake/unit_tests/test_grpc.py b/generated/nifake/nifake/unit_tests/test_grpc.py index ea790e6c78..b3a964b2cb 100644 --- a/generated/nifake/nifake/unit_tests/test_grpc.py +++ b/generated/nifake/nifake/unit_tests/test_grpc.py @@ -407,6 +407,71 @@ def test_write_waveform_numpy(self): except NotImplementedError: pass + def test_write_waveform_numpy_complex128(self): + library_func = 'WriteWaveformNumpyComplex128' + waveform = numpy.array([1.0 + 2.0j, 3.0 + 4.0j, 5.0 + 6.0j], dtype=numpy.complex128) + grpc_waveform = [ + nifake._grpc_stub_interpreter.grpc_complex_types.NIComplexNumber(real=value.real, imaginary=value.imag) + for value in waveform.ravel() + ] + response_object = self._set_side_effect(library_func) + interpreter = self._get_initialized_stub_interpreter() + assert interpreter.write_waveform_numpy_complex128(waveform) is None + self._assert_call(library_func, response_object).assert_called_once_with( + vi=GRPC_SESSION_OBJECT_FOR_TEST, + waveform_data_array=grpc_waveform, + ) + + def test_write_waveform_numpy_complex64(self): + library_func = 'WriteWaveformNumpyComplex64' + waveform = numpy.array([1.0 + 2.0j, 3.0 + 4.0j, 5.0 + 6.0j], dtype=numpy.complex64) + grpc_waveform = [ + nifake._grpc_stub_interpreter.grpc_complex_types.NIComplexNumberF32(real=value.real, imaginary=value.imag) + for value in waveform.ravel() + ] + response_object = self._set_side_effect(library_func) + interpreter = self._get_initialized_stub_interpreter() + assert interpreter.write_waveform_numpy_complex64(waveform) is None + self._assert_call(library_func, response_object).assert_called_once_with( + vi=GRPC_SESSION_OBJECT_FOR_TEST, + waveform_data_array=grpc_waveform, + ) + + def test_write_waveform_numpy_complex_interleaved_i16(self): + library_func = 'WriteWaveformNumpyComplexInterleavedI16' + waveform = numpy.array([32767, 0, 123, -456], dtype=numpy.int16) + assert len(waveform) % 2 == 0 + grpc_waveform = [ + nifake._grpc_stub_interpreter.grpc_complex_types.NIComplexI16(real=waveform[i], imaginary=waveform[i + 1]) + for i in range(0, len(waveform), 2) + ] + assert len(grpc_waveform) == len(waveform) // 2 + response_object = self._set_side_effect(library_func) + interpreter = self._get_initialized_stub_interpreter() + assert interpreter.write_waveform_numpy_complex_interleaved_i16(waveform) is None + self._assert_call(library_func, response_object).assert_called_once_with( + vi=GRPC_SESSION_OBJECT_FOR_TEST, + waveform_data_array=grpc_waveform, + ) + + def test_function_with_3d_numpy_array_of_numpy_complex128_input_parameter(self): + library_func = 'FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter' + array_3d = numpy.array( + [[[1.0 + 2.0j, 3.0 + 4.0j], [5.0 + 6.0j, 7.0 + 8.0j]], [[9.0 + 10.0j, 11.0 + 12.0j], [13.0 + 14.0j, 15.0 + 16.0j]]], + dtype=numpy.complex128, + ) + grpc_array = [ + nifake._grpc_stub_interpreter.grpc_complex_types.NIComplexNumber(real=value.real, imaginary=value.imag) + for value in array_3d.ravel() + ] + response_object = self._set_side_effect(library_func) + interpreter = self._get_initialized_stub_interpreter() + assert interpreter.function_with_3d_numpy_array_of_numpy_complex128_input_parameter(array_3d) is None + self._assert_call(library_func, response_object).assert_called_once_with( + vi=GRPC_SESSION_OBJECT_FOR_TEST, + multidimensional_array=grpc_array, + ) + def test_return_multiple_types(self): library_func = 'ReturnMultipleTypes' boolean_val = True diff --git a/generated/nirfsg/nirfsg/_grpc_stub_interpreter.py b/generated/nirfsg/nirfsg/_grpc_stub_interpreter.py index bb360b4f01..b1eae312ef 100644 --- a/generated/nirfsg/nirfsg/_grpc_stub_interpreter.py +++ b/generated/nirfsg/nirfsg/_grpc_stub_interpreter.py @@ -195,6 +195,7 @@ def configure_software_start_trigger(self): # noqa: N802 ) def create_deembedding_sparameter_table_array(self, port, table_name, frequencies, sparameter_table, number_of_ports, sparameter_orientation): # noqa: N802 + # Use ravel() so that gRPC always receives a flat numpy array, regardless of input dimensions. sparameter_table_list = [ grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) for val in sparameter_table.ravel() @@ -560,6 +561,7 @@ def wait_until_settled(self, max_time_milliseconds): # noqa: N802 ) def write_arb_waveform_complex_f32(self, waveform_name, waveform_data_array, more_data_pending): # noqa: N802 + # Use ravel() so that gRPC always receives a flat numpy array, regardless of input dimensions. waveform_data_array_list = [ grpc_complex_types.NIComplexNumberF32(real=val.real, imaginary=val.imag) for val in waveform_data_array.ravel() @@ -570,6 +572,7 @@ def write_arb_waveform_complex_f32(self, waveform_name, waveform_data_array, mor ) def write_arb_waveform_complex_f64(self, waveform_name, waveform_data_array, more_data_pending): # noqa: N802 + # Use ravel() so that gRPC always receives a flat numpy array, regardless of input dimensions. waveform_data_array_list = [ grpc_complex_types.NIComplexNumber(real=val.real, imaginary=val.imag) for val in waveform_data_array.ravel() @@ -580,6 +583,7 @@ def write_arb_waveform_complex_f64(self, waveform_name, waveform_data_array, mor ) def write_arb_waveform_complex_i16(self, waveform_name, waveform_data_array): # noqa: N802 + # Use ravel() so that gRPC always receives a flat numpy array, regardless of input dimensions. arr = waveform_data_array.ravel() if arr.size % 2 != 0: raise ValueError("Interleaved int16 array must have even length (real/imag pairs)") diff --git a/src/nifake/metadata/nifake.proto b/src/nifake/metadata/nifake.proto index 2d0bcc2de1..f631c92b87 100644 --- a/src/nifake/metadata/nifake.proto +++ b/src/nifake/metadata/nifake.proto @@ -59,6 +59,9 @@ service NiFake { rpc TwoInputFunction(TwoInputFunctionRequest) returns (TwoInputFunctionResponse); rpc Use64BitNumber(Use64BitNumberRequest) returns (Use64BitNumberResponse); rpc WriteWaveform(WriteWaveformRequest) returns (WriteWaveformResponse); + rpc WriteWaveformNumpyComplex128(WriteWaveformNumpyComplex128Request) returns (WriteWaveformNumpyComplex128Response); + rpc WriteWaveformNumpyComplex64(WriteWaveformNumpyComplex64Request) returns (WriteWaveformNumpyComplex64Response); + rpc WriteWaveformNumpyComplexInterleavedI16(WriteWaveformNumpyComplexInterleavedI16Request) returns (WriteWaveformNumpyComplexInterleavedI16Response); rpc SetCustomType(SetCustomTypeRequest) returns (SetCustomTypeResponse); rpc SetCustomTypeArray(SetCustomTypeArrayRequest) returns (SetCustomTypeArrayResponse); rpc GetCustomType(GetCustomTypeRequest) returns (GetCustomTypeResponse); @@ -77,6 +80,7 @@ service NiFake { rpc GetParameterWithOverriddenGrpcName(GetParameterWithOverriddenGrpcNameRequest) returns (GetParameterWithOverriddenGrpcNameResponse); rpc IviDanceWithTwistWithMultipleArraysAndOneBufferSize(IviDanceWithTwistWithMultipleArraysAndOneBufferSizeRequest) returns (IviDanceWithTwistWithMultipleArraysAndOneBufferSizeResponse); rpc FunctionWithOverriddenGrpcName2x(FunctionWithOverriddenGrpcName2xRequest) returns (FunctionWithOverriddenGrpcName2xResponse); + rpc FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter(FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterRequest) returns (FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterResponse); rpc StringValuedEnumNoEnumGenerated(StringValuedEnumNoEnumGeneratedRequest) returns (StringValuedEnumNoEnumGeneratedResponse); rpc IviDanceWithATwistCalculatedSizeOut(IviDanceWithATwistCalculatedSizeOutRequest) returns (IviDanceWithATwistCalculatedSizeOutResponse); rpc ImportAttributeConfigurationBuffer(ImportAttributeConfigurationBufferRequest) returns (ImportAttributeConfigurationBufferResponse); @@ -261,6 +265,11 @@ message NIComplexNumber_struct { double imaginary = 2; } +message NIComplexNumberF32_struct { + float real = 1; + float imaginary = 2; +} + message StringAndTurtle { string string_arg = 1; Turtle turtle = 2; @@ -746,6 +755,33 @@ message WriteWaveformResponse { int32 status = 1; } +message WriteWaveformNumpyComplex128Request { + nidevice_grpc.Session vi = 1; + repeated NIComplexNumber_struct waveform_data_array = 2; +} + +message WriteWaveformNumpyComplex128Response { + int32 status = 1; +} + +message WriteWaveformNumpyComplex64Request { + nidevice_grpc.Session vi = 1; + repeated NIComplexNumberF32_struct waveform_data_array = 2; +} + +message WriteWaveformNumpyComplex64Response { + int32 status = 1; +} + +message WriteWaveformNumpyComplexInterleavedI16Request { + nidevice_grpc.Session vi = 1; + repeated NIComplexI16_struct waveform_data_array = 2; +} + +message WriteWaveformNumpyComplexInterleavedI16Response { + int32 status = 1; +} + message SetCustomTypeRequest { nidevice_grpc.Session vi = 1; FakeCustomStruct cs = 2; @@ -927,6 +963,15 @@ message FunctionWithOverriddenGrpcName2xResponse { int32 status = 1; } +message FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterRequest { + nidevice_grpc.Session vi = 1; + repeated NIComplexNumber_struct multidimensional_array = 2; +} + +message FunctionWith3dNumpyArrayOfNumpyComplex128InputParameterResponse { + int32 status = 1; +} + message StringValuedEnumNoEnumGeneratedRequest { nidevice_grpc.Session vi = 1; string a_string_enum = 2; diff --git a/src/nifake/unit_tests/test_grpc.py b/src/nifake/unit_tests/test_grpc.py index ea790e6c78..b3a964b2cb 100644 --- a/src/nifake/unit_tests/test_grpc.py +++ b/src/nifake/unit_tests/test_grpc.py @@ -407,6 +407,71 @@ def test_write_waveform_numpy(self): except NotImplementedError: pass + def test_write_waveform_numpy_complex128(self): + library_func = 'WriteWaveformNumpyComplex128' + waveform = numpy.array([1.0 + 2.0j, 3.0 + 4.0j, 5.0 + 6.0j], dtype=numpy.complex128) + grpc_waveform = [ + nifake._grpc_stub_interpreter.grpc_complex_types.NIComplexNumber(real=value.real, imaginary=value.imag) + for value in waveform.ravel() + ] + response_object = self._set_side_effect(library_func) + interpreter = self._get_initialized_stub_interpreter() + assert interpreter.write_waveform_numpy_complex128(waveform) is None + self._assert_call(library_func, response_object).assert_called_once_with( + vi=GRPC_SESSION_OBJECT_FOR_TEST, + waveform_data_array=grpc_waveform, + ) + + def test_write_waveform_numpy_complex64(self): + library_func = 'WriteWaveformNumpyComplex64' + waveform = numpy.array([1.0 + 2.0j, 3.0 + 4.0j, 5.0 + 6.0j], dtype=numpy.complex64) + grpc_waveform = [ + nifake._grpc_stub_interpreter.grpc_complex_types.NIComplexNumberF32(real=value.real, imaginary=value.imag) + for value in waveform.ravel() + ] + response_object = self._set_side_effect(library_func) + interpreter = self._get_initialized_stub_interpreter() + assert interpreter.write_waveform_numpy_complex64(waveform) is None + self._assert_call(library_func, response_object).assert_called_once_with( + vi=GRPC_SESSION_OBJECT_FOR_TEST, + waveform_data_array=grpc_waveform, + ) + + def test_write_waveform_numpy_complex_interleaved_i16(self): + library_func = 'WriteWaveformNumpyComplexInterleavedI16' + waveform = numpy.array([32767, 0, 123, -456], dtype=numpy.int16) + assert len(waveform) % 2 == 0 + grpc_waveform = [ + nifake._grpc_stub_interpreter.grpc_complex_types.NIComplexI16(real=waveform[i], imaginary=waveform[i + 1]) + for i in range(0, len(waveform), 2) + ] + assert len(grpc_waveform) == len(waveform) // 2 + response_object = self._set_side_effect(library_func) + interpreter = self._get_initialized_stub_interpreter() + assert interpreter.write_waveform_numpy_complex_interleaved_i16(waveform) is None + self._assert_call(library_func, response_object).assert_called_once_with( + vi=GRPC_SESSION_OBJECT_FOR_TEST, + waveform_data_array=grpc_waveform, + ) + + def test_function_with_3d_numpy_array_of_numpy_complex128_input_parameter(self): + library_func = 'FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter' + array_3d = numpy.array( + [[[1.0 + 2.0j, 3.0 + 4.0j], [5.0 + 6.0j, 7.0 + 8.0j]], [[9.0 + 10.0j, 11.0 + 12.0j], [13.0 + 14.0j, 15.0 + 16.0j]]], + dtype=numpy.complex128, + ) + grpc_array = [ + nifake._grpc_stub_interpreter.grpc_complex_types.NIComplexNumber(real=value.real, imaginary=value.imag) + for value in array_3d.ravel() + ] + response_object = self._set_side_effect(library_func) + interpreter = self._get_initialized_stub_interpreter() + assert interpreter.function_with_3d_numpy_array_of_numpy_complex128_input_parameter(array_3d) is None + self._assert_call(library_func, response_object).assert_called_once_with( + vi=GRPC_SESSION_OBJECT_FOR_TEST, + multidimensional_array=grpc_array, + ) + def test_return_multiple_types(self): library_func = 'ReturnMultipleTypes' boolean_val = True From 18981734ecca820f312150f28ebe57555cbe086a Mon Sep 17 00:00:00 2001 From: Rahul R Date: Fri, 27 Mar 2026 13:13:24 +0000 Subject: [PATCH 20/20] Updating comment for newly added test cases --- src/nifake/unit_tests/test_grpc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/nifake/unit_tests/test_grpc.py b/src/nifake/unit_tests/test_grpc.py index b3a964b2cb..e3463b93d5 100644 --- a/src/nifake/unit_tests/test_grpc.py +++ b/src/nifake/unit_tests/test_grpc.py @@ -416,7 +416,7 @@ def test_write_waveform_numpy_complex128(self): ] response_object = self._set_side_effect(library_func) interpreter = self._get_initialized_stub_interpreter() - assert interpreter.write_waveform_numpy_complex128(waveform) is None + assert interpreter.write_waveform_numpy_complex128(waveform) is None # no outputs self._assert_call(library_func, response_object).assert_called_once_with( vi=GRPC_SESSION_OBJECT_FOR_TEST, waveform_data_array=grpc_waveform, @@ -431,7 +431,7 @@ def test_write_waveform_numpy_complex64(self): ] response_object = self._set_side_effect(library_func) interpreter = self._get_initialized_stub_interpreter() - assert interpreter.write_waveform_numpy_complex64(waveform) is None + assert interpreter.write_waveform_numpy_complex64(waveform) is None # no outputs self._assert_call(library_func, response_object).assert_called_once_with( vi=GRPC_SESSION_OBJECT_FOR_TEST, waveform_data_array=grpc_waveform, @@ -448,7 +448,7 @@ def test_write_waveform_numpy_complex_interleaved_i16(self): assert len(grpc_waveform) == len(waveform) // 2 response_object = self._set_side_effect(library_func) interpreter = self._get_initialized_stub_interpreter() - assert interpreter.write_waveform_numpy_complex_interleaved_i16(waveform) is None + assert interpreter.write_waveform_numpy_complex_interleaved_i16(waveform) is None # no outputs self._assert_call(library_func, response_object).assert_called_once_with( vi=GRPC_SESSION_OBJECT_FOR_TEST, waveform_data_array=grpc_waveform,