7.2.4.5.4 DataSetMessage header
The DataSetMessage header structure and the relation to other parts in a NetworkMessage is shown in Figure 34.

The encoding of the DataSetMessage header structure is specified in Table 162.
The DataSetFieldContentMask and the DataSetMessageContentMask settings of the DataSetWriter control the flags in the fields DataSetFlags1 and DataSetFlags2. The setting of the flags shall not change until the configuration of the DataSetWriter is changed.
| Name | Type | Description |
| DataSetFlags1 | Byte | Bit 0: DataSetMessage is valid. If this bit is set to false, the rest of this DataSetMessage is considered invalid, and shall not be processed by the Subscriber. Bit range 1-2: Field Encoding 00 The DataSet fields are encoded as Variant 01 RawData Field Encoding The RawData field encoding is defined in 7.2.4.5.11. 10 DataValue Field Encoding The DataSet fields are encoded as DataValue. This option is set if the DataSet is configured to send more than the Value. 11 Reserved Reserved values shall not be used by the sender and the receiver shall skip messages when reserved values are received. Bit 3: DataSetMessageSequenceNumber enabled Bit 4: Status enabled Bit 5: ConfigurationVersionMajorVersion enabled Bit 6: ConfigurationVersionMinorVersion enabled Bit 7: DataSetFlags2 enabled The bit shall be false, if DataSetFlags2 is 0. |
| DataSetFlags2 | Byte | The DataSetFlags2 shall be omitted if bit 7 of the DataSetFlags1 is false. If the field is omitted, the Subscriber shall handle the related bits as false. Bit range 0-3: UADP DataSetMessage type 0000 Data Key Frame (see 7.2.4.5.5) If the DataSetFlags2 field is not provided, this is the default DataSetMessage type. 0001 Data Delta Frame (see 7.2.4.5.6) 0010 Event (see 7.2.4.5.7) 0011 Keep Alive (see 7.2.4.5.8) 0101 ActionRequest (see 7.2.4.5.9) 0110 ActionResponse (see 7.2.4.5.10) 0111 Reserved 1xxx Reserved Reserved values shall not be used by the sender and the receiver shall skip messages when reserved values are received. Bit 4: Timestamp enabled Bit 5: PicoSeconds included in the DataSetMessage header Bit 6: Reserved Bit 7: Reserved for further extended flag fields Reserved bits shall be set to false by the Publisher and Subscribers shall skip messages where the reserved bits are not false. |
| DataSetMessageSequenceNumber | UInt16 | Sequence number for each new DataSetMessage as defined in 7.2.3. The field shall be omitted if Bit 3 of DataSetFlags1 is false. |
| Timestamp | UtcTime | The time the DataSetMessage was created. The Timestamp shall be omitted if Bit 4 of DataSetFlags2 is false. |
| PicoSeconds | UInt16 | Specifies the number of 10 picoseconds (1,0 e-11 seconds) intervals which shall be added to the Timestamp. The PicoSeconds field stores 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 field shall contain values less than 10 000. The decoder shall treat values greater than or equal to 10 000 as the value ‘9.999’. The field shall be omitted if Bit 5 of DataSetFlags2 is false. |
| Status | UInt16 | The overall status of the DataSetMessage. The dependencies to the status of DataSet fields are defined in Table 34. This is the high order 16 bits of the StatusCode DataType representing the numeric value of the Severity and SubCode of the StatusCode DataType. The field shall be omitted if Bit 4 of DataSetFlags1 is false. |
ConfigurationVersion MajorVersion | VersionTime | The major version of the configuration version of the DataSet used as consistency check with the DataSetMetaData available on the Subscriber side. The field shall be omitted if Bit 5 of DataSetFlags1 is false. |
ConfigurationVersion MinorVersion | VersionTime | The minor version of the configuration version of the DataSet used as consistency check with the DataSetMetaData available on the Subscriber side. The field shall be omitted if Bit 6 of DataSetFlags1 is false. |