#receiver #rss #ais #message-parser #epirb #mt-rx

wte-mt-rx-parser

MT-RX-3+ (AIS, 406 + 121.5) 消息解析器

2个不稳定版本

0.3.0 2024年7月5日
0.2.4 2024年7月3日
0.1.4 2024年7月3日

#677 in 解析器实现

Download history 136/week @ 2024-06-27 251/week @ 2024-07-04 8/week @ 2024-07-11 20/week @ 2024-07-18 4/week @ 2024-07-25

每月419次下载

MIT 许可证

24KB
327

wte-mt-rx-parser

WTE-MT-RX Parser on crates.io WTE-MT-RX Parser on docs.rs GitHub last commit

这个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)
  • 接收信号强度 (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