Summary
嵌入式 CAN / CAN-FD 调试工具,用于扫描接口、监控报文、发送测试帧、记录日志、数据库文件解码和总线统计。 当用户提到 CAN、CAN-FD、DBC 解码、总线抓包、USB-CAN 联调、报文发送、总线统计、 PCAN、Vector、slcan、CAN 接口扫描、CAN ID 过滤、ASC 日志、BLF…
zhinkgit/embeddedskills
>- 嵌? 当用户提到 CAN、CAN-FD、DBC 解码、总线抓? PCAN、Vector、slcan、CAN 接口扫描、CAN ID 过滤、ASC 日志、BLF 文件时自动触发, 也? 只要上下文明确提到 CAN 总线通信的操作或问题就应触发此 skill。
npx skills add zhinkgit/embeddedskills --skill can
嵌入式 CAN / CAN-FD 调试工具,用于扫描接口、监控报文、发送测试帧、记录日志、数据库文件解码和总线统计。 当用户提到 CAN、CAN-FD、DBC 解码、总线抓包、USB-CAN 联调、报文发送、总线统计、 PCAN、Vector、slcan、CAN 接口扫描、CAN ID 过滤、ASC 日志、BLF…
Other skills from zhinkgit/embeddedskills · top by installs.
npx skills add zhinkgit/embeddedskills
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
main
Files included with this skill beyond the listing page.
SKILL.md
6,148 B
README.md
4,028 B
SUMMARY.md
567 B
统一封装接口发现、实时监控、报文发送、日志记录、数据库文件解码和统计分析能力。
skill/config.json)仅保留 slcan 相关的环境级配置:
{
"slcan_serial_port": "",
"slcan_serial_baudrate": 115200
}
| 字段 | 说明 | 默认值 |
|---|---|---|
slcanserialport |
slcan 场景的串口 | "" |
slcanserialbaudrate |
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 |
--interface, --channel, --bitrate 等) - 最高优先级.embeddedskills/config.json 中的 can 部分).embeddedskills/state.json 中的历史记录)当未指定 interface 和 channel 时,脚本会自动扫描系统 CAN 接口,按以下步骤处理:
| 子命令 | 用途 | 风险 |
|---|---|---|
scan |
扫描可用 CAN 接口与 USB-CAN 设备 | 低 |
monitor |
实时监控总线报文 | 低 |
send |
发送标准帧 / 扩展帧 / 远程帧 / CAN-FD 帧 | 高 |
log |
记录总线报文到 ASC / BLF / CSV 文件 | 低 |
decode |
用 DBC 等数据库文件解码报文或日志 | 低 |
stats |
统计总线负载、ID 分布和帧率 | 低 |
python-can 是否可用,未安装时提示 pip install python-canscanmonitor / send / log / stats 使用解析后的连接参数decode 先确认数据库文件和输入源存在interface/channel,自动扫描系统 CAN 接口:- 唯一候选:自动使用并写入工程配置 - 多候选:返回列表让用户选择
send 只要配置可连接就直接执行,不二次确认所有脚本位于 skill 目录的 scripts/ 下,通过 python 直接调用。 脚本会按优先级从 CLI 参数、工程级配置、状态文件中读取参数。
# 扫描接口
python scripts/can_scan.py [--json]
# 实时监控
python scripts/can_monitor.py [--interface <接口>] [--channel <通道>] [--bitrate <速率>] [--fd] [--filter-id <ID列表>] [--exclude-id <ID列表>] [--dbc <DBC文件>] [--timeout <秒>] [--json]
# 发送报文
python scripts/can_send.py [--interface <接口>] [--channel <通道>] [--bitrate <速率>] <id> <data> [--extended] [--remote] [--fd] [--repeat <次>] [--interval <秒>] [--periodic <毫秒>] [--listen] [--json]
# 日志记录
python scripts/can_log.py [--interface <接口>] [--channel <通道>] [--bitrate <速率>] [--output <文件>] [--duration <秒>] [--max-count <数量>] [--filter-id <ID列表>] [--console] [--json]
# 数据库解码
python scripts/can_decode.py <db_file> [--db-format <auto|dbc|arxml|kcd|sym|cdd>] [--id <CAN_ID>] [--data <HEX数据>] [--log <日志文件>] [--signal <信号名>] [--list] [--json]
# 总线统计
python scripts/can_stats.py [--interface <接口>] [--channel <通道>] [--bitrate <速率>] [--duration <秒>] [--top <数量>] [--watch <ID列表>] [--json]
单次命令返回标准 JSON:
{
"status": "ok",
"action": "scan",
"summary": "发现 2 个 CAN 接口",
"details": { ... }
}
持续命令(monitor --json、send --listen --json)输出 JSON Lines,结束摘要写入 stderr。
错误输出:
{
"status": "error",
"action": "send",
"error": { "code": "interface_open_failed", "message": "无法打开指定 CAN 接口" }
}
interface/channel 时自动扫描,唯一候选自动写入配置,多候选需用户选择.embeddedskills/config.json--json 输出的持续流使用 JSON Lines,摘要写 stderr 不污染数据流references/common_interfaces.json:常见 USB-CAN 设备信息