74 lines
2.5 KiB
Plaintext
74 lines
2.5 KiB
Plaintext
9.3.1 Packetizing & Line Encoding
|
|
HULC Protocol uses the byte 0x1A as start-of-packet (SOP) marker. In order to avoid misinterpretation
|
|
of normal data bytes with value 0x1A as SOP, each occurrence of data byte 0x1A is doubled in the
|
|
data stream during transmission ('escaping'). It is thus necessary during reception to detect every
|
|
0x1A not followed by another 0x1A as an SOP marker and to reduce every occurrence of a double
|
|
0x1A to a single 0x1A data byte ('un-escaping').
|
|
Example of a 4-byte long packet including SOP marker and 0x1A data bytes:
|
|
Before Escaping: 1A 32 27 1A E8 57 F0 1A 6C
|
|
During Transmission: 1A 32 27 1A 1A E8 57 F0 1A 1A 6C
|
|
After Un-Escaping: 1A 32 27 1A E8 57 F0 1A 6C
|
|
|
|
|
|
|
|
Type Payload Size Description
|
|
0x31 4 bytes Mode-A/C raw data
|
|
0x32 7 bytes Mode-S Short Squitter raw data
|
|
0x33 14 bytes Mode-S Extended Squitter raw data
|
|
|
|
|
|
ll Data messages (Type 0x31 & 0x32 & 0x33) have the following structure:
|
|
0x1A TYPE Timestamp RSSI Data (Mode-S or Mode-A/C)
|
|
|
|
|
|
Fields:
|
|
TYPE 8-bit 0x31 or 0x32 or 0x33 for Mode-A/C or Mode-S short or extended squitter respectively
|
|
Timestamp 48-bit1
|
|
Upper 18 bits are seconds since last midnight 00:00:00 UTC
|
|
Lower 30 bits are nanoseconds of current second
|
|
RSSI 8-bit Logarithmic field-strength indicator, uncalibrated
|
|
Data N * 8-bit raw data, N=4 for Type 0x31, N=7 for TYPE 0x32 and N=14 for TYPE 0x33
|
|
1) MSB-first
|
|
|
|
|
|
Timestamps:
|
|
There are two distinct timestamp formats, absolute and relative timestamps depending on
|
|
whether a GPS receiver is attached or not. To find out which format is used check bit 15
|
|
(Gps Detected) in the status flag field of the HULC Status Message. Both timestamp formats
|
|
are compatible with the respective timestamp formats used in the Beast Binary Protocol.
|
|
Relative Timestamp (No GPS):
|
|
Without a GPS receiver attached the timestamp is a 48-bit unsigned number counting 12
|
|
MHz cycles. The timestamp will wrap approximately every 271 days.
|
|
Absolute Timestamp (With GPS):
|
|
If a suitable GPS receiver is attached the 48-bit timestamp field is divided into the upper
|
|
18 bits which count the seconds since last midnight 00:00:00 UTC and the lower 30 bits
|
|
which carry the nanoseconds of the current second. Timestamp nanoseconds are
|
|
guaranteed to be less than one complete second.
|
|
Example: 0x3746554be940 = (56601 sec + 357296448 nsec) = 15:43:21.357296448
|
|
UTC
|
|
|
|
|
|
1A 31
|
|
3A 52 56 53 02 E1
|
|
8F
|
|
37 5A 1A A3
|
|
|
|
1A 31
|
|
3A 52 56 53 02 E1
|
|
8F
|
|
37 5A 1A 1A A3
|
|
|
|
1A 31
|
|
4B 03 5B 02 E1 90
|
|
10
|
|
1E 89 50
|
|
|
|
1a31
|
|
19 ea b6 3a 1f 91
|
|
65
|
|
01 47
|
|
|
|
1a31
|
|
19 b4 18 c3 59 0c
|
|
6d
|
|
32 10 |