Files
ECAP_Server/doc/10003_zh
T
2026-06-16 11:18:22 +08:00

39 lines
2.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
数据包封装与行编码
HULC协议使用字节0x1A作为数据包的起始标记(SOP)。为了避免误将正常数据字节0x1A解释为SOP标记,每次遇到数据字节0x1A时,会在数据流中对其进行转义(即“转义”操作),
即将0x1A替换为两个0x1A字节。接收端需要在接收时识别每个后续不是0x1A的0x1A字节作为SOP标记,并将每次出现的连续0x1A字节还原为一个0x1A的数据字节(即“解除转义”操作)。
以下是一个包含SOP标记和数据字节0x1A的数据包示例:
转义前: 1A 32 27 1A E8 57 F0 1A 6C
传输中: 1A 32 27 1A 1A E8 57 F0 1A 1A 6C
解除转义后: 1A 32 27 1A E8 57 F0 1A 6C
所有类型的数据消息(0x31、0x32、0x33)具有以下结构:
0x1A TYPE 时间戳 RSSI数据 Mode-S或Mode-A/C
1 1 6 1 2/7/14
各字段说明:
TYPE(类型):8位,表示数据类型。0x31代表Mode-A/C0x32代表Mode-S短报文,0x33代表Mode-S扩展报文。
时间戳(Timestamp):48位,包含两个部分:
高18位:自当天00:00:00 UTC以来的秒数。
低30位:当前秒的纳秒部分。
RSSI(信号强度指示):8位,表示信号强度的对数值(未校准)。
数据(Data):N * 8位的原始数据,具体长度取决于数据类型:
对于Type 0x31,数据长度为2字节;
对于Type 0x32,数据长度为7字节;
对于Type 0x33,数据长度为14字节。
备注:数据采用MSB(最高位优先)格式。
时间戳格式
时间戳有两种格式,分别是绝对时间戳和相对时间戳,取决于是否连接了GPS接收器。可以通过检查HULC状态消息中的状态标志字段的第15位(Gps Detected)来确定使用的是哪种格式。两种时间戳格式与Beast二进制协议中的相应时间戳格式兼容。
1.相对时间戳(无GPS):
如果没有连接GPS接收器,则时间戳是一个48位的无符号整数,表示12 MHz的时钟周期数。该时间戳大约每271天会回绕一次。
2.绝对时间戳(有GPS):
如果连接了适当的GPS接收器,则48位的时间戳字段分为两部分:
高18位:表示自当天00:00:00 UTC以来的秒数。
低30位:表示当前秒的纳秒部分。纳秒数保证小于1秒。
示例: 时间戳0x3746554be940代表的时间为:
56601秒 + 357296448纳秒 = UTC时间:15:43:21.357296448