Source code for zhinst.toolkit.driver.devices.uhfli
"""UHFLI Instrument Driver."""
import logging
import typing as t
from zhinst.toolkit.driver.devices.base import BaseInstrument
from zhinst.toolkit.driver.nodes.awg import AWG
from zhinst.toolkit.nodetree.helper import lazy_property
from zhinst.toolkit.nodetree.node import Node, NodeList
logger = logging.getLogger(__name__)
[docs]class UHFLI(BaseInstrument):
"""High-level driver for the Zurich Instruments UHFLI."""
@lazy_property
def awgs(self) -> t.Union[t.Sequence[AWG], Node]:
"""A Sequence of AWG Cores.
Device options requirement(s): AWG
"""
if "AWG" not in self.features.options():
logger.error("Missing option: AWG")
return Node(
self._root,
self._tree + ("awgs",),
)
return NodeList(
[
AWG(
self.root,
self._tree + ("awgs", str(i)),
self.serial,
i,
self.device_type,
self.device_options,
)
for i in range(len(self["awgs"]))
],
self._root,
self._tree + ("awgs",),
)