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

Хороший способ получить быстрое знакомство с адаптерами и разработкой адаптеров - взглянуть на демо-адаптер, который входит в комплект Image 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® Визуальный C++® файл проекта для демонстрационного адаптера

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

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

mwdemoimaq.h

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

mwdemoimaq.cpp

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

DemoAdaptor.h

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

DemoAdaptor.cpp

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

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

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

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

The DemoPropListener.h и соответствующие .cpp файлы и DemoSourceListener.h и .cpp файлы иллюстрируют, как ваш адаптер может получать уведомления, если пользователь изменяет настройку свойства. Для получения дополнительной информации см. раздел «Реализация Get and Set Support for Device-Specific Properties».

Установка точек по оси Х

Можно использовать точки останова отладчика, чтобы выяснить, какие функции адаптера вызываются при вызове пользователями функций тулбокса, таких как 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 function, где <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, содержащих демонстрационные данные адаптера