Работа с триггерами

В этом примере показано, как использовать различные типы триггеров и как сконфигурировать другие свойства триггеров.

Настройка свойств триггера

Чтобы получить список настраиваемых параметров триггера, используйте функцию TRIGGERINFO с объектом входа видео. TRIGGERINFO возвращает все возможные строения триггеров, поддерживаемые устройством сбора изображений, сопоставленным с объектом входа видео. Возможные строения состоят из допустимого типа триггера, условия триггера и комбинации источников триггеров.

Примечание. Все устройства для сбора изображений поддерживают немедленные и ручные типы триггеров. Оборудование триггера доступно, только если он поддерживается устройством сбора изображений.

% Access an image acquisition device.
vidobj = videoinput('matrox', 1);

% Display all valid trigger configurations.
triggerinfo(vidobj)
   Valid Trigger Configurations:

      TriggerType:   TriggerCondition:   TriggerSource:   
      'immediate'    'none'              'none'           
      'manual'       'none'              'none'           
      'hardware'     'fallingEdge'       'digitalTrigger' 
      'hardware'     'fallingEdge'       'optoTrigger'    
      'hardware'     'fallingEdge'       'timer1'         
      'hardware'     'fallingEdge'       'timer2'         
      'hardware'     'risingEdge'        'digitalTrigger' 
      'hardware'     'risingEdge'        'optoTrigger'    
      'hardware'     'risingEdge'        'timer1'         
      'hardware'     'risingEdge'        'timer2'   

Чтобы сконфигурировать настройки триггера для устройства сбора изображений, используйте функцию TRIGGERCONFIG с желаемым типом триггера, условием триггера и источником триггера.

triggerconfig(vidobj, 'hardware', 'fallingEdge', 'optoTrigger')

% View the current trigger configuration.
currentConfiguration = triggerconfig(vidobj)
currentConfiguration = 

         TriggerType: 'hardware'
    TriggerCondition: 'fallingEdge'
       TriggerSource: 'optoTrigger'

Примечание.Настройка параметров триггера требует уникального строения. Если установка типа триггера однозначно определяет строение, дальнейшие аргументы в TRIGGERCONFIG предоставляться не должны.

Аппаратные триггеры являются единственным типом триггеров, которые обычно имеют несколько допустимых строения.

Немедленный запуск

По умолчанию тип триггера объекта входа видео сконфигурирован для немедленного запуска. Немедленное срабатывание указывает, что логгирование данных должна начаться сразу после запуска функции START.

% Configure the trigger type.
triggerconfig(vidobj, 'immediate')

% Initiate the acquisition.
start(vidobj)

% Wait for acquisition to end.
wait(vidobj, 2)

% Determine the number frames acquired.
frameslogged = vidobj.FramesAcquired;
frameslogged =

    10

Ручное срабатывание триггера

Для ручного запуска требуется, чтобы функция TRIGGER была выдана до начала логгирования данных.

% Configure the trigger type.
triggerconfig(vidobj, 'manual')

% Initiate the acquisition.
start(vidobj)

% Verify no frames have been logged.
frameslogged = vidobj.FramesAcquired;
frameslogged =

     0
% Trigger the acquisition.
trigger(vidobj)

% Wait for the acquisition to end.
wait(vidobj, 2);

% Determine the number frames acquired.
frameslogged = vidobj.FramesAcquired;
frameslogged =

     10

Оборудование запуска

Аппаратное инициирование начинает регистрировать данные, как только условие триггера было достигнуто через источник триггера.

В этом примере мы подключили оптоизолированный источник триггера от генератора функции к нашему устройству сбора изображений. Устройство сбора изображений начнет регистрировать данные после обнаружения сигнала падающего ребра от источника.

% Configure the trigger settings.
triggerconfig(vidobj, 'hardware', 'fallingEdge', 'optoTrigger')

Первоначально от источника не посылается сигнал устройству сбора изображений.

% Initiate the acquisition.
start(vidobj)

% Verify nothing has been acquired.
frameslogged = vidobj.FramesAcquired;
frameslogged =

     0

Теперь сигнал квадратной волны будет передан от источника триггера к устройству сбора изображений.

% Wait for the acquisition to end.
wait(vidobj, 10)

% Verify frames were acquired.
frameslogged = vidobj.FramesAcquired;
frameslogged =

    10
% Once the video input object is no longer needed, delete
% it and clear it from the workspace.
delete(vidobj)
clear vidobj