zhinst ====== .. py:module:: quantify_scheduler.instrument_coordinator.components.zhinst .. autoapi-nested-parse:: Module containing Zurich Instruments InstrumentCoordinator Components. Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: quantify_scheduler.instrument_coordinator.components.zhinst.ZIInstrumentCoordinatorComponent quantify_scheduler.instrument_coordinator.components.zhinst.HDAWGInstrumentCoordinatorComponent quantify_scheduler.instrument_coordinator.components.zhinst.UHFQAInstrumentCoordinatorComponent Attributes ~~~~~~~~~~ .. autoapisummary:: quantify_scheduler.instrument_coordinator.components.zhinst.logger .. py:data:: logger .. py:exception:: AcquisitionProtocolNotSupportedError Bases: :py:obj:`NotImplementedError` Method or function hasn't been implemented yet. .. py:class:: ZIInstrumentCoordinatorComponent(instrument: zhinst.qcodes.base.ZIBaseInstrument, **kwargs: Any) Bases: :py:obj:`quantify_scheduler.instrument_coordinator.components.base.InstrumentCoordinatorComponentBase` Zurich Instruments InstrumentCoordinator component base class. .. py:property:: is_running :type: bool :abstractmethod: Returns if the InstrumentCoordinator component is running. The property ``is_running`` is evaluated each time it is accessed. Example: .. code-block:: while my_instrument_coordinator_component.is_running: print('running') :returns: The components' running state. .. py:method:: prepare(zi_device_config: quantify_scheduler.backends.zhinst_backend.ZIDeviceConfig) -> bool Prepare the InstrumentCoordinator component with configuration required to arm the instrument. The preparation is skipped when the new zi_device_config is the same as that from the previous time prepare was called. This saves significant time overhead. :param zi_device_config: The ZI instrument configuration. See the link for details of the configuration format. :returns: A boolean indicating if the ZI component was configured in this call. .. py:method:: retrieve_acquisition() -> xarray.Dataset | None Gets and returns acquisition data. .. py:class:: HDAWGInstrumentCoordinatorComponent(instrument: zhinst.qcodes.HDAWG, **kwargs: Any) Bases: :py:obj:`ZIInstrumentCoordinatorComponent` Zurich Instruments HDAWG InstrumentCoordinator Component class. .. py:property:: instrument :type: zhinst.qcodes.HDAWG Returns the instrument referenced by `instrument_ref`. .. py:property:: is_running :type: bool Returns if the InstrumentCoordinator component is running. The property ``is_running`` is evaluated each time it is accessed. Example: .. code-block:: while my_instrument_coordinator_component.is_running: print('running') :returns: The components' running state. .. py:method:: get_awg(index: int) -> zhinst.qcodes.hdawg.AWG Returns the AWG by index. :param index: The awg index. :returns: The HDAWG AWG instance. .. py:method:: start() -> None Starts all HDAWG AWG(s) in reversed order by index. .. py:method:: stop() -> None Stops all HDAWG AWG(s) in order by index. .. py:method:: retrieve_acquisition() -> None Gets and returns acquisition data. .. py:method:: wait_done(timeout_sec: int = 10) -> None Wait until the InstrumentCoordinator is done. The coordinator is ready when it has stopped running or until it has exceeded the amount of time to run. The maximum amount of time, in seconds, before it times out is set via the timeout_sec parameter. :param timeout_sec: The maximum amount of time in seconds before a timeout. .. py:method:: get_hardware_log(compiled_schedule: quantify_scheduler.schedules.schedule.CompiledSchedule) -> dict | None Retrieve the hardware logs of the instrument associated to this component. .. py:class:: UHFQAInstrumentCoordinatorComponent(instrument: zhinst.qcodes.UHFQA, **kwargs: Any) Bases: :py:obj:`ZIInstrumentCoordinatorComponent` Zurich Instruments UHFQA InstrumentCoordinator Component class. .. py:property:: instrument :type: zhinst.qcodes.UHFQA Returns the instrument referenced by `instrument_ref`. .. py:property:: is_running :type: bool Returns if the InstrumentCoordinator component is running. The property ``is_running`` is evaluated each time it is accessed. Example: .. code-block:: while my_instrument_coordinator_component.is_running: print('running') :returns: The components' running state. .. py:method:: start() -> None Starts the InstrumentCoordinator Component. .. py:method:: stop() -> None Stops the InstrumentCoordinator Component. .. py:method:: prepare(zi_device_config: quantify_scheduler.backends.zhinst_backend.ZIDeviceConfig) -> bool Prepares the component with configurations required to arm the instrument. After this step is complete, the waveform file is uploaded to the LabOne WebServer. :param zi_device_config: The ZI instrument configuration. See the link for details of the configuration format. :returns: A boolean indicating if the ZI component was configured in this call. .. py:method:: retrieve_acquisition() -> xarray.Dataset Gets and returns acquisition data. .. py:method:: wait_done(timeout_sec: int = 10) -> None Wait until the InstrumentCoordinator is done. The coordinator is ready when it has stopped running or until it has exceeded the amount of time to run. The maximum amount of time, in seconds, before it times out is set via the timeout_sec parameter. :param timeout_sec: The maximum amount of time in seconds before a timeout. .. py:method:: get_hardware_log(compiled_schedule: quantify_scheduler.schedules.schedule.CompiledSchedule) -> dict | None Retrieve the hardware logs of the instrument associated to this component.