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 ‘$’).