from typing import List
from .....Internal.Core import Core
from .....Internal.CommandsGroup import CommandsGroup
from .....Internal.Types import DataType
from .....Internal.StructBase import StructBase
from .....Internal.ArgStruct import ArgStruct
from ..... import enums
# noinspection PyPep8Naming,PyAttributeOutsideInit,SpellCheckingInspection
[docs]class SequenceCls:
"""Sequence commands group definition. 1 total commands, 0 Subgroups, 1 group commands"""
def __init__(self, core: Core, parent):
self._core = core
self._cmd_group = CommandsGroup("sequence", core, parent)
# noinspection PyTypeChecker
[docs] class SequenceStruct(StructBase):
"""Structure for setting input parameters. Fields: \n
- Frequency: List[float]: Defines the frequency. Each frequency corresponds to one list entry. Range: 0 to Fmax, Unit: Hz
- Ref_Level: List[float]: Defines the reference level for a list entry. Range: -130 to 30, Unit: dBm
- Rfattenuation: List[float]: Defines the RF attenuation for a list entry. Range: 0 to 70, Unit: dB
- Filter_Type: List[float or bool]: Selects the filter type for a list entry. For more information see [SENSe:]BANDwidth[:RESolution]:TYPE.
- Rbw: List[enums.FilterTypeK91]: Defines the resolution bandwidth for a list entry.
- Vbw: List[float]: Defines the measurement time for a list entry.
- Meas_Time: List[float]: Defines the measurement time for a list entry. Range: 1 us to 16000 s, Unit: s
- Trigger_Level: List[float]: Reserved for future use; currently: must be 0.
- Power_Level: List[float]: Unit: PCT"""
__meta_args_list = [
ArgStruct('Frequency', DataType.FloatList, None, False, True, 1),
ArgStruct('Ref_Level', DataType.FloatList, None, False, True, 1),
ArgStruct('Rfattenuation', DataType.FloatList, None, False, True, 1),
ArgStruct('Filter_Type', DataType.FloatList, None, False, True, 1),
ArgStruct('Rbw', DataType.EnumList, enums.FilterTypeK91, False, True, 1),
ArgStruct('Vbw', DataType.FloatList, None, False, True, 1),
ArgStruct('Meas_Time', DataType.FloatList, None, False, True, 1),
ArgStruct('Trigger_Level', DataType.FloatList, None, False, True, 1),
ArgStruct('Power_Level', DataType.FloatList, None, False, True, 1)]
def __init__(self):
StructBase.__init__(self, self)
self.Frequency: List[float] = None
self.Ref_Level: List[float] = None
self.Rfattenuation: List[float] = None
self.Filter_Type: List[float or bool] = None
self.Rbw: List[enums.FilterTypeK91] = None
self.Vbw: List[float] = None
self.Meas_Time: List[float] = None
self.Trigger_Level: List[float] = None
self.Power_Level: List[float] = None
[docs] def set(self, structure: SequenceStruct) -> None:
"""SCPI: [SENSe]:LIST:POWer[:SEQuence] \n
Snippet with structure: \n
structure = driver.sense.listPy.power.sequence.SequenceStruct() \n
structure.Frequency: List[float] = [1.1, 2.2, 3.3] \n
structure.Ref_Level: List[float] = [1.1, 2.2, 3.3] \n
structure.Rfattenuation: List[float] = [1.1, 2.2, 3.3] \n
structure.Filter_Type: List[float or bool] = [1.1, True, 2.2, False, 3.3] \n
structure.Rbw: List[enums.FilterTypeK91] = [FilterTypeK91.CFILter, FilterTypeK91.RRC] \n
structure.Vbw: List[float] = [1.1, 2.2, 3.3] \n
structure.Meas_Time: List[float] = [1.1, 2.2, 3.3] \n
structure.Trigger_Level: List[float] = [1.1, 2.2, 3.3] \n
structure.Power_Level: List[float] = [1.1, 2.2, 3.3] \n
driver.sense.listPy.power.sequence.set(structure) \n
Configures and initiates the List Evaluation measurement. The list can contain up to 200 entries (frequencies) . You can
define a different instrument setup for each frequency that is in the list. If you synchronize the measurement with *OPC,
the FSW produces a service request when all frequencies have been measured and the number of individual measurements has
been performed. Note that using the command as a query initiates the measurement and returns the results if all
frequencies have been measured. For more information on querying the results see [SENSe:]LIST:POWer:RESult?. \n
:param structure: for set value, see the help for SequenceStruct structure arguments.
"""
self._core.io.write_struct_with_opc(f'SENSe:LIST:POWer:SEQuence', structure)
[docs] def get(self) -> SequenceStruct:
"""SCPI: [SENSe]:LIST:POWer[:SEQuence] \n
Snippet: value: SequenceStruct = driver.sense.listPy.power.sequence.get() \n
Configures and initiates the List Evaluation measurement. The list can contain up to 200 entries (frequencies) . You can
define a different instrument setup for each frequency that is in the list. If you synchronize the measurement with *OPC,
the FSW produces a service request when all frequencies have been measured and the number of individual measurements has
been performed. Note that using the command as a query initiates the measurement and returns the results if all
frequencies have been measured. For more information on querying the results see [SENSe:]LIST:POWer:RESult?. \n
:return: structure: for return value, see the help for SequenceStruct structure arguments."""
return self._core.io.query_struct_with_opc(f'SENSe:LIST:POWer:SEQuence?', self.__class__.SequenceStruct())