Source code for nirfmxwlangen.wlangen

"""Defines a root class which is used to identify and control wlan signal generation configuration."""

import functools

import nirfmxwlangen.attributes as attributes
import nirfmxwlangen.enums as enums
import nirfmxwlangen.errors as errors
import nirfmxwlangen.internal._helper as _helper


def _raise_if_disposed(f):
    """From https://stackoverflow.com/questions/5929107/decorators-with-parameters."""

    @functools.wraps(f)
    def aux(*xs, **kws):
        session = xs[0]  # parameter 0 is 'self' which is the session object
        if session.is_disposed:
            raise Exception("Cannot access a disposed Session object.")
        return f(*xs, **kws)

    return aux


[docs] class Session(object): """Defines a root class which is used to identify and control wlan signal generation configuration.""" _session_function_lock = _helper.SessionFunctionLock() def __init__(self, toolkit_compatibility_version, session_name=None, *, grpc_options=None): """Defines a root class which is used to identify and control wlan signal generation configuration.""" if grpc_options: import nirfmxwlangen.internal._grpc_stub_interpreter as _grpc_stub_interpreter self._interpreter = _grpc_stub_interpreter.GrpcStubInterpreter(grpc_options) # type: ignore self._grpc_options = grpc_options self._is_remote_session = True else: from nirfmxwlangen.internal._library_interpreter import LibraryInterpreter self._interpreter = LibraryInterpreter(encoding="windows-1251") # type: ignore self._is_remote_session = False handle, is_new_session, _ = self._interpreter.open_session( # type: ignore session_name, ( toolkit_compatibility_version.value if type(toolkit_compatibility_version) is enums.CompatibilityVersion else toolkit_compatibility_version ), ) self._interpreter.set_session_handle(handle) # type: ignore self.is_new_session = is_new_session self.is_disposed = False self._is_named_session = bool(session_name) def __enter__(self): """Enables the use of the session object in a context manager.""" return self def __exit__(self, exc_type, exc_value, traceback): """Enables the use of the session object in a context manager.""" self.close() # type: ignore
[docs] def close(self): """Closes the wlan generation session and releases resources associated with that session. Call this function once for each uniquely named session that you have created..""" self._session_function_lock.enter_write_lock() try: if not self.is_disposed: # if self._is_named_session: self._interpreter.close_session() # type: ignore self._interpreter.set_session_handle() # type: ignore self.is_disposed = True except errors.Error: self._interpreter.set_session_handle() # type: ignore raise self._session_function_lock.exit_write_lock()
[docs] @_raise_if_disposed def get_error_string(self, error_code): r"""Gets the description of a driver error code. Args: error_code (int): Specifies an error or warning code. Returns: string: Contains the error description. """ try: self._session_function_lock.enter_read_lock() error_message = self._interpreter.get_error_string(error_code) # type: ignore finally: self._session_function_lock.exit_read_lock() return error_message
[docs] @_raise_if_disposed def get_carrier_frequency(self, channel_string): r"""Gets the carrier frequency for signal generation. This value is expressed in Hz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MULTI_SEGMENT_GENERATION_MODE` attribute to NIWLANG_VAL_SINGLE_GENERATOR, you must set this attribute for each segment using the active channel string 'segmenty'. The default value is 2.412 GHz. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the carrier frequency for signal generation. This value is expressed in Hz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MULTI_SEGMENT_GENERATION_MODE` attribute to NIWLANG_VAL_SINGLE_GENERATOR, you must set this attribute for each segment using the active channel string 'segmenty'. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.CARRIER_FREQUENCY.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_carrier_frequency(self, channel_string, value): r"""Sets the carrier frequency for signal generation. This value is expressed in Hz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MULTI_SEGMENT_GENERATION_MODE` attribute to NIWLANG_VAL_SINGLE_GENERATOR, you must set this attribute for each segment using the active channel string 'segmenty'. The default value is 2.412 GHz. Args: selector_string (string): Pass an empty string. value (float): Specifies the carrier frequency for signal generation. This value is expressed in Hz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MULTI_SEGMENT_GENERATION_MODE` attribute to NIWLANG_VAL_SINGLE_GENERATOR, you must set this attribute for each segment using the active channel string 'segmenty'. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.CARRIER_FREQUENCY.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_dual_carrier_modulation_enabled(self, channel_string): r"""Gets whether the dual carrier modulation (DCM) is applied to the data part of the 802.11ax signals or not. The attribute can be set to NIWLANG_VAL_TRUE only when MCS index is 0, 1, 3, or 4 and number of spatial streams is 1 or 2. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use an empty string as the string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and 'userx' as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU to configure this attribute. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.DualCarrierModulationEnabled): Specifies whether the dual carrier modulation (DCM) is applied to the data part of the 802.11ax signals or not. The attribute can be set to NIWLANG_VAL_TRUE only when MCS index is 0, 1, 3, or 4 and number of spatial streams is 1 or 2. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.DUAL_CARRIER_MODULATION_ENABLED.value ) attr_val = enums.DualCarrierModulationEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_dual_carrier_modulation_enabled(self, channel_string, value): r"""Sets whether the dual carrier modulation (DCM) is applied to the data part of the 802.11ax signals or not. The attribute can be set to NIWLANG_VAL_TRUE only when MCS index is 0, 1, 3, or 4 and number of spatial streams is 1 or 2. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use an empty string as the string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and 'userx' as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU to configure this attribute. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.DualCarrierModulationEnabled, int): Specifies whether the dual carrier modulation (DCM) is applied to the data part of the 802.11ax signals or not. The attribute can be set to NIWLANG_VAL_TRUE only when MCS index is 0, 1, 3, or 4 and number of spatial streams is 1 or 2. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.DualCarrierModulationEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.DUAL_CARRIER_MODULATION_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_oversampling_factor(self, channel_string): r"""Gets the ratio at which the WLAN Generation multiplies the Nyquist sample rate to obtain the final sample rate of the signal. This attribute is supported only when you set the compatibilityVersion parameter of the niWLANG_OpenSession function to <span class=monospace>NIWLANG_VAL_COMPATIBILITY_VERSION_060000</span>(60000). The default and the minimum value are both 1.25. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the ratio at which the WLAN Generation multiplies the Nyquist sample rate to obtain the final sample rate of the signal. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.OVERSAMPLING_FACTOR.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_oversampling_factor(self, channel_string, value): r"""Sets the ratio at which the WLAN Generation multiplies the Nyquist sample rate to obtain the final sample rate of the signal. This attribute is supported only when you set the compatibilityVersion parameter of the niWLANG_OpenSession function to <span class=monospace>NIWLANG_VAL_COMPATIBILITY_VERSION_060000</span>(60000). The default and the minimum value are both 1.25. Args: selector_string (string): Pass an empty string. value (int): Specifies the ratio at which the WLAN Generation multiplies the Nyquist sample rate to obtain the final sample rate of the signal. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.OVERSAMPLING_FACTOR.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_idle_interval(self, channel_string): r"""Gets the interframe spacing for signal generation. This value is expressed in seconds. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IDLE_INTERVAL_MODE` attribute to NIWLANG_VAL_IDLE_INTERVAL_MODE_SPLIT, the WLAN Generation places half of the interframe spacing on either side of the burst. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IDLE_INTERVAL_MODE` attribute to NIWLANG_VAL_IDLE_INTERVAL_MODE_POST_BURST, the WLAN Generation places the interframe spacing at the end of the waveform. The waveform contains zeros for the duration of the interframe spacing. Tip: For higher values of idle interval, LabVIEW may run out of memory. For a large idle interval, you can create a small idle waveform and generate the waveform multiple times using scripting. The default value is 100 microseconds. Valid values are 0 to 1, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the interframe spacing for signal generation. This value is expressed in seconds. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IDLE_INTERVAL_MODE` attribute to NIWLANG_VAL_IDLE_INTERVAL_MODE_SPLIT, the WLAN Generation places half of the interframe spacing on either side of the burst. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IDLE_INTERVAL_MODE` attribute to NIWLANG_VAL_IDLE_INTERVAL_MODE_POST_BURST, the WLAN Generation places the interframe spacing at the end of the waveform. The waveform contains zeros for the duration of the interframe spacing. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.IDLE_INTERVAL.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_idle_interval(self, channel_string, value): r"""Sets the interframe spacing for signal generation. This value is expressed in seconds. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IDLE_INTERVAL_MODE` attribute to NIWLANG_VAL_IDLE_INTERVAL_MODE_SPLIT, the WLAN Generation places half of the interframe spacing on either side of the burst. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IDLE_INTERVAL_MODE` attribute to NIWLANG_VAL_IDLE_INTERVAL_MODE_POST_BURST, the WLAN Generation places the interframe spacing at the end of the waveform. The waveform contains zeros for the duration of the interframe spacing. Tip: For higher values of idle interval, LabVIEW may run out of memory. For a large idle interval, you can create a small idle waveform and generate the waveform multiple times using scripting. The default value is 100 microseconds. Valid values are 0 to 1, inclusive. Args: selector_string (string): Pass an empty string. value (float): Specifies the interframe spacing for signal generation. This value is expressed in seconds. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IDLE_INTERVAL_MODE` attribute to NIWLANG_VAL_IDLE_INTERVAL_MODE_SPLIT, the WLAN Generation places half of the interframe spacing on either side of the burst. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IDLE_INTERVAL_MODE` attribute to NIWLANG_VAL_IDLE_INTERVAL_MODE_POST_BURST, the WLAN Generation places the interframe spacing at the end of the waveform. The waveform contains zeros for the duration of the interframe spacing. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.IDLE_INTERVAL.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_dsss_preamble_type(self, channel_string): r"""Gets whether to use a long or short preamble for direct sequence spread spectrum (DSSS) and DSSS-OFDM packets, as defined in IEEE Standard 802.11b-1999. Configure this attribute only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. The default value is NIWLANG_VAL_PREAMBLE_TYPE_LONG_PREAMBLE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.DsssPreambleType): Specifies whether to use a long or short preamble for direct sequence spread spectrum (DSSS) and DSSS-OFDM packets, as defined in IEEE Standard 802.11b-1999. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.DSSS_PREAMBLE_TYPE.value ) attr_val = enums.DsssPreambleType(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_dsss_preamble_type(self, channel_string, value): r"""Sets whether to use a long or short preamble for direct sequence spread spectrum (DSSS) and DSSS-OFDM packets, as defined in IEEE Standard 802.11b-1999. Configure this attribute only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. The default value is NIWLANG_VAL_PREAMBLE_TYPE_LONG_PREAMBLE. Args: selector_string (string): Pass an empty string. value (enums.DsssPreambleType, int): Specifies whether to use a long or short preamble for direct sequence spread spectrum (DSSS) and DSSS-OFDM packets, as defined in IEEE Standard 802.11b-1999. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.DsssPreambleType else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.DSSS_PREAMBLE_TYPE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_payload_data_length(self, channel_string): r"""Gets the length of the payload, excluding the length of the medium access control (MAC) header and frame check sequence (FCS). This value is expressed in bytes. The payload length encoded into the physical layer (PHY) header is the sum of the payload data length and the length of the MAC header and FCS. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, use an empty string active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if the you set :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE and use the :py:meth:`create_trigger_frame_msdu` to generate trigger frame. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE, or use the 'userx' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE and use the :py:meth:`create_trigger_frame_msdu` to generate trigger frame. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE and use the :py:meth:`create_trigger_frame_msdu` to generate trigger frame. The default values are as follows: If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 1,024, and the limits on MPDU length are 0 to 4,095 (inclusive) and the limits on PSDU length are 0 to 65,535 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4,096, and the limits on PSDU length are 0 to 65,535 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4,096 and the limits on MPDU length are 0 to 16,383 (inclusive) and the limits on PSDU length are 0 to 46,92,480 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4,096, and the limits on PSDU length are 0 to 46,92,480 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 256 and the limits on MPDU length are 0 to 16,383 (inclusive) and the limits on PSDU length are 0 to 797,159 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 256, and the limits on PSDU length are 0 to 511 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to any other value, the default value is 1,024 and valid values are 0 to 4,095 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096, the limits on MPDU length are 0 to 16,383 (inclusive) and the limits on PSDU length are 0 to 1,065,600 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096 and the limits on PSDU length are 0 to 1,065,600 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096, the limits on MPDU length are 0 to 16,383 (inclusive) and the limits on PSDU length are 0 to 65,00,631 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096 and the limits on PSDU length are 0 to 65,00,631 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096, the limits on MPDU length are 0 to 16,383 (inclusive) and the limits on PSDU length are 0 to 1,55,23,198 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096 and the limits on PSDU length are 0 to 1,55,23,198 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096, the limits on MPDU length are 0 to 16,383 (inclusive) and the limits on PSDU length are 0 to 1,55,23,198 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096 and the limits on PSDU length are 0 to 1,55,23,198 (inclusive). If you set the NIWLANG_AUTO_DATA_LENGTH attribute to NIWLANG_VAL_AUTO_PAYLOAD_DATA_LENGTH_MODE_L_SIG_LENGTH or NIWLANG_VAL_AUTO_PAYLOAD_DATA_LENGTH_MODE_FRAME_DURATION, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the length of the payload, excluding the length of the medium access control (MAC) header and frame check sequence (FCS). This value is expressed in bytes. The payload length encoded into the physical layer (PHY) header is the sum of the payload data length and the length of the MAC header and FCS. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_DATA_LENGTH.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_payload_data_length(self, channel_string, value): r"""Sets the length of the payload, excluding the length of the medium access control (MAC) header and frame check sequence (FCS). This value is expressed in bytes. The payload length encoded into the physical layer (PHY) header is the sum of the payload data length and the length of the MAC header and FCS. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, use an empty string active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if the you set :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE and use the :py:meth:`create_trigger_frame_msdu` to generate trigger frame. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE, or use the 'userx' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE and use the :py:meth:`create_trigger_frame_msdu` to generate trigger frame. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE and use the :py:meth:`create_trigger_frame_msdu` to generate trigger frame. The default values are as follows: If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 1,024, and the limits on MPDU length are 0 to 4,095 (inclusive) and the limits on PSDU length are 0 to 65,535 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4,096, and the limits on PSDU length are 0 to 65,535 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4,096 and the limits on MPDU length are 0 to 16,383 (inclusive) and the limits on PSDU length are 0 to 46,92,480 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4,096, and the limits on PSDU length are 0 to 46,92,480 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 256 and the limits on MPDU length are 0 to 16,383 (inclusive) and the limits on PSDU length are 0 to 797,159 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 256, and the limits on PSDU length are 0 to 511 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to any other value, the default value is 1,024 and valid values are 0 to 4,095 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096, the limits on MPDU length are 0 to 16,383 (inclusive) and the limits on PSDU length are 0 to 1,065,600 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096 and the limits on PSDU length are 0 to 1,065,600 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096, the limits on MPDU length are 0 to 16,383 (inclusive) and the limits on PSDU length are 0 to 65,00,631 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096 and the limits on PSDU length are 0 to 65,00,631 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096, the limits on MPDU length are 0 to 16,383 (inclusive) and the limits on PSDU length are 0 to 1,55,23,198 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096 and the limits on PSDU length are 0 to 1,55,23,198 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096, the limits on MPDU length are 0 to 16,383 (inclusive) and the limits on PSDU length are 0 to 1,55,23,198 (inclusive). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, the default value is 4096 and the limits on PSDU length are 0 to 1,55,23,198 (inclusive). If you set the NIWLANG_AUTO_DATA_LENGTH attribute to NIWLANG_VAL_AUTO_PAYLOAD_DATA_LENGTH_MODE_L_SIG_LENGTH or NIWLANG_VAL_AUTO_PAYLOAD_DATA_LENGTH_MODE_FRAME_DURATION, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. value (int): Specifies the length of the payload, excluding the length of the medium access control (MAC) header and frame check sequence (FCS). This value is expressed in bytes. The payload length encoded into the physical layer (PHY) header is the sum of the payload data length and the length of the MAC header and FCS. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_DATA_LENGTH.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_number_of_frames(self, channel_string): r"""Gets the number of frames to generate. Each iteration of the :py:meth:`create_waveform_complex_f64` or :py:meth:`create_mimo_waveforms_complex_f64` function generates only one frame along with the idle interval that you specify using the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IDLE_INTERVAL` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_FRAMES` attribute to a value greater than 1, call the :py:meth:`create_waveform_complex_f64` function or the :py:meth:`create_waveform_complex_f64` function in a loop and concatenate the output values from all iterations. If you encounter memory usage issues, download a single frame to the NI RF vector signal generator memory on each iteration. To generate the required number of frames, call the :py:meth:`create_waveform_complex_f64` function or the :py:meth:`create_waveform_complex_f64` function for number of times equal to :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_FRAMES` attribute. To stop the loop, use the done parameter of the :py:meth:`create_waveform_complex_f64` function or the :py:meth:`create_waveform_complex_f64` function. the WLAN Generation sets the value of the done parameter to 1 for the last frame. You can use the niRFSG_AllocateArbWaveform function to preallocate arb memory and then download the waveform frame-by-frame. The default value is 1. Valid values are 1 to 1,000 (inclusive). Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the number of frames to generate. Each iteration of the :py:meth:`create_waveform_complex_f64` or :py:meth:`create_mimo_waveforms_complex_f64` function generates only one frame along with the idle interval that you specify using the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IDLE_INTERVAL` attribute. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_FRAMES.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_number_of_frames(self, channel_string, value): r"""Sets the number of frames to generate. Each iteration of the :py:meth:`create_waveform_complex_f64` or :py:meth:`create_mimo_waveforms_complex_f64` function generates only one frame along with the idle interval that you specify using the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IDLE_INTERVAL` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_FRAMES` attribute to a value greater than 1, call the :py:meth:`create_waveform_complex_f64` function or the :py:meth:`create_waveform_complex_f64` function in a loop and concatenate the output values from all iterations. If you encounter memory usage issues, download a single frame to the NI RF vector signal generator memory on each iteration. To generate the required number of frames, call the :py:meth:`create_waveform_complex_f64` function or the :py:meth:`create_waveform_complex_f64` function for number of times equal to :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_FRAMES` attribute. To stop the loop, use the done parameter of the :py:meth:`create_waveform_complex_f64` function or the :py:meth:`create_waveform_complex_f64` function. the WLAN Generation sets the value of the done parameter to 1 for the last frame. You can use the niRFSG_AllocateArbWaveform function to preallocate arb memory and then download the waveform frame-by-frame. The default value is 1. Valid values are 1 to 1,000 (inclusive). Args: selector_string (string): Pass an empty string. value (int): Specifies the number of frames to generate. Each iteration of the :py:meth:`create_waveform_complex_f64` or :py:meth:`create_mimo_waveforms_complex_f64` function generates only one frame along with the idle interval that you specify using the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IDLE_INTERVAL` attribute. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_FRAMES.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_payload_data_type(self, channel_string): r"""Gets the type of payload for waveform generation. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_PN_SEQUENCE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PayloadDataType): Specifies the type of payload for waveform generation. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_DATA_TYPE.value ) attr_val = enums.PayloadDataType(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_payload_data_type(self, channel_string, value): r"""Sets the type of payload for waveform generation. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_PN_SEQUENCE. Args: selector_string (string): Pass an empty string. value (enums.PayloadDataType, int): Specifies the type of payload for waveform generation. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PayloadDataType else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_DATA_TYPE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_payload_pn_order(self, channel_string): r"""Gets the order (length of memory) of the pseudorandom bit sequence (PRBS) generator. The generated sequence is repeated (2^PN order) - 1 bits. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_TYPE` attribute to NIWLANG_VAL_USER_DEFINED, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_PN_ORDER` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 9. Valid values are 5 to 31, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the order (length of memory) of the pseudorandom bit sequence (PRBS) generator. The generated sequence is repeated (2^PN order) - 1 bits. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_TYPE` attribute to NIWLANG_VAL_USER_DEFINED, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_PN_ORDER` attribute. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_PN_ORDER.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_payload_pn_order(self, channel_string, value): r"""Sets the order (length of memory) of the pseudorandom bit sequence (PRBS) generator. The generated sequence is repeated (2^PN order) - 1 bits. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_TYPE` attribute to NIWLANG_VAL_USER_DEFINED, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_PN_ORDER` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 9. Valid values are 5 to 31, inclusive. Args: selector_string (string): Pass an empty string. value (int): Specifies the order (length of memory) of the pseudorandom bit sequence (PRBS) generator. The generated sequence is repeated (2^PN order) - 1 bits. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_TYPE` attribute to NIWLANG_VAL_USER_DEFINED, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_PN_ORDER` attribute. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_PN_ORDER.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_payload_pn_seed(self, channel_string): r"""Gets the initialization seed used for the pseudorandom bit sequence (PRBS) generator. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_TYPE` attribute to NIWLANG_VAL_USER_DEFINED, the WLAN Generation ignores :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_PN_SEED` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_FRAMES` attribute to a value greater than 1 and the reset parameter of the :py:meth:`create_waveform_complex_f64` function or the :py:meth:`create_waveform_complex_f64` function to NIWLANG_VAL_TRUE, the WLAN Generation uses the PRBS generator state at the end of the payload in frame n as the seed for frame n + 1. If you set the reset parameter of the :py:meth:`create_waveform_complex_f64` function or the :py:meth:`create_waveform_complex_f64` function to NIWLANG_VAL_TRUE, all frames use the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_PN_SEED` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0xD6BF7DF2. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the initialization seed used for the pseudorandom bit sequence (PRBS) generator. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_TYPE` attribute to NIWLANG_VAL_USER_DEFINED, the WLAN Generation ignores :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_PN_SEED` attribute. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_PN_SEED.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_payload_pn_seed(self, channel_string, value): r"""Sets the initialization seed used for the pseudorandom bit sequence (PRBS) generator. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_TYPE` attribute to NIWLANG_VAL_USER_DEFINED, the WLAN Generation ignores :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_PN_SEED` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_FRAMES` attribute to a value greater than 1 and the reset parameter of the :py:meth:`create_waveform_complex_f64` function or the :py:meth:`create_waveform_complex_f64` function to NIWLANG_VAL_TRUE, the WLAN Generation uses the PRBS generator state at the end of the payload in frame n as the seed for frame n + 1. If you set the reset parameter of the :py:meth:`create_waveform_complex_f64` function or the :py:meth:`create_waveform_complex_f64` function to NIWLANG_VAL_TRUE, all frames use the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_PN_SEED` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0xD6BF7DF2. Args: selector_string (string): Pass an empty string. value (int): Specifies the initialization seed used for the pseudorandom bit sequence (PRBS) generator. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_TYPE` attribute to NIWLANG_VAL_USER_DEFINED, the WLAN Generation ignores :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_PN_SEED` attribute. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_PN_SEED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_payload_user_defined_bits(self, channel_string): r"""Gets a user-defined bit pattern as an array of zeros and ones. If the array length is greater than the configured payload length, the WLAN Generation uses a subset of the required length from the beginning of the array for waveform generation. If the array length is less than the configured payload length, the WLAN Generation repeats the user-defined bit pattern until the required length is achieved. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_TYPE` attribute to NIWLANG_VAL_PN_SEQUENCE, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_USER_DEFINED_BITS` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, use an empty string active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, use the following active channel string formats to configure this attribute: An empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if the you set :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default is an empty array. Valid values include arrays of zeros and ones. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies a user-defined bit pattern as an array of zeros and ones. If the array length is greater than the configured payload length, the WLAN Generation uses a subset of the required length from the beginning of the array for waveform generation. If the array length is less than the configured payload length, the WLAN Generation repeats the user-defined bit pattern until the required length is achieved. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_TYPE` attribute to NIWLANG_VAL_PN_SEQUENCE, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_USER_DEFINED_BITS` attribute. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_vector_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_USER_DEFINED_BITS.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_payload_user_defined_bits(self, channel_string, value): r"""Sets a user-defined bit pattern as an array of zeros and ones. If the array length is greater than the configured payload length, the WLAN Generation uses a subset of the required length from the beginning of the array for waveform generation. If the array length is less than the configured payload length, the WLAN Generation repeats the user-defined bit pattern until the required length is achieved. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_TYPE` attribute to NIWLANG_VAL_PN_SEQUENCE, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_USER_DEFINED_BITS` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, use an empty string active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, use the following active channel string formats to configure this attribute: An empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if the you set :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default is an empty array. Valid values include arrays of zeros and ones. Args: selector_string (string): Pass an empty string. value (int): Specifies a user-defined bit pattern as an array of zeros and ones. If the array length is greater than the configured payload length, the WLAN Generation uses a subset of the required length from the beginning of the array for waveform generation. If the array length is less than the configured payload length, the WLAN Generation repeats the user-defined bit pattern until the required length is achieved. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_TYPE` attribute to NIWLANG_VAL_PN_SEQUENCE, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_USER_DEFINED_BITS` attribute. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_vector_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_USER_DEFINED_BITS.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_header_enabled(self, channel_string): r"""Gets whether to enable the medium access control (MAC) header, as defined in section 7.1.2 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013, IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MacHeaderEnabled): Specifies whether to enable the medium access control (MAC) header, as defined in section 7.1.2 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013, IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_HEADER_ENABLED.value ) attr_val = enums.MacHeaderEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_header_enabled(self, channel_string, value): r"""Sets whether to enable the medium access control (MAC) header, as defined in section 7.1.2 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013, IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.MacHeaderEnabled, int): Specifies whether to enable the medium access control (MAC) header, as defined in section 7.1.2 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013, IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MacHeaderEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_HEADER_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_subcarrier_mask(self, channel_string): r"""Gets the sequence of attenuation values on each subcarrier in the signal and payload symbols if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. You must specify a 64-element array. The first element of the array corresponds to subcarrier index-32, and the 64th element corresponds to subcarrier index 31, as defined in section 17.3.2.5 in IEEE Standard 802.11a-1999. If an element has a value of 0, this indicates that the corresponding subcarrier is absent in the generated signal. If an element has a value of 1, this indicates that the corresponding subcarrier is present in the generated signal. The default value is a 64-element array of all ones. Valid values are 64-element arrays of zeros and ones. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the sequence of attenuation values on each subcarrier in the signal and payload symbols if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. You must specify a 64-element array. The first element of the array corresponds to subcarrier index-32, and the 64th element corresponds to subcarrier index 31, as defined in section 17.3.2.5 in IEEE Standard 802.11a-1999. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_vector_attribute_f64( # type: ignore channel_string, attributes.AttributeID.SUBCARRIER_MASK.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_subcarrier_mask(self, channel_string, value): r"""Sets the sequence of attenuation values on each subcarrier in the signal and payload symbols if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. You must specify a 64-element array. The first element of the array corresponds to subcarrier index-32, and the 64th element corresponds to subcarrier index 31, as defined in section 17.3.2.5 in IEEE Standard 802.11a-1999. If an element has a value of 0, this indicates that the corresponding subcarrier is absent in the generated signal. If an element has a value of 1, this indicates that the corresponding subcarrier is present in the generated signal. The default value is a 64-element array of all ones. Valid values are 64-element arrays of zeros and ones. Args: selector_string (string): Pass an empty string. value (float): Specifies the sequence of attenuation values on each subcarrier in the signal and payload symbols if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. You must specify a 64-element array. The first element of the array corresponds to subcarrier index-32, and the 64th element corresponds to subcarrier index 31, as defined in section 17.3.2.5 in IEEE Standard 802.11a-1999. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_vector_attribute_f64( # type: ignore channel_string, attributes.AttributeID.SUBCARRIER_MASK.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_locked_clock_bit_enabled(self, channel_string): r"""Gets whether to enable the Locked Clock Bit flag for the direct sequence spread spectrum (DSSS) header, as defined in sections 18.2.3.4 and 18.2.3.11 of IEEE Standard 802.11b-1999, and section 19.3.2.1 of IEEE Standard 802.11g-2003. Configure this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.LockedClockBitEnabled): Specifies whether to enable the Locked Clock Bit flag for the direct sequence spread spectrum (DSSS) header, as defined in sections 18.2.3.4 and 18.2.3.11 of IEEE Standard 802.11b-1999, and section 19.3.2.1 of IEEE Standard 802.11g-2003. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.LOCKED_CLOCK_BIT_ENABLED.value ) attr_val = enums.LockedClockBitEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_locked_clock_bit_enabled(self, channel_string, value): r"""Sets whether to enable the Locked Clock Bit flag for the direct sequence spread spectrum (DSSS) header, as defined in sections 18.2.3.4 and 18.2.3.11 of IEEE Standard 802.11b-1999, and section 19.3.2.1 of IEEE Standard 802.11g-2003. Configure this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.LockedClockBitEnabled, int): Specifies whether to enable the Locked Clock Bit flag for the direct sequence spread spectrum (DSSS) header, as defined in sections 18.2.3.4 and 18.2.3.11 of IEEE Standard 802.11b-1999, and section 19.3.2.1 of IEEE Standard 802.11g-2003. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.LockedClockBitEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.LOCKED_CLOCK_BIT_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_header_encoder_enabled(self, channel_string): r"""Gets whether to enable convolutional encoding of the OFDM SIGNAL field, as defined in section 17.3.5.5 of IEEE Standard 802.11a-1999. Configure the :py:attr:`~nirfmxwlangen.attributes.AttributeID.HEADER_ENCODER_ENABLED` attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.HeaderEncoderEnabled): Specifies whether to enable convolutional encoding of the OFDM SIGNAL field, as defined in section 17.3.5.5 of IEEE Standard 802.11a-1999. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.HEADER_ENCODER_ENABLED.value ) attr_val = enums.HeaderEncoderEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_header_encoder_enabled(self, channel_string, value): r"""Sets whether to enable convolutional encoding of the OFDM SIGNAL field, as defined in section 17.3.5.5 of IEEE Standard 802.11a-1999. Configure the :py:attr:`~nirfmxwlangen.attributes.AttributeID.HEADER_ENCODER_ENABLED` attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.HeaderEncoderEnabled, int): Specifies whether to enable convolutional encoding of the OFDM SIGNAL field, as defined in section 17.3.5.5 of IEEE Standard 802.11a-1999. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.HeaderEncoderEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.HEADER_ENCODER_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_header_interleaver_enabled(self, channel_string): r"""Gets whether to enable interleaving for the OFDM SIGNAL field, as defined in section 17.3.5.6 of IEEE Standard 802.11a-1999. Configure this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.HeaderInterleaverEnabled): Specifies whether to enable interleaving for the OFDM SIGNAL field, as defined in section 17.3.5.6 of IEEE Standard 802.11a-1999. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.HEADER_INTERLEAVER_ENABLED.value ) attr_val = enums.HeaderInterleaverEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_header_interleaver_enabled(self, channel_string, value): r"""Sets whether to enable interleaving for the OFDM SIGNAL field, as defined in section 17.3.5.6 of IEEE Standard 802.11a-1999. Configure this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.HeaderInterleaverEnabled, int): Specifies whether to enable interleaving for the OFDM SIGNAL field, as defined in section 17.3.5.6 of IEEE Standard 802.11a-1999. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.HeaderInterleaverEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.HEADER_INTERLEAVER_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_payload_scrambler_enabled(self, channel_string): r"""Gets whether to enable scrambling of the payload for OFDM packets and the entire burst for direct sequence spread spectrum (DSSS) packets, as defined in section 17.3.5.4 of IEEE Standard 802.11a-1999, section 18.2.4 of IEEE Standard 802.11b-1999, and section 36.3.13.2 of IEEE Standard 802.11be/D0.2. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_SCRAMBLER_ENABLED` attribute and always enables the payload scrambler. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PayloadScramblerEnabled): Specifies whether to enable scrambling of the payload for OFDM packets and the entire burst for direct sequence spread spectrum (DSSS) packets, as defined in section 17.3.5.4 of IEEE Standard 802.11a-1999, section 18.2.4 of IEEE Standard 802.11b-1999, and section 36.3.13.2 of IEEE Standard 802.11be/D0.2. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_SCRAMBLER_ENABLED.value ) attr_val = enums.PayloadScramblerEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_payload_scrambler_enabled(self, channel_string, value): r"""Sets whether to enable scrambling of the payload for OFDM packets and the entire burst for direct sequence spread spectrum (DSSS) packets, as defined in section 17.3.5.4 of IEEE Standard 802.11a-1999, section 18.2.4 of IEEE Standard 802.11b-1999, and section 36.3.13.2 of IEEE Standard 802.11be/D0.2. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_SCRAMBLER_ENABLED` attribute and always enables the payload scrambler. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.PayloadScramblerEnabled, int): Specifies whether to enable scrambling of the payload for OFDM packets and the entire burst for direct sequence spread spectrum (DSSS) packets, as defined in section 17.3.5.4 of IEEE Standard 802.11a-1999, section 18.2.4 of IEEE Standard 802.11b-1999, and section 36.3.13.2 of IEEE Standard 802.11be/D0.2. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PayloadScramblerEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_SCRAMBLER_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_payload_scrambler_seed(self, channel_string): r"""Gets the initial state of the scrambler seed. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | Standard attribute Value | Active Channel String Format | +================================================================================================================================+========================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B/G DSSS, 80211G DSSSOFDM, 80211N MIMOOFDM, 80211AH MIMOOFDM, 80211AF MIMOOFDM | "" (empty string) | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ For direct sequence spread spectrum (DSSS) packets, the default value follows the requirements defined in sections 18.2.3.1 and section 18.2.3.8 of IEEE Standard 802.11b-1999. For OFDM and DSSS-OFDM packets, the default value is 93. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the initial state of the scrambler seed. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_SCRAMBLER_SEED.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_payload_scrambler_seed(self, channel_string, value): r"""Sets the initial state of the scrambler seed. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | Standard attribute Value | Active Channel String Format | +================================================================================================================================+========================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B/G DSSS, 80211G DSSSOFDM, 80211N MIMOOFDM, 80211AH MIMOOFDM, 80211AF MIMOOFDM | "" (empty string) | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ For direct sequence spread spectrum (DSSS) packets, the default value follows the requirements defined in sections 18.2.3.1 and section 18.2.3.8 of IEEE Standard 802.11b-1999. For OFDM and DSSS-OFDM packets, the default value is 93. Args: selector_string (string): Pass an empty string. value (int): Specifies the initial state of the scrambler seed. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_SCRAMBLER_SEED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_payload_encoder_enabled(self, channel_string): r"""Gets whether to enable convolutional encoding of the OFDM payload, as defined in section 17.3.5.5 of IEEE Standard 802.11a-1999. Configure this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PayloadEncoderEnabled): Specifies whether to enable convolutional encoding of the OFDM payload, as defined in section 17.3.5.5 of IEEE Standard 802.11a-1999. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_ENCODER_ENABLED.value ) attr_val = enums.PayloadEncoderEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_payload_encoder_enabled(self, channel_string, value): r"""Sets whether to enable convolutional encoding of the OFDM payload, as defined in section 17.3.5.5 of IEEE Standard 802.11a-1999. Configure this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.PayloadEncoderEnabled, int): Specifies whether to enable convolutional encoding of the OFDM payload, as defined in section 17.3.5.5 of IEEE Standard 802.11a-1999. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PayloadEncoderEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_ENCODER_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_payload_interleaver_enabled(self, channel_string): r"""Gets whether to enable interleaving for the OFDM payload, as defined in section 17.3.5.6 of IEEE Standard 802.11a-1999. Configure this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PayloadInterleaverEnabled): Specifies whether to enable interleaving for the OFDM payload, as defined in section 17.3.5.6 of IEEE Standard 802.11a-1999. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_INTERLEAVER_ENABLED.value ) attr_val = enums.PayloadInterleaverEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_payload_interleaver_enabled(self, channel_string, value): r"""Sets whether to enable interleaving for the OFDM payload, as defined in section 17.3.5.6 of IEEE Standard 802.11a-1999. Configure this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.PayloadInterleaverEnabled, int): Specifies whether to enable interleaving for the OFDM payload, as defined in section 17.3.5.6 of IEEE Standard 802.11a-1999. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PayloadInterleaverEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_INTERLEAVER_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_carrier_frequency_offset(self, channel_string): r"""Gets the offset in the center frequency of the complex baseband signal from the Carrier Frequency. This value is expressed in Hz. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +================================================================================================================================+================================================================================================================================================================+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx" | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B/G DSSS, 80211G DSSSOFDM, 80211N MIMOOFDM, 80211AH MIMOOFDM, 80211AF MIMOOFDM | "" (empty string) | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid value is -(1/2) \* IQ Rate to (1/2) \* IQ Rate, inclusive, where IQ Rate is the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IQ_RATE` attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the offset in the center frequency of the complex baseband signal from the Carrier Frequency. This value is expressed in Hz. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.CARRIER_FREQUENCY_OFFSET.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_carrier_frequency_offset(self, channel_string, value): r"""Sets the offset in the center frequency of the complex baseband signal from the Carrier Frequency. This value is expressed in Hz. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +================================================================================================================================+================================================================================================================================================================+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx" | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B/G DSSS, 80211G DSSSOFDM, 80211N MIMOOFDM, 80211AH MIMOOFDM, 80211AF MIMOOFDM | "" (empty string) | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid value is -(1/2) \* IQ Rate to (1/2) \* IQ Rate, inclusive, where IQ Rate is the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IQ_RATE` attribute. Args: selector_string (string): Pass an empty string. value (float): Specifies the offset in the center frequency of the complex baseband signal from the Carrier Frequency. This value is expressed in Hz. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.CARRIER_FREQUENCY_OFFSET.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_iq_gain_imbalance(self, channel_string): r"""Gets the ratio of the mean amplitude of the in-phase (I) signal to the mean amplitude of the quadrature-phase (Q) signal. This value is expressed in dB. If you set this attribute to a large value, there may be loss of dynamic range at the digital-to-analog converter (DAC). I/Q gain imbalance follows the definition shown in the following equation: I' = I - (gamma) \* sin(phi) \* Q + I0 Q' = (gamma) \* cos(phi) \* Q + Q0 where gamma = 10^(I/Q gain imbalance/20) phi is the quadrature skew I is the in-phase component of the waveform before applying impairments Q is the quadrature component of the waveform before applying impairments I' is the in-phase component of the waveform after applying impairments Q' is the quadrature component of the waveform before applying impairments I0 is the (RMS value of I) \* (I DC Offset)/100 Q0 is the (RMS value of Q) \* (Q DC Offset)/100 +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +========================================================================+=========================================================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B DSSS, 80211G DSSSOFDM | "" (empty string) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM | "channelx" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx/channely" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty/channelz", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid values are -6 to +6, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the ratio of the mean amplitude of the in-phase (I) signal to the mean amplitude of the quadrature-phase (Q) signal. This value is expressed in dB. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.IQ_GAIN_IMBALANCE.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_iq_gain_imbalance(self, channel_string, value): r"""Sets the ratio of the mean amplitude of the in-phase (I) signal to the mean amplitude of the quadrature-phase (Q) signal. This value is expressed in dB. If you set this attribute to a large value, there may be loss of dynamic range at the digital-to-analog converter (DAC). I/Q gain imbalance follows the definition shown in the following equation: I' = I - (gamma) \* sin(phi) \* Q + I0 Q' = (gamma) \* cos(phi) \* Q + Q0 where gamma = 10^(I/Q gain imbalance/20) phi is the quadrature skew I is the in-phase component of the waveform before applying impairments Q is the quadrature component of the waveform before applying impairments I' is the in-phase component of the waveform after applying impairments Q' is the quadrature component of the waveform before applying impairments I0 is the (RMS value of I) \* (I DC Offset)/100 Q0 is the (RMS value of Q) \* (Q DC Offset)/100 +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +========================================================================+=========================================================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B DSSS, 80211G DSSSOFDM | "" (empty string) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM | "channelx" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx/channely" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty/channelz", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid values are -6 to +6, inclusive. Args: selector_string (string): Pass an empty string. value (float): Specifies the ratio of the mean amplitude of the in-phase (I) signal to the mean amplitude of the quadrature-phase (Q) signal. This value is expressed in dB. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.IQ_GAIN_IMBALANCE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_i_dc_offset(self, channel_string): r"""Gets the value of the DC offset in the in-phase (I) channel as a percentage of the RMS magnitude of the unaltered I channel. +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +========================================================================+=========================================================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B DSSS, 80211G DSSSOFDM | "" (empty string) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM | "channelx" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx/channely" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty/channelz", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid values are -100 to +100, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the value of the DC offset in the in-phase (I) channel as a percentage of the RMS magnitude of the unaltered I channel. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.I_DC_OFFSET.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_i_dc_offset(self, channel_string, value): r"""Sets the value of the DC offset in the in-phase (I) channel as a percentage of the RMS magnitude of the unaltered I channel. +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +========================================================================+=========================================================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B DSSS, 80211G DSSSOFDM | "" (empty string) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM | "channelx" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx/channely" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty/channelz", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid values are -100 to +100, inclusive. Args: selector_string (string): Pass an empty string. value (float): Specifies the value of the DC offset in the in-phase (I) channel as a percentage of the RMS magnitude of the unaltered I channel. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.I_DC_OFFSET.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_q_dc_offset(self, channel_string): r"""Gets the value of the DC offset in the quadrature-phase (Q) channel as percentage of the RMS magnitude of the unaltered Q channel. +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +========================================================================+=========================================================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B DSSS, 80211G DSSSOFDM | "" (empty string) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM | "channelx" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx/channely" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty/channelz", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid values are -100 to +100, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the value of the DC offset in the quadrature-phase (Q) channel as percentage of the RMS magnitude of the unaltered Q channel. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.Q_DC_OFFSET.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_q_dc_offset(self, channel_string, value): r"""Sets the value of the DC offset in the quadrature-phase (Q) channel as percentage of the RMS magnitude of the unaltered Q channel. +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +========================================================================+=========================================================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B DSSS, 80211G DSSSOFDM | "" (empty string) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM | "channelx" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx/channely" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty/channelz", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid values are -100 to +100, inclusive. Args: selector_string (string): Pass an empty string. value (float): Specifies the value of the DC offset in the quadrature-phase (Q) channel as percentage of the RMS magnitude of the unaltered Q channel. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.Q_DC_OFFSET.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_quadrature_skew(self, channel_string): r"""Gets the deviation in angle from 90 degrees between the in-phase (I) and quadrature-phase (Q) signals. This value is expressed in degrees. Refer to the Quadrature Skew help topic for more information about quadrature skew. +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +========================================================================+=========================================================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B DSSS, 80211G DSSSOFDM | "" (empty string) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM | "channelx" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx/channely" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty/channelz", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid values are -30 to +30, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the deviation in angle from 90 degrees between the in-phase (I) and quadrature-phase (Q) signals. This value is expressed in degrees. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.QUADRATURE_SKEW.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_quadrature_skew(self, channel_string, value): r"""Sets the deviation in angle from 90 degrees between the in-phase (I) and quadrature-phase (Q) signals. This value is expressed in degrees. Refer to the Quadrature Skew help topic for more information about quadrature skew. +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +========================================================================+=========================================================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B DSSS, 80211G DSSSOFDM | "" (empty string) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM | "channelx" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx/channely" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty/channelz", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid values are -30 to +30, inclusive. Args: selector_string (string): Pass an empty string. value (float): Specifies the deviation in angle from 90 degrees between the in-phase (I) and quadrature-phase (Q) signals. This value is expressed in degrees. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.QUADRATURE_SKEW.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_sample_clock_offset(self, channel_string): r"""Gets the offset in the Sample Clock frequency from the sample frequency defined by the following equation: Sampling Frequency = max (maximum hardware I/Q Rate, oversampling ratio \* Nyquist Sampling Rate) where maximum hardware I/Q is the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAXIMUM_HARDWARE_IQ_RATE` attribute oversampling ratio is the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.OVERSAMPLING_RATIO` attribute. This value is expressed in parts per million (ppm). +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +==============================================================================================================+================================================================================================================================================================+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx" | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B/G DSSS, 80211G DSSSOFDM, 80211N MIMOOFDM, 80211AH MIMOOFDM | "" (empty string) | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid values are -1000 to 1000, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the offset in the Sample Clock frequency from the sample frequency defined by the following equation: error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.SAMPLE_CLOCK_OFFSET.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_sample_clock_offset(self, channel_string, value): r"""Sets the offset in the Sample Clock frequency from the sample frequency defined by the following equation: Sampling Frequency = max (maximum hardware I/Q Rate, oversampling ratio \* Nyquist Sampling Rate) where maximum hardware I/Q is the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAXIMUM_HARDWARE_IQ_RATE` attribute oversampling ratio is the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.OVERSAMPLING_RATIO` attribute. This value is expressed in parts per million (ppm). +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +==============================================================================================================+================================================================================================================================================================+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx" | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B/G DSSS, 80211G DSSSOFDM, 80211N MIMOOFDM, 80211AH MIMOOFDM | "" (empty string) | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +--------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid values are -1000 to 1000, inclusive. Args: selector_string (string): Pass an empty string. value (float): Specifies the offset in the Sample Clock frequency from the sample frequency defined by the following equation: Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.SAMPLE_CLOCK_OFFSET.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_pulse_shaping_filter_type(self, channel_string): r"""Gets the pulse-shaping filter type to use to ensure that the signal spectrum meets the spectral mask criteria as defined in section 17.3.9.2 of IEEE Standard 802.11a-1999, section 18.4.7.3 of IEEE Standard 802.11b-1999, and section 20.3.21.1 of IEEE Standard 802.11n-2009. The default value is NIWLANG_VAL_FILTER_RECTANGULAR if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. The default value is NIWLANG_VAL_FILTER_ROOT_RAISED_COSINE if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS. The default value is NIWLANG_VAL_FILTER_RAISED_COSINE if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211P_DSSS. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PulseShapingFilterType): Specifies the pulse-shaping filter type to use to ensure that the signal spectrum meets the spectral mask criteria as defined in section 17.3.9.2 of IEEE Standard 802.11a-1999, section 18.4.7.3 of IEEE Standard 802.11b-1999, and section 20.3.21.1 of IEEE Standard 802.11n-2009. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PULSE_SHAPING_FILTER_TYPE.value ) attr_val = enums.PulseShapingFilterType(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_pulse_shaping_filter_type(self, channel_string, value): r"""Sets the pulse-shaping filter type to use to ensure that the signal spectrum meets the spectral mask criteria as defined in section 17.3.9.2 of IEEE Standard 802.11a-1999, section 18.4.7.3 of IEEE Standard 802.11b-1999, and section 20.3.21.1 of IEEE Standard 802.11n-2009. The default value is NIWLANG_VAL_FILTER_RECTANGULAR if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. The default value is NIWLANG_VAL_FILTER_ROOT_RAISED_COSINE if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS. The default value is NIWLANG_VAL_FILTER_RAISED_COSINE if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211P_DSSS. Args: selector_string (string): Pass an empty string. value (enums.PulseShapingFilterType, int): Specifies the pulse-shaping filter type to use to ensure that the signal spectrum meets the spectral mask criteria as defined in section 17.3.9.2 of IEEE Standard 802.11a-1999, section 18.4.7.3 of IEEE Standard 802.11b-1999, and section 20.3.21.1 of IEEE Standard 802.11n-2009. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PulseShapingFilterType else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PULSE_SHAPING_FILTER_TYPE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_pulse_shaping_filter_parameter(self, channel_string): r"""Gets the value of the rolloff factor (alpha) if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_TYPE` attribute to NIWLANG_VAL_FILTER_RAISED_COSINE or NIWLANG_VAL_FILTER_ROOT_RAISED_COSINE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_TYPE` attribute to NIWLANG_VAL_FILTER_GAUSSIAN, you can calculate the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_PARAMETER` attribute by multiplying B and T, where B is the 3 dB bandwidth and T is the symbol period for a Gaussian filter. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_TYPE` attribute to NIWLANG_VAL_FILTER_RECTANGULAR, the WLAN Generation ignores this attribute. The default value is 0.5. Valid values are 0.1 to 0.95, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the value of the rolloff factor (alpha) if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_TYPE` attribute to NIWLANG_VAL_FILTER_RAISED_COSINE or NIWLANG_VAL_FILTER_ROOT_RAISED_COSINE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_TYPE` attribute to NIWLANG_VAL_FILTER_GAUSSIAN, you can calculate the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_PARAMETER` attribute by multiplying B and T, where B is the 3 dB bandwidth and T is the symbol period for a Gaussian filter. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.PULSE_SHAPING_FILTER_PARAMETER.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_pulse_shaping_filter_parameter(self, channel_string, value): r"""Sets the value of the rolloff factor (alpha) if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_TYPE` attribute to NIWLANG_VAL_FILTER_RAISED_COSINE or NIWLANG_VAL_FILTER_ROOT_RAISED_COSINE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_TYPE` attribute to NIWLANG_VAL_FILTER_GAUSSIAN, you can calculate the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_PARAMETER` attribute by multiplying B and T, where B is the 3 dB bandwidth and T is the symbol period for a Gaussian filter. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_TYPE` attribute to NIWLANG_VAL_FILTER_RECTANGULAR, the WLAN Generation ignores this attribute. The default value is 0.5. Valid values are 0.1 to 0.95, inclusive. Args: selector_string (string): Pass an empty string. value (float): Specifies the value of the rolloff factor (alpha) if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_TYPE` attribute to NIWLANG_VAL_FILTER_RAISED_COSINE or NIWLANG_VAL_FILTER_ROOT_RAISED_COSINE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_TYPE` attribute to NIWLANG_VAL_FILTER_GAUSSIAN, you can calculate the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_PARAMETER` attribute by multiplying B and T, where B is the 3 dB bandwidth and T is the symbol period for a Gaussian filter. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.PULSE_SHAPING_FILTER_PARAMETER.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_dsss_window_length(self, channel_string): r"""Gets the window length for direct spread spectrum signals. This value is expressed in seconds. If you do not want windowing, set this attribute to 0. This attribute provides power ramp-up and ramp-down for the entire burst. Refer to the Windowing help topic for more information about windowing for DSSS signals. The default value is 2 microseconds. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the window length for direct spread spectrum signals. This value is expressed in seconds. If you do not want windowing, set this attribute to 0. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.DSSS_WINDOW_LENGTH.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_dsss_window_length(self, channel_string, value): r"""Sets the window length for direct spread spectrum signals. This value is expressed in seconds. If you do not want windowing, set this attribute to 0. This attribute provides power ramp-up and ramp-down for the entire burst. Refer to the Windowing help topic for more information about windowing for DSSS signals. The default value is 2 microseconds. Args: selector_string (string): Pass an empty string. value (float): Specifies the window length for direct spread spectrum signals. This value is expressed in seconds. If you do not want windowing, set this attribute to 0. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.DSSS_WINDOW_LENGTH.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_standard(self, channel_string): r"""Gets the IEEE 802.11 standard, which indicates the type of physical layer, for signal generation. If you do not select a standard, the WLAN Generation returns an error. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.Standard): Specifies the IEEE 802.11 standard, which indicates the type of physical layer, for signal generation. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.STANDARD.value ) attr_val = enums.Standard(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_standard(self, channel_string, value): r"""Sets the IEEE 802.11 standard, which indicates the type of physical layer, for signal generation. If you do not select a standard, the WLAN Generation returns an error. Args: selector_string (string): Pass an empty string. value (enums.Standard, int): Specifies the IEEE 802.11 standard, which indicates the type of physical layer, for signal generation. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.Standard else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.STANDARD.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_ofdm_data_rate(self, channel_string): r"""Gets the data rate for the OFDM payload, as defined in section 17.3.2.2 of IEEE Standard 802.11-2007. This value is expressed in Mbps. Configure this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, or if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NON_HT_MODULATION_MODE` attribute to NIWLANG_VAL_NON_HT_MODULATION_MODE_ON. The default value is NIWLANG_VAL_OFDM_DATA_RATE_6. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.OfdmDataRate): Specifies the data rate for the OFDM payload, as defined in section 17.3.2.2 of IEEE Standard 802.11-2007. This value is expressed in Mbps. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.OFDM_DATA_RATE.value ) attr_val = enums.OfdmDataRate(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_ofdm_data_rate(self, channel_string, value): r"""Sets the data rate for the OFDM payload, as defined in section 17.3.2.2 of IEEE Standard 802.11-2007. This value is expressed in Mbps. Configure this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, or if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NON_HT_MODULATION_MODE` attribute to NIWLANG_VAL_NON_HT_MODULATION_MODE_ON. The default value is NIWLANG_VAL_OFDM_DATA_RATE_6. Args: selector_string (string): Pass an empty string. value (enums.OfdmDataRate, int): Specifies the data rate for the OFDM payload, as defined in section 17.3.2.2 of IEEE Standard 802.11-2007. This value is expressed in Mbps. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.OfdmDataRate else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.OFDM_DATA_RATE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_dsss_data_rate(self, channel_string): r"""Gets the data rate for the direct sequence spread spectrum (DSSS) payload, as defined in IEEE Standard 802.11b-1999 and the extended rate physical layer-packet binary convolutional coding (ERP -PBCC) mode, as defined in IEEE Standard 802.11g-2003. This value is expressed in Mbps. Configure this attribute only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS. The default value is NIWLANG_VAL_DSSS_DATA_RATE_1. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.DsssDataRate): Specifies the data rate for the direct sequence spread spectrum (DSSS) payload, as defined in IEEE Standard 802.11b-1999 and the extended rate physical layer-packet binary convolutional coding (ERP -PBCC) mode, as defined in IEEE Standard 802.11g-2003. This value is expressed in Mbps. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.DSSS_DATA_RATE.value ) attr_val = enums.DsssDataRate(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_dsss_data_rate(self, channel_string, value): r"""Sets the data rate for the direct sequence spread spectrum (DSSS) payload, as defined in IEEE Standard 802.11b-1999 and the extended rate physical layer-packet binary convolutional coding (ERP -PBCC) mode, as defined in IEEE Standard 802.11g-2003. This value is expressed in Mbps. Configure this attribute only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS. The default value is NIWLANG_VAL_DSSS_DATA_RATE_1. Args: selector_string (string): Pass an empty string. value (enums.DsssDataRate, int): Specifies the data rate for the direct sequence spread spectrum (DSSS) payload, as defined in IEEE Standard 802.11b-1999 and the extended rate physical layer-packet binary convolutional coding (ERP -PBCC) mode, as defined in IEEE Standard 802.11g-2003. This value is expressed in Mbps. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.DsssDataRate else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.DSSS_DATA_RATE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_iq_rate(self, channel_string): r"""Gets the recommended sample rate for the current signal configuration. This value is expressed in samples per second. The dt parameter of the created waveform is the inverse of the recommended sample rate. If you set the usewaveformdtforIQrate parameter of the niRFSG_Write_Arb_Waveform function to False, wire the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IQ_RATE` attribute to the NIRFSG_IQ_RATE attribute. This value is expressed in samples per second. Get Function: niWLANG_GetIQRate Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Returns the recommended sample rate for the current signal configuration. This value is expressed in samples per second. The dt parameter of the created waveform is the inverse of the recommended sample rate. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.IQ_RATE.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def get_iq_waveform_size(self, channel_string): r"""Gets the size of the generated I/Q waveform. This value is expressed in samples. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Returns the size of the generated I/Q waveform. This value is expressed in samples. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.IQ_WAVEFORM_SIZE.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def get_headroom(self, channel_string): r"""Gets the headroom per transmit channel. This value is expressed in dB. This value represents the maximum peak-to-average power ratio (PAPR) allowed in the generated signal. the WLAN Generation clips any portion of the signal that exceeds the peak power corresponding to this value. the WLAN Generation ignores this attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AUTO_HEADROOM_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AUTO_HEADROOM_ENABLED` attribute to NIWLANG_VAL_TRUE and you do not specify the :py:attr:`~nirfmxwlangen.attributes.AttributeID.HEADROOM` attribute, the WLAN Generation uses default values based on the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, the headroom applied on the signal with respect to the average power computed is based on the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AVERAGE_POWER_REFERENCE` attribute. If you specify a value that is more than the actual PAPR of the signal, there is loss of dynamic range of the digital-to-analog converter (DAC). If you specify a value that is less than the actual PAPR of the signal, the WLAN Generation clips the generated signal. In WLAN Generation version NIWLANG_VAL_COMPATIBILITY_VERSION_020000, the :py:attr:`~nirfmxwlangen.attributes.AttributeID.HEADROOM` attribute was called NIWLANG_MAX_EXPECTED_PAPR. To get the same behavior of this attribute as in NIWLANG_VAL_COMPATIBILITY_VERSION_020000, you must set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AUTO_HEADROOM_ENABLED` attribute to NIWLANG_VAL_TRUE in NIWLANG_VAL_COMPATIBILITY_VERSION_030000, NIWLANG_VAL_COMPATIBILITY_VERSION_040000, NIWLANG_VAL_COMPATIBILITY_VERSION_050000, or NIWLANG_VAL_COMPATIBILITY_VERSION_060000. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string as the active channel string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, you must use 'channelx' as the active channel string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_80211AF_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, you must use '\[segmenty/\]channelx' as the active channel string to configure this attribute. 'segment0/' is optional if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` attribute is set to 1. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use '\[segmenty/\]channelx' as the active channel string to configure this attribute. '\[segment0/\]' is optional if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` attribute is set to 1. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use 'channelx' as the active channel string when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MULTI_SEGMENT_GENERATION_MODE` attribute is set to NIWLANG_VAL_SINGLE_GENERATOR. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS, the default value is 5. Otherwise, the default value is 12. Refer to the Configuring Active Channels (LabWindows/CVI) topic for more information about configuring active channels. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the headroom per transmit channel. This value is expressed in dB. This value represents the maximum peak-to-average power ratio (PAPR) allowed in the generated signal. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.HEADROOM.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_headroom(self, channel_string, value): r"""Sets the headroom per transmit channel. This value is expressed in dB. This value represents the maximum peak-to-average power ratio (PAPR) allowed in the generated signal. the WLAN Generation clips any portion of the signal that exceeds the peak power corresponding to this value. the WLAN Generation ignores this attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AUTO_HEADROOM_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AUTO_HEADROOM_ENABLED` attribute to NIWLANG_VAL_TRUE and you do not specify the :py:attr:`~nirfmxwlangen.attributes.AttributeID.HEADROOM` attribute, the WLAN Generation uses default values based on the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, the headroom applied on the signal with respect to the average power computed is based on the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AVERAGE_POWER_REFERENCE` attribute. If you specify a value that is more than the actual PAPR of the signal, there is loss of dynamic range of the digital-to-analog converter (DAC). If you specify a value that is less than the actual PAPR of the signal, the WLAN Generation clips the generated signal. In WLAN Generation version NIWLANG_VAL_COMPATIBILITY_VERSION_020000, the :py:attr:`~nirfmxwlangen.attributes.AttributeID.HEADROOM` attribute was called NIWLANG_MAX_EXPECTED_PAPR. To get the same behavior of this attribute as in NIWLANG_VAL_COMPATIBILITY_VERSION_020000, you must set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AUTO_HEADROOM_ENABLED` attribute to NIWLANG_VAL_TRUE in NIWLANG_VAL_COMPATIBILITY_VERSION_030000, NIWLANG_VAL_COMPATIBILITY_VERSION_040000, NIWLANG_VAL_COMPATIBILITY_VERSION_050000, or NIWLANG_VAL_COMPATIBILITY_VERSION_060000. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string as the active channel string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, you must use 'channelx' as the active channel string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_80211AF_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, you must use '\[segmenty/\]channelx' as the active channel string to configure this attribute. 'segment0/' is optional if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` attribute is set to 1. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use '\[segmenty/\]channelx' as the active channel string to configure this attribute. '\[segment0/\]' is optional if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` attribute is set to 1. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use 'channelx' as the active channel string when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MULTI_SEGMENT_GENERATION_MODE` attribute is set to NIWLANG_VAL_SINGLE_GENERATOR. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS, the default value is 5. Otherwise, the default value is 12. Refer to the Configuring Active Channels (LabWindows/CVI) topic for more information about configuring active channels. Args: selector_string (string): Pass an empty string. value (float): Specifies the headroom per transmit channel. This value is expressed in dB. This value represents the maximum peak-to-average power ratio (PAPR) allowed in the generated signal. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.HEADROOM.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mcs_index(self, channel_string): r"""Gets the value of the modulation and coding scheme (MCS) index. The MCS index is a compact representation that determines the modulation scheme, coding rate, and number of spatial streams as specified in section 20.3.5 of IEEE Standard 802.11n-2009, section 22.5 of IEEE Standard 802.11ac-2013, section 24.5 of IEEE P802.11ah/D1.3, section 23.5 of IEEE Standard 802.11af-201, section 27.5 of IEEE P802.11ax/D8.0, section 36.5 of IEEE P802.11be/D7.0 and section 38.5 of IEEE P802.11bn/D1.2. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +=====================================================+=========================================================================================================================================+ | 80211N MIMOOFDM, 80211AH MIMOOFDM, 80211AF MIMOOFDM | "" (empty string) | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "" (empty string), if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. For NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, valid values are 0 to 11, inclusive. For NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, valid values are 0 to 15, inclusive. For NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, valid values are 0 to 13, inclusive. For NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, valid values are 0 to 32, inclusive. For NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, valid values are 0 to 10, inclusive. For NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, valid values are 0 to 9, inclusive. For NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, valid values are 0 to 15, inclusive and 17, 19, 20 and 23. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the value of the modulation and coding scheme (MCS) index. The MCS index is a compact representation that determines the modulation scheme, coding rate, and number of spatial streams as specified in section 20.3.5 of IEEE Standard 802.11n-2009, section 22.5 of IEEE Standard 802.11ac-2013, section 24.5 of IEEE P802.11ah/D1.3, section 23.5 of IEEE Standard 802.11af-201, section 27.5 of IEEE P802.11ax/D8.0, section 36.5 of IEEE P802.11be/D7.0 and section 38.5 of IEEE P802.11bn/D1.2. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MCS_INDEX.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mcs_index(self, channel_string, value): r"""Sets the value of the modulation and coding scheme (MCS) index. The MCS index is a compact representation that determines the modulation scheme, coding rate, and number of spatial streams as specified in section 20.3.5 of IEEE Standard 802.11n-2009, section 22.5 of IEEE Standard 802.11ac-2013, section 24.5 of IEEE P802.11ah/D1.3, section 23.5 of IEEE Standard 802.11af-201, section 27.5 of IEEE P802.11ax/D8.0, section 36.5 of IEEE P802.11be/D7.0 and section 38.5 of IEEE P802.11bn/D1.2. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +=====================================================+=========================================================================================================================================+ | 80211N MIMOOFDM, 80211AH MIMOOFDM, 80211AF MIMOOFDM | "" (empty string) | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "" (empty string), if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. For NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, valid values are 0 to 11, inclusive. For NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, valid values are 0 to 15, inclusive. For NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, valid values are 0 to 13, inclusive. For NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, valid values are 0 to 32, inclusive. For NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, valid values are 0 to 10, inclusive. For NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, valid values are 0 to 9, inclusive. For NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, valid values are 0 to 15, inclusive and 17, 19, 20 and 23. Args: selector_string (string): Pass an empty string. value (int): Specifies the value of the modulation and coding scheme (MCS) index. The MCS index is a compact representation that determines the modulation scheme, coding rate, and number of spatial streams as specified in section 20.3.5 of IEEE Standard 802.11n-2009, section 22.5 of IEEE Standard 802.11ac-2013, section 24.5 of IEEE P802.11ah/D1.3, section 23.5 of IEEE Standard 802.11af-201, section 27.5 of IEEE P802.11ax/D8.0, section 36.5 of IEEE P802.11be/D7.0 and section 38.5 of IEEE P802.11bn/D1.2. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MCS_INDEX.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_channel_bandwidth(self, channel_string): r"""Gets the channel width used for transmitting the signal. This value is expressed in Hz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, the channel bandwidth must be equal to 20 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211J_OFDM, the channel bandwidth must be equal to 10 MHz or 20 MHz. NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, the channel bandwidth must be equal to 5 MHz, 10 MHz, or 20 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, the channel bandwidth must be either 20 MHz or 40 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, the channel bandwidth must be either 20 MHz, or 40 MHz, or 80 MHz, or 160 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, the channel bandwidth must be either 20 MHz, or 40 MHz, or 80 MHz, or 160 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, the channel bandwidth must be either 20 MHz, or 40 MHz, or 80 MHz, or 160 MHz or 320 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, the channel bandwidth must be either 20 MHz, or 40 MHz, or 80 MHz, or 160 MHz or 320 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, the channel bandwidth must be equal to 1MHz, 2 MHz, 4 MHz, 8 MHz, or 16 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, the channel bandwidth must be equal to 6 MHz, 7 MHz or 8 MHz. For OFDM signals, channel bandwidth determines the number of pilot and data subcarriers used. the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` attribute for other values of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the channel width used for transmitting the signal. This value is expressed in Hz. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.CHANNEL_BANDWIDTH.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_channel_bandwidth(self, channel_string, value): r"""Sets the channel width used for transmitting the signal. This value is expressed in Hz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, the channel bandwidth must be equal to 20 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211J_OFDM, the channel bandwidth must be equal to 10 MHz or 20 MHz. NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, the channel bandwidth must be equal to 5 MHz, 10 MHz, or 20 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, the channel bandwidth must be either 20 MHz or 40 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, the channel bandwidth must be either 20 MHz, or 40 MHz, or 80 MHz, or 160 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, the channel bandwidth must be either 20 MHz, or 40 MHz, or 80 MHz, or 160 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, the channel bandwidth must be either 20 MHz, or 40 MHz, or 80 MHz, or 160 MHz or 320 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, the channel bandwidth must be either 20 MHz, or 40 MHz, or 80 MHz, or 160 MHz or 320 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, the channel bandwidth must be equal to 1MHz, 2 MHz, 4 MHz, 8 MHz, or 16 MHz. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, the channel bandwidth must be equal to 6 MHz, 7 MHz or 8 MHz. For OFDM signals, channel bandwidth determines the number of pilot and data subcarriers used. the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` attribute for other values of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute. Args: selector_string (string): Pass an empty string. value (float): Specifies the channel width used for transmitting the signal. This value is expressed in Hz. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.CHANNEL_BANDWIDTH.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_channelization(self, channel_string): r"""Gets the 320 MHz channelization value if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_OFDM or NIWLANG_VAL_STANDARD_80211BN_OFDM. As defined in section 36.3.24.2 of IEEE P802.11be/D7.0 for 320 MHz channel. 320 MHz-1 consists of 320 MHz channels with channel center frequency numbers 31, 95 and 159. 320 MHz-2 consists of 320 MHz channels with channel center frequency numbers 63, 127 and 191. The default value is NIWLANG_VAL_CHANNEL_320MHZ_1. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.Channelization): Specifies the 320 MHz channelization value if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_OFDM or NIWLANG_VAL_STANDARD_80211BN_OFDM. As defined in section 36.3.24.2 of IEEE P802.11be/D7.0 for 320 MHz channel. 320 MHz-1 consists of 320 MHz channels with channel center frequency numbers 31, 95 and 159. 320 MHz-2 consists of 320 MHz channels with channel center frequency numbers 63, 127 and 191. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.CHANNELIZATION.value ) attr_val = enums.Channelization(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_channelization(self, channel_string, value): r"""Sets the 320 MHz channelization value if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_OFDM or NIWLANG_VAL_STANDARD_80211BN_OFDM. As defined in section 36.3.24.2 of IEEE P802.11be/D7.0 for 320 MHz channel. 320 MHz-1 consists of 320 MHz channels with channel center frequency numbers 31, 95 and 159. 320 MHz-2 consists of 320 MHz channels with channel center frequency numbers 63, 127 and 191. The default value is NIWLANG_VAL_CHANNEL_320MHZ_1. Args: selector_string (string): Pass an empty string. value (enums.Channelization, int): Specifies the 320 MHz channelization value if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_OFDM or NIWLANG_VAL_STANDARD_80211BN_OFDM. As defined in section 36.3.24.2 of IEEE P802.11be/D7.0 for 320 MHz channel. 320 MHz-1 consists of 320 MHz channels with channel center frequency numbers 31, 95 and 159. 320 MHz-2 consists of 320 MHz channels with channel center frequency numbers 63, 127 and 191. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.Channelization else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.CHANNELIZATION.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_80211n_plcp_frame_format(self, channel_string): r"""Gets the format of the physical layer convergence protocol (PLCP) frame structure. The frame structure determines the arrangement of preambles, header (SIGNAL field), and payload in a frame as defined in section 20.3.2 of IEEE Standard 802.11n-2009. The default value is NIWLANG_VAL_80211N_PLCP_FRAME_FORMAT_MIXED. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PlcpFrameFormat80211n): Specifies the format of the physical layer convergence protocol (PLCP) frame structure. The frame structure determines the arrangement of preambles, header (SIGNAL field), and payload in a frame as defined in section 20.3.2 of IEEE Standard 802.11n-2009. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PLCP_FRAME_FORMAT_802_11_N.value ) attr_val = enums.PlcpFrameFormat80211n(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_80211n_plcp_frame_format(self, channel_string, value): r"""Sets the format of the physical layer convergence protocol (PLCP) frame structure. The frame structure determines the arrangement of preambles, header (SIGNAL field), and payload in a frame as defined in section 20.3.2 of IEEE Standard 802.11n-2009. The default value is NIWLANG_VAL_80211N_PLCP_FRAME_FORMAT_MIXED. Args: selector_string (string): Pass an empty string. value (enums.PlcpFrameFormat80211n, int): Specifies the format of the physical layer convergence protocol (PLCP) frame structure. The frame structure determines the arrangement of preambles, header (SIGNAL field), and payload in a frame as defined in section 20.3.2 of IEEE Standard 802.11n-2009. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PlcpFrameFormat80211n else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PLCP_FRAME_FORMAT_802_11_N.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_number_of_extension_spatial_streams(self, channel_string): r"""Gets the number of extension spatial streams (N_ESS) as defined in section 20.3.9.4.6 of IEEE Standard 802.11n-2009. The value of N_ESS follows the definition shown in the following equation: N_STS + N_ESS is less than or equal to N_Tx. where N_STS is the number of space-time streams and is determined by the MCS index and STBC index. N_Tx is the number of transmit channels specified by the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_TRANSMIT_CHANNELS` attribute. N_TX must be greater than or equal to N_STS. The default value is 0. Valid values are 0 to 3, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the number of extension spatial streams (N_ESS) as defined in section 20.3.9.4.6 of IEEE Standard 802.11n-2009. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_EXTENSION_SPATIAL_STREAMS.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_number_of_extension_spatial_streams(self, channel_string, value): r"""Sets the number of extension spatial streams (N_ESS) as defined in section 20.3.9.4.6 of IEEE Standard 802.11n-2009. The value of N_ESS follows the definition shown in the following equation: N_STS + N_ESS is less than or equal to N_Tx. where N_STS is the number of space-time streams and is determined by the MCS index and STBC index. N_Tx is the number of transmit channels specified by the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_TRANSMIT_CHANNELS` attribute. N_TX must be greater than or equal to N_STS. The default value is 0. Valid values are 0 to 3, inclusive. Args: selector_string (string): Pass an empty string. value (int): Specifies the number of extension spatial streams (N_ESS) as defined in section 20.3.9.4.6 of IEEE Standard 802.11n-2009. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_EXTENSION_SPATIAL_STREAMS.value, value, ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_number_of_transmit_channels(self, channel_string): r"""Gets the number of transmit channels for multiple input multiple output (MIMO) signals, as defined in section 20.3.3 of IEEE Standard 802.11n-2009. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAPPING_MATRIX_TYPE` attribute to NIWLANG_VAL_MAPPING_MATRIX_TYPE_DIRECT, the number of transmit channels must be equal to the number of space-time streams. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAPPING_MATRIX_TYPE` attribute to values other than NIWLANG_VAL_MAPPING_MATRIX_TYPE_DIRECT, the number of transmit channels must be greater than or equal to the sum of the number of space-time streams and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_EXTENSION_SPATIAL_STREAMS` attribute. the WLAN Generation defines the number of space-time streams using the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MCS_INDEX` attribute and :py:attr:`~nirfmxwlangen.attributes.AttributeID.STBC_INDEX` attribute, as specified in IEEE Standard 802.11n-2009. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_TRANSMIT_CHANNELS` attribute to greater than one, the same waveform is generated on multiple RFSG devices inside the :py:meth:`rfsg_create_and_download_mimo_waveforms` function. The default value is 1. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, the valid values are 1 to 4, inclusive. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to any other value, the valid values are 1 to 8, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the number of transmit channels for multiple input multiple output (MIMO) signals, as defined in section 20.3.3 of IEEE Standard 802.11n-2009. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_TRANSMIT_CHANNELS.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_number_of_transmit_channels(self, channel_string, value): r"""Sets the number of transmit channels for multiple input multiple output (MIMO) signals, as defined in section 20.3.3 of IEEE Standard 802.11n-2009. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAPPING_MATRIX_TYPE` attribute to NIWLANG_VAL_MAPPING_MATRIX_TYPE_DIRECT, the number of transmit channels must be equal to the number of space-time streams. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAPPING_MATRIX_TYPE` attribute to values other than NIWLANG_VAL_MAPPING_MATRIX_TYPE_DIRECT, the number of transmit channels must be greater than or equal to the sum of the number of space-time streams and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_EXTENSION_SPATIAL_STREAMS` attribute. the WLAN Generation defines the number of space-time streams using the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MCS_INDEX` attribute and :py:attr:`~nirfmxwlangen.attributes.AttributeID.STBC_INDEX` attribute, as specified in IEEE Standard 802.11n-2009. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_TRANSMIT_CHANNELS` attribute to greater than one, the same waveform is generated on multiple RFSG devices inside the :py:meth:`rfsg_create_and_download_mimo_waveforms` function. The default value is 1. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, the valid values are 1 to 4, inclusive. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to any other value, the valid values are 1 to 8, inclusive. Args: selector_string (string): Pass an empty string. value (int): Specifies the number of transmit channels for multiple input multiple output (MIMO) signals, as defined in section 20.3.3 of IEEE Standard 802.11n-2009. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_TRANSMIT_CHANNELS.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_stbc_index(self, channel_string): r"""Gets the difference between the number of space-time streams and the number of spatial streams, as defined in section 20.3.9.4.3 of IEEE Standard 802.11n-2009. the WLAN Generation derives the number of spatial streams from the specified value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MCS_INDEX` attribute. Different space-time coding schemes are defined in section 20.3.11.8.1 of IEEE Standard 802.11n-2009. The default value is 0. Valid Values are 0 to 2, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the difference between the number of space-time streams and the number of spatial streams, as defined in section 20.3.9.4.3 of IEEE Standard 802.11n-2009. the WLAN Generation derives the number of spatial streams from the specified value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MCS_INDEX` attribute. Different space-time coding schemes are defined in section 20.3.11.8.1 of IEEE Standard 802.11n-2009. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.STBC_INDEX.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_stbc_index(self, channel_string, value): r"""Sets the difference between the number of space-time streams and the number of spatial streams, as defined in section 20.3.9.4.3 of IEEE Standard 802.11n-2009. the WLAN Generation derives the number of spatial streams from the specified value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MCS_INDEX` attribute. Different space-time coding schemes are defined in section 20.3.11.8.1 of IEEE Standard 802.11n-2009. The default value is 0. Valid Values are 0 to 2, inclusive. Args: selector_string (string): Pass an empty string. value (int): Specifies the difference between the number of space-time streams and the number of spatial streams, as defined in section 20.3.9.4.3 of IEEE Standard 802.11n-2009. the WLAN Generation derives the number of spatial streams from the specified value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MCS_INDEX` attribute. Different space-time coding schemes are defined in section 20.3.11.8.1 of IEEE Standard 802.11n-2009. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.STBC_INDEX.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_qos_control_enabled(self, channel_string): r"""Gets whether to enable the QoS Control field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MacQosControlEnabled): Specifies whether to enable the QoS Control field of the medium access control (MAC) header. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_QOS_CONTROL_ENABLED.value ) attr_val = enums.MacQosControlEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_qos_control_enabled(self, channel_string, value): r"""Sets whether to enable the QoS Control field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. value (enums.MacQosControlEnabled, int): Specifies whether to enable the QoS Control field of the medium access control (MAC) header. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MacQosControlEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_QOS_CONTROL_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_pulse_shaping_filter_enabled(self, channel_string): r"""Gets whether to apply pulse-shaping filter to the generated signal. the WLAN Generation ignores this attribute and enables the pulse shaping filter, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.COMPATIBILITY_VERSION` attribute to NIWLANG_VAL_COMPATIBILITY_VERSION_010000. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS or NIWLANG_VAL_STANDARD_80211P_OFDM , the default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, the default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PulseShapingFilterEnabled): Specifies whether to apply pulse-shaping filter to the generated signal. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PULSE_SHAPING_FILTER_ENABLED.value ) attr_val = enums.PulseShapingFilterEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_pulse_shaping_filter_enabled(self, channel_string, value): r"""Sets whether to apply pulse-shaping filter to the generated signal. the WLAN Generation ignores this attribute and enables the pulse shaping filter, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.COMPATIBILITY_VERSION` attribute to NIWLANG_VAL_COMPATIBILITY_VERSION_010000. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS or NIWLANG_VAL_STANDARD_80211P_OFDM , the default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, the default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.PulseShapingFilterEnabled, int): Specifies whether to apply pulse-shaping filter to the generated signal. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PulseShapingFilterEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PULSE_SHAPING_FILTER_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mapping_matrix_type(self, channel_string): r"""Gets the mapping matrix type for mapping space-time streams to transmit channels as defined in section 20.3.11.10.1 of IEEE Standard 802.11n-2009. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAPPING_MATRIX_TYPE` attribute to values other than NIWLANG_VAL_MAPPING_MATRIX_TYPE_DIRECT, the number of transmit channels must be greater than or equal to the sum of the number of space-time streams and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_EXTENSION_SPATIAL_STREAMS` attribute if the standard is set to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM. The default value is NIWLANG_VAL_MAPPING_MATRIX_TYPE_DIRECT. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_STANDARD_TRIGGER_BASED_PPDU then N-STS value is dependent on the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SPATIAL_MAPPING_MODE` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SPATIAL_MAPPING_MODE` attribute to NIWLANG_VAL_COMMON, the N STS value is the maximum number of space time streams across Resource Units (RUs). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SPATIAL_MAPPING_MODE` attribute to NIWLANG_VAL_USER_SPECIFIC, the N STS value is the number of space time streams for the specified user. You must use the following active channel string formats when :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_STANDARD_TRIGGER_BASED_PPDU. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SPATIAL_MAPPING_MODE` attribute to NIWLANG_VAL_COMMON, the active channel string format is an empty string. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SPATIAL_MAPPING_MODE` attribute to NIWLANG_VAL_USER_SPECIFIC, the active channel string format is 'userx'. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MappingMatrixType): Specifies the mapping matrix type for mapping space-time streams to transmit channels as defined in section 20.3.11.10.1 of IEEE Standard 802.11n-2009. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAPPING_MATRIX_TYPE.value ) attr_val = enums.MappingMatrixType(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mapping_matrix_type(self, channel_string, value): r"""Sets the mapping matrix type for mapping space-time streams to transmit channels as defined in section 20.3.11.10.1 of IEEE Standard 802.11n-2009. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAPPING_MATRIX_TYPE` attribute to values other than NIWLANG_VAL_MAPPING_MATRIX_TYPE_DIRECT, the number of transmit channels must be greater than or equal to the sum of the number of space-time streams and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_EXTENSION_SPATIAL_STREAMS` attribute if the standard is set to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM. The default value is NIWLANG_VAL_MAPPING_MATRIX_TYPE_DIRECT. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_STANDARD_TRIGGER_BASED_PPDU then N-STS value is dependent on the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SPATIAL_MAPPING_MODE` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SPATIAL_MAPPING_MODE` attribute to NIWLANG_VAL_COMMON, the N STS value is the maximum number of space time streams across Resource Units (RUs). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SPATIAL_MAPPING_MODE` attribute to NIWLANG_VAL_USER_SPECIFIC, the N STS value is the number of space time streams for the specified user. You must use the following active channel string formats when :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_STANDARD_TRIGGER_BASED_PPDU. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SPATIAL_MAPPING_MODE` attribute to NIWLANG_VAL_COMMON, the active channel string format is an empty string. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SPATIAL_MAPPING_MODE` attribute to NIWLANG_VAL_USER_SPECIFIC, the active channel string format is 'userx'. Args: selector_string (string): Pass an empty string. value (enums.MappingMatrixType, int): Specifies the mapping matrix type for mapping space-time streams to transmit channels as defined in section 20.3.11.10.1 of IEEE Standard 802.11n-2009. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MappingMatrixType else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAPPING_MATRIX_TYPE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_compatibility_version(self, channel_string): r"""Indicates the compatibilityVersion parameter of the :py:meth:`open_session` function. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.CompatibilityVersion): Indicates the compatibilityVersion parameter of the :py:meth:`open_session` function. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.COMPATIBILITY_VERSION.value ) attr_val = enums.CompatibilityVersion(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def get_mac_frame_control(self, channel_string): r"""Gets the two-byte frame control field of the medium access control (MAC) header as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit (LSB) at the rightmost position. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default values are as follows: If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_GENERAL_FRAME, the default value is 0x0. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_DATA_FRAME, the default value is 0x8. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the default value is 0x24. Valid values are 0x0 to 0xFFFF. For values outside this range, the WLAN Generation uses the least significant two bytes. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the two-byte frame control field of the medium access control (MAC) header as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit (LSB) at the rightmost position. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_FRAME_CONTROL.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_frame_control(self, channel_string, value): r"""Sets the two-byte frame control field of the medium access control (MAC) header as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit (LSB) at the rightmost position. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default values are as follows: If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_GENERAL_FRAME, the default value is 0x0. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_DATA_FRAME, the default value is 0x8. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the default value is 0x24. Valid values are 0x0 to 0xFFFF. For values outside this range, the WLAN Generation uses the least significant two bytes. Args: selector_string (string): Pass an empty string. value (int): Specifies the two-byte frame control field of the medium access control (MAC) header as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit (LSB) at the rightmost position. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_FRAME_CONTROL.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_duration_or_id(self, channel_string): r"""Gets the two-byte duration ID field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013, IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit (LSB) in the rightmost position. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, use an empty string active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if the you set :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. the WLAN Generation ignores this attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT. The default value is 0x0. Valid values are 0x0 to 0xFFFF. For values outside this range, the WLAN Generation uses the least significant two bytes. the WLAN Generation ignores this attribute, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the two-byte duration ID field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013, IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit (LSB) in the rightmost position. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_DURATION_OR_ID.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_duration_or_id(self, channel_string, value): r"""Sets the two-byte duration ID field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013, IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit (LSB) in the rightmost position. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, use an empty string active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if the you set :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. the WLAN Generation ignores this attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT. The default value is 0x0. Valid values are 0x0 to 0xFFFF. For values outside this range, the WLAN Generation uses the least significant two bytes. the WLAN Generation ignores this attribute, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT. Args: selector_string (string): Pass an empty string. value (int): Specifies the two-byte duration ID field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013, IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit (LSB) in the rightmost position. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_DURATION_OR_ID.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_address1_enabled(self, channel_string): r"""Gets whether to enable the Address1 field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MacAddress1Enabled): Specifies whether to enable the Address1 field of the medium access control (MAC) header. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS1_ENABLED.value ) attr_val = enums.MacAddress1Enabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_address1_enabled(self, channel_string, value): r"""Sets whether to enable the Address1 field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.MacAddress1Enabled, int): Specifies whether to enable the Address1 field of the medium access control (MAC) header. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MacAddress1Enabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS1_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_address1(self, channel_string): r"""Gets the Address1 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. The length of this field is defined by the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_ADDRESS1` Length attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT; otherwise, the length is six bytes. If this field is a MAC address, it is represented with the least significant byte in the leftmost position and each byte is represented with the least significant bit in the rightmost position. For example, the medium access control (MAC) address 12-34-56-78-9A-BC is represented by the number 0 x 123456789ABC. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0x0. Valid values are 0x0 to 0xFFFFFFFFFFFF. For values outside this range, the WLAN Generation uses the least significant six bytes. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the Address1 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. The length of this field is defined by the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_ADDRESS1` Length attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT; otherwise, the length is six bytes. If this field is a MAC address, it is represented with the least significant byte in the leftmost position and each byte is represented with the least significant bit in the rightmost position. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i64( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS1.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_address1(self, channel_string, value): r"""Sets the Address1 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. The length of this field is defined by the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_ADDRESS1` Length attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT; otherwise, the length is six bytes. If this field is a MAC address, it is represented with the least significant byte in the leftmost position and each byte is represented with the least significant bit in the rightmost position. For example, the medium access control (MAC) address 12-34-56-78-9A-BC is represented by the number 0 x 123456789ABC. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0x0. Valid values are 0x0 to 0xFFFFFFFFFFFF. For values outside this range, the WLAN Generation uses the least significant six bytes. Args: selector_string (string): Pass an empty string. value (int): Specifies the Address1 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. The length of this field is defined by the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_ADDRESS1` Length attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT; otherwise, the length is six bytes. If this field is a MAC address, it is represented with the least significant byte in the leftmost position and each byte is represented with the least significant bit in the rightmost position. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i64( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS1.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_address2_enabled(self, channel_string): r"""Gets whether to enable the Address2 field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MacAddress2Enabled): Specifies whether to enable the Address2 field of the medium access control (MAC) header. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS2_ENABLED.value ) attr_val = enums.MacAddress2Enabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_address2_enabled(self, channel_string, value): r"""Sets whether to enable the Address2 field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.MacAddress2Enabled, int): Specifies whether to enable the Address2 field of the medium access control (MAC) header. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MacAddress2Enabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS2_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_address2(self, channel_string): r"""Gets the Address2 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. The length of this field is defined by the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_ADDRESS2_LENGTH` attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT; otherwise, the length is six bytes. If this field is a MAC address, it is represented with the least significant byte in the leftmost position and each byte is represented with the least significant bit in the rightmost position. For example, the medium access control (MAC) address 12-34-56-78-9A-BC is represented by the number 0 x 123456789ABC. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0x0. Valid values are 0x0 to 0xFFFFFFFFFFFF. For values outside this range, the WLAN Generation uses the least significant six bytes. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the Address2 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i64( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS2.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_address2(self, channel_string, value): r"""Sets the Address2 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. The length of this field is defined by the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_ADDRESS2_LENGTH` attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT; otherwise, the length is six bytes. If this field is a MAC address, it is represented with the least significant byte in the leftmost position and each byte is represented with the least significant bit in the rightmost position. For example, the medium access control (MAC) address 12-34-56-78-9A-BC is represented by the number 0 x 123456789ABC. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0x0. Valid values are 0x0 to 0xFFFFFFFFFFFF. For values outside this range, the WLAN Generation uses the least significant six bytes. Args: selector_string (string): Pass an empty string. value (int): Specifies the Address2 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i64( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS2.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_address3_enabled(self, channel_string): r"""Gets whether to enable the Address3 field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MacAddress3Enabled): Specifies whether to enable the Address3 field of the medium access control (MAC) header. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS3_ENABLED.value ) attr_val = enums.MacAddress3Enabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_address3_enabled(self, channel_string, value): r"""Sets whether to enable the Address3 field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. value (enums.MacAddress3Enabled, int): Specifies whether to enable the Address3 field of the medium access control (MAC) header. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MacAddress3Enabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS3_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_address3(self, channel_string): r"""Gets the six-byte Address3 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant byte in the leftmost position, and each byte is represented with the least significant bit in the rightmost position. For example, the medium access control (MAC) address 12-34-56-78-9A-BC is represented by the number 0x123456789ABC. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0x0. Valid values are 0x0 to 0xFFFFFFFFFFFF. For values outside this range, the WLAN Generation uses the least significant six bytes. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the six-byte Address3 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i64( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS3.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_address3(self, channel_string, value): r"""Sets the six-byte Address3 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant byte in the leftmost position, and each byte is represented with the least significant bit in the rightmost position. For example, the medium access control (MAC) address 12-34-56-78-9A-BC is represented by the number 0x123456789ABC. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0x0. Valid values are 0x0 to 0xFFFFFFFFFFFF. For values outside this range, the WLAN Generation uses the least significant six bytes. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. value (int): Specifies the six-byte Address3 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i64( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS3.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_sequence_control_enabled(self, channel_string): r"""Gets whether to enable the Sequence Control field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MacSequenceControlEnabled): Specifies whether to enable the Sequence Control field of the medium access control (MAC) header. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_SEQUENCE_CONTROL_ENABLED.value ) attr_val = enums.MacSequenceControlEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_sequence_control_enabled(self, channel_string, value): r"""Sets whether to enable the Sequence Control field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. value (enums.MacSequenceControlEnabled, int): Specifies whether to enable the Sequence Control field of the medium access control (MAC) header. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MacSequenceControlEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_SEQUENCE_CONTROL_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_sequence_control(self, channel_string): r"""Gets the two-byte Sequence Control field as defined in section 7.1.3 of IEEE Standard 802.11-2007, IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit in the rightmost position. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0x0. Valid values are 0x0 to 0xFFFF. For values outside this range, the WLAN Generation uses the least significant 2 bytes. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the two-byte Sequence Control field as defined in section 7.1.3 of IEEE Standard 802.11-2007, IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_SEQUENCE_CONTROL.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_sequence_control(self, channel_string, value): r"""Sets the two-byte Sequence Control field as defined in section 7.1.3 of IEEE Standard 802.11-2007, IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit in the rightmost position. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0x0. Valid values are 0x0 to 0xFFFF. For values outside this range, the WLAN Generation uses the least significant 2 bytes. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. value (int): Specifies the two-byte Sequence Control field as defined in section 7.1.3 of IEEE Standard 802.11-2007, IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_SEQUENCE_CONTROL.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_address4_enabled(self, channel_string): r"""Gets whether to the enable Address4 field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MacAddress4Enabled): Specifies whether to the enable Address4 field of the medium access control (MAC) header. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS4_ENABLED.value ) attr_val = enums.MacAddress4Enabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_address4_enabled(self, channel_string, value): r"""Sets whether to the enable Address4 field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. value (enums.MacAddress4Enabled, int): Specifies whether to the enable Address4 field of the medium access control (MAC) header. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MacAddress4Enabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS4_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_address4(self, channel_string): r"""Gets the six-byte Address4 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant byte in the leftmost position, and each byte is represented with the least significant bit in the rightmost position. For example, the medium access control (MAC) address 12-34-56-78-9A-BC is represented by the number 0 x 123456789ABC. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0x0. Valid values are 0x0 to 0xFFFFFFFFFFFF. For values outside this range, the WLAN Generation uses the least significant six bytes. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the six-byte Address4 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i64( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS4.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_address4(self, channel_string, value): r"""Sets the six-byte Address4 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant byte in the leftmost position, and each byte is represented with the least significant bit in the rightmost position. For example, the medium access control (MAC) address 12-34-56-78-9A-BC is represented by the number 0 x 123456789ABC. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0x0. Valid values are 0x0 to 0xFFFFFFFFFFFF. For values outside this range, the WLAN Generation uses the least significant six bytes. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. value (int): Specifies the six-byte Address4 field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i64( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS4.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_fec_coding_type(self, channel_string): r"""Gets the type of forward error correction (FEC) coding to use if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, as defined in section 20.3.11.3 of IEEE Standard 802.11n-2009. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +===================================+========================================================================================================================================+ | 80211N MIMOOFDM, 80211AF MIMOOFDM | "" (empty string) | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ The default value is NIWLANG_VAL_FEC_CODING_TYPE_LDPC, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, and is NIWLANG_VAL_FEC_CODING_TYPE_BCC otherwise. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.FecCodingType): Specifies the type of forward error correction (FEC) coding to use if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, as defined in section 20.3.11.3 of IEEE Standard 802.11n-2009. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.FEC_CODING_TYPE.value ) attr_val = enums.FecCodingType(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_fec_coding_type(self, channel_string, value): r"""Sets the type of forward error correction (FEC) coding to use if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, as defined in section 20.3.11.3 of IEEE Standard 802.11n-2009. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +===================================+========================================================================================================================================+ | 80211N MIMOOFDM, 80211AF MIMOOFDM | "" (empty string) | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ The default value is NIWLANG_VAL_FEC_CODING_TYPE_LDPC, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, and is NIWLANG_VAL_FEC_CODING_TYPE_BCC otherwise. Args: selector_string (string): Pass an empty string. value (enums.FecCodingType, int): Specifies the type of forward error correction (FEC) coding to use if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, as defined in section 20.3.11.3 of IEEE Standard 802.11n-2009. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.FecCodingType else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.FEC_CODING_TYPE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_qos_control(self, channel_string): r"""Gets the two-byte QoS Control field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit in the rightmost position. The default value is 0x0. Valid values are 0x0 to 0xFFFF. For values outside this range, the WLAN Generation uses the least significant two bytes. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT or the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_MAC_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_QOS_CONTROL` attribute. The default value is 0x0. Valid values are 0x0 to 0xFFFF. For values outside this range, the WLAN Generation uses the least significant two bytes. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the two-byte QoS Control field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit in the rightmost position. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_QOS_CONTROL.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_qos_control(self, channel_string, value): r"""Sets the two-byte QoS Control field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit in the rightmost position. The default value is 0x0. Valid values are 0x0 to 0xFFFF. For values outside this range, the WLAN Generation uses the least significant two bytes. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT or the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_MAC_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_QOS_CONTROL` attribute. The default value is 0x0. Valid values are 0x0 to 0xFFFF. For values outside this range, the WLAN Generation uses the least significant two bytes. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. value (int): Specifies the two-byte QoS Control field as defined in section 7.1.3 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit in the rightmost position. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_QOS_CONTROL.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_ht_control_enabled(self, channel_string): r"""Gets whether to enable the HT Control field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT or the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_TRIGGER_FRAME, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_HT_CONTROL_ENABLED` attribute. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MacHTControlEnabled): Specifies whether to enable the HT Control field of the medium access control (MAC) header. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_HT_CONTROL_ENABLED.value ) attr_val = enums.MacHTControlEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_ht_control_enabled(self, channel_string, value): r"""Sets whether to enable the HT Control field of the medium access control (MAC) header. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT or the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_TRIGGER_FRAME, the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_HT_CONTROL_ENABLED` attribute. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.MacHTControlEnabled, int): Specifies whether to enable the HT Control field of the medium access control (MAC) header. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MacHTControlEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_HT_CONTROL_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_ht_control(self, channel_string): r"""Gets the four-byte HT Control field as defined in section 7.1.3 of IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit in the rightmost position. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0x0. Valid values are 0x0 to 0xFFFFFFFF. For values outside this range, the WLAN Generation uses the least significant four bytes. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the four-byte HT Control field as defined in section 7.1.3 of IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit in the rightmost position. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_HT_CONTROL.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_ht_control(self, channel_string, value): r"""Sets the four-byte HT Control field as defined in section 7.1.3 of IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit in the rightmost position. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 0x0. Valid values are 0x0 to 0xFFFFFFFF. For values outside this range, the WLAN Generation uses the least significant four bytes. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. value (int): Specifies the four-byte HT Control field as defined in section 7.1.3 of IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. This field is represented with the least significant bit in the rightmost position. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_HT_CONTROL.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_windowing_method(self, channel_string): r"""Gets the method of applying window to the baseband signal, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. This attribute is ignored if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS. Refer to the Windowing topic for more information about windowing for OFDM signals. The default value is NIWLANG_VAL_WIN_METHOD_CENTERED_AT_SYMBOL_BOUNDARY. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.WindowingMethod): Specifies the method of applying window to the baseband signal, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. This attribute is ignored if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.WINDOWING_METHOD.value ) attr_val = enums.WindowingMethod(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_windowing_method(self, channel_string, value): r"""Sets the method of applying window to the baseband signal, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. This attribute is ignored if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS. Refer to the Windowing topic for more information about windowing for OFDM signals. The default value is NIWLANG_VAL_WIN_METHOD_CENTERED_AT_SYMBOL_BOUNDARY. Args: selector_string (string): Pass an empty string. value (enums.WindowingMethod, int): Specifies the method of applying window to the baseband signal, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. This attribute is ignored if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.WindowingMethod else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.WINDOWING_METHOD.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_number_of_segments(self, channel_string): r"""Gets the number of frequency segments for 802.11ac or 802.11ax signals. For 80 MHz + 80 MHz transmission of 802.11ac or 802.11ax signals, set this attribute to 2 and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` attribute to 80 MHz. The default value is 1. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the number of frequency segments for 802.11ac or 802.11ax signals. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_SEGMENTS.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_number_of_segments(self, channel_string, value): r"""Sets the number of frequency segments for 802.11ac or 802.11ax signals. For 80 MHz + 80 MHz transmission of 802.11ac or 802.11ax signals, set this attribute to 2 and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` attribute to 80 MHz. The default value is 1. Args: selector_string (string): Pass an empty string. value (int): Specifies the number of frequency segments for 802.11ac or 802.11ax signals. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_SEGMENTS.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_number_of_space_time_streams(self, channel_string): r"""Gets the number of space-time streams into which the data is divided. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +=====================================================+========================================================================================================================================+ | 80211AC MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM, 80211AF MIMOOFDM | "" (empty string) | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string, if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ The default value is 1. The allowed values for this attribute are as follows. All values are inclusive. +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Valid Values(Inclusive) | +==========================+=================================================================================================================================================================================================================================================================================================================================================================+ | 80211N MIMOOFDM | 1 to 4 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | 1 to 4 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | 1 to 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | 1 to 4, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | 1 to 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | 1 to 4, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | 1 to 2, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | 1 to 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_MU_PPDU, :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute to NIWLANG_VAL_SIG_COMPRESSION_ENABLED_TRUE and :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_USERS` attribute to 1 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | 1 to 4, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_MU_PPDU and :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_USERS` attribute greater than 1 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | 1 to 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_MU_PPDU, :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute to NIWLANG_VAL_SIG_COMPRESSION_ENABLED_TRUE and :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_USERS` attribute to 1 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | 1 to 4, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_MU_PPDU and :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_USERS` attribute greater than 1 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | 1, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the number of space-time streams into which the data is divided. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_SPACE_TIME_STREAMS.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_number_of_space_time_streams(self, channel_string, value): r"""Sets the number of space-time streams into which the data is divided. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +=====================================================+========================================================================================================================================+ | 80211AC MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM, 80211AF MIMOOFDM | "" (empty string) | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string, if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ The default value is 1. The allowed values for this attribute are as follows. All values are inclusive. +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Valid Values(Inclusive) | +==========================+=================================================================================================================================================================================================================================================================================================================================================================+ | 80211N MIMOOFDM | 1 to 4 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | 1 to 4 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | 1 to 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM | 1 to 4, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | 1 to 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | 1 to 4, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | 1 to 2, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | 1 to 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_MU_PPDU, :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute to NIWLANG_VAL_SIG_COMPRESSION_ENABLED_TRUE and :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_USERS` attribute to 1 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | 1 to 4, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_MU_PPDU and :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_USERS` attribute greater than 1 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | 1 to 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_MU_PPDU, :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute to NIWLANG_VAL_SIG_COMPRESSION_ENABLED_TRUE and :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_USERS` attribute to 1 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | 1 to 4, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_MU_PPDU and :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_USERS` attribute greater than 1 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | 1, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Args: selector_string (string): Pass an empty string. value (int): Specifies the number of space-time streams into which the data is divided. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_SPACE_TIME_STREAMS.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_stbc_all_streams_enabled(self, channel_string): r"""Gets whether space-time block coding (STBC) is performed at the transmitter when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM. Whenever STBC is performed, the number of space-time streams is equal to two times the number of spatial streams. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.StbcAllStreamsEnabled): Specifies whether space-time block coding (STBC) is performed at the transmitter when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM. Whenever STBC is performed, the number of space-time streams is equal to two times the number of spatial streams. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.STBC_ALL_STREAMS_ENABLED.value ) attr_val = enums.StbcAllStreamsEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_stbc_all_streams_enabled(self, channel_string, value): r"""Sets whether space-time block coding (STBC) is performed at the transmitter when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM. Whenever STBC is performed, the number of space-time streams is equal to two times the number of spatial streams. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.StbcAllStreamsEnabled, int): Specifies whether space-time block coding (STBC) is performed at the transmitter when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM. Whenever STBC is performed, the number of space-time streams is equal to two times the number of spatial streams. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.StbcAllStreamsEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.STBC_ALL_STREAMS_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_swap_i_and_q_enabled(self, channel_string): r"""Gets whether to swap the data in the I and Q streams. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.SwapIAndQEnabled): Specifies whether to swap the data in the I and Q streams. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.SWAP_I_AND_Q_ENABLED.value ) attr_val = enums.SwapIAndQEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_swap_i_and_q_enabled(self, channel_string, value): r"""Sets whether to swap the data in the I and Q streams. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.SwapIAndQEnabled, int): Specifies whether to swap the data in the I and Q streams. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.SwapIAndQEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.SWAP_I_AND_Q_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_timing_skew(self, channel_string): r"""Gets the difference between the sampling instants of I and Q streams. This value is expressed in seconds. +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +========================================================================+=========================================================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B DSSS, 80211G DSSSOFDM | "" (empty string) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM | "channelx" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx/channely" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty/channelz", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid values are -1 microsecond to 1 microsecond, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the difference between the sampling instants of I and Q streams. This value is expressed in seconds. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.TIMING_SKEW.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_timing_skew(self, channel_string, value): r"""Sets the difference between the sampling instants of I and Q streams. This value is expressed in seconds. +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +========================================================================+=========================================================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B DSSS, 80211G DSSSOFDM | "" (empty string) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM | "channelx" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx/channely" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty/channelz", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 0. Valid values are -1 microsecond to 1 microsecond, inclusive. Args: selector_string (string): Pass an empty string. value (float): Specifies the difference between the sampling instants of I and Q streams. This value is expressed in seconds. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.TIMING_SKEW.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_sequence_number_increment_enabled(self, channel_string): r"""Gets whether to increment the sequence number in a sequence of frames. The default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MacSequenceNumberIncrementEnabled): Specifies whether to increment the sequence number in a sequence of frames. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_SEQUENCE_NUMBER_INCREMENT_ENABLED.value ) attr_val = enums.MacSequenceNumberIncrementEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_sequence_number_increment_enabled(self, channel_string, value): r"""Sets whether to increment the sequence number in a sequence of frames. The default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. value (enums.MacSequenceNumberIncrementEnabled, int): Specifies whether to increment the sequence number in a sequence of frames. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MacSequenceNumberIncrementEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_SEQUENCE_NUMBER_INCREMENT_ENABLED.value, value, ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_sequence_number_increment_interval(self, channel_string): r"""Gets the number of frames after which the WLAN Generation increments the sequence number by 1. The starting number is the value represented by the sequence number sub-field of the Sequence Control field. The sequence number is wrapped to 0 after reaching the value 4,095 or (2^12-1). the WLAN Generation ignores this attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_SEQUENCE_NUMBER_INCREMENT_ENABLED` attribute to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME. The default value is 1. Valid values are 0 to 4,095, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the number of frames after which the WLAN Generation increments the sequence number by 1. The starting number is the value represented by the sequence number sub-field of the Sequence Control field. The sequence number is wrapped to 0 after reaching the value 4,095 or (2^12-1). error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_SEQUENCE_NUMBER_INCREMENT_INTERVAL.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_sequence_number_increment_interval(self, channel_string, value): r"""Sets the number of frames after which the WLAN Generation increments the sequence number by 1. The starting number is the value represented by the sequence number sub-field of the Sequence Control field. The sequence number is wrapped to 0 after reaching the value 4,095 or (2^12-1). the WLAN Generation ignores this attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_SEQUENCE_NUMBER_INCREMENT_ENABLED` attribute to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME. The default value is 1. Valid values are 0 to 4,095, inclusive. Args: selector_string (string): Pass an empty string. value (int): Specifies the number of frames after which the WLAN Generation increments the sequence number by 1. The starting number is the value represented by the sequence number sub-field of the Sequence Control field. The sequence number is wrapped to 0 after reaching the value 4,095 or (2^12-1). Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_SEQUENCE_NUMBER_INCREMENT_INTERVAL.value, value, ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_fragment_number_increment_enabled(self, channel_string): r"""Gets whether to increment fragment number in a sequence of frames. The starting number is the value represented by the fragment number sub-field of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_SEQUENCE_CONTROL` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAGMENT_NUMBER_INCREMENT_ENABLED` attribute to NIWLANG_VAL_TRUE, the fragment number increments by 1 for every successive frame having the same sequence number. The fragment number wraps to the starting number when the sequence number increments. The fragment number wraps to 0 after reaching the value 15. The default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MacFragmentNumberIncrementEnabled): Specifies whether to increment fragment number in a sequence of frames. The starting number is the value represented by the fragment number sub-field of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_SEQUENCE_CONTROL` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAGMENT_NUMBER_INCREMENT_ENABLED` attribute to NIWLANG_VAL_TRUE, the fragment number increments by 1 for every successive frame having the same sequence number. The fragment number wraps to the starting number when the sequence number increments. The fragment number wraps to 0 after reaching the value 15. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_FRAGMENT_NUMBER_INCREMENT_ENABLED.value ) attr_val = enums.MacFragmentNumberIncrementEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_fragment_number_increment_enabled(self, channel_string, value): r"""Sets whether to increment fragment number in a sequence of frames. The starting number is the value represented by the fragment number sub-field of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_SEQUENCE_CONTROL` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAGMENT_NUMBER_INCREMENT_ENABLED` attribute to NIWLANG_VAL_TRUE, the fragment number increments by 1 for every successive frame having the same sequence number. The fragment number wraps to the starting number when the sequence number increments. The fragment number wraps to 0 after reaching the value 15. The default value is NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE` attribute to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME, the WLAN Generation ignores this attribute. Args: selector_string (string): Pass an empty string. value (enums.MacFragmentNumberIncrementEnabled, int): Specifies whether to increment fragment number in a sequence of frames. The starting number is the value represented by the fragment number sub-field of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_SEQUENCE_CONTROL` attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAGMENT_NUMBER_INCREMENT_ENABLED` attribute to NIWLANG_VAL_TRUE, the fragment number increments by 1 for every successive frame having the same sequence number. The fragment number wraps to the starting number when the sequence number increments. The fragment number wraps to 0 after reaching the value 15. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MacFragmentNumberIncrementEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_FRAGMENT_NUMBER_INCREMENT_ENABLED.value, value, ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mpdu_length(self, channel_string): r"""Gets the length of the medium access control (MAC) protocol data unit (MPDU). This value is expressed in bytes. An MPDU comprises of a MAC header, a frame body, and a frame check sequence (FCS). The :py:attr:`~nirfmxwlangen.attributes.AttributeID.MPDU_LENGTH` attribute is the sum of the length of MAC header, the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_LENGTH` attribute, and the length of FCS, which is four bytes. If you disable the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_HEADER_ENABLED` and :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FCS_ENABLED` attributes, the lengths of MAC header and FCS are zero. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to query this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to query this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to query this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to query this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Returns the length of the medium access control (MAC) protocol data unit (MPDU). This value is expressed in bytes. An MPDU comprises of a MAC header, a frame body, and a frame check sequence (FCS). The :py:attr:`~nirfmxwlangen.attributes.AttributeID.MPDU_LENGTH` attribute is the sum of the length of MAC header, the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_LENGTH` attribute, and the length of FCS, which is four bytes. If you disable the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_HEADER_ENABLED` and :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FCS_ENABLED` attributes, the lengths of MAC header and FCS are zero. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MPDU_LENGTH.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def get_not_sounding_bit(self, channel_string): r"""Gets the value of the Not Sounding field of the HT-SIG if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM as defined in section 20.3.9.4.3 of the IEEE Standard 802.11n-2009. The default value is 1. Valid values are 0 or 1. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the value of the Not Sounding field of the HT-SIG if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM as defined in section 20.3.9.4.3 of the IEEE Standard 802.11n-2009. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NOT_SOUNDING_BIT.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_not_sounding_bit(self, channel_string, value): r"""Sets the value of the Not Sounding field of the HT-SIG if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM as defined in section 20.3.9.4.3 of the IEEE Standard 802.11n-2009. The default value is 1. Valid values are 0 or 1. Args: selector_string (string): Pass an empty string. value (int): Specifies the value of the Not Sounding field of the HT-SIG if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM as defined in section 20.3.9.4.3 of the IEEE Standard 802.11n-2009. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NOT_SOUNDING_BIT.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_auto_headroom_enabled(self, channel_string): r"""Gets whether the WLAN Generation calculates the headroom or uses a user-defined value. For multiframe generation, the WLAN Generation uses the headroom calculated on the first frame to scale the waveform. NI recommends that you do not set this attribute to NIWLANG_VAL_TRUE for multiframe generation because variation of the peak-to-average power ratio (PAPR) across frames may lead to excessive clipping. To avoid excessive clipping, set this attribute to NIWLANG_VAL_TRUE and use the default values for the :py:attr:`~nirfmxwlangen.attributes.AttributeID.HEADROOM` attribute. The default value is NIWLANG_VAL_TRUE. Use this attribute only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.COMPATIBILITY_VERSION` attribute to NIWLANG_VAL_COMPATIBILITY_VERSION_030000, NIWLANG_VAL_COMPATIBILITY_VERSION_040000, NIWLANG_VAL_COMPATIBILITY_VERSION_050000, or NIWLANG_VAL_COMPATIBILITY_VERSION_060000. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.AutoHeadroomEnabled): Specifies whether the WLAN Generation calculates the headroom or uses a user-defined value. For multiframe generation, the WLAN Generation uses the headroom calculated on the first frame to scale the waveform. NI recommends that you do not set this attribute to NIWLANG_VAL_TRUE for multiframe generation because variation of the peak-to-average power ratio (PAPR) across frames may lead to excessive clipping. To avoid excessive clipping, set this attribute to NIWLANG_VAL_TRUE and use the default values for the :py:attr:`~nirfmxwlangen.attributes.AttributeID.HEADROOM` attribute. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.AUTO_HEADROOM_ENABLED.value ) attr_val = enums.AutoHeadroomEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_auto_headroom_enabled(self, channel_string, value): r"""Sets whether the WLAN Generation calculates the headroom or uses a user-defined value. For multiframe generation, the WLAN Generation uses the headroom calculated on the first frame to scale the waveform. NI recommends that you do not set this attribute to NIWLANG_VAL_TRUE for multiframe generation because variation of the peak-to-average power ratio (PAPR) across frames may lead to excessive clipping. To avoid excessive clipping, set this attribute to NIWLANG_VAL_TRUE and use the default values for the :py:attr:`~nirfmxwlangen.attributes.AttributeID.HEADROOM` attribute. The default value is NIWLANG_VAL_TRUE. Use this attribute only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.COMPATIBILITY_VERSION` attribute to NIWLANG_VAL_COMPATIBILITY_VERSION_030000, NIWLANG_VAL_COMPATIBILITY_VERSION_040000, NIWLANG_VAL_COMPATIBILITY_VERSION_050000, or NIWLANG_VAL_COMPATIBILITY_VERSION_060000. Args: selector_string (string): Pass an empty string. value (enums.AutoHeadroomEnabled, int): Specifies whether the WLAN Generation calculates the headroom or uses a user-defined value. For multiframe generation, the WLAN Generation uses the headroom calculated on the first frame to scale the waveform. NI recommends that you do not set this attribute to NIWLANG_VAL_TRUE for multiframe generation because variation of the peak-to-average power ratio (PAPR) across frames may lead to excessive clipping. To avoid excessive clipping, set this attribute to NIWLANG_VAL_TRUE and use the default values for the :py:attr:`~nirfmxwlangen.attributes.AttributeID.HEADROOM` attribute. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.AutoHeadroomEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.AUTO_HEADROOM_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_actual_headroom(self, channel_string): r"""Gets the actual headroom that the WLAN Generation applies to the waveform. This value is expressed in dB. Use an active channel string to query this attribute for a transmit channel. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM you must use an empty active channel string to query this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, you must use a 'channelx' active channel string to query this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, you must use '\[segmenty/\]channelx' as the active channel string to query this attribute. '\[segment0/\]' is optional if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` attribute is set to 1. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use '\[segmenty/\]channelx' as the active channel string to query this attribute. '\[segment0/\]' is optional if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` attribute is set to 1. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use 'channelx' as the active channel string when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MULTI_SEGMENT_GENERATION_MODE` attribute is set to NIWLANG_VAL_SINGLE_GENERATOR. Refer to the Configuring Active Channels (LabWindows/CVI) help topic for more information about configuring active channels. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Returns the actual headroom that the WLAN Generation applies to the waveform. This value is expressed in dB. Use an active channel string to query this attribute for a transmit channel. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.ACTUAL_HEADROOM.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def get_actual_ofdm_data_rate(self, channel_string): r"""Gets the OFDM data rate depending upon the values of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` and :py:attr:`~nirfmxwlangen.attributes.AttributeID.OFDM_DATA_RATE` attributes, only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, or if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NON_HT_MODULATION_MODE` attribute to NIWLANG_VAL_NON_HT_MODULATION_MODE_ON. This value is expressed in Mbps. For more information about the OFDM data rate, refer to section 17.2.3.3 of IEEE Standard 802.11-2007. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Returns the OFDM data rate depending upon the values of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` and :py:attr:`~nirfmxwlangen.attributes.AttributeID.OFDM_DATA_RATE` attributes, only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, or if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NON_HT_MODULATION_MODE` attribute to NIWLANG_VAL_NON_HT_MODULATION_MODE_ON. This value is expressed in Mbps. For more information about the OFDM data rate, refer to section 17.2.3.3 of IEEE Standard 802.11-2007. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.ACTUAL_OFDM_DATA_RATE.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def get_rf_blanking_enabled(self, channel_string): r"""Gets whether to enable RF blanking. Set this attribute to NIWLANG_VAL_TRUE, if you want to attenuate the RF OUT signal during the idle interval. This behavior prevents any DC leakage from the local oscillator of the signal generator from appearing at the RF OUT signal. RF blanking attenuates the RF OUT signal of signal generators quickly. For more details about RF blanking, refer to the :py:attr:`~nirfmxwlangen.attributes.AttributeID.BURST_START_LOCATIONS` attribute, the :py:attr:`~nirfmxwlangen.attributes.AttributeID.BURST_STOP_LOCATIONS` attribute, the :py:meth:`rfsg_create_and_download_waveform` function, and the :py:meth:`rfsg_configure_script` function. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.RFBlankingEnabled): Specifies whether to enable RF blanking. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.RF_BLANKING_ENABLED.value ) attr_val = enums.RFBlankingEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_rf_blanking_enabled(self, channel_string, value): r"""Sets whether to enable RF blanking. Set this attribute to NIWLANG_VAL_TRUE, if you want to attenuate the RF OUT signal during the idle interval. This behavior prevents any DC leakage from the local oscillator of the signal generator from appearing at the RF OUT signal. RF blanking attenuates the RF OUT signal of signal generators quickly. For more details about RF blanking, refer to the :py:attr:`~nirfmxwlangen.attributes.AttributeID.BURST_START_LOCATIONS` attribute, the :py:attr:`~nirfmxwlangen.attributes.AttributeID.BURST_STOP_LOCATIONS` attribute, the :py:meth:`rfsg_create_and_download_waveform` function, and the :py:meth:`rfsg_configure_script` function. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.RFBlankingEnabled, int): Specifies whether to enable RF blanking. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.RFBlankingEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.RF_BLANKING_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_rf_blanking_marker_positions(self, channel_string): r"""Gets the array of sample positions of marker events, which are used to toggle the state of RF blanking, within the waveform. The marker positions are such that RF blanking is enabled during the idle interval. This attribute is applicable only if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RF_BLANKING_ENABLED` attribute is set to NIWLANG_VAL_TRUE. This attribute is read by the :py:meth:`rfsg_create_and_download_waveform` function to store RF blanking marker positions in the RFSG database. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Returns the array of sample positions of marker events, which are used to toggle the state of RF blanking, within the waveform. The marker positions are such that RF blanking is enabled during the idle interval. This attribute is applicable only if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RF_BLANKING_ENABLED` attribute is set to NIWLANG_VAL_TRUE. This attribute is read by the :py:meth:`rfsg_create_and_download_waveform` function to store RF blanking marker positions in the RFSG database. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_vector_attribute_i32( # type: ignore channel_string, attributes.AttributeID.RF_BLANKING_MARKER_POSITIONS.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def get_number_of_data_symbols(self, channel_string): r"""Gets the number of symbols in the data portion of the generated WLAN frame. Symbol refers to the chip if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211BG_DSSS, and the symbol refers to the OFDM symbol for other values of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Returns the number of symbols in the data portion of the generated WLAN frame. Symbol refers to the chip if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211BG_DSSS, and the symbol refers to the OFDM symbol for other values of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_DATA_SYMBOLS.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_number_of_data_symbols(self, channel_string, value): r"""Sets the number of symbols in the data portion of the generated WLAN frame. Symbol refers to the chip if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211BG_DSSS, and the symbol refers to the OFDM symbol for other values of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute. Args: selector_string (string): Pass an empty string. value (int): Returns the number of symbols in the data portion of the generated WLAN frame. Symbol refers to the chip if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211BG_DSSS, and the symbol refers to the OFDM symbol for other values of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_DATA_SYMBOLS.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_ppdu_type(self, channel_string): r"""Gets the type of physical layer convergence procedure (PLCP) protocol data unit (PPDU), if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. The default value is NIWLANG_VAL_PPDU_TYPE_SU_PPDU. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PpduType): Specifies the type of physical layer convergence procedure (PLCP) protocol data unit (PPDU), if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PPDU_TYPE.value ) attr_val = enums.PpduType(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_ppdu_type(self, channel_string, value): r"""Sets the type of physical layer convergence procedure (PLCP) protocol data unit (PPDU), if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. The default value is NIWLANG_VAL_PPDU_TYPE_SU_PPDU. Args: selector_string (string): Pass an empty string. value (enums.PpduType, int): Specifies the type of physical layer convergence procedure (PLCP) protocol data unit (PPDU), if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PpduType else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PPDU_TYPE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_all_iq_impairments_enabled(self, channel_string): r"""Gets whether to apply I/Q impairments such as I DC offset, Q DC offset, quadrature skew, and I/Q gain imbalance to the waveform. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.AllIQImpairmentsEnabled): Specifies whether to apply I/Q impairments such as I DC offset, Q DC offset, quadrature skew, and I/Q gain imbalance to the waveform. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.ALL_IQ_IMPAIRMENTS_ENABLED.value ) attr_val = enums.AllIQImpairmentsEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_all_iq_impairments_enabled(self, channel_string, value): r"""Sets whether to apply I/Q impairments such as I DC offset, Q DC offset, quadrature skew, and I/Q gain imbalance to the waveform. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.AllIQImpairmentsEnabled, int): Specifies whether to apply I/Q impairments such as I DC offset, Q DC offset, quadrature skew, and I/Q gain imbalance to the waveform. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.AllIQImpairmentsEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.ALL_IQ_IMPAIRMENTS_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_awgn_enabled(self, channel_string): r"""Gets whether to introduce additive white Gaussian noise (AWGN) to the baseband waveform. the WLAN Generation uses the value specified in the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_TO_NOISE_RATIO` attribute to add the AWGN. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.AwgnEnabled): Specifies whether to introduce additive white Gaussian noise (AWGN) to the baseband waveform. the WLAN Generation uses the value specified in the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_TO_NOISE_RATIO` attribute to add the AWGN. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.AWGN_ENABLED.value ) attr_val = enums.AwgnEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_awgn_enabled(self, channel_string, value): r"""Sets whether to introduce additive white Gaussian noise (AWGN) to the baseband waveform. the WLAN Generation uses the value specified in the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_TO_NOISE_RATIO` attribute to add the AWGN. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.AwgnEnabled, int): Specifies whether to introduce additive white Gaussian noise (AWGN) to the baseband waveform. the WLAN Generation uses the value specified in the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_TO_NOISE_RATIO` attribute to add the AWGN. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.AwgnEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.AWGN_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_carrier_to_noise_ratio(self, channel_string): r"""Gets the carrier-to-noise ratio (CNR)of the waveform generated. This value is expressed in dB. Noise bandwidth is equal to the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IQ_RATE` attribute. the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_TO_NOISE_RATIO` attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AWGN_ENABLED` attribute to NIWLANG_VAL_TRUE. +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +========================================================================+=========================================================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B DSSS, 80211G DSSSOFDM | "" (empty string) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM | "channelx" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx/channely" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty/channelz", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 50. Valid values are -100 to 100, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the carrier-to-noise ratio (CNR)of the waveform generated. This value is expressed in dB. Noise bandwidth is equal to the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IQ_RATE` attribute. the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_TO_NOISE_RATIO` attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AWGN_ENABLED` attribute to NIWLANG_VAL_TRUE. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.CARRIER_TO_NOISE_RATIO.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_carrier_to_noise_ratio(self, channel_string, value): r"""Sets the carrier-to-noise ratio (CNR)of the waveform generated. This value is expressed in dB. Noise bandwidth is equal to the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IQ_RATE` attribute. the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_TO_NOISE_RATIO` attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AWGN_ENABLED` attribute to NIWLANG_VAL_TRUE. +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Attribute | Active Channel String Format | +========================================================================+=========================================================================================================================================================================+ | 80211A/G OFDM, 80211J OFDM, 80211P OFDM, 80211B DSSS, 80211G DSSSOFDM | "" (empty string) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211N MIMOOFDM, 80211AH MIMOOFDM | "channelx" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AC MIMOOFDM, 80211AF MIMOOFDM | "segmentx/channely" | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "segmentx/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "[userx]/segmenty/channelz", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "channelx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "[userx]/channely", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU (userx is optional if you want to apply to all users) | +------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ The default value is 50. Valid values are -100 to 100, inclusive. Args: selector_string (string): Pass an empty string. value (float): Specifies the carrier-to-noise ratio (CNR)of the waveform generated. This value is expressed in dB. Noise bandwidth is equal to the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IQ_RATE` attribute. the WLAN Generation ignores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_TO_NOISE_RATIO` attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AWGN_ENABLED` attribute to NIWLANG_VAL_TRUE. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.CARRIER_TO_NOISE_RATIO.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_fcs_enabled(self, channel_string): r"""Gets whether to enable the medium access control (MAC) frame check sequence (FCS), as defined in section 7.1.2 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MacFcsEnabled): Specifies whether to enable the medium access control (MAC) frame check sequence (FCS), as defined in section 7.1.2 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_FCS_ENABLED.value ) attr_val = enums.MacFcsEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_fcs_enabled(self, channel_string, value): r"""Sets whether to enable the medium access control (MAC) frame check sequence (FCS), as defined in section 7.1.2 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, you must use an empty string to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use an empty string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, you must use the following active channel string formats to configure this attribute: An empty string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. 'mpdux' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE, or use the 'mpdux' active channel string if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use the following active channel string formats to configure this attribute: Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use the 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use the following active channel string formats to configure this attribute: 'userx/mpduy' as the active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Use an empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_FALSE. Use the 'mpdux' active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.MacFcsEnabled, int): Specifies whether to enable the medium access control (MAC) frame check sequence (FCS), as defined in section 7.1.2 of IEEE Standard 802.11-2007 and IEEE Standard 802.11n-2009, section 8.2.4 of IEEE Standard 802.11ac-2013 and IEEE P802.11ah/D1.3, section 9.2.4 of IEEE P802.11ax/D8.0, section 9.2.4 of IEEE P802.11be/D7.0, and section 9.2.4 of IEEE P802.11bn/D1.2. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MacFcsEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_FCS_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_maximum_hardware_iq_rate(self, channel_string): r"""Gets the maximum I/Q rate that the NI vector signal generator supports. This attribute is set according to the device model in the :py:meth:`rfsg_create_and_download_waveform` function. If you are using PXIe-5842, the valid value is 2500 MS/s. If you are using PXIe-5840/PXIe-5841/PXIe-5841 with PXIe-5655/PXIe-5820/PXIe-5830/PXIe-5831/PXIe-5860, the valid value is 1250 MS/s. If you are using the PXIe-5646, the valid value is 250 MS/s. If you are using the PXIe-5644/PXIe-5645, the valid value is 120 MS/s. If you are using the PXIe-5673/5673E, the valid value is 200 MS/s. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the maximum I/Q rate that the NI vector signal generator supports. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.MAXIMUM_HARDWARE_IQ_RATE.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_maximum_hardware_iq_rate(self, channel_string, value): r"""Sets the maximum I/Q rate that the NI vector signal generator supports. This attribute is set according to the device model in the :py:meth:`rfsg_create_and_download_waveform` function. If you are using PXIe-5842, the valid value is 2500 MS/s. If you are using PXIe-5840/PXIe-5841/PXIe-5841 with PXIe-5655/PXIe-5820/PXIe-5830/PXIe-5831/PXIe-5860, the valid value is 1250 MS/s. If you are using the PXIe-5646, the valid value is 250 MS/s. If you are using the PXIe-5644/PXIe-5645, the valid value is 120 MS/s. If you are using the PXIe-5673/5673E, the valid value is 200 MS/s. Args: selector_string (string): Pass an empty string. value (float): Specifies the maximum I/Q rate that the NI vector signal generator supports. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.MAXIMUM_HARDWARE_IQ_RATE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_ampdu_enabled(self, channel_string): r"""Gets whether all medium access control (MAC) protocol data units (MPDUs) are transmitted as aggregate-MPDU (A-MPDU). This attribute is applicable only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NON_HT_MODULATION_MODE` attribute to NIWLANG_VAL_NON_HT_MODULATION_MODE_OFF. The default value is NIWLANG_VAL_TRUE, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM. The default value is NIWLANG_VAL_TRUE, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.AmpduEnabled): Specifies whether all medium access control (MAC) protocol data units (MPDUs) are transmitted as aggregate-MPDU (A-MPDU). error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.AMPDU_ENABLED.value ) attr_val = enums.AmpduEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_ampdu_enabled(self, channel_string, value): r"""Sets whether all medium access control (MAC) protocol data units (MPDUs) are transmitted as aggregate-MPDU (A-MPDU). This attribute is applicable only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NON_HT_MODULATION_MODE` attribute to NIWLANG_VAL_NON_HT_MODULATION_MODE_OFF. The default value is NIWLANG_VAL_TRUE, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM. The default value is NIWLANG_VAL_TRUE, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. Args: selector_string (string): Pass an empty string. value (enums.AmpduEnabled, int): Specifies whether all medium access control (MAC) protocol data units (MPDUs) are transmitted as aggregate-MPDU (A-MPDU). Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.AmpduEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.AMPDU_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_payload_number_of_mpdus(self, channel_string): r"""Gets the number of medium access control (MAC) protocol data units (MPDUs) to combine into one aggregate-MPDU (A-MPDU). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, or use 'userx' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU, or use 'userx' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use 'userx' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU, or use an empty string active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU to configure this attribute. the WLAN Generation ignores this attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE or if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to a value other than NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM; or if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NON_HT_MODULATION_MODE` attribute to NIWLANG_VAL_NON_HT_MODULATION_MODE_ON, or if you set the NIWLANG_VAL_AUTO_NUMBER_OF_MPDUS attribute to NIWLANG_VAL_TRUE. The default value is 1. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the number of medium access control (MAC) protocol data units (MPDUs) to combine into one aggregate-MPDU (A-MPDU). error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_NUMBER_OF_MPDUS.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_payload_number_of_mpdus(self, channel_string, value): r"""Sets the number of medium access control (MAC) protocol data units (MPDUs) to combine into one aggregate-MPDU (A-MPDU). If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string active channel string format to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, or use 'userx' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, or NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU, or use 'userx' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use 'userx' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU, or use an empty string active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU to configure this attribute. the WLAN Generation ignores this attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE or if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to a value other than NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM; or if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NON_HT_MODULATION_MODE` attribute to NIWLANG_VAL_NON_HT_MODULATION_MODE_ON, or if you set the NIWLANG_VAL_AUTO_NUMBER_OF_MPDUS attribute to NIWLANG_VAL_TRUE. The default value is 1. Args: selector_string (string): Pass an empty string. value (int): Specifies the number of medium access control (MAC) protocol data units (MPDUs) to combine into one aggregate-MPDU (A-MPDU). Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_NUMBER_OF_MPDUS.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_sample_clock_rate_factor(self, channel_string): r"""Gets the factor by which the Sample Clock rate is multiplied to generate a signal that is compressed in the frequency domain and expanded in the time domain. For example, a 40 MHz 802.11n signal can be compressed in the frequency domain to 20 MHz, if the Sample Clock rate is reduced to half. In this case, you must set this attribute to 0.5 to generate the signal. The default value is 1. Valid values are 0.001 to 1, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the factor by which the Sample Clock rate is multiplied to generate a signal that is compressed in the frequency domain and expanded in the time domain. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.SAMPLE_CLOCK_RATE_FACTOR.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_sample_clock_rate_factor(self, channel_string, value): r"""Sets the factor by which the Sample Clock rate is multiplied to generate a signal that is compressed in the frequency domain and expanded in the time domain. For example, a 40 MHz 802.11n signal can be compressed in the frequency domain to 20 MHz, if the Sample Clock rate is reduced to half. In this case, you must set this attribute to 0.5 to generate the signal. The default value is 1. Valid values are 0.001 to 1, inclusive. Args: selector_string (string): Pass an empty string. value (float): Specifies the factor by which the Sample Clock rate is multiplied to generate a signal that is compressed in the frequency domain and expanded in the time domain. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.SAMPLE_CLOCK_RATE_FACTOR.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_pulse_shaping_filter_length(self, channel_string): r"""Gets the length of the pulse-shaping filter. This value is expressed in symbols. The length affects the frequency response of the filter. the WLAN Generation ignores this attribute when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_LENGTH` attribute is set to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211P_OFDM, the default value is 100. In all other instances, The default value is 8. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the length of the pulse-shaping filter. This value is expressed in symbols. The length affects the frequency response of the filter. the WLAN Generation ignores this attribute when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_LENGTH` attribute is set to NIWLANG_VAL_TRUE. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PULSE_SHAPING_FILTER_LENGTH.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_pulse_shaping_filter_length(self, channel_string, value): r"""Sets the length of the pulse-shaping filter. This value is expressed in symbols. The length affects the frequency response of the filter. the WLAN Generation ignores this attribute when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_LENGTH` attribute is set to NIWLANG_VAL_TRUE. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211P_OFDM, the default value is 100. In all other instances, The default value is 8. Args: selector_string (string): Pass an empty string. value (int): Specifies the length of the pulse-shaping filter. This value is expressed in symbols. The length affects the frequency response of the filter. the WLAN Generation ignores this attribute when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PULSE_SHAPING_FILTER_LENGTH` attribute is set to NIWLANG_VAL_TRUE. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PULSE_SHAPING_FILTER_LENGTH.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_number_of_users(self, channel_string): r"""Gets the number of users in a multi-user (MU) physical layer convergence procedure (PLCP) protocol data unit (PPDU). The default value is 1. You can set this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PAYLOAD_TYPE_MU_PPDU, or when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PAYLOAD_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the number of users in a multi-user (MU) physical layer convergence procedure (PLCP) protocol data unit (PPDU). The default value is 1. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_USERS.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_number_of_users(self, channel_string, value): r"""Sets the number of users in a multi-user (MU) physical layer convergence procedure (PLCP) protocol data unit (PPDU). The default value is 1. You can set this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PAYLOAD_TYPE_MU_PPDU, or when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PAYLOAD_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. Args: selector_string (string): Pass an empty string. value (int): Specifies the number of users in a multi-user (MU) physical layer convergence procedure (PLCP) protocol data unit (PPDU). The default value is 1. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_USERS.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_lo_sharing_enabled(self, channel_string): r"""Gets whether to enable configuration for sharing of local oscillator (LO) signal for multiple NI RF vector signal generators and NI RF vector signal transceivers, or both. This attribute is queried as part of the :py:meth:`rfsg_configure_multiple_device_synchronization` function. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.LOSharingEnabled): Specifies whether to enable configuration for sharing of local oscillator (LO) signal for multiple NI RF vector signal generators and NI RF vector signal transceivers, or both. This attribute is queried as part of the :py:meth:`rfsg_configure_multiple_device_synchronization` function. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.LO_SHARING_ENABLED.value ) attr_val = enums.LOSharingEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_lo_sharing_enabled(self, channel_string, value): r"""Sets whether to enable configuration for sharing of local oscillator (LO) signal for multiple NI RF vector signal generators and NI RF vector signal transceivers, or both. This attribute is queried as part of the :py:meth:`rfsg_configure_multiple_device_synchronization` function. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.LOSharingEnabled, int): Specifies whether to enable configuration for sharing of local oscillator (LO) signal for multiple NI RF vector signal generators and NI RF vector signal transceivers, or both. This attribute is queried as part of the :py:meth:`rfsg_configure_multiple_device_synchronization` function. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.LOSharingEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.LO_SHARING_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_80211ah_preamble_type(self, channel_string): r"""Gets the preamble type of packet if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to 80211AH MIMO OFDM as defined in section 24.3.8.2 of IEEE Standard P802.11ah/D1.3. The default value is NIWLANG_VAL_80211AH_PREAMBLE_TYPE_SHORT. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PreambleType80211ah): Specifies the preamble type of packet if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to 80211AH MIMO OFDM as defined in section 24.3.8.2 of IEEE Standard P802.11ah/D1.3. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PREAMBLE_TYPE_802_11_AH.value ) attr_val = enums.PreambleType80211ah(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_80211ah_preamble_type(self, channel_string, value): r"""Sets the preamble type of packet if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to 80211AH MIMO OFDM as defined in section 24.3.8.2 of IEEE Standard P802.11ah/D1.3. The default value is NIWLANG_VAL_80211AH_PREAMBLE_TYPE_SHORT. Args: selector_string (string): Pass an empty string. value (enums.PreambleType80211ah, int): Specifies the preamble type of packet if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to 80211AH MIMO OFDM as defined in section 24.3.8.2 of IEEE Standard P802.11ah/D1.3. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PreambleType80211ah else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PREAMBLE_TYPE_802_11_AH.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_frame_format(self, channel_string): r"""Gets whether the medium access control (MAC) frame is long or short. The default value is NIWLANG_VAL_MAC_FRAME_FORMAT_LONG. Configure this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use the following active channel string formats to configure this attribute. An empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MacFrameFormat): Specifies whether the medium access control (MAC) frame is long or short. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_FRAME_FORMAT.value ) attr_val = enums.MacFrameFormat(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_frame_format(self, channel_string, value): r"""Sets whether the medium access control (MAC) frame is long or short. The default value is NIWLANG_VAL_MAC_FRAME_FORMAT_LONG. Configure this attribute only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use the following active channel string formats to configure this attribute. An empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.MacFrameFormat, int): Specifies whether the medium access control (MAC) frame is long or short. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MacFrameFormat else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_FRAME_FORMAT.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_address1_length(self, channel_string): r"""Gets the length of Address1 field when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute is set to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use the following active channel string formats to configure this attribute. An empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE. The default value is 2. Valid values are 2 and 6. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the length of Address1 field when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute is set to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS1_LENGTH.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_address1_length(self, channel_string, value): r"""Sets the length of Address1 field when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute is set to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use the following active channel string formats to configure this attribute. An empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE. The default value is 2. Valid values are 2 and 6. Args: selector_string (string): Pass an empty string. value (int): Specifies the length of Address1 field when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute is set to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS1_LENGTH.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mac_address2_length(self, channel_string): r"""Gets the length of Address2 field if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use the following active channel string formats to configure this attribute. An empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE. The default value is 2. Valid values are 2 and 6. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the length of Address2 field if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS2_LENGTH.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mac_address2_length(self, channel_string, value): r"""Sets the length of Address2 field if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, you must use the following active channel string formats to configure this attribute. An empty string active channel string format if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute to NIWLANG_VAL_TRUE, or use the 'mpdux' active channel string if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE. The default value is 2. Valid values are 2 and 6. Args: selector_string (string): Pass an empty string. value (int): Specifies the length of Address2 field if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAC_FRAME_FORMAT` attribute to NIWLANG_VAL_MAC_FRAME_FORMAT_SHORT. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MAC_ADDRESS2_LENGTH.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_guard_interval_type(self, channel_string): r"""Gets the type of guard interval (cyclic prefix) in an OFDM symbol. The following table lists the guard interval length values for different standards. +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ | Standard Attribute Value | Bandwidth (MHz) | 1/4th Guard Interval Length | 1/8th Guard Interval Length | 1/16th Guard Interval Length | +=======================================================+=================+=============================+=============================+==============================+ | 80211N MIMOOFDM | All | 0.8 microseconds | 0.4 microseconds | N.A | +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ | 80211AC MIMOOFDM | All | 0.8 microseconds | 0.4 microseconds | N.A | +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ | 80211AH MIMOOFDM | All | 8 microseconds | 4 microseconds | N.A | +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ | 80211AF MIMOOFDM | 6,7 | 6 microseconds | 3 microseconds | N.A | +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ | 80211AF MIMOOFDM | 8 | 4.5 microseconds | 2.25 microseconds | N.A | +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ | 80211AX MIMOOFDM, 80211BE MIMOOFDM, 80211BN MIMOOFDM | All | 3.2 microseconds | 1.6 microseconds | 0.8 microseconds | +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ The default value is NIWLANG_VAL_GUARD_INTERVAL_TYPE_ONE_BY_FOUR. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.GuardIntervalType): Specifies the type of guard interval (cyclic prefix) in an OFDM symbol. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.GUARD_INTERVAL_TYPE.value ) attr_val = enums.GuardIntervalType(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_guard_interval_type(self, channel_string, value): r"""Sets the type of guard interval (cyclic prefix) in an OFDM symbol. The following table lists the guard interval length values for different standards. +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ | Standard Attribute Value | Bandwidth (MHz) | 1/4th Guard Interval Length | 1/8th Guard Interval Length | 1/16th Guard Interval Length | +=======================================================+=================+=============================+=============================+==============================+ | 80211N MIMOOFDM | All | 0.8 microseconds | 0.4 microseconds | N.A | +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ | 80211AC MIMOOFDM | All | 0.8 microseconds | 0.4 microseconds | N.A | +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ | 80211AH MIMOOFDM | All | 8 microseconds | 4 microseconds | N.A | +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ | 80211AF MIMOOFDM | 6,7 | 6 microseconds | 3 microseconds | N.A | +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ | 80211AF MIMOOFDM | 8 | 4.5 microseconds | 2.25 microseconds | N.A | +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ | 80211AX MIMOOFDM, 80211BE MIMOOFDM, 80211BN MIMOOFDM | All | 3.2 microseconds | 1.6 microseconds | 0.8 microseconds | +-------------------------------------------------------+-----------------+-----------------------------+-----------------------------+------------------------------+ The default value is NIWLANG_VAL_GUARD_INTERVAL_TYPE_ONE_BY_FOUR. Args: selector_string (string): Pass an empty string. value (enums.GuardIntervalType, int): Specifies the type of guard interval (cyclic prefix) in an OFDM symbol. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.GuardIntervalType else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.GUARD_INTERVAL_TYPE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_transmission_mode(self, channel_string): r"""Gets the value of the uplink indication field of the S1G-SIG field when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM. This attribute also specifies whether the packet is uplink or downlink when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. Refer to section 24.3.8.2.1.4 of IEEE Standard P802.11ah/D1.3 for more information about the 80211ah Uplink Indication. The default value is NIWLANG_VAL_TRANSMISSION_MODE_DL. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.TransmissionMode): Specifies the value of the uplink indication field of the S1G-SIG field when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM. This attribute also specifies whether the packet is uplink or downlink when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TRANSMISSION_MODE.value ) attr_val = enums.TransmissionMode(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_transmission_mode(self, channel_string, value): r"""Sets the value of the uplink indication field of the S1G-SIG field when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM. This attribute also specifies whether the packet is uplink or downlink when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. Refer to section 24.3.8.2.1.4 of IEEE Standard P802.11ah/D1.3 for more information about the 80211ah Uplink Indication. The default value is NIWLANG_VAL_TRANSMISSION_MODE_DL. Args: selector_string (string): Pass an empty string. value (enums.TransmissionMode, int): Specifies the value of the uplink indication field of the S1G-SIG field when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM. This attribute also specifies whether the packet is uplink or downlink when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.TransmissionMode else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TRANSMISSION_MODE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_ofdm_window_length(self, channel_string): r"""Gets the window length for OFDM signals at the sampling rate equal to the channel bandwidth. This value is expressed in samples. For example, if the window length is 2, the channel bandwidth is 20 MHz and the oversampling ratio is 4, then the samples over which windowing is applied is 8. This attribute provides a smooth, spurious free transition from the end of one OFDM symbol to the cyclic prefix of the next symbol. If you do not want windowing, set this attribute to 0. Refer to the Windowing help topic for more information about windowing for OFDM signals. The default value is 2. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the window length for OFDM signals at the sampling rate equal to the channel bandwidth. This value is expressed in samples. For example, if the window length is 2, the channel bandwidth is 20 MHz and the oversampling ratio is 4, then the samples over which windowing is applied is 8. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.OFDM_WINDOW_LENGTH.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_ofdm_window_length(self, channel_string, value): r"""Sets the window length for OFDM signals at the sampling rate equal to the channel bandwidth. This value is expressed in samples. For example, if the window length is 2, the channel bandwidth is 20 MHz and the oversampling ratio is 4, then the samples over which windowing is applied is 8. This attribute provides a smooth, spurious free transition from the end of one OFDM symbol to the cyclic prefix of the next symbol. If you do not want windowing, set this attribute to 0. Refer to the Windowing help topic for more information about windowing for OFDM signals. The default value is 2. Args: selector_string (string): Pass an empty string. value (int): Specifies the window length for OFDM signals at the sampling rate equal to the channel bandwidth. This value is expressed in samples. For example, if the window length is 2, the channel bandwidth is 20 MHz and the oversampling ratio is 4, then the samples over which windowing is applied is 8. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.OFDM_WINDOW_LENGTH.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_non_ht_modulation_mode(self, channel_string): r"""Gets whether the format of the incoming OFDM signal is non-high throughput (HT). This attribute is valid only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM. A non-HT format signal has only L-LTF, L-STF, and L-SIG symbols in the preamble, which are similar to 802.11n, 802.11ac, or 802.11af signals with same bandwidth. The payload is modulated in the same manner as an 802.11a signal with bandwidth of 20 MHz. The payload is repeated with appropriate tone rotation to fill the channel bandwidth. The default value is NIWLANG_VAL_NON_HT_MODULATION_MODE_OFF. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.NonHTModulationMode): Specifies whether the format of the incoming OFDM signal is non-high throughput (HT). This attribute is valid only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NON_HT_MODULATION_MODE.value ) attr_val = enums.NonHTModulationMode(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_non_ht_modulation_mode(self, channel_string, value): r"""Sets whether the format of the incoming OFDM signal is non-high throughput (HT). This attribute is valid only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM. A non-HT format signal has only L-LTF, L-STF, and L-SIG symbols in the preamble, which are similar to 802.11n, 802.11ac, or 802.11af signals with same bandwidth. The payload is modulated in the same manner as an 802.11a signal with bandwidth of 20 MHz. The payload is repeated with appropriate tone rotation to fill the channel bandwidth. The default value is NIWLANG_VAL_NON_HT_MODULATION_MODE_OFF. Args: selector_string (string): Pass an empty string. value (enums.NonHTModulationMode, int): Specifies whether the format of the incoming OFDM signal is non-high throughput (HT). This attribute is valid only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.NonHTModulationMode else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NON_HT_MODULATION_MODE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_ru_size(self, channel_string): r"""Gets the size of resource unit (RU) or multiple resource unit (MRU) in terms of the number of subcarriers for 802.11ax, 802.11be and 802.11bn signals. You must configure this attribute you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. When you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU, this attribute supports only NIWLANG_VAL_RU_SIZE_242 and NIWLANG_VAL_RU_SIZE_106 as valid values. +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +==========================+==========================================================================================================================+ | 80211AX MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ The default value is NIWLANG_VAL_RU_SIZE_26. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.RUSize): Specifies the size of resource unit (RU) or multiple resource unit (MRU) in terms of the number of subcarriers for 802.11ax, 802.11be and 802.11bn signals. You must configure this attribute you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.RU_SIZE.value ) attr_val = enums.RUSize(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_ru_size(self, channel_string, value): r"""Sets the size of resource unit (RU) or multiple resource unit (MRU) in terms of the number of subcarriers for 802.11ax, 802.11be and 802.11bn signals. You must configure this attribute you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. When you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU, this attribute supports only NIWLANG_VAL_RU_SIZE_242 and NIWLANG_VAL_RU_SIZE_106 as valid values. +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +==========================+==========================================================================================================================+ | 80211AX MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ | 80211AX MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ The default value is NIWLANG_VAL_RU_SIZE_26. Args: selector_string (string): Pass an empty string. value (enums.RUSize, int): Specifies the size of resource unit (RU) or multiple resource unit (MRU) in terms of the number of subcarriers for 802.11ax, 802.11be and 802.11bn signals. You must configure this attribute you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.RUSize else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.RU_SIZE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_ru_offset_mru_index(self, channel_string): r"""Gets the location of the resource unit (RU) or multiple resource unit (MRU). If an RU is configured, the RU Offset is in terms of the index of 26-tone RU, assuming the entire bandwidth is composed of 26-tone RUs in the 802.11ax, 802.11be and 802.11bn signal. Refer to the Configuring RU Offset/MRU Index topic in RFmx WLAN Generation Help for more information. If an MRU is configured, the MRU Index is as defined in tables 36-8 to 36-15 of IEEE Standard P802.11be/D7.0. If a dRU is configured, the RU Offset represents dRU index as defined in tables 38-4 to 38-6 and equation 38-1 of IEEE P802.11bn/D1.2 standard. This attribute is valid only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. The valid values, when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, are as follows: If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 20 MHz and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` is 1, the valid values are 0 to 8. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 40 MHz and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` is 1, the valid values are 0 to 17. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 80 MHz and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` is 1, the valid values are 0 to 36. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 160 MHz and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` is 1, the valid values are 0 to 73. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 80 MHz and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` is 2, the valid values are 0 to 73. The valid RU Offset values, when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, are as follows: If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 20 MHz, the valid values are 0 to 8. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 40 MHz, the valid values are 0 to 17. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 80 MHz, the valid values are 0 to 36 except 18. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 160 MHz, the valid values are 0 to 73 except 18 and 55. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 320 MHz, the valid values are 0 to 147 0 to 73 except 18, 55, 92, and 129. The valid MRU Index values, when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, are as defined in tables 36-8 to 36-15 of IEEE P802.11be/D7.0. The valid RU Offset values if dRUs are configured, when the Standard attribute is set to 80211BN MIMOOFDM, are as defined in tables 38-4 to 38-6 and equation 38-1 of IEEE P802.11bn/D1.2 standard. The default value is 0. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the location of the resource unit (RU) or multiple resource unit (MRU). If an RU is configured, the RU Offset is in terms of the index of 26-tone RU, assuming the entire bandwidth is composed of 26-tone RUs in the 802.11ax, 802.11be and 802.11bn signal. Refer to the Configuring RU Offset/MRU Index topic in RFmx WLAN Generation Help for more information. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.RU_OFFSET_MRU_INDEX.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_ru_offset_mru_index(self, channel_string, value): r"""Sets the location of the resource unit (RU) or multiple resource unit (MRU). If an RU is configured, the RU Offset is in terms of the index of 26-tone RU, assuming the entire bandwidth is composed of 26-tone RUs in the 802.11ax, 802.11be and 802.11bn signal. Refer to the Configuring RU Offset/MRU Index topic in RFmx WLAN Generation Help for more information. If an MRU is configured, the MRU Index is as defined in tables 36-8 to 36-15 of IEEE Standard P802.11be/D7.0. If a dRU is configured, the RU Offset represents dRU index as defined in tables 38-4 to 38-6 and equation 38-1 of IEEE P802.11bn/D1.2 standard. This attribute is valid only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. The valid values, when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, are as follows: If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 20 MHz and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` is 1, the valid values are 0 to 8. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 40 MHz and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` is 1, the valid values are 0 to 17. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 80 MHz and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` is 1, the valid values are 0 to 36. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 160 MHz and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` is 1, the valid values are 0 to 73. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 80 MHz and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` is 2, the valid values are 0 to 73. The valid RU Offset values, when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, are as follows: If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 20 MHz, the valid values are 0 to 8. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 40 MHz, the valid values are 0 to 17. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 80 MHz, the valid values are 0 to 36 except 18. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 160 MHz, the valid values are 0 to 73 except 18 and 55. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` is 320 MHz, the valid values are 0 to 147 0 to 73 except 18, 55, 92, and 129. The valid MRU Index values, when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, are as defined in tables 36-8 to 36-15 of IEEE P802.11be/D7.0. The valid RU Offset values if dRUs are configured, when the Standard attribute is set to 80211BN MIMOOFDM, are as defined in tables 38-4 to 38-6 and equation 38-1 of IEEE P802.11bn/D1.2 standard. The default value is 0. Args: selector_string (string): Pass an empty string. value (int): Specifies the location of the resource unit (RU) or multiple resource unit (MRU). If an RU is configured, the RU Offset is in terms of the index of 26-tone RU, assuming the entire bandwidth is composed of 26-tone RUs in the 802.11ax, 802.11be and 802.11bn signal. Refer to the Configuring RU Offset/MRU Index topic in RFmx WLAN Generation Help for more information. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.RU_OFFSET_MRU_INDEX.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_multi_segment_generation_mode(self, channel_string): r"""Gets whether to use a single generator or two generators for each channel of a multi-segment (80+80) MHz 802.11ac signal. This attribute is applicable when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` attribute to 2 and the channel bandwidth is 80 MHz. When you set this attribute to NIWLANG_VAL_SINGLE_GENERATOR, you have to specify the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_FREQUENCY` attribute for both the segments. The default value is NIWLANG_VAL_MULTIPLE_GENERATORS. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MultiSegmentGenerationMode): Specifies whether to use a single generator or two generators for each channel of a multi-segment (80+80) MHz 802.11ac signal. This attribute is applicable when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` attribute to 2 and the channel bandwidth is 80 MHz. When you set this attribute to NIWLANG_VAL_SINGLE_GENERATOR, you have to specify the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_FREQUENCY` attribute for both the segments. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MULTI_SEGMENT_GENERATION_MODE.value ) attr_val = enums.MultiSegmentGenerationMode(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_multi_segment_generation_mode(self, channel_string, value): r"""Sets whether to use a single generator or two generators for each channel of a multi-segment (80+80) MHz 802.11ac signal. This attribute is applicable when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` attribute to 2 and the channel bandwidth is 80 MHz. When you set this attribute to NIWLANG_VAL_SINGLE_GENERATOR, you have to specify the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_FREQUENCY` attribute for both the segments. The default value is NIWLANG_VAL_MULTIPLE_GENERATORS. Args: selector_string (string): Pass an empty string. value (enums.MultiSegmentGenerationMode, int): Specifies whether to use a single generator or two generators for each channel of a multi-segment (80+80) MHz 802.11ac signal. This attribute is applicable when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SEGMENTS` attribute to 2 and the channel bandwidth is 80 MHz. When you set this attribute to NIWLANG_VAL_SINGLE_GENERATOR, you have to specify the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_FREQUENCY` attribute for both the segments. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MultiSegmentGenerationMode else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MULTI_SEGMENT_GENERATION_MODE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_time_delay(self, channel_string): r"""Gets the time delay for each user within an 802.11ax, 802.11be or 802.11bn Trigger-Based signal. This value is expressed in seconds. You must set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. Use this attribute to introduce relative time delays between multiple users within an 802.11ax, 802.11be or 802.11bn Trigger-Based signal. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM use 'userx' as the active channel string format, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. The default value is 0. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the time delay for each user within an 802.11ax, 802.11be or 802.11bn Trigger-Based signal. This value is expressed in seconds. You must set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. Use this attribute to introduce relative time delays between multiple users within an 802.11ax, 802.11be or 802.11bn Trigger-Based signal. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.TIME_DELAY.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_time_delay(self, channel_string, value): r"""Sets the time delay for each user within an 802.11ax, 802.11be or 802.11bn Trigger-Based signal. This value is expressed in seconds. You must set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. Use this attribute to introduce relative time delays between multiple users within an 802.11ax, 802.11be or 802.11bn Trigger-Based signal. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM use 'userx' as the active channel string format, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. The default value is 0. Args: selector_string (string): Pass an empty string. value (float): Specifies the time delay for each user within an 802.11ax, 802.11be or 802.11bn Trigger-Based signal. This value is expressed in seconds. You must set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. Use this attribute to introduce relative time delays between multiple users within an 802.11ax, 802.11be or 802.11bn Trigger-Based signal. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.TIME_DELAY.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_relative_power(self, channel_string): r"""Gets the per user power scaling value of the 802.11ax, 802.11be and 802.11bn signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. This value is expressed in dB. The power scaling value is with reference to the user with index 0. the WLAN Generation ignores the attribute value, if it is specified for the user with index 0. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +------------------------------------------------------+----------------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +======================================================+==============================================================================================+ | 80211AX MIMOOFDM, 80211BE MIMOOFDM, 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU_PPDU | +------------------------------------------------------+----------------------------------------------------------------------------------------------+ The default value is 0. The valid values are -100 to 100, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the per user power scaling value of the 802.11ax, 802.11be and 802.11bn signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. This value is expressed in dB. The power scaling value is with reference to the user with index 0. the WLAN Generation ignores the attribute value, if it is specified for the user with index 0. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.RELATIVE_POWER.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_relative_power(self, channel_string, value): r"""Sets the per user power scaling value of the 802.11ax, 802.11be and 802.11bn signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. This value is expressed in dB. The power scaling value is with reference to the user with index 0. the WLAN Generation ignores the attribute value, if it is specified for the user with index 0. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +------------------------------------------------------+----------------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +======================================================+==============================================================================================+ | 80211AX MIMOOFDM, 80211BE MIMOOFDM, 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU_PPDU | +------------------------------------------------------+----------------------------------------------------------------------------------------------+ The default value is 0. The valid values are -100 to 100, inclusive. Args: selector_string (string): Pass an empty string. value (float): Specifies the per user power scaling value of the 802.11ax, 802.11be and 802.11bn signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. This value is expressed in dB. The power scaling value is with reference to the user with index 0. the WLAN Generation ignores the attribute value, if it is specified for the user with index 0. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.RELATIVE_POWER.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_ltf_size(self, channel_string): r"""Gets the HE-LTF, EHT-LTF and UHR-LTF symbol size in 802.11ax, 802.11be and 802.11bn signals, respectively. IEEE Standards 802.11ax, 802.11be and 802.11bn specify the following combinations of the HE-LTF/EHT-LTF/UHR-LTF symbol size and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.GUARD_INTERVAL` attribute. +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | PPDU Type Attribute Value | LTF Size Attribute Value | Guard Interval Type Attribute Value | +=============================================================================+===========================================================================+=====================================+ | NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | NIWLANG_VAL_LTF_SIZE_4X | 1/4 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | NIWLANG_VAL_LTF_SIZE_2X | 1/8 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | NIWLANG_VAL_LTF_SIZE_2X, NIWLANG_VAL_LTF_SIZE_4X, NIWLANG_VAL_LTF_SIZE_1X | 1/16 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_MU_PPDU | NIWLANG_VAL_LTF_SIZE_4X | 1/4 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_MU_PPDU | NIWLANG_VAL_LTF_SIZE_2X | 1/8 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_MU_PPDU | NIWLANG_VAL_LTF_SIZE_2X, NIWLANG_VAL_LTF_SIZE_4X | 1/16 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | NIWLANG_VAL_LTF_SIZE_4X | 1/4 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | NIWLANG_VAL_LTF_SIZE_2X, NIWLANG_VAL_LTF_SIZE_1X | 1/8 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | NIWLANG_VAL_LTF_SIZE_2X | 1/8 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ The default value is NIWLANG_VAL_LTF_SIZE_AUTO. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.LtfSize): Specifies the HE-LTF, EHT-LTF and UHR-LTF symbol size in 802.11ax, 802.11be and 802.11bn signals, respectively. IEEE Standards 802.11ax, 802.11be and 802.11bn specify the following combinations of the HE-LTF/EHT-LTF/UHR-LTF symbol size and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.GUARD_INTERVAL` attribute. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.LTF_SIZE.value ) attr_val = enums.LtfSize(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_ltf_size(self, channel_string, value): r"""Sets the HE-LTF, EHT-LTF and UHR-LTF symbol size in 802.11ax, 802.11be and 802.11bn signals, respectively. IEEE Standards 802.11ax, 802.11be and 802.11bn specify the following combinations of the HE-LTF/EHT-LTF/UHR-LTF symbol size and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.GUARD_INTERVAL` attribute. +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | PPDU Type Attribute Value | LTF Size Attribute Value | Guard Interval Type Attribute Value | +=============================================================================+===========================================================================+=====================================+ | NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | NIWLANG_VAL_LTF_SIZE_4X | 1/4 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | NIWLANG_VAL_LTF_SIZE_2X | 1/8 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU | NIWLANG_VAL_LTF_SIZE_2X, NIWLANG_VAL_LTF_SIZE_4X, NIWLANG_VAL_LTF_SIZE_1X | 1/16 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_MU_PPDU | NIWLANG_VAL_LTF_SIZE_4X | 1/4 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_MU_PPDU | NIWLANG_VAL_LTF_SIZE_2X | 1/8 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_MU_PPDU | NIWLANG_VAL_LTF_SIZE_2X, NIWLANG_VAL_LTF_SIZE_4X | 1/16 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | NIWLANG_VAL_LTF_SIZE_4X | 1/4 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | NIWLANG_VAL_LTF_SIZE_2X, NIWLANG_VAL_LTF_SIZE_1X | 1/8 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ | NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | NIWLANG_VAL_LTF_SIZE_2X | 1/8 | +-----------------------------------------------------------------------------+---------------------------------------------------------------------------+-------------------------------------+ The default value is NIWLANG_VAL_LTF_SIZE_AUTO. Args: selector_string (string): Pass an empty string. value (enums.LtfSize, int): Specifies the HE-LTF, EHT-LTF and UHR-LTF symbol size in 802.11ax, 802.11be and 802.11bn signals, respectively. IEEE Standards 802.11ax, 802.11be and 802.11bn specify the following combinations of the HE-LTF/EHT-LTF/UHR-LTF symbol size and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.GUARD_INTERVAL` attribute. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.LtfSize else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.LTF_SIZE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_packet_extension_duration(self, channel_string): r"""Gets the duration of packet extension in the waveform when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. This value is expressed in seconds. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Returns the duration of packet extension in the waveform when the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. This value is expressed in seconds. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.PACKET_EXTENSION_DURATION.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def get_he_sig_b_mcs_index(self, channel_string): r"""Gets the value of the modulation and coding scheme (MCS) index of the HE-SIG-B field of 802.11ax signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU. The default value is 0. The valid values are 0 to 5, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the value of the modulation and coding scheme (MCS) index of the HE-SIG-B field of 802.11ax signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.HE_SIG_B_MCS_INDEX.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_he_sig_b_mcs_index(self, channel_string, value): r"""Sets the value of the modulation and coding scheme (MCS) index of the HE-SIG-B field of 802.11ax signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU. The default value is 0. The valid values are 0 to 5, inclusive. Args: selector_string (string): Pass an empty string. value (int): Specifies the value of the modulation and coding scheme (MCS) index of the HE-SIG-B field of 802.11ax signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.HE_SIG_B_MCS_INDEX.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_he_sig_b_dual_carrier_modulation_enabled(self, channel_string): r"""Gets whether the dual carrier modulation (DCM) is applied on the HE-SIG-B field of 802.11ax signals or not. The attribute can be set to NIWLANG_VAL_TRUE only when HE-SIG-B MCS index is 0, 1, 3 or 4. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.HESigBDualCarrierModulationEnabled): Specifies whether the dual carrier modulation (DCM) is applied on the HE-SIG-B field of 802.11ax signals or not. The attribute can be set to NIWLANG_VAL_TRUE only when HE-SIG-B MCS index is 0, 1, 3 or 4. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.HE_SIG_B_DUAL_CARRIER_MODULATION_ENABLED.value, ) attr_val = enums.HESigBDualCarrierModulationEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_he_sig_b_dual_carrier_modulation_enabled(self, channel_string, value): r"""Sets whether the dual carrier modulation (DCM) is applied on the HE-SIG-B field of 802.11ax signals or not. The attribute can be set to NIWLANG_VAL_TRUE only when HE-SIG-B MCS index is 0, 1, 3 or 4. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.HESigBDualCarrierModulationEnabled, int): Specifies whether the dual carrier modulation (DCM) is applied on the HE-SIG-B field of 802.11ax signals or not. The attribute can be set to NIWLANG_VAL_TRUE only when HE-SIG-B MCS index is 0, 1, 3 or 4. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = ( value.value if type(value) is enums.HESigBDualCarrierModulationEnabled else value ) error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.HE_SIG_B_DUAL_CARRIER_MODULATION_ENABLED.value, value, ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_sta_id(self, channel_string): r"""Gets 11 LSBs of the association identifier (AID) in 802.11ax, 802.11be and 802.11bn signals when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU. When the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU, the valid values are 0 to 2047. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +------------------------------------+-----------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +====================================+=========================================================================================+ | 80211AX MIMOOFDM, 80211BE MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------+-----------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------+-----------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------+-----------------------------------------------------------------------------------------+ The default value is 0. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies 11 LSBs of the association identifier (AID) in 802.11ax, 802.11be and 802.11bn signals when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.STA_ID.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_sta_id(self, channel_string, value): r"""Sets 11 LSBs of the association identifier (AID) in 802.11ax, 802.11be and 802.11bn signals when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU. When the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU, the valid values are 0 to 2047. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +------------------------------------+-----------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +====================================+=========================================================================================+ | 80211AX MIMOOFDM, 80211BE MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------+-----------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------+-----------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | "" (empty string), if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +------------------------------------+-----------------------------------------------------------------------------------------+ The default value is 0. Args: selector_string (string): Pass an empty string. value (int): Specifies 11 LSBs of the association identifier (AID) in 802.11ax, 802.11be and 802.11bn signals when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.STA_ID.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_power_boost_factor(self, channel_string): r"""Gets the factor, per resource unit (RU) by which the amplitude of the HE modulated fields, EHT modulated fields and UHR modulated fields in 802.11ax, 802.11be and 802.11bn signals are respectively scaled, when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU. The value of this attribute must be the same across all users within an RU. An RU is defined by the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_SIZE` and :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_OFFSET_MRU_INDEX` attributes. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this A. +------------------------------------------------------+------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +======================================================+==============================================================================+ | 80211AX MIMOOFDM, 80211BE MIMOOFDM, 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------+------------------------------------------------------------------------------+ The default value is 1. The valid values are 0.1 to 10, inclusive. To convert this value to dB, use the following formula: Power Boost Factor (dB) = 20 \* log (Power Boost Factor) Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the factor, per resource unit (RU) by which the amplitude of the HE modulated fields, EHT modulated fields and UHR modulated fields in 802.11ax, 802.11be and 802.11bn signals are respectively scaled, when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU. The value of this attribute must be the same across all users within an RU. An RU is defined by the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_SIZE` and :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_OFFSET_MRU_INDEX` attributes. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.POWER_BOOST_FACTOR.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_power_boost_factor(self, channel_string, value): r"""Sets the factor, per resource unit (RU) by which the amplitude of the HE modulated fields, EHT modulated fields and UHR modulated fields in 802.11ax, 802.11be and 802.11bn signals are respectively scaled, when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU. The value of this attribute must be the same across all users within an RU. An RU is defined by the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_SIZE` and :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_OFFSET_MRU_INDEX` attributes. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this A. +------------------------------------------------------+------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +======================================================+==============================================================================+ | 80211AX MIMOOFDM, 80211BE MIMOOFDM, 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------+------------------------------------------------------------------------------+ The default value is 1. The valid values are 0.1 to 10, inclusive. To convert this value to dB, use the following formula: Power Boost Factor (dB) = 20 \* log (Power Boost Factor) Args: selector_string (string): Pass an empty string. value (float): Specifies the factor, per resource unit (RU) by which the amplitude of the HE modulated fields, EHT modulated fields and UHR modulated fields in 802.11ax, 802.11be and 802.11bn signals are respectively scaled, when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU. The value of this attribute must be the same across all users within an RU. An RU is defined by the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_SIZE` and :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_OFFSET_MRU_INDEX` attributes. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.POWER_BOOST_FACTOR.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_number_of_ltf_symbols(self, channel_string): r"""Gets the number of HE-LTF symbols in the transmitted 802.11ax signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and specifies the number of EHT-LTF symbols in the transmitted 802.11be signal. The default value is -1, which indicates that the value is derived from the maximum index of space time streams across users. The valid values for this attribute are as follows: +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Valid Values(Inclusive) | +==========================+=======================================================================================================================================================================+ | 80211AX MIMOOFDM | -1, 1, 2, 4, 6, and 8 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | -1, 1, 2, 4, and 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute to NIWLANG_VAL_SIG_COMPRESSION_ENABLED_TRUE | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | -1, 1, 2, 4, 6, and 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute to NIWLANG_VAL_SIG_COMPRESSION_ENABLED_FALSE | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | -1, 1, 2, 4, and 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute to NIWLANG_VAL_SIG_COMPRESSION_ENABLED_TRUE | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | -1, 1, 2, 4, 6, and 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute to NIWLANG_VAL_SIG_COMPRESSION_ENABLED_FALSE | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | -1, 2, if you set the ppdu type attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the number of HE-LTF symbols in the transmitted 802.11ax signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and specifies the number of EHT-LTF symbols in the transmitted 802.11be signal. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_LTF_SYMBOLS.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_number_of_ltf_symbols(self, channel_string, value): r"""Sets the number of HE-LTF symbols in the transmitted 802.11ax signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and specifies the number of EHT-LTF symbols in the transmitted 802.11be signal. The default value is -1, which indicates that the value is derived from the maximum index of space time streams across users. The valid values for this attribute are as follows: +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Valid Values(Inclusive) | +==========================+=======================================================================================================================================================================+ | 80211AX MIMOOFDM | -1, 1, 2, 4, 6, and 8 | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | -1, 1, 2, 4, and 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute to NIWLANG_VAL_SIG_COMPRESSION_ENABLED_TRUE | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BE MIMOOFDM | -1, 1, 2, 4, 6, and 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute to NIWLANG_VAL_SIG_COMPRESSION_ENABLED_FALSE | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | -1, 1, 2, 4, and 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute to NIWLANG_VAL_SIG_COMPRESSION_ENABLED_TRUE | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | -1, 1, 2, 4, 6, and 8, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute to NIWLANG_VAL_SIG_COMPRESSION_ENABLED_FALSE | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 80211BN MIMOOFDM | -1, 2, if you set the ppdu type attribute to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU | +--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Args: selector_string (string): Pass an empty string. value (int): Specifies the number of HE-LTF symbols in the transmitted 802.11ax signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and specifies the number of EHT-LTF symbols in the transmitted 802.11be signal. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NUMBER_OF_LTF_SYMBOLS.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_fullscale_backoff(self, channel_string): r"""Gets the additional scaling factor applied to the waveform when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AUTO_HEADROOM_ENABLED` attribute to NIWLANG_VAL_TRUE. This value is expressed in dB. The WLAN Generation ignores this attribute, if you set :py:attr:`~nirfmxwlangen.attributes.AttributeID.AUTO_HEADROOM_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 2. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the additional scaling factor applied to the waveform when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AUTO_HEADROOM_ENABLED` attribute to NIWLANG_VAL_TRUE. This value is expressed in dB. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.FULLSCALE_BACKOFF.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_fullscale_backoff(self, channel_string, value): r"""Sets the additional scaling factor applied to the waveform when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AUTO_HEADROOM_ENABLED` attribute to NIWLANG_VAL_TRUE. This value is expressed in dB. The WLAN Generation ignores this attribute, if you set :py:attr:`~nirfmxwlangen.attributes.AttributeID.AUTO_HEADROOM_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is 2. Args: selector_string (string): Pass an empty string. value (float): Specifies the additional scaling factor applied to the waveform when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AUTO_HEADROOM_ENABLED` attribute to NIWLANG_VAL_TRUE. This value is expressed in dB. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.FULLSCALE_BACKOFF.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_average_power_reference(self, channel_string): r"""Gets the portions of the packet used to compute the average power value to apply waveform power scaling and additive white Gaussian noise (AWGN). This attribute is valid when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU. The default value is NIWLANG_VAL_AVERAGE_POWER_REFERENCE_NON_BOOSTED_FIELDS. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.AveragePowerReference): Specifies the portions of the packet used to compute the average power value to apply waveform power scaling and additive white Gaussian noise (AWGN). This attribute is valid when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.AVERAGE_POWER_REFERENCE.value ) attr_val = enums.AveragePowerReference(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_average_power_reference(self, channel_string, value): r"""Sets the portions of the packet used to compute the average power value to apply waveform power scaling and additive white Gaussian noise (AWGN). This attribute is valid when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU. The default value is NIWLANG_VAL_AVERAGE_POWER_REFERENCE_NON_BOOSTED_FIELDS. Args: selector_string (string): Pass an empty string. value (enums.AveragePowerReference, int): Specifies the portions of the packet used to compute the average power value to apply waveform power scaling and additive white Gaussian noise (AWGN). This attribute is valid when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU, NIWLANG_VAL_PPDU_TYPE_EXTENDED_RANGE_SU_PPDU or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.AveragePowerReference else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.AVERAGE_POWER_REFERENCE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_trigger_frame_ap_tx_power(self, channel_string): r"""Gets the value of the AP Tx Power field of the Trigger frame. The power values -20 dBm to 40 dBm are mapped to the field values 0 to 60 respectively. The default value is 0. The valid values are 0 to 63, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the value of the AP Tx Power field of the Trigger frame. The power values -20 dBm to 40 dBm are mapped to the field values 0 to 60 respectively. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TRIGGER_FRAME_AP_TX_POWER.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_trigger_frame_ap_tx_power(self, channel_string, value): r"""Sets the value of the AP Tx Power field of the Trigger frame. The power values -20 dBm to 40 dBm are mapped to the field values 0 to 60 respectively. The default value is 0. The valid values are 0 to 63, inclusive. Args: selector_string (string): Pass an empty string. value (int): Specifies the value of the AP Tx Power field of the Trigger frame. The power values -20 dBm to 40 dBm are mapped to the field values 0 to 60 respectively. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TRIGGER_FRAME_AP_TX_POWER.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_trigger_frame_target_rssi(self, channel_string): r"""Gets the value of the UL-Target RSSI field of the Trigger frame. The power values -110 dBm to -20 dBm are mapped to the field values 0 to 90, respectively. To specify maximum transmit power for the assigned MCS, you must set a value of 127. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, you must use 'userx' as the active channel string format to configure this attribute if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. The default value is 78, which is the corresponding power value -32 dBm. The valid values are 0 to 127,inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the value of the UL-Target RSSI field of the Trigger frame. The power values -110 dBm to -20 dBm are mapped to the field values 0 to 90, respectively. To specify maximum transmit power for the assigned MCS, you must set a value of 127. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TRIGGER_FRAME_TARGET_RSSI.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_trigger_frame_target_rssi(self, channel_string, value): r"""Sets the value of the UL-Target RSSI field of the Trigger frame. The power values -110 dBm to -20 dBm are mapped to the field values 0 to 90, respectively. To specify maximum transmit power for the assigned MCS, you must set a value of 127. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, you must use 'userx' as the active channel string format to configure this attribute if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. The default value is 78, which is the corresponding power value -32 dBm. The valid values are 0 to 127,inclusive. Args: selector_string (string): Pass an empty string. value (int): Specifies the value of the UL-Target RSSI field of the Trigger frame. The power values -110 dBm to -20 dBm are mapped to the field values 0 to 90, respectively. To specify maximum transmit power for the assigned MCS, you must set a value of 127. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TRIGGER_FRAME_TARGET_RSSI.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_burst_start_locations(self, channel_string): r"""Gets the array of sample positions of start of the burst, within the waveform. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Returns the array of sample positions of start of the burst, within the waveform. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_vector_attribute_i32( # type: ignore channel_string, attributes.AttributeID.BURST_START_LOCATIONS.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def get_burst_stop_locations(self, channel_string): r"""Gets the array of sample positions of end of the burst, within the waveform. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Returns the array of sample positions of end of the burst, within the waveform. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_vector_attribute_i32( # type: ignore channel_string, attributes.AttributeID.BURST_STOP_LOCATIONS.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def get_lo_frequency_offset_mode(self, channel_string): r"""Gets how the LO frequency offset is derived to configure frequency on the NI RF vector signal generators and the NI synthesizers in the :py:meth:`rfsg_configure_frequency_single_lo` and niWLANG_RFSGConfigureFrequencyMultipleLO functions. the WLAN Generation ignores this attribute if you do not use PXIe-5840, PXIe-5841, PXIe-5841 with PXIe-5655, PXIe-5646, PXIe-5830, or PXIe-5831 devices. The default value is NIWLANG_VAL_LO_FREQUENCY_OFFSET_MODE_AUTO. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.LOFrequencyOffsetMode): Specifies how the LO frequency offset is derived to configure frequency on the NI RF vector signal generators and the NI synthesizers in the :py:meth:`rfsg_configure_frequency_single_lo` and niWLANG_RFSGConfigureFrequencyMultipleLO functions. the WLAN Generation ignores this attribute if you do not use PXIe-5840, PXIe-5841, PXIe-5841 with PXIe-5655, PXIe-5646, PXIe-5830, or PXIe-5831 devices. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.LO_FREQUENCY_OFFSET_MODE.value ) attr_val = enums.LOFrequencyOffsetMode(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_lo_frequency_offset_mode(self, channel_string, value): r"""Sets how the LO frequency offset is derived to configure frequency on the NI RF vector signal generators and the NI synthesizers in the :py:meth:`rfsg_configure_frequency_single_lo` and niWLANG_RFSGConfigureFrequencyMultipleLO functions. the WLAN Generation ignores this attribute if you do not use PXIe-5840, PXIe-5841, PXIe-5841 with PXIe-5655, PXIe-5646, PXIe-5830, or PXIe-5831 devices. The default value is NIWLANG_VAL_LO_FREQUENCY_OFFSET_MODE_AUTO. Args: selector_string (string): Pass an empty string. value (enums.LOFrequencyOffsetMode, int): Specifies how the LO frequency offset is derived to configure frequency on the NI RF vector signal generators and the NI synthesizers in the :py:meth:`rfsg_configure_frequency_single_lo` and niWLANG_RFSGConfigureFrequencyMultipleLO functions. the WLAN Generation ignores this attribute if you do not use PXIe-5840, PXIe-5841, PXIe-5841 with PXIe-5655, PXIe-5646, PXIe-5830, or PXIe-5831 devices. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.LOFrequencyOffsetMode else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.LO_FREQUENCY_OFFSET_MODE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_lo_frequency_offset(self, channel_string): r"""Gets the LO frequency offset to be used when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.LO_FREQUENCY_OFFSET_MODE` attribute to NIWLANG_VAL_LO_FREQUENCY_OFFSET_MODE_USER_DEFINED. The default value is 0 Hz. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the LO frequency offset to be used when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.LO_FREQUENCY_OFFSET_MODE` attribute to NIWLANG_VAL_LO_FREQUENCY_OFFSET_MODE_USER_DEFINED. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.LO_FREQUENCY_OFFSET.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_lo_frequency_offset(self, channel_string, value): r"""Sets the LO frequency offset to be used when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.LO_FREQUENCY_OFFSET_MODE` attribute to NIWLANG_VAL_LO_FREQUENCY_OFFSET_MODE_USER_DEFINED. The default value is 0 Hz. Args: selector_string (string): Pass an empty string. value (float): Specifies the LO frequency offset to be used when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.LO_FREQUENCY_OFFSET_MODE` attribute to NIWLANG_VAL_LO_FREQUENCY_OFFSET_MODE_USER_DEFINED. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.LO_FREQUENCY_OFFSET.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_payload_auto_number_of_mpdus(self, channel_string): r"""Gets whether to compute the number of MPDUs in an AMPDU of 802.11ax Trigger-Based PPDU, 802.11be Trigger-Based PPDU and 802.11bn Trigger-Based PPDU using the following frame parameters: :py:attr:`~nirfmxwlangen.attributes.AttributeID.L_SIG_LENGTH`\_SIG_LENGTH Length attribute, :py:attr:`~nirfmxwlangen.attributes.AttributeID.PRE_FEC_PADDING_FACTOR` attribute, and :py:attr:`~nirfmxwlangen.attributes.AttributeID.LDPC_EXTRA_SYMBOL_SEGMENT` attribute. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PayloadAutoNumberOfMpdus): Specifies whether to compute the number of MPDUs in an AMPDU of 802.11ax Trigger-Based PPDU, 802.11be Trigger-Based PPDU and 802.11bn Trigger-Based PPDU using the following frame parameters: error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_AUTO_NUMBER_OF_MPDUS.value ) attr_val = enums.PayloadAutoNumberOfMpdus(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_payload_auto_number_of_mpdus(self, channel_string, value): r"""Sets whether to compute the number of MPDUs in an AMPDU of 802.11ax Trigger-Based PPDU, 802.11be Trigger-Based PPDU and 802.11bn Trigger-Based PPDU using the following frame parameters: :py:attr:`~nirfmxwlangen.attributes.AttributeID.L_SIG_LENGTH`\_SIG_LENGTH Length attribute, :py:attr:`~nirfmxwlangen.attributes.AttributeID.PRE_FEC_PADDING_FACTOR` attribute, and :py:attr:`~nirfmxwlangen.attributes.AttributeID.LDPC_EXTRA_SYMBOL_SEGMENT` attribute. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.PayloadAutoNumberOfMpdus, int): Specifies whether to compute the number of MPDUs in an AMPDU of 802.11ax Trigger-Based PPDU, 802.11be Trigger-Based PPDU and 802.11bn Trigger-Based PPDU using the following frame parameters: Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PayloadAutoNumberOfMpdus else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_AUTO_NUMBER_OF_MPDUS.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_auto_payload_data_length_mode(self, channel_string): r"""Gets whether to use the value specified in :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_LENGTH` attribute or automatically compute the data length of the MPDUs in an AMPDU. The default value is NIWLANG_VAL_AUTO_PAYLOAD_DATA_LENGTH_MODE_DISABLED. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.AutoPayloadDataLengthMode): Specifies whether to use the value specified in :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_LENGTH` attribute or automatically compute the data length of the MPDUs in an AMPDU. The default value is NIWLANG_VAL_AUTO_PAYLOAD_DATA_LENGTH_MODE_DISABLED. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.AUTO_PAYLOAD_DATA_LENGTH_MODE.value ) attr_val = enums.AutoPayloadDataLengthMode(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_auto_payload_data_length_mode(self, channel_string, value): r"""Sets whether to use the value specified in :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_LENGTH` attribute or automatically compute the data length of the MPDUs in an AMPDU. The default value is NIWLANG_VAL_AUTO_PAYLOAD_DATA_LENGTH_MODE_DISABLED. Args: selector_string (string): Pass an empty string. value (enums.AutoPayloadDataLengthMode, int): Specifies whether to use the value specified in :py:attr:`~nirfmxwlangen.attributes.AttributeID.PAYLOAD_DATA_LENGTH` attribute or automatically compute the data length of the MPDUs in an AMPDU. The default value is NIWLANG_VAL_AUTO_PAYLOAD_DATA_LENGTH_MODE_DISABLED. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.AutoPayloadDataLengthMode else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.AUTO_PAYLOAD_DATA_LENGTH_MODE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_l_sig_length(self, channel_string): r"""Gets the value of the UL-LENGTH field in the trigger frame that is used for 802.11ax Trigger-Based PPDU and 802.11be Trigger-Based PPDU generation. The default value is -1, which indicates that the value of UL-LENGTH is derived from the payload settings. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the value of the UL-LENGTH field in the trigger frame that is used for 802.11ax Trigger-Based PPDU and 802.11be Trigger-Based PPDU generation. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.L_SIG_LENGTH.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_l_sig_length(self, channel_string, value): r"""Sets the value of the UL-LENGTH field in the trigger frame that is used for 802.11ax Trigger-Based PPDU and 802.11be Trigger-Based PPDU generation. The default value is -1, which indicates that the value of UL-LENGTH is derived from the payload settings. Args: selector_string (string): Pass an empty string. value (int): Specifies the value of the UL-LENGTH field in the trigger frame that is used for 802.11ax Trigger-Based PPDU and 802.11be Trigger-Based PPDU generation. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.L_SIG_LENGTH.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_pre_fec_padding_factor(self, channel_string): r"""Gets the value of the pre-fec padding factor sub-field in the trigger frame that is used for 802.11ax Trigger-Based PPDU generation, 802.11be Trigger-Based PPDU generation and 802.11bn Trigger-Based PPDU generation. The default value is -1, which indicates that the value of the pre-fec padding factor is derived from the payload settings. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the value of the pre-fec padding factor sub-field in the trigger frame that is used for 802.11ax Trigger-Based PPDU generation, 802.11be Trigger-Based PPDU generation and 802.11bn Trigger-Based PPDU generation. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PRE_FEC_PADDING_FACTOR.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_pre_fec_padding_factor(self, channel_string, value): r"""Sets the value of the pre-fec padding factor sub-field in the trigger frame that is used for 802.11ax Trigger-Based PPDU generation, 802.11be Trigger-Based PPDU generation and 802.11bn Trigger-Based PPDU generation. The default value is -1, which indicates that the value of the pre-fec padding factor is derived from the payload settings. Args: selector_string (string): Pass an empty string. value (int): Specifies the value of the pre-fec padding factor sub-field in the trigger frame that is used for 802.11ax Trigger-Based PPDU generation, 802.11be Trigger-Based PPDU generation and 802.11bn Trigger-Based PPDU generation. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PRE_FEC_PADDING_FACTOR.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_pe_disambiguity(self, channel_string): r"""Gets the value of the PE disambiguity sub-field in the trigger frame that is used for 802.11ax Trigger-Based PPDU, 802.11be Trigger-Based PPDU and 802.11bn Trigger-Based PPDU generation. The default value is -1, which indicates that the value of the PE Disambiguity is derived from the payload settings. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the value of the PE disambiguity sub-field in the trigger frame that is used for 802.11ax Trigger-Based PPDU, 802.11be Trigger-Based PPDU and 802.11bn Trigger-Based PPDU generation. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PE_DISAMBIGUITY.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_pe_disambiguity(self, channel_string, value): r"""Sets the value of the PE disambiguity sub-field in the trigger frame that is used for 802.11ax Trigger-Based PPDU, 802.11be Trigger-Based PPDU and 802.11bn Trigger-Based PPDU generation. The default value is -1, which indicates that the value of the PE Disambiguity is derived from the payload settings. Args: selector_string (string): Pass an empty string. value (int): Specifies the value of the PE disambiguity sub-field in the trigger frame that is used for 802.11ax Trigger-Based PPDU, 802.11be Trigger-Based PPDU and 802.11bn Trigger-Based PPDU generation. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PE_DISAMBIGUITY.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_ldpc_extra_symbol_segment(self, channel_string): r"""Gets the value of the LDPC extra symbol segment field in the trigger frame which is used for 802.11ax Trigger-Based PPDU, 802.11be Trigger-Based PPDU and 802.11bn Trigger-Based PPDU generation. The default value is -1, which indicates that the value of the LDPC extra symbol segment field is derived from the payload settings. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the value of the LDPC extra symbol segment field in the trigger frame which is used for 802.11ax Trigger-Based PPDU, 802.11be Trigger-Based PPDU and 802.11bn Trigger-Based PPDU generation. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.LDPC_EXTRA_SYMBOL_SEGMENT.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_ldpc_extra_symbol_segment(self, channel_string, value): r"""Sets the value of the LDPC extra symbol segment field in the trigger frame which is used for 802.11ax Trigger-Based PPDU, 802.11be Trigger-Based PPDU and 802.11bn Trigger-Based PPDU generation. The default value is -1, which indicates that the value of the LDPC extra symbol segment field is derived from the payload settings. Args: selector_string (string): Pass an empty string. value (int): Specifies the value of the LDPC extra symbol segment field in the trigger frame which is used for 802.11ax Trigger-Based PPDU, 802.11be Trigger-Based PPDU and 802.11bn Trigger-Based PPDU generation. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.LDPC_EXTRA_SYMBOL_SEGMENT.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_bss_color(self, channel_string): r"""Gets the identifier of the BSS (Basic Service Set) from which the 802.11ax PPDU, 802.11be PPDU and 802.11bn PPDU are transmitted. The default value is 63. The valid values are 0 to 63, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the identifier of the BSS (Basic Service Set) from which the 802.11ax PPDU, 802.11be PPDU and 802.11bn PPDU are transmitted. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.BSS_COLOR.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_bss_color(self, channel_string, value): r"""Sets the identifier of the BSS (Basic Service Set) from which the 802.11ax PPDU, 802.11be PPDU and 802.11bn PPDU are transmitted. The default value is 63. The valid values are 0 to 63, inclusive. Args: selector_string (string): Pass an empty string. value (int): Specifies the identifier of the BSS (Basic Service Set) from which the 802.11ax PPDU, 802.11be PPDU and 802.11bn PPDU are transmitted. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.BSS_COLOR.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_spatial_mapping_mode(self, channel_string): r"""Gets whether the spatial mapping is created from a single global matrix or per user. This attribute is applicable, only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. The default value is NIWLANG_VAL_SPATIAL_MAPPING_MODE_COMMON. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.SpatialMappingMode): Specifies whether the spatial mapping is created from a single global matrix or per user. This attribute is applicable, only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.SPATIAL_MAPPING_MODE.value ) attr_val = enums.SpatialMappingMode(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_spatial_mapping_mode(self, channel_string, value): r"""Sets whether the spatial mapping is created from a single global matrix or per user. This attribute is applicable, only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. The default value is NIWLANG_VAL_SPATIAL_MAPPING_MODE_COMMON. Args: selector_string (string): Pass an empty string. value (enums.SpatialMappingMode, int): Specifies whether the spatial mapping is created from a single global matrix or per user. This attribute is applicable, only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.SpatialMappingMode else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.SPATIAL_MAPPING_MODE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mu_mimo_ltf_mode_enabled(self, channel_string): r"""Gets whether the HE-LTF sequence corresponding to each space time stream is masked by distinct orthogonal code, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MUMimoLtfModeEnabled): Specifies whether the HE-LTF sequence corresponding to each space time stream is masked by distinct orthogonal code, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MU_MIMO_LTF_MODE_ENABLED.value ) attr_val = enums.MUMimoLtfModeEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_mu_mimo_ltf_mode_enabled(self, channel_string, value): r"""Sets whether the HE-LTF sequence corresponding to each space time stream is masked by distinct orthogonal code, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.MUMimoLtfModeEnabled, int): Specifies whether the HE-LTF sequence corresponding to each space time stream is masked by distinct orthogonal code, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MUMimoLtfModeEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MU_MIMO_LTF_MODE_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_space_time_stream_offset(self, channel_string): r"""Gets the per user space time stream offset which is used for 802.11ax, 802.11be and 802.11bn Trigger-Based PPDU generation. The default value is 0. You must use the following active channel string formats to set this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU, use 'userx' as the active channel string format to set this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the per user space time stream offset which is used for 802.11ax, 802.11be and 802.11bn Trigger-Based PPDU generation. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.SPACE_TIME_STREAM_OFFSET.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_space_time_stream_offset(self, channel_string, value): r"""Sets the per user space time stream offset which is used for 802.11ax, 802.11be and 802.11bn Trigger-Based PPDU generation. The default value is 0. You must use the following active channel string formats to set this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU, use 'userx' as the active channel string format to set this attribute. Args: selector_string (string): Pass an empty string. value (int): Specifies the per user space time stream offset which is used for 802.11ax, 802.11be and 802.11bn Trigger-Based PPDU generation. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.SPACE_TIME_STREAM_OFFSET.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_payload_mac_frame_type(self, channel_string): r"""Gets the type of frame for the MPDU. You can set this attribute to NIWLANG_TRIGGER_FRAME, only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211B/G_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, use an empty string active channel string format to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE, or use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, or use 'userx/mpduy' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, or use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_EXTENDED_RANGE_SU_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, 'mpdux' as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, or use 'userx/mpduy' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_TRIGGER_BASED_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use 'userx/mpduy' as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU, an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE, and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU, or use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU to configure this attribute. The default value is NIWLANG_VAL_PAYLOAD_FRAME_TYPE_GENERAL_FRAME. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PayloadMacFrameType): Specifies the type of frame for the MPDU. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE.value ) attr_val = enums.PayloadMacFrameType(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_payload_mac_frame_type(self, channel_string, value): r"""Sets the type of frame for the MPDU. You can set this attribute to NIWLANG_TRIGGER_FRAME, only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211B/G_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, use an empty string active channel string format to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE, or use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, or use 'userx/mpduy' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, or use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or NIWLANG_EXTENDED_RANGE_SU_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, use 'userx/mpduy' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, 'mpdux' as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, or use 'userx/mpduy' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_TRIGGER_BASED_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use 'userx/mpduy' as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU, an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_FALSE, and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU, or use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_ELR_PPDU to configure this attribute. The default value is NIWLANG_VAL_PAYLOAD_FRAME_TYPE_GENERAL_FRAME. Args: selector_string (string): Pass an empty string. value (enums.PayloadMacFrameType, int): Specifies the type of frame for the MPDU. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PayloadMacFrameType else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PAYLOAD_MAC_FRAME_TYPE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_trigger_frame_mac_padding_duration(self, channel_string): r"""Gets the padding duration when the NIWLANG_FRAME_TYPE attribute is set to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME. This attribute is valid, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, and NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM use an empty string active channel string format to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE to configure this attribute. The default value is NIWLANG_VAL_MAXIMUM_PADDING_DURATION_0US. Set Function: niWLANG_SetMaximumMacPaddingDuration Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.TriggerFrameMacPaddingDuration): Specifies the padding duration when the NIWLANG_FRAME_TYPE attribute is set to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TRIGGER_FRAME_MAC_PADDING_DURATION.value ) attr_val = enums.TriggerFrameMacPaddingDuration(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_trigger_frame_mac_padding_duration(self, channel_string, value): r"""Sets the padding duration when the NIWLANG_FRAME_TYPE attribute is set to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME. This attribute is valid, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, and NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM use an empty string active channel string format to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE, or use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, use an empty string as the active channel string format, if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU or use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU to configure this attribute. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, use 'mpdux' as the active channel string format if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.AMPDU_ENABLED` attribute is set to NIWLANG_VAL_TRUE to configure this attribute. The default value is NIWLANG_VAL_MAXIMUM_PADDING_DURATION_0US. Set Function: niWLANG_SetMaximumMacPaddingDuration Args: selector_string (string): Pass an empty string. value (enums.TriggerFrameMacPaddingDuration, int): Specifies the padding duration when the NIWLANG_FRAME_TYPE attribute is set to NIWLANG_VAL_PAYLOAD_FRAME_TYPE_TRIGGER_FRAME. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.TriggerFrameMacPaddingDuration else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TRIGGER_FRAME_MAC_PADDING_DURATION.value, value, ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_trigger_frame_cs_required(self, channel_string): r"""Gets the CS required sub-field in the 802.11ax, 802.11be and 802.11bn Trigger Frame. The default value is 0. The valid values are 0 and 1. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the CS required sub-field in the 802.11ax, 802.11be and 802.11bn Trigger Frame. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TRIGGER_FRAME_CS_REQUIRED.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_trigger_frame_cs_required(self, channel_string, value): r"""Sets the CS required sub-field in the 802.11ax, 802.11be and 802.11bn Trigger Frame. The default value is 0. The valid values are 0 and 1. Args: selector_string (string): Pass an empty string. value (int): Specifies the CS required sub-field in the 802.11ax, 802.11be and 802.11bn Trigger Frame. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TRIGGER_FRAME_CS_REQUIRED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_preamble_puncturing_enabled(self, channel_string): r"""Gets whether to enable the preamble puncturing (channel puncturing) on 802.11ax MU PPDU, 802.11be MU PPDU and 802.11bn MU PPDU signals. Preamble puncturing is valid only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` attribute to 80 MHz, 160 MHz, or 320 MHz. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PreamblePuncturingEnabled): Specifies whether to enable the preamble puncturing (channel puncturing) on 802.11ax MU PPDU, 802.11be MU PPDU and 802.11bn MU PPDU signals. Preamble puncturing is valid only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` attribute to 80 MHz, 160 MHz, or 320 MHz. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PREAMBLE_PUNCTURING_ENABLED.value ) attr_val = enums.PreamblePuncturingEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_preamble_puncturing_enabled(self, channel_string, value): r"""Sets whether to enable the preamble puncturing (channel puncturing) on 802.11ax MU PPDU, 802.11be MU PPDU and 802.11bn MU PPDU signals. Preamble puncturing is valid only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` attribute to 80 MHz, 160 MHz, or 320 MHz. The default value is NIWLANG_VAL_TRUE. Args: selector_string (string): Pass an empty string. value (enums.PreamblePuncturingEnabled, int): Specifies whether to enable the preamble puncturing (channel puncturing) on 802.11ax MU PPDU, 802.11be MU PPDU and 802.11bn MU PPDU signals. Preamble puncturing is valid only when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` attribute to 80 MHz, 160 MHz, or 320 MHz. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PreamblePuncturingEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PREAMBLE_PUNCTURING_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_primary_20mhz_channel_index(self, channel_string): r"""Gets the index of the primary 20 MHz sub-channel in the channel bandwidth. This attribute along with the puncturing information defines the mode of puncturing. The default value is 0. For 80 MHz, valid values are 0 to 3, inclusive. For (80 + 80) MHz and 160 MHz, valid values are 0 to 7, inclusive. For 320 MHz, valid values are 0 to 15, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the index of the primary 20 MHz sub-channel in the channel bandwidth. This attribute along with the puncturing information defines the mode of puncturing. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PRIMARY_20MHZ_CHANNEL_INDEX.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_primary_20mhz_channel_index(self, channel_string, value): r"""Sets the index of the primary 20 MHz sub-channel in the channel bandwidth. This attribute along with the puncturing information defines the mode of puncturing. The default value is 0. For 80 MHz, valid values are 0 to 3, inclusive. For (80 + 80) MHz and 160 MHz, valid values are 0 to 7, inclusive. For 320 MHz, valid values are 0 to 15, inclusive. Args: selector_string (string): Pass an empty string. value (int): Specifies the index of the primary 20 MHz sub-channel in the channel bandwidth. This attribute along with the puncturing information defines the mode of puncturing. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PRIMARY_20MHZ_CHANNEL_INDEX.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_preamble_puncturing_mask(self, channel_string): r"""Gets the 20 MHz sub-channels to be punctured in the 802.11ax MU PPDU, 802.11be MU PPDU signals and 802.11bn MU PPDU signals when preamble puncturing is enabled. The mask value specified here is a binary mask represented as an integer, where bit '0' represents the punctured sub-channel. In the binary value, the least significant bit represents the 20 MHz sub-channel lower in frequency and the most significant bit represents the 20 MHz sub-channel higher in frequency. For (80 + 80) MHz case, LSB represents the lowest sub-channel in first segment. For 80 MHz case, the WLAN Generation considers the least significant 4 bits as the mask value. For (80 + 80) MHz and 160 MHz cases, the WLAN Generation considers the least significant 8 bits. For 320 MHz case, the WLAN Generation considers the least significant 16 bits as the mask value. The default value is 65535 (1111 1111 1111 1111) which represents full preamble bandwidth. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the 20 MHz sub-channels to be punctured in the 802.11ax MU PPDU, 802.11be MU PPDU signals and 802.11bn MU PPDU signals when preamble puncturing is enabled. The mask value specified here is a binary mask represented as an integer, where bit '0' represents the punctured sub-channel. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PREAMBLE_PUNCTURING_MASK.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_preamble_puncturing_mask(self, channel_string, value): r"""Sets the 20 MHz sub-channels to be punctured in the 802.11ax MU PPDU, 802.11be MU PPDU signals and 802.11bn MU PPDU signals when preamble puncturing is enabled. The mask value specified here is a binary mask represented as an integer, where bit '0' represents the punctured sub-channel. In the binary value, the least significant bit represents the 20 MHz sub-channel lower in frequency and the most significant bit represents the 20 MHz sub-channel higher in frequency. For (80 + 80) MHz case, LSB represents the lowest sub-channel in first segment. For 80 MHz case, the WLAN Generation considers the least significant 4 bits as the mask value. For (80 + 80) MHz and 160 MHz cases, the WLAN Generation considers the least significant 8 bits. For 320 MHz case, the WLAN Generation considers the least significant 16 bits as the mask value. The default value is 65535 (1111 1111 1111 1111) which represents full preamble bandwidth. Args: selector_string (string): Pass an empty string. value (int): Specifies the 20 MHz sub-channels to be punctured in the 802.11ax MU PPDU, 802.11be MU PPDU signals and 802.11bn MU PPDU signals when preamble puncturing is enabled. The mask value specified here is a binary mask represented as an integer, where bit '0' represents the punctured sub-channel. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PREAMBLE_PUNCTURING_MASK.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_signal_bandwidth(self, channel_string): r"""Gets the Signal Bandwidth value that needs to be configured on the NI RFSG session for the PXIe-5820, PXIe-5830, PXIe-5831, PXIe-5841, PXIe-5841 with PXIe-5655 devices, PXIe-5842, or PXIe-5860 devices. the WLAN Generation computes this value using the following equation. Signal Bandwidth (Hz) = 2 \* {(Channel Bandwidth/2) + |Maximum Carrier Frequency Offset|}. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Returns the Signal Bandwidth value that needs to be configured on the NI RFSG session for the PXIe-5820, PXIe-5830, PXIe-5831, PXIe-5841, PXIe-5841 with PXIe-5655 devices, PXIe-5842, or PXIe-5860 devices. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.SIGNAL_BANDWIDTH.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def get_nominal_packet_padding(self, channel_string): r"""Gets the nominal packet padding value used for determining the packet extension duration when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to 80211AX MIMOOFDM, 80211BE MIMOOFDM or 80211BN MIMOOFDM. When you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to MU PPDU or Trigger-Based PPDU, this attribute value corresponds to the maximum nominal packet padding across all users. When you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to Trigger-Based PPDU and none of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.L_SIG_LENGTH` attribute, :py:attr:`~nirfmxwlangen.attributes.AttributeID.PRE_FEC_PADDING_FACTOR` attribute, :py:attr:`~nirfmxwlangen.attributes.AttributeID.PE_DISAMBIGUITY` attribute, :py:attr:`~nirfmxwlangen.attributes.AttributeID.LDPC_EXTRA_SYMBOL_SEGMENT` attribute are set to -1, the WLAN Generation ignores this attribute.When you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute attribute to ELR PPDU, only nominal packet padding value of NIWLANG_VAL_NOMINAL_PACKET_PADDING_8US is supported. Nominal packet padding value of NIWLANG_VAL_NOMINAL_PACKET_PADDING_20US is supported only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to 80211BE MIMOOFDM or 80211BN MIMOOFDM . The default value is Auto. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.NominalPacketPadding): Specifies the nominal packet padding value used for determining the packet extension duration when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to 80211AX MIMOOFDM, 80211BE MIMOOFDM or 80211BN MIMOOFDM. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NOMINAL_PACKET_PADDING.value ) attr_val = enums.NominalPacketPadding(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_nominal_packet_padding(self, channel_string, value): r"""Sets the nominal packet padding value used for determining the packet extension duration when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to 80211AX MIMOOFDM, 80211BE MIMOOFDM or 80211BN MIMOOFDM. When you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to MU PPDU or Trigger-Based PPDU, this attribute value corresponds to the maximum nominal packet padding across all users. When you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to Trigger-Based PPDU and none of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.L_SIG_LENGTH` attribute, :py:attr:`~nirfmxwlangen.attributes.AttributeID.PRE_FEC_PADDING_FACTOR` attribute, :py:attr:`~nirfmxwlangen.attributes.AttributeID.PE_DISAMBIGUITY` attribute, :py:attr:`~nirfmxwlangen.attributes.AttributeID.LDPC_EXTRA_SYMBOL_SEGMENT` attribute are set to -1, the WLAN Generation ignores this attribute.When you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute attribute to ELR PPDU, only nominal packet padding value of NIWLANG_VAL_NOMINAL_PACKET_PADDING_8US is supported. Nominal packet padding value of NIWLANG_VAL_NOMINAL_PACKET_PADDING_20US is supported only if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to 80211BE MIMOOFDM or 80211BN MIMOOFDM . The default value is Auto. Args: selector_string (string): Pass an empty string. value (enums.NominalPacketPadding, int): Specifies the nominal packet padding value used for determining the packet extension duration when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to 80211AX MIMOOFDM, 80211BE MIMOOFDM or 80211BN MIMOOFDM. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.NominalPacketPadding else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.NOMINAL_PACKET_PADDING.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_trigger_frame_aid12(self, channel_string): r"""Gets the value of the AID12 field in the trigger frame. The valid values are 1 to 2007, which are used for indication of RUs used by Trigger-based PPDU. The values 0 and 2045 are used for Random Access RU information specification, the value 2046 is used for unassigned RU location indication, and the value 4095 is reserved for trigger frame padding indication. When you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU, use 'userx' as active channel string formats to configure this attribute. The default value is 1. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the value of the AID12 field in the trigger frame. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TRIGGER_FRAME_AID12.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_trigger_frame_aid12(self, channel_string, value): r"""Sets the value of the AID12 field in the trigger frame. The valid values are 1 to 2007, which are used for indication of RUs used by Trigger-based PPDU. The values 0 and 2045 are used for Random Access RU information specification, the value 2046 is used for unassigned RU location indication, and the value 4095 is reserved for trigger frame padding indication. When you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute is NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU, use 'userx' as active channel string formats to configure this attribute. The default value is 1. Args: selector_string (string): Pass an empty string. value (int): Specifies the value of the AID12 field in the trigger frame. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TRIGGER_FRAME_AID12.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_idle_interval_mode(self, channel_string): r"""Gets how the idle interval is placed in the generated waveform. You cannot set this attribute to NIWLANG_VAL_IDLE_INTERVAL_MODE_SPLIT if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RF_BLANKING_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_IDLE_INTERVAL_MODE_SPLIT. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.IdleIntervalMode): Specifies how the idle interval is placed in the generated waveform. You cannot set this attribute to NIWLANG_VAL_IDLE_INTERVAL_MODE_SPLIT if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RF_BLANKING_ENABLED` attribute to NIWLANG_VAL_TRUE. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.IDLE_INTERVAL_MODE.value ) attr_val = enums.IdleIntervalMode(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_idle_interval_mode(self, channel_string, value): r"""Sets how the idle interval is placed in the generated waveform. You cannot set this attribute to NIWLANG_VAL_IDLE_INTERVAL_MODE_SPLIT if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RF_BLANKING_ENABLED` attribute to NIWLANG_VAL_TRUE. The default value is NIWLANG_VAL_IDLE_INTERVAL_MODE_SPLIT. Args: selector_string (string): Pass an empty string. value (enums.IdleIntervalMode, int): Specifies how the idle interval is placed in the generated waveform. You cannot set this attribute to NIWLANG_VAL_IDLE_INTERVAL_MODE_SPLIT if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RF_BLANKING_ENABLED` attribute to NIWLANG_VAL_TRUE. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.IdleIntervalMode else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.IDLE_INTERVAL_MODE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_midamble_periodicity(self, channel_string): r"""Gets the interval, in number of data symbols, after which the midambles are inserted in the data field of the 802.11ax signals. You must set this attribute to NIWLANG_VAL_MIDAMBLE_PERIODICITY_NONE when the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SPACE_TIME_STREAMS` attribute is greater than 4. The default value is NIWLANG_VAL_MIDAMBLE_PERIODICITY_NONE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MidamblePeriodicity): Specifies the interval, in number of data symbols, after which the midambles are inserted in the data field of the 802.11ax signals. You must set this attribute to NIWLANG_VAL_MIDAMBLE_PERIODICITY_NONE when the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SPACE_TIME_STREAMS` attribute is greater than 4. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MIDAMBLE_PERIODICITY.value ) attr_val = enums.MidamblePeriodicity(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_midamble_periodicity(self, channel_string, value): r"""Sets the interval, in number of data symbols, after which the midambles are inserted in the data field of the 802.11ax signals. You must set this attribute to NIWLANG_VAL_MIDAMBLE_PERIODICITY_NONE when the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SPACE_TIME_STREAMS` attribute is greater than 4. The default value is NIWLANG_VAL_MIDAMBLE_PERIODICITY_NONE. Args: selector_string (string): Pass an empty string. value (enums.MidamblePeriodicity, int): Specifies the interval, in number of data symbols, after which the midambles are inserted in the data field of the 802.11ax signals. You must set this attribute to NIWLANG_VAL_MIDAMBLE_PERIODICITY_NONE when the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_SPACE_TIME_STREAMS` attribute is greater than 4. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.MidamblePeriodicity else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MIDAMBLE_PERIODICITY.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_ru_allocation_mode(self, channel_string): r"""Gets how to configure the multi-user allocation in a 802.11ax or 802.11be MU PPDU signal. The default value is NIWLANG_VAL_RU_ALLOCATION_MODE_INDIVIDUAL. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.RUAllocationMode): Specifies how to configure the multi-user allocation in a 802.11ax or 802.11be MU PPDU signal. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.RU_ALLOCATION_MODE.value ) attr_val = enums.RUAllocationMode(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_ru_allocation_mode(self, channel_string, value): r"""Sets how to configure the multi-user allocation in a 802.11ax or 802.11be MU PPDU signal. The default value is NIWLANG_VAL_RU_ALLOCATION_MODE_INDIVIDUAL. Args: selector_string (string): Pass an empty string. value (enums.RUAllocationMode, int): Specifies how to configure the multi-user allocation in a 802.11ax or 802.11be MU PPDU signal. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.RUAllocationMode else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.RU_ALLOCATION_MODE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_ru_allocation(self, channel_string): r"""Gets the common field of the HE-SIG-B or EHT-SIG field to be used for multi-user allocation in a 802.11ax or 802.11be MU PPDU signal. Each element of the array represents the RU allocation sub-field of the common field corresponding to each 20 MHz sub-channel in the channel bandwidth. The :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_SIZE` and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_OFFSET_MRU_INDEX` attributes of the configured users are derived based on the value of this attribute. Query the number of users using the niWLANG_GetNumberOfUsersFromRUAllocation function to configure the user related attributes. The users are indexed in the increasing order of frequency. When the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` attribute is set to 80 MHz or 160 MHz and :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, the 26 Resource Units (RU) at the center are enabled by default. These users can be disabled by using the :py:attr:`~nirfmxwlangen.attributes.AttributeID.USER_ENABLED` attribute. the WLAN Generation ignores this attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_ALLOCATION_MODE` attribute to NIWLANG_VAL_RU_ALLOCATION_MODE_INDIVIDUAL. The default value in the array is 0d128. The default value in the array is 0d128. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the common field of the HE-SIG-B or EHT-SIG field to be used for multi-user allocation in a 802.11ax or 802.11be MU PPDU signal. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_vector_attribute_i32( # type: ignore channel_string, attributes.AttributeID.RU_ALLOCATION.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_ru_allocation(self, channel_string, value): r"""Sets the common field of the HE-SIG-B or EHT-SIG field to be used for multi-user allocation in a 802.11ax or 802.11be MU PPDU signal. Each element of the array represents the RU allocation sub-field of the common field corresponding to each 20 MHz sub-channel in the channel bandwidth. The :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_SIZE` and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_OFFSET_MRU_INDEX` attributes of the configured users are derived based on the value of this attribute. Query the number of users using the niWLANG_GetNumberOfUsersFromRUAllocation function to configure the user related attributes. The users are indexed in the increasing order of frequency. When the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CHANNEL_BANDWIDTH` attribute is set to 80 MHz or 160 MHz and :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, the 26 Resource Units (RU) at the center are enabled by default. These users can be disabled by using the :py:attr:`~nirfmxwlangen.attributes.AttributeID.USER_ENABLED` attribute. the WLAN Generation ignores this attribute if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_ALLOCATION_MODE` attribute to NIWLANG_VAL_RU_ALLOCATION_MODE_INDIVIDUAL. The default value in the array is 0d128. The default value in the array is 0d128. Args: selector_string (string): Pass an empty string. value (int): Specifies the common field of the HE-SIG-B or EHT-SIG field to be used for multi-user allocation in a 802.11ax or 802.11be MU PPDU signal. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_vector_attribute_i32( # type: ignore channel_string, attributes.AttributeID.RU_ALLOCATION.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_user_enabled(self, channel_string): r"""Gets whether to enable the user in a 802.11ax, 802.11be and 802.11bn MU PPDU signal. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +------------------------------------------------------+------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +======================================================+==============================================================================+ | 80211AX MIMOOFDM, 80211BE MIMOOFDM, 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------+------------------------------------------------------------------------------+ The default value is True. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.UserEnabled): Specifies whether to enable the user in a 802.11ax, 802.11be and 802.11bn MU PPDU signal. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.USER_ENABLED.value ) attr_val = enums.UserEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_user_enabled(self, channel_string, value): r"""Sets whether to enable the user in a 802.11ax, 802.11be and 802.11bn MU PPDU signal. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +------------------------------------------------------+------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +======================================================+==============================================================================+ | 80211AX MIMOOFDM, 80211BE MIMOOFDM, 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +------------------------------------------------------+------------------------------------------------------------------------------+ The default value is True. Args: selector_string (string): Pass an empty string. value (enums.UserEnabled, int): Specifies whether to enable the user in a 802.11ax, 802.11be and 802.11bn MU PPDU signal. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.UserEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.USER_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_frame_duration(self, channel_string): r"""Gets the duration of a generated frame excluding idle interval. This attribute is applicable only if you set NIWLANG_PAYLOAD_AUTO_DATA_LENGTH attribute to NIWLANG_VAL_AUTO_PAYLOAD_DATA_LENGTH_MODE_FRAME_DURATION. When the value of :py:attr:`~nirfmxwlangen.attributes.AttributeID.FRAME_DURATION` results in fractional :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_DATA_SYMBOLS`, and if it results in generated frame duration less than 5.484 milliseconds, the number of data symbols is rounded to the next highest integer, otherwise, the number of symbols is rounded to the next lowest integer. The default value is 1 millisecond. Valid values are 100 microseconds to 5.484 milliseconds. Set Function: niWLANG_SetFrameDuration Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the duration of a generated frame excluding idle interval. This attribute is applicable only if you set NIWLANG_PAYLOAD_AUTO_DATA_LENGTH attribute to NIWLANG_VAL_AUTO_PAYLOAD_DATA_LENGTH_MODE_FRAME_DURATION. When the value of :py:attr:`~nirfmxwlangen.attributes.AttributeID.FRAME_DURATION` results in fractional :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_DATA_SYMBOLS`, and if it results in generated frame duration less than 5.484 milliseconds, the number of data symbols is rounded to the next highest integer, otherwise, the number of symbols is rounded to the next lowest integer. The default value is 1 millisecond. Valid values are 100 microseconds to 5.484 milliseconds. Set Function: niWLANG_SetFrameDuration error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.FRAME_DURATION.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_frame_duration(self, channel_string, value): r"""Sets the duration of a generated frame excluding idle interval. This attribute is applicable only if you set NIWLANG_PAYLOAD_AUTO_DATA_LENGTH attribute to NIWLANG_VAL_AUTO_PAYLOAD_DATA_LENGTH_MODE_FRAME_DURATION. When the value of :py:attr:`~nirfmxwlangen.attributes.AttributeID.FRAME_DURATION` results in fractional :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_DATA_SYMBOLS`, and if it results in generated frame duration less than 5.484 milliseconds, the number of data symbols is rounded to the next highest integer, otherwise, the number of symbols is rounded to the next lowest integer. The default value is 1 millisecond. Valid values are 100 microseconds to 5.484 milliseconds. Set Function: niWLANG_SetFrameDuration Args: selector_string (string): Pass an empty string. value (float): Specifies the duration of a generated frame excluding idle interval. This attribute is applicable only if you set NIWLANG_PAYLOAD_AUTO_DATA_LENGTH attribute to NIWLANG_VAL_AUTO_PAYLOAD_DATA_LENGTH_MODE_FRAME_DURATION. When the value of :py:attr:`~nirfmxwlangen.attributes.AttributeID.FRAME_DURATION` results in fractional :py:attr:`~nirfmxwlangen.attributes.AttributeID.NUMBER_OF_DATA_SYMBOLS`, and if it results in generated frame duration less than 5.484 milliseconds, the number of data symbols is rounded to the next highest integer, otherwise, the number of symbols is rounded to the next lowest integer. The default value is 1 millisecond. Valid values are 100 microseconds to 5.484 milliseconds. Set Function: niWLANG_SetFrameDuration Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.FRAME_DURATION.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_unframed_data_modulation_enabled(self, channel_string): r"""Gets whether to enable Unframed Data Modulation. If you set this attribute to NIWLANG_VAL_TRUE, only the data portion is present in the frame, and the idle interval is coerced to 0. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.UnframedDataModulationEnabled): Specifies whether to enable Unframed Data Modulation. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.UNFRAMED_DATA_MODULATION_ENABLED.value ) attr_val = enums.UnframedDataModulationEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_unframed_data_modulation_enabled(self, channel_string, value): r"""Sets whether to enable Unframed Data Modulation. If you set this attribute to NIWLANG_VAL_TRUE, only the data portion is present in the frame, and the idle interval is coerced to 0. Args: selector_string (string): Pass an empty string. value (enums.UnframedDataModulationEnabled, int): Specifies whether to enable Unframed Data Modulation. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.UnframedDataModulationEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.UNFRAMED_DATA_MODULATION_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_oversampling_ratio(self, channel_string): r"""Gets the number of times the WLAN Generation increases the Nyquist sample rate to obtain the final sample rate of the signal. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, the default value is 4 and the minimum value is 2. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to other standards, the default and the minimum value is 1.25. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the number of times the WLAN Generation increases the Nyquist sample rate to obtain the final sample rate of the signal. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.OVERSAMPLING_RATIO.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_oversampling_ratio(self, channel_string, value): r"""Sets the number of times the WLAN Generation increases the Nyquist sample rate to obtain the final sample rate of the signal. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211BG_DSSS or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM, the default value is 4 and the minimum value is 2. If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to other standards, the default and the minimum value is 1.25. Args: selector_string (string): Pass an empty string. value (float): Specifies the number of times the WLAN Generation increases the Nyquist sample rate to obtain the final sample rate of the signal. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.OVERSAMPLING_RATIO.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_sig_mcs_index(self, channel_string): r"""Gets the value of the modulation and coding scheme (MCS) index of the SIG field of 802.11be and 802.11bn signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU. The default value is 0. The valid values are 0 to 3, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the value of the modulation and coding scheme (MCS) index of the SIG field of 802.11be and 802.11bn signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.SIG_MCS_INDEX.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_sig_mcs_index(self, channel_string, value): r"""Sets the value of the modulation and coding scheme (MCS) index of the SIG field of 802.11be and 802.11bn signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU. The default value is 0. The valid values are 0 to 3, inclusive. Args: selector_string (string): Pass an empty string. value (int): Specifies the value of the modulation and coding scheme (MCS) index of the SIG field of 802.11be and 802.11bn signal when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.SIG_MCS_INDEX.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_sig_compression_enabled(self, channel_string): r"""Gets whether the generated 802.11be and 802.11bn signal is a non-OFDMA signal or not. The default value is NIWLANG_VAL_SIG_COMPRESSION_ENABLED_TRUE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.SigCompressionEnabled): Specifies whether the generated 802.11be and 802.11bn signal is a non-OFDMA signal or not. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.SIG_COMPRESSION_ENABLED.value ) attr_val = enums.SigCompressionEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_sig_compression_enabled(self, channel_string, value): r"""Sets whether the generated 802.11be and 802.11bn signal is a non-OFDMA signal or not. The default value is NIWLANG_VAL_SIG_COMPRESSION_ENABLED_TRUE. Args: selector_string (string): Pass an empty string. value (enums.SigCompressionEnabled, int): Specifies whether the generated 802.11be and 802.11bn signal is a non-OFDMA signal or not. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.SigCompressionEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.SIG_COMPRESSION_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_phase_rotation_coefficient_1(self, channel_string): r"""Gets the phase rotation coefficient 1 as defined in IEEE Standard P802.11be/D7.0. To reduce PAPR, EHT-PPDUs and UHR-PPDUs apply phase rotation on pre-EHT and pre-UHR modulated fields (L-STF, L-LTF, L-SIG, RL-SIG, U-SIG, EHT-SIG). This attribute is valid only for 802.11be or 802.11bn and 320 MHz bandwidth. The default value is :py:attr:`~nirfmxwlangen.attributes.AttributeID.PHASE_ROTATION_COEFFICIENT_1`\_PLUS_ONE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PhaseRotationCoefficient1): Specifies the phase rotation coefficient 1 as defined in IEEE Standard P802.11be/D7.0. To reduce PAPR, EHT-PPDUs and UHR-PPDUs apply phase rotation on pre-EHT and pre-UHR modulated fields (L-STF, L-LTF, L-SIG, RL-SIG, U-SIG, EHT-SIG). This attribute is valid only for 802.11be or 802.11bn and 320 MHz bandwidth. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PHASE_ROTATION_COEFFICIENT_1.value ) attr_val = enums.PhaseRotationCoefficient1(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_phase_rotation_coefficient_1(self, channel_string, value): r"""Sets the phase rotation coefficient 1 as defined in IEEE Standard P802.11be/D7.0. To reduce PAPR, EHT-PPDUs and UHR-PPDUs apply phase rotation on pre-EHT and pre-UHR modulated fields (L-STF, L-LTF, L-SIG, RL-SIG, U-SIG, EHT-SIG). This attribute is valid only for 802.11be or 802.11bn and 320 MHz bandwidth. The default value is :py:attr:`~nirfmxwlangen.attributes.AttributeID.PHASE_ROTATION_COEFFICIENT_1`\_PLUS_ONE. Args: selector_string (string): Pass an empty string. value (enums.PhaseRotationCoefficient1, int): Specifies the phase rotation coefficient 1 as defined in IEEE Standard P802.11be/D7.0. To reduce PAPR, EHT-PPDUs and UHR-PPDUs apply phase rotation on pre-EHT and pre-UHR modulated fields (L-STF, L-LTF, L-SIG, RL-SIG, U-SIG, EHT-SIG). This attribute is valid only for 802.11be or 802.11bn and 320 MHz bandwidth. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PhaseRotationCoefficient1 else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PHASE_ROTATION_COEFFICIENT_1.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_phase_rotation_coefficient_2(self, channel_string): r"""Gets the phase rotation coefficient 2 as defined in IEEE Standard P802.11be/D7.0. To reduce PAPR, EHT-PPDUs and UHR-PPDUs apply phase rotation on pre-EHT and pre-UHR modulated fields (L-STF, L-LTF, L-SIG, RL-SIG, U-SIG, EHT-SIG). This attribute is valid only for 802.11be or 802.11bn and 320 MHz bandwidth. The default value is :py:attr:`~nirfmxwlangen.attributes.AttributeID.PHASE_ROTATION_COEFFICIENT_2`\_MINUS_ONE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PhaseRotationCoefficient2): Specifies the phase rotation coefficient 2 as defined in IEEE Standard P802.11be/D7.0. To reduce PAPR, EHT-PPDUs and UHR-PPDUs apply phase rotation on pre-EHT and pre-UHR modulated fields (L-STF, L-LTF, L-SIG, RL-SIG, U-SIG, EHT-SIG). This attribute is valid only for 802.11be or 802.11bn and 320 MHz bandwidth. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PHASE_ROTATION_COEFFICIENT_2.value ) attr_val = enums.PhaseRotationCoefficient2(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_phase_rotation_coefficient_2(self, channel_string, value): r"""Sets the phase rotation coefficient 2 as defined in IEEE Standard P802.11be/D7.0. To reduce PAPR, EHT-PPDUs and UHR-PPDUs apply phase rotation on pre-EHT and pre-UHR modulated fields (L-STF, L-LTF, L-SIG, RL-SIG, U-SIG, EHT-SIG). This attribute is valid only for 802.11be or 802.11bn and 320 MHz bandwidth. The default value is :py:attr:`~nirfmxwlangen.attributes.AttributeID.PHASE_ROTATION_COEFFICIENT_2`\_MINUS_ONE. Args: selector_string (string): Pass an empty string. value (enums.PhaseRotationCoefficient2, int): Specifies the phase rotation coefficient 2 as defined in IEEE Standard P802.11be/D7.0. To reduce PAPR, EHT-PPDUs and UHR-PPDUs apply phase rotation on pre-EHT and pre-UHR modulated fields (L-STF, L-LTF, L-SIG, RL-SIG, U-SIG, EHT-SIG). This attribute is valid only for 802.11be or 802.11bn and 320 MHz bandwidth. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PhaseRotationCoefficient2 else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PHASE_ROTATION_COEFFICIENT_2.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_phase_rotation_coefficient_3(self, channel_string): r"""Gets the phase rotation coefficient 3 as defined in IEEE Standard P802.11be/D7.0. To reduce PAPR, EHT-PPDUs and UHR-PPDUs apply phase rotation on pre-EHT and pre-UHR modulated fields (L-STF, L-LTF, L-SIG, RL-SIG, U-SIG, EHT-SIG). This attribute is valid only for 802.11be or 802.11bn and 320 MHz bandwidth. The default value is :py:attr:`~nirfmxwlangen.attributes.AttributeID.PHASE_ROTATION_COEFFICIENT_3`\_MINUS_ONE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.PhaseRotationCoefficient3): Specifies the phase rotation coefficient 3 as defined in IEEE Standard P802.11be/D7.0. To reduce PAPR, EHT-PPDUs and UHR-PPDUs apply phase rotation on pre-EHT and pre-UHR modulated fields (L-STF, L-LTF, L-SIG, RL-SIG, U-SIG, EHT-SIG). This attribute is valid only for 802.11be or 802.11bn and 320 MHz bandwidth. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PHASE_ROTATION_COEFFICIENT_3.value ) attr_val = enums.PhaseRotationCoefficient3(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_phase_rotation_coefficient_3(self, channel_string, value): r"""Sets the phase rotation coefficient 3 as defined in IEEE Standard P802.11be/D7.0. To reduce PAPR, EHT-PPDUs and UHR-PPDUs apply phase rotation on pre-EHT and pre-UHR modulated fields (L-STF, L-LTF, L-SIG, RL-SIG, U-SIG, EHT-SIG). This attribute is valid only for 802.11be or 802.11bn and 320 MHz bandwidth. The default value is :py:attr:`~nirfmxwlangen.attributes.AttributeID.PHASE_ROTATION_COEFFICIENT_3`\_MINUS_ONE. Args: selector_string (string): Pass an empty string. value (enums.PhaseRotationCoefficient3, int): Specifies the phase rotation coefficient 3 as defined in IEEE Standard P802.11be/D7.0. To reduce PAPR, EHT-PPDUs and UHR-PPDUs apply phase rotation on pre-EHT and pre-UHR modulated fields (L-STF, L-LTF, L-SIG, RL-SIG, U-SIG, EHT-SIG). This attribute is valid only for 802.11be or 802.11bn and 320 MHz bandwidth. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.PhaseRotationCoefficient3 else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.PHASE_ROTATION_COEFFICIENT_3.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_cyclic_time_shift(self, channel_string): r"""Gets the value of Cyclic Time Shift applied to each Transmit Chain signals. This attribute is applicable only if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAPPING_MATRIX_TYPE` attribute is set to NIWLANG_VAL_MAPPING_MATRIX_TYPE_DIRECT, NIWLANG_VAL_MAPPING_MATRIX_TYPE_HADAMARD or NIWLANG_VAL_MAPPING_MATRIX_TYPE_FOURIER and standard is set to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, and :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_MU_PPDU, NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU, or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU. This attribute is not applicable if :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` is set to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and MNIWLANG_MAPPING_MATRIX_TYPE is set to NIWLANG_VAL_MAPPING_MATRIX_TYPE_USER_SPECIFIC. The default value is 0. The supported range for this attribute is -32 us to 32 us. You must use Active Channel String as Channelx for all standards to set this attribute. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the value of Cyclic Time Shift applied to each Transmit Chain signals. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.CYCLIC_TIME_SHIFT.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_cyclic_time_shift(self, channel_string, value): r"""Sets the value of Cyclic Time Shift applied to each Transmit Chain signals. This attribute is applicable only if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAPPING_MATRIX_TYPE` attribute is set to NIWLANG_VAL_MAPPING_MATRIX_TYPE_DIRECT, NIWLANG_VAL_MAPPING_MATRIX_TYPE_HADAMARD or NIWLANG_VAL_MAPPING_MATRIX_TYPE_FOURIER and standard is set to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM, and :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` is set to NIWLANG_VAL_PPDU_TYPE_SU_PPDU, NIWLANG_VAL_PPDU_TYPE_MU_PPDU, NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU, or NIWLANG_VAL_PPDU_TYPE_ELR_PPDU. This attribute is not applicable if :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` is set to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU and MNIWLANG_MAPPING_MATRIX_TYPE is set to NIWLANG_VAL_MAPPING_MATRIX_TYPE_USER_SPECIFIC. The default value is 0. The supported range for this attribute is -32 us to 32 us. You must use Active Channel String as Channelx for all standards to set this attribute. Args: selector_string (string): Pass an empty string. value (float): Specifies the value of Cyclic Time Shift applied to each Transmit Chain signals. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.CYCLIC_TIME_SHIFT.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_hybrid_lo_sharing_mode(self, channel_string): r"""Gets whether to enable configuration for sharing of local oscillator (LO) signal in star plus daisy-chained way for multiple PXIe-5842. This attribute is queried as part of the niWLANG_RFSGConfigureFrequencySingleLO function. The default value is NIWLANG_VAL_HYBRID_LO_SHARING_MODE_DISABLED. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.HybridLOSharingMode): Specifies whether to enable configuration for sharing of local oscillator (LO) signal in star plus daisy-chained way for multiple PXIe-5842. This attribute is queried as part of the niWLANG_RFSGConfigureFrequencySingleLO function. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.HYBRID_LO_SHARING_MODE.value ) attr_val = enums.HybridLOSharingMode(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_hybrid_lo_sharing_mode(self, channel_string, value): r"""Sets whether to enable configuration for sharing of local oscillator (LO) signal in star plus daisy-chained way for multiple PXIe-5842. This attribute is queried as part of the niWLANG_RFSGConfigureFrequencySingleLO function. The default value is NIWLANG_VAL_HYBRID_LO_SHARING_MODE_DISABLED. Args: selector_string (string): Pass an empty string. value (enums.HybridLOSharingMode, int): Specifies whether to enable configuration for sharing of local oscillator (LO) signal in star plus daisy-chained way for multiple PXIe-5842. This attribute is queried as part of the niWLANG_RFSGConfigureFrequencySingleLO function. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.HybridLOSharingMode else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.HYBRID_LO_SHARING_MODE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_multi_chassis_tclk_synchronization_mode(self, channel_string): r"""Gets whether multi-chassis TClk Synchronization is performed using Timing Module or automatically for multiple PXIe-5842, or PXIe-5860 devices. This attribute is queried as part of the niWLANG_RFSGConfigureMultipleDeviceSynchronization function. The default value is NIWLANG_VAL_MULTI_CHASSIS_TCLK_SYNCHRONIZATION_MODE_AUTO. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.MultiChassisTClkSynchronizationMode): Specifies whether multi-chassis TClk Synchronization is performed using Timing Module or automatically for multiple PXIe-5842, or PXIe-5860 devices. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MULTI_CHASSIS_TCLK_SYNCHRONIZATION_MODE.value ) attr_val = enums.MultiChassisTClkSynchronizationMode(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_multi_chassis_tclk_synchronization_mode(self, channel_string, value): r"""Sets whether multi-chassis TClk Synchronization is performed using Timing Module or automatically for multiple PXIe-5842, or PXIe-5860 devices. This attribute is queried as part of the niWLANG_RFSGConfigureMultipleDeviceSynchronization function. The default value is NIWLANG_VAL_MULTI_CHASSIS_TCLK_SYNCHRONIZATION_MODE_AUTO. Args: selector_string (string): Pass an empty string. value (enums.MultiChassisTClkSynchronizationMode, int): Specifies whether multi-chassis TClk Synchronization is performed using Timing Module or automatically for multiple PXIe-5842, or PXIe-5860 devices. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = ( value.value if type(value) is enums.MultiChassisTClkSynchronizationMode else value ) error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.MULTI_CHASSIS_TCLK_SYNCHRONIZATION_MODE.value, value, ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_lo_splitter_loss(self, channel_string): r"""Gets the array of splitter loss values in dB for corresponding array of splitter loss frequencies in Hz if Hybrid LO Sharing Mode is set to Mode0. The default is an empty array. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the array of splitter loss values in dB for corresponding array of splitter loss frequencies in Hz if Hybrid LO Sharing Mode is set to Mode0. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_vector_attribute_f64( # type: ignore channel_string, attributes.AttributeID.LO_SPLITTER_LOSS.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_lo_splitter_loss(self, channel_string, value): r"""Sets the array of splitter loss values in dB for corresponding array of splitter loss frequencies in Hz if Hybrid LO Sharing Mode is set to Mode0. The default is an empty array. Args: selector_string (string): Pass an empty string. value (float): Specifies the array of splitter loss values in dB for corresponding array of splitter loss frequencies in Hz if Hybrid LO Sharing Mode is set to Mode0. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_vector_attribute_f64( # type: ignore channel_string, attributes.AttributeID.LO_SPLITTER_LOSS.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_lo_splitter_loss_frequency(self, channel_string): r"""Gets the array of splitter loss frequencies in Hz for corresponding array of splitter loss values in dB if Hybrid LO Sharing Mode is set to Mode0. The default is an empty array. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the array of splitter loss frequencies in Hz for corresponding array of splitter loss values in dB if Hybrid LO Sharing Mode is set to Mode0. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_vector_attribute_f64( # type: ignore channel_string, attributes.AttributeID.LO_SPLITTER_LOSS_FREQUENCY.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_lo_splitter_loss_frequency(self, channel_string, value): r"""Sets the array of splitter loss frequencies in Hz for corresponding array of splitter loss values in dB if Hybrid LO Sharing Mode is set to Mode0. The default is an empty array. Args: selector_string (string): Pass an empty string. value (float): Specifies the array of splitter loss frequencies in Hz for corresponding array of splitter loss values in dB if Hybrid LO Sharing Mode is set to Mode0. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_vector_attribute_f64( # type: ignore channel_string, attributes.AttributeID.LO_SPLITTER_LOSS_FREQUENCY.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_2xldpc_enabled(self, channel_string): r"""Gets whether to enable 2xLDPC for 802.11bn MU PPDU and 802.11bn TB PPDU signals. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +==========================+==========================================================================================================================+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ The default value is NIWLANG_VAL_FALSE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.TwoxLdpcEnabled): Specifies whether to enable 2xLDPC for 802.11bn MU PPDU and 802.11bn TB PPDU signals. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TWO_X_LDPC_ENABLED.value ) attr_val = enums.TwoxLdpcEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_2xldpc_enabled(self, channel_string, value): r"""Sets whether to enable 2xLDPC for 802.11bn MU PPDU and 802.11bn TB PPDU signals. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +==========================+==========================================================================================================================+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU or NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+--------------------------------------------------------------------------------------------------------------------------+ The default value is NIWLANG_VAL_FALSE. Args: selector_string (string): Pass an empty string. value (enums.TwoxLdpcEnabled, int): Specifies whether to enable 2xLDPC for 802.11bn MU PPDU and 802.11bn TB PPDU signals. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.TwoxLdpcEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.TWO_X_LDPC_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_distribution_bandwidth(self, channel_string): r"""Gets the bandwidth across which RU subcarriers are spread, when you set RU Type attribute to dRU. This attribute is applicable only for 802.11bn TB PPDU. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------+-----------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +==========================+=========================================================================================+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+-----------------------------------------------------------------------------------------+ The default value is 20M. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the bandwidth across which RU subcarriers are spread, when you set RU Type attribute to dRU. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.DISTRIBUTION_BANDWIDTH.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_distribution_bandwidth(self, channel_string, value): r"""Sets the bandwidth across which RU subcarriers are spread, when you set RU Type attribute to dRU. This attribute is applicable only for 802.11bn TB PPDU. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------+-----------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +==========================+=========================================================================================+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+-----------------------------------------------------------------------------------------+ The default value is 20M. Args: selector_string (string): Pass an empty string. value (float): Specifies the bandwidth across which RU subcarriers are spread, when you set RU Type attribute to dRU. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.DISTRIBUTION_BANDWIDTH.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_ru_type(self, channel_string): r"""Gets whether contiguous subcarriers form the resource unit (rRU) or non-contiguous subcarriers form the resource unit (dRU). This attribute is applicable only for 802.11bn TB PPDU. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------+-----------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +==========================+=========================================================================================+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+-----------------------------------------------------------------------------------------+ The default value is NIWLANG_VAL_RU_TYPE_DRU. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.RUType): Specifies whether contiguous subcarriers form the resource unit (rRU) or non-contiguous subcarriers form the resource unit (dRU). This attribute is applicable only for 802.11bn TB PPDU. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.RU_TYPE.value ) attr_val = enums.RUType(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_ru_type(self, channel_string, value): r"""Sets whether contiguous subcarriers form the resource unit (rRU) or non-contiguous subcarriers form the resource unit (dRU). This attribute is applicable only for 802.11bn TB PPDU. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------+-----------------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +==========================+=========================================================================================+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU | +--------------------------+-----------------------------------------------------------------------------------------+ The default value is NIWLANG_VAL_RU_TYPE_DRU. Args: selector_string (string): Pass an empty string. value (enums.RUType, int): Specifies whether contiguous subcarriers form the resource unit (rRU) or non-contiguous subcarriers form the resource unit (dRU). This attribute is applicable only for 802.11bn TB PPDU. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.RUType else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.RU_TYPE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_unequal_modulation_enabled(self, channel_string): r"""Gets whether to enable unequal modulation (UEQM) for 802.11bn MU PPDU signals with 2 to 4 spatial streams. UEQM is only supported in non-MU-MIMO beamformed transmission. Modulation order of different spatial streams is determined by value of Pattern Index attribute. This attribute is applicable only when Standard attribute is set to 80211BN MIMOOFDM. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------+------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +==========================+==============================================================================+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------+------------------------------------------------------------------------------+ The default value is NIWLANG_VAL_FALSE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.UnequalModulationEnabled): Specifies whether to enable unequal modulation (UEQM) for 802.11bn MU PPDU signals with 2 to 4 spatial streams. UEQM is only supported in non-MU-MIMO beamformed transmission. Modulation order of different spatial streams is determined by value of Pattern Index attribute. This attribute is applicable only when Standard attribute is set to 80211BN MIMOOFDM. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.UNEQUAL_MODULATION_ENABLED.value ) attr_val = enums.UnequalModulationEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_unequal_modulation_enabled(self, channel_string, value): r"""Sets whether to enable unequal modulation (UEQM) for 802.11bn MU PPDU signals with 2 to 4 spatial streams. UEQM is only supported in non-MU-MIMO beamformed transmission. Modulation order of different spatial streams is determined by value of Pattern Index attribute. This attribute is applicable only when Standard attribute is set to 80211BN MIMOOFDM. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------+------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +==========================+==============================================================================+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------+------------------------------------------------------------------------------+ The default value is NIWLANG_VAL_FALSE. Args: selector_string (string): Pass an empty string. value (enums.UnequalModulationEnabled, int): Specifies whether to enable unequal modulation (UEQM) for 802.11bn MU PPDU signals with 2 to 4 spatial streams. UEQM is only supported in non-MU-MIMO beamformed transmission. Modulation order of different spatial streams is determined by value of Pattern Index attribute. This attribute is applicable only when Standard attribute is set to 80211BN MIMOOFDM. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.UnequalModulationEnabled else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.UNEQUAL_MODULATION_ENABLED.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_unequal_modulation_pattern_index(self, channel_string): r"""Gets the unequal modulation pattern index when Unequal Modulation Enabled attribute is set to True. This attribute is applicable only when Standard attribute is set to 80211BN MIMOOFDM. The allowed modulation orders for unequal modulation are QPSK, 16-QAM, 64-QAM, 256-QAM, 1024-QAM and 4096-QAM. Modulation order of the first spatial stream is determined by the MCS Index property value. Pattern Index value determines the modulation order of remaining spatial streams with respect to the first spatial stream, as defined in the Table 38-29 of IEEE P802.11bn/D1.2. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------+------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +==========================+==============================================================================+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------+------------------------------------------------------------------------------+ The default value is 0. The valid values are 0 to 3, inclusive. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (int): Specifies the unequal modulation pattern index when Unequal Modulation Enabled attribute is set to True. This attribute is applicable only when Standard attribute is set to 80211BN MIMOOFDM. The allowed modulation orders for unequal modulation are QPSK, 16-QAM, 64-QAM, 256-QAM, 1024-QAM and 4096-QAM. Modulation order of the first spatial stream is determined by the MCS Index property value. Pattern Index value determines the modulation order of remaining spatial streams with respect to the first spatial stream, as defined in the Table 38-29 of IEEE P802.11bn/D1.2. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.UNEQUAL_MODULATION_PATTERN_INDEX.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_unequal_modulation_pattern_index(self, channel_string, value): r"""Sets the unequal modulation pattern index when Unequal Modulation Enabled attribute is set to True. This attribute is applicable only when Standard attribute is set to 80211BN MIMOOFDM. The allowed modulation orders for unequal modulation are QPSK, 16-QAM, 64-QAM, 256-QAM, 1024-QAM and 4096-QAM. Modulation order of the first spatial stream is determined by the MCS Index property value. Pattern Index value determines the modulation order of remaining spatial streams with respect to the first spatial stream, as defined in the Table 38-29 of IEEE P802.11bn/D1.2. You must use the following `active channel <https://www.ni.com/docs/en-US/bundle/rfmx-waveform-creator/page/configuring-active-channels-labview2.html>`_ string formats to configure this attribute. +--------------------------+------------------------------------------------------------------------------+ | Standard Attribute Value | Active Channel String Format | +==========================+==============================================================================+ | 80211BN MIMOOFDM | "userx", if you set the PPDU Type attribute to NIWLANG_VAL_PPDU_TYPE_MU_PPDU | +--------------------------+------------------------------------------------------------------------------+ The default value is 0. The valid values are 0 to 3, inclusive. Args: selector_string (string): Pass an empty string. value (int): Specifies the unequal modulation pattern index when Unequal Modulation Enabled attribute is set to True. This attribute is applicable only when Standard attribute is set to 80211BN MIMOOFDM. The allowed modulation orders for unequal modulation are QPSK, 16-QAM, 64-QAM, 256-QAM, 1024-QAM and 4096-QAM. Modulation order of the first spatial stream is determined by the MCS Index property value. Pattern Index value determines the modulation order of remaining spatial streams with respect to the first spatial stream, as defined in the Table 38-29 of IEEE P802.11bn/D1.2. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.UNEQUAL_MODULATION_PATTERN_INDEX.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_interference_mitigation_pilots_enabled(self, channel_string): r"""Gets whether Interference Mitigation (IM) Pilots are added in the data field of the PPDU for the generated 802.11bn signal or not. The default value is NIWLANG_VAL_INTERFERENCE_MITIGATION_PILOTS_ENABLED_FALSE. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.InterferenceMitigationPilotsEnabled): Specifies whether Interference Mitigation (IM) Pilots are added in the data field of the PPDU for the generated 802.11bn signal or not. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.INTERFERENCE_MITIGATION_PILOTS_ENABLED.value ) attr_val = enums.InterferenceMitigationPilotsEnabled(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_interference_mitigation_pilots_enabled(self, channel_string, value): r"""Sets whether Interference Mitigation (IM) Pilots are added in the data field of the PPDU for the generated 802.11bn signal or not. The default value is NIWLANG_VAL_INTERFERENCE_MITIGATION_PILOTS_ENABLED_FALSE. Args: selector_string (string): Pass an empty string. value (enums.InterferenceMitigationPilotsEnabled, int): Specifies whether Interference Mitigation (IM) Pilots are added in the data field of the PPDU for the generated 802.11bn signal or not. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = ( value.value if type(value) is enums.InterferenceMitigationPilotsEnabled else value ) error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.INTERFERENCE_MITIGATION_PILOTS_ENABLED.value, value, ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_waveform_file_version(self, channel_string): r"""Gets the waveform file version to be saved. The default value is NIWLANG_VAL_WAVEFORM_FILE_VERSION_1_0. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.WaveformFileVersion): Specifies the waveform file version to be saved. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.WAVEFORM_FILE_VERSION.value ) attr_val = enums.WaveformFileVersion(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_waveform_file_version(self, channel_string, value): r"""Sets the waveform file version to be saved. The default value is NIWLANG_VAL_WAVEFORM_FILE_VERSION_1_0. Args: selector_string (string): Pass an empty string. value (enums.WaveformFileVersion, int): Specifies the waveform file version to be saved. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.WaveformFileVersion else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.WAVEFORM_FILE_VERSION.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_run_time_scaling(self, channel_string): r"""Gets the Runtime Scaling value in dB to store in the file along with the waveform. The default value is -1.5 dB. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (float): Specifies the Runtime Scaling value in dB to store in the file along with the waveform. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.RUN_TIME_SCALING.value ) finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_run_time_scaling(self, channel_string, value): r"""Sets the Runtime Scaling value in dB to store in the file along with the waveform. The default value is -1.5 dB. Args: selector_string (string): Pass an empty string. value (float): Specifies the Runtime Scaling value in dB to store in the file along with the waveform. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_scalar_attribute_f64( # type: ignore channel_string, attributes.AttributeID.RUN_TIME_SCALING.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_he_sig_b_compression_mode(self, channel_string): r"""Gets how HE-SIG-B Compression value is set for 802.11ax signals. If attribute is set to NIWLANG_VAL_HE_SIG_B_COMPRESSION_MODE_MANUAL, HE-SIG-B Compression will be set as per the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute value. The default value is NIWLANG_VAL_HE_SIG_B_COMPRESSION_MODE_AUTO. Args: selector_string (string): Pass an empty string. Returns: Tuple (attr_val, error_code): attr_val (enums.HESigBCompressionMode): Specifies how HE-SIG-B Compression value is set for 802.11ax signals. If attribute is set to NIWLANG_VAL_HE_SIG_B_COMPRESSION_MODE_MANUAL, HE-SIG-B Compression will be set as per the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute value. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() attr_val, error_code = self._interpreter.get_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.HE_SIG_B_COMPRESSION_MODE.value ) attr_val = enums.HESigBCompressionMode(attr_val) except (KeyError, ValueError): raise errors.DriverTooNewError() # type: ignore finally: self._session_function_lock.exit_read_lock() return attr_val, error_code
[docs] @_raise_if_disposed def set_he_sig_b_compression_mode(self, channel_string, value): r"""Sets how HE-SIG-B Compression value is set for 802.11ax signals. If attribute is set to NIWLANG_VAL_HE_SIG_B_COMPRESSION_MODE_MANUAL, HE-SIG-B Compression will be set as per the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute value. The default value is NIWLANG_VAL_HE_SIG_B_COMPRESSION_MODE_AUTO. Args: selector_string (string): Pass an empty string. value (enums.HESigBCompressionMode, int): Specifies how HE-SIG-B Compression value is set for 802.11ax signals. If attribute is set to NIWLANG_VAL_HE_SIG_B_COMPRESSION_MODE_MANUAL, HE-SIG-B Compression will be set as per the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIG_COMPRESSION_ENABLED` attribute value. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() value = value.value if type(value) is enums.HESigBCompressionMode else value error_code = self._interpreter.set_scalar_attribute_i32( # type: ignore channel_string, attributes.AttributeID.HE_SIG_B_COMPRESSION_MODE.value, value ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def channel_number_to_carrier_frequency( self, frequency_band, channel_bandwidth, channel_number, secondary_factor, channel_starting_factor, ): r"""Calculates the carrier frequency according to the numbering scheme by converting a set of input parameters, including the channel number, for IEEE 802.11a/b/g/j/n/p, IEEE 802.11ac, IEEE 802.11ah, IEEE 802.11af, and IEEE P802.11ax/D8.0 standards. Args: frequency_band (int): Specifies whether to use the 2.4 GHz or the 5 GHz band. The default value is NIWLANG_VAL_FREQUENCY_BAND_2p4GHZ . +----------------------------------------+----------------------------------------+ | Value | Description | +========================================+========================================+ | NIWLANG_VAL_FREQUENCY_BAND_2p4GHZ (0) | Specifies a frequency band of 2.4 GHz. | +----------------------------------------+----------------------------------------+ | NIWLANG_VAL_FREQUENCY_BAND_5GHZ (1) | Specifies a frequency band of 5 GHz. | +----------------------------------------+----------------------------------------+ channel_bandwidth (float): Specifies the channel bandwidth Valid values are 5 MHz, 10 MHz, 20 MHz, and 40 MHz. This value is expressed in Hz. channel_number (int): Specifies the offset of the center frequency above the starting frequency of the channel. When you set the **channel_bandwidth** parameter to 40 MHz, the **channel_number** parameter is the primary channel number and the corresponding channel center frequency is the primary channel center frequency. This value is expressed in increments of 5 MHz. secondary_factor (int): Specifies whether the secondary channel is above or below the primary channel when you set the **channel_bandwidth** parameter to 40 MHz. The WLAN Generation creates a 40 MHz channel by combining the primary channel and the secondary channel, where the channels have a bandwidth of 20 MHz.The secondary channel number is given by the following formula: secondary channel number = primary channel number + (4 \*secondary factor) The secondary channel center frequency is given by the following formula: secondary channel center frequency (Hz) = channel starting frequency (Hz) + (secondary channel number \* 5 MHz) Valid values are -1 and +1. channel_starting_factor (float): Specifies the value used to define the baseline frequency. The channel start frequency is given by the following formula: channel starting frequency (Hz) = (channel starting factor \* 500 kHz) Returns: Tuple (carrier_frequency, error_code): carrier_frequency (float): Returns the carrier frequency. This value is expressed in Hz. This function calculates the carrier frequency using the following equation: Carrier frequency (Hz) = channel starting frequency (Hz) + (channel number \* 5 MHz). error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() carrier_frequency, error_code = self._interpreter.channel_number_to_carrier_frequency( # type: ignore frequency_band, channel_bandwidth, channel_number, secondary_factor, channel_starting_factor, ) finally: self._session_function_lock.exit_read_lock() return carrier_frequency, error_code
[docs] @_raise_if_disposed def channel_number_to_carrier_frequency_802_11_abgjpn( self, channel_starting_frequency, channel_bandwidth, channel_number, secondary_factor ): r"""Calculates the carrier frequency of 802.11a/b/g/j/p/n channels according to sections 16.4.6, 17.4.6, 18.3.8.4, and 20.3.15 of IEEE Standard 802.11-2012. Args: channel_starting_frequency (float): Specifies the starting frequency of the frequency band. This value is expressed in Hz. channel_bandwidth (float): Specifies the channel bandwidth You can choose a 5 MHz, 10 MHz, 20 MHz, or 40 MHz channel. This value is expressed in Hz. channel_number (int): Specifies the offset of the center frequency, in increments of 5 MHz, above the starting frequency of the channel. secondary_factor (int): Specifies whether the secondary channel is above or below the primary channel when you set the **channel_bandwidth** parameter to 40 MHz. The WLAN Generation creates a 40 MHz channel by combining the primary channel and the secondary channel, each with a 20 MHz bandwidth. The value of -1 indicates that the secondary channel is below the primary channel whereas the value of +1 indicates that the secondary channel is above the primary channel. Valid values are -1 and +1. Returns: Tuple (carrier_frequency, error_code): carrier_frequency (float): Returns the carrier frequency. This value is expressed in Hz. The function calculates the carrier frequency using the following equation: Carrier frequency (Hz) = channel starting frequency (Hz) + (channel number \* 5 MHz) When you set the **channel_bandwidth** parameter to 40 MHz, the **channel_number** parameter is the primary channel number. The function calculates the carrier frequency using the following equation: carrier frequency (Hz) = channel starting frequency (Hz) + (channel number \* 5 MHz)+ (Secondary factor \* 20 MHz) error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() carrier_frequency, error_code = self._interpreter.channel_number_to_carrier_frequency_802_11_abgjpn( # type: ignore channel_starting_frequency, channel_bandwidth, channel_number, secondary_factor ) finally: self._session_function_lock.exit_read_lock() return carrier_frequency, error_code
[docs] @_raise_if_disposed def channel_number_to_carrier_frequency_802_11_ac( self, channel_starting_frequency, channel_number ): r"""Calculates carrier frequency of 802.11ac channels according to section 22.3.14 of IEEE Standard 802.11ac-2013. Args: channel_starting_frequency (float): Specifies the start frequency of the frequency band. This value is expressed in Hz. channel_number (int): Specifies the offset of the center frequency above the starting frequency of the channel. This value is expressed in increments of 5 MHz. Returns: Tuple (carrier_frequency, error_code): carrier_frequency (float): Returns the carrier frequency. This value is expressed in Hz. The function calculates the carrier frequency using the following equation: Carrier frequency (Hz) = channel starting frequency (Hz) + (channel number \* 5 MHz) error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() carrier_frequency, error_code = self._interpreter.channel_number_to_carrier_frequency_802_11_ac( # type: ignore channel_starting_frequency, channel_number ) finally: self._session_function_lock.exit_read_lock() return carrier_frequency, error_code
[docs] @_raise_if_disposed def channel_number_to_carrier_frequency_802_11_af( self, channel_starting_frequency, channel_bandwidth, channel_number, tvht_mode ): r"""Calculates the carrier frequency of 802.11af channels, as defined in section 23.3.14 of IEEE Standard 802.11af-2013. Args: channel_starting_frequency (float): Specifies the start frequency of the frequency band. The default value is 45 MHz. The channel start frequency is given by the following formula: Channel Starting Frequency (Hz) = Channel Starting Factor \* 500 kHz This value is expressed in Hz. channel_bandwidth (float): Specifies the channel bandwidth used for transmitting the signal. The default value is 6 MHz. This value is expressed in Hz. channel_number (int): Specifies the offset of the center frequency, in increments of the channel bandwidth used for transmitting the signal. This value is expressed in Hz. The default value is 1 MHz. tvht_mode (enums.TvhtMode, int): Specifies the mode of the 802.11af signal transmission. The default value is NIWLANG_VAL_TVHT_MODE_4 . +------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Value | Description | +==============================+====================================================================================================================+ | NIWLANG_VAL_TVHT_MODE_1 (0) | Specifies the TVHT mode representing a single Basic Channel Unit (BCU). | +------------------------------+--------------------------------------------------------------------------------------------------------------------+ | NIWLANG_VAL_TVHT_MODE_2C (1) | Specifies the TVHT mode representing two contiguous BCUs. | +------------------------------+--------------------------------------------------------------------------------------------------------------------+ | NIWLANG_VAL_TVHT_MODE_2N (2) | Specifies the TVHT mode representing two noncontiguous BCUs. | +------------------------------+--------------------------------------------------------------------------------------------------------------------+ | NIWLANG_VAL_TVHT_MODE_4C (3) | Specifies the TVHT mode representing four contiguous BCUs. | +------------------------------+--------------------------------------------------------------------------------------------------------------------+ | NIWLANG_VAL_TVHT_MODE_4N (4) | Specifies the TVHT mode representing two noncontiguous frequency segments, each of which are composed of two BCUs. | +------------------------------+--------------------------------------------------------------------------------------------------------------------+ Returns: Tuple (carrier_frequency, error_code): carrier_frequency (float): Returns the carrier frequency. This value is expressed in Hz. The function calculates the carrier frequency using the following equation: carrier frequency (Hz) = channel starting frequency (Hz) + (TVHT_W \* channel number ) + channel center frequency correction (Hz) where channel center frequency correction (Hz) is used to adjust the carrier frequency in the different TVHT modes. It is 0 for NIWLANG_VAL_TVHT_MODE_1 and NIWLANG_VAL_TVHT_MODE_2N , 0.5 \* TVHT_W for NIWLANG_VAL_TVHT_MODE_2C and NIWLANG_VAL_TVHT_MODE_4N and 1.5 \* TVHT_W for NIWLANG_VAL_TVHT_MODE_4C . error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() tvht_mode = tvht_mode.value if type(tvht_mode) is enums.TvhtMode else tvht_mode carrier_frequency, error_code = self._interpreter.channel_number_to_carrier_frequency_802_11_af( # type: ignore channel_starting_frequency, channel_bandwidth, channel_number, tvht_mode ) finally: self._session_function_lock.exit_read_lock() return carrier_frequency, error_code
[docs] @_raise_if_disposed def channel_number_to_carrier_frequency_802_11_ah( self, channel_starting_frequency, channel_number ): r"""Calculates the carrier frequency of 802.11ah channels according to section 22.3.13 of IEEE P802.11ah/D1.3. Args: channel_starting_frequency (float): Specifies the start frequency of the frequency band. This value is expressed in Hz. channel_number (int): Specifies the offset of the center frequency above the starting frequency of the channel. This value is expressed in increments of 5 MHz. Returns: Tuple (carrier_frequency, error_code): carrier_frequency (float): Returns the carrier frequency. This value is expressed in Hz. The function calculates the carrier frequency using the following formula: carrier frequency (Hz) = channel starting frequency (Hz) + (channel number \* 0.5 MHz) error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() carrier_frequency, error_code = self._interpreter.channel_number_to_carrier_frequency_802_11_ah( # type: ignore channel_starting_frequency, channel_number ) finally: self._session_function_lock.exit_read_lock() return carrier_frequency, error_code
[docs] @_raise_if_disposed def channel_number_to_carrier_frequency_802_11_ax( self, channel_starting_frequency, channel_number ): r"""Calculates the carrier frequency of the 802.11ax channels. Args: channel_starting_frequency (float): Specifies the start frequency of the frequency band. This value is expressed in Hz. channel_number (int): Specifies the offset of the center frequency, in increments of 5 MHz, above the start frequency of the channel. The default value is 1. Returns: Tuple (carrier_frequency, error_code): carrier_frequency (float): Returns the carrier frequency. This value is expressed in Hz. The function calculates the carrier frequency using the following formula: carrier frequency (Hz) = channel starting frequency (Hz) + (channel number \* 5 MHz) error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() carrier_frequency, error_code = self._interpreter.channel_number_to_carrier_frequency_802_11_ax( # type: ignore channel_starting_frequency, channel_number ) finally: self._session_function_lock.exit_read_lock() return carrier_frequency, error_code
[docs] @_raise_if_disposed def load_configuration_from_file(self, file_path, reset_session): r"""Loads the attributes of a session saved in a file. Args: file_path (string): Specifies the complete path to the file from which the WLAN Generation loads the configuration. reset_session (int): Specifies whether to reset all the attributes of the session before loading the settings from a file. The default value is NIWLANG_VAL_TRUE. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.load_configuration_from_file( # type: ignore file_path, reset_session ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def create_and_write_waveforms_to_file(self, file_path, file_operation): r"""Creates waveforms according to the properties configured in an niWLAN generation session and saves the waveforms to a file. In addition to creating the waveform, this function also saves the :py:attr:`~nirfmxwlangen.attributes.AttributeID.HEADROOM` and :py:attr:`~nirfmxwlangen.attributes.AttributeID.IQ_RATE` attributes for each waveform. The function reads the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RF_BLANKING_MARKER_POSITIONS` attribute and saves the value to the file. The :py:attr:`~nirfmxwlangen.attributes.AttributeID.RF_BLANKING_MARKER_POSITIONS` attribute stored in the file is applicable to all waveforms stored in the file. Additionally, this function saves the :py:attr:`~nirfmxwlangen.attributes.AttributeID.SIGNAL_BANDWIDTH` attribute for each waveform, which is computed as: Signal Bandwidth = 2\* {(Channel Bandwidth/2) + |Max Carrier Frequency Offset|} Args: file_path (string): Specifies the absolute path to the TDMS file to which the WLAN Generation writes the waveforms. file_operation (enums.FileOperationMode, int): Specifies the operation to perform on the file. The default value is NIWLANG_VAL_FILE_OPERATION_MODE_CREATE_OR_REPLACE . +-------------------------------------------------------+--------------------------------------------------------------------------+ | Value | Description | +=======================================================+==========================================================================+ | NIWLANG_VAL_FILE_OPERATION_MODE_OPEN (0) | Opens an existing file to write the niWLANG settings. | +-------------------------------------------------------+--------------------------------------------------------------------------+ | NIWLANG_VAL_FILE_OPERATION_MODE_OPEN_OR_CREATE (1) | Opens an existing file or creates a new file if the file does not exist. | +-------------------------------------------------------+--------------------------------------------------------------------------+ | NIWLANG_VAL_FILE_OPERATION_MODE_CREATE_OR_REPLACE (2) | Creates a new file or replaces a file if it exists. | +-------------------------------------------------------+--------------------------------------------------------------------------+ | NIWLANG_VAL_FILE_OPERATION_MODE_CREATE (3) | Creates a new file. | +-------------------------------------------------------+--------------------------------------------------------------------------+ Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() file_operation = ( file_operation.value if type(file_operation) is enums.FileOperationMode else file_operation ) error_code = self._interpreter.create_and_write_waveforms_to_file( # type: ignore file_path, file_operation ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def reset_session(self): r"""Resets all the attributes of the session to their default values. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.reset_session() # type: ignore finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def save_configuration_to_file(self, file_path, file_operation): r"""Saves all attributes of the session to a file located at a specified path. Use this file to save the current state of the WLAN Generation. Args: file_path (string): Specifies the complete path to the TDMS file to which the WLAN Generation saves the configuration. file_operation (enums.FileOperationMode, int): Specifies the operation to perform on the file. The default value is NIWLANG_VAL_FILE_OPERATION_MODE_CREATE_OR_REPLACE . +-------------------------------------------------------+--------------------------------------------------------------------------+ | Value | Description | +=======================================================+==========================================================================+ | NIWLANG_VAL_FILE_OPERATION_MODE_OPEN (0) | Opens an existing file to write the niWLANG settings. | +-------------------------------------------------------+--------------------------------------------------------------------------+ | NIWLANG_VAL_FILE_OPERATION_MODE_OPEN_OR_CREATE (1) | Opens an existing file or creates a new file if the file does not exist. | +-------------------------------------------------------+--------------------------------------------------------------------------+ | NIWLANG_VAL_FILE_OPERATION_MODE_CREATE_OR_REPLACE (2) | Creates a new file or replaces an existing file. | +-------------------------------------------------------+--------------------------------------------------------------------------+ | NIWLANG_VAL_FILE_OPERATION_MODE_CREATE (3) | Creates a new file. | +-------------------------------------------------------+--------------------------------------------------------------------------+ Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() file_operation = ( file_operation.value if type(file_operation) is enums.FileOperationMode else file_operation ) error_code = self._interpreter.save_configuration_to_file( # type: ignore file_path, file_operation ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_store_burst_stop_locations(self, rfsg_session, waveform_name, burst_stop_locations): r"""Stores the burst stop locations that you specify in the burst stop locations parameter in the RFSG database. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. waveform_name (string): Specifies the name of the waveform for which you want to store the burst stop locations. burst_stop_locations (int): specifies the burst stop locations to store. It is an array of sample positions of the end of the burst, within the waveform. The default value is "" (empty array). Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) error_code = self._interpreter.rfsg_store_burst_stop_locations( # type: ignore rfsg_session_handle, waveform_name, burst_stop_locations ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_create_and_download_waveform(self, rfsg_session, channel_string, waveform_name): r"""Creates a single channel waveform, writes it into the RFSG memory, and stores the I/Q rate, the burst start locations, the burst stop locations, the waveform size, and the actual headroom of the waveform in the RFSG database. Use this instance if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute is set to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. Inside the niWLANG_CreateAndDownloadWaveform function, all the following operations that involve NI-RFSG are performed on the device. The niWLANG_CreateAndDownloadWaveform function completes the following operations: 1. Sets the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAXIMUM_HARDWARE_IQ_RATE` attribute according to the device model. You must set the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAXIMUM_HARDWARE_IQ_RATE` attribute to 2500 MS/s if you are using the PXIe-5842, 1250 MS/s if you are using the PXIe-5840/5841/5841 with PXIe-5655/5830/5831/5860, 250 MS/s if you are using the PXIe-5646, 120 Ms/s if you are using the PXIe-5644/5645, and 200 MS/s if you are using the PXIe-5673/5673E. 2. Reads the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IQ_RATE` attribute, and sets the NIRFSG_ATTR_IQ_RATE attribute to the value specified in the :py:attr:`~nirfmxwlangen.attributes.AttributeID.IQ_RATE` attribute. The value is stored in the RFSG database for the waveform and device. 3. If the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RF_BLANKING_ENABLED` attribute is set to NIWLANG_VAL_TRUE and the device model PXIe-5644, PXIe-5645, PXIe-5646, PXIe-5840, PXIe-5841, PXIe-5841 with PXIe-5655, PXIe-5842, or PXIe-5860 is used, sets the NIRFSG_RF_BLANKING_SOURCE attribute to NIRFSG_VAL_MARKER0, if it is not set already. 4. Reads and stores the SIGNAL_BANDWIDTH attribute in the RFSG database for PXIe-5820/5830/5831/5841/5841 with 5655/5842/5860. 5. Reads and stores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.BURST_START_LOCATIONS` attribute, :py:attr:`~nirfmxwlangen.attributes.AttributeID.BURST_STOP_LOCATIONS` attribute and the waveform size in the RFSG database. 6. Creates the WLAN waveform and downloads it to device. 7. Stores the :py:attr:`~nirfmxwlangen.attributes.AttributeID.ACTUAL_HEADROOM` attribute to the RFSG database. Args: rfsg_session (object): Identifies the instrument session. The WLAN Generation obtains this parameter from the niRFSG_init function or the niRFSG_InitWithOptions function. channel_string (string): Specifies the RF vector signal generator channel. Set this parameter to "" (empty string) or NULL. waveform_name (string): Specifies the name used to write the waveform to NI-RFSG device memory and store its attributes to RFSG database. This string is case-insensitive, alphanumeric, and does not use reserved words. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) error_code = self._interpreter.rfsg_create_and_download_waveform( # type: ignore rfsg_session_handle, channel_string, waveform_name ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_force_tclk_synchronization(self, rfsg_sessions, force_sync): r"""Specifies that the TClk synchronization has to be performed as the previous TClk synchronization is invalid due to niRFSG Reset function. This setting will be used by niWLANG RFSG Synchronize TClk function for TClk synchronization. Args: rfsg_sessions (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. force_sync (bool): Specifes that a fresh TClk synchronization has to be performed for TClk synchronized generation. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_sessions_handle = _helper.get_session_handle(rfsg_sessions) error_code = self._interpreter.rfsg_force_tclk_synchronization( # type: ignore rfsg_sessions_handle, int(force_sync) ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_multiple_device_initiate(self, rfsg_sessions): r"""Commits settings to hardware, waits for hardware settling, and starts multi-device synchronized generation. If you use PXIe-5644, PXIe-5645, or PXIe-5646, this function performs the following steps: - Commits the device settings to the master device by calling the niRFSG Commit function. - Initializes generation first for slave devices and then for the master device by calling the niRFSG Initiate function in a loop. If you use PXIe-5673/5673E, PXIe-5840, PXIe-5841, PXIe-5820, PXIe-5830, PXIe-5831, PXIe-5842, or PXIe-5860, this function performs the following steps: - If number of devices required is more than 1, this function uses the niWLANG RFSG Configure TClk For Homogeneous Triggers function, niWLANG RFSG Synchronize TClk function, and the niTClk Initiate function for synchronized generation. Refer to the NI-TClk Synchronization section of NI RF Vector Signal Generators help for more information about the niTClk functions. - Otherwise, this function calls the niRFSG Initiate function for the first device. Args: rfsg_sessions (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_sessions_handle = _helper.get_session_handle(rfsg_sessions) error_code = self._interpreter.rfsg_multiple_device_initiate( # type: ignore rfsg_sessions_handle ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_configure_frequency_multiple_lo( self, rfsg_sessions, lo_source, external_lo_handles, carrier_frequency, rfsg_lo_daisy_chain_enabled, lo_export_to_external_devices_enabled, ): r"""Configures the frequency on NI RF vector signal generators and NI RF synthesizers. NI RF synthesizers are used as external LO devices. This function also configures LO frequency offset based on the :py:attr:`~nirfmxwlangen.attributes.AttributeID.LO_FREQUENCY_OFFSET_MODE` and :py:attr:`~nirfmxwlangen.attributes.AttributeID.LO_FREQUENCY_OFFSET` attributes. This function equally divides the NI RF vector signal generators and NI RF synthesizers into sets such that each set corresponds to one carrier frequency. The number of sets is equal to the size of the carrier frequencies array. In each set, the first NI RF vector signal generator is used as the master device for LO daisy chaining. It also configures the Signal Bandwidth and IQ Rate attributes on NI RF vector signal generators and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_FREQUENCY` attribute. You must ensure that after a frequency configuration change, the output of the external LO device settles before generating the WLAN signal. You must use one of the following programming flows: - Before calling the :py:meth:`rfsg_configure_frequency_multiple_lo` function, if the external LO device is in generation state, ensure that it is brought in configuration state, by stopping signal generation. Initiate signal generation on the external LO device after calling the :py:meth:`rfsg_configure_frequency_multiple_lo` function. - You may choose to do on-the-fly frequency change on the external LO device while the device is in generation state. You must allow it's output to settle by calling the niRFSG_WaitUntilSettled function after the :py:meth:`rfsg_configure_frequency_multiple_lo` function. Args: rfsg_sessions (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. lo_source (enums.LOSource, int): Specifies whether to use the internal or the external LO source. This value is applicable only for the first RFSG device within a set if the **rfsg_lo_daisy_chain_enabled** parameter is set to TRUE. The default value is NIWLANG_VAL_LO_SOURCE_ONBOARD. +---------------------------------------+----------------------------------------------------+ | Value | Description | +=======================================+====================================================+ | NIWLANG_VAL_LO_SOURCE_ONBOARD (0) | Uses an internal LO as the LO source. | +---------------------------------------+----------------------------------------------------+ | NIWLANG_VAL_LO_SOURCE_EXTERNAL (1) | Uses an external LO as the LO source. | +---------------------------------------+----------------------------------------------------+ | NIWLANG_VAL_LO_SOURCE_SGSA_SHARED (2) | Shares the internal RFSG LO between RFSG and RFSA. | +---------------------------------------+----------------------------------------------------+ external_lo_handles (object): Identifies the instrument sessions of external LO devices. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions. carrier_frequency (float): Specifies an array of the carrier frequencies used to generate signals. This value is expressed in Hz. rfsg_lo_daisy_chain_enabled (bool): Specifies whether to export the LO signal from one RFSG device to the next. The default value is FALSE. lo_export_to_external_devices_enabled (bool): Specifies whether to export the LO signal from each RFSG device on its LO OUT terminal, which you can use to share the LO signal with an external device. An example of an external device would be an RFSA device. The default value is FALSE. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_sessions_handle = _helper.get_session_handle(rfsg_sessions) lo_source = lo_source.value if type(lo_source) is enums.LOSource else lo_source external_lo_handles_handle = _helper.get_session_handle(external_lo_handles) error_code = self._interpreter.rfsg_configure_frequency_multiple_lo( # type: ignore rfsg_sessions_handle, lo_source, external_lo_handles_handle, carrier_frequency, int(rfsg_lo_daisy_chain_enabled), int(lo_export_to_external_devices_enabled), ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_configure_multiple_device_synchronization( self, rfsg_sessions, master_reference_clock_source, trigger_lines ): r"""Configures multiple NI RF vector signal generators for sharing the local oscillator (LO), configures Reference Clock settings, and synchronizes multiple devices. For PXIe-5673/5673E/5840/5841/5830/5831 RF vector signal generators, this function configures LO sharing and clock settings in daisy-chained manner. For PXIe-5644, PXIe-5645, and PXIe-5646 RF vector signal transceiver (VST) devices, this function configures daisy-chained LO sharing and low-level properties for multiple device synchronization. These VSTs do not support daisy-chained Reference Clocks for synchronization. You must set the **MasterReferenceClockSource** to PXI_CLK for these devices. For PXIe-5840/5841/5830/5831 RF VST devices, this VI configures daisy-chained LO sharing and Reference Clocks for synchronization, and for PXIe-5820 baseband I/Q VST devices, this VI configures daisy-chained Reference Clocks for synchronization. For additional information, refer to Synchronization Using NI-RFSA and NI-RFSG topic in the NI RF Signal Generators Help. For PXIe-5842/5860 RF VST devices, this VI configures Reference Clock settings for synchronization and applies NI-TClk trigger configuration for multi-chassis setups. PXIe-5860 does not support LO sharing, and synchronization is achieved through a common reference clock and NI-TClk. This function assumes that the devices are interconnected in the order of elements in the instrument handles array. In time synchronization, the first device is assumed to be the master device, and the remaining devices are assumed to be slave devices. The devices are divided into two sets when the number of segments are two. In LO sharing, the first device in the each set is assumed to be the master device, and the remaining devices in the set are assumed to be slave devices. To interconnect multiple devices, refer to the following topics in the NI RF Signal Generators Help: - Interconnecting Multiple PXIe-5673E Modules - Interconnecting Multiple PXIe-5673 Modules - Interconnecting Multiple PXIe-5644 RF Channels (Homogeneous Channel Types) - Interconnecting Multiple PXIe-5645 RF Channels (Homogeneous Channel Types) - Interconnecting Multiple PXIe-5646 RF Channels (Homogeneous Channel Types) - Interconnecting Multiple PXIe-5840 RF Channels (Homogeneous Channel Types) - Interconnecting Multiple PXIe-5841 RF Channels (Homogeneous Channel Types) If you use the PXIe-5644, PXIe-5645, or PXIe-5646 RF vector signal transceiver (VST) devices, the function completes the following actions: - Sets the NIRFSG_ATTR_REF_CLOCK_SOURCE attribute to the value you specify in **master_reference_clock_source** parameter. - If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.LO_SHARING_ENABLED` attribute to NIWLANG_VAL_TRUE, the function completes the following actions: - For the master device, the function exports the LO by setting the NIRFSG_ATTR_LO_EXPORT_ENABLED attribute to %replace_me{true}. The function also reads the NIRFSG_ATTR_UPCONVERTER_CENTER_FREQUENCY attribute so that the value can be set on slave devices. - For the slave devices, the function sets the NIRFSG_ATTR_LO_SOURCE attribute to NIRFSG_VAL_LO_IN_STR and the NIRFSG_ATTR_UPCONVERTER_CENTER_FREQUENCY attribute to the value read from the master device. With the exception of the last slave device, the function also exports the LO to the next device in the daisy chain by setting the NIRFSG_ATTR_LO_EXPORT_ENABLED attribute to %replace_me{true}. <!-- --> - The function configures the trigger synchronization for the master and slave devices. <!-- --> - For the master device, the function completes the following actions: - Sets the NIRFSG_ATTR_SYNC_START_TRIGGER_MASTER attribute and the NIRFSG_ATTR_SYNC_REF_TRIGGER_MASTER attribute to %replace_me{true}. For the PXIe-5646, it sets NIRFSG_ATTR_SYNC_SAMPLE_CLOCK_MASTER attribute to %replace_me{true}. - Sets the NIRFSG_ATTR_SYNC_START_TRIGGER_DIST_LINE attribute and the NIRFSG_ATTR_SYNC_REF_TRIGGER_DIST_LINE attribute to the first and second element of the **trigger_lines** array, respectively. For the PXIe-5646, it sets the NIRFSG_ATTR_SYNC_SAMPLE_CLOCK_DIST_LINE attribute to the third element of the **trigger_lines** array. - Calls the niRFSG_Commit function to commit the synchronization settings to the device. - For the slave devices, the function completes the following actions: - Sets the NIRFSG_ATTR_SYNC_START_TRIGGER_MASTER attribute and NIRFSG_ATTR_SYNC_REF_TRIGGER_MASTER attribute to %replace_me{false}. For the PXIe-5646, it sets NIRFSG_ATTR_SYNC_SAMPLE_CLOCK_MASTER attribute to %replace_me{false}. - Sets the NIRFSG_ATTR_SYNC_START_TRIGGER_DIST_LINE attribute and the NIRFSG_ATTR_SYNC_REF_TRIGGER_DIST_LINE attribute to the first and second element of the **trigger_lines** array, respectively. For the PXIe-5646, it sets the NIRFSG_ATTR_SYNC_START_TRIGGER_DIST_LINE attribute to the third element of the **trigger_lines** array. - Sets the NIRFSG_ATTR_REF_TRIGGER_TYPE attribute to NIRFSG_VAL_DIGITAL_EDGE, the NIRFSG_ATTR_DIGITAL_EDGE_REF_TRIGGER_SOURCE attribute to NIRFSG_VAL_SYNC_REF_TRIGGER_STR, and the NIRFSG_ATTR_DIGITAL_EDGE_START_TRIGGER_SOURCE attribute to NIRFSG_VAL_SYNC_START_TRIGGER_STR. If you use the PXIe-5673/5673E RF vector signal analyzers, the function completes the following actions: - Configures the devices for daisy-chained Reference Clock synchronization. - For the master device, the function sets the NIRFSG_ATTR_REF_CLOCK_SOURCE attribute to the value you specify in **master_reference_clock_source** and the NIRFSG_ATTR_EXPORTED_REF_CLOCK_OUTPUT_TERMINAL attribute to NIRFSG_VAL_CLK_OUT_STR. - For the slave devices, the function sets the NIRFSG_ATTR_REF_CLOCK_SOURCE attribute to NIRFSG_VAL_CLK_IN_STR and the NIRFSG_ATTR_EXPORTED_REF_CLOCK_OUTPUT_TERMINAL attribute to NIRFSG_VAL_CLK_OUT_STR. The function also sets the NIRFSG_ATTR_REF_CLOCK_RATE attribute according to the device model. - If :py:attr:`~nirfmxwlangen.attributes.AttributeID.LO_SHARING_ENABLED` attribute is set to NIWLANG_VAL_TRUE, the function completes the following actions: - For the master device, it exports the LO by setting the NIRFSG_ATTR_LO_EXPORT_ENABLED attribute to %replace_me{true}. The function also reads the NIRFSG_ATTR_LO_FREQUENCY attribute so that the value can be set on slave devices. - For the slave devices, the function sets the NIRFSG_ATTR_LO_SOURCE attribute to NIRFSG_VAL_LO_IN_STR, the NIRFSG_ATTR_LO_FREQUENCY attribute to the value read from the master and exports the LO to the next device in the daisy chain by setting the NIRFSG_ATTR_LO_EXPORT_ENABLED attribute to %replace_me{true}. If you use PXIe-5840, PXIe-5841, PXIe-5830 or PXIe-5831 RF vector signal generators, the function completes the following actions: - For reference clock synchronization: - The function configures all the devices to use PXI_CLK as reference clock if you set the **MasterReferenceClockSource** parameter to NIRFSA_VAL_PXI_CLK_STR. - The function configures the devices for daisy-chained reference clock synchronization, if you set the **MasterReferenceClockSource** parameter to a value other than NIRFSA_VAL_PXI_CLK_STR. - For the master device, the function sets the NIRFSG_ATTR_REF_CLOCK_SOURCE attribute to the value you specify in the **MasterReferenceClockSource** parameter and sets the NIRFSG_ATTR_EXPORTED_REF_CLOCK_OUTPUT_TERMINAL attribute to NIRFSG_VAL_REF_OUT_STR. - For the slave devices, the function sets the NIRFSG_ATTR_REF_CLOCK_SOURCE attribute to NIRFSG_VAL_REF_IN_STR. Except for the last slave device, this function also sets the NIRFSG_ATTR_EXPORTED_REF_CLOCK_OUTPUT_TERMINAL attribute to NIRFSG_VAL_REF_OUT_STR. - If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.LO_SHARING_ENABLED` attribute to NIWLANG_VAL_LO_SHARING_ENABLED_TRUE, the function completes the following actions: - For the master device, the function exports the LO by setting the NIRFSG_ATTR_LO_OUT_ENABLED attribute to %replace_me{true}. The function also reads the NIRFSG_ATTR_UPCONVERTER_CENTER_FREQUENCY attribute so that the value can be set on slave devices. - For the slave devices, the function sets the NIRFSG_ATTR_LO_SOURCE attribute to NIRFSG_VAL_LO_IN_STR and the NIRFSG_ATTR_UPCONVERTER_CENTER_FREQUENCY attribute to the value read from the master device. Except for the last slave device, this function also exports the LO to the next device in the daisy chain by setting the NIRFSG_ATTR_LO_OUT_ENABLED attribute to %replace_me{true}. If you use PXIe-5842, or PXIe-5860 RF vector signal generators, the function completes the following actions: - For reference clock synchronization: - The function configures all the devices to use PXI_CLK as reference clock if you set the **MasterReferenceClockSource** parameter to NIRFSA_VAL_PXI_CLK_STR. - The function configures the devices for daisy-chained reference clock synchronization, if you set the **MasterReferenceClockSource** parameter to a value other than NIRFSA_VAL_PXI_CLK_STR. - For the master device, the function sets the NIRFSG_ATTR_REF_CLOCK_SOURCE attribute to the value you specify in the **MasterReferenceClockSource** parameter and sets the NIRFSG_ATTR_EXPORTED_REF_CLOCK_OUTPUT_TERMINAL attribute to NIRFSG_VAL_REF_OUT_STR. - For the slave devices, the function sets the NIRFSG_ATTR_REF_CLOCK_SOURCE attribute to NIRFSG_VAL_REF_IN_STR. Except for the last slave device, this function also sets the NIRFSG_ATTR_EXPORTED_REF_CLOCK_OUTPUT_TERMINAL attribute to NIRFSG_VAL_REF_OUT_STR. - For multi-chassis synchronization: - If you set the Multi-Chassis TClk Synchronization Mode attribute to NIWLANG_VAL_MULTI_CHASSIS_TCLK_SYNCHRONIZATION_MODE_TIMING_MODULE, the function performs Multi-Chassis TClk Synchronization using Timing Module. - If you set the Multi-Chassis TClk Synchronization Mode attribute to NIWLANG_VAL_MULTI_CHASSIS_TCLK_SYNCHRONIZATION_MODE_AUTO, the function performs Multi-Chassis TClk Synchronization automatically. If you use PXIe-5820 baseband I/Q vector signal generators, the function completes the following actions: - For reference clock synchronization: - The function configures all the devices to use PXI_CLK as reference clock if you set the **MasterReferenceClockSource** parameter to NIRFSA_VAL_PXI_CLK_STR. - The function configures the devices for daisy-chained reference clock synchronization, if you set the **MasterReferenceClockSource** parameter to a value other than NIRFSA_VAL_PXI_CLK_STR. - For the master device, the function sets the NIRFSG_ATTR_REF_CLOCK_SOURCE attribute to the value you specify in the **MasterReferenceClockSource** parameter and sets the NIRFSG_ATTR_EXPORTED_REF_CLOCK_OUTPUT_TERMINAL attribute to NIRFSG_VAL_REF_OUT. - For the slave devices, the function sets the NIRFSG_ATTR_REF_CLOCK_SOURCE attribute to NIRFSG_VAL_REF_IN. Except for the last slave device, this function also sets the NIRFSG_ATTR_EXPORTED_REF_CLOCK_OUTPUT_TERMINAL attribute to NIRFSG_VAL_REF_OUT. If you use PXIe-5830 or PXIe-5831 RF vector signal generators, the function completes the following actions: - For reference clock synchronization: - The function configures all the devices to use PXI_CLK as reference clock if you set the **MasterReferenceClockSource** parameter to NIRFSA_VAL_PXI_CLK_STR. - The function configures the devices for daisy-chained reference clock synchronization, if you set the **MasterReferenceClockSource** parameter to a value other than NIRFSA_VAL_PXI_CLK_STR. - For the master device, the function sets the NIRFSG_ATTR_REF_CLOCK_SOURCE attribute to the value you specify in the **MasterReferenceClockSource** parameter and sets the NIRFSG_ATTR_EXPORTED_REF_CLOCK_OUTPUT_TERMINAL attribute to NIRFSG_VAL_REF_OUT_STR. - For the slave devices, the function sets the NIRFSG_ATTR_REF_CLOCK_SOURCE attribute to NIRFSG_VAL_REF_IN_STR. Except for the last slave device, this function also sets the NIRFSG_ATTR_EXPORTED_REF_CLOCK_OUTPUT_TERMINAL attribute to NIRFSG_VAL_REF_OUT_STR. - If you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.LO_SHARING_ENABLED` attribute to NIWLANG_VAL_LO_SHARING_ENABLED_TRUE, the function completes the following actions: - For the master device, the function exports the LO by setting the NIRFSG_ATTR_LO_OUT_ENABLED attribute to %replace_me{true}. The function also reads the NIRFSG_ATTR_UPCONVERTER_CENTER_FREQUENCY attribute so that the value can be set on slave devices. - For the slave devices, the function sets the NIRFSG_ATTR_LO_SOURCE attribute to NIRFSG_VAL_LO_IN_STR and the NIRFSG_ATTR_UPCONVERTER_CENTER_FREQUENCY attribute to the value read from the master device. Except for the last slave device, this function also exports the LO to the next device in the daisy chain by setting the NIRFSG_ATTR_LO_OUT_ENABLED attribute to %replace_me{true}. Args: rfsg_sessions (object): Specifies an array of references to multiple NI-RFSG instrument sessions. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions function and identifies a particular instrument session. master_reference_clock_source (string): Specifies the device Reference Clock to configure on the master NI RF vector signal generator. trigger_lines (int): Specifies trigger lines used for distribution of synchronized trigger signals. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_sessions_handle = _helper.get_session_handle(rfsg_sessions) error_code = self._interpreter.rfsg_configure_multiple_device_synchronization( # type: ignore rfsg_sessions_handle, master_reference_clock_source, trigger_lines ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_configure_frequency_single_lo( self, rfsg_sessions, lo_source, external_lo_handle, carrier_frequency, rfsg_lo_daisy_chain_enabled, lo_export_to_external_devices_enabled, ): r"""Configures the frequency on NI RF vector signal generators and NI RF synthesizers. NI RF synthesizers are used as external local oscillator (LO) devices. This function also configures LO frequency offset based on the :py:attr:`~nirfmxwlangen.attributes.AttributeID.LO_FREQUENCY_OFFSET_MODE` and :py:attr:`~nirfmxwlangen.attributes.AttributeID.LO_FREQUENCY_OFFSET` attributes. It also configures the Signal Bandwidth and IQ Rate attributes on NI RF vector signal generators and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.CARRIER_FREQUENCY` attribute. You must ensure that after a frequency configuration change, the output of the external LO device settles before generating the WLAN signal. You must use one of the following programming flows: - Before calling the :py:meth:`rfsg_configure_frequency_single_lo` function, if the external LO device is in generation state, ensure that it is brought in configuration state, by stopping signal generation. Initiate signal generation on the external LO device after calling the :py:meth:`rfsg_configure_frequency_single_lo` function. - You may choose to do on-the-fly frequency change on the external LO device while the device is in generation state. You must allow it's output to settle by calling the niRFSG_WaitUntilSettled function after the :py:meth:`rfsg_configure_frequency_single_lo` function. Args: rfsg_sessions (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. lo_source (enums.LOSource, int): Specifies whether to use the internal or the external LO source. This value is applicable only for the first RFSG device if the **rfsg_lo_daisy_chain_enabled** parameter is set to TRUE. The default value is NIWLANG_VAL_LO_SOURCE_ONBOARD. +----------------------------------------+----------------------------------------------------+ | Value | Description | +========================================+====================================================+ | NIWLANG_VAL_LO_SOURCE_ONBOARD (0) | Uses an internal LO as the LO source. | +----------------------------------------+----------------------------------------------------+ | NIWLANG_VAL_LO_SOURCE_EXTERNAL (1) | Uses an external LO as the LO source. | +----------------------------------------+----------------------------------------------------+ | NIWLANG_VAL_LO_SOURCE_SG_SA_SHARED (2) | Shares the internal RFSG LO between RFSG and RFSA. | +----------------------------------------+----------------------------------------------------+ external_lo_handle (object): Identifies the instrument session of the external LO device. This parameter is obtained from the niRFSG_Initialize function or the niRFSG_InitializeWithOptions function. carrier_frequency (float): Specifies the carrier frequency used to generate signals. This value is expressed in Hz. rfsg_lo_daisy_chain_enabled (bool): Specifies whether to export the LO signal from one RFSG device to the next. The default value is FALSE. lo_export_to_external_devices_enabled (bool): Specifies whether to export the LO signal from each RFSG device on its LO OUT terminal, which you can use to share the LO signal with an external device. An example of an external device would be an RFSA device. The default value is FALSE. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_sessions_handle = _helper.get_session_handle(rfsg_sessions) lo_source = lo_source.value if type(lo_source) is enums.LOSource else lo_source external_lo_handle_handle = _helper.get_session_handle(external_lo_handle) error_code = self._interpreter.rfsg_configure_frequency_single_lo( # type: ignore rfsg_sessions_handle, lo_source, external_lo_handle_handle, carrier_frequency, int(rfsg_lo_daisy_chain_enabled), int(lo_export_to_external_devices_enabled), ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_read_and_download_waveforms_from_file(self, rfsg_sessions, waveform_name, file_path): r"""Reads the waveforms stored in a TDMS file, writes them to the memory of the respective NI RF vector signal generator, and stores the I/Q rate, actual headroom, burst start locations, burst stop locations, waveform size and RF blanking marker positions of the waveforms in the RFSG database. This function completes the following operations: - Calls the :py:meth:`read_waveform_from_file` function to read the names of all waveforms present in the TDMS file. - Calls the niWLANG_ReadRFBlankingMarkerPositionsfromFile function to read RF blanking marker positions. - Completes the following operations for each waveform in the file and corresponding NI-RFSG device (instrument handle). - Calls the niWLANG Read Waveform from File function to read the waveform, along with its I/Q rate and headroom. The niRFSG I/Q Rate (S/s) property is set to the value of I/Q rate read from the file. The I/Q rate and headroom are stored in the RFSG database for the waveform specified in the waveform name parameter and NI-RFSG device. - For PXIe-5820/5830/5831/5841/5841 with 5655/5842/5860 devices, reads the Signal Bandwidth from the file and stores in the RFSG database for the waveform specified in the waveform name parameter and NI-RFSG device. If the value is not found in the file, then stores the value equal to 0.8\*I/Q rate. - If the RF blanking marker positions, or burst start locations and burst stop locations read from the file are not empty arrays and are any of PXIe-5644, PXIe-5645, PXIe-5646, PXIe-5840, PXIe-5841, PXIe-5841 with PXIe-5655, PXIe-5842, or PXIe-5860 devices, the niRFSG RF Blanking Source property is set to "marker0", if it is not set. The RF blanking marker positions, burst start locations, burst stop locations, and the waveform size are stored in the RFSG database for the waveform specified in the waveform name parameter and the NI-RFSG device. - The function downloads the waveform read from the file to the NI-RFSG device. If there is a single waveform in the file, these operations are repeated for each NI-RFSG device with the same input waveform. Args: rfsg_sessions (object): Identifies the instrument session. The WLAN Generation obtains this parameter from the niRFSG_init function or the niRFSG_InitWithOptions function. waveform_name (string): Specifies the name used to store the waveform. This string is case-insensitive, alphanumeric, and does not use reserved words. file_path (string): Specifies the absolute path to the TDMS file from which the WLAN Generation reads the waveforms. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_sessions_handle = _helper.get_session_handle(rfsg_sessions) error_code = self._interpreter.rfsg_read_and_download_waveforms_from_file( # type: ignore rfsg_sessions_handle, waveform_name, file_path ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_configure_power_level(self, rfsg_session, channel_string, script, power_level): r"""Looks up the waveforms in the script, retrieves the minimum actual headrooms of the waveforms in the script, adds this value to the **power_level** parameter, and sets the result to the NIRFSG_ATTR_POWER_LEVEL attribute. Set the NIRFSG_ATTR_POWER_LEVEL_TYPE attribute to NIRFSG_VAL_PEAK_POWER before calling this function. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. channel_string (string): Set this parameter to "" (empty string) or NULL. script (string): Specifies the script that controls waveform generation. NI-RFSG supports multiple scripts that may be selected by name with the NIRFSG_ATTR_SELECTED_SCRIPT attribute. power_level (float): Specifies the average power level. This value is expressed in dBm. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) error_code = self._interpreter.rfsg_configure_power_level( # type: ignore rfsg_session_handle, channel_string, script, power_level ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_clear_database(self, rfsg_session, channel_string, waveform_name): r"""Clears the attributes stored in the RFSG Database and clears the waveforms from the NI RF vector signal generator memory. This function clears the waveforms and the attributes of the waveforms that you specified in the **waveform_name** parameter. If you do not set the **waveform_name** parameter or set it to "" (empty string), this function clears all the waveforms and their attributes. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. channel_string (string): Set this parameter to "" (empty string) or NULL. waveform_name (string): Specifies the names of the waveforms to clear. If you set this parameter as empty, the function clears all the waveforms and their attributes. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) error_code = self._interpreter.rfsg_clear_database( # type: ignore rfsg_session_handle, channel_string, waveform_name ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_configure_script(self, rfsg_session, channel_string, script, power_level): r"""Configures the I/Q rate and power level of the waveforms that you specify in the script parameter. If the I/Q rates are the same for all the waveforms, this function sets the NIRFSG_ATTR_IQ_RATE attribute to the I/Q rate in the RFSG database. This function sets the NIRFSG_ATTR_POWER_LEVEL attribute to the sum of the power level that you specify in the **power_level** parameter and the minimum headroom value of all the waveforms. ---- Call the :py:meth:`rfsg_create_and_download_waveform` function before calling the :py:meth:`rfsg_configure_script` function. ---- This function completes the following actions: 1. For devices other than PXIe 5820, calls the :py:meth:`rfsg_retrieve_minimum_papr_all_waveforms` function to retrieve the minimum peak-to-average power ratio (PAPR) across all waveforms present in the script parameter. The NIRFSG_ATTR_POWER_LEVEL attribute is set to the sum of the power level parameter and the minimum PAPR. 2. For PXIe 5820/5830/5831/5841/5841 with 5655/5842/5860, calls the niWLANG_RFSGRetrieveSignalBandwidth (Script) function to retrieve the Signal Bandwidth and set niRFSG Signal Bandwidth (Hz) to the value. 3. Calls the :py:meth:`rfsg_retrieve_iq_rate` function to retrieve the I/Q rate and sets NIRFSG_ATTR_IQ_RATE attribute to the value. 4. Sets the NIRFSG_ATTR_POWER_LEVEL_TYPE attribute to NIRFSG_VAL_PEAK_POWER. 5. Calls the :py:meth:`rfsg_insert_rf_blanking_marker_positions` function to configure the script with RF blanking marker events. 6. Writes the resultant script to the NI-RFSG device using the niRFSG_WriteScript function. 7. Parses the script name from the script parameter and sets the NIRFSG_ATTR_SELECTED_SCRIPT attribute to the value. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. channel_string (string): Set this parameter to "" (empty string) or NULL. script (string): Specifies the script that controls waveform generation. NI-RFSG supports multiple scripts that may be selected by name with the NIRFSG_ATTR_SELECTED_SCRIPT attribute. power_level (float): Specifies the average power level. This value is expressed in dBm. The default value is -10 dBm. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) error_code = self._interpreter.rfsg_configure_script( # type: ignore rfsg_session_handle, channel_string, script, power_level ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_store_burst_start_locations(self, rfsg_session, waveform_name, burst_start_locations): r"""Stores the burst start locations that you specify in the **burst_start_locations** parameter in the RFSG database. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. waveform_name (string): Specifies the name of the waveform for which you want to retrieve the burst start locations. The WLAN Generation uses this parameter as the key to retrieve the waveform properties in the RFSG database. burst_start_locations (int): Returns the burst start locations stored, for the waveform you specified in the **waveform_name** parameter. It is an array of sample positions of the start of the burst, within the waveform. The default value is "" (empty array). Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) error_code = self._interpreter.rfsg_store_burst_start_locations( # type: ignore rfsg_session_handle, waveform_name, burst_start_locations ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_store_papr(self, rfsg_session, channel_string, waveform_name, papr): r"""Stores the headroom, or peak-to-average power ratio (PAPR), specified in the PAPR parameter in the RFSG database. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. channel_string (string): Set this parameter to "" (empty string) or NULL. waveform_name (string): Specifies the waveform for which you want to store the maximum expected PAPR. papr (float): Specifies the headroom (or PAPR) to store in the RFSG database. This value is expressed in dB. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) error_code = self._interpreter.rfsg_store_papr( # type: ignore rfsg_session_handle, channel_string, waveform_name, papr ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_store_iq_rate(self, rfsg_session, channel_string, waveform_name, iq_rate): r"""Stores the I/Q rate that you specify in the **iq_rate** parameter in the RFSG database. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. channel_string (string): Set this parameter to "" (empty string) or NULL. waveform_name (string): Specifies the name of the waveform for which you want to store the I/Q rate. iq_rate (float): Specifies the I/Q rate to store in the RFSG database. This value is expressed in samples per second (S/s). Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) error_code = self._interpreter.rfsg_store_iq_rate( # type: ignore rfsg_session_handle, channel_string, waveform_name, iq_rate ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_store_rf_blanking_marker_positions( self, rfsg_session, waveform_name, rf_blanking_marker_positions ): r"""Stores the RF blanking marker positions that you specify in the **rf_blanking_marker_positions** parameter in the RFSG database. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. waveform_name (string): Specifies the waveform for which you want to store the RF blanking marker positions. rf_blanking_marker_positions (int): Specifies the RF blanking marker positions to store. It is an array of sample positions, within the waveform, of marker events that can be used to toggle the state of RF blanking. Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) error_code = self._interpreter.rfsg_store_rf_blanking_marker_positions( # type: ignore rfsg_session_handle, waveform_name, rf_blanking_marker_positions ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def rfsg_configure_sample_clock_delay(self, rfsg_sessions, sample_clock_delay): r""" Args: rfsg_sessions (object): sample_clock_delay (float): Returns: int: Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_sessions_handle = _helper.get_session_handle(rfsg_sessions) error_code = self._interpreter.rfsg_configure_sample_clock_delay( # type: ignore rfsg_sessions_handle, sample_clock_delay ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def create_waveform_complex_f64(self, reset, waveform): r"""Creates WLAN I/Q data and returns the data as a complex waveform. This function returns one frame, including the idle interval, at a time. For multi-frame generation, set the reset parameter to NIWLANG_VAL_FALSE and run the function in a loop for the specified number of times or until the done parameter is NIWLANG_VAL_TRUE. ---- Use this function if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM. ---- Args: reset (bool): Specifies whether to reset the internal states in the created waveform. Set this parameter to NIWLANG_VAL_TRUE for the first frame of the generation or if you want to reset the pseudonoise (PN) seed. waveform (numpy.complex128): Returns the WLAN I/Q data. This parameter must be at least the size of the Returns: Tuple (t0, dt, done, error_code): t0 (float): Returns the starting time. This value is expressed in seconds. dt (float): Returns the time interval between baseband I/Q samples. This value is expressed in seconds. done (bool): Indicates whether the function has generated all the data. If you generate multiple frames, you can include this function in a while loop and use the done parameter as the terminating condition. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() t0, dt, done, error_code = self._interpreter.create_waveform_complex_f64( # type: ignore int(reset), waveform ) finally: self._session_function_lock.exit_read_lock() return t0, dt, done, error_code
[docs] @_raise_if_disposed def create_trigger_frame_msdu(self, channel_string): r"""Creates 802.11ax, 802.11be or 802.11bn trigger frame MSDU bits according to the configuration you specify. You must set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM and the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU to configure this function. Args: channel_string (string): Set this parameter to "" (empty string) or NULL. Returns: Tuple (generation_done, trigger_frame_msdu_bits, error_code): generation_done (bool): Indicates whether the function has generated all the data. trigger_frame_msdu_bits (int): Returns an array of the encoded bits trace. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() generation_done, trigger_frame_msdu_bits, error_code = self._interpreter.create_trigger_frame_msdu( # type: ignore channel_string ) finally: self._session_function_lock.exit_read_lock() return generation_done, trigger_frame_msdu_bits, error_code
[docs] @_raise_if_disposed def read_waveform_from_file(self, file_path, waveform_name, offset, count, waveform): r"""Reads a waveform from a TDMS file. You can save this file using the NI WLAN Generation Soft Front Panel. This function returns headroom and I/Q rate waveform data that you can subsequently download to an NI RF vector signal generator. Use the following active channel string formats to query this function. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute | Active Channel String Format | Comments | +====================================================================================================================================================================================+==============================+========================================================================================================================================+ | NIWLANG_VAL_STANDARD_80211AG_OFDM, NIWLANG_VAL_STANDARD_80211J_OFDM, NIWLANG_VAL_STANDARD_80211P_OFDM, NIWLANG_VAL_STANDARD_80211BG_DSSS, or NIWLANG_VAL_STANDARD_80211G_DSSS_OFDM | "" (empty string) | "" for all waveforms | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM | "channelx" | channel1 for a waveform of channel with index 1 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ | NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM | "\[segmentz/channelx] | "segment1/channel0" for a waveform of channel with index 0 of segment with index 1. "segment0/" is optional if the segment index is 1. | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ Args: file_path (string): Specifies the absolute path to the TDMS file from which the WLAN Generation saves the waveform. waveform_name (string): Specifies the name of the waveform to read from the file. For example, use the channel0 string as a waveform name to read the waveform for channel 0. offset (int): Specifies the number of waveform samples at which the function begins reading the I/Q data. count (int): Specifies the maximum number of samples of the I/Q complex waveform to read from the file. waveform (numpy.complex128): Returns the baseband time-domain waveform. This parameter must be at least the size of the waveformSize parameter. Returns: Tuple (t0, dt, iq_rate, headroom, eof, error_code): t0 (float): Returns the start time. This value is expressed in seconds. dt (float): Returns the time interval between baseband I/Q samples. This value is expressed in seconds. iq_rate (float): Returns the I/Q rate of the waveform. This value is expressed in samples per seconds (S/s). headroom (float): Returns the headroom of waveform. This value is expressed in dB. eof (bool): Indicates whether the end of file has been reached with this read. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() t0, dt, iq_rate, headroom, eof, error_code = self._interpreter.read_waveform_from_file( # type: ignore file_path, waveform_name, offset, count, waveform ) finally: self._session_function_lock.exit_read_lock() return t0, dt, iq_rate, headroom, eof, error_code
[docs] @_raise_if_disposed def get_number_of_users_from_ru_allocation(self, channel_string): r"""Returns the number of users derived from the configured RU allocation in a 802.11ax MU PPDU or 802.11be MU PPDU signal. To use this function, you must set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_ALLOCATION_MODE` attribute to NIWLANG_VAL_RU_ALLOCATION_MODE_GROUP and configure the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RU_ALLOCATION` attribute. Args: channel_string (string): Set this parameter to "" (empty string) or NULL. Returns: Tuple (number_of_users, error_code): number_of_users (int): Returns the number of users in a 802.11ax MU PPDU signal. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() number_of_users, error_code = self._interpreter.get_number_of_users_from_ru_allocation( # type: ignore channel_string ) finally: self._session_function_lock.exit_read_lock() return number_of_users, error_code
[docs] @_raise_if_disposed def read_burst_start_locations_from_file(self, file_path, waveform_name): r"""Reads the burst start locations from a TDMS file. You can save this file using the NI WLAN Generation Soft Front Panel or the :py:meth:`create_and_write_waveforms_to_file` function in a programming environment. Args: file_path (string): Specifies the absolute path to the TDMS file from which the WLAN Generation reads the waveform. waveform_name (string): Returns: Tuple (burst_start_locations, error_code): burst_start_locations (int): Returns the burst start locations saved in the TDMS file. It is an array of sample positions of the start of the burst, within the waveform. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() burst_start_locations, error_code = self._interpreter.read_burst_start_locations_from_file( # type: ignore file_path, waveform_name ) finally: self._session_function_lock.exit_read_lock() return burst_start_locations, error_code
[docs] @_raise_if_disposed def read_burst_stop_locations_from_file(self, file_path, waveform_name): r"""Reads the burst stop locations from a TDMS file. You can save this file using the NI WLAN Generation Soft Front Panel or the :py:meth:`create_and_write_waveforms_to_file` function in a programming environment. Args: file_path (string): Specifies the absolute path to the TDMS file from which the WLAN Generation reads the waveform. waveform_name (string): Returns: Tuple (burst_stop_locations, error_code): burst_stop_locations (int): Returns the burst stop locations saved in the TDMS file. It is an array of sample positions of the end of the burst, within the waveform. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() burst_stop_locations, error_code = self._interpreter.read_burst_stop_locations_from_file( # type: ignore file_path, waveform_name ) finally: self._session_function_lock.exit_read_lock() return burst_stop_locations, error_code
[docs] @_raise_if_disposed def rfsg_retrieve_papr(self, rfsg_session, channel_string, waveform_name): r"""Returns the headroom, or peak-to-average power ratio (PAPR), stored in the RFSG database. The function uses the waveform name as the key to retrieve the waveform PAPR. ---- Use the :py:meth:`rfsg_store_papr` function to store the PAPR in the RFSG database. ---- Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. channel_string (string): Set this parameter to "" (empty string) or NULL. waveform_name (string): Specifies the name of the waveform for which you want to retrieve the PAPR. The WLAN Generation uses the the **waveform_name** parameter as the key to retrieve the waveform properties in the RFSG database. Returns: Tuple (papr, error_code): papr (float): Returns the PAPR stored in the RFSG database, for the waveform you specified in the **waveform_name** parameter. This value is expressed in dB. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) papr, error_code = self._interpreter.rfsg_retrieve_papr( # type: ignore rfsg_session_handle, channel_string, waveform_name ) finally: self._session_function_lock.exit_read_lock() return papr, error_code
[docs] @_raise_if_disposed def rfsg_retrieve_burst_start_locations(self, rfsg_session, waveform_name): r"""Returns the burst start locations stored in the RFSG database. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. waveform_name (string): Specifies the name of the waveform for which you want to retrieve the burst start locations. The WLAN Generation uses this parameter as the key to retrieve the waveform properties in the RFSG database. Returns: Tuple (burst_start_locations, error_code): burst_start_locations (int): Returns the burst start locations stored, for the waveform you specified in the **waveform_name** parameter. It is an array of sample positions at the start of the burst, within the waveform. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) burst_start_locations, error_code = self._interpreter.rfsg_retrieve_burst_start_locations( # type: ignore rfsg_session_handle, waveform_name ) finally: self._session_function_lock.exit_read_lock() return burst_start_locations, error_code
[docs] @_raise_if_disposed def rfsg_retrieve_burst_stop_locations(self, rfsg_session, waveform_name): r"""Returns the burst stop locations stored in the RFSG database. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. waveform_name (string): Specifies the name of the waveform for which you want to retrieve the burst stop locations. The WLAN Generation uses this parameter as the key to retrieve the waveform properties in the RFSG database. Returns: Tuple (burst_stop_locations, error_code): burst_stop_locations (int): Returns the burst stop locations stored, for the waveform you specified in the **waveform_name** parameter. It is an array of sample positions of the end of the burst, within the waveform. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) burst_stop_locations, error_code = self._interpreter.rfsg_retrieve_burst_stop_locations( # type: ignore rfsg_session_handle, waveform_name ) finally: self._session_function_lock.exit_read_lock() return burst_stop_locations, error_code
[docs] @_raise_if_disposed def rfsg_retrieve_waveform_size(self, rfsg_session, waveform_name): r"""Returns the waveform size stored in the RFSG database. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. waveform_name (string): Specifies the name of the waveform for which you want to retrieve the waveform size. The WLAN Generation uses this parameter as the key to retrieve the waveform properties in the RFSG database. Returns: Tuple (waveform_size, error_code): waveform_size (int): Returns the waveform size stored, for the waveform you specified in the **waveform_name** parameter. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) waveform_size, error_code = self._interpreter.rfsg_retrieve_waveform_size( # type: ignore rfsg_session_handle, waveform_name ) finally: self._session_function_lock.exit_read_lock() return waveform_size, error_code
[docs] @_raise_if_disposed def rfsg_retrieve_iq_rate_all_waveforms(self, rfsg_session, channel_string, script): r"""Checks the I/Q rate of all the waveforms in the script that you specify in the script parameter. This function returns the I/Q rate if the I/Q rates are the same for all the waveforms. If the I/Q rates are different, the function returns an error. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. channel_string (string): Set this parameter to "" (empty string) or NULL. script (string): Specifies the script that controls waveform generation. NI-RFSG supports multiple scripts that may be selected by name with the NIRFSG_ATTR_SELECTED_SCRIPT attribute. Returns: Tuple (iq_rate, error_code): iq_rate (float): Returns the I/Q rate, if the I/Q rates are the same for all waveforms specified in the script parameter. If the I/Q rates are different, the function returns an error. This value is expressed in samples per second (S/s). error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) iq_rate, error_code = self._interpreter.rfsg_retrieve_iq_rate_all_waveforms( # type: ignore rfsg_session_handle, channel_string, script ) finally: self._session_function_lock.exit_read_lock() return iq_rate, error_code
[docs] @_raise_if_disposed def rfsg_retrieve_iq_rate(self, rfsg_session, channel_string, waveform_name): r"""Returns the I/Q rate stored in the RFSG database. The function uses the waveform name as the key to retrieve the waveform attributes. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. channel_string (string): Set this parameter to "" (empty string) or NULL. waveform_name (string): Specifies the name of the waveform for which you want to retrieve the I/Q rate. The WLAN Generation uses the Returns: Tuple (iq_rate, error_code): iq_rate (float): Returns the I/Q rate stored in the RFSG database for the waveform you specified in the **waveform_name** parameter. This value is expressed in samples per second (S/s). error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) iq_rate, error_code = self._interpreter.rfsg_retrieve_iq_rate( # type: ignore rfsg_session_handle, channel_string, waveform_name ) finally: self._session_function_lock.exit_read_lock() return iq_rate, error_code
[docs] @_raise_if_disposed def rfsg_retrieve_minimum_papr_all_waveforms(self, rfsg_session, channel_string, script): r"""Returns the minimum value of the headroom, or peak-to-average power ratio (PAPR), of all the waveforms in the script specified in the script parameter. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. channel_string (string): Set this parameter to "" (empty string) or NULL. script (string): Specifies the script that controls waveform generation. NI-RFSG supports multiple scripts that may be selected by name with the NIRFSG_ATTR_SELECTED_SCRIPT attribute. Returns: Tuple (papr, error_code): papr (float): Returns the minimum of all the maximum expected PAPR values stored in the RFSG database. This value is expressed in dB. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) papr, error_code = self._interpreter.rfsg_retrieve_minimum_papr_all_waveforms( # type: ignore rfsg_session_handle, channel_string, script ) finally: self._session_function_lock.exit_read_lock() return papr, error_code
[docs] @_raise_if_disposed def rfsg_retrieve_rf_blanking_marker_positions(self, rfsg_session, waveform_name): r"""Returns the RF blanking marker positions stored in the RFSG database. The function uses the waveform name as the key to retrieve the waveform properties. Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. waveform_name (string): Specifies the names of the waveforms to clear. If you set this parameter as empty, the function clears all the waveforms and their properties. Returns: Tuple (rf_blanking_marker_positions, error_code): rf_blanking_marker_positions (int): Returns the RF blanking marker positions saved in the TDMS file. It is an array of sample positions, within waveform, of marker events that can be used to toggle the state of RF blanking. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) rf_blanking_marker_positions, error_code = self._interpreter.rfsg_retrieve_rf_blanking_marker_positions( # type: ignore rfsg_session_handle, waveform_name ) finally: self._session_function_lock.exit_read_lock() return rf_blanking_marker_positions, error_code
[docs] @_raise_if_disposed def rfsg_insert_rf_blanking_marker_positions(self, rfsg_session, script): r"""Configures the script you specify in the **script** parameter for RF blanking marker events. For example, assume that the NIRFSG_ATTR_RF_BLANKING_SOURCE attribute is set to "marker0", the value of the :py:attr:`~nirfmxwlangen.attributes.AttributeID.RF_BLANKING_MARKER_POSITIONS` attribute is {10000, 12000}, and you configure the **script** parameter as shown in the following example: script scriptName generate waveformName end script The **script_out** parameter value is as shown in the following example: script scriptName generate waveformName marker0 (10000, 12000) end script Args: rfsg_session (object): Specifies a reference to an NI-RFSG instrument session. This parameter is obtained from the niRFSG_init or niRFSG_InitWithOptions functions and identifies a particular instrument session. script (string): Specifies the script that controls waveform generation. Returns: Tuple (script_out, error_code): script_out (string): Returns the modified script which has RF blanking marker events configured. error_code (int): Returns the status code of this method. The status code either indicates success or describes a warning condition. """ try: self._session_function_lock.enter_read_lock() rfsg_session_handle = _helper.get_session_handle(rfsg_session) script_out, error_code = self._interpreter.rfsg_insert_rf_blanking_marker_positions( # type: ignore rfsg_session_handle, script ) finally: self._session_function_lock.exit_read_lock() return script_out, error_code
[docs] @_raise_if_disposed def set_mapping_matrix(self, channel_string, mapping_matrix): r"""Specifies the matrix for mapping space-time streams to the transmit channels as specified in section 20.3.11.10.1 of IEEE Standard 802.11n-2009. The WLAN Generation ignores this function if the :py:attr:`~nirfmxwlangen.attributes.AttributeID.MAPPING_MATRIX_TYPE` property is not set to User Defined. Args: channel_string (string): Specifies the channel string. You must use the following channel string formats when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. +--------------------------------------+------------------------------+ | Spatial Mapping Mode Attribute Value | Active Channel String Format | +--------------------------------------+------------------------------+ | Common | ""(empty string) | +--------------------------------------+------------------------------+ | User Specific | "userx" | +--------------------------------------+------------------------------+ mapping_matrix (numpy.complex128): Specifies the matrix for mapping spatial streams to the transmit channels. Returns: int: 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 the function to determine if an error occurred. To obtain a text description of the status code, call the :py:meth:`get_error_string` function. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_mapping_matrix( # type: ignore channel_string, mapping_matrix ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def get_mapping_matrix(self, channel_string, mapping_matrix): r"""Returns the matrix used for mapping space-time streams to the transmit channels as defined in section 20.3.11.10.1 of IEEE Standard 802.11n-2009. The dimensions of the matrix must be N\ :sub:`Tx`\ \* (N\ :sub:`STS`\ + N\ :sub:`ESS`\ ) if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, or N\ :sub:`Tx`\ \* N\ :sub:`STS`\ for other MIMO OFDM standards. Args: channel_string (string): Specifies the channel string. You must use the following channel string formats when you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.PPDU_TYPE` attribute to NIWLANG_VAL_PPDU_TYPE_TRIGGER_BASED_PPDU. Returns: mapping_matrix (numpy.complex128): Returns the matrix for mapping spatial streams to transmit channels. int: 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 the function to determine if an error occurred. To obtain a text description of the status code, call the :py:meth:`get_error_string` function. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.get_mapping_matrix( # type: ignore channel_string, mapping_matrix ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def set_ofdm_packet_extension_thresholds( self, channel_string, ppet_16, ppet_8, number_of_space_time_streams, ru_size ): r"""Configures the packet extension (PE) thresholds that determine the nominal packet padding of the 802.11ax, 802.11be or 802.11bn signal. This function configures the thresholds for each resource unit (RU) size and each space-time stream of the 802.11ax, 802.11be or 802.11bn DUT. You must configure this table based on the nominal packet padding requirements of the DUT. Args: channel_string (string): Set this parameter to "" (empty string) or NULL. ppet_16 (int): Specifies the 16 microsecond mode PE threshold values. The default value is "" (empty array). ppet_8 (int): Specifies the 8 microsecond mode PE threshold values. The default value is "" (empty array). number_of_space_time_streams (int): Specifies the number of space-time streams for the corresponding RU size. ru_size (int): Specifies the size of the RU in terms of the number of subcarriers. The default value is "" (empty array). Returns: int: 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 the function to determine if an error occurred. To obtain a text description of the status code, call the :py:meth:`get_error_string` function. """ try: self._session_function_lock.enter_read_lock() error_code = self._interpreter.set_ofdm_packet_extension_thresholds( # type: ignore channel_string, ppet_16, ppet_8, number_of_space_time_streams, ru_size ) finally: self._session_function_lock.exit_read_lock() return error_code
[docs] @_raise_if_disposed def create_mimo_waveforms_complex_f64(self, reset, waveforms): r"""Creates WLAN I/Q data for multiple channels and returns the data as an array of complex waveforms. This function returns one frame, including the idle interval, at a time. For multiframe generation, set the reset parameter to NIWLANG_VAL_FALSE and run the function in a loop for the specified number of times or until the done parameter is NIWLANG_VAL_TRUE. Use this function if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to NIWLANG_VAL_STANDARD_80211N_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AC_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AH_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AF_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211AX_MIMO_OFDM, NIWLANG_VAL_STANDARD_80211BE_MIMO_OFDM, or NIWLANG_VAL_STANDARD_80211BN_MIMO_OFDM. Args: reset (int): Specifies whether to reset the internal states in the created waveform. Set this parameter to NIWLANG_VAL_TRUE for the first frame of the generation or if you want to reset the pseudonoise (PN) seed. waveforms (numpy.complex128): Returns the WLAN I/Q data. The waveforms are written sequentially in the array. Allocate an array at least as large as numberOfTxChains times individualWaveformSize for this parameter. Returns: Tuple (t0, dt, done, error_code): t0 (float): Returns the starting time. The size of this array must be at least equal to value of the numberOfTxChains parameter. This value is expressed in seconds. dt (float): Returns the time interval between baseband I/Q samples. The size array must be at least equal to value of the **number_of_tx_chains** parameter. This value is expressed in seconds. done (bool): Indicates whether the function has generated all data. If you generate multiple frames, you can include this function in a while loop and use the done parameter as the terminating condition. error_code (int): 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 the function to determine if an error occurred. To obtain a text description of the status code, call the :py:meth:`get_error_string` function. """ try: self._session_function_lock.enter_read_lock() t0, dt, done, error_code = self._interpreter.create_mimo_waveforms_complex_f64( # type: ignore reset, waveforms ) finally: self._session_function_lock.exit_read_lock() return t0, dt, done, error_code
[docs] @_raise_if_disposed def rfsg_create_and_download_mimo_waveforms(self, rfsg_sessions, channel_string, waveform_name): r"""Creates multiple channel waveforms, writes each waveform into the respective RFSG memory, and stores the I/Q rate, burst start locations, burst stop locations, waveform size and the actual headroom for each channel of the waveform in the respective RFSG database, if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to a MIMO OFDM standard. The function creates a single channel waveform and writes the same waveform to RFSG memory of all devices if you set the :py:attr:`~nirfmxwlangen.attributes.AttributeID.STANDARD` attribute to a non-MIMO standard. Args: rfsg_sessions (object): Identifies the instrument session. The WLAN Generation obtains this parameter from the niRFSG_init function or the niRFSG_InitWithOptions function. channel_string (string): Specifies the RFSG device channel. Set this parameter to NULL. waveform_name (string): Specifies the name used to store the waveform. This string is case-insensitive, alphanumeric, and does not use reserved words. Returns: int: 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 the function to determine if an error occurred. To obtain a text description of the status code, call the :py:meth:`get_error_string` function. """ try: self._session_function_lock.enter_read_lock() rfsg_sessions_handle = _helper.get_session_handle(rfsg_sessions) error_code = self._interpreter.rfsg_create_and_download_mimo_waveforms( # type: ignore rfsg_sessions_handle, channel_string, waveform_name ) finally: self._session_function_lock.exit_read_lock() return error_code