7 个版本
0.3.0 | 2021年2月20日 |
---|---|
0.2.4 | 2021年1月23日 |
0.2.3 | 2020年8月1日 |
0.2.2 | 2020年7月25日 |
0.1.0 | 2019年3月10日 |
#1986 in 解析器实现
在 2 crates 中使用
38KB
993 行
adsb
ADS-B/Mode-S 消息的 Rust 解析器。
支持以下下行链路格式 (DF) 的消息
- DF 5: 监视身份(应答码)
- DF 17/18: 自动相关监视 - 广播 (ADS-B)
- TC 1-4: 飞机识别和类别
- TC 9-18: 机载位置
- TC 19: 机载速度
使用方法
解析 AVR 格式的消息
let avr = "*8D4840D6202CC371C32CE0576098;";
let (message, _) = parse_avr(&avr).unwrap();
if let Message {
kind:
MessageKind::ADSBMessage {
kind: ADSBMessageKind::AircraftIdentification { callsign, .. },
..
},
..
} = message
{
println!("callsign: {}", callsign);
}
解析二进制格式的消息
let bin = b"\x8D\x40\x62\x1D\x58\xC3\x82\xD6\x90\xC8\xAC\x28\x63\xA7";
let (message, _) = parse_binary(bin).unwrap();
if let Message {
kind:
MessageKind::ADSBMessage {
kind: ADSBMessageKind::AirbornePosition { altitude, .. },
..
},
..
} = message
{
println!("altitude: {}", altitude);
}
依赖项
~2MB
~45K SLoC