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

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

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