Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ Indicates the most recent driver version used to test builds of the current sour
| NI-RFmx Demod | 2025 Q1 | Not Supported | Not Supported |
| NI-RFmx GSM | 2025 Q1 | Not Supported | Not Supported |
| NI-RFmx LTE | 2026 Q2 | Not Supported | Not Supported |
| NI-RFmx Pulse | 2025 Q1 | Not Supported | Not Supported |
| NI-RFmx Pulse | 2025 Q3 | Not Supported | Not Supported |
| NI-RFmx NR | 2026 Q2 | Not Supported | Not Supported |
| NI-RFmx SpecAn | 2025 Q4 | Not Supported | Not Supported |
| NI-RFmx TD-SCDMA | 2025 Q1 | Not Supported | Not Supported |
| NI-RFmx VNA | 2026 Q2 | Not Supported | Not Supported |
| NI-RFmx VNA | 2026 Q3 | Not Supported | Not Supported |
| NI-RFmx WCDMA | 2025 Q1 | Not Supported | Not Supported |
| NI-RFmx WLAN | 2026 Q2 | Not Supported | Not Supported |
| NI-RFmx WLAN | 2026 Q3 | Not Supported | Not Supported |
| NI-RFmx WLANGen | 2026 Q2 | Not Supported | Not Supported |
| NI-RFSA | 2026 Q2 | 2026 Q2 | 2026 Q2 |
| NI-RFSG | 2025 Q3 | 2025 Q3 | 2025 Q3 |
Expand Down
39 changes: 38 additions & 1 deletion generated/nirfmxinstr/nirfmxinstr.proto
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

//---------------------------------------------------------------------
// This file is generated from NI-RFMXINSTR API metadata version 25.3.0
// This file is generated from NI-RFMXINSTR API metadata version 26.5.0

@reckenro reckenro Jun 19, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment is just to block the PR . Similar reasoning as the comment in the other PR

grpc-device will be having an early 2.18 release for some critical changes before releasing again for 2.19. This process will be starting tomorrow 6/16 and would want this change to go in after that early release has happened which should be done before the end of the week June 19th.

//---------------------------------------------------------------------
// Proto file for the NI-RFMXINSTR Metadata
//---------------------------------------------------------------------
Expand Down Expand Up @@ -32,6 +32,7 @@ service NiRFmxInstr {
rpc CfgRFAttenuation(CfgRFAttenuationRequest) returns (CfgRFAttenuationResponse);
rpc CfgSParameterExternalAttenuationTable(CfgSParameterExternalAttenuationTableRequest) returns (CfgSParameterExternalAttenuationTableResponse);
rpc CfgSParameterExternalAttenuationTableInterleavedIQ(CfgSParameterExternalAttenuationTableInterleavedIQRequest) returns (CfgSParameterExternalAttenuationTableInterleavedIQResponse);
rpc CfgSParameterExternalAttenuationTableSplit(CfgSParameterExternalAttenuationTableSplitRequest) returns (CfgSParameterExternalAttenuationTableSplitResponse);
rpc CfgSParameterExternalAttenuationType(CfgSParameterExternalAttenuationTypeRequest) returns (CfgSParameterExternalAttenuationTypeResponse);
rpc CheckAcquisitionStatus(CheckAcquisitionStatusRequest) returns (CheckAcquisitionStatusResponse);
rpc CheckIfListExists(CheckIfListExistsRequest) returns (CheckIfListExistsResponse);
Expand All @@ -44,6 +45,7 @@ service NiRFmxInstr {
rpc ExportSignal(ExportSignalRequest) returns (ExportSignalResponse);
rpc FetchRawIQData(FetchRawIQDataRequest) returns (FetchRawIQDataResponse);
rpc FetchRawIQDataInterleavedIQ(FetchRawIQDataInterleavedIQRequest) returns (FetchRawIQDataInterleavedIQResponse);
rpc FetchRawIQDataSplit(FetchRawIQDataSplitRequest) returns (FetchRawIQDataSplitResponse);
rpc GetAttributeF32(GetAttributeF32Request) returns (GetAttributeF32Response);
rpc GetAttributeF32Array(GetAttributeF32ArrayRequest) returns (GetAttributeF32ArrayResponse);
rpc GetAttributeF64(GetAttributeF64Request) returns (GetAttributeF64Response);
Expand Down Expand Up @@ -632,6 +634,24 @@ message CfgSParameterExternalAttenuationTableInterleavedIQResponse {
int32 status = 1;
}

message CfgSParameterExternalAttenuationTableSplitRequest {
nidevice_grpc.Session instrument = 1;
string selector_string = 2;
string table_name = 3;
repeated double frequency = 4;
repeated double s_parameters_i = 5;
repeated double s_parameters_q = 6;
int32 number_of_ports = 7;
oneof s_parameter_orientation_enum {
SParameterOrientation s_parameter_orientation = 8;
int32 s_parameter_orientation_raw = 9;
}
}

message CfgSParameterExternalAttenuationTableSplitResponse {
int32 status = 1;
}

message CfgSParameterExternalAttenuationTypeRequest {
nidevice_grpc.Session instrument = 1;
string selector_string = 2;
Expand Down Expand Up @@ -772,6 +792,23 @@ message FetchRawIQDataInterleavedIQResponse {
int32 actual_array_size = 5;
}

message FetchRawIQDataSplitRequest {
nidevice_grpc.Session instrument = 1;
string selector_string = 2;
double timeout = 3;
int32 records_to_fetch = 4;
int64 samples_to_read = 5;
}

message FetchRawIQDataSplitResponse {
int32 status = 1;
double x0 = 2;
double dx = 3;
repeated float data_i = 4;
repeated float data_q = 5;
int32 actual_array_size = 6;
}

message GetAttributeF32Request {
nidevice_grpc.Session instrument = 1;
string channel_name = 2;
Expand Down
52 changes: 52 additions & 0 deletions generated/nirfmxinstr/nirfmxinstr_client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,37 @@ cfg_s_parameter_external_attenuation_table_interleaved_iq(const StubPtr& stub, c
return response;
}

CfgSParameterExternalAttenuationTableSplitResponse
cfg_s_parameter_external_attenuation_table_split(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& selector_string, const std::string& table_name, const std::vector<double>& frequency, const std::vector<double>& s_parameters_i, const std::vector<double>& s_parameters_q, const pb::int32& number_of_ports, const simple_variant<SParameterOrientation, pb::int32>& s_parameter_orientation)
{
::grpc::ClientContext context;

auto request = CfgSParameterExternalAttenuationTableSplitRequest{};
request.mutable_instrument()->CopyFrom(instrument);
request.set_selector_string(selector_string);
request.set_table_name(table_name);
copy_array(frequency, request.mutable_frequency());
copy_array(s_parameters_i, request.mutable_s_parameters_i());
copy_array(s_parameters_q, request.mutable_s_parameters_q());
request.set_number_of_ports(number_of_ports);
const auto s_parameter_orientation_ptr = s_parameter_orientation.get_if<SParameterOrientation>();
const auto s_parameter_orientation_raw_ptr = s_parameter_orientation.get_if<pb::int32>();
if (s_parameter_orientation_ptr) {
request.set_s_parameter_orientation(*s_parameter_orientation_ptr);
}
else if (s_parameter_orientation_raw_ptr) {
request.set_s_parameter_orientation_raw(*s_parameter_orientation_raw_ptr);
}

auto response = CfgSParameterExternalAttenuationTableSplitResponse{};

raise_if_error(
stub->CfgSParameterExternalAttenuationTableSplit(&context, request, &response),
context);

return response;
}

CfgSParameterExternalAttenuationTypeResponse
cfg_s_parameter_external_attenuation_type(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& selector_string, const simple_variant<SParameterType, pb::int32>& s_parameter_type)
{
Expand Down Expand Up @@ -580,6 +611,27 @@ fetch_raw_iq_data_interleaved_iq(const StubPtr& stub, const nidevice_grpc::Sessi
return response;
}

FetchRawIQDataSplitResponse
fetch_raw_iq_data_split(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& selector_string, const double& timeout, const pb::int32& records_to_fetch, const pb::int64& samples_to_read)
{
::grpc::ClientContext context;

auto request = FetchRawIQDataSplitRequest{};
request.mutable_instrument()->CopyFrom(instrument);
request.set_selector_string(selector_string);
request.set_timeout(timeout);
request.set_records_to_fetch(records_to_fetch);
request.set_samples_to_read(samples_to_read);

auto response = FetchRawIQDataSplitResponse{};

raise_if_error(
stub->FetchRawIQDataSplit(&context, request, &response),
context);

return response;
}

GetAttributeF32Response
get_attribute_f32(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& channel_name, const NiRFmxInstrAttribute& attribute_id)
{
Expand Down
2 changes: 2 additions & 0 deletions generated/nirfmxinstr/nirfmxinstr_client.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ CfgMechanicalAttenuationResponse cfg_mechanical_attenuation(const StubPtr& stub,
CfgRFAttenuationResponse cfg_rf_attenuation(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& channel_name, const simple_variant<RFAttenuationAuto, pb::int32>& rf_attenuation_auto, const double& rf_attenuation_value);
CfgSParameterExternalAttenuationTableResponse cfg_s_parameter_external_attenuation_table(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& selector_string, const std::string& table_name, const std::vector<double>& frequency, const std::vector<nidevice_grpc::NIComplexNumber>& s_parameters, const pb::int32& number_of_ports, const simple_variant<SParameterOrientation, pb::int32>& s_parameter_orientation);
CfgSParameterExternalAttenuationTableInterleavedIQResponse cfg_s_parameter_external_attenuation_table_interleaved_iq(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& selector_string, const std::string& table_name, const std::vector<double>& frequency, const std::vector<double>& s_parameters, const pb::int32& number_of_ports, const simple_variant<SParameterOrientation, pb::int32>& s_parameter_orientation);
CfgSParameterExternalAttenuationTableSplitResponse cfg_s_parameter_external_attenuation_table_split(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& selector_string, const std::string& table_name, const std::vector<double>& frequency, const std::vector<double>& s_parameters_i, const std::vector<double>& s_parameters_q, const pb::int32& number_of_ports, const simple_variant<SParameterOrientation, pb::int32>& s_parameter_orientation);
CfgSParameterExternalAttenuationTypeResponse cfg_s_parameter_external_attenuation_type(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& selector_string, const simple_variant<SParameterType, pb::int32>& s_parameter_type);
CheckAcquisitionStatusResponse check_acquisition_status(const StubPtr& stub, const nidevice_grpc::Session& instrument);
CheckIfListExistsResponse check_if_list_exists(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& list_name);
Expand All @@ -48,6 +49,7 @@ EnableCalibrationPlaneResponse enable_calibration_plane(const StubPtr& stub, con
ExportSignalResponse export_signal(const StubPtr& stub, const nidevice_grpc::Session& instrument, const simple_variant<ExportSignalSource, pb::int32>& export_signal_source, const simple_variant<OutputTerminal, std::string>& export_signal_output_terminal);
FetchRawIQDataResponse fetch_raw_iq_data(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& selector_string, const double& timeout, const pb::int32& records_to_fetch, const pb::int64& samples_to_read);
FetchRawIQDataInterleavedIQResponse fetch_raw_iq_data_interleaved_iq(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& selector_string, const double& timeout, const pb::int32& records_to_fetch, const pb::int64& samples_to_read);
FetchRawIQDataSplitResponse fetch_raw_iq_data_split(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& selector_string, const double& timeout, const pb::int32& records_to_fetch, const pb::int64& samples_to_read);
GetAttributeF32Response get_attribute_f32(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& channel_name, const NiRFmxInstrAttribute& attribute_id);
GetAttributeF32ArrayResponse get_attribute_f32_array(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& channel_name, const NiRFmxInstrAttribute& attribute_id);
GetAttributeF64Response get_attribute_f64(const StubPtr& stub, const nidevice_grpc::Session& instrument, const std::string& channel_name, const NiRFmxInstrAttribute& attribute_id);
Expand Down
12 changes: 11 additions & 1 deletion generated/nirfmxinstr/nirfmxinstr_compilation_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,12 @@ int32 CfgSParameterExternalAttenuationTable(niRFmxInstrHandle instrumentHandle,

int32 CfgSParameterExternalAttenuationTableInterleavedIQ(niRFmxInstrHandle instrumentHandle, char selectorString[], char tableName[], float64 frequency[], int32 frequencyArraySize, float64 sParameters[], int32 sParameterTableSize, int32 numberOfPorts, int32 sParameterOrientation)
{
return RFmxInstr_CfgSParameterExternalAttenuationTable(instrumentHandle, selectorString, tableName, frequency, frequencyArraySize, reinterpret_cast<NIComplexDouble*>(sParameters), sParameterTableSize/2, numberOfPorts, sParameterOrientation);
return RFmxInstr_CfgSParameterExternalAttenuationTable(instrumentHandle, selectorString, tableName, frequency, frequencyArraySize, reinterpret_cast<NIComplexDouble*>(sParameters), sParameterTableSize, numberOfPorts, sParameterOrientation);
}

int32 CfgSParameterExternalAttenuationTableSplit(niRFmxInstrHandle instrumentHandle, char selectorString[], char tableName[], float64 frequency[], int32 frequencyArraySize, float64 sParametersI[], float64 sParametersQ[], int32 sParameterTableSize, int32 numberOfPorts, int32 sParameterOrientation)
{
return RFmxInstr_CfgSParameterExternalAttenuationTableSplit(instrumentHandle, selectorString, tableName, frequency, frequencyArraySize, sParametersI, sParametersQ, sParameterTableSize, numberOfPorts, sParameterOrientation);
}

int32 CfgSParameterExternalAttenuationType(niRFmxInstrHandle instrumentHandle, char selectorString[], int32 sParameterType)
Expand Down Expand Up @@ -137,6 +142,11 @@ int32 FetchRawIQDataInterleavedIQ(niRFmxInstrHandle instrumentHandle, char selec
return RFmxInstr_FetchRawIQData(instrumentHandle, selectorString, timeout, recordsToFetch, samplesToRead, x0, dx, reinterpret_cast<NIComplexSingle*>(data), arraySize, actualArraySize, reserved);
}

int32 FetchRawIQDataSplit(niRFmxInstrHandle instrumentHandle, char selectorString[], float64 timeout, int32 recordsToFetch, int64 samplesToRead, float64* x0, float64* dx, float32 dataI[], float32 dataQ[], int32 arraySize, int32* actualArraySize, void* reserved)
{
return RFmxInstr_FetchRawIQDataSplit(instrumentHandle, selectorString, timeout, recordsToFetch, samplesToRead, x0, dx, dataI, dataQ, arraySize, actualArraySize, reserved);
}

int32 GetAttributeF32(niRFmxInstrHandle instrumentHandle, char channelName[], int32 attributeID, float32* attrVal)
{
return RFmxInstr_GetAttributeF32(instrumentHandle, channelName, attributeID, attrVal);
Expand Down
20 changes: 19 additions & 1 deletion generated/nirfmxinstr/nirfmxinstr_library.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ NiRFmxInstrLibrary::NiRFmxInstrLibrary(std::shared_ptr<nidevice_grpc::SharedLibr
function_pointers_.CfgRFAttenuation = reinterpret_cast<CfgRFAttenuationPtr>(shared_library_->get_function_pointer("RFmxInstr_CfgRFAttenuation"));
function_pointers_.CfgSParameterExternalAttenuationTable = reinterpret_cast<CfgSParameterExternalAttenuationTablePtr>(shared_library_->get_function_pointer("RFmxInstr_CfgSParameterExternalAttenuationTable"));
function_pointers_.CfgSParameterExternalAttenuationTableInterleavedIQ = reinterpret_cast<CfgSParameterExternalAttenuationTableInterleavedIQPtr>(shared_library_->get_function_pointer("RFmxInstr_CfgSParameterExternalAttenuationTable"));
function_pointers_.CfgSParameterExternalAttenuationTableSplit = reinterpret_cast<CfgSParameterExternalAttenuationTableSplitPtr>(shared_library_->get_function_pointer("RFmxInstr_CfgSParameterExternalAttenuationTableSplit"));
function_pointers_.CfgSParameterExternalAttenuationType = reinterpret_cast<CfgSParameterExternalAttenuationTypePtr>(shared_library_->get_function_pointer("RFmxInstr_CfgSParameterExternalAttenuationType"));
function_pointers_.CheckAcquisitionStatus = reinterpret_cast<CheckAcquisitionStatusPtr>(shared_library_->get_function_pointer("RFmxInstr_CheckAcquisitionStatus"));
function_pointers_.CheckIfListExists = reinterpret_cast<CheckIfListExistsPtr>(shared_library_->get_function_pointer("RFmxInstr_CheckIfListExists"));
Expand All @@ -53,6 +54,7 @@ NiRFmxInstrLibrary::NiRFmxInstrLibrary(std::shared_ptr<nidevice_grpc::SharedLibr
function_pointers_.ExportSignal = reinterpret_cast<ExportSignalPtr>(shared_library_->get_function_pointer("RFmxInstr_ExportSignal"));
function_pointers_.FetchRawIQData = reinterpret_cast<FetchRawIQDataPtr>(shared_library_->get_function_pointer("RFmxInstr_FetchRawIQData"));
function_pointers_.FetchRawIQDataInterleavedIQ = reinterpret_cast<FetchRawIQDataInterleavedIQPtr>(shared_library_->get_function_pointer("RFmxInstr_FetchRawIQData"));
function_pointers_.FetchRawIQDataSplit = reinterpret_cast<FetchRawIQDataSplitPtr>(shared_library_->get_function_pointer("RFmxInstr_FetchRawIQDataSplit"));
function_pointers_.GetAttributeF32 = reinterpret_cast<GetAttributeF32Ptr>(shared_library_->get_function_pointer("RFmxInstr_GetAttributeF32"));
function_pointers_.GetAttributeF32Array = reinterpret_cast<GetAttributeF32ArrayPtr>(shared_library_->get_function_pointer("RFmxInstr_GetAttributeF32Array"));
function_pointers_.GetAttributeF64 = reinterpret_cast<GetAttributeF64Ptr>(shared_library_->get_function_pointer("RFmxInstr_GetAttributeF64"));
Expand Down Expand Up @@ -247,7 +249,15 @@ int32 NiRFmxInstrLibrary::CfgSParameterExternalAttenuationTableInterleavedIQ(niR
if (!function_pointers_.CfgSParameterExternalAttenuationTableInterleavedIQ) {
throw nidevice_grpc::LibraryLoadException("Could not find RFmxInstr_CfgSParameterExternalAttenuationTable.");
}
return function_pointers_.CfgSParameterExternalAttenuationTableInterleavedIQ(instrumentHandle, selectorString, tableName, frequency, frequencyArraySize, reinterpret_cast<NIComplexDouble*>(sParameters), sParameterTableSize/2, numberOfPorts, sParameterOrientation);
return function_pointers_.CfgSParameterExternalAttenuationTableInterleavedIQ(instrumentHandle, selectorString, tableName, frequency, frequencyArraySize, reinterpret_cast<NIComplexDouble*>(sParameters), sParameterTableSize, numberOfPorts, sParameterOrientation);
}

int32 NiRFmxInstrLibrary::CfgSParameterExternalAttenuationTableSplit(niRFmxInstrHandle instrumentHandle, char selectorString[], char tableName[], float64 frequency[], int32 frequencyArraySize, float64 sParametersI[], float64 sParametersQ[], int32 sParameterTableSize, int32 numberOfPorts, int32 sParameterOrientation)
{
if (!function_pointers_.CfgSParameterExternalAttenuationTableSplit) {
throw nidevice_grpc::LibraryLoadException("Could not find RFmxInstr_CfgSParameterExternalAttenuationTableSplit.");
}
return function_pointers_.CfgSParameterExternalAttenuationTableSplit(instrumentHandle, selectorString, tableName, frequency, frequencyArraySize, sParametersI, sParametersQ, sParameterTableSize, numberOfPorts, sParameterOrientation);
}

int32 NiRFmxInstrLibrary::CfgSParameterExternalAttenuationType(niRFmxInstrHandle instrumentHandle, char selectorString[], int32 sParameterType)
Expand Down Expand Up @@ -346,6 +356,14 @@ int32 NiRFmxInstrLibrary::FetchRawIQDataInterleavedIQ(niRFmxInstrHandle instrume
return function_pointers_.FetchRawIQDataInterleavedIQ(instrumentHandle, selectorString, timeout, recordsToFetch, samplesToRead, x0, dx, reinterpret_cast<NIComplexSingle*>(data), arraySize, actualArraySize, reserved);
}

int32 NiRFmxInstrLibrary::FetchRawIQDataSplit(niRFmxInstrHandle instrumentHandle, char selectorString[], float64 timeout, int32 recordsToFetch, int64 samplesToRead, float64* x0, float64* dx, float32 dataI[], float32 dataQ[], int32 arraySize, int32* actualArraySize, void* reserved)
{
if (!function_pointers_.FetchRawIQDataSplit) {
throw nidevice_grpc::LibraryLoadException("Could not find RFmxInstr_FetchRawIQDataSplit.");
}
return function_pointers_.FetchRawIQDataSplit(instrumentHandle, selectorString, timeout, recordsToFetch, samplesToRead, x0, dx, dataI, dataQ, arraySize, actualArraySize, reserved);
}

int32 NiRFmxInstrLibrary::GetAttributeF32(niRFmxInstrHandle instrumentHandle, char channelName[], int32 attributeID, float32* attrVal)
{
if (!function_pointers_.GetAttributeF32) {
Expand Down
Loading
Loading