2个不稳定版本
0.3.0 | 2024年7月5日 |
---|---|
0.2.4 | 2024年7月3日 |
0.1.4 |
|
#677 in 解析器实现
每月419次下载
24KB
327 行
wte-mt-rx-parser
这个Rust库旨在提供解析由WTE MT-RX-3 AIS, 406 + 121.5 警报接收器生成的消息的功能。这些接收器设计用于解码各种类型的紧急和海上通信信号,包括
- 406MHz EPIRBs、PLBs和ELT信标,工作在406.020 MHz至406.045 MHz的频率范围内。
- 基于AIS的SART警报设备,在161.975MHz和162.025MHz上工作。
- 121.5MHz或243MHz的遇险设备以及使用定向天线的紧急回家发射机。
特性
提供简单的解析工具,用于
- 406消息串行输出
- MT协议结构化消息 (
MT1UUUNNNTFHHHHHHHHHHHHHHHSS112233N4445566WYYYY
) - MT协议原始消息 (
MT6UUUNNNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRYYYY
)
- MT协议结构化消息 (
- 接收信号强度 (RSS) 频率/警报 (
SS,1,NNN<CR>
/SS,A,NNN<CR>
)
备注
- 对于解析AIS消息(NMEA格式),请参考其他crate,例如nmea-parser。
- 请参考MT-RX-3用户手册获取更多信息(#参考资料)。
使用
[dependencies]
wte-mt-rx-parser = "0.1.4"
fn main() {
let samples = vec![
"MT1001000AL400C592753572B323433212S1723756E4706",
"MT6001001FFFE2FA00E0000CBAB959DB0903788C71B79F84B",
"SS,A,123",
"SS,1,123",
];
for s in samples {
println!("{:?}", wte_mt_rx_parser::parse(s));
}
}
结果
Ok(MtStructured(MtStructured {
header: "MT1",
id: "001",
sequence_number: 0,
message_type: Alert,
format_flag: 'L',
beacon: "400C592753572B3",
signal_strength: "23",
lat_degrees: Some(43),
lat_minutes: Some(32),
lat_seconds: Some(12),
lat_direction: South,
long_degrees: Some(172),
long_minutes: Some(37),
long_seconds: Some(56),
long_direction: East,
checksum: 18182
}))
Ok(MtRaw(MtRaw {
header: "MT6",
id: "001",
sequence_number: 1,
data: "FFFE2FA00E0000CBAB959DB0903788C71B79",
checksum: 63563
}))
Ok(Rss(Rss {
rss_type: Alert,
nnn: 123
}))
Ok(Rss(Rss {
rss_type: Frequency,
nnn: 123
}))
贡献
如果您发现任何问题或有改进建议,请随时提交问题。
参考资料
依赖
~275–730KB
~17K SLoC