exponenta event banner

Просмотр демонстрационного адаптера

Хороший способ получить краткое введение в адаптеры и разработку адаптеров - посмотреть на демонстрационный адаптер, который входит в комплект Imagement Acquisition Toolbox™ Adaptor Kit. Демонстрационный адаптер является функционирующим адаптером, не требующим каких-либо аппаратных средств. Можно создать демонстрационный адаптер и запустить его, чтобы ознакомиться с его работой.

Поиск исходных файлов демонстрационного адаптера

Исходные файлы демонстрационного адаптера C++ находятся в следующей папке:

$MATLAB\toolbox\imaq\imaqadaptors\kit\demo\

В следующей таблице перечислены все файлы в папке демонстрации в алфавитном порядке с краткими описаниями.

Исходный файл

Описание

DemoAdaptor.cpp

Реализация класса демонстрационного адаптера

DemoAdaptor.h

Определение класса демонстрационного адаптера

DemoDeviceFormat.cpp

Реализация класса, содержащего информацию о формате устройства

DemoDeviceFormat.h

Определение класса, содержащего информацию о формате устройства

DemoPropListener.cpp

Реализация класса, уведомляющего демо-адаптер при изменении значения свойства устройства

DemoPropListener.h

Определение класса, уведомляющего демо-адаптер при изменении значения свойства устройства

DemoSourceListener.cpp

Реализация класса, который прослушивает изменения в выбранном источнике видео

DemoSourceListener.h

Определение класса, используемого для прослушивания изменений в выбранном источнике видео

DemoTimestampGetFcn.cpp

Реализация класса, предоставляющего пользовательский get для свойств временной метки.

DemoTimestampGetFcn.h

Определение класса, предоставляющего пользовательский get для свойств временной метки.

mwdemoimaq.cpp

Реализация пяти функций, которые должен экспортировать каждый адаптер.

mwdemoimaq.dll

Библиотека демонстрационных адаптеров. Это скомпилированная и связанная библиотека динамических ссылок (DLL), которая реализует демонстрационный адаптер.

mwdemoimaq.h

Файл заголовка, определяющий пять функций, которые должен экспортировать каждый адаптер

mwdemoimaq.imdf

Файл IMDF, содержащий определения свойств

mwdemoimaq.vcproj

Файл проекта Microsoft ® Visual C++ ® для демонстрационного адаптера

Просмотр исходных файлов демонстрационного адаптера

В этом разделе описывается рекомендуемый порядок просмотра исходных файлов демонстрационного адаптера.

mwdemoimaq.h

Хорошее место, чтобы начать смотреть на демонстрационный адаптер, чтобы открыть mwdemoimaq.h файл. Этот файл определяет пять функций, которые должен экспортировать каждый адаптер. Механизм панели инструментов вызывает эти функции, чтобы получить информацию о поддерживаемом оборудовании, создать экземпляр объекта ввода видео и получить данные. Реализация этих функций, как правило, является первым шагом, который занимает устройство записи адаптера. Этот файл заголовка содержит комментарии, объясняющие назначение каждой функции.

mwdemoimaq.cpp

После просмотра определения экспортируемых функций адаптера узнайте, как они реализованы в соответствующем файле реализации C++, mwdemoimaq.cpp.

DemoAdaptor.h

После просмотра экспортированных функций просмотрите определение DemoAdaptor класс в DemoAdaptor.h. Класс адаптера является подклассом IAdaptor класс, определяющий виртуальные функции, которые должен реализовать адаптер. Этот файл заголовка содержит комментарии, объясняющие назначение каждой функции-члена.

DemoAdaptor.cpp

После просмотра определения класса адаптера посмотрите на реализацию класса в DemoAdaptor.cpp файл. Этот файл содержит функцию потока получения, которая является основным циклом получения кадра. Здесь адаптер подключается к устройству и получает кадры изображения.

Другие файлы демонстрационных адаптеров

Демонстрационный каталог содержит другие файлы, реализующие дополнительные возможности набора адаптеров.

Например, DemoDeviceFormat.h и соответствующие .cpp файлы иллюстрируют один из способов хранения информации о формате устройства с использованием данных адаптера. Определяется класс, являющийся подклассом IMAQInterface для хранения информации. Дополнительные сведения см. в разделе Определение классов для хранения информации о конкретных устройствах.

DemoPropListener.h и соответствующие .cpp файлы и DemoSourceListener.h и .cpp файлы иллюстрируют, как адаптер может получать уведомления, если пользователь изменяет настройку свойства. Дополнительные сведения см. в разделе Реализация поддержки получения и установки свойств, специфичных для устройства.

Установка точек останова

Точки останова отладчика можно использовать для проверки того, какие функции адаптера вызываются при вызове пользователями функций панели инструментов, таких как imaqhwinfo, videoinput, start, и stop. В следующей таблице перечислены места в демонстрационном адаптере, где можно установить точки останова.

Команда MATLAB ®

Контрольная точка

imaqhwinfo

initializeAdaptor()

imaqreset

uninitializeAdaptor()

imaqhwinfo(adaptorname)

getAvailHW()

videoinput

getDeviceAttributes()

createInstance()

imaqhwinfo(obj)

getDriverDescription()

getDriverVersion()

getMaxWidth()

getMaxHeight()

getFrameType()

videoinput

getNumberOfBands()

start

openDevice()

start или trigger, если ручное срабатывание

startCapture()

stop

stopCapture()

closeDevice()

Создание демонстрационного адаптера

После ознакомления с исходными файлами демонстрационного адаптера создайте демонстрационный адаптер. Существует предварительно созданная версия демонстрационного адаптера в matlabroot/toolbox/imaq/imaqadaptors/kit/demo/$ARCH. Файл проекта Visual Studio и make-файл создают файл адаптера в подпапке этой папки.

Примечание

Для создания демонстрационного адаптера в Windows необходимо иметь переменную среды с именем MATLAB определено в вашей системе. Задайте для этой переменной среды расположение каталога установки MATLAB.

Регистрация адаптера с помощью панели инструментов

После создания адаптера необходимо сообщить программному обеспечению Image Acquisition Toolbox о его существовании, зарегистрировав его в imaqregister функция. Эта функция сообщает панели инструментов, где найти библиотеки внешних адаптеров. Необходимо зарегистрировать адаптер только один раз. Панель инструментов хранит информацию о расположении адаптера в настройках MATLAB.

Примечание

Поскольку панель инструментов кэширует информацию о адаптере, может потребоваться сброс панели инструментов с помощью imaqreset, до появления только что зарегистрированного адаптера в imaqhwinfo листинг.

Например, следующий код регистрирует демонстрационный адаптер на панели инструментов с помощью imaqregister функция, где <your_directory> представляет имя каталога, в котором был создан демонстрационный адаптер.

imaqregister('<your_directory>\mwdemoimaq.dll');

Запуск демонстрационного адаптера

Запустите MATLAB и вызовите imaqhwinfo функция. Вы должны иметь возможность увидеть демонстрационный адаптер, включенный в адаптеры, перечисленные в InstalledAdaptors поле. Например, в системе Windows, imaqhwinfo возвращает следующее.

ans = 

    InstalledAdaptors: {'demo'  'matrox'  'winvideo'}
        MATLABVersion: '7.12 (R2011a)'
          ToolboxName: 'Image Acquisition Toolbox'
       ToolboxVersion: '4.1 (R2011a)'

Создайте объект ввода видео с помощью демонстрационного адаптера.

vid = videoinput('demo');

Получение предварительного просмотра данных, возвращаемых демонстрационным адаптером, с помощью preview функция. Следует отметить, что демонстрационный адаптер генерирует шаблон в градациях серого для имитации данных, возвращаемых устройством получения реального изображения. Демонстрационный адаптер не подключается к фактическому устройству.

preview(vid);

Предварительный просмотр Windows, содержащего данные демонстрационного адаптера