21 个版本
0.1.33 | 2024年6月10日 |
---|---|
0.1.32 | 2024年6月3日 |
0.1.31 | 2024年5月18日 |
0.1.30 | 2024年3月25日 |
0.1.20 | 2024年2月29日 |
#182 在 嵌入式开发
每月 55 次下载
195KB
4K SLoC
J1939
SAE J1939 车辆协议的 Rust crate。
入门指南
使用 PGN 'address claimed' 构建 J1939 帧。
let id = j1939::IdBuilder::from_pgn(j1939::PGN::AddressClaimed)
.priority(3)
.sa(0x11)
.da(0xff)
.build();
let frame = j1939::FrameBuilder::new(id)
.copy_from_slice(&name.to_bytes()[..])
.build();
注意 这只是一个示例,并不是按照 SAE J1939 标准指定的实际 'address claimed' 帧。
一些常见的 PGN 已定义了数据结构。例如,时间/日期 PGN 已完全实现。
let timedate = j1939::spn::TimeDate {
year: 2024,
month: 4,
day: 20,
hour: 10,
minute: 1,
second: 58,
};
let id = j1939::IdBuilder::from_pgn(j1939::PGN::TimeDate)
.sa(0x28)
.build();
let frame = j1939::FrameBuilder::new(id)
.copy_from_slice(&timedate.to_pdu())
.build();
示例
$ cargo run --example j1939decode 0x0CB34A29
这在一个 ID 为 '0x0CB34A29' 的 ID 上运行 J1939 ID 解码器。可以使用此 crate 访问 J1939 aid 的每个属性。
no_std
此 crate 支持 no_std。默认情况下,crate 创建 no_std 目标,这意味着您可以在不支持动态分配的嵌入式系统上使用 J1939 crate。
贡献
欢迎所有反馈。请随时提交错误报告、对文档的需求或其他任何反馈到 [问题跟踪器][issues]。
许可证
J1939 根据 GPL-3.0 条款分发。
有关详细信息,请参阅 LICENSE。
依赖关系
~1MB
~18K SLoC