7 releases
0.3.0 | Feb 20, 2021 |
---|---|
0.2.4 | Jan 23, 2021 |
0.2.3 | Aug 1, 2020 |
0.2.2 | Jul 25, 2020 |
0.1.0 | Mar 10, 2019 |
#1986 in Parser implementations
Used in 2 crates
38KB
993 lines
adsb
A Rust parser for ADS-B/Mode-S messages.
Messages with the following Downlink Formats (DF) are supported:
- DF 5: Surveillance identity (squawk code)
- DF 17/18: Automatic Dependent Surveillance - Broadcast (ADS-B)
- TC 1-4: Aircraft identification and category
- TC 9-18: Airborne position
- TC 19: Airborne velocity
Usage
Parse message in AVR format
let avr = "*8D4840D6202CC371C32CE0576098;";
let (message, _) = parse_avr(&avr).unwrap();
if let Message {
kind:
MessageKind::ADSBMessage {
kind: ADSBMessageKind::AircraftIdentification { callsign, .. },
..
},
..
} = message
{
println!("callsign: {}", callsign);
}
Parse message in binary format
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);
}
Dependencies
~2MB
~45K SLoC