"""Provides methods to fetch and read the Sem measurement results."""
import functools
import nirfmxtdscdma.attributes as attributes
import nirfmxtdscdma.enums as enums
import nirfmxtdscdma.errors as errors
import nirfmxtdscdma.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):
meas_obj = xs[0] # parameter 0 is 'self' which is the measurement object
if meas_obj._signal_obj.is_disposed:
raise Exception("Cannot access a disposed Tdscdma signal configuration")
return f(*xs, **kws)
return aux
[docs]
class SemResults(object):
"""Provides methods to fetch and read the Sem measurement results."""
def __init__(self, signal_obj):
"""Provides methods to fetch and read the Sem measurement results."""
self._signal_obj = signal_obj
self._session_function_lock = signal_obj._session_function_lock
self._interpreter = signal_obj._interpreter
[docs]
@_raise_if_disposed
def get_measurement_status(self, selector_string):
r"""Indicates the overall measurement status based on the measurement limits specified by the standard for each offset
segment.
You do not need to use a selector string to configure or read this attribute for the default signal and result
instances. Refer to the `Selector String <https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_
topic for information about the string syntax for named signals.
+--------------+----------------------------------------------------------------------------------+
| Name (Value) | Description |
+==============+==================================================================================+
| Fail (0) | The measurement failed according to the measurement limits and criteria you set. |
+--------------+----------------------------------------------------------------------------------+
| Pass (1) | The measurement passed according to the measurement limits and criteria you set. |
+--------------+----------------------------------------------------------------------------------+
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (enums.SemMeasurementStatus):
Indicates the overall measurement status based on the measurement limits specified by the standard for each offset
segment.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_i32(
updated_selector_string, attributes.AttributeID.SEM_RESULTS_MEASUREMENT_STATUS.value
)
attr_val = enums.SemMeasurementStatus(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_carrier_absolute_integrated_power(self, selector_string):
r"""Gets the measurement absolute carrier power. This value is expressed in dBm.
You do not need to use a selector string to read this result for the default signal and result instances. Refer
to the `Selector String <https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ topic for
information about the string syntax for named signals.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the measurement absolute carrier power. This value is expressed in dBm.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_CARRIER_ABSOLUTE_INTEGRATED_POWER.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_lower_offset_measurement_status(self, selector_string):
r"""Indicates the lower offset segment measurement status based on the measurement limits specified by the standard.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
+--------------+-------------------------------------------------------------------------------------------------------+
| Name (Value) | Description |
+==============+=======================================================================================================+
| Fail (0) | The lower offset segment measurement failed according to the measurement limits and criteria you set. |
+--------------+-------------------------------------------------------------------------------------------------------+
| Pass (1) | The lower offset segment measurement passed according to the measurement limits and criteria you set. |
+--------------+-------------------------------------------------------------------------------------------------------+
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (enums.SemLowerOffsetMeasurementStatus):
Indicates the lower offset segment measurement status based on the measurement limits specified by the standard.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_i32(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_LOWER_OFFSET_MEASUREMENT_STATUS.value,
)
attr_val = enums.SemLowerOffsetMeasurementStatus(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_lower_offset_absolute_integrated_power(self, selector_string):
r"""Gets the absolute power measured in the lower (negative) offset segment. This value is expressed in dBm.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the absolute power measured in the lower (negative) offset segment. This value is expressed in dBm.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_LOWER_OFFSET_ABSOLUTE_INTEGRATED_POWER.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_lower_offset_relative_integrated_power(self, selector_string):
r"""Gets the power measured in the lower (negative) offset segment relative to the integrated power of the reference
carrier. This value is expressed in dB.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the power measured in the lower (negative) offset segment relative to the integrated power of the reference
carrier. 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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_LOWER_OFFSET_RELATIVE_INTEGRATED_POWER.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_lower_offset_absolute_peak_power(self, selector_string):
r"""Gets the peak absolute power measured in the lower (negative) offset segment. This value is expressed in dBm.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the peak absolute power measured in the lower (negative) offset segment. This value is expressed in dBm.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_LOWER_OFFSET_ABSOLUTE_PEAK_POWER.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_lower_offset_relative_peak_power(self, selector_string):
r"""Gets the peak power measured in the lower (negative) offset segment relative to the peak power of the reference
carrier. This value is expressed in dB.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the peak power measured in the lower (negative) offset segment relative to the peak power of the reference
carrier. 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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_LOWER_OFFSET_RELATIVE_PEAK_POWER.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_lower_offset_peak_frequency(self, selector_string):
r"""Gets the frequency at which the peak power occurred in the lower offset segment. This value is expressed in Hz.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the frequency at which the peak power occurred in the lower offset segment. 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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_LOWER_OFFSET_PEAK_FREQUENCY.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_lower_offset_margin(self, selector_string):
r"""Gets the margin from the limit mask. This value is expressed in dB. Margin is defined as the minimum distance
between the spectrum and the limit mask.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the margin from the limit mask. This value is expressed in dB. Margin is defined as the minimum distance
between the spectrum and the limit mask.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_LOWER_OFFSET_MARGIN.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_lower_offset_margin_absolute_power(self, selector_string):
r"""Gets the absolute power at which the margin occurred in the lower (negative) offset segment. This value is expressed
in dBm.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the absolute power at which the margin occurred in the lower (negative) offset segment. This value is expressed
in dBm.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_LOWER_OFFSET_MARGIN_ABSOLUTE_POWER.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_lower_offset_margin_relative_power(self, selector_string):
r"""Gets the power at which the margin occurred in the lower (negative) offset segment relative to the integrated power
of the reference carrier. This value is expressed in dB.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the power at which the margin occurred in the lower (negative) offset segment relative to the integrated power
of the reference carrier. 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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_LOWER_OFFSET_MARGIN_RELATIVE_POWER.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_lower_offset_margin_frequency(self, selector_string):
r"""Gets the frequency at which the margin occurred in the lower (negative) offset segment. This value is expressed in
Hz.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the frequency at which the margin occurred in the lower (negative) offset segment. 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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_LOWER_OFFSET_MARGIN_FREQUENCY.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_upper_offset_measurement_status(self, selector_string):
r"""Indicates the upper offset measurement status based on measurement limits specified by the standard.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
+--------------+------------------------------------------------------------------------------------------+
| Name (Value) | Description |
+==============+==========================================================================================+
| Fail (0) | The measured power exceeded the specified measurement limits and failure criteria. |
+--------------+------------------------------------------------------------------------------------------+
| Pass (1) | The measured power did not exceed the specified measurement limits and failure criteria. |
+--------------+------------------------------------------------------------------------------------------+
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (enums.SemUpperOffsetMeasurementStatus):
Indicates the upper offset measurement status based on measurement limits specified by the standard.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_i32(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_UPPER_OFFSET_MEASUREMENT_STATUS.value,
)
attr_val = enums.SemUpperOffsetMeasurementStatus(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_upper_offset_absolute_integrated_power(self, selector_string):
r"""Gets the absolute power measured in the upper (positive) offset segment.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the absolute power measured in the upper (positive) offset segment.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_UPPER_OFFSET_ABSOLUTE_INTEGRATED_POWER.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_upper_offset_relative_integrated_power(self, selector_string):
r"""Gets the power measured in the upper (positive) offset segment relative to the integrated power of the reference
carrier. This value is expressed in dB.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the power measured in the upper (positive) offset segment relative to the integrated power of the reference
carrier. 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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_UPPER_OFFSET_RELATIVE_INTEGRATED_POWER.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_upper_offset_absolute_peak_power(self, selector_string):
r"""Gets the peak absolute power measured in the upper (positive) offset segment.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the peak absolute power measured in the upper (positive) offset segment.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_UPPER_OFFSET_ABSOLUTE_PEAK_POWER.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_upper_offset_relative_peak_power(self, selector_string):
r"""Gets the peak power measured in the upper (positive) offset segment relative to the integrated power of the
reference carrier.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the peak power measured in the upper (positive) offset segment relative to the integrated power of the
reference carrier.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_UPPER_OFFSET_RELATIVE_PEAK_POWER.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_upper_offset_peak_frequency(self, selector_string):
r"""Gets the frequency at which the peak power occurred in the upper offset segment. This value is expressed in Hz.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the frequency at which the peak power occurred in the upper offset segment. 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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_UPPER_OFFSET_PEAK_FREQUENCY.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_upper_offset_margin(self, selector_string):
r"""Gets the margin from the limit mask value specified by the standard. This value is expressed in dB. Margin is
defined as the minimum distance between the spectrum and the limit mask.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the margin from the limit mask value specified by the standard. This value is expressed in dB. Margin is
defined as the minimum distance between the spectrum and the limit mask.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_UPPER_OFFSET_MARGIN.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_upper_offset_margin_absolute_power(self, selector_string):
r"""Gets the power at which the margin occurred in the upper (positive) offset segment, relative to the integrated or
peak power of the reference carrier. This value is expressed in dBm.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the power at which the margin occurred in the upper (positive) offset segment, relative to the integrated or
peak power of the reference carrier. This value is expressed in dBm.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_UPPER_OFFSET_MARGIN_ABSOLUTE_POWER.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_upper_offset_margin_relative_power(self, selector_string):
r"""Gets the power at which the margin occurred in the upper (positive) offset segment. This value is expressed in dBm.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the power at which the margin occurred in the upper (positive) offset segment. This value is expressed in dBm.
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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_UPPER_OFFSET_MARGIN_RELATIVE_POWER.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def get_upper_offset_margin_frequency(self, selector_string):
r"""Gets the frequency at which the margin occurred in the upper (positive) offset. This value is expressed in Hz.
Use "offset*<n>*" as the `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ to read this result.
Args:
selector_string (string):
Pass an empty string.
Returns:
Tuple (attr_val, error_code):
attr_val (float):
Returns the frequency at which the margin occurred in the upper (positive) offset. 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()
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
attr_val, error_code = self._interpreter.get_attribute_f64(
updated_selector_string,
attributes.AttributeID.SEM_RESULTS_UPPER_OFFSET_MARGIN_FREQUENCY.value,
)
finally:
self._session_function_lock.exit_read_lock()
return attr_val, error_code
[docs]
@_raise_if_disposed
def fetch_carrier_absolute_integrated_power(self, selector_string, timeout):
r"""Returns the absolute carrier integrated power of the SEM measurement.
Args:
selector_string (string):
This parameter specifies a `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ comprising of result
name. **Examples:**
""
"signal::sig1"
"result::r1"
"signal::sig1/result::r1"
You can use the :py:meth:`build_result_string` method to build the selector string.
timeout (float):
This parameter specifies the timeout for fetching the specified measurement. This value is expressed in seconds. Set
this value to an appropriate time, longer than expected for fetching the measurement. A value of -1 specifies that the
method waits until the measurement is complete. The default value is 10.
Returns:
Tuple (carrier_absolute_integrated_power, error_code):
carrier_absolute_integrated_power (float):
This parameter returns the carrier power. This value is expressed in dBm.
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()
_helper.validate_not_none(selector_string, "selector_string")
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
carrier_absolute_integrated_power, error_code = (
self._interpreter.sem_fetch_carrier_absolute_integrated_power(
updated_selector_string, timeout
)
)
finally:
self._session_function_lock.exit_read_lock()
return carrier_absolute_integrated_power, error_code
[docs]
@_raise_if_disposed
def fetch_lower_offset_margin(self, selector_string, timeout):
r"""Returns the measurement status and margin from the limit line measured in the lower offset segment.
Use "offset<n>" as the selector string to read results from this method.
Args:
selector_string (string):
This parameter specifies a `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ comprising of result
name, and offset number. **Examples:**
"offset0"
"signal::sig1/offset0"
"result::r1/offset0"
"signal::sig1/result::r1/offset0"
You can use the :py:meth:`build_offset_string` method to build the selector string.
timeout (float):
This parameter specifies the timeout for fetching the specified measurement. This value is expressed in seconds. Set
this value to an appropriate time, longer than expected for fetching the measurement. A value of -1 specifies that the
method waits until the measurement is complete. The default value is 10.
Returns:
Tuple (measurement_status, margin, margin_frequency, margin_absolute_power, margin_relative_power, error_code):
measurement_status (enums.SemLowerOffsetMeasurementStatus):
This parameter returns the lower offset measurement status based on measurement limits and the failure criteria
specified by the standard.
+--------------+----------------------------------------------------------------------------------------+
| Name (value) | Description |
+==============+========================================================================================+
| Fail (0) | The signal exceeds the limits given by 3GPP TS 251.02 v11.6.0 standard, table 6.5A ff. |
+--------------+----------------------------------------------------------------------------------------+
| Pass (1) | The signal does not exceed the spectrum emission limits. |
+--------------+----------------------------------------------------------------------------------------+
margin (float):
This parameter returns the margin from the limit mask value specified by the standard. This value is expressed in dB.
Margin is defined as the minimum distance between the spectrum and the limit mask.
margin_frequency (float):
This parameter returns the frequency at which the margin occurs in the negative offset. This value is expressed in Hz.
margin_absolute_power (float):
This parameter returns the power at which the margin occurs in the negative offset segment. This value is expressed in
dBm.
margin_relative_power (float):
This parameter returns the power at which the margin occurs in the negative offset segment relative to the integrated
power of the reference carrier. 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()
_helper.validate_not_none(selector_string, "selector_string")
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
(
measurement_status,
margin,
margin_frequency,
margin_absolute_power,
margin_relative_power,
error_code,
) = self._interpreter.sem_fetch_lower_offset_margin(updated_selector_string, timeout)
finally:
self._session_function_lock.exit_read_lock()
return (
measurement_status,
margin,
margin_frequency,
margin_absolute_power,
margin_relative_power,
error_code,
)
[docs]
@_raise_if_disposed
def fetch_lower_offset_power(self, selector_string, timeout):
r"""Returns the lower offset segment power measurements.
Use "offset<n>" as the selector string to read results from this method.
Args:
selector_string (string):
This parameter specifies a `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ comprising of result
name, and offset number. **Examples:**
"offset0"
"signal::sig1/offset0"
"result::r1/offset0"
"signal::sig1/result::r1/offset0"
You can use the :py:meth:`build_offset_string` method to build the selector string.
timeout (float):
This parameter specifies the timeout for fetching the specified measurement. This value is expressed in seconds. Set
this value to an appropriate time, longer than expected for fetching the measurement. A value of -1 specifies that the
method waits until the measurement is complete. The default value is 10.
Returns:
Tuple (absolute_integrated_power, relative_integrated_power, absolute_peak_power, peak_frequency, relative_peak_power, error_code):
absolute_integrated_power (float):
This parameter returns the lower (negative) offset segment power measured. This value is expressed in dBm.
relative_integrated_power (float):
This parameter returns the power in the negative offset segment relative to the integrated power of the reference
carrier. This value is expressed in dB.
absolute_peak_power (float):
This parameter returns the peak power measured in the lower (negative) offset segment. This value is expressed in dBm.
peak_frequency (float):
This parameter returns the frequency at which the peak power occurred in the offset segment. This value is expressed in
Hz.
relative_peak_power (float):
This parameter returns the peak power in the lower (negative) offset segment relative to the integrated power of the
reference carrier.
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()
_helper.validate_not_none(selector_string, "selector_string")
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
(
absolute_integrated_power,
relative_integrated_power,
absolute_peak_power,
peak_frequency,
relative_peak_power,
error_code,
) = self._interpreter.sem_fetch_lower_offset_power(updated_selector_string, timeout)
finally:
self._session_function_lock.exit_read_lock()
return (
absolute_integrated_power,
relative_integrated_power,
absolute_peak_power,
peak_frequency,
relative_peak_power,
error_code,
)
[docs]
@_raise_if_disposed
def fetch_measurement_status(self, selector_string, timeout):
r"""Returns the SEM measurement status.
Args:
selector_string (string):
This parameter specifies a `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ comprising of result
name. **Examples:**
""
"signal::sig1"
"result::r1"
"signal::sig1/result::r1"
You can use the :py:meth:`build_result_string` method to build the selector string.
timeout (float):
This parameter specifies the timeout for fetching the specified measurement. This value is expressed in seconds. Set
this value to an appropriate time, longer than expected for fetching the measurement. A value of -1 specifies that the
method waits until the measurement is complete. The default value is 10.
Returns:
Tuple (measurement_status, error_code):
measurement_status (enums.SemMeasurementStatus):
This parameter returns the status of the measurement based on measurement limits and the failure criteria specified by
the standard.
+--------------+----------------------------------------------------------------------------------------+
| Name (value) | Description |
+==============+========================================================================================+
| Fail (0) | The signal exceeds the limits given by 3GPP TS 251.02 v11.6.0 standard, table 6.5A ff. |
+--------------+----------------------------------------------------------------------------------------+
| Pass (1) | The signal does not exceed the spectrum emission limits. |
+--------------+----------------------------------------------------------------------------------------+
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()
_helper.validate_not_none(selector_string, "selector_string")
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
measurement_status, error_code = self._interpreter.sem_fetch_measurement_status(
updated_selector_string, timeout
)
finally:
self._session_function_lock.exit_read_lock()
return measurement_status, error_code
[docs]
@_raise_if_disposed
def fetch_upper_offset_margin(self, selector_string, timeout):
r"""Returns the measurement status and margin from the limit line measured in the upper offset segment.
Use "offset<n>" as the selector string to read results from this method.
Args:
selector_string (string):
This parameter specifies a `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ comprising of result
name, and offset number. **Examples:**
"offset0"
"signal::sig1/offset0"
"result::r1/offset0"
"signal::sig1/result::r1/offset0"
You can use the :py:meth:`build_offset_string` method to build the selector string.
timeout (float):
This parameter specifies the timeout for fetching the specified measurement. This value is expressed in seconds. Set
this value to an appropriate time, longer than expected for fetching the measurement. A value of -1 specifies that the
method waits until the measurement is complete. The default value is 10.
Returns:
Tuple (measurement_status, margin, margin_frequency, margin_absolute_power, margin_relative_power, error_code):
measurement_status (enums.SemUpperOffsetMeasurementStatus):
This parameter returns the upper offset measurement status based on measurement limits and the failure criteria
specified by the standard.
+--------------+----------------------------------------------------------------------------------------+
| Name (value) | Description |
+==============+========================================================================================+
| Fail (0) | The signal exceeds the limits given by 3GPP TS 251.02 v11.6.0 standard, table 6.5A ff. |
+--------------+----------------------------------------------------------------------------------------+
| Pass (1) | The signal does not exceed the spectrum emission limits. |
+--------------+----------------------------------------------------------------------------------------+
margin (float):
This parameter returns the margin from the limit mask value specified by the standard. This value is expressed in dB.
Margin is defined as the minimum distance between the spectrum and the limit mask.
margin_frequency (float):
This parameter returns the frequency at which the margin occurs in the positive offset. This value is expressed in Hz.
margin_absolute_power (float):
This parameter returns the power at which the margin occurs in the positive offset segment. This value is expressed in
dBm.
margin_relative_power (float):
This parameter returns the power at which the margin occurs in the positive offset segment relative to the integrated
power of the reference carrier. 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()
_helper.validate_not_none(selector_string, "selector_string")
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
(
measurement_status,
margin,
margin_frequency,
margin_absolute_power,
margin_relative_power,
error_code,
) = self._interpreter.sem_fetch_upper_offset_margin(updated_selector_string, timeout)
finally:
self._session_function_lock.exit_read_lock()
return (
measurement_status,
margin,
margin_frequency,
margin_absolute_power,
margin_relative_power,
error_code,
)
[docs]
@_raise_if_disposed
def fetch_upper_offset_power(self, selector_string, timeout):
r"""Returns the upper offset segment power measurements.
Use "offset<n>" as the selector string to read results from this method.
Args:
selector_string (string):
This parameter specifies a `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ comprising of result
name, and offset number. **Examples:**
"offset0"
"signal::sig1/offset0"
"result::r1/offset0"
"signal::sig1/result::r1/offset0"
You can use the :py:meth:`build_offset_string` method to build the selector string.
timeout (float):
This parameter specifies the timeout for fetching the specified measurement. This value is expressed in seconds. Set
this value to an appropriate time, longer than expected for fetching the measurement. A value of -1 specifies that the
method waits until the measurement is complete. The default value is 10.
Returns:
Tuple (absolute_integrated_power, relative_integrated_power, absolute_peak_power, peak_frequency, relative_peak_power, error_code):
absolute_integrated_power (float):
This parameter returns the upper (positive) offset segment power measured. This value is expressed in dBm.
relative_integrated_power (float):
This parameter returns the power in the positive offset segment relative to the integrated power of the reference
carrier. This value is expressed in dB.
absolute_peak_power (float):
This parameter returns the peak power measured in the upper (positive) offset segment. This value is expressed in dBm.
peak_frequency (float):
This parameter returns the frequency at which the peak power occurred in the offset segment. This value is expressed in
Hz.
relative_peak_power (float):
This parameter returns the peak power in the upper (positive) offset segment relative to the integrated power of the
reference carrier.
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()
_helper.validate_not_none(selector_string, "selector_string")
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
(
absolute_integrated_power,
relative_integrated_power,
absolute_peak_power,
peak_frequency,
relative_peak_power,
error_code,
) = self._interpreter.sem_fetch_upper_offset_power(updated_selector_string, timeout)
finally:
self._session_function_lock.exit_read_lock()
return (
absolute_integrated_power,
relative_integrated_power,
absolute_peak_power,
peak_frequency,
relative_peak_power,
error_code,
)
[docs]
@_raise_if_disposed
def fetch_lower_offset_margin_array(self, selector_string, timeout):
r"""Returns the array of measurement statuses and margins from the limit line measured in the lower offset segments.
Args:
selector_string (string):
This parameter specifies a `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ comprising of result
name. **Examples:**
""
"signal::sig1"
"result::r1"
"signal::sig1/result::r1"
You can use the :py:meth:`build_result_string` method to build the selector string.
timeout (float):
This parameter specifies the timeout for fetching the specified measurement. This value is expressed in seconds. Set
this value to an appropriate time, longer than expected for fetching the measurement. A value of -1 specifies that the
method waits until the measurement is complete. The default value is 10.
Returns:
Tuple (measurement_status, margin, margin_frequency, margin_absolute_power, margin_relative_power, error_code):
measurement_status (enums.SemLowerOffsetMeasurementStatus):
This parameter returns the array of lower offset measurement statuses based on measurement limits and the failure
criteria specified by the standard.
+--------------+----------------------------------------------------------------------------------------+
| Name (value) | Description |
+==============+========================================================================================+
| Fail (0) | The signal exceeds the limits given by 3GPP TS 251.02 v11.6.0 standard, table 6.5A ff. |
+--------------+----------------------------------------------------------------------------------------+
| Pass (1) | The signal does not exceed the spectrum emission limits. |
+--------------+----------------------------------------------------------------------------------------+
margin (float):
This parameter returns the array of margins from the limit mask value specified by the standard. This value is
expressed in dB. The margin is defined as the minimum distance between the spectrum and the limit mask.
margin_frequency (float):
This parameter returns the array of frequencies at which the margin occurs in each negative offset segment. This value
is expressed in Hz.
margin_absolute_power (float):
This parameter returns the array of powers at which the margin occurs in the negative offset segment. This value is
expressed in dBm.
margin_relative_power (float):
This parameter returns the array of powers at which the margin occurs in each negative offset segment relative to the
integrated power of the reference carrier. 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()
_helper.validate_not_none(selector_string, "selector_string")
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
(
measurement_status,
margin,
margin_frequency,
margin_absolute_power,
margin_relative_power,
error_code,
) = self._interpreter.sem_fetch_lower_offset_margin_array(
updated_selector_string, timeout
)
finally:
self._session_function_lock.exit_read_lock()
return (
measurement_status,
margin,
margin_frequency,
margin_absolute_power,
margin_relative_power,
error_code,
)
[docs]
@_raise_if_disposed
def fetch_lower_offset_power_array(self, selector_string, timeout):
r"""Returns the arrays of lower offset segment power measurements.
Args:
selector_string (string):
This parameter specifies a `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ comprising of result
name. **Examples:**
""
"signal::sig1"
"result::r1"
"signal::sig1/result::r1"
You can use the :py:meth:`build_result_string` method to build the selector string.
timeout (float):
This parameter specifies the timeout for fetching the specified measurement. This value is expressed in seconds. Set
this value to an appropriate time, longer than expected for fetching the measurement. A value of -1 specifies that the
method waits until the measurement is complete. The default value is 10.
Returns:
Tuple (absolute_integrated_power, relative_integrated_power, absolute_peak_power, peak_frequency, relative_peak_power, error_code):
absolute_integrated_power (float):
This parameter returns the array of lower (negative) offset segment powers measured. This value is expressed in dBm.
relative_integrated_power (float):
This parameter returns the array of powers in each negative offset segment relative to the integrated power of the
reference carrier. This value is expressed in dB.
absolute_peak_power (float):
This parameter returns the array of peak powers measured in each lower (negative) offset segment. This value is
expressed in dBm.
peak_frequency (float):
This parameter returns the array of frequencies at which the peak power occurred in each offset segment. This value is
expressed in Hz.
relative_peak_power (float):
This parameter returns the array of peak powers in the lower (negative) offset segment relative to the integrated power
of the reference carrier.
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()
_helper.validate_not_none(selector_string, "selector_string")
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
(
absolute_integrated_power,
relative_integrated_power,
absolute_peak_power,
peak_frequency,
relative_peak_power,
error_code,
) = self._interpreter.sem_fetch_lower_offset_power_array(
updated_selector_string, timeout
)
finally:
self._session_function_lock.exit_read_lock()
return (
absolute_integrated_power,
relative_integrated_power,
absolute_peak_power,
peak_frequency,
relative_peak_power,
error_code,
)
[docs]
@_raise_if_disposed
def fetch_spectrum(self, selector_string, timeout, spectrum, relative_mask, absolute_mask):
r"""Fetches the spectrum used for the SEM measurement.
Args:
selector_string (string):
This parameter specifies a `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ comprising of result
name. **Examples:**
""
"signal::sig1"
"result::r1"
"signal::sig1/result::r1"
You can use the :py:meth:`build_result_string` method to build the selector string.
timeout (float):
This parameter specifies the timeout for fetching the specified measurement. This value is expressed in seconds. Set
this value to an appropriate time, longer than expected for fetching the measurement. A value of -1 specifies that the
method waits until the measurement is complete. The default value is 10.
spectrum (numpy.float32):
This parameter returns the averaged power measured at each frequency bin. This value is expressed in dBm.
relative_mask (numpy.float32):
This parameter returns the averaged power measured at each frequency bin. This value is expressed in dBm.
absolute_mask (numpy.float32):
This parameter returns the averaged power measured at each frequency bin. This value is expressed in dBm.
Returns:
Tuple (x0, dx, error_code):
x0 (float):
This parameter returns the start frequency. This value is expressed in Hz.
dx (float):
This parameter returns the frequency bin spacing. 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()
_helper.validate_not_none(selector_string, "selector_string")
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
x0, dx, error_code = self._interpreter.sem_fetch_spectrum(
updated_selector_string, timeout, spectrum, relative_mask, absolute_mask
)
finally:
self._session_function_lock.exit_read_lock()
return x0, dx, error_code
[docs]
@_raise_if_disposed
def fetch_upper_offset_margin_array(self, selector_string, timeout):
r"""Returns the measurement status and margin from the limit line measured in the upper offset segments.
Args:
selector_string (string):
This parameter specifies a `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ comprising of result
name. **Examples:**
""
"signal::sig1"
"result::r1"
"signal::sig1/result::r1"
You can use the :py:meth:`build_result_string` method to build the selector string.
timeout (float):
This parameter specifies the timeout for fetching the specified measurement. This value is expressed in seconds. Set
this value to an appropriate time, longer than expected for fetching the measurement. A value of -1 specifies that the
method waits until the measurement is complete. The default value is 10.
Returns:
Tuple (measurement_status, margin, margin_frequency, margin_absolute_power, margin_relative_power, error_code):
measurement_status (enums.SemUpperOffsetMeasurementStatus):
This parameter returns the array of upper offset measurement statuses based on measurement limits and the failure
criteria specified by the standard.
+--------------+----------------------------------------------------------------------------------------+
| Name (value) | Description |
+==============+========================================================================================+
| Fail (0) | The signal exceeds the limits given by 3GPP TS 251.02 v11.6.0 standard, table 6.5A ff. |
+--------------+----------------------------------------------------------------------------------------+
| Pass (1) | The signal does not exceed the spectrum emission limits. |
+--------------+----------------------------------------------------------------------------------------+
margin (float):
This parameter returns the array of margins from the limit mask value specified by the standard. This value is
expressed in dB. The margin is defined as the minimum distance between the spectrum and the limit mask.
margin_frequency (float):
This parameter returns the array of frequencies at which the margin occurs in each positive offset. This value is
expressed in Hz.
margin_absolute_power (float):
This parameter returns the array of powers at which the margin occurs in each positive offset segment. This value is
expressed in dBm.
margin_relative_power (float):
This parameter returns the array of powers at which the margin occurs in each positive offset segment relative to the
integrated power of the reference carrier. 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()
_helper.validate_not_none(selector_string, "selector_string")
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
(
measurement_status,
margin,
margin_frequency,
margin_absolute_power,
margin_relative_power,
error_code,
) = self._interpreter.sem_fetch_upper_offset_margin_array(
updated_selector_string, timeout
)
finally:
self._session_function_lock.exit_read_lock()
return (
measurement_status,
margin,
margin_frequency,
margin_absolute_power,
margin_relative_power,
error_code,
)
[docs]
@_raise_if_disposed
def fetch_upper_offset_power_array(self, selector_string, timeout):
r"""Returns the arrays of upper offset segment power measurements.
Args:
selector_string (string):
This parameter specifies a `Selector String
<https://www.ni.com/docs/en-US/bundle/rfmx/page/selector-strings-net.html>`_ comprising of result
name. **Examples:**
""
"signal::sig1"
"result::r1"
"signal::sig1/result::r1"
You can use the :py:meth:`build_result_string` method to build the selector string.
timeout (float):
This parameter specifies the timeout for fetching the specified measurement. This value is expressed in seconds. Set
this value to an appropriate time, longer than expected for fetching the measurement. A value of -1 specifies that the
method waits until the measurement is complete. The default value is 10.
Returns:
Tuple (absolute_integrated_power, relative_integrated_power, absolute_peak_power, peak_frequency, relative_peak_power, error_code):
absolute_integrated_power (float):
This parameter returns the array of upper (positive) offset segment powers measured. This value is expressed in dBm.
relative_integrated_power (float):
This parameter returns the array of powers measured in each positive offset segment relative to the integrated power of
the reference carrier. This value is expressed in dB.
absolute_peak_power (float):
This parameter returns the array of peak powers measured in each upper (positive) offset segment. This value is
expressed in dBm.
peak_frequency (float):
This parameter returns the array of frequencies at which the peak power occurred in each offset segment. This value is
expressed in Hz.
relative_peak_power (float):
This parameter returns the array of peak powers measured in each upper (positive) offset segment relative to the
integrated power of the reference carrier.
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()
_helper.validate_not_none(selector_string, "selector_string")
updated_selector_string = _helper.validate_and_update_selector_string(
selector_string, self._signal_obj
)
(
absolute_integrated_power,
relative_integrated_power,
absolute_peak_power,
peak_frequency,
relative_peak_power,
error_code,
) = self._interpreter.sem_fetch_upper_offset_power_array(
updated_selector_string, timeout
)
finally:
self._session_function_lock.exit_read_lock()
return (
absolute_integrated_power,
relative_integrated_power,
absolute_peak_power,
peak_frequency,
relative_peak_power,
error_code,
)