A DataValue is always preceded by a mask that indicates which fields are present in the stream.
The fields of a DataValue are described in Table 21.
Table 21 – Data Value Binary DataEncoding
Name |
Data Type |
Description |
||||||||||||
Encoding Mask |
Byte |
A bit mask that indicates which fields are present in the stream. The mask has the following bits:
|
||||||||||||
Value |
Variant |
The value. Not present if the Value bit in the EncodingMask is False. |
||||||||||||
Status |
StatusCode |
The status associated with the value. Not present if the StatusCode bit in the EncodingMask is False. |
||||||||||||
SourceTimestamp |
DateTime |
The source timestamp associated with the value. Not present if the SourceTimestamp bit in the EncodingMask is False. |
||||||||||||
SourcePicoseconds |
UInt16 |
The number of 10 Picosecond intervals for the SourceTimestamp. Not present if the SourcePicoseconds bit in the EncodingMask is False. If the source timestamp is missing the Picoseconds are ignored. |
||||||||||||
ServerTimestamp |
DateTime |
The Server timestamp associated with the value. Not present if the ServerTimestamp bit in the EncodingMask is False. |
||||||||||||
ServerPicoseconds |
UInt16 |
The number of 10 Picosecond intervals for the ServerTimestamp. Not present if the ServerPicoseconds bit in the EncodingMask is False. If the Server timestamp is missing the Picoseconds are ignored. |
The Picoseconds fields store the difference between a high-resolution timestamp with a resolution of 10 Picoseconds and the Timestamp field value which only has a 100 ns resolution. The Picoseconds fields shall contain values less than 10 000. The decoder shall treat values greater than or equal to 10 000 as the value ‘9999’.