Skip to content

Supported Data Types

The ESF BACNet Driver supports the following data types.

Primitive

All primitive data types are supported (BitString, Boolean, CharacterString, Date, Double, Enumerated, Null, ObjectIdentifier, OctetString, Real, SignedInteger, Time, UnsignedInteger, Unsigned8, Unsigned16 and Unsigned32). They can be converted to almost all Java types.

Enumerated

All enumerated are supported. They can be converted only to Java strings.

Constructed

The constructed types are converted to JSON Strings. All types are supported, except the following types: ActionCommand (partial support), ActionCommandList, AssignedAccessRights, ChannelValue (partial support), CovSubscriptions, CovMultipleSubscriptions, CredentialAuthenticationFactor, DeviceObjectPropertyValue, EventLogRecord, EventNotificationSubscription, GroupChannelValue, KeyIdentifier, LogData, LogMultipleRecord, LogRecord, LogStatus, NameValue, ObjectPropertyValue, PropertyAccessResult, PropertyStates, PropertyValue, ReadAccessResults, ReadAccessSpecification, SecurityKeySet, WriteAccessSpecification.

Examples of JSON strings for constructed types

  • ValueSources:
{
   "ValueSource":{
      "Address":{
         "NetworkNumber":2,
         "MacAddress":"[11,22,33,44,55,66]"
      }
   }
}

{
   "ValueSource":{
      "DeviceObjectReference":{
         "ObjectId":{
            "ObjectIdentifier":{
               "ObjectType":"device",
               "InstanceNumber":9
            }
         },
         "DeviceId":{
            "ObjectIdentifier":{
               "ObjectType":"analog-input",
               "InstanceNumber":9
            }
         }
      }
   }
}
  • Arrays of primitives:
{
   "Unsigned32Array":[
      100,
      33
   ]
}
  • Client COV:
{
   "ClientCov":{
      "Real":1.0
   }
}
  • Process ID Selection:
{
   "ProcessIdSelection":{
      "Unsigned32":32
   }
}
  • Recipient List:
[
   {
      "Destination":{
         "ValidDays":"[false, true, true, true, true, true, true]",
         "FromTime":{
            "Time":{
               "Hour":1,
               "Minute":0,
               "Second":0,
               "Hundredth":0
            }
         },
         "ToTime":{
            "Time":{
               "Hour":23,
               "Minute":59,
               "Second":59,
               "Hundredth":99
            }
         },
         "Recipient":{
            "Recipient":{
               "ObjectIdentifier":{
                  "ObjectType":"analog-input",
                  "InstanceNumber":0
               }
            }
         },
         "ProcessIdentifier":0,
         "IssueConfirmedNotifications":false,
         "Transitions":"[false, false, false]"
      }
   },
   {
      "Destination":{
         "ValidDays":"[true, true, true, true, true, true, true]",
         "FromTime":{
            "Time":{
               "Hour":0,
               "Minute":0,
               "Second":0,
               "Hundredth":0
            }
         },
         "ToTime":{
            "Time":{
               "Hour":23,
               "Minute":59,
               "Second":59,
               "Hundredth":99
            }
         },
         "Recipient":{
            "Recipient":{
               "ObjectIdentifier":{
                  "ObjectType":"analog-input",
                  "InstanceNumber":0
               }
            }
         },
         "ProcessIdentifier":0,
         "IssueConfirmedNotifications":false,
         "Transitions":"[false, false, false]"
      }
   }
]