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

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

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

Демонстрационный адаптер исходные файлы 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 иллюстрируют, как ваш адаптер может быть уведомлен, если пользователь изменяет настройки свойства. Смотрите, что Реализация Добирается и Поддержка Набора Device-Specific Properties для получения дополнительной информации.

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

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

MATLAB® Command

Точка останова

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 Containing Demo Adaptor Data предварительного просмотра