Вы определяете, какие свойства устройства для сбора изображений вы хотите предоставить пользователям тулбокса. Вы делаете это определение, считывая документацию SDK устройства, определяя его возможности и решая, какие возможности пользователи тулбокса ожидают настроить. Когда вы решите открыть свойство, задайте следующие характеристики свойства:
Имя
Тип данных
Область значений допустимых значений (необязательно)
Адаптер средств записи обычно ждать определения свойств до тех пор, пока они не смогут получить данные с устройства. Чтобы увидеть эффект некоторых свойств, необходимо иметь возможность получить данные.
Свойства, которые вы определяете для вашего устройства, отображаются пользователям как свойства объекта источника видео, связанного с объектом входа видео. Тулбокс определяет свойства объекта входа видео, которые представляют общие свойства, общие для всех устройств сбора изображений.
Чтобы просмотреть свойства конкретного устройства, которые вы задаете, получите указатель на объект источника видео и используйте get
функция. Чтобы задать значение заданных свойств конкретного устройства, получите указатель на объект источника видео и используйте set
функция. Например, этот код создает объект входа видео и использует getselectedsource
функция для получения указателя на текущий выбранный объект видео. С помощью этого указателя вы можете использовать get
команда для просмотра свойств объекта источника видео.
vid = videoinput('winvideo',1) src = getselectedsource(vid); get(src) General Settings: Parent = [1x1 videoinput] Selected = on SourceName = input1 Tag = Type = videosource Device Specific Properties: Brightness = -10 Contrast = 266 Exposure = 1024 ExposureMode = auto Hue = 0 Saturation = 340 Sharpness = 40
Когда пользователь вызывает videoinput
function, двигатель вызывает getDeviceAttributes()
функция для настройки любых свойств конкретного устройства, заданных для устройства. Двигатель передает несколько аргументов в getDeviceAttributes()
вашего адаптера функция:
void getDeviceAttributes(const imaqkit::IDeviceInfo* deviceInfo, const char* acqFormat, imaqkit::IPropFactory* devicePropFact, imaqkit::IVideoSourceInfo* sourceContainer, imaqkit::ITriggerInfo* hwTriggerInfo)
Аргумент | Тип данных | Описание |
---|---|---|
| Указатель на | Задает устройство сбора изображений |
| Вектор символов | Задает формат видео или путь к файлу строения устройства |
| Указатель на | Предоставляет функции представителей, используемые для создания свойств |
| Указатель на | Определяет источники видео, доступные с этим устройством, описанные в Идентификация источников видео |
| Указатель на | Задает аппаратные триггеры. Тулбокс автоматически обрабатывает два других типа триггеров (немедленный и ручной). |
Алгоритм для getDeviceAttributes()
обычно включает следующие шаги:
Определите устройство, с которым пользователь хочет установить соединение, заданное идентификатором устройства.
Определите формат, который пользователь хочет использовать с устройством, заданный именем формата (или путем файла камеры). Чтобы получить информацию о формате, найдите IDeviceFormat
объект, сопоставленный с форматом из IDeviceInfo
объект.
Создайте любые свойства конкретного устройства. Вы создаете объект свойства, соответствующий типу данных свойства, и храните объект свойства в контейнере свойств конкретного устройства - см. Раздел «Создание свойств устройства».
Найдите все строения триггеров, поддерживаемые устройством, и сохраните информацию в ITriggerInfo
- см. «Вспомогательные аппаратные триггеры».
Существует несколько способов, как ваш адаптер может определить это свойство, источник и информацию о триггере:
Путем запроса SDK устройства во время выполнения
Путем чтения информации из файла устройства формирования изображений (IMDF). Если вы знаете информацию об устройстве усовершенствование, можно хранить ее в файле IMDF с помощью языка разметки на языке XML. В этом разделе описывается чтение информации из файла IMDF. Чтобы узнать, как создать файл IMDF, смотрите Использование языка разметки IMDF.
Смесь обоих методов.