#调校 #汽车 #passthru

j2534

PassThru (SAE J2534) 绑定

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 中使用

MIT 许可证

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