-
Notifications
You must be signed in to change notification settings - Fork 7
Write values to remote devices
If the present value property of an object should be written, this is done by using the object's priority array.
The priority array is a read-only property that consists of commands that are categorized by priority levels of decreasing order. The priority is a number between 1 (highest priority) and 16 (lowest priority). The array may contain a value for each priority level or NULL
. The present value of the commandable object follows from the highest non-NULL value in the array. If all array entries are NULL
, the present value property is equal to the object property Relinquish_Default
(so this value is something like priority level 17). The following example shows a priority array of a analog value object:
Priority level | Value |
---|---|
1 | NULL |
2 | 10.0 |
3 | NULL |
4 | NULL |
5 | NULL |
6 | 15.0 |
7 | NULL |
8 | NULL |
9 | NULL |
10 | NULL |
11 | NULL |
12 | NULL |
13 | 20.0 |
14 | NULL |
15 | NULL |
16 | NULL |
The resulting present value of the priority array above is 10.0, because this is the non-NULL value with the highest priority level. Some prioriy levels have pre-defined applications defined in the BACnet standard. The following table shows these applications:
Priority level | Application |
---|---|
1 | Manual-Life Safety |
2 | Automatic-Life Safety |
3 | Available |
4 | Available |
5 | Critical Equipment Control |
6 | Minimum On/Off |
7 | Available |
8 | Manual Operator |
9 | Available |
10 | Available |
11 | Available |
12 | Available |
13 | Available |
14 | Available |
15 | Available |
16 | Available |
When writing a value, the according priority level must be defined. More information related to the priority array can be found here. The object array can be read by sending a ReadPropertyRequest
the the remote device:
ReadPropertyRequest request = new ReadPropertyRequest(objectIdentifier, PropertyIdentifier.priorityArray);
To write a value into the priority array (or the Relinquish_Default
property), the bacnet4J library offers a WriteProperyRequest
class. The following code snippet shows the signature of the class constructor:
WritePropertyRequest(ObjectIdentifier objectIdentifier, PropertyIdentifier propertyIdentifier,
UnsignedInteger propertyArrayIndex, Encodable propertyValue, UnsignedInteger priority)
To write a value to the Relinquish_Default
property, set the priority argument to null
. To write a NULL-value into the priority array, pass a com.serotonin.bacnet4j.type.primitive.Null
instance as property value. The follwoing example shows how to write 50.0 to the Relinquish_Default
property of a certain object:
WritePropertyRequest request = new WritePropertyRequest(objectIdentifier, PropertyIdentifier.presentValue, null, new Real(50), null);
localDevice.send(remoteDevice, request);
Back to bacnet4J page