Определение типа триггера

Сравнение типов триггеров

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

Сравнение типов триггеров

Значение TriggerType

Значения TriggerSource и TriggerCondition

Описание

'immediate'

Всегда 'none'

Триггер происходит автоматически, сразу после start функция выдается. Это тип триггера по умолчанию. Дополнительные сведения см. в разделе Использование немедленного триггера.

'manual'

Всегда 'none'

Триггер возникает, когда вы выдаете trigger функция. Ручной триггер может обеспечить больший контроль над получением изображения. Для примера можно контролировать получаемый видеопоток, используя preview и вручную выполнять триггер, когда вы наблюдаете конкретное условие в сцене. Для получения дополнительной информации см. раздел Использование триггера вручную.

'hardware'

Устройство-специфическое

Аппаратные триггеры являются внешними сигналами, которые обрабатываются непосредственно оборудованием. Этот тип триггера используется, когда синхронизация с другим устройством является частью настройки сбора изображений или когда требуется скорость. Аппаратное устройство может обрабатывать входной сигнал намного быстрее, чем программное обеспечение. Дополнительные сведения см. в разделе Использование аппаратного триггера.

Примечание

Только подмножество устройств сбора изображений поддерживает оборудование триггеры. Для определения типов триггеров, поддерживаемых вашим устройством, смотрите Определение допустимых строений.

Примечание

Чтобы получить список опций, которые можно использовать для функции, нажмите клавишу Tab после ввода функции на MATLAB® командная строка. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой расширенной функции заполнения клавишей Tab, смотрите Использование заполнения клавишей Tab для функций.

Использование немедленного триггера

Чтобы использовать немедленный триггер, просто создайте объект входа видео. Немедленное срабатывание является типом триггера по умолчанию для всех объектов входа видео. С помощью немедленного триггера объект выполняет триггер сразу после того, как вы запускаете объект, выполняемый с start команда. Следующий рисунок иллюстрирует немедленный триггер.

Немедленный триггер

Следующий пример иллюстрирует, как использовать немедленный триггер:

  1. Создайте объект сбора изображений - Этот пример создает объект входа видео для Matrox® устройство для сбора изображений. Чтобы запустить этот пример в своей системе, используйте imaqhwinfo функция, чтобы получить конструктор объектов для устройства сбора изображений и заменить этот синтаксис следующим кодом.

    vid = videoinput('matrox',1);

    Проверьте, что объект не получил никаких систем координат.

    vid.FramesAcquired
    ans =
    
    	0
  2. Сконфигурируйте свойства - Чтобы использовать немедленный триггер, вы не должны конфигурировать TriggerType свойство из-за 'immediate' является типом триггера по умолчанию. Проверить это можно при помощи triggerconfig функция для просмотра текущего строения триггера или путем просмотра свойств объекта входа видео.

    triggerconfig(vid)
    ans =
    
             TriggerType: 'immediate'
        TriggerCondition: 'none'
           TriggerSource: 'none'

    Этот пример устанавливает значение FramesPerTrigger свойство к 5. (По умолчанию это 10 системы координат на триггер.)

    vid.FramesPerTrigger = 5
  3. Запустите объект сбора изображений - Вызовите start функция для запуска объекта сбора изображений. По умолчанию объект выполняет немедленный триггер и получает пять систем координат данных, регистрируя данные в буфере памяти. После логгирования указанного количества систем координат объект перестает выполняться.

    start(vid)

    Чтобы проверить, что объект получил данные, просмотрите значение FramesAcquired свойство. Объект обновляет значение этого свойства при получении данных.

    vid.FramesAcquired
    ans =
    
       5

    Чтобы выполнить другой немедленный триггер, необходимо перезапустить объект. Обратите внимание, однако, что это удаляет данные, полученные первым триггером. Чтобы выполнить несколько немедленных триггеров, задайте значение для TriggerRepeat свойство. Дополнительные сведения см. в разделе Установка нескольких триггеров.

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

    delete(vid)
    clear vid

Использование триггера вручную

Чтобы использовать триггер вручную, создайте объект входа видео и установите значение TriggerType свойство к 'manual'. Объект входа видео выполняет ручной триггер после того, как вы выдаете trigger функция. Следующий рисунок иллюстрирует ручной триггер.

Ручной триггер

Следующий пример иллюстрирует использование триггера вручную:

  1. Создайте объект сбора изображений - Этот пример создает объект входа видео для устройства сбора изображений веб-камеры. Чтобы запустить этот пример в своей системе, используйте imaqhwinfo функция, чтобы получить конструктор объектов для устройства сбора изображений и заменить этот синтаксис следующим кодом.

    vid = videoinput('winvideo',1);
    

    Проверьте, что объект не получил никаких систем координат.

    vid.FramesAcquired
    ans =
    	0
  2. Сконфигурируйте свойства - Установите TriggerType объекта входа видео свойство к 'Manual'. Чтобы задать значения определенных свойств триггера, включая TriggerType свойство, вы должны использовать triggerconfig функция. Дополнительные сведения см. в разделе Установка значений свойств триггера.

    triggerconfig(vid, 'Manual')

    Этот пример также устанавливает значение FramesPerTrigger свойство к 5. (По умолчанию это 10 системы координат на триггер.)

    vid.FramesPerTrigger = 5
  3. Запустите объект сбора изображений - Вызовите start функция для запуска объекта сбора изображений.

    start(vid);

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

    isrunning(vid)
    
    ans =
    
         1
    
    islogging(vid)
    
    ans =
    
         0

    Проверьте, что объект все еще не получил никаких систем координат.

    vid.FramesAcquired
    ans = 
    	0
  4. Выполните ручной триггер - Вызовите trigger функция для выполнения ручного триггера.

    trigger(vid)

    Объект инициирует получение пяти систем координат. Проверьте FramesAcquired еще раз свойство, чтобы убедиться, что пять систем координат были приобретены.

    vid.FramesAcquired
    ans = 
    	5

    После того, как он получит указанное количество систем координат, объект входа видео перестанет запускаться.

    isrunning(vid)
    
    ans =
    
         0

    Чтобы выполнить другой триггер вручную, необходимо сначала перезапустить объект входа видео. Обратите внимание, что это удаляет системы координат, полученные первым триггером. Чтобы выполнить несколько триггеров вручную, задайте значение для TriggerRepeat свойство. Дополнительные сведения см. в разделе Установка нескольких триггеров.

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

    delete(vid)
    clear vid

Использование Оборудования триггера

Чтобы использовать триггер оборудования, создайте объект входа видео и установите значение TriggerType свойство к 'hardware'. Необходимо также указать источник аппаратного триггера и тип условия. Оборудование контролирует источник, указанный для заданного условия. Следующий рисунок иллюстрирует триггер оборудования. Для аппаратных триггеров видеопоток не запускается до тех пор, пока не произойдет триггер.

Примечание

Источники триггеров и условия управления аппаратными триггерами зависят от конкретного устройства. Используйте triggerinfo функция для определения, поддерживает ли ваше устройство сбора изображений аппаратные триггеры, и, если это так, какие условия можно настроить. Для получения дополнительной информации о возможностях запуска оборудования см. документацию, поставляемую с устройством.

Аппаратный триггер

Следующий пример иллюстрирует, как использовать триггер оборудования:

  1. Создайте объект сбора изображений - Этот пример создает объект входа видео для устройства сбора изображений Matrox. Чтобы запустить этот пример в своей системе, используйте imaqhwinfo функция, чтобы получить конструктор объектов для устройства сбора изображений и заменить этот синтаксис следующим кодом. Устройство должно поддерживать аппаратные триггеры.

    vid = videoinput('matrox',1);
    
  2. Определите допустимые строения свойств триггера - используйте triggerinfo функция, чтобы определить, поддерживает ли ваше устройство сбора изображений аппаратные триггеры, и, если это так, выяснить допустимые строения TriggerSource и TriggerCondition свойства. Дополнительные сведения см. в разделе Определение допустимых строений.

    В этом примере triggerinfo возвращает следующие допустимые строения триггера.

    triggerinfo(vid)
    Valid Trigger Configurations:
    
          TriggerType:   TriggerCondition:   TriggerSource:
          'immediate'    'none'              'none'        
          'manual'       'none'              'none' 
    	    'hardware'     'risingEdge'        'TTL' 
    	    'hardware'     'fallingEdge'       'TTL' 
  3. Сконфигурируйте свойства - настройте свойства триггера объекта входа видео на одну из допустимых комбинаций, возвращенных triggerinfo. Можно задать каждое значение свойства в качестве аргумента к triggerconfig функция

    triggerconfig(vid, 'hardware','risingEdge','TTL')

    Кроме того, можно задать эти значения путем передачи одной из структур, возвращенных triggerinfo функцию в triggerconfig функция.

    configs = triggerinfo(vid);
    triggerconfig(vid,configs(3));

    Этот пример также устанавливает значение FramesPerTrigger свойство к 5. (По умолчанию это 10 системы координат на триггер.)

    vid.FramesPerTrigger = 5
  4. Запустите объект сбора изображений - Вызовите start функция для запуска объекта сбора изображений.

    start(vid)

    Объект работает, но не регистрирует данные.

    isrunning(vid)
    
    ans =
    
         1
    
    islogging(vid)
    
    ans =
    
         0

    Оборудование начинает контролировать источник триггера для заданного условия. Когда условие выполнено, оборудование выполняет триггер и начинает предоставлять системы координат изображения объекту. Объект получает количество систем координат, заданное FramesPerTrigger свойство. Просмотрите значение FramesAcquired свойство, чтобы увидеть, сколько данных было получено. Объект обновляет значение этого свойства при получении данных.

    vid.FramesAcquired
    ans =
    
        5

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

    isrunning(vid)
    
    ans =
    
         0

    Чтобы выполнить другой аппаратный триггер, необходимо сначала перезапустить объект входа видео. Обратите внимание, что это удаляет системы координат, полученные первым триггером. Чтобы выполнить несколько триггеров, задайте значение для TriggerRepeat свойство. Дополнительные сведения см. в разделе Установка нескольких триггеров.

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

    delete(vid)
    clear vid

Настройка специфичных для DCAM режимов триггера

Теперь можно использовать все триггерные режимы и все триггерные входы, которые поддерживают камеры DCAM. Предыдущие релизы тулбокса поддерживаются только в триггерном режиме 0. Поддержка дополнительных триггерных режимов и входов не влияет на любой существующий код, который вы используете.

Управление функциями триггера с помощью triggerinfo и triggerconfig функций и triggersource свойство. Перед R2010a один triggersource был доступен, externalTrigger. Выбор externalTrigger настраивает камеру на использование триггерного режима 0 с источником триггера 0.

The triggersource теперь свойство состоит из типа триггера (внутренний или внешний), источника триггера (0, 1, 2 и т.д.) и номера режима (0-5, 14 и 15). В следующей таблице перечислены опции.

Режим триггераПараметрВнешний источникНесколько системы координат на триггер
0ничегодада
1ничегоданет
2(N > = 2)данет
3(N > = 1)нетда
4(N > = 1)данет
5(N > = 1)данет
14неизвестныйнеизвестныйнеизвестный
15неизвестныйнеизвестныйнеизвестный

Для примера второй triggersource для триггерного режима 1 вызывается externalTrigger1-mode1. Чтобы использовать режим 3, triggersource является internalTrigger-mode3.

Примечание

Версии тулбокса до R2010a поддерживали режим триггера DCAM 0 с первым доступным triggersource как externalTrigger. Существующие externalTrigger свойство будет сохранено таким образом, чтобы предотвратить проблемы обратной совместимости. В сложение, в порядок сохранения симметрии с новой функциональностью, triggersource externalTrigger0-mode0, что является синонимом, также будет поддерживаться. Новые режимы триггера не работают до R2010a.

Указания по применению

Если в триггерном режиме есть несколько источников триггеров (режимов 0, 1, 2, 4, и 5), затем triggersource имеет цифру, указывающую соответствующий источник камеры, даже если доступен только один источник камеры. Например, если камера имеет только одну triggersource доступно, тулбокс сообщает о triggersource назовите следующим externalTrigger0-modeX. Если в триггерном режиме нет нескольких источников (в режиме 3), тогда никакая исходная цифра в имени (т.е. internalTriggerMode3 вместо internalTriggerMode3-Source0).

Адаптер DCAM включает в себя TriggerParameter свойство, которое передается в камеру, когда вы задаете строения триггера. The TriggerParameter свойство проверяется при вызове START после выбора оборудования режима триггера.

Если выбранный режим триггера запрещает несколько системы координат на каждый триггер, то при вызове появляется ошибка START без настройки FramesPerTrigger на 1.

Если камера поддерживает только триггерный режим 0 с исходным 0, тогда исходная функциональность иметь только externalTrigger triggersource поддерживается.

Триггерные режимы 14 и 15 зависят от поставщика и считаются внешними триггерами и не имеют никаких ограничений на какие-либо настройки. Необходимо проверить все используемые параметры.

В следующих разделах подробно описываются режимы триггера.

Режим триггера 0

Это единственный режим триггера, поддерживаемый перед R2010a. Когда принимается триггер, получается система координат. Можно получить несколько системы координат на триггер путем переключения камеры для аппаратного режима запуска в свободный режим при получении триггерной системы координат.

Параметр не требуется.

Камера начинает интегрирование входящего света с внешнего триггера входа падения ребра.

Режим триггера 1

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

Параметр не требуется.

Камера начинает интегрирование входящего света с внешнего триггера входа падения ребра. Время интегрирования равно времени низкого состояния внешнего триггера входа если triggersource является fallingEdge, в противном случае это равно высокому времени состояния.

Режим триггера 2

Этот режим похож на режим 1, за исключением того, что длительность триггерного сигнала управляет временем интегрирования. Вместо этого количество принятых триггерных сигналов. Интегрирование начинается с начала первого триггерного сигнала и продолжается до начала Nпервый триггерный сигнал.

Параметрический N требуется и описывает количество триггерных сигналов в интегрировании.

Камера начинает интегрирование входящего света с первого внешнего триггера входного падающего ребра. На Nвнешний триггер входа падение ребра, интегрирования упоры. Параметрический N является обязательным и должен быть 2 или выше. (N > = 2).

Режим триггера 3

Используйте этот внутренний режим триггера, чтобы достичь более низкой системы координат. Когда триггер генерируется внутри системы, система координат получает и возвращает систему координат. Новая система координат не получена для N x Tf при N - параметр, а Tf - время цикла самой быстрой частоты кадров, поддерживаемой камерой.

Требуется параметр, как описано выше.

Это режим внутреннего триггера. Камера выдает триггер внутренне, и время цикла составляет N раз от времени цикла самой быстрой частоты систем координат. Время интегрирования входящего света описано в регистре затвора. Параметрический N является обязательным и должен быть 1 или больше (N > = 1).

Режим триггера 4

Этот режим является «режимом настройки нескольких затворов». Он похож на режим 1, но время экспозиции определяется свойством затвора. На каждом триггере свойство затвора определяет длительность экспозиции. Когда получены N триггеров, получается система координат.

Параметрический N требуется и описывает количество триггеров.

Камера начинает интегрирование входящего света с первого внешнего триггера входа падения ребра и выставляет входящий свет во время затвора. Повторяйте эту последовательность до тех пор, пока N-й внешний триггер не введет падающее ребро, затем завершите интегрирование. Параметрический N требуется и должен быть 1 или больше (N > = 1).

Режим триггера 5

Этот режим является «режимом ширины импульса множественного затвора». Это комбинация режимов 1 и 2. Время экспозиции определяется длительностью триггерного сигнала, и ряд триггерных сигналов может быть интегрирован в одно считывание. Если параметр триггера 1, этот режим вырожден с модой 1.

Требуется параметр. Параметр описывает количество триггеров.

Камера начинает интегрирование входящего света с первого внешнего триггера входа падения ребра и выставляет входящий свет до тех пор, пока триггер не станет неактивным. Повторяйте эту последовательность до тех пор, пока N-й внешний триггер не введет падающее ребро, затем завершите интегрирование. Параметрический N является обязательным и должен быть 1 или больше (N > = 1).

Режим триггера 14

Это режим, относящийся к поставщику, и информация отсутствует. Обратитесь к документации по камере.

Режим триггера 15

Это режим, относящийся к поставщику, и информация отсутствует. Обратитесь к документации по камере.