8 个版本
0.3.1 | 2020年12月27日 |
---|---|
0.3.0 | 2020年11月27日 |
0.2.4 | 2020年4月5日 |
0.1.2 | 2018年12月3日 |
0.1.1 | 2018年11月5日 |
#544 in 硬件支持
每月下载 39 次
在 2 crates 中使用
44KB
927 行
J2534
Rust对低级SAE J2534 (PassThru)的支持。
J2534 简介
SAE J2534 PassThru定义了一个标准库接口,用于与车辆控制模块通信。所有美国的汽车制造商都必须提供J2534兼容的服务软件。J2534提供了访问车辆诊断服务所需通信层的能力,以及下载和刷新控制模块。
用法
J2534规范要求PassThru库编译为32位,因此使用此crate的任何程序都必须编译为32位。
示例
use j2534::{Interface, PassThruMsg, Protocol, ConnectFlags, RxStatus, TxFlags};
fn main() -> j2534::Result<()> {
// Open the library and connect to a device
let interface = Interface::new("C:\\device.dll")?;
let device = interface.open_any()?;
// Create a CAN channel
let channel = device
.connect(Protocol::CAN, ConnectFlags::NONE, 500000)
.unwrap();
// Create a new message with an arbitration id of `8` and payload of `[0, 1, 2, 3]`.
let message = PassThruMsg::new_can(8, &[0, 1, 2, 3]);
channel.write(&mut [message], 1000)?;
Ok(())
}
依赖项
~0.5–1.2MB
~24K SLoC