diff --git a/build/helper/codegen_helper.py b/build/helper/codegen_helper.py index 86b83c476..30e4fdf47 100644 --- a/build/helper/codegen_helper.py +++ b/build/helper/codegen_helper.py @@ -192,9 +192,9 @@ def get_library_interpreter_method_return_snippet(parameters, config, use_numpy_ return ('return ' + ', '.join(snippets)).strip() -def get_grpc_interpreter_method_return_snippet(parameters, config): +def get_grpc_interpreter_method_return_snippet(parameters, config, use_numpy_array=False): '''Returns a string suitable to use as the return argument of a _gprc.LibraryInterpreter method''' - parameters_to_use = filter_parameters(parameters, ParameterUsageOptions.API_OUTPUT_PARAMETERS) + parameters_to_use = filter_parameters(parameters, ParameterUsageOptions.API_NUMPY_OUTPUT_PARAMETERS if use_numpy_array else ParameterUsageOptions.API_OUTPUT_PARAMETERS) snippets = [_get_grpc_interpreter_output_param_return_snippet(p, parameters, config) for p in parameters_to_use] return ('return ' + ', '.join(snippets)).strip() diff --git a/build/templates/_grpc_stub_interpreter.py.mako b/build/templates/_grpc_stub_interpreter.py.mako index 0a5f0e4ef..acbfc9b95 100644 --- a/build/templates/_grpc_stub_interpreter.py.mako +++ b/build/templates/_grpc_stub_interpreter.py.mako @@ -22,6 +22,7 @@ from . import errors as errors 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 +from . import nidevice_pb2 as grpc_complex_types % for c in config['custom_types']: from . import ${c['file_name']} as ${c['file_name']} # noqa: F401 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 94c4cd421..4a5d0d2f1 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,42 @@ <%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 reading repeated NIComplex proto fields into numpy arrays.''' import build.helper as helper - + parameters = f['parameters'] + param_names_method = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_NUMPY_INTO_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(parameters, config, use_numpy_array=True) + if return_statement == 'return': + return_statement = None + capture_response = 'response = ' if return_statement else '' + included_in_proto = f.get('included_in_proto', True) 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) + numpy_complex_params = [p for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.NUMPY_PARAMETERS) if p['complex_type'] is not None] %>\ - def ${full_func_name}(${method_decl_params}): # noqa: N802 - raise NotImplementedError('numpy-specific methods are not supported over gRPC') + def ${full_func_name}(${param_names_method}): # noqa: N802 +% if numpy_complex_params: + import numpy +% endif +% if included_in_proto: + ${capture_response}self._invoke( + self._client.${grpc_name}, + grpc_types.${grpc_name}Request(${grpc_request_args}), + ) +% for p in numpy_complex_params: +% if p['original_type'] == 'NIComplexNumber[]': + temp_array = numpy.array([(c.real, c.imag) for c in response.${p['python_name']}], dtype=numpy.complex128) +% elif p['original_type'] == 'NIComplexNumberF32[]': + temp_array = numpy.array([(c.real, c.imag) for c in response.${p['python_name']}], dtype=numpy.complex64) +% elif p['original_type'] == 'NIComplexI16[]': + temp_array = numpy.array([(c.real, c.imag) for c in response.${p['python_name']}], dtype=numpy.dtype([('real', numpy.int16), ('imag', numpy.int16)])) +% endif + numpy.copyto(${p['python_name']}, temp_array.view(${p['python_name']}.dtype).reshape(${p['python_name']}.shape)) +% endfor +% if return_statement: + ${return_statement} +% 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 648b9a0e1..e1e493240 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,59 @@ <%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 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['complex_type'] 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[]': + ${p['python_name']}_list = [ + grpc_complex_types.NIComplexI16(real=int(val['real']), imaginary=int(val['imag'])) + for val in ${p['python_name']}.ravel() + ] +% 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 diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index 5b2edcbb0..4bbce6cc7 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -1020,6 +1020,7 @@ }, 'is_repeated_capability': True, 'name': 'triggerId', + 'grpc_enum': 'DigitalEdgeScriptTriggerIdentifier', 'repeated_capability_type': 'script_triggers', 'type': 'ViConstString', 'use_array': False, @@ -1031,6 +1032,7 @@ 'description': 'Specifies the source terminal for the digital edge Script Trigger. NI-RFSG sets the NIRFSG_ATTR_DIGITAL_EDGE_SCRIPT_TRIGGER_SOURCE attribute to this value.' }, 'name': 'source', + 'grpc_enum': 'TriggerSource', 'type': 'ViConstString', 'use_array': False, 'use_in_python_api': True @@ -1083,6 +1085,7 @@ 'description': 'Specifies the source terminal for the digital edge trigger. NI-RFSG sets the NIRFSG_ATTR_DIGITAL_EDGE_START_TRIGGER_SOURCE attribute to this value.' }, 'name': 'source', + 'grpc_enum': 'TriggerSource', 'type': 'ViConstString', 'use_array': False, 'use_in_python_api': True @@ -1135,6 +1138,7 @@ }, 'is_repeated_capability': True, 'name': 'triggerId', + 'grpc_enum': 'DigitalEdgeScriptTriggerIdentifier', 'repeated_capability_type': 'script_triggers', 'type': 'ViConstString', 'use_array': False, @@ -1413,6 +1417,7 @@ }, 'is_repeated_capability': True, 'name': 'triggerId', + 'grpc_enum': 'DigitalEdgeScriptTriggerIdentifier', 'repeated_capability_type': 'script_triggers', 'type': 'ViConstString', 'use_array': False, @@ -1804,6 +1809,7 @@ }, 'is_repeated_capability': True, 'name': 'triggerId', + 'grpc_enum': 'DigitalEdgeScriptTriggerIdentifier', 'repeated_capability_type': 'script_triggers', 'type': 'ViConstString', 'use_array': False, @@ -3289,6 +3295,7 @@ ] }, 'name': 'signalIdentifier', + 'grpc_enum': 'SignalIdentifier', 'type': 'ViConstString', 'use_array': False, 'use_in_python_api': True @@ -4574,6 +4581,7 @@ ] }, 'name': 'triggerIdentifier', + 'grpc_enum': 'SignalIdentifier', 'type': 'ViConstString', 'use_array': False, 'use_in_python_api': True @@ -5341,6 +5349,7 @@ 'description': 'Specifies the array of data to load into the waveform. The array must have at least as many elements as the value in the **size_in_samples** parameter in the nirfsg_AllocateArbWaveform function.' }, 'name': 'waveformDataArray', + 'grpc_name': 'wfm_data', 'numpy': True, 'size': { 'mechanism': 'len', @@ -5416,6 +5425,7 @@ 'description': 'Specifies the array of data to load into the waveform. The array must have at least as many elements as the value in the **size_in_samples** parameter in the nirfsg_AllocateArbWaveform function.' }, 'name': 'waveformDataArray', + 'grpc_name': 'wfm_data', 'numpy': True, 'size': { 'mechanism': 'len', @@ -5491,6 +5501,7 @@ 'description': 'Specifies the array of data to load into the waveform. The array must have at least as many elements as the value in the **size_in_samples** parameter in the nirfsg_AllocateArbWaveform function.' }, 'name': 'waveformDataArray', + 'grpc_name': 'wfm_data', 'numpy': True, 'size': { 'mechanism': 'len', diff --git a/src/nirfsg/metadata/nirfsg.proto b/src/nirfsg/metadata/nirfsg.proto new file mode 100644 index 000000000..04233cf72 --- /dev/null +++ b/src/nirfsg/metadata/nirfsg.proto @@ -0,0 +1,2089 @@ +//--------------------------------------------------------------------- +// 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 StartTriggerSource { + START_TRIGGER_SOURCE_UNSPECIFIED = 0; + START_TRIGGER_SOURCE_PFI0 = 1; + START_TRIGGER_SOURCE_PFI1 = 2; + START_TRIGGER_SOURCE_PFI2 = 3; + START_TRIGGER_SOURCE_PFI3 = 4; + START_TRIGGER_SOURCE_PXI_TRIG0 = 5; + START_TRIGGER_SOURCE_PXI_TRIG1 = 6; + START_TRIGGER_SOURCE_PXI_TRIG2 = 7; + START_TRIGGER_SOURCE_PXI_TRIG3 = 8; + START_TRIGGER_SOURCE_PXI_TRIG4 = 9; + START_TRIGGER_SOURCE_PXI_TRIG5 = 10; + START_TRIGGER_SOURCE_PXI_TRIG6 = 11; + START_TRIGGER_SOURCE_PXI_TRIG7 = 12; + START_TRIGGER_SOURCE_PXI_STAR = 13; + START_TRIGGER_SOURCE_PXIE_DSTARB = 14; + START_TRIGGER_SOURCE_SYNC_START_TRIGGER = 15; + START_TRIGGER_SOURCE_SYNC_SCRIPT_TRIGGER = 16; + START_TRIGGER_SOURCE_TRIG_IN = 17; + START_TRIGGER_SOURCE_DIO0 = 18; + START_TRIGGER_SOURCE_DIO1 = 19; + START_TRIGGER_SOURCE_DIO2 = 20; + START_TRIGGER_SOURCE_DIO3 = 21; + START_TRIGGER_SOURCE_DIO4 = 22; + START_TRIGGER_SOURCE_DIO5 = 23; + START_TRIGGER_SOURCE_DIO6 = 24; + START_TRIGGER_SOURCE_DIO7 = 25; +} + +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_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 { + option allow_alias = true; + NIRFSG_REAL64_UNSPECIFIED = 0; + NIRFSG_REAL64_REF_CLOCK_RATE_10_MHZ = 10000000; + NIRFSG_REAL64_REF_CLOCK_RATE_AUTO = -1; + NIRFSG_REAL64_UPCONVERTER_FREQUENCY_OFFSET_MODE_AUTO = -1; + NIRFSG_REAL64_UPCONVERTER_FREQUENCY_OFFSET_MODE_ENABLE = 1; + NIRFSG_REAL64_UPCONVERTER_FREQUENCY_OFFSET_MODE_USER_DEFINED = 5001; +} + +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_ANY_SIGNAL_OUTPUT_TERM_DIO0 = 15; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO1 = 16; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO2 = 17; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO3 = 18; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO4 = 19; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO5 = 20; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO6 = 21; + NIRFSG_STRING_ANY_SIGNAL_OUTPUT_TERM_DIO7 = 22; + NIRFSG_STRING_ARB_SAMPLE_CLOCK_SOURCE_ONBOARD_CLOCK = 23; + NIRFSG_STRING_ARB_SAMPLE_CLOCK_SOURCE_CLK_IN = 24; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DO_NOT_EXPORT = 25; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PFI0 = 26; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PFI1 = 27; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG0 = 28; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG1 = 29; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG2 = 30; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG3 = 31; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG4 = 32; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG5 = 33; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXI_TRIG6 = 34; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_PXIE_DSTARC = 35; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_TRIG_OUT = 36; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO0 = 37; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO1 = 38; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO2 = 39; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO3 = 40; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO4 = 41; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO5 = 42; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO6 = 43; + NIRFSG_STRING_CONFIG_LIST_TRIG_OUTPUT_TERM_DIO7 = 44; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PFI0 = 45; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PFI1 = 46; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG0 = 47; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG1 = 48; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG2 = 49; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG3 = 50; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG4 = 51; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG5 = 52; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG6 = 53; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXI_TRIG7 = 54; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_PXIE_DSTARB = 55; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_MARKER0_EVENT = 56; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_MARKER1_EVENT = 57; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_MARKER2_EVENT = 58; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_MARKER3_EVENT = 59; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_TIMER_EVENT = 60; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_TRIG_IN = 61; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO0 = 62; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO1 = 63; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO2 = 64; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO3 = 65; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO4 = 66; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO5 = 67; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO6 = 68; + NIRFSG_STRING_CONFIG_LIST_TRIG_SOURCE_DIO7 = 69; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_DO_NOT_EXPORT = 70; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG0 = 71; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG1 = 72; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG2 = 73; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG3 = 74; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG4 = 75; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG5 = 76; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXI_TRIG6 = 77; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_PXIE_DSTARC = 78; + NIRFSG_STRING_CONFIG_SETTLED_EVENT_OUTPUT_TERM_TRIG_OUT = 79; + NIRFSG_STRING_LO_SOURCE_ONBOARD = 80; + NIRFSG_STRING_LO_SOURCE_LO_IN = 81; + NIRFSG_STRING_LO_SOURCE_SECONDARY = 82; + NIRFSG_STRING_LO_SOURCE_SG_SA_SHARED = 83; + NIRFSG_STRING_LO_SOURCE_AUTOMATIC_SG_SA_SHARED = 84; + NIRFSG_STRING_PXI_CHASSIS_CLK10_NONE = 85; + NIRFSG_STRING_PXI_CHASSIS_CLK10_ONBOARD_CLOCK = 86; + NIRFSG_STRING_PXI_CHASSIS_CLK10_REF_IN = 87; + NIRFSG_STRING_REF_CLOCK_OUTPUT_TERM_DO_NOT_EXPORT = 88; + NIRFSG_STRING_REF_CLOCK_OUTPUT_TERM_REF_OUT = 89; + NIRFSG_STRING_REF_CLOCK_OUTPUT_TERM_REF_OUT2 = 90; + NIRFSG_STRING_REF_CLOCK_OUTPUT_TERM_CLK_OUT = 91; + NIRFSG_STRING_REF_CLOCK_SOURCE_ONBOARD_CLOCK = 92; + NIRFSG_STRING_REF_CLOCK_SOURCE_REF_IN = 93; + NIRFSG_STRING_REF_CLOCK_SOURCE_PXI_CLK = 94; + NIRFSG_STRING_REF_CLOCK_SOURCE_CLK_IN = 95; + NIRFSG_STRING_REF_CLOCK_SOURCE_REF_IN_2 = 96; + NIRFSG_STRING_REF_CLOCK_SOURCE_PXI_CLK_MASTER = 97; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PFI0 = 98; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PFI1 = 99; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PFI2 = 100; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PFI3 = 101; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PXI_TRIG0 = 102; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PXI_TRIG1 = 103; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PXI_TRIG2 = 104; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PXI_TRIG3 = 105; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PXI_TRIG4 = 106; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PXI_TRIG5 = 107; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PXI_TRIG6 = 108; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PXI_TRIG7 = 109; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PXI_STAR = 110; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PXIE_DSTARB = 111; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_SYNC_START_TRIGGER = 112; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_SYNC_SCRIPT_TRIGGER = 113; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_TRIG_IN = 114; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_PULSE_IN = 115; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_DIO0 = 116; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_DIO1 = 117; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_DIO2 = 118; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_DIO3 = 119; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_DIO4 = 120; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_DIO5 = 121; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_DIO6 = 122; + NIRFSG_STRING_SCIPT_TRIGGER_SOURCE_DIO7 = 123; + NIRFSG_STRING_START_TRIGGER_SOURCE_PFI0 = 124; + NIRFSG_STRING_START_TRIGGER_SOURCE_PFI1 = 125; + NIRFSG_STRING_START_TRIGGER_SOURCE_PFI2 = 126; + NIRFSG_STRING_START_TRIGGER_SOURCE_PFI3 = 127; + NIRFSG_STRING_START_TRIGGER_SOURCE_PXI_TRIG0 = 128; + NIRFSG_STRING_START_TRIGGER_SOURCE_PXI_TRIG1 = 129; + NIRFSG_STRING_START_TRIGGER_SOURCE_PXI_TRIG2 = 130; + NIRFSG_STRING_START_TRIGGER_SOURCE_PXI_TRIG3 = 131; + NIRFSG_STRING_START_TRIGGER_SOURCE_PXI_TRIG4 = 132; + NIRFSG_STRING_START_TRIGGER_SOURCE_PXI_TRIG5 = 133; + NIRFSG_STRING_START_TRIGGER_SOURCE_PXI_TRIG6 = 134; + NIRFSG_STRING_START_TRIGGER_SOURCE_PXI_TRIG7 = 135; + NIRFSG_STRING_START_TRIGGER_SOURCE_PXI_STAR = 136; + NIRFSG_STRING_START_TRIGGER_SOURCE_PXIE_DSTARB = 137; + NIRFSG_STRING_START_TRIGGER_SOURCE_SYNC_START_TRIGGER = 138; + NIRFSG_STRING_START_TRIGGER_SOURCE_SYNC_SCRIPT_TRIGGER = 139; + NIRFSG_STRING_START_TRIGGER_SOURCE_TRIG_IN = 140; + NIRFSG_STRING_START_TRIGGER_SOURCE_DIO0 = 141; + NIRFSG_STRING_START_TRIGGER_SOURCE_DIO1 = 142; + NIRFSG_STRING_START_TRIGGER_SOURCE_DIO2 = 143; + NIRFSG_STRING_START_TRIGGER_SOURCE_DIO3 = 144; + NIRFSG_STRING_START_TRIGGER_SOURCE_DIO4 = 145; + NIRFSG_STRING_START_TRIGGER_SOURCE_DIO5 = 146; + NIRFSG_STRING_START_TRIGGER_SOURCE_DIO6 = 147; + NIRFSG_STRING_START_TRIGGER_SOURCE_DIO7 = 148; +} + +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 = 3; + bool value = 4; +} + +message CheckAttributeViBooleanResponse { + int32 status = 1; +} + +message CheckAttributeViInt32Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute = 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 = 3; + int64 value_raw = 4; +} + +message CheckAttributeViInt64Response { + int32 status = 1; +} + +message CheckAttributeViReal64Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute = 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 = 3; + nidevice_grpc.Session value = 4; +} + +message CheckAttributeViSessionResponse { + int32 status = 1; +} + +message CheckAttributeViStringRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute = 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 { + StartTriggerSource 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 { + StartTriggerSource 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 { + StartTriggerSource 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 = 3; +} + +message GetAttributeViBooleanResponse { + int32 status = 1; + bool value = 2; +} + +message GetAttributeViInt32Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute = 3; +} + +message GetAttributeViInt32Response { + int32 status = 1; + sint32 value = 2; +} + +message GetAttributeViInt64Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute = 3; +} + +message GetAttributeViInt64Response { + int32 status = 1; + int64 value = 2; +} + +message GetAttributeViReal64Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute = 3; +} + +message GetAttributeViReal64Response { + int32 status = 1; + double value = 2; +} + +message GetAttributeViSessionRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute = 3; +} + +message GetAttributeViSessionResponse { + int32 status = 1; + nidevice_grpc.Session value = 2; +} + +message GetAttributeViStringRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute = 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 new_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 = 3; + bool value = 4; +} + +message SetAttributeViBooleanResponse { + int32 status = 1; +} + +message SetAttributeViInt32Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute = 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 = 3; + int64 value_raw = 4; +} + +message SetAttributeViInt64Response { + int32 status = 1; +} + +message SetAttributeViReal64Request { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute = 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 = 3; + nidevice_grpc.Session value = 4; +} + +message SetAttributeViSessionResponse { + int32 status = 1; +} + +message SetAttributeViStringRequest { + nidevice_grpc.Session vi = 1; + string channel_name = 2; + NiRFSGAttribute attribute = 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/system_tests/test_system_nirfsg.py b/src/nirfsg/system_tests/test_system_nirfsg.py index 2a89ad161..c47b74159 100644 --- a/src/nirfsg/system_tests/test_system_nirfsg.py +++ b/src/nirfsg/system_tests/test_system_nirfsg.py @@ -5,6 +5,7 @@ import os import pathlib import pytest +import grpc import sys import time @@ -583,3 +584,18 @@ class TestLibrary(SystemTests): @pytest.fixture(scope='class') def session_creation_kwargs(self): return {} + + +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} \ No newline at end of file