LCM Log File format
Conceptually, an LCM Log file is an ordered list of events. Each event has four fields:
Field Name |
Field Description |
---|---|
event number |
monotonically increasing 64-bit integer that identifies each event. It should start at zero, and increase in increments of one. |
timestamp |
monotonically increasing 64-bit integer that identifies the number of microseconds since the epoch (00:00:00 UTC on January 1, 1970) at which the event was received. |
channel |
UTF-8 string identifying the LCM channel on which the message was received. |
data |
binary blob consisting of the exact message received. |
Event Encoding
Each event is encoded as a binary structure consisting of a header, followed by the channel and the data.
The header is 28 bytes and has the following format:
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| LCM Sync Word |
+--------+--------+--------+--------+
| Event Number (upper 32 bits) |
+--------+--------+--------+--------+
| Event Number (lower 32 bits) |
+--------+--------+--------+--------+
| Timestamp (upper 32 bits) |
+--------+--------+--------+--------+
| Timestamp (lower 32 bits) |
+--------+--------+--------+--------+
| Channel Length |
+--------+--------+--------+--------+
| Data Length |
+--------+--------+--------+--------+
LCM Sync Word
is an unsigned 32-bit integer with value 0xEDA1DA01
Event Number
and Timestamp
fields of the header are as described above.
Channel Length
is an unsigned 32-bit integer describing the length of the
channel name.
Data Length
is an unsigned 32-bit integer describing the length of the
data.
Each header is immediately followed by the UTF-8 encoding of the LCM channel, and then the message data. The channel is not NULL-terminated.
All integers are packed in network order (big endian)