The start
функции и trigger
функции являются асинхронными функциями. То есть они начинают сбор систем координат и возвращают управление в MATLAB® командная строка немедленно.
В некоторых сценариях может потребоваться подождать до завершения приобретения, прежде чем приступать к другой обработке. Для этого вызовите wait
функция сразу после start
или trigger
функция возвращается. The wait
функция блокирует командную строку MATLAB до завершения приема или истечения значения тайм-аута, в зависимости от того, что произойдет раньше.
По умолчанию wait
блокирует командную строку до тех пор, пока объект входа видео не перестанет запускаться. Вы можете опционально задать, что wait
блокировать командную строку до тех пор, пока объект не перестанет регистрироваться. Для приобретений с использованием немедленного триггера объекты входа видео всегда перестают запускаться и прекращают регистрироваться одновременно. Однако с триггером вручную, сконфигурированным для множеств потоков выполнения (TriggerRepeat
> 0), можно использовать wait
сразу после каждого вызова в trigger
функция для блокировки командной строки, пока логгирование находится в прогрессе, даже если объект остается в рабочем состоянии на протяжении всего сбора.
Следующий рисунок иллюстрирует поток управления в командной строке MATLAB для единственного выполнения немедленного триггера и ручного триггера с wait
и без функция. Триггер оборудования аналогичен схеме ручного триггера, за исключением того, что захват запускается внешним сигналом к камере или системе координат плате захвата, а не
trigger
функция. Для получения примера смотрите Блокирование командной строки До завершения сбора.
Использование ожидания для блокировки командной строки MATLAB
Следующий пример иллюстрирует, как использовать wait
функция для установки 60-секундного временного предела на выполнение триггера оборудования. Если триггер оборудования не выполняется в течение временного предела, wait
возвращает управление в командную строку MATLAB.
Создайте объект сбора изображений - Этот пример создает объект входа видео для Matrox® устройство для сбора изображений. Чтобы запустить этот пример в своей системе, используйте imaqhwinfo
функция, чтобы получить конструктор объектов для устройства сбора изображений и заменить этот синтаксис следующим кодом.
vid = videoinput('matrox',1);
Сконфигурируйте триггер оборудования - Используйте 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));
Сконфигурируйте другие свойства объекта - Этот пример также устанавливает значение FramesPerTrigger
свойство, чтобы сконфигурировать приобретение, достаточно большое, чтобы получить заметную длительность. (По умолчанию это 10 системы координат на триггер.)
vid.FramesPerTrigger = 100
Запустите объект сбора изображений - Вызовите start
функция для запуска объекта сбора изображений.
start(vid)
The start
функция устанавливает текущий объект и возвращает управление в командную строку.
Блокируйте командную строку, пока не закончится сбор - После start
функция возвращает, вызывает wait
функция.
wait(vid,60)
The wait
функция блокирует командную строку до тех пор, пока аппаратный триггер не сработает и не завершится сбор данных или до тех пор, пока не истечет время, заданное как значение тайм-аута.
Очистка - Всегда удаляйте объекты сбора изображений из памяти, и переменные, которые ссылаются на них, когда они вам больше не нужны.
delete(vid) clear vid