from typing import List
from .....Internal.Core import Core
from .....Internal.CommandsGroup import CommandsGroup
from .....Internal import Conversions
from .....Internal.Utilities import trim_str_response
from ..... import enums
# noinspection PyPep8Naming,PyAttributeOutsideInit,SpellCheckingInspection
[docs]class DmrCls:
"""Dmr commands group definition. 10 total commands, 0 Subgroups, 10 group commands"""
def __init__(self, core: Core, parent):
self._core = core
self._cmd_group = CommandsGroup("dmr", core, parent)
# noinspection PyTypeChecker
[docs] def get_pattern(self) -> enums.DmrPattern:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:PATTern \n
Snippet: value: enums.DmrPattern = driver.source.afRf.generator.dmr.get_pattern() \n
Selects the bit pattern to be transmitted as payload for DMR. \n
:return: pattern: P1031 | SILence | PRBS9 | O153 | C153 P1031 Audio tone with a frequency of 1031 Hz. SILence The payload contains silence. PRBS9 Pseudo-random binary sequence with 511 bits (29-1) . O153 Modified 'PRBS9' pattern optimized for bit error rate (BER) measurements. C153 Modified 'PRBS9' pattern with bit errors after every 100 bits resulting in BER = 1 %. Use this pattern to verify that your DUT can calculate bit errors.
"""
response = self._core.io.query_str_with_opc('SOURce:AFRF:GENerator<Instance>:DMR:PATTern?')
return Conversions.str_to_scalar_enum(response, enums.DmrPattern)
[docs] def set_pattern(self, pattern: enums.DmrPattern) -> None:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:PATTern \n
Snippet: driver.source.afRf.generator.dmr.set_pattern(pattern = enums.DmrPattern.BPRB15) \n
Selects the bit pattern to be transmitted as payload for DMR. \n
:param pattern: P1031 | SILence | PRBS9 | O153 | C153 P1031 Audio tone with a frequency of 1031 Hz. SILence The payload contains silence. PRBS9 Pseudo-random binary sequence with 511 bits (29-1) . O153 Modified 'PRBS9' pattern optimized for bit error rate (BER) measurements. C153 Modified 'PRBS9' pattern with bit errors after every 100 bits resulting in BER = 1 %. Use this pattern to verify that your DUT can calculate bit errors.
"""
param = Conversions.enum_scalar_to_str(pattern, enums.DmrPattern)
self._core.io.write_with_opc(f'SOURce:AFRF:GENerator<Instance>:DMR:PATTern {param}')
[docs] def get_svalue(self) -> str:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:SVALue \n
Snippet: value: str = driver.source.afRf.generator.dmr.get_svalue() \n
Specifies the 9-bit seed value for the PRBS generator, for DMR. \n
:return: svalue: Range: #H0 to #H1FF
"""
response = self._core.io.query_str_with_opc('SOURce:AFRF:GENerator<Instance>:DMR:SVALue?')
return trim_str_response(response)
[docs] def set_svalue(self, svalue: str) -> None:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:SVALue \n
Snippet: driver.source.afRf.generator.dmr.set_svalue(svalue = r1) \n
Specifies the 9-bit seed value for the PRBS generator, for DMR. \n
:param svalue: Range: #H0 to #H1FF
"""
param = Conversions.value_to_str(svalue)
self._core.io.write_with_opc(f'SOURce:AFRF:GENerator<Instance>:DMR:SVALue {param}')
[docs] def get_ccode(self) -> int:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:CCODe \n
Snippet: value: int = driver.source.afRf.generator.dmr.get_ccode() \n
Defines the color code to be signaled to the DUT, for DMR. \n
:return: ccode: Range: 0 to 15
"""
response = self._core.io.query_str_with_opc('SOURce:AFRF:GENerator<Instance>:DMR:CCODe?')
return Conversions.str_to_int(response)
[docs] def set_ccode(self, ccode: int) -> None:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:CCODe \n
Snippet: driver.source.afRf.generator.dmr.set_ccode(ccode = 1) \n
Defines the color code to be signaled to the DUT, for DMR. \n
:param ccode: Range: 0 to 15
"""
param = Conversions.decimal_value_to_str(ccode)
self._core.io.write_with_opc(f'SOURce:AFRF:GENerator<Instance>:DMR:CCODe {param}')
[docs] def get_saddress(self) -> float:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:SADDress \n
Snippet: value: float = driver.source.afRf.generator.dmr.get_saddress() \n
Configures the source address to be signaled to the DUT, for DMR. \n
:return: saddress: Range: 0 to 16777215
"""
response = self._core.io.query_str_with_opc('SOURce:AFRF:GENerator<Instance>:DMR:SADDress?')
return Conversions.str_to_float(response)
[docs] def set_saddress(self, saddress: float) -> None:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:SADDress \n
Snippet: driver.source.afRf.generator.dmr.set_saddress(saddress = 1.0) \n
Configures the source address to be signaled to the DUT, for DMR. \n
:param saddress: Range: 0 to 16777215
"""
param = Conversions.decimal_value_to_str(saddress)
self._core.io.write_with_opc(f'SOURce:AFRF:GENerator<Instance>:DMR:SADDress {param}')
[docs] def get_gaddress(self) -> float:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:GADDress \n
Snippet: value: float = driver.source.afRf.generator.dmr.get_gaddress() \n
Configures the group address to be signaled to the DUT, for DMR. \n
:return: gaddress: Range: 0 to 16777215
"""
response = self._core.io.query_str_with_opc('SOURce:AFRF:GENerator<Instance>:DMR:GADDress?')
return Conversions.str_to_float(response)
[docs] def set_gaddress(self, gaddress: float) -> None:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:GADDress \n
Snippet: driver.source.afRf.generator.dmr.set_gaddress(gaddress = 1.0) \n
Configures the group address to be signaled to the DUT, for DMR. \n
:param gaddress: Range: 0 to 16777215
"""
param = Conversions.decimal_value_to_str(gaddress)
self._core.io.write_with_opc(f'SOURce:AFRF:GENerator<Instance>:DMR:GADDress {param}')
# noinspection PyTypeChecker
[docs] def get_mode(self) -> enums.FskMode:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:MODE \n
Snippet: value: enums.FskMode = driver.source.afRf.generator.dmr.get_mode() \n
Queries the modulation type used for DMR. \n
:return: mode: FSK4
"""
response = self._core.io.query_str('SOURce:AFRF:GENerator<Instance>:DMR:MODE?')
return Conversions.str_to_scalar_enum(response, enums.FskMode)
[docs] def get_standard_dev(self) -> List[float]:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:SDEViation \n
Snippet: value: List[float] = driver.source.afRf.generator.dmr.get_standard_dev() \n
Queries the frequency deviations used for 4FSK modulation, for DMR. \n
:return: sdeviation: List of four frequency deviations, for the symbols 01, 00, 10, 11. Range: -2000 Hz to 2000 Hz, Unit: Hz
"""
response = self._core.io.query_bin_or_ascii_float_list_with_opc('SOURce:AFRF:GENerator<Instance>:DMR:SDEViation?')
return response
[docs] def get_symbol_rate(self) -> float:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:SRATe \n
Snippet: value: float = driver.source.afRf.generator.dmr.get_symbol_rate() \n
Queries the symbol rate for DMR. \n
:return: srate: Range: 4800 symbol/s to 4800 symbol/s , Unit: symbol/s
"""
response = self._core.io.query_str('SOURce:AFRF:GENerator<Instance>:DMR:SRATe?')
return Conversions.str_to_float(response)
# noinspection PyTypeChecker
[docs] def get_filter_py(self) -> enums.PulseShapingFilter:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:FILTer \n
Snippet: value: enums.PulseShapingFilter = driver.source.afRf.generator.dmr.get_filter_py() \n
Queries the filter type used for pulse shaping for DMR. \n
:return: filter_py: RRC
"""
response = self._core.io.query_str('SOURce:AFRF:GENerator<Instance>:DMR:FILTer?')
return Conversions.str_to_scalar_enum(response, enums.PulseShapingFilter)
[docs] def get_ro_factor(self) -> float:
"""SCPI: SOURce:AFRF:GENerator<Instance>:DMR:ROFactor \n
Snippet: value: float = driver.source.afRf.generator.dmr.get_ro_factor() \n
Queries the roll-off factor of the filter used for pulse shaping for DMR. \n
:return: ro_factor: Range: 0.2 to 0.2
"""
response = self._core.io.query_str('SOURce:AFRF:GENerator<Instance>:DMR:ROFactor?')
return Conversions.str_to_float(response)