exponenta event banner

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

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

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

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

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

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