This article was written for version 2.3.1 of Core. Click here for the most recent version of the help center.

Multiple timestamp fields are housed within the predefined message types from the data model. There are a variety of contexts within which they are implemented.

The message publisher is always responsible for setting each of the available fields.

All PolySync Core UTC timestamps have an offset for the Unix epoch.

Message header timestamp

The message header timestamp is populated for every message before it’s published to the bus. This is applied by the node before publishing the message to the PolySync Core bus.

The message header timestamp represents the UTC microsecond time when the message was published to the bus

Message timestamp

The message timestamp represents when the data was read on the native bus─Ethernet, CAN, Serial─from the sensor, by the PolySync Core Dynamic Driver interface.

This timestamp represents the PolySync Core time domain and can be compared to any other message timestamp.

Native message timestamp

The native message timestamp is populated when the sensor or hardware device provides the data.

This format is always sensitive to the sensor or hardware device.

Use the ps_native_timestamp.format field to determine whether absolute UTC microseconds are used─or relative milliseconds/microseconds─since power-ups are used as well.

With LiDAR, there is occasionally start and end timestamp values too, like the Velodyne HDL-32E. This is also context sensitive with respect to the sensor. For Velodyne, this represents the number of microseconds past the hour, per UTC time.