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