Самый легкий способ начать создавать адаптер состоит в том, чтобы создать тупиковую реализацию, компиляцию и соединить ее, и затем протестировать вашу работу. Этот метод может быть эффективным, потому что он обеспечивает непосредственные результаты и позволяет вам проверить, что ваша среда сборки является настройкой правильно.
Этот раздел показывает тупиковые реализации адаптера, что можно скопировать и вставить в файл в адаптере Microsoft® Visual C ++® проект. После компиляции и соединения этого кода, вы видите свой адаптер, включенный в список доступных адаптеров, возвращенных функцией imaqhwinfo
.
Вы не сможете инстанцировать объекта своего класса адаптера, как бы то ни было. Это описано в Определении Вашего Класса Адаптера.
Чтобы создать тупиковый адаптер, выполните эту процедуру:
Добавьте исходный файл C++ в адаптер проект C++. Смотрите Подготовку Среды сборки на Windows Systems для получения информации о создании адаптера проект C++. Этот исходный файл будет содержать ваши реализации экспортируемых функций C++ вашего адаптера. Можно дать этому файлу любое имя. Этот пример использует имя адаптера для этого файла, с вектором символов "_exported_fcns
", добавленный к нему, mydevice_exported_fcns.cpp
Скопируйте следующие строки Кода С++ в этот новый файл. Этот код обеспечивает, тупиковые реализации необходимого адаптера экспортировали функции. Обратите внимание на то, что необходимо включать заголовочный файл набора адаптера mwadaptorimaq.h
. Этот заголовочный файл включает все другие необходимые заголовочные файлы набора адаптера. Тупик getDeviceAttributes()
задает источник видеосигнала — смотрите Источники видеосигнала Идентификации для получения дополнительной информации.
#include "mwadaptorimaq.h" void initializeAdaptor(){ } void getAvailHW(imaqkit::IHardwareInfo* hardwareInfo){ } void getDeviceAttributes(const imaqkit::IDeviceInfo* deviceInfo, const char* formatName, imaqkit::IPropFactory* devicePropFact, imaqkit::IVideoSourceInfo* sourceContainer, imaqkit::ITriggerInfo* hwTriggerInfo){ // Create a video source sourceContainer->addAdaptorSource("MyDeviceSource", 1); } imaqkit::IAdaptor* createInstance(imaqkit::IEngine* engine, const imaqkit::IDeviceInfo* deviceInfo, const char* formatName){ imaqkit::IAdaptor* adaptor = NULL; return adaptor; } void uninitializeAdaptor(){ }
Создайте DLL адаптера. Выберите опцию Решения для Сборки в меню Build.
Запустите MATLAB.
Скажите тулбокс, где найти этот новый адаптер с помощью функции imaqregister
. Смотрите Регистрацию Адаптера с Тулбоксом для получения дополнительной информации. Только необходимо выполнить этот шаг однажды.
Вызовите функцию imaqhwinfo
. Обратите внимание на то, что тупиковый адаптер, названный mydeviceimaq
, включен в список доступных возвращенных адаптеров.
imaqhwinfo ans = InstalledAdaptors: {'demo' 'mydeviceimaq' 'winvideo'} MATLABVersion: '7.12 (R2011a)' ToolboxName: 'Image Acquisition Toolbox' ToolboxVersion: '4.1 (R2011a)'
Чтобы получить больше информации о тупиковом адаптере, вызовите imaqhwinfo
снова, на этот раз задав имя адаптера.
В этой точке в вашей разработке адаптера поле DeviceIDs
и поля DeviceInfo
пусты.
imaqhwinfo('mydeviceimaq') ans = AdaptorDllName: 'C\My_Adaptor\mydeviceimaq.dll' AdaptorDllVersion: '4.1 (R2011a)' AdaptorName: 'mydeviceimaq' DeviceIDs: {1x0 cell} DeviceInfo: [1x0 struct]