3 releases

new 0.1.0-alpha2 Sep 10, 2024
0.1.0-alpha1 Sep 3, 2024
0.1.0-alpha0 Aug 30, 2024

#404 in Network programming

Download history 84/week @ 2024-08-24 186/week @ 2024-08-31 156/week @ 2024-09-07

426 downloads per month
Used in zlgcan

GPL-3.0 license

365KB
9K SLoC

A UDS PROTOCOL for ECU

Overview

ecu-uds is dedicated to implementing ISO 14229. ISO-TP (ISO 14229) is a UDS protocol used in automotive communication.

Prerequisites

  • Rust 1.70 or higher
  • Cargo (included with Rust)

Adding to Your Project

To use ecu-uds in your Rust project, add it as a dependency in your Cargo.toml:

[dependencies]
ecu-uds = { version="lastest-version" }

supported service

  • note:
    • the service marked with is completed.
    • the service marked with is partially completed.
    • The service marked with is not implemented.
  • SessionCtrl = 0x10, // ✅
  • ECUReset = 0x11, // ✅
  • ClearDiagnosticInfo = 0x14, // ✅
  • ReadDTCInfo = 0x19, // ⭕
  • ReadDID = 0x22, // ✅
  • ReadMemByAddr = 0x23, // ✅
  • ReadScalingDID = 0x24, // ✅
  • SecurityAccess = 0x27, // ✅
  • CommunicationCtrl = 0x28, // ✅
  • Authentication = 0x29, // ✅
  • ReadDataByPeriodId = 0x2A, // ✅
  • DynamicalDefineDID = 0x2C, // ✅
  • WriteDID = 0x2E, // ✅
  • IOCtrl = 0x2F, // ✅
  • RoutineCtrl = 0x31, // ✅
  • RequestDownload = 0x34, // ✅
  • RequestUpload = 0x35, // ✅
  • TransferData = 0x36, // ✅
  • RequestTransferExit = 0x37, // ✅
  • RequestFileTransfer = 0x38, // ✅
  • WriteMemByAddr = 0x3D, // ✅
  • TesterPresent = 0x3E, // ✅
  • AccessTimingParam = 0x83, // ✅
  • SecuredDataTrans = 0x84, // ✅
  • CtrlDTCSetting = 0x85, // ✅
  • ResponseOnEvent = 0x86, // ❌
  • LinkCtrl = 0x87, // ✅

Contributing

We're always looking for users who have thoughts on how to make ecu-uds better, or users with interesting use cases.

Of course, we're also happy to accept code contributions for outstanding feature requests!

Dependencies

~0.9–7.5MB
~52K SLoC