zhinkgit/embeddedskills/can
- community
Checking that the SKILL.md file is still in the repository.
嵌入式 CAN / CAN-FD 调试工具,用于扫描接口、监控报文、发送测试帧、记录日志、数据库文件解码和总线统计。 当用户提到 CAN、CAN-FD、DBC 解码、总线抓包、USB-CAN 联调、报文发送、总线统计、 PCAN、Vector、slcan、CAN 接口扫描、CAN ID 过滤、ASC 日志、BLF 文件时自动触发, 也兼容 /can 显式调用。即使用户只是说"看看 CAN 报文"、"发一帧试试"或"解码一下 DBC", 只要上下文明确提到 CAN 总线通信的操作或问题就应触发此 skill。
Install
npx vskill@latest install zhinkgit/embeddedskills/canSKILL.md
CAN — 嵌入式 CAN / CAN-FD 调试工具
统一封装接口发现、实时监控、报文发送、日志记录、数据库文件解码和统计分析能力。
配置
环境级配置 (skill/config.json)
仅保留 slcan 相关的环境级配置:
| 字段 | 说明 | 默认值 | |
|---|---|---|---|
slcan_serial_port | slcan 场景的串口 | "" | |
slcan_serial_baudrate | slcan 场景的串口速率 | 115200 |
工程级配置 (.embeddedskills/config.json)
工作区下的 .embeddedskills/config.json 存放工程级 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 分布和帧率 | 低 |
执行流程
- 检查
python-can是否可用,未安装时提示pip install python-can - 按优先级解析参数:CLI > 工程级配置 > 状态文件 > 默认值
- 无子命令时默认执行
scan monitor / send / log / stats使用解析后的连接参数decode先确认数据库文件和输入源存在- 若未指定
interface/channel,自动扫描系统 CAN 接口:
- 唯一候选:自动使用并写入工程配置
- 多候选:返回列表让用户选择
- 成功执行后,将确认的参数写回工程配置
send只要配置可连接就直接执行,不二次确认- 运行对应脚本并输出结构化结果
- 失败时优先反馈接口、驱动、比特率和过滤条件问题
脚本调用
所有脚本位于 skill 目录的 scripts/ 下,通过 python 直接调用。 脚本会按优先级从 CLI 参数、工程级配置、状态文件中读取参数。
输出格式
单次命令返回标准 JSON:
持续命令(monitor --json、send --listen --json)输出 JSON Lines,结束摘要写入 stderr。
错误输出:
核心规则
- 不自动猜测 interface、channel、bitrate,多接口时不自动选择
- 参数解析优先级:CLI > 工程级配置 > 状态文件 > 默认值;自动扫描结果仅在未提供 CLI 参数时生效
- 未指定
interface/channel时自动扫描,唯一候选自动写入配置,多候选需用户选择 - 成功执行后,确认的参数自动写回
.embeddedskills/config.json - 未明确说明用途时不主动发送任何报文
--json输出的持续流使用 JSON Lines,摘要写 stderr 不污染数据流- DBC 解码失败不应导致监控中断
- 找不到帧定义时返回明确错误,不静默吞掉
参考
references/common_interfaces.json:常见 USB-CAN 设备信息
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingcan/SKILL.md
Popularity
- Repository stars
- 427
- Repository forks
- 53
- 7-day trend score
- 30
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 28 Jun 2026, 3 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/zhinkgit/embeddedskills/can)