Skip to content
Version 6.1.0
Contact Us

OctetString Value

An OctetString Value object holds a string of raw bytes under a name. Use it for data that is not text and not a number, such as a binary key, a hardware address or a block of packed data. Clients read it, and may write it if the device allows.

  • MAC or hardware address of an attached device
  • Firmware or configuration checksum
  • Opaque identifier read from a card or tag
  • Packed status bytes from equipment
  • Binary key or token a client may write
Property What it holds
Present_Value The bytes the object holds. A client reads them as a byte string of any length the device supports.
Priority_Array Optional. Present only when the value is commandable; sixteen priority slots.
Relinquish_Default Optional. The value used when every priority slot is empty.
Out_Of_Service When true, Present_Value stops following the real source and a client can write it for testing.

The object is not commandable unless you give it a priority array. It has no event algorithm and no intrinsic reporting. COV notifications go out on any change to Present_Value or Status_Flags.

Enable it with the STACK_OPTION_OBJECT_TYPE_OCTET_STRING_VALUE build option and add each object with BACnetStack_AddObject. Serve Present_Value with the callback you register with BACnetStack_RegisterCallbackGetPropertyOctetString and, if clients may write it, the BACnetStack_RegisterCallbackSetPropertyOctetString callback. The object becomes commandable once you enable both PriorityArray and RelinquishDefault. Alarms are not available for this type: BACnetStack_SetAlarmsAndEventsForObjectEnabled returns false for it. Call BACnetStack_UpdateValue whenever the value you serve changes, so COV, trend logs and alarms see it.

CharacterString Value, BitString Value, Integer Value

The properties ASHRAE 135-2024 clause 12.41 defines for this object type.

How to read the table:

  • Conformance is what the standard asks of every object of this type: R is required, W is required and writable by a client, O is optional. A digit after the letter marks a condition in the standard that decides when the property is present or writable, such as support for intrinsic reporting.
  • Present by default: yes means the stack presents the property as soon as you add the object; no means it is optional and you turn it on with BACnetStack_SetPropertyEnabled. This is the stack’s starting setup, so it can differ from the conformance code.
  • Writable is whether a client can write the property by default. Change it with BACnetStack_SetPropertyWritable.
  • not in profile means the stack does not offer this property for this object type.
  • Value when your callback does not answer: “Held by the stack” means the stack stores and serves the value itself and does not ask your callbacks. Otherwise it is the value the stack answers when your callback declines or is not registered.
Property Datatype Conformance Present by default Writable Value when your callback does not answer
Object_Identifier BACnetObjectIdentifier R yes no Held by the stack.
Object_Name CharacterString R yes no "Object <type>,<instance>", such as "Object 0,1" for Analog Input 1.
Object_Type BACnetObjectType R yes no Held by the stack.
Description CharacterString O no no ""
Present_Value OctetString R1 yes no (yes while Out_Of_Service is true) No default: value-not-initialized. Once Priority_Array and Relinquish_Default are enabled, built by the stack from the priority array your callbacks serve.
Status_Flags BACnetStatusFlags R yes no Built by the stack from your callbacks.
Event_State BACnetEventState O no no 0
Reliability BACnetReliability O no no (yes while Out_Of_Service is true) 0
Out_Of_Service Boolean O no no false
Priority_Array BACnetARRAY[16] of BACnetOptionalOctetString O2 no no Built by the stack from your callbacks.
Relinquish_Default OctetString O2 no no No default: value-not-initialized until a callback or a client write supplies one.
Reliability_Evaluation_Inhibit Boolean O3 no no false
Property_List BACnetARRAY[N] of BACnetPropertyIdentifier R yes no Held by the stack.
Current_Command_Priority BACnetOptionalUnsigned O2 no no Built by the stack from your callbacks.
Value_Source BACnetValueSource O4,6,8 no no No default: the read fails.
Value_Source_Array BACnetARRAY[16] of BACnetValueSource O5,7 no no No default: the read fails.
Last_Command_Time BACnetTimeStamp O5,7 no no No default: the read fails.
Command_Time_Array BACnetARRAY[16] of BACnetTimeStamp O7 no no No default: the read fails.
Audit_Level BACnetAuditLevel O9 not in profile not in profile No default: the read fails.
Auditable_Operations BACnetAuditOperationFlags O9 not in profile not in profile No default: the read fails.
Audit_Priority_Filter BACnetOptionalPriorityFilter O9 not in profile not in profile No default: the read fails.
Tags BACnetARRAY[N] of BACnetNameValue O no no No default: the read fails.
Profile_Location CharacterString O no no ""
Profile_Name CharacterString O no no ""