Хороший способ получить быстрое знакомство с адаптерами и разработкой адаптеров - взглянуть на демо-адаптер, который входит в комплект Image Acquisition Toolbox™ Adaptor Kit. Демонстрационный адаптер является функционирующим адаптером, который не требует никакого оборудования. Можно создать демо-адаптер и запустить его, чтобы ознакомиться с тем, как работает адаптер.
Демо-адаптер исходных файлов C++ находится в следующей папке:
$MATLAB\toolbox\imaq\imaqadaptors\kit\demo\
В следующей таблице перечислены все файлы в папке демо в алфавитном порядке с краткими описаниями.
Исходный файл | Описание |
---|---|
| Реализация класса демо-адаптера |
| Определение класса демо-адаптера |
| Реализация класса, который содержит информацию о формате устройства |
| Определение класса, который содержит информацию о формате устройства |
| Реализация класса, который уведомляет демонстрационный адаптер, когда изменяется значение свойства устройства |
| Определение класса, который уведомляет демонстрационный адаптер, когда изменяется значение свойства устройства |
| Реализация класса, который слушает изменения в выбранном источнике видео |
| Определение класса, используемого для прослушивания изменений в выбранном источнике видео |
| Реализация класса, который предоставляет пользовательскую |
| Определение класса, который предоставляет пользовательское |
| Реализация пяти функций, которые должен экспортировать каждый адаптер. |
| Библиотека демо-адаптеров. Это скомпилированная и связанная библиотека динамических ссылок (DLL), реализующая демонстрационный адаптер. |
| Заголовочный файл, который определяет пять функций, которые должен экспортировать каждый адаптер |
| Демонстрационный файл устройства изображения адаптера (IMDF), содержащий определения свойств |
| Microsoft® Визуальный C++® файл проекта для демонстрационного адаптера |
В этом разделе описывается предлагаемый порядок, в котором необходимо просмотреть исходные файлы демо-адаптера.
Хорошее место, чтобы начать смотреть на демонстрационный адаптер, чтобы открыть mwdemoimaq.h
файл. Этот файл определяет пять функций, которые должен экспортировать каждый адаптер. Механизм тулбокса вызывает эти функции, чтобы получить информацию о поддерживаемом оборудовании, создать экземпляр объекта входа видео и получить данные. Реализация этих функций обычно является первым шагом, который делает средство записи адаптера. Этот файл заголовка содержит комментарии, которые объясняют назначение каждой функции.
Увидев определение экспортированных функций адаптера, посмотрите, как они реализованы в соответствующем файле реализации C++, mwdemoimaq.cpp
.
После просмотра экспортированных функций посмотрите на определение DemoAdaptor
класс в DemoAdaptor.h
. Класс адаптера является подклассом IAdaptor
класс, который определяет виртуальные функции, которые должен реализовать адаптер. Этот файл заголовка содержит комментарии, которые объясняют назначение каждой функции представителя.
Увидев определение класса адаптера, посмотрите на реализацию класса в 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® Команда | Контрольная точка |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ознакомившись с исходными файлами демо-адаптера, создайте демо-адаптер. Есть предустановленная версия демо-адаптера в 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, содержащих демонстрационные данные адаптера