COMTool

COMTool

开源项目 开源工具包

基础串口助手工具,支持串口连接、数据收发、参数配置和日志记录。

核心特性

  • 串口连接
  • 数据收发
  • HEX模式
  • 日志导出

产品介绍

COMTool 功能详细介绍

概述

COMTool 是一款跨平台开源串口调试助手,由 Neutree 开发维护。使用 Python 3(PySide/PyQt 图形界面,cx_Freeze 打包),支持 Windows、Linux、macOS、树莓派等多平台。遵循 LGPL-3.0 许可证开源分发。

  • 项目地址:https://github.com/Neutree/COMTool
  • 当前版本:v3.4.1
  • 运行平台:Windows / Linux / macOS / 树莓派
  • 部署方式:进入 `comtool` 子目录,双击 `comtool.exe` 即可运行(免安装、绿色版)

核心功能模块

1. 主题切换

  • 白色/黑色主题:一键切换界面主题,适应不同光线环境
  • 自动跟随系统:可选跟随操作系统主题设置

2. 串口收发

  • 文本/HEX 收发:支持文本模式和十六进制模式切换
  • 时间戳:每条数据自动附带时间戳,方便调试定位
  • 自动换行:根据换行符自动分隔数据
  • 收发统计:实时显示发送/接收字节数、包数等统计信息
  • 定时发送:支持按固定间隔循环发送数据

3. 协议插件

  • 可自定义协议解析:支持编写自定义协议插件
  • 插件机制:用户可扩展自己的协议解析逻辑
  • 内置协议:支持常见工业协议解析

4. TCP/UDP 网络调试

  • TCP Client/Server:支持 TCP 客户端和服务端模式
  • UDP 通信:支持 UDP 数据收发
  • 网络调试:可替代传统网络调试工具

5. 终端(Terminal)模式

  • 命令行终端:内置终端模式,支持命令执行
  • 脚本执行:可执行 Python 脚本进行自动化操作

6. 图表/曲线绘制插件

  • 数据可视化:实时绘制收发数据的曲线图
  • 插件扩展:支持自定义图表插件
  • 多曲线显示:支持同时显示多条数据曲线

7. 多语言界面

  • 多语言支持:界面支持多种语言切换
  • 国际化:方便不同语言用户使用

配置文件说明

文件 用途 格式
`plugins/` 协议插件目录 Python
`commands/` 快捷命令/指令集 JSON/TXT

依赖与第三方库

许可证 用途
cx_Freeze LGPL 打包为可执行文件
pyserial LGPL 串口通信
numpy BSD 数据处理
matplotlib BSD 图表绘制

适用场景与优势

场景 优势
协议开发与测试 自定义协议插件,灵活解析各种协议
网络调试 TCP/UDP 支持,替代专用网络调试工具
自动化测试 终端模式 + 脚本执行,支持自动化测试流程
数据可视化 图表插件实时展示数据曲线
团队协作 多语言界面 + 配置导入导出,方便团队使用

版本历史摘要

版本 日期 主要变更
v3.4.0 2024 新增图表插件、多语言支持
v3.3.0 2023 新增协议插件机制
v3.0.0 2023 重构架构,引入插件系统
v2.x 2022 基础串口收发功能

运行方式

  1. 解压软件包到任意目录
  2. 进入 `comtool` 子目录
  3. 双击 `comtool.exe` 即可运行
  4. 或从命令行运行:`python COMTool/main.py`
提示:首次运行可能需要安装 Python 依赖,使用 `pip install -r requirements.txt` 安装。

产品明细图

COMTool

详细使用教程

COMTool 详细使用教程

目录

  1. [快速上手(5分钟入门)](#快速上手5分钟入门)
  2. [串口基础收发操作](#串口基础收发操作)
  3. [协议插件配置与使用](#协议插件配置与使用)
  4. [定时发送与脚本执行](#定时发送与脚本执行)
  5. [TCP/UDP 网络调试](#tcpudp-网络调试)
  6. [图表与曲线绘制](#图表与曲线绘制)
  7. [终端模式](#终端模式)
  8. [多语言设置](#多语言设置)
  9. [配置导入导出](#配置导入导出)
  10. [常见问题与故障排查](#常见问题与故障排查)

快速上手(5分钟入门)

1.1 启动程序


# 进入目录
cd D:\工业协议\商业产品\开源工具包\COMTool\comtool

# 双击运行
comtool.exe
  • 首次运行自动生成配置文件
  • 界面默认中文,顶部菜单:`文件` `设置` `工具` `帮助`

1.2 打开串口(最基础操作)

  • 选择端口:顶部下拉框 `端口` → 选择目标 COM 口(如 `COM3`)
  • 设置参数
  • 波特率:`9600`(默认,按设备手册修改)
  • 数据位:`8`
  • 停止位:`1`
  • 校验位:`None`
  • 打开:点击 `打开串口` 按钮 → 状态灯变绿
  • 测试发送
  • 发送区选择 `HEX` 模式
  • 输入:`01 03 00 00 00 01`(标准 Modbus 读保持寄存器示例)
  • 点击 `发送` → 接收区显示返回报文
成功标志:接收区出现数据行,含时间戳和收发数据

串口基础收发操作

2.1 编码模式切换

模式 适用场景 发送输入示例 接收显示示例
ASCII 文本协议、AT 指令 `AT\r\n` `OK\r\n`
TEXT 中文/多语言文本 `你好设备` `设备就绪`

2.2 收发区功能

功能 操作 说明
自动换行 勾选 `自动换行` 根据换行符分隔
时间戳 勾选 `显示时间戳` 每条数据附带时间
统计 查看底部统计栏 收发字节数、包数
清空 点击 `清空` 仅清界面,不影响日志

2.3 发送区功能

功能 操作 说明
发送历史 上/下方向键 最近命令自动记忆
定时发送 设置 `发送间隔(ms)` 按间隔循环发送

协议插件配置与使用

3.1 创建协议插件

  1. 菜单 `工具` → `协议插件` → `新建插件`
  2. 在弹窗中编写协议解析逻辑(Python 代码)
  3. 配置协议名称、触发条件、解析规则
  4. 点击 `保存` → 插件生效

3.2 插件管理

  • `工具` → `协议插件` → `管理`
  • 支持导入/导出插件文件(`.py`)
  • 插件文件存放于 `plugins/` 目录

3.3 使用插件解析数据

  1. 串口打开后,数据自动经过插件解析
  2. 解析后的结构化数据显示在界面中
  3. 支持协议数据的图形化展示

定时发送与脚本执行

4.1 定时发送

  1. 在发送区输入要发送的数据
  2. 设置 `发送间隔(ms)`(如 `1000`)
  3. 点击 `定时发送` 按钮 → 开始循环发送
  4. 再次点击 → 停止发送

4.2 脚本执行(终端模式)

  1. 菜单 `工具` → `终端` → `新建脚本`
  2. 编写 Python 脚本:

   # 示例:自动读取串口数据并处理
   def on_data_received(data):
       print(f"Received: {data}")
       if data == b"OK":
           send_command(b"NEXT")
  1. `保存` → `运行` → 脚本自动执行

TCP/UDP 网络调试

5.1 TCP Client

  1. 菜单 `工具` → `网络调试` → `TCP Client`
  2. 目标地址:`192.168.1.100:8080`
  3. 点击 `连接` → 状态显示 `Connected`
  4. 收发操作与串口类似

5.2 TCP Server

  1. 切换 `Server` 模式 → 监听端口 `8080`
  2. 点击 `开始监听`
  3. 客户端连接列表显示:IP、端口、连接时间
  4. 选择客户端 → 发送数据

5.3 UDP

  1. 绑定本地端口 `9000`
  2. 目标 IP:Port `192.168.1.200:9000`
  3. 支持组播:加入组 `239.0.0.1`

图表与曲线绘制

6.1 打开图表插件

  1. 菜单 `工具` → `图表` → `打开图表`
  2. 或点击界面右侧图表面板

6.2 配置数据源

  1. 选择数据源:串口接收数据 / TCP数据 / 自定义数据
  2. 配置数据解析规则(正则表达式)
  3. 设置通道名称、单位、颜色

6.3 图表操作

操作 方法
平移 中键拖拽
读数 悬停显示数值
截图 右键 `保存图片`
导出数据 右键 `导出 CSV`

终端模式

7.1 打开终端

  1. 菜单 `工具` → `终端`
  2. 或使用快捷键 `Ctrl+T`

7.2 终端功能

  • 命令行输入和执行
  • Python 脚本编写和运行
  • 自动化任务执行
  • 支持脚本保存和导入

多语言设置

8.1 切换语言

  1. 菜单 `设置` → `语言`
  2. 选择目标语言(中文/English/等)
  3. 重启程序生效

8.2 自定义语言包

  1. `设置` → `语言` → `导入语言包`
  2. 选择 `.json` 语言文件
  3. 自定义翻译内容

配置导入导出

9.1 导出配置

  1. 菜单 `文件` → `导出配置`
  2. 选择导出内容(全部/部分)
  3. 保存为 `.json` 文件

9.2 导入配置

  1. 菜单 `文件` → `导入配置`
  2. 选择 `.json` 配置文件
  3. 选择覆盖/合并

9.3 团队协作

  • 将配置文件分享给同事
  • 统一串口参数、快捷键设置
  • 共享协议插件和命令集

常见问题与故障排查

现象 可能原因 解决方法
收到乱码 波特率/校验不匹配 1. 对照设备手册核对
2. 尝试常见组合
TCP连不上 防火墙/IP错/端口错 1. ping 目标IP
2. telnet 测试端口
插件不生效 插件格式错误/依赖缺失 1. 检查插件代码
2. 确认依赖已安装
程序闪退 Python 环境问题 1. 确认 Python 版本
2. 重新安装依赖
图表不显示 数据解析失败 1. 检查正则表达式
2. 确认数据源正确

进阶技巧

10.1 命令行参数


comtool.exe --port=COM3 --baud=115200 --theme=dark

10.2 多实例运行

  • 复制整个目录 → 重命名 → 同时运行多实例
  • 各实例独立配置文件

10.3 自动化脚本

  • 编写 Python 脚本实现自动化测试流程
  • 结合终端模式执行批量操作

附录:键盘快捷键

快捷键 功能
`Ctrl+Shift+O` 关闭串口
`Ctrl+S` 发送数据
`Ctrl+T` 打开终端
`Ctrl+L` 清空接收区
`Ctrl+F` 搜索接收区
`F1` 打开帮助
`Alt+1~9` 触发快捷命令 1-9

提示:本教程基于 COMTool v3.4.1 编写,界面细节可能随版本微调。遇到未覆盖场景,请参考程序内 `帮助` → `在线文档` 或 GitHub Issues: https://github.com/Neutree/COMTool/issues

技术栈

C# .NET System.IO.Ports

相关产品

×