Can
嵌入式 CAN / CAN-FD 调试工具,用于扫描接口、监控报文、发送测试帧、记录日志、数据库文件解码和总线统计。 当用户提到 CAN、CAN-FD、DBC...
Install
npx skills add zhinkgit/embeddedskills --skill can -g -a claude-code -y- Repository
- zhinkgit/embeddedskills777
- Category
- Engineering
- Updated
- 16d ago
- License
- MIT
- Context cost
- Lightabout 956 tokens
- Runs scripts
- Yes, review before use
What it does
嵌入式 CAN / CAN-FD 调试工具,用于扫描接口、监控报文、发送测试帧、记录日志、数据库文件解码和总线统计。 当用户提到 CAN、CAN-FD、DBC 解码、总线抓包、USB-CAN 联调、报文发送、总线统计、 PCAN、Vector、slcan、CAN 接口扫描、CAN ID 过滤、ASC 日志、BLF 文件时自动触发, 也兼容 /can 显式调用。即使用户只是说"看看 CAN 报文"、"发一帧试试"或"解码一下 DBC", 只要上下文明确提到 CAN 总线通信的操作或问题就应触发此 skill。
CAN, 嵌入式 CAN / CAN-FD 调试工具
统一封装接口发现、实时监控、报文发送、日志记录、数据库文件解码和统计分析能力。
配置
环境级配置 (skill/config.json)
仅保留 slcan 相关的环境级配置:
{
"slcan_serial_port": "",
"slcan_serial_baudrate": 115200
}
| 字段 | 说明 | 默认值 |
|---|---|---|
slcan_serial_port | slcan 场景的串口 | "" |
slcan_serial_baudrate | slcan 场景的串口速率 | 115200 |
工程级配置 (.embeddedskills/config.json)
工作区下的 .embeddedskills/config.json 存放工程级 CAN 配置:
{
"can": {
"interface": "",
"channel": "",
"bitrate": 500000,
"data_bitrate": 2000000,
"log_dir": ".embeddedskills/logs/can"
}
}
| 字段 | 说明 | 默认值 |
|---|---|---|
interface | CAN 后端,如 pcan / vector / slcan | "" |
channel | 通道名,如 PCAN_USBBUS1 | "" |
bitrate | 仲裁域比特率 | 500000 |
data_bitrate | CAN-FD 数据域比特率 | 2000000 |
log_dir | 日志输出目录 | .embeddedskills/logs/can |
参数解析优先级
- CLI 参数 (
--interface,--channel,--bitrate等) - 最高优先级 - 工程级配置 (
.embeddedskills/config.json中的can部分) - 状态文件 (
.embeddedskills/state.json中的历史记录) - 默认值 - 最低优先级
自动扫描行为
scan 的 details.interfaces 及摘要数量只包含检测到的 USB-CAN 设备和 SocketCAN 接口。details.registered_backends 单独列出已注册的软件后端,不代表驱动可用或硬件已连接,也不参与自动选择。
当未指定 interface 和 channel 时,脚本会自动扫描系统 CAN 接口,按以下步骤处理:
- 扫描系统中所有可用 CAN 接口
- 若只找到一个接口 → 自动使用并写入工程配置
- 若找到多个接口 → 返回候选列表,等待用户选择
- 若未找到接口 → 提示错误,停止执行
子命令
| 子命令 | 用途 | 风险 |
|---|---|---|
scan | 扫描可用 CAN 接口与 USB-CAN 设备 | 低 |
monitor | 实时监控总线报文 | 低 |
send | 发送标准帧 / 扩展帧 / 远程帧 / CAN-FD 帧 | 高 |
log | 记录总线报文到 ASC / BLF / CSV 文件 | 低 |
decode | 用 DBC 等数据库文件解码报文或日志 | 低 |
stats | 统计总线负载、ID 分布和帧率 | 低 |
