После заполнения глав 3 и 4 можно увидеть ваш адаптер, включенный в список адаптеров, возвращенных imaqhwinfo и можно создать объект ввода видео с помощью videoinput функция. Теперь пришло время получить данные с вашего устройства. В этой главе подробно описываются реализации виртуальных функций класса адаптеров, которые работают вместе для получения данных.
В следующем примере показано, как пользователь панели инструментов инициирует получение кадров изображения. Пример вызывает videoinput для создания объекта ввода видео, а затем вызывает start для запуска объекта. В сводке следует отметить, что получено десять кадров изображения.
vid = videoinput('winvideo');
start(vid);
vid
Summary of Video Input Object Using 'IBM PC Camera'.
Acquisition Source(s): input1 is available.
Acquisition Parameters: 'input1' is the current selected source.
10 frames per trigger using the selected source.
'RGB555_128x96' video data to be logged upon START.
Grabbing first of every 1 frame(s).
Log data to 'memory' on trigger.
Trigger Parameters: 1 'immediate' trigger(s) on START.
Status: Waiting for START.
10 frames acquired since starting.
10 frames available for GETDATA.
В предыдущем примере start функция открывает соединение с устройством, но фактически не вызывает получения данных изображения. Панель инструментов использует триггеры для управления получением изображения. По умолчанию объекты ввода видео конфигурируются с немедленным триггером, поэтому в примере при запуске объекта срабатывает немедленный триггер.
Панель инструментов также поддерживает два других типа триггеров: ручной и аппаратный. С помощью ручного триггера после запуска объекта ввода видео необходимо вызвать trigger функция для получения данных. При помощи аппаратных триггеров объект запускается, и он ожидает, пока не получит сигнал от внешнего устройства о начале получения данных.
Панель инструментов автоматически обрабатывает немедленное и ручное срабатывание; нет необходимости включать в адаптер какую-либо специальную обработку. Для поддержки аппаратных триггеров требуется определенная работа по разработке адаптеров. Дополнительные сведения см. в разделе Поддержка аппаратных триггеров.
Чистые виртуальные функции в классе адаптеров, которые необходимо реализовать, работают вместе для получения данных. Однако основные шаги заключаются в следующем:
Укажите формат видеоданных в getMaxHeight(), getMaxWidth(), getNumberOfBands(), и getFrameType() функции - см. раздел Определение формата данных изображения.
Откройте соединение с устройством в openDevice() функция - см. Открытие и закрытие соединения с устройством.
Начать получение данных в startCapture() функция - см. Запуск и остановка получения изображения.
Прекратить получение данных в stopCapture() функция - см. Запуск и остановка получения изображения.
Закройте соединение с устройством в closeDevice() функция - см. Открытие и закрытие соединения с устройством.
На следующей схеме показан этот поток управления в графическом виде. Эта схема определяет, где заканчивается схема в главе 3 после создания объекта - см. Получение данных изображения.
Примечание
На диаграммах не показаны вызовы, выполняемые адаптером в SDK устройства получения изображений, поскольку эти вызовы зависят от SDK каждого устройства.
Поток управления между функциями сбора данных адаптера
