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

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

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

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

Значение TriggerType

TriggerSource и значения TriggerCondition

Описание

'immediate'

Всегда 'none'

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

'manual'

Всегда 'none'

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

'hardware'

Специфичный для устройства

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

Примечание

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

Примечание

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

Используя мгновенный триггер

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

Мгновенный триггер

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

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

    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, чтобы получить конструктора Object для вашего устройства получения изображений и заменить тем синтаксисом следующий код.

    vid = videoinput('winvideo',1);
    

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

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

    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, чтобы получить конструктора Object для вашего устройства получения изображений и заменить тем синтаксисом следующий код. Устройство должно поддержать аппаратные триггеры.

    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.

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

Инициируйте режимПараметрВнешний источникНесколько кадров на триггер
0'none'дада
1'none'данет
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, которое передается камере, когда вы устанавливаете триггерные настройки. Свойство TriggerParameter подтверждено, когда вы вызываете START после выбора аппаратного триггерного режима.

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

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

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

Следующие разделы детализируют триггерные режимы.

Инициируйте режим 0

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

Никакой параметр не требуется.

Камера запускает интегрирование входящего света от внешнего триггерного входа, падающего ребро.

Инициируйте режим 1

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

Никакой параметр не требуется.

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

Инициируйте режим 2

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

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

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

Инициируйте режим 3

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

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

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

Инициируйте режим 4

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

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

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

Инициируйте режим 5

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

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

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

Инициируйте режим 14

Это - специфичный для поставщика режим, и никакая информация не доступна. Консультируйтесь с документацией для своей камеры.

Инициируйте режим 15

Это - специфичный для поставщика режим, и никакая информация не доступна. Консультируйтесь с документацией для своей камеры.