QtSerialMonitor

QtSerialMonitor

开源项目 开源工具包

基于 Qt 框架的串口监控工具,轻量级串口调试和数据观察。

核心特性

  • Qt框架
  • 实时监控
  • 数据过滤
  • 文件保存

产品介绍

QtSerialMonitor 功能详细介绍

概述

QtSerialMonitor 是一款使用 Qt / C++ 编写的通用串口监视与数据绘图工具,由 mich-w 开发维护。遵循 GPL-3.0 许可证开源分发。本包为 Windows x64 绿色版(含 Qt 运行库),位于 `deploy` 子目录。

  • 项目地址:https://github.com/mich-w/QtSerialMonitor
  • 当前版本:v1.53
  • 运行平台:Windows x64
  • 部署方式:进入 `deploy` 子目录,双击 `QtSerialMonitor.exe` 即可运行(绿色版,含 Qt 运行库)
  • 技术栈:Qt / C++(QCustomPlot 绘图库)

核心功能模块

1. 串口收发终端

  • 串口参数配置:波特率、数据位、停止位、校验位、流控全可配置
  • 收发显示:实时显示发送和接收数据,支持 HEX/ASCII 模式
  • 命令历史:自动记录发送历史,支持上下键回溯
  • 自动重连:设备插拔自动重连
  • 自动滚动:新数据自动滚到底部

2. UDP 网络协议支持

  • UDP 通信:支持 UDP 数据收发
  • 端口配置:绑定本地端口,发送目标数据
  • 数据查看:同串口界面,支持 HEX/ASCII 切换

3. 可调整大小的 UI 组件

  • 自适应布局:窗口组件大小可自由调整
  • 灵活布局:根据使用场景自定义界面布局
  • 多面板:支持多个功能面板同时显示

4. 多曲线数据绘图

  • 实时绘图:基于 QCustomPlot 库实时绘制数据曲线
  • 多曲线显示:支持同时显示多条数据曲线
  • 数据滤波:基础数据滤波功能(移动平均等)
  • 波形控制:缩放、平移、暂停

5. 打印支持

  • 图形保存:曲线图可保存为图片文件
  • 打印输出:支持直接打印当前图形
  • 导出功能:图形数据可导出为图片格式

6. 数据日志读写

  • CSV 支持:读写 `.csv` 数据日志文件
  • TXT 支持:读写 `.txt` 文本日志
  • 数据导入:从文件加载历史数据
  • 数据分析:对加载的数据进行可视化展示

配置文件说明

文件 用途 格式
`plots.cfg` 图表配置文件(曲线参数、颜色等) INI
`data/` 数据日志存储目录 CSV/TXT

依赖与第三方库

许可证 用途
QCustomPlot GPL-3.0 数据绘图
Qt Serial Port LGPL 串口通信
Qt Network LGPL 网络通信(UDP)

适用场景与优势

场景 优势
传感器数据采集 实时曲线显示 + 数据滤波
通信协议分析 HEX/ASCII 双向显示
教学演示 可视化效果好,适合教学
数据记录与分析 CSV/TXT 日志导入导出
快速部署 绿色版免安装,双击即用

版本历史摘要

版本 日期 主要变更
v1.52 2024 优化绘图性能,修复已知问题
v1.50 2023 新增 UDP 支持、数据滤波
v1.00 2022 基础串口收发、绘图功能

运行方式

  1. 解压软件包到任意目录
  2. 进入 `deploy` 子目录
  3. 双击 `QtSerialMonitor.exe` 即可运行
  4. 无需安装任何额外依赖(Qt 运行库已内置)
提示:本绿色版已包含 Qt 运行库,无需单独安装 Qt。

产品明细图

QtSerialMonitor

详细使用教程

QtSerialMonitor 详细使用教程

目录

  1. [快速上手(5分钟入门)](#快速上手5分钟入门)
  2. [串口基础收发操作](#串口基础收发操作)
  3. [UDP 网络通信](#udp-网络通信)
  4. [数据绘图与曲线](#数据绘图与曲线)
  5. [数据滤波](#数据滤波)
  6. [数据日志导入导出](#数据日志导入导出)
  7. [打印与图片保存](#打印与图片保存)
  8. [窗口布局调整](#窗口布局调整)
  9. [配置管理](#配置管理)
  10. [常见问题与故障排查](#常见问题与故障排查)

快速上手(5分钟入门)

1.1 启动程序


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

# 双击运行
QtSerialMonitor.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)` 按间隔循环发送

UDP 网络通信

3.1 UDP 发送

  1. 菜单 `工具` → `UDP` → `UDP Client`
  2. 配置目标地址:`IP:Port`(如 `192.168.1.200:9000`)
  3. 点击 `连接` → 开始发送 UDP 数据
  4. 接收区显示返回数据

3.2 UDP 监听

  1. 切换 `UDP Server` 模式
  2. 绑定本地端口 `9000`
  3. 点击 `开始监听`
  4. 收到数据后显示在接收区

数据绘图与曲线

4.1 打开绘图窗口

  1. 菜单 `视图` → `数据绘图`(或快捷键 `F3`)
  2. 独立可停靠窗口显示曲线图

4.2 添加数据通道

  1. 曲线窗口右键 `添加通道` → 配置:
  2. 通道名:`温度`
  3. 数据源:串口接收解析 / 手动输入
  4. 解析规则:正则表达式提取数据值
  5. 数据类型:整数 / 浮点数
  6. 单位:°C / mV 等
  7. 颜色/线型:自动分配或手动指定
  8. `确定` → 曲线实时绘制

4.3 曲线操作

操作 方法
平移 中键拖拽
读数 悬停显示数值
暂停 工具栏 `暂停` 按钮
截图 `导出 PNG`
导出数据 `导出 CSV`

4.4 多曲线显示

  • 支持同时显示多条数据曲线
  • 每条曲线独立配置颜色、线型、数据源
  • 曲线图例可显示/隐藏

数据滤波

5.1 启用滤波

  • 曲线窗口右键 `数据滤波` → 启用
  • 选择滤波方式:
  • 移动平均:平滑数据波动
  • 峰值滤波:去除异常峰值
  • 阈值滤波:超出阈值的数据过滤

5.2 滤波参数配置

参数 说明 示例
阈值 峰值滤波的阈值 `50`
滤波类型 选择的滤波算法 移动平均

数据日志导入导出

6.1 导出数据日志

  1. 菜单 `文件` → `导出日志` → 选择格式:
  2. CSV:表格格式,可用 Excel 打开
  3. TXT:纯文本格式
  4. 选择保存路径
  5. 数据包含时间戳、方向、数据值

6.2 导入历史数据

  1. 菜单 `文件` → `导入日志` → 选择 `.csv` 或 `.txt` 文件
  2. 数据自动加载到曲线图和表格中
  3. 可对历史数据进行分析和回放

6.3 日志文件结构


data/
├─ 20260115_083000_COM3.csv    # CSV格式,含时间戳和数据
├─ 20260115_083000_COM3.txt    # TXT格式
└─ index.json                   # 索引文件

打印与图片保存

7.1 保存曲线图片

  1. 在曲线窗口点击右键
  2. 选择 `导出图片` → 选择格式(PNG/JPG/BMP)
  3. 选择保存路径

7.2 打印输出

  1. 菜单 `文件` → `打印`
  2. 选择打印范围(当前视图/全部数据)
  3. 选择打印机 → 点击 `打印`

窗口布局调整

8.1 调整组件大小

  • 拖动面板边框调整组件大小
  • 支持多个面板自由排列
  • 布局自动保存

8.2 面板停靠与浮动

  • 面板可停靠到主窗口边缘
  • 也可浮动为独立窗口
  • 拖拽面板标题栏切换状态

8.3 保存/恢复布局

  1. 菜单 `设置` → `窗口布局` → `保存布局`
  2. 给布局命名(如 `默认布局`、`调试布局`)
  3. 需要时 `加载布局` 选择已保存的布局

配置管理

9.1 保存配置

  1. 菜单 `设置` → `保存配置`
  2. 配置文件自动保存至 `settings.ini`
  3. 包含串口参数、窗口布局、绘图设置等

9.2 加载配置

  1. 菜单 `设置` → `加载配置`
  2. 选择配置文件
  3. 所有设置自动恢复

9.3 配置文件位置


QtSerialMonitor/
├─ QtSerialMonitor.exe
├─ settings.ini          # 用户设置
├─ plots.cfg             # 图表配置
└─ data/                 # 数据日志目录

常见问题与故障排查

现象 可能原因 解决方法
收到乱码 波特率/校验不匹配 1. 对照设备手册核对
2. 尝试常见组合
曲线不显示 数据解析失败 1. 检查解析规则
2. 确认数据源正确
UDP连不上 防火墙/IP错/端口错 1. ping 目标IP
2. 确认端口监听
程序崩溃 Qt 运行库缺失 1. 确认 deploy 目录完整
2. 重新解压
绘图卡顿 数据量过大 1. 减小窗口显示点数
2. 启用降采样
中文显示乱码 字体设置问题 1. 设置中切换字体
2. 使用支持中文的字体

进阶技巧

10.1 快捷键

快捷键 功能
`F3` 打开/关闭绘图窗口
`Ctrl+O` 打开串口
`Ctrl+Shift+O` 关闭串口
`Enter` 发送数据
`Ctrl+L` 清空接收区
`Ctrl+E` 导出数据日志
`Ctrl+P` 打印

10.2 多实例运行

  • 复制整个目录 → 重命名 → 同时运行多实例
  • 各实例监控不同设备

10.3 批量数据处理

  • 导入大量 CSV 数据
  • 使用绘图窗口进行批量分析
  • 导出分析结果

附录:典型应用场景

Arduino 项目调试

  1. 连接 Arduino 到 COM 口
  2. 打开串口,波特率 `9600`
  3. 上传串口监视代码
  4. 查看实时数据和曲线
  5. 使用数据滤波平滑曲线

传感器数据采集

  1. 连接传感器到串口
  2. 配置数据解析规则
  3. 实时绘制温度/压力等曲线
  4. 导出 CSV 进行后续分析
  5. 打印或保存曲线图片

通信协议分析

  1. 选择 HEX 模式
  2. 发送特定指令
  3. 分析返回数据
  4. 保存日志用于回溯

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

技术栈

Qt C++ QSerialPort Qt Charts

相关产品

×