atomiq.components.sinara.kasli ============================== .. py:module:: atomiq.components.sinara.kasli Classes ------- .. autoapisummary:: atomiq.components.sinara.kasli.Kasli atomiq.components.sinara.kasli.DioOutput atomiq.components.sinara.kasli.DioInput Module Contents --------------- .. py:class:: Kasli(*args, **kwargs) Bases: :py:obj:`atomiq.components.primitives.Component` Kasli Module .. py:class:: DioOutput(kasli, ttl, *args, **kwargs) Bases: :py:obj:`atomiq.components.primitives.Component`, :py:obj:`atomiq.components.primitives.Switchable` Fast Digital Output Channel Attached to Kasli This class describes the fast digital output channels directly attached to your Kasli. :param kasli: Kasli module that this digital output belongs to :param ttl: ARTIQ device from `device_db.py` for the DIO channel .. py:attribute:: kernel_invariants .. py:attribute:: kasli .. py:attribute:: ttl .. py:method:: on() .. py:method:: off() .. py:class:: DioInput(kasli, ttl, *args, **kwargs) Bases: :py:obj:`atomiq.components.primitives.Component`, :py:obj:`atomiq.components.primitives.Measurable` Fast Digital Input Channel Attached to Kasli This class describes the fast digital input channels directly attached to your Kasli. :param kasli: Kasli module that this digital input belongs to :param ttl: ARTIQ device from `device_db.py` for the DIO channel .. py:attribute:: kernel_invariants .. py:attribute:: kasli .. py:attribute:: ttl .. py:method:: measure() .. py:method:: wait_for_trigger(timeout, edge = 'rising', log = False, keep_open = False) Wait for a trigger to occur. This function sets the time cursor to the time where the trigger edge is detected. If no edge is detected in the given timeout, the time cursor is set to the end of the gating window (set by `timeout`). :param timeout: Timeout in seconds :param edge: Edge to wait for (rising or falling) :param log: If True emits a warning if no trigger is detected :param keep_open: True keeps the gate open after the trigger window. This can be used to rapidly trigger on subsequent pulses on the microsecond timescale. Note that the trigger listener must be closed manually afterwards by either running this function with `keep_open=True` or by calling `self.ttl._set_sensitivity(0)` to avoid kernel slowdown. :returns: True if a trigger is detected, False if not :rtype: bool Info: Typically a delay of about 2 us is necessary after this command to avoid underflows.