exponenta event banner

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

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

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

Для получения списка настраиваемых настроек триггера используйте функцию 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