BMCLI isotp
ISO 15765-2 (ISOTP) transport layer.
isotp send
Section titled “isotp send”Send data via ISOTP (no response expected).
bmcli isotp send --channel=0 --reqid=0x7E0 --respid=0x7E8 --data="3E 80"bmcli isotp send --channel=0 --reqid=0x7E0 --respid=0x7E8 --data="..." --flags=fdf --padding=0xCC| Option | Default | Description |
|---|---|---|
--channel |
(required) | Channel |
--reqid |
(required) | TX CAN ID |
--respid |
(required) | RX CAN ID |
--data |
(required) | Payload hex bytes |
--timeout |
5000 |
Timeout ms |
--flags |
none | fdf for CAN FD |
--padding |
no padding | Pad value, e.g. 0xCC |
isotp recv
Section titled “isotp recv”Receive data via ISOTP (no request sent first).
bmcli isotp recv --channel=0 --reqid=0x7E0 --respid=0x7E8 --timeout=5000isotp ecu-sim
Section titled “isotp ecu-sim”ISOTP ECU simulator: listens for ISOTP requests and responds with canned responses loaded from a file.
bmcli isotp ecu-sim --channel=4 --reqid=0x7E0 --respid=0x7E8 --responses=rules.txt --count=10The responses file is a text file with one rule per line: <request_hex_pattern> <response_hex>. Lines starting with # are comments. Use * for wildcard (match any request). Prints READY to stdout when initialized, ECU-SIM: <hex> -> <hex> to stderr for each exchange.
| Option | Default | Description |
|---|---|---|
--channel |
(required) | Channel to listen on |
--reqid |
(required) | CAN ID to listen for (requests) |
--respid |
(required) | CAN ID to send (responses) |
--responses |
(required) | Response rules file path |
--count |
0 (infinite) |
Stop after N exchanges |
--flags |
none | fdf for CAN FD |
Note: For full UDS protocol simulation with state management (sessions, security, DTC database, download), use test/uds_ecu_sim.py instead — it implements a complete UDS ECU via Python/ctypes.
Source of truth: bmcli_reference.md in the BMCLI repository. Run bmcli help <category> <action> --format=json for the exact contract of the installed version.