创建设备属性
要定义一个设备的属性,请遵循以下步骤:
属性创建属性
IPropFactory
数据类型的成员函数。引擎将一个句柄传递给IPropFactory
对象的getDeviceAttributes ()
函数。例如,创建type的属性
双
,使用createDoubleProperty ()
方法IPropFactory
对象,并将属性名和默认值指定为参数。hprop = devicePropFact->createDoubleProperty("亮度",100)
的
IPropFactory
类支持创建各种数据类型属性的函数-请参阅选择属性创建功能.属性指定用户是否可以修改属性
setPropReadOnly ()
方法IPropFactory
对象。使用下列常量之一(定义在IEngine.h
):READONLY_ALWAYS
,READONLY_NEVER
,READONLY_WHILE_RUNNING
.例如,devicePropFact - > setPropReadOnly (hProp imaqkit:: propreadonly:: READONLY_WHILE_RUNNING);
属性将属性添加到特定于设备的属性容器中
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标记语言.
将以下代码添加到
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);
编译并链接适配器以创建DLL。
启动MATLAB®软件
为适配器创建一个视频输入对象。
视频输入('mydevice',1)
使用
getselectedsource
函数获取视频源对象的句柄,并查看所创建的特定于设备的属性。SRC = getselectedsource(vid);get(vid)常规设置:Parent = [1x1 videoinput] Selected = on SourceName = input1 Tag = Type = videosource设备属性:MyDoubleProp = 2.5 MyBoundedIntProp = 100 MyEnumeratedProp = green