Heartbeat Data¶
In order to let the backend server knows whether the terminal device is online when no report is generated, the terminal provides a heartbeat mechanism: When the terminal has not sent any information to the backend server for a certain period of time (refer to the AT@HBD command), the terminal will send the HBD frame to the backend server, and the server responds with a SACK frame to the terminal if necessary.
As same as report, the HBD message is encoded to Binary frame, and the big-endian byte order is used for the transmission of multi-byte data types (int, float, double, etc.), and the frame length is always 24 bytes, the whole frame format is as follows:
Example (Total 24 bytes):
2B 10 18 01 23 45 67 89 01 23 45 80 01 00 07 00 5E 36 2F 5A 10 F2 14 24
Parts |
Fields |
Length (Byte) |
Range/Format |
Default |
|---|---|---|---|---|
Head |
Header |
1 |
2BH (+) |
2BH (+) |
10H |
1 |
10H |
10H |
|
Frame Length |
1 |
18H |
18H |
|
IMEI |
8 |
|||
Device Type |
2 |
0000H-FFFFH |
C031H |
|
Protocol Version |
2 |
0001H-FFFFH |
000AH |
|
Custom Version |
1 |
00H-FFH |
00H |
|
Tail |
Generated Time |
4 |
||
Count Number |
2 |
0000H-FFFFH |
||
Check Byte |
1 |
00H-FFH |
||
Tail |
1 |
24H ($) |
24H ($) |
Header
1 byte. Always 2BH (ASCII character ‘+’).
10H
1 byte. Always 10H. Used as an identifier.
Frame Length
1 byte. The length of this message from ‘Header’ (2BH) to ‘Tail’ (24H).
The length of the HBD frame is fixed at 24 bytes, that is, this field is always equal to 18H.
IMEI
8 bytes. The International Mobile Equipment Identity of the terminal device.
For example, 0123456789012345H indicates IMEI “123456789012345”.
Device Type
2 bytes. The device type refers to the terminal model.
For GL601, it is C031H, i.e. “C031”.
Protocol Version
2 bytes. The version number of this @Track protocol.
For example, 0001H means V1, 000CH means V12, and 007BH means V123.
Custom Version
This version number is reserved for user customization.
For example, 01H means V1, 0CH means V12, and 7BH means V123.
If the custom version number has not been set, it defaults to 00H.
Generated Time
4 bytes. The time when the HBD frame was generated, difference, in seconds, between the UTC time and midnight, January 1, 1970.
For example, 64F9AAF6H (i.e., 1694083830) indicates the UTC time September 7,2023,10:50:30.
Count Number
2 bytes. A self-increasing count number in each HBD frame, it begins from 0000H and increases by 1 for each report, and it rolls back after FFFFH.
Once the terminal device reconnects to the backend server (restarted/socket disconnected/PDP disconnected, etc.), the count number always starts from 0000H again.
Check Byte
1 byte. This is an 8-bit CRC checksum, it is generated by a CRC algorithm with the properties displayed in CRC-8 Calculation below. The CRC covers the content of ‘Header’ to ‘Count Number’.
Tail
1 byte. 24H (ASCII character ‘$’).