04/09/2019
I have been trying to parse the DataSetMessage payload from a sample set of data that I have. To my understanding of the specification., I do the parsing in the following order!
1. Parse the NetworkMessage header
2. Parse the Group header (based on UADP flags)
3. Parse the Payload header (based on UADP flags) – For my sample set, I would have parsed this Payload for DataSetMessage NetworkMessageType
4. Parse the Extended NetworkMessage header
5. Parse the Security header (based on ExtendedFlags1 flag for Security)
After doing steps 1 to 5, I check for the NetworkMessageType which is found in the ExtendedFlags2. Based on this (assuming that it is of type DataSetMessage), I then do the following steps:
6. Parse the size of the DataSetMessage as an Array of Byte
7. Iterate over the size obtained from Step 6 and for each element in the sizes array, do the following:
7.1. Parse the DataSetMessage header (DataSetFlags1, DataSetFlags2, DataSetMessage SequenceNumber, Timestamp, PicoSeconds, Status)
7.1. Check if the DataSetMessage (from DataSetFlags2) has a key frame, delta frame, event or keep alive
7.3. Based on step 7.1, parse the Payload appropriately
Is my understanding correct? Is there anything I missed in the order in which I parse this data? The reason why I’m asking is that from the sample set of data that I have which is a DataSetMessage with key frame, I see some additional bytes in the input for which I do not know how to parse it or in other words, I’m in doubt if I missed any additional steps between step 5 and 6 or between steps 6 and 7.
Please help!
1 Guest(s)