Ожидание приобретения, чтобы закончиться

Используя Функцию ожидания

Функция start и функция trigger являются асинхронными функциями. Таким образом, они запускают приобретение кадров и возвращают управление в командную строку MATLAB® сразу.

В некоторых сценариях вы можете хотеть, чтобы ваше приложение ожидало, пока приобретение не завершается перед продолжением другой обработки. Для этого вызовите функцию wait сразу после start, или функция trigger возвращается. Функциональные блоки wait, которые командная строка MATLAB до приобретения завершает или значение тайм-аута, истекают, какой бы ни на первом месте.

По умолчанию wait блокирует командную строку, пока объект ввода видео не прекращает запускаться. Можно опционально указать, что блок wait командная строка до объекта прекращает регистрировать. Для приобретений с помощью мгновенного триггера объекты ввода видео всегда прекращают запускаться и прекращают регистрировать одновременно. Однако с ручным триггером, сконфигурированным для множеств потоков выполнения (TriggerRepeat> 0), можно использовать wait сразу после каждого вызова функции trigger, чтобы блокировать командную строку, в то время как журналирование происходит, даже при том, что объект остается в состоянии выполнения в течение целого приобретения.

Следующая фигура иллюстрирует поток управления в командной строке MATLAB для одного выполнения мгновенного триггера и ручного триггера, с и без функции wait. Аппаратный триггер подобен ручной триггерной схеме, за исключением того, что приобретение инициировано внешним сигналом к плате камеры или устройства захвата изображения, не функцией trigger. Для примера смотрите Блокирование Командной строки, Пока Приобретение Не Завершится.

Используя ожидание, чтобы Блокировать командную строку MATLAB

При блокировании командной строки, пока не завершается приобретение

Следующий пример иллюстрирует, как использовать функцию wait, чтобы поместить 60 пределов второго раза на выполнение аппаратного триггера. Если аппаратный триггер не выполняется в ограничении по времени, wait возвращает управление в командную строку MATLAB.

  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' 

    Сконфигурируйте триггерные свойства объекта ввода видео к одной из допустимых комбинаций, возвращенных triggerinfo. Можно задать каждое значение свойства в качестве аргумента к функции triggerconfig

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

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

    configs = triggerinfo(vid);
    triggerconfig(vid,configs(3));
  3. Сконфигурируйте другие свойства объектов — Этот пример также устанавливает значение свойства FramesPerTrigger сконфигурировать приобретение, достаточно большое, чтобы произвести значимую длительность. (Значением по умолчанию являются 10 кадров на триггер.)

    vid.FramesPerTrigger = 100
  4. Запустите объект получения изображений — Вызывают функцию start, чтобы запустить объект получения изображений.

    start(vid)

    Функция start устанавливает объектное выполнение и возвращает управление в командную строку.

  5. Блокируйте командную строку до концов приобретения — После того, как функция start возвращается, вызовите функцию wait.

    wait(vid,60)

    Функциональные блоки wait, которые командная строка до аппаратных триггерных огней и приобретения завершает или до количества времени, заданного значением тайм-аута, истекают.

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

    delete(vid)
    clear vid