The mapping of primitive data types is described in Table 91.
Table 91 – Mapping of primitive data types
| BACnet | OPC UA | 
| Null | Null | 
| 0:Boolean | 0:Boolean | 
| Unsigned Integer Abstract unlimited type | There are three different options for mapping the abstract BACnet data type to OPC UA. 
 | 
| Signed Integer | There are three different options for mapping the abstract BACnet data type to OPC UA. 
 The BACnet datat type is mapped to Int64, Int32 or a subtype of ByteString if used in Structure DataTypes. | 
| Real | 0:Float | 
| Double | 0:Double | 
| Octet String | 0:ByteString | 
| Character String | 0:String | 
| Bit String | OPC UA OptionSet See 10.3 for the definition of option set data types. | 
| Enumerated | OPC UA Enumeration " -" in names replaced by "" For reserved/deprecated members: Gaps are used See 10.4 for the definition of enumerated data types. | 
| Date | Structure BACnetDate | 
| Time | Structure BACnetTime | 
| BACnetObjectIdentifier | See 10.2.1 | 
- Currently Structures with special indication for optional fields
- Within structure definition field with IsArray = true
- new virtual structure: TYPE+"SubTypes" subtypes + sub structure definitions for choices
Example:
BACnetSpecialEvent::= SEQUENCE {
period CHOICE {
calendarEntry [0] BACnetCalendarEntry,
calendarReference [1] BACnetObjectIdentifier
},
listOfTimeValues [2] SEQUENCE OF BACnetTimeValue,
eventPriority [3] Unsigned (1..16)
}
Will be mapped to:
OPC UA Structure: BACnetSpecialEventPeriod (IsUnion = true)
calendarEntry: BACnetCalendarEntry
calendarReference: BACnetObjectIdentifier
OPC UA structure: BACnetSpecialEvent
period : BACnetSpecialEventPeriod
listOfTimeValues : BACnetTimeValue (ValueRank = Array)
eventPriority : UInt32
- DataType = TYPE (Structure)
- ValueRank = Array
- ArrayDimension[0] = 7
- DataType = TYPE (Structure)
- ValueRank = Array
- DataType = TYPE (Structure)
- ValueRank = Array
- Methods for Adding/Removing Elements
- BaseDataType