Loading...
Loading...
Embedded CAN/CAN-FD debugging tool for interface scanning, message monitoring, test frame transmission, log recording, database file decoding, and bus statistics. Automatically triggered when users mention CAN, CAN-FD, DBC decoding, bus packet capture, USB-CAN joint debugging, message transmission, bus statistics, PCAN, Vector, slcan, CAN interface scanning, CAN ID filtering, ASC logs, BLF files. Also compatible with explicit invocation via /can. Even if users only say "check CAN messages", "send a test frame" or "decode DBC", this skill should be triggered as long as the context involves CAN bus communication.
npx skill4agent add zhinkgit/embeddedskills canskill/config.json{
"slcan_serial_port": "",
"slcan_serial_baudrate": 115200
}| Field | Description | Default Value |
|---|---|---|
| Serial port for slcan scenario | |
| Serial baud rate for slcan scenario | |
.embeddedskills/config.json.embeddedskills/config.json{
"can": {
"interface": "",
"channel": "",
"bitrate": 500000,
"data_bitrate": 2000000,
"log_dir": ".embeddedskills/logs/can"
}
}| Field | Description | Default Value |
|---|---|---|
| CAN backend, e.g., | |
| Channel name, e.g., | |
| Arbitration field bit rate | |
| CAN-FD data field bit rate | |
| Log output directory | |
--interface--channel--bitratecan.embeddedskills/config.json.embeddedskills/state.jsoninterfacechannel| Subcommand | Purpose | Risk |
|---|---|---|
| Scan available CAN interfaces and USB-CAN devices | Low |
| Real-time monitoring of bus messages | Low |
| Send standard/extended/remote/CAN-FD frames | High |
| Record bus messages to ASC/BLF/CSV files | Low |
| Decode messages or logs using database files like DBC | Low |
| Statistics on bus load, ID distribution, and frame rate | Low |
python-canpip install python-canscanmonitor / send / log / statsdecodeinterfacechannelsendscripts/python# Scan interfaces
python scripts/can_scan.py [--json]
# Real-time monitoring
python scripts/can_monitor.py [--interface <interface>] [--channel <channel>] [--bitrate <bitrate>] [--fd] [--filter-id <ID list>] [--exclude-id <ID list>] [--dbc <DBC file>] [--timeout <seconds>] [--json]
# Send messages
python scripts/can_send.py [--interface <interface>] [--channel <channel>] [--bitrate <bitrate>] <id> <data> [--extended] [--remote] [--fd] [--repeat <times>] [--interval <seconds>] [--periodic <milliseconds>] [--listen] [--json]
# Log recording
python scripts/can_log.py [--interface <interface>] [--channel <channel>] [--bitrate <bitrate>] [--output <file>] [--duration <seconds>] [--max-count <number>] [--filter-id <ID list>] [--console] [--json]
# Database decoding
python scripts/can_decode.py <db_file> [--db-format <auto|dbc|arxml|kcd|sym|cdd>] [--id <CAN_ID>] [--data <HEX data>] [--log <log file>] [--signal <signal name>] [--list] [--json]
# Bus statistics
python scripts/can_stats.py [--interface <interface>] [--channel <channel>] [--bitrate <bitrate>] [--duration <seconds>] [--top <number>] [--watch <ID list>] [--json]{
"status": "ok",
"action": "scan",
"summary": "Found 2 CAN interfaces",
"details": { ... }
}{
"status": "error",
"action": "send",
"error": { "code": "interface_open_failed", "message": "Failed to open the specified CAN interface" }
}interfacechannel.embeddedskills/config.json--jsonreferences/common_interfaces.json