Ожидание завершения приобретения

Использование функции ожидания

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

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

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

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

Использование ожидания для блокировки командной строки MATLAB

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

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

  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' 

    Сконфигурируйте свойства триггера объекта входа видео на одну из допустимых комбинаций, возвращаемых 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)

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

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

    wait(vid,60)

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

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

    delete(vid)
    clear vid