|
模拟输入对象是BACnet标准对象之一,其属性表示一个模拟输入的外部可见一致性代码,代表一种模拟传感器输入。BACnet协议中对于模拟输入对象类型结构形式描述,见图2。
其中,“Object-identifier、Object—name、Object—type、present-value、out—of-service”分别表示模拟对象的对象标识符、对象名称、对象类型、当前值、脱离服务等属性,“[75>”为该属性编号,“BACnet Object Identifier”是属性数据类型。
根据协议中有关模拟输入对象的描述,可以生成一个模拟输入对象的实例:空调控制器中的混合空气温度模拟输入对象。以下是该对象的参数:
Property :Object_Identifier=(Analog lnput,Instance 1)
Property:Object_Name= “hermometer”
Property:Object_type=ANALOG_INPUT
Property:Present_Value=25
Property:Out—Of—Service=FALSE
2.2服务的实现
为了从BACnet网络中获取另外设备的信息,需要实现相关服务。在本例中,需要获取温度计的输入值,因此必须定义读属性服务
(ReadPropertyservice):
bool ReadProperty(unsignedint deviceObjID,BACnetObjectlden_tifierObjID,int propertylD,BACnetRealpropertyValue,
B A C n e t U n s i g n e d
propertyArraylndex=0);
对象标识符与具有全局唯一性质的BACnet设备对象标识符结合使用,从而就能够提供一种在整个控制网络中引用每个对象的机制。因此在读对象的服务中,需要提供所选择对象所在设备的BACnet设备对象标识符、对象标识符以及属性标识符,通过这三个参数就能够在BACnet网络中唯一确定一个属性。deviceObjID、ObjID、propertylD分别表示BACnet设备对象标识符、对象标识符以及属性标识符,property Value为该服务的返回值。Property Array lndex表示属性数组索引,如果属性是一个数据类型的数组,并且在请求中规定了一个“属性数组索引”参数,则可以使用这个无符号整型参数;指明被本服务引用的属性的元素的数组索引。否则,省略这个参数。ReadProperty()的返回值类型为bool型,当读取成功返回true,当读取失败返回false。 |