Skip to main content

emberinter

Use EmberInterDebugTool CLI for serial monitoring, device communication, firmware verification, and embedded debugging. Invoke when user needs serial interaction, log analysis, or AT command testing.

来源信息

仓库
kukucaiCndy/embedded_ai_skills
最近来源活动
2026年5月18日 12:09
检测到的 SKILL.md 语言
中文
星标
55
分支
12

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
emberinter
description
Use EmberInterDebugTool CLI for serial monitoring, device communication, firmware verification, and embedded debugging. Invoke when user needs serial interaction, log analysis, or AT command testing.
# EmberInterDebugTool (尘智串口调试工具) 嵌入式串口监控调试工具。GUI 负责串口连接管理,CLI 通过 IPC 与 GUI 联动。CLI 可随时启停,不影响串口数据采集。 ## 前置条件 **CLI 所有操作都需要 GUI 已在运行**。如果 CLI 报 `GUI 服务未运行`,必须先启动 GUI。 ### 安装后默认路径 安装包为 `emberInter-Setup-x.y.z.exe`,默认安装到 `Program Files (x86)\EmberInterDebugTool`,可能位于 C/D/E/F 盘中: | 文件 | 用途 | |------|------| | `serial-monitor.exe` | GUI 图形界面程序 | | `serial-monitor-cli.exe` | CLI 命令行工具 | | `emberInter.bat` | GUI 启动脚本 (双击即可) | | `emberInter-cli.bat` | CLI 启动脚本 | ### 启动 GUI **使用 CLI 之前必须确保 GUI 已运行。** 先在 C/D/E/F 盘中搜索安装目录,找到后启动 GUI: ```bash # 遍历盘符,找到第一个存在的 GUI 并启动 for DRV in C D E F; do GUI="$DRV:/Program Files (x86)/EmberInterDebugTool/serial-monitor.exe" if [ -f "$GUI" ]; then start "" "$GUI" echo "GUI started: $GUI" break fi done ``` 也可以用 `.bat` 启动脚本: ```bash for DRV in C D E F; do BAT="$DRV:/Program Files (x86)/EmberInterDebugTool/emberInter.bat" if [ -f "$BAT" ]; then start "" "$BAT" break fi done ``` > GUI 启动后无需登录或配置,系统托盘会显示图标。GUI 在后台提供 IPC 服务 (默认 `serial_monitor_ipc`),CLI 通过该服务与之通信。 ### 定位 CLI ```bash for DRV in C D E F; do CLI="$DRV:/Program Files (x86)/EmberInterDebugTool/serial-monitor-cli.exe" if [ -f "$CLI" ]; then break fi done echo "CLI path: $CLI" ``` --- ## 两种运行模式 ### 模式一:单次命令模式(非交互) 执行单个操作后自动退出,适合脚本/AI调用。格式: ```bash serial-monitor-cli --<command> [options] ``` ### 模式二:交互模式(--cli) 进入交互式终端,持续运行直到用户输入 `quit`: ```bash serial-monitor-cli -p <PORT> --cli ``` --- ## 命令参考(按功能分类) ### 连接管理 | 命令行 (单次) | 交互模式 | 说明 | |---------------|----------|------| | `--connect PORT` | `connect <port> [baud]` | 连接指定串口 | | `--baudrate RATE` | 第二个参数 | 设置波特率,配合 `--connect` 使用。默认 115200 | | — | `disconnect` / `disc` | 断开当前串口 | | `--list` | `list` / `ls` | 列出所有可用串口设备 | **连接示例**: ```bash # 命令行模式 — 连接 COM3 @ 9600baud serial-monitor-cli --connect COM3 --baudrate 9600 # 交互模式 > connect COM3 9600 > disconnect > list ``` --- ### 数据发送(三种方式) CLI 支持三种数据发送方式,分别对应不同场景。 #### 1. 发送文本 — `--send` / `send` 发送文本字符串,**自动追加 CRLF 换行符**。适合 AT 命令、ASCII 协议。 ```bash # 单次命令 — 发送 AT 命令后退出 serial-monitor-cli --send "AT+GMR" -p COM3 # → 串口实际发送: AT+GMR\r\n # 交互模式 > send reboot > send AT+RESET ``` **传输过程**:文本 → UTF-8 编码 → `send_text` IPC 命令 → GUI → 串口发出原始字节 #### 2. 发送 HEX 字节 — `--send-hex` / `sendhex` 发送十六进制字节序列,**不加任何换行符**。空格分隔,不区分大小写。适合发送二进制协议报文、配置指令等。 ```bash # 单次命令 — 发送 HEX 字节后退出 serial-monitor-cli --send-hex "FF AB 03 1A 55" -p COM3 # → 串口实际发送: 0xFF 0xAB 0x03 0x1A 0x55 (5字节原始二进制) # 不带空格也可以 serial-monitor-cli --send-hex "FFAB031A55" -p COM3 # 配合 connect 先连接再发送 serial-monitor-cli --connect COM3 --baudrate 115200 --send-hex "01 02 03 FF" ``` ```bash # 交互模式 > sendhex FF AB 03 > sendhex 1A2B3C4D ``` **传输过程**:HEX字符串 → `send_hex` IPC 命令 → GUI 解析为 QByteArray → 串口发出原始字节 #### 3. 发送二进制文件 — `--send-file` / `sendfile` 发送 `.bin` / `.hex` 等任意二进制文件到串口。常用于固件升级 (OTA/bootloader)、设备配置写入。 ```bash # 单次命令 — 发送文件后退出 serial-monitor-cli --send-file firmware.bin -p COM3 # 交互模式 — 发送后继续操作,可观察设备回复 serial-monitor-cli -p COM3 --cli > sendfile firmware_v2.1.bin >>> 发送文件: firmware_v2.1.bin (65536 字节) ``` **传输过程**:文件读取 → Base64编码 → `send_file` IPC 命令 → GUI Base64解码 → 串口发出原始字节 > Base64 是因为 IPC 使用 JSON 文本协议(`\n` 帧分隔),任意二进制字节会破坏 JSON 和消息边界。最终发到串口的仍是原始字节。 #### 发送方式对比 | 方式 | 命令 | 加换行 | 典型场景 | 数据流 | |------|------|--------|----------|--------| | 文本 | `--send` / `send` | 是 (CRLF) | AT命令、文本协议 | UTF-8编码后发送 | | HEX | `--send-hex` / `sendhex` | 否 | 二进制报文、寄存器配置 | HEX解析为原始字节后发送 | | 文件 | `--send-file` / `sendfile` | 否 | 固件OTA、配置写入 | Base64传输,解码后发送原始字节 | --- ### 日志监听与过滤 | 命令行 (单次) | 交互模式 | 说明 | |---------------|----------|------| | `-p PORT` / `--port PORT` | *(启动参数)* | 指定目标串口,实时监听日志 | | `-f KW` / `--filter KW` | `filter <keyword>` | 过滤关键词,只显示包含该词的日志。空字符串取消过滤 | | `-o FILE` / `--output FILE` | — | 同时保存日志到文件 | | `--hex` | `hex` / `text` | HEX 显示模式 / 切换 | | `--no-timestamp` | `timestamp` / `ts` | 不显示时间戳 / 切换 | | `--json` | — | JSON 输出模式 (每行一个JSON对象) | | `--clear` | `clear` / `c` | 启动时清空日志 / 清空日志缓冲区 | **监听示例**: ```bash # 持续监听 COM3 日志 (Ctrl+C 停止) serial-monitor-cli -p COM3 # 只显示 ERROR,保存到文件 serial-monitor-cli -p COM3 -f ERROR -o error.log # JSON 输出,方便脚本解析 serial-monitor-cli -p COM3 --json # 交互模式 — 动态切换过滤和显示 serial-monitor-cli -p COM3 --cli > filter ERROR # 只看错误 > hex # 切换 HEX 显示 > clear # 清空 > filter # 取消过滤 ``` --- ### 查询命令 | 命令行 (单次) | 交互模式 | 说明 | |---------------|----------|------| | `--get-status` | `status` / `s` | 查看当前连接状态 | | `--get-logs N` | — | 获取最近 N 条历史日志 | | `--list` | `list` / `ls` | 列出可用串口设备 | ```bash # 查看连接状态 serial-monitor-cli --get-status # → [系统] 串口: COM3 | 连接: 是 | 缓冲: 1024 | RX: 12.5K | TX: 256B # JSON 输出,适合脚本 serial-monitor-cli --get-status --json # → {"port":"COM3","connected":true,"buffer_size":1024,"rx_bytes":12500,"tx_bytes":256} # 获取最近 50 条日志 serial-monitor-cli --get-logs 50 --json > history.json ``` --- ### 其他交互命令 | 交互命令 | 别名 | 说明 | |----------|------|------| | `help` | `h`, `?` | 显示帮助 | | `quit` | `q`, `exit` | 退出 CLI (GUI 继续运行) | | `export <file>` | | 导出所有日志为 JSON 文件 | > **注意**:交互模式下,任何未识别的命令会被当作文本数据直接发送到串口。 --- ## 输出格式 | 模式 | 格式 | 示例 | |------|------|------| | 默认 | `[HH:MM:SS.mmm] [LEVEL] text` | `[10:23:45.123] [INFO] Device initialized` | | HEX | 标准 hexdump | `00000000 48 65 6C 6C 6F 0D 0A \|Hello..\|` | | JSON | 每行一个 JSON 对象 | `{"type":"log","port":"COM5","ts":"10:23:45.123","level":"INFO","text":"Device initialized"}` | --- ## 退出码 | 码 | 含义 | 处理建议 | |----|------|----------| | 0 | 正常退出 | — | | 1 | 参数错误 | 检查命令参数 | | 2 | GUI 服务未运行 | 提示用户启动 GUI | | 3 | 文件操作失败 | 检查文件路径 | --- ## 典型工作流 ### 1. 固件升级 (OTA / bootloader) ```bash # Step 1: 连接设备串口,确认波特率 serial-monitor-cli --connect COM3 --baudrate 115200 # Step 2: 发送固件文件 serial-monitor-cli --send-file firmware_v2.1.bin -p COM3 # Step 3: 等待设备重启,监听启动日志 sleep 3 serial-monitor-cli -p COM3 -f "boot" --json ``` ### 2. 固件烧录后验证 ```bash # Step 1: 确认串口可用 serial-monitor-cli --list # Step 2: 连接 + 清空旧日志 + 发送重启命令 serial-monitor-cli --connect COM3 --baudrate 115200 --clear serial-monitor-cli --send "reboot" -p COM3 # Step 3: 等待后获取日志分析 sleep 3 serial-monitor-cli --get-logs 50 --json > output.json ``` ### 3. 交互式设备调试 ```bash # 进入交互模式 serial-monitor-cli -p COM3 --cli # 在交互模式中: > send AT+GMR # 发送 AT 命令 > sendhex FF AB 03 1A # 发送 HEX 字节 > sendfile firmware.bin # 发送二进制文件 > status # 查看连接状态 > filter ERROR # 只看错误日志 > export debug.json # 导出所有日志 > quit # 退出 ``` ### 4. 持续监控并过滤 ```bash # 只显示含 ERROR 的日志,同时保存到文件 serial-monitor-cli -p COM3 -f ERROR -o error.log # Ctrl+C 停止 ``` ### 5. 检查设备状态(脚本/AI用) ```bash # JSON 输出,方便程序解析 serial-monitor-cli --get-status --json ``` ### 6. 多串口监控 ```bash # 终端 1 serial-monitor-cli -p COM3 --cli # 终端 2 (同时运行) serial-monitor-cli -p COM5 --cli ``` --- ## 日志级别与颜色 | 级别 | 颜色 | 典型场景 | |------|------|----------| | TX (发送) | 绿色 | 用户/脚本/CLI发出的数据 | | INFO (接收) | 绿色 | 正常设备日志 | | WARN | 黄色 | 警告信息 | | ERROR | 红色 | 错误/异常 | | DEBUG | 青色 | 调试信息 | | TRACE | 灰色 | 详细跟踪 | --- ## 注意事项 - CLI 不直接操作串口,所有串口操作委托给 GUI - CLI 断连不影响串口数据持续采集 - 多个 CLI 可同时连接到同一个 GUI - `--cli` 交互模式必须配合 `-p PORT` 使用 - `--send` / `--send-hex` / `--send-file` 需要 `-p PORT` 指定目标串口 - HEX 数据支持空格分隔(`FF AB 03`)或无空格(`FFAB03`)
在 GitHub 查看