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 ...Internal.ArgSingleList import ArgSingleList
from ...Internal.ArgSingle import ArgSingle
from ... import enums
from ... import repcap
# noinspection PyPep8Naming,PyAttributeOutsideInit,SpellCheckingInspection
class SourceCls:
"""
| Commands in total: 1
| Subgroups: 0
| Direct child commands: 1
"""
def __init__(self, core: Core, parent):
self._core = core
self._cmd_group = CommandsGroup("source", core, parent)
[docs]
def set(self, signal_source: enums.SignalSource, signal_source_2: enums.SignalSource=None, measurement=repcap.Measurement.Default) -> None:
"""
``MEASurement<*>:SOURce`` \n
Snippet: ``driver.measurement.source.set(signal_source = enums.SignalSource.AJ1, signal_source_2 = enums.SignalSource.AJ1, measurement = repcap.Measurement.Default)`` \n
Defines the source of the measurement. Availability of sources depends on the selected category and installed options.
:param signal_source: First source of the measurement, see 'Waveform parameter'
:param signal_source_2: Second measurement source. The 2nd source is required for amplitude/time measurements that are performed on two waveforms (e.g. delay, phase) . Digital channels are only available if SignalSource is a digital channel. Step response, advanced jitter track components and synthetic eye sources are available for amplitude/time measurements only.
:param measurement: optional repeated capability selector. Default value: Nr1 (settable in the interface 'Measurement')
"""
param = ArgSingleList().compose_cmd_string(ArgSingle('signal_source', signal_source, DataType.Enum, enums.SignalSource), ArgSingle('signal_source_2', signal_source_2, DataType.Enum, enums.SignalSource, is_optional=True))
measurement_cmd_val = self._cmd_group.get_repcap_cmd_value(measurement, repcap.Measurement)
self._core.io.write(f'MEASurement{measurement_cmd_val}:SOURce {param}'.rstrip())
# noinspection PyTypeChecker
[docs]
class SourceStruct(StructBase):
"""
Response structure. Fields: \n
- 1 Signal_Source: enums.SignalSource: First source of the measurement, see 'Waveform parameter'
- 2 Signal_Source_2: enums.SignalSource: Second measurement source. The 2nd source is required for amplitude/time measurements that are performed on two waveforms (e.g. delay, phase) . Digital channels are only available if SignalSource is a digital channel. Step response, advanced jitter track components and synthetic eye sources are available for amplitude/time measurements only.
"""
__meta_args_list = [
ArgStruct.scalar_enum('Signal_Source', enums.SignalSource),
ArgStruct.scalar_enum('Signal_Source_2', enums.SignalSource)]
def __init__(self):
StructBase.__init__(self, self)
self.Signal_Source: enums.SignalSource = None
self.Signal_Source_2: enums.SignalSource = None
[docs]
def get(self, measurement=repcap.Measurement.Default) -> SourceStruct:
"""
``MEASurement<*>:SOURce`` \n
Snippet: ``value: SourceStruct = driver.measurement.source.get(measurement = repcap.Measurement.Default)`` \n
Defines the source of the measurement. Availability of sources depends on the selected category and installed options.
:param measurement: optional repeated capability selector. Default value: Nr1 (settable in the interface 'Measurement')
:return: structure: for return value, see the help for SourceStruct structure arguments.
"""
measurement_cmd_val = self._cmd_group.get_repcap_cmd_value(measurement, repcap.Measurement)
return self._core.io.query_struct(f'MEASurement{measurement_cmd_val}:SOURce?', self.__class__.SourceStruct())