Skip to content

NI RFmx LTE NB IoT Configuration Functions

Dane Stull edited this page Feb 28, 2022 · 2 revisions

NB IoT Configuration Functions

RFmxLTE_CfgNBIoTComponentCarrier

int32 __stdcall RFmxLTE_CfgNBIoTComponentCarrier (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 NCellID, int32 uplinkSubcarrierSpacing);

Purpose

Configures the Ncell ID and Uplink Subcarrier Spacing parameters for the NB-IoT signal. Use "carrier<k>" or "subblock<n>/carrier<k>" as the selector string to configure this function.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Specifies the instrument session. The RFmx obtains this parameter from the RFmxLTE_Initialize) function.
selectorString char[] Specifies a selector string) comprising of the signal name, subblock number and carrier number. If you do not specify the signal name, the default signal instance is used.
Example:
"subblock0/carrier0"
"signal::sig1/subblock0/carrier0"
You can use the RFmxLTE_BuildCarrierString) function to build the selector string.
NCellID int32 Specifies the narrowband physical layer cell identity.
uplinkSubcarrierSpacing int32 Specifies the subcarrier bandwidth of an NB-IoT signal. This parameter specifies the spacing between adjacent subcarriers.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxLTE_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxLTE_CfgNPUSCHFormat

int32 __stdcall RFmxLTE_CfgNPUSCHFormat (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 format);

Purpose

Configures the format of the narrowband physical uplink shared channel (NPUSCH). Use "carrier<k>" or "subblock<n>/carrier<k>" as the selector string to configure this function.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Specifies the instrument session. The RFmx obtains this parameter from the RFmxLTE_Initialize) function.
selectorString char[] Specifies a selector string) comprising of the signal name, subblock number and carrier number. If you do not specify the signal name, the default signal instance is used.
Example:
"subblock0/carrier0"
"signal::sig1/subblock0/carrier0"
You can use the RFmxLTE_BuildCarrierString) function to build the selector string.
format int32 Specifies the NPUSCH format. A value of 1 indicates that NPUSCH carries user data (UL-SCH) and a value of 2 indicates, NPUSCH carries uplink control information.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxLTE_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxLTE_CfgAutoNPUSCHChannelDetectionEnabled

int32 __stdcall RFmxLTE_CfgAutoNPUSCHChannelDetectionEnabled (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 autoNPUSCHChannelDetectionEnabled);

Purpose

Configures whether the values of the RFMXLTE_ATTR_NPUSCH_TONE_OFFSET), NPUSCH Num Tones, and RFMXLTE_ATTR_NPUSCH_MODULATION_TYPE) attributes for the NPUSCH channel are auto-detected by the measurement or specified by you.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Specifies the instrument session. The RFmx obtains this parameter from the RFmxLTE_Initialize) function.
selectorString char[] Specifies a selector string) comprising of the signal name. If you do not specify the signal name, the default signal instance is used.
Example:
"signal::sig1"
You can use the RFmxLTE_BuildSignalString) function to build the selector string.
autoNPUSCHChannelDetectionEnabled int32 Specifies whether the values of RFMXLTE_ATTR_NPUSCH_TONE_OFFSET, NPUSCH Number of Tones, and RFMXLTE_ATTR_NPUSCH_MODULATION_TYPE attributes are auto-detected by the measurement or specified by you.
RFMXLTE_VAL_AUTO_NPUSCH_CHANNEL_DETECTION_ENABLED_FALSE (0) The measurement uses the values that you specify for the RFMXLTE_ATTR_NPUSCH_TONE_OFFSET, NPUSCH Number of Tones, and NPUSCH ModType attributes.
RFMXLTE_VAL_AUTO_NPUSCH_CHANNEL_DETECTION_ENABLED_TRUE (1) The measurement uses the values of the RFMXLTE_ATTR_NPUSCH_TONE_OFFSET, NPUSCH Number of Tones, and RFMXLTE_ATTR_NPUSCH_MODULATION_TYPE attributes that are auto-detected.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxLTE_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxLTE_CfgNPUSCHTones

int32 __stdcall RFmxLTE_CfgNPUSCHTones (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 toneOffset, int32 numberOfTones, int32 modulationType);

Purpose

Configures the values of toneOffset, numberOfTones, and modulationType parameters for NPUSCH channel. Use "carrier<k>" or "subblock<n>/carrier<k>" as the selector string to configure this function.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Specifies the instrument session. The RFmx obtains this parameter from the RFmxLTE_Initialize) function.
selectorString char[] Specifies a selector string) comprising of the signal name, subblock number and carrier number. If you do not specify the signal name, the default signal instance is used.
Example:
"subblock0/carrier0"
"signal::sig1/subblock0/carrier0"
You can use the RFmxLTE_BuildCarrierString) function to build the selector string.
toneOffset int32 Specifies the location of the starting subcarrier (tone) within the 200 kHz bandwidth that is allocated to the NPUSCH channel.
For 15 kHz subcarrier spacing, the valid values are as follows:
For 3.75 kHz subcarrier spacing, the valid values are 0 to 47, inclusive.
numberOfTones int32 Specifies the number of subcarriers (tones) within the 200 kHz bandwidth that is allocated to the NPUSCH channel.

For Format 1 and 15 kHz subcarrier spacing, the valid values are 1, 3, 6, and 12.
For Format 1, 3.75 kHz subcarrier spacing, and Format 2, the valid value is 1.
modulationType int32 Specifies the modulation type that is used by the NPUSCH channel.
This parameter is valid when numberOfTones is equal to 1 and RFMXLTE_ATTR_NPUSCH_FORMAT) is equal to 1. The modulation type for other configurations is defined in Table 10.1.3.2-1 of the 3GPP TS 36.211 specification.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxLTE_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxLTE_CfgNPUSCHStartingSlot

int32 __stdcall RFmxLTE_CfgNPUSCHStartingSlot (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 startingSlot);

Purpose

Configures the starting slot of the NPUSCH burst. Use "carrier<k>" or "subblock<n>/carrier<k>" as the selector string to configure this function.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Specifies the instrument session. The RFmx obtains this parameter from the RFmxLTE_Initialize) function.
selectorString char[] Specifies a selector string) comprising of the signal name, subblock number and carrier number. If you do not specify the signal name, the default signal instance is used.
Example:
"subblock0/carrier0"
"signal::sig1/subblock0/carrier0"
You can use the RFmxLTE_BuildCarrierString) function to build the selector string.
startingSlot int32 Specifies the starting slot number of the NPUSCH burst.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxLTE_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

RFmxLTE_CfgNPUSCHDMRS

int32 __stdcall RFmxLTE_CfgNPUSCHDMRS (niRFmxInstrHandle instrumentHandle, char selectorString[], int32 NPUSCHDMRSBaseSequenceMode, int32 NPUSCHDMRSBaseSequenceIndex, int32 NPUSCHDMRSCyclicShift, int32 NPUSCHDMRSGroupHoppingEnabled, int32 NPUSCHDMRSDeltaSS);

Purpose

Configures the base sequence mode, base sequence index, cyclic shift, delta sequence shift of the narrowband physical uplink shared channel (NPUSCH) DMRS and specifies whether group hopping is enabled. Use "carrier<k>" or "subblock<n>/carrier<k>" as the selector string to configure this function.

Parameters

Input
Name Type Description
instrumentHandle niRFmxInstrHandle Specifies the instrument session. The RFmx obtains this parameter from the RFmxLTE_Initialize) function.
selectorString char[] Specifies a selector string) comprising of the signal name, subblock number and carrier number. If you do not specify the signal name, the default signal instance is used.
Example:
"subblock0/carrier0"
"signal::sig1/subblock0/carrier0"
You can use the RFmxLTE_BuildCarrierString) function to build the selector string.
NPUSCHDMRSBaseSequenceMode int32 Specifies whether the NPUSCHDMRSBaseSequenceIndex is computed by the measurement or user-specified. This parameter is valid when you set the NPUSCHDMRSGroupHoppingEnabled parameter to RFMXLTE_VAL_NPUSCH_DMRS_GROUP_HOPPING_ENABLED_FALSE, the value of RFMXLTE_ATTR_NPUSCH_FORMAT) attribute to 1, and the value of NPUSCH Number of Tones attribute to 3, 6, or 12.
RFMXLTE_VAL_NPUSCH_DMRS_BASE_SEQUENCE_MODE_MANUAL (0) The measurement uses the value that you specify for the NPUSCHDMRSBaseSequenceIndex parameter.
RFMXLTE_VAL_NPUSCH_DMRS_BASE_SEQUENCE_MODE_AUTO (1) The measurement uses the value of RFMXLTE_ATTR_NCELL_ID) attribute to compute the NPUSCHDMRSBaseSequenceIndex as defined in section 10.1.4.1.2 of the 3GPP TS 36.211 specification.
NPUSCHDMRSBaseSequenceIndex int32 Specifies the base sequence index of the NPUSCH DMRS as defined in section 10.1.4.1.2 of the 3GPP TS 36.211 specification. This parameter is valid when you set the NPUSCHDMRSGroupHoppingEnabled parameter to RFMXLTE_VAL_NPUSCH_DMRS_GROUP_HOPPING_ENABLED_FALSE, the NPUSCHDMRSBaseSequenceMode parameter to RFMXLTE_VAL_NPUSCH_DMRS_BASE_SEQUENCE_MODE_MANUAL, and the value of NPUSCH Number of Tones attribute to 3, 6, or 12.
NPUSCHDMRSCyclicShift int32 Specifies the cyclic shift of the NPUSCH DMRS as defined in table 10.1.4.1.2-3 of the 3GPP TS 36.211 specification.
This parameter is valid when you set the value of RFMXLTE_ATTR_NPUSCH_NUMBER_OF_TONES) attribute to 3 or 6. If the value of RFMXLTE_ATTR_NPUSCH_NUMBER_OF_TONES attribute is 12, the NPUSCH DMRS Cyclic Shift parameter has a fixed value of 0.
NPUSCHDMRSGroupHoppingEnabled int32 Specifies whether group hopping is enabled for the NPUSCH DMRS. This parameter is valid when the value of RFMXLTE_ATTR_NPUSCH_FORMAT) is equal to 1.
RFMXLTE_VAL_NPUSCH_DMRS_GROUP_HOPPING_ENABLED_FALSE (0) Group hopping is disabled.
RFMXLTE_VAL_NPUSCH_DMRS_GROUP_HOPPING_ENABLED_TRUE (1) Group hopping is enabled. The sequence group number is calculated as defined in section 10.1.4.1.3 of the 3GPP TS 36.211 specification
NPUSCHDMRSDeltaSS int32 Specifies the delta sequence shift of the NPUSCH DMRS that is used to calculate the sequence shift pattern, which in turn is used to compute the sequence group number as defined in section 10.1.4.1.3 of the 3GPP TS 36.211 specification. This parameter is valid when you set the NPUSCHDMRSGroupHoppingEnabled parameter to RFMXLTE_VAL_NPUSCH_DMRS_GROUP_HOPPING_ENABLED_TRUE. The default value is 0. Valid values are 0 to 29, inclusive.

Return Value

Name Type Description
status int32 Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. Examine the status code from each call to an RFmx function to determine if an error has occurred.

To obtain a text description of the status code and additional information about the error condition, call the RFmxLTE_GetError) function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

Table of Contents

Internal Development

Creating and Setting Up a gRPC Server

Server Security Support

Creating a gRPC Client

gRPC Client Examples

Session Utilities API Reference

Driver Documentation

gRPC API Differences From C API

Sharing Driver Sessions Between Clients

C API Docs
NI-DAQmx
NI-DCPOWER
NI-DIGITAL PATTERN DRIVER
NI-DMM
NI-FGEN
NI-FPGA
NI-RFmx Bluetooth
NI-RFmx NR
NI-RFmx WCDMA
NI-RFmx GSM
NI-RFmx CDMA2k
NI-RFmx Instr
NI-RFmx LTE
NI-RFmx SpecAn
NI-RFmx TD-SCDMA
NI-RFmx WLAN
NI-RFSA
NI-RFSG
NI-SCOPE
NI-SWITCH
NI-TCLK
NI-XNET
Clone this wiki locally