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
# noinspection PyPep8Naming,PyAttributeOutsideInit,SpellCheckingInspection
class DateCls:
"""
| Commands in total: 1
| Subgroups: 0
| Direct child commands: 1
"""
def __init__(self, core: Core, parent):
self._core = core
self._cmd_group = CommandsGroup("date", core, parent)
[docs]
def set(self, year: int, month: int, day: int) -> None:
"""
``[SOURce<HW>]:BB:LRWPan:TRIGger:TIME:DATE`` \n
Snippet: ``driver.source.bb.lrWpan.trigger.time.date.set(year = 1, month = 1, day = 1)`` \n
Sets the date for a time-based trigger signal. For trigger modes single or armed auto, you can activate triggering at
this date via the following command: SOURce<hw>:BB:<DigStd>:TRIGger:TIME:STATe <DigStd> is the mnemonic for the digital
standard, for example, ARB. Time-based triggering behaves analogously for all digital standards that support this feature.
:param year: integer Range: 1980 to 9999
:param month: integer Range: 1 to 12
:param day: integer Range: 1 to 31
"""
param = ArgSingleList().compose_cmd_string(ArgSingle('year', year, DataType.Integer), ArgSingle('month', month, DataType.Integer), ArgSingle('day', day, DataType.Integer))
self._core.io.write(f'SOURce<HwInstance>:BB:LRWPan:TRIGger:TIME:DATE {param}'.rstrip())
# noinspection PyTypeChecker
[docs]
class DateStruct(StructBase):
"""
Response structure. Fields: \n
- 1 Year: int: integer Range: 1980 to 9999
- 2 Month: int: integer Range: 1 to 12
- 3 Day: int: integer Range: 1 to 31
"""
__meta_args_list = [
ArgStruct.scalar_int('Year'),
ArgStruct.scalar_int('Month'),
ArgStruct.scalar_int('Day')]
def __init__(self):
StructBase.__init__(self, self)
self.Year: int = None
self.Month: int = None
self.Day: int = None
[docs]
def get(self) -> DateStruct:
"""
``[SOURce<HW>]:BB:LRWPan:TRIGger:TIME:DATE`` \n
Snippet: ``value: DateStruct = driver.source.bb.lrWpan.trigger.time.date.get()`` \n
Sets the date for a time-based trigger signal. For trigger modes single or armed auto, you can activate triggering at
this date via the following command: SOURce<hw>:BB:<DigStd>:TRIGger:TIME:STATe <DigStd> is the mnemonic for the digital
standard, for example, ARB. Time-based triggering behaves analogously for all digital standards that support this feature.
:return: structure: for return value, see the help for DateStruct structure arguments.
"""
return self._core.io.query_struct(f'SOURce<HwInstance>:BB:LRWPan:TRIGger:TIME:DATE?', self.__class__.DateStruct())