Определение свойств конкретного устройства

Вы определяете, какие свойства устройства для сбора изображений вы хотите предоставить пользователям тулбокса. Вы делаете это определение, считывая документацию 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)

Аргумент

Тип данных

Описание

deviceInfo

Указатель на IDeviceInfo объект

Задает устройство сбора изображений

acqformat

Вектор символов

Задает формат видео или путь к файлу строения устройства

devicePropFact

Указатель на IPropFactory объект

Предоставляет функции представителей, используемые для создания свойств

sourceContainer

Указатель на IVideoSourceInfo объект

Определяет источники видео, доступные с этим устройством, описанные в Идентификация источников видео

hwTriggerInfo

Указатель на ITriggerInfo объект

Задает аппаратные триггеры. Тулбокс автоматически обрабатывает два других типа триггеров (немедленный и ручной).

Алгоритм для getDeviceAttributes() обычно включает следующие шаги:

  1. Определите устройство, с которым пользователь хочет установить соединение, заданное идентификатором устройства.

  2. Определите формат, который пользователь хочет использовать с устройством, заданный именем формата (или путем файла камеры). Чтобы получить информацию о формате, найдите IDeviceFormat объект, сопоставленный с форматом из IDeviceInfo объект.

  3. Создайте любые свойства конкретного устройства. Вы создаете объект свойства, соответствующий типу данных свойства, и храните объект свойства в контейнере свойств конкретного устройства - см. Раздел «Создание свойств устройства».

  4. Найдите все строения триггеров, поддерживаемые устройством, и сохраните информацию в ITriggerInfo - см. «Вспомогательные аппаратные триггеры».

Существует несколько способов, как ваш адаптер может определить это свойство, источник и информацию о триггере:

  • Путем запроса SDK устройства во время выполнения

  • Путем чтения информации из файла устройства формирования изображений (IMDF). Если вы знаете информацию об устройстве усовершенствование, можно хранить ее в файле IMDF с помощью языка разметки на языке XML. В этом разделе описывается чтение информации из файла IMDF. Чтобы узнать, как создать файл IMDF, смотрите Использование языка разметки IMDF.

  • Смесь обоих методов.