Source code for nirfmxdemod.enums

"""enums.py - Contains enum classes."""

from enum import Enum, IntFlag


[docs] class TriggerType(Enum): """TriggerType.""" NONE = 0 r"""No reference trigger is used for signal acquisition.""" DIGITAL_EDGE = 1 r"""A digital-edge trigger is used for signal acquisition. The source of the digital edge is specified using the :py:attr:`~nirfmxdemod.attributes.AttributeID.DIGITAL_EDGE_TRIGGER_SOURCE` attribute.""" IQ_POWER_EDGE = 2 r"""An I/Q power-edge trigger is used for signal acquisition, which is configured using the :py:attr:`~nirfmxdemod.attributes.AttributeID.IQ_POWER_EDGE_TRIGGER_SLOPE` attribute.""" SOFTWARE = 3 r"""A software trigger is used for signal acquisition."""
[docs] class DigitalEdgeTriggerEdge(Enum): """DigitalEdgeTriggerEdge.""" RISING_EDGE = 0 r"""The trigger asserts on the rising edge of the signal.""" FALLING_EDGE = 1 r"""The trigger asserts on the falling edge of the signal."""
[docs] class IQPowerEdgeTriggerLevelType(Enum): """IQPowerEdgeTriggerLevelType.""" RELATIVE = 0 r"""The value of the IQ Power Edge Level attribute is relative to the value of the :py:attr:`~nirfmxdemod.attributes.AttributeID.REFERENCE_LEVEL` attribute.""" ABSOLUTE = 1 r"""The IQ Power Edge Level attribute specifies the absolute power."""
[docs] class IQPowerEdgeTriggerSlope(Enum): """IQPowerEdgeTriggerSlope.""" RISING_SLOPE = 0 r"""The trigger asserts when the signal power is rising.""" FALLING_SLOPE = 1 r"""The trigger asserts when the signal power is falling."""
[docs] class TriggerMinimumQuietTimeMode(Enum): """TriggerMinimumQuietTimeMode.""" MANUAL = 0 r"""The minimum quiet time for triggering is the value of the :py:attr:`~nirfmxdemod.attributes.AttributeID.TRIGGER_MINIMUM_QUIET_TIME_DURATION` attribute.""" AUTO = 1 r"""The measurement computes the minimum quiet time used for triggering."""
[docs] class ADemodAudioMeasurementEnabled(Enum): """ADemodAudioMeasurementEnabled.""" FALSE = 0 r"""Disables the audio measurements.""" TRUE = 1 r"""Enables the audio measurements."""
[docs] class ADemodModulationType(Enum): """ADemodModulationType.""" AM = 0 r"""The signal to be analyzed is amplitude modulated.""" FM = 1 r"""The signal to be analyzed is frequency modulated.""" PM = 2 r"""The signal to be analyzed is phase modulated."""
[docs] class ADemodAMCarrierSuppressedEnabled(Enum): """ADemodAMCarrierSuppressedEnabled.""" FALSE = 0 r"""The carrier of the AM signal is present.""" TRUE = 1 r"""The carrier of the AM signal is absent."""
[docs] class ADemodRbwFilterType(Enum): """ADemodRbwFilterType.""" NONE = 0 r"""RBW filter is not applied on the acquired signal.""" GAUSSIAN = 1 r"""RBW filter has a Gaussian response.""" FLAT = 2 r"""RBW filter has a Flat response.""" SYNCH_TUNED_4 = 3 r"""RBW filter has a response of a 4-pole synchronously-tuned filter.""" SYNCH_TUNED_5 = 4 r"""RBW filter has a response of a 5-pole synchronously-tuned filter.""" RRC = 5 r"""RRC filter with roll-off specified by the :py:attr:`~nirfmxdemod.attributes.AttributeID.ADEMOD_RBW_FILTER_ALPHA` attribute is used as the RBW filter."""
[docs] class ADemodCarrierFrequencyCorrectionEnabled(Enum): """ADemodCarrierFrequencyCorrectionEnabled.""" FALSE = 0 r"""Does not correct the carrier frequency error.""" TRUE = 1 r"""Corrects the carrier frequency error."""
[docs] class ADemodCarrierPhaseCorrectionEnabled(Enum): """ADemodCarrierPhaseCorrectionEnabled.""" FALSE = 0 r"""Does not correct the carrier phase error.""" TRUE = 1 r"""Corrects the carrier phase error."""
[docs] class ADemodAudioFilterType(Enum): """ADemodAudioFilterType.""" NONE = 0 r"""Does not use any audio filter.""" CUSTOM = 1 r"""Uses the filter specified by the :py:attr:`~nirfmxdemod.attributes.AttributeID.ADEMOD_AUDIO_FILTER_LOWER_CUTOFF_FREQUENCY` attribute and the :py:attr:`~nirfmxdemod.attributes.AttributeID.ADEMOD_AUDIO_FILTER_UPPER_CUTOFF_FREQUENCY` attribute.""" A_WEIGHT = 2 r"""Uses an A-weighted filter.""" B_WEIGHT = 3 r"""Uses a B-weighted filter.""" C_WEIGHT = 4 r"""Uses a C-weighted filter.""" CCITT = 5 r"""Uses the filter specified by CCITT.""" ITU_R_468_4 = 6 r"""Uses the filter specified by ITU-R 468-4."""
[docs] class ADemodAveragingEnabled(Enum): """ADemodAveragingEnabled.""" FALSE = 0 r"""The measurement is performed on a single acquisition.""" TRUE = 1 r"""The analog demodulation measurement uses the :py:attr:`~nirfmxdemod.attributes.AttributeID.ADEMOD_AVERAGING_COUNT` attribute to calculate the number of acquisitions over which the measurement is averaged. Traces are not averaged."""
[docs] class ADemodAveragingType(Enum): """ADemodAveragingType.""" LINEAR = 0 r"""The averaged result is the mean value measured across multiple acquisitions.""" MAXIMUM = 1 r"""The averaged result is the maximum value measured across multiple acquisitions.""" MINIMUM = 2 r"""The averaged result is the minimum value measured across multiple acquisitions."""
[docs] class DDemodModulationType(Enum): """DDemodModulationType.""" ASK = 0 r"""The modulation type is amplitude-shift keying (ASK).""" FSK = 1 r"""The modulation type is frequency-shift keying (FSK).""" PSK = 2 r"""The modulation type is phase-shift keying (PSK).""" QAM = 3 r"""The modulation type is quadrature-amplitude modulation (QAM).""" MSK = 4 r"""The modulation type is minimum shift keying (MSK).""" APSK = 5 r"""The modulation type is amplitude phase-shift keying (APSK)."""
[docs] class DDemodM(Enum): """DDemodM.""" M2 = 2 r"""The M-ary number is 2.""" M4 = 4 r"""The M-ary number is 4.""" M8 = 8 r"""The M-ary number is 8.""" M16 = 16 r"""The M-ary number is 16.""" M32 = 32 r"""The M-ary number is 32.""" M64 = 64 r"""The M-ary number is 64.""" M128 = 128 r"""The M-ary number is 128.""" M256 = 256 r"""The M-ary number is 256.""" M512 = 512 r"""The M-ary number is 512.""" M1024 = 1024 r"""The M-ary number is 1,024.""" M2048 = 2048 r"""The M-ary number is 2,048.""" M4096 = 4096 r"""The M-ary number is 4,096."""
[docs] class DDemodSpectrumInverted(Enum): """DDemodSpectrumInverted.""" FALSE = 0 r"""The acquired I and Q samples are used for demodulation as is.""" TRUE = 1 r"""The acquired I and Q samples are swapped before using the signal for demodulation."""
[docs] class DDemodPskFormat(Enum): """DDemodPskFormat.""" NORMAL = 0 r"""Sets the modulation type to PSK.""" OFFSET_QPSK = 1 r"""Sets the modulation type to offset quadrature PSK (OQPSK). The ideal symbol timing of Q is offset by half of a symbol period from the ideal symbol timing of I.""" PI_BY_4_QPSK = 2 r"""Sets the modulation type to pi/4 QPSK. In this modulation, each QPSK symbol is rotated by pi/4.""" PI_BY_8_8PSK = 3 r"""Sets the modulation type to pi/8-8 PSK. In this modulation, each 8 PSK symbol is rotated by pi/8.""" THREE_PI_BY_8_8PSK = 4 r"""Sets the modulation type to 3*pi/8-8 PSK. In this modulation, each 8 PSK symbol is rotated by 3*pi/8.""" SHAPED_OFFSET_QPSK = 5 r"""Sets the modulation type to Shaped Offset QPSK.The ideal symbol timing of Q is offset by half of a symbol period from the ideal symbol timing of I and the waveform is shaped using frequency pulse filter."""
[docs] class DDemodDifferentialEnabled(Enum): """DDemodDifferentialEnabled.""" FALSE = 0 r"""The symbols are directly mapped onto the symbol map.""" TRUE = 1 r"""In case of PSK modulation, the transition between two consecutive symbols is mapped onto the symbol map. In case of MSK modulation, the consecutive bits are XORed. Other modulation types do not have any impact."""
[docs] class DDemodEvmNormalizationReference(Enum): """DDemodEvmNormalizationReference.""" PEAK = 0 r"""The EVM is normalized to the peak magnitude of the reference symbols.""" RMS = 1 r"""The EVM is normalized to the RMS magnitude of the reference symbols. This value is applicable only to modulation types, such as quadrature-amplitude modulation (QAM). This value is expressed in which the symbols in the map do not have a constant amplitude."""
[docs] class DDemodFskReferenceCompensationEnabled(Enum): """DDemodFskReferenceCompensationEnabled.""" FALSE = 0 r"""Does not compensate for gain errors.""" TRUE = 1 r"""Compensates for gain errors."""
[docs] class DDemodSymbolMapType(Enum): """DDemodSymbolMapType.""" AUTO = 0 r"""Uses a default symbol map.""" CUSTOM = 1 r"""Uses the map that you specify using the :py:meth:`configure_symbol_map` method ."""
[docs] class DDemodPulseShapingFilterType(Enum): """DDemodPulseShapingFilterType.""" RECTANGULAR = 0 r"""The transmitted waveform is filtered using a rectangular filter.""" RAISED_COSINE = 1 r"""The transmitted waveform is filtered using a raised cosine filter. Specify the filter Alpha in the :py:attr:`~nirfmxdemod.attributes.AttributeID.DDEMOD_PULSE_SHAPING_FILTER_PARAMETER` attribute.""" ROOT_RAISED_COSINE = 2 r"""The transmitted waveform is filtered using a root raised cosine filter. Specify the filter Alpha in the DDemod Pulse Shaping Filter Parameter attribute.""" GAUSSIAN = 3 r"""The transmitted waveform is filtered using a Gaussian filter. Specify the filter bandwidth * sample duration in the DDemod Pulse Shaping Filter Parameter attribute. This filter is applicable only to FSK and MSK modulation types.""" CUSTOM = 4 r"""The transmitted waveform is filtered using the coefficients that you specify in the :py:meth:`configure_pulse_shaping_filter_custom_coefficients` method.""" HALF_SINE = 5 r"""The transmitted waveform is filtered using a half sine filter.""" LINEARIZED_GMSK_EDGE = 6 r"""The transmitted waveform is filtered using an EDGE-specific linearized GMSK filter.""" SOQPSK_TG = 7 r"""The transmitted waveform is filtered using a SOQPSK - TG filter as defined in IRIG standard."""
[docs] class DDemodMeasurementFilterType(Enum): """DDemodMeasurementFilterType.""" AUTO = 0 r"""The signal analyzer computes the measurement filter coefficients based on the pulse-shaping filter information that you specify in the :py:attr:`~nirfmxdemod.attributes.AttributeID.DDEMOD_PULSE_SHAPING_FILTER_TYPE` attribute. If the DDemod Pulse Shaping Filter Type attribute is set to **Custom**, the signal analyzer enables equalization.""" CUSTOM = 1 r"""The signal analyzer uses the coefficients specified by :py:meth:`configure_measurement_filter_custom_coefficients` method."""
[docs] class DDemodEqualizerMode(Enum): """DDemodEqualizerMode.""" OFF = 0 r"""Equalization is not performed.""" TRAIN = 1 r"""The adaptive feedforward equalizer is turned ON to compensate for the effect of the channel. You can set the initial coefficients to be used by the equalizer. If you do not specify the initial coefficients, an impulse is used.""" HOLD = 2 r"""The filter that you specify using the :py:meth:`configure_equalizer_initial_coefficients` method is used as the channel filter, and it is applied before demodulating the acquired signal."""
[docs] class DDemodSynchronizationEnabled(Enum): """DDemodSynchronizationEnabled.""" FALSE = 0 r"""Does not search and synchronize the signal.""" TRUE = 1 r"""Searches and synchronizes the signal."""
[docs] class DDemodAveragingEnabled(Enum): """DDemodAveragingEnabled.""" FALSE = 0 r"""The measurement is performed on a single acquisition.""" TRUE = 1 r"""The measurement uses the value of the :py:attr:`~nirfmxdemod.attributes.AttributeID.DDEMOD_AVERAGING_COUNT` attribute for the number of acquisitions over which the measurement is averaged. The traces are not averaged."""
[docs] class DDemodSignalStructure(Enum): """DDemodSignalStructure.""" BURSTED = 0 r"""The signal is a bursty signal.""" CONTINUOUS = 1 r"""The signal is a continuous signal."""
[docs] class DDemodIQOffsetRemovalEnabled(Enum): """DDemodIQOffsetRemovalEnabled.""" FALSE = 0 r"""The IQ offset is not removed before the EVM measurement.""" TRUE = 1 r"""The IQ offset is removed before the EVM measurement."""
[docs] class DDemodCfoEstimationMode(Enum): """DDemodCfoEstimationMode.""" NARROW = 0 r"""The measurement disables coarse carrier frequency offset estimation.""" WIDE = 1 r"""The measurement enables coarse and fine carrier frequency offset estimation."""
[docs] class DDemodSearchLengthAuto(Enum): """DDemodSearchLengthAuto.""" FALSE = 0 r"""Synchronization bit pattern is searched in a waveform within the search Length duration.""" TRUE = 1 r"""Synchronization bit pattern is searched in a waveform of length determined by the measurement."""
[docs] class LimitedConfigurationChange(Enum): """LimitedConfigurationChange.""" DISABLED = 0 r"""This is the normal mode of RFmx operation. All configuration changes in RFmxInstr attributes or in personality attributes will be applied during RFmx Commit.""" NO_CHANGE = 1 r"""Signal configuration is locked after the first Commit of the named signal configuration. Any configuration change thereafter either in RFmxInstr attributes or personality attributes will not be considered by subsequent RFmx Commits or Initiates of this signal. Use **No Change** if you have created named signal configurations for all measurement configurations but are setting some RFmxInstr attributes. Refer to the Limitations of the Limited Configuration Change Property topic for more details about the limitations of using this mode.""" FREQUENCY = 2 r"""Signal configuration, other than center frequency and external attenuation, is locked after first Commit of the named signal configuration. Thereafter, only the :py:attr:`~nirfmxdemod.attributes.AttributeID.CENTER_FREQUENCY` and :py:attr:`~nirfmxdemod.attributes.AttributeID.CENTER_FREQUENCY` attribute value changes will be considered by subsequent driver Commits or Initiates of this signal. Refer to the Limitations of the Limited Configuration Change Property topic for more details about the limitations of using this mode.""" REFERENCE_LEVEL = 3 r"""Signal configuration, other than the reference level, is locked after first Commit of the named signal configuration. Thereafter only the :py:attr:`~nirfmxdemod.attributes.AttributeID.REFERENCE_LEVEL` attribute value change will be considered by subsequent driver Commits or Initiates of this signal. If you have configured this signal to use an IQ Power Edge Trigger, NI recommends that you set the :py:attr:`~nirfmxdemod.attributes.AttributeID.REFERENCE_LEVEL` to **Relative** so that the trigger level is automatically adjusted as you adjust the reference level. Refer to the Limitations of the Limited Configuration Change Property topic for more details about the limitations of using this mode.""" FREQUENCY_AND_REFERENCE_LEVEL = 4 r"""Signal configuration, other than center frequency, reference level, and external attenuation, is locked after first Commit of the named signal configuration. Thereafter only Center Frequency, Reference Level, and External Attenuation attribute value changes will be considered by subsequent driver Commits or Initiates of this signal. If you have configured this signal to use an IQ Power Edge Trigger, NI recommends you set the IQ Power Edge Level Type attribute to **Relative** so that the trigger level is automatically adjusted as you adjust the reference level. Refer to the Limitations of the Limited Configuration Change Property topic for more details about the limitations of using this mode.""" SELECTED_PORTS_FREQUENCY_AND_REFERENCE_LEVEL = 5 r"""Signal configuration, other than Selected Ports, Center frequency, Reference level, External attenuation, and RFInstr configuration, is locked after first Commit or Initiate of the named signal configuration. Thereafter only Selected Ports, Center Frequency, Reference Level, and External Attenuation attribute value changes will be considered by subsequent driver Commits or Initiates of this signal. If you have configured this signal to use an IQ Power Edge Trigger, NI recommends you set the IQ Power Edge Level Type attribute to **Relative** so that the trigger level is automatically adjusted as you adjust the reference level. Refer to the Limitations of the Limited Configuration Change Property topic for more details about the limitations of using this mode."""
[docs] class MeasurementTypes(IntFlag): """MeasurementTypes.""" ADEMOD = 1 << 0 r"""Selects ADEMOD measurement.""" DDEMOD = 1 << 1 r"""Selects DDEMOD measurement."""