主要内容

创建设备属性

要定义一个设备的属性,请遵循以下步骤:

  1. 属性创建属性IPropFactory数据类型的成员函数。引擎将一个句柄传递给IPropFactory对象的getDeviceAttributes ()函数。

    例如,创建type的属性,使用createDoubleProperty ()方法IPropFactory对象,并将属性名和默认值指定为参数。

    hprop = devicePropFact->createDoubleProperty("亮度",100)

    IPropFactory类支持创建各种数据类型属性的函数-请参阅选择属性创建功能

  2. 属性指定用户是否可以修改属性setPropReadOnly ()方法IPropFactory对象。使用下列常量之一(定义在IEngine.h):READONLY_ALWAYSREADONLY_NEVER,READONLY_WHILE_RUNNING.例如,

    devicePropFact - > setPropReadOnly (hProp imaqkit:: propreadonly:: READONLY_WHILE_RUNNING);
  3. 属性将属性添加到特定于设备的属性容器中addProperty ()方法IPropFactory对象。例如,

    devicePropFact - > addProperty (hProp);

    在哪里hProp是在步骤1中创建的属性的句柄。

选择属性创建功能

IPropFactory ()对象支持用于创建各种数据类型属性的函数,包括:

  • int

  • 特征向量

  • 枚举类型

例如,使用createDoubleProperty ()函数创建值为类型的属性

hprop = devicePropFact->createDoubleProperty("MyDoubleProp",2.5)

int而且类型,还可以指定具有值对或定义范围内的值的属性。例如,这段代码创建了一个具有上界和下界的整数属性。

hprop = devicePropFact->createIntProperty("MyBoundedIntProp", 0,100,50)

若要创建具有枚举值的属性,请使用createEnumProperty (),指定属性名,以及一个枚举,例如,

hprop = devicePropFact->createEnumProperty("MyEnum", "green",1)

然后使用addEnumValue ()

有关的更多信息IPropFactory类,请参阅图像采集工具箱™适配器工具包API参考文档。

创建属性帮助

您可以使用IMDF文件为所创建的特定于设备的属性定义帮助文本。有关更多信息,请参见在IMDF文件中指定帮助

使用实例getDeviceAttributes()函数

的框架实现getDeviceAttributes ()函数。本例的目的是展示如何使用adaptor kit对象来指定各种类型的视频源和属性。

此代码不从IMDF文件读取源、属性或触发器信息。有关此主题的信息,请参见使用IMDF标记语言

  1. 将以下代码添加到getDeviceAttributes ()在适配器中的函数。中创建了该函数的骨架版本识别视频来源.这段代码创建了几个不同类型的属性。

    void * hProp;//声明属性对象的句柄//创建一个double类型的属性,默认值hProp = devicePropFact->createDoubleProperty("MyDoubleProp",2.5);//指定何时可以修改属性值。devicePropFact - > setPropReadOnly (hProp imaqkit:: imaqengine:: READONLY_ALWAYS);//将属性添加到设备特定的属性容器中。devicePropFact - > addProperty (hProp);//创建一个具有最大值和最小值的绑定int属性hProp = devicePropFact->createIntProperty("MyBoundedIntProp", 0,100,50);//指定何时可以修改属性值。devicePropFact - > setPropReadOnly (hProp imaqkit:: imaqengine:: READONLY_NEVER); // Add the property to the device-specific property container. devicePropFact->addProperty(hProp); // Create an enumerated property hProp = devicePropFact->createEnumProperty("MyEnumeratedProp", "green", 1); // Add additional enumerations devicePropFact->addEnumValue(hProp, "blue", 2); devicePropFact->addEnumValue(hProp, "red", 3); // Specify when the property value can be modified. devicePropFact->setPropReadOnly(hProp, imaqkit::imaqengine::READONLY_WHILE_RUNNING); // Add the property to the device-specific property container. devicePropFact->addProperty(hProp);
  2. 编译并链接适配器以创建DLL。

  3. 启动MATLAB®软件

  4. 为适配器创建一个视频输入对象。

    视频输入('mydevice',1)
  5. 使用getselectedsource函数获取视频源对象的句柄,并查看所创建的特定于设备的属性。

    SRC = getselectedsource(vid);get(vid)常规设置:Parent = [1x1 videoinput] Selected = on SourceName = input1 Tag = Type = videosource设备属性:MyDoubleProp = 2.5 MyBoundedIntProp = 100 MyEnumeratedProp = green
Baidu
map