Skip to main content

Message Types

There are three different data message types defined:

  • IMU
  • GPS
  • CAN

Special message types:

  • Session start
  • Packet RTC time

Special Message Types

Session Start (type = 0x80)

Indicates the initiation of a new session, representing the start of a new vehicle activity. The RMS device transmits a session start message under the following conditions:

  • The device is powered on
  • The device wakes up from sleep state

FieldDescriptionByte order1Type2LengthFactorOffsetUnit
timestampTimestampMU4500us
session_startSession start timeMU410Unix epoch in seconds

Example: 80 08 00 00 00 00 69 43 DF 8A

  • timestamp - 0x00000000 = 0
  • session_start - 0x6943DF8A = 1,766,055,818 = Thu Dec 18 2025 11:03:38 GMT+0000

Packet RTC Time (type = 0x81)

Data messages do not contain absolute timestamps; instead, they include a relative timestamp referenced to a specific time point known as the packet RTC time. The packet RTC time is a fixed reference captured when the device powers on or wakes up from sleep mode. Each data message carries a relative timestamp, expressed in microseconds, measured from this packet RTC time.

From an implementation perspective, this message is not transmitted explicitly by the device. The packet RTC time exists at the device TCP packet level; however, the data streamer service expands this information into a distinct message type.

To determine the absolute event time of a data message, the most recent packet RTC time must be combined with the message’s relative timestamp, expressed in microseconds.

FieldDescriptionByte order1Type2LengthFactorOffsetUnit
rtc_timePacket RTC timeMU410Unix epoch in seconds

Example: 81 04 69 43 DF 8A

  • rtc_time - 0x6943DF8A = 1,766,055,818 = Thu Dec 18 2025 11:03:38 GMT+0000

Data Message Types

IMU Message (type = 0x24)

FieldDescriptionByte order1Type2LengthFactorOffsetUnit
timestampTimestampMU4500us
acc_xX - accelerationMS20,244 * 9,80665 / 1000 0m/s2
acc_yY - accelerationMS20,244 * 9,80665 / 10000m/s2
acc_zZ - accelerationMS20,244 * 9,80665 / 10000m/s2
gyro_xX - angular velocityMS217,5 / 10000°/sec
gyro_yY - angular velocityMS217,5 / 10000°/sec
gyro_zZ - angular velocityMS217,5 / 10000°/sec
tempInternal temperatureMS21/25625°C
acc_xfX - filtered accelerationMS29,80665/30000m/s2
acc_yfY - filtered accelerationMS29,80665/30000m/s2
acc_zfZ - filtered accelerationMS29,80665/30000m/s2
gyro_xfX - filtered angular velocityMS21/500°/sec
gyro_yfY - filtered angular velocityMS21/500°/sec
gyro_zfZ - filtered angular velocityMS21/500°/sec

Example: 24 1E 00 09 13 51 00 21 01 36 0F C3 FF E4 FF 5D 00 06 FD F2 02 BA 02 18 00 4C FF E8 FF 72 00 05

Fields:

FieldRAW hexRAW decimalValue
timestamp0x00091351594,76929,738,450 us
acc_x0x0021330,08 m/s2
acc_y0x01363100,74 m/s2
acc_z0x0FC340359,66 m/s2
gyro_x0xFFE4-28-0,49 °/sec
gyro_y0xFF5D-163-2,85 °/sec
gyro_z0x000660,11 °/sec
temp0xFDF2-52622,9 °C
acc_xf0x02BA6982,28 m/s2
acc_yf0x02185361,75 m/s2
acc_zf0x004C760,25 m/s2
gyro_xf0xFFE8-24-0,48 °/sec
gyro_yf0xFF72-142-2,84 °/sec
gyro_zf0x000550,1 °/sec

GPS Message (type = 0x25)

FieldDescriptionByte order1Type2LengthFactorOffsetUnit
timestampTimestampMU4500us
gps_timeGPS timeMU810UNIX time in milliseconds
latitudeGPS latitudeMS41 / 1000000Latitude in Degrees Minutes
longitudeGPS longitudeMS41 / 1000000Longitude in Degrees Minutes
hdopGPS hdopMU21 / 1000
altitudeGPS altitudeMU21 / 1000m
speedGPS speedMU21 / 1000km/h

Example:

25 1C 00 3B 1B D8 00 00 01 8F BF 55 E4 39 1C 2D B5 3B 0B 56 EF 3C 00 77 00 00 3E E4 09 EC

Fields:

FieldRAW hexRAW decimalValue
timestamp0x00381BD83,677,144183 857 200 us
gps_time0x0000018FBF55E4391,716,902,028,3452024-05-28 13:13:48.345 UTC
latitude0x1C2DB53B472,757,5634727.57563 => 47° 27.57563’ => 47.45959383°
longitude0x0B56EF3C190,246,7161902.46716 => 19° 2.46716’ => 19.0411193°
hdop0x00771191.19
altitude0x00003EE416,100161 m
speed0x09EC2,54025.4 km/h

CAN Message (type = 0x26)

FieldDescriptionByte order1Type2LengthFactorOffsetUnit
timestampTimestampMU4500us
flgCAN flagsMU1upper 4 bits is the channel, lower 4 bits is the DLC (data length code)
can_idCAN frame IDMU4most significant bit is the std/xtd flag
can_dataCAN frame dataMUvariablebyte array, length specified by the DLC

Example:

21 0F 00 0B 17 E9 16 00 00 01 9A AF FD E5 7F 00 20

Fields:

FieldRAW hexRAW decimalValue
timestamp0x000B17E9727,01736,350,850 us
flg0x16Channel: 0x01, DLC: 0x06Channel: 1, DLC: 6
can_id0x0000019ASTD/EXT:0, CAN ID: 0x19AStandard CAN frame, ID: 410
can_data0xAF 0xFD 0xE5 0x7F 0x00 0x200xAF 0xFD 0xE5 0x7F 0x00 0x20

Footnotes

  1. M – Motorola, I - Intel 2 3 4 5

  2. Unsigned integer, S – signed integer 2 3 4 5