| Crates.io | can_adapter |
| lib.rs | can_adapter |
| version | 0.5.0 |
| created_at | 2024-12-23 14:15:22.911701+00 |
| updated_at | 2025-07-26 19:01:29.157626+00 |
| description | Library to load CAN adapters typically used to diagnose vehicles. |
| homepage | https://github.com/SolidDesignNet/rp1210-rs |
| repository | https://github.com/SolidDesignNet/rp1210-rs |
| max_upload_size | |
| id | 1493110 |
| size | 119,477 |
J2534 is a work in progress, but RP1210, SLCAN, and SocketCAN work.
Brokers packets from a queue to and from the attached adapter. Includes:
CAN tool
Usage: logger [OPTIONS] <CONNECTION> <COMMAND>
Commands:
log Dump Vector ASC compatible log to stdout
server Used for testing. Requires another instance to send or ping this source address
ping Latency test. Ping [da] with as many requests as it will respond to
bandwidth Bandwidth test. Send as much data to [da] with as many requests as it will respond to
send Send arbitrary CAN message
vin Read the VIN
uds Common UDS requests. See "uds --help" for more
j1939 Common J1939 requests. See "j1939 --help" for more
help Print this message or the help of the given subcommand(s)
Arguments:
<CONNECTION> For a list of possible connections, "cancan list log". Available connection strings will vary depending on the machine
Options:
-s, --sa <SOURCE_ADDRESS> Adapter Address (used for packets send and transport protocol) [default: 0xF9]
-d, --da <DESTINATION_ADDRESS> Adapter Address (used for packets send and transport protocol) [default: 0xFF]
-t, --timeout <TIMEOUT> Timeout in ms [default: 2000]
-v, --verbose
-h, --help Print help
-V, --version Print version
log does what you would expect and prints all of the packets to stdout in a format simir to Vector's .ASC files.server, ping, and bandwidth are used to performance test adapters.send sends an arbitrary packet specified in a format similar to Vector's ASC file format.vin reads the VIN from address 0 and broadcast. It is used as a demonstration.uds is intended to be a command line implementation of ISO14229. It currently supports ISO15765.j1939 allows J1939 requests. It currently supports receiving J1939-21 transport protocol. Sending transport protocol has not be validated beyond a self test.--sa and --da are to configure RP1210 adapters have have built in support for J1939-21 transport protocol.See main.rs implmentation for fn vin(...) https://github.com/SolidDesignNet/can_adapter/blob/main/src/main.rs#L357
When combined with DBC or J1939DA parsing, this becomes a light weight CAN logger. See https://github.com/SolidDesignNet/j1939logger.
slcan setup:
chmod a+rw /dev/ttyACM0
then the logger can be used to log all J1939 requests and TP packets between F9 and 00:
logger 'slcan /dev/ttyACM0 500' log | egrep 'E[ABC]..(00|F9)'
PEAK
ip link set can0 name peak
ip link set peak type can bitrate 500000
ip link set peak up