Source code for nidaqmx._task_modules.triggers

# Do not edit this file; it was automatically generated.

import ctypes
import numpy

from nidaqmx._lib import lib_importer, wrapped_ndpointer, ctypes_byte_str
from nidaqmx.system.physical_channel import PhysicalChannel
from nidaqmx.errors import (
    check_for_error, is_string_buffer_too_small, is_array_buffer_too_small)
from nidaqmx._task_modules.triggering.arm_start_trigger import ArmStartTrigger
from nidaqmx._task_modules.triggering.handshake_trigger import HandshakeTrigger
from nidaqmx._task_modules.triggering.pause_trigger import PauseTrigger
from nidaqmx._task_modules.triggering.reference_trigger import ReferenceTrigger
from nidaqmx._task_modules.triggering.start_trigger import StartTrigger
from nidaqmx.constants import (
    SyncType)


[docs]class Triggers(object): """ Represents the trigger configurations for a DAQmx task. """ def __init__(self, task_handle): self._handle = task_handle self._arm_start_trigger = ArmStartTrigger(self._handle) self._handshake_trigger = HandshakeTrigger(self._handle) self._pause_trigger = PauseTrigger(self._handle) self._reference_trigger = ReferenceTrigger(self._handle) self._start_trigger = StartTrigger(self._handle) @property def arm_start_trigger(self): """ :class:`nidaqmx._task_modules.triggering.arm_start_trigger.ArmStartTrigger`: Gets the arm start trigger configurations for the task. """ return self._arm_start_trigger @property def handshake_trigger(self): """ :class:`nidaqmx._task_modules.triggering.handshake_trigger.HandshakeTrigger`: Gets the handshake trigger configurations for the task. """ return self._handshake_trigger @property def pause_trigger(self): """ :class:`nidaqmx._task_modules.triggering.pause_trigger.PauseTrigger`: Gets the pause trigger configurations for the task. """ return self._pause_trigger @property def reference_trigger(self): """ :class:`nidaqmx._task_modules.triggering.reference_trigger.ReferenceTrigger`: Gets the reference trigger configurations for the task. """ return self._reference_trigger @property def start_trigger(self): """ :class:`nidaqmx._task_modules.triggering.start_trigger.StartTrigger`: Gets the start trigger configurations for the task. """ return self._start_trigger @property def sync_type(self): """ :class:`nidaqmx.constants.SyncType`: Specifies the role of the device in a synchronized system. Setting this value to **SyncType.MASTER** or **SyncType.SLAVE** enables trigger skew correction. If you enable trigger skew correction, set this property to **SyncType.MASTER** on only one device, and set this property to **SyncType.SLAVE** on the other devices. """ val = ctypes.c_int() cfunc = lib_importer.windll.DAQmxGetTriggerSyncType if cfunc.argtypes is None: with cfunc.arglock: if cfunc.argtypes is None: cfunc.argtypes = [ lib_importer.task_handle, ctypes.POINTER(ctypes.c_int)] error_code = cfunc( self._handle, ctypes.byref(val)) check_for_error(error_code) return SyncType(val.value) @sync_type.setter def sync_type(self, val): val = val.value cfunc = lib_importer.windll.DAQmxSetTriggerSyncType if cfunc.argtypes is None: with cfunc.arglock: if cfunc.argtypes is None: cfunc.argtypes = [ lib_importer.task_handle, ctypes.c_int] error_code = cfunc( self._handle, val) check_for_error(error_code) @sync_type.deleter def sync_type(self): cfunc = lib_importer.windll.DAQmxResetTriggerSyncType if cfunc.argtypes is None: with cfunc.arglock: if cfunc.argtypes is None: cfunc.argtypes = [ lib_importer.task_handle] error_code = cfunc( self._handle) check_for_error(error_code)