AI撰写的第一个小工具
·
图一:Receive 界面
图二:Send 界面
图三:Waveform 界面
图四:Filtered Log Window 窗口
UART Assistant 技术实现报告
一、项目概述
UART Assistant 是一款基于 Python 开发的串口通信工具,提供了直观的图形界面,支持串口数据的发送和接收、命令管理、波形显示等功能。该工具旨在为开发者和工程师提供一个便捷的串口调试和测试环境。
1.1 主要功能
- 串口参数配置(端口、波特率、校验位、数据位、停止位)
- 数据发送和接收(支持字符串和十六进制格式)
- 命令列表管理(添加、删除、导入、发送)
- 波形显示(支持关键字筛选)
- 日志保存和筛选
- 预存储命令管理
二、技术栈

三、 核心功能实现
3.1 串口通信模块
- 实现方式 :使用 pyserial 库实现串口的打开、关闭、读写操作
- 关键代码 :
def toggle_connection(self):
if not self.is_connected:
# 打开串口
self.ser = serial.Serial(
port=self.port_combo.currentText(),
baudrate=self.get_baud_rate(),
parity=self.get_parity(),
stopbits=self.get_stop_bits(),
bytesize=self.get_data_bits(),
timeout=0.1
)
# 启动接收线程
self.receive_thread = threading.Thread(target=self.receive_data)
self.receive_thread.daemon = True
self.receive_thread.start()
特点 :采用多线程设计,接收数据在独立线程中进行,避免阻塞主线程
3.2 GUI界面设计
- 实现方式 :使用 PyQt5 构建图形界面,采用分组布局
- 关键组件 :
- 顶部控制面板:串口参数配置
- 接收标签页:显示接收到的数据
- 发送标签页:数据发送和命令管理
- 波形标签页:数据波形显示
- 特点 :界面布局清晰,操作直观,支持多标签页切换
3.3 命令列表管理
- 实现方式 :使用 JSON 文件持久化存储命令列表
- 功能 :
- 添加新命令
- 删除选中命令
- 发送单个命令
- 发送所有命令
- 导入外部命令文件
- 关键代码 :
def save_commands(self):
import json
try:
with open(self.command_file, 'w', encoding='utf-8') as f:
json.dump(self.command_list, f, indent=2, ensure_ascii=False)
except Exception as e:
pass
3.4 波形显示模块
- 实现方式 :使用 matplotlib 绘制实时波形
- 功能 :
- 实时数据波形显示
- 支持关键字筛选
- 波形截图保存
- 关键代码 :
def update_data(self, new_data):
self.data.extend(new_data)
if len(self.data) > self.max_data_points:
self.data = self.data[-self.max_data_points:]
self.ax.clear()
self.ax.plot(self.data)
self.ax.set_ylim(0, 255)
self.canvas.draw()
3.5 日志筛选功能
- 实现方式 :创建独立的筛选日志窗口
- 功能 :
- 基于关键字筛选日志
- 实时更新筛选结果
- 保存筛选后的日志
- 关键代码 :
def update_log(self, text):
# Apply filter
enable_filter = self.enable_filter.isChecked()
keyword = self.filter_keyword.text().strip()
if not enable_filter or (keyword and keyword in text):
self.log_display.insertPlainText(text)
self.log_display.verticalScrollBar().setValue(self.log_display.verticalScrollBar().maximum())
四、 编译与部署
4.1 编译配置
- 配置文件 :UARTAssistant.spec
- 编译命令 : pyinstaller UARTAssistant.spec
- 编译选项 :
- 优化级别:2(最高)
- UPX 压缩:启用
- 窗口模式:无控制台
- 图标:默认
4.2 构建过程
- 分析阶段 :收集依赖项和资源
- 构建阶段 :生成可执行文件
- 压缩阶段 :使用 UPX 压缩可执行文件
- 输出阶段 :生成最终的可执行文件
4.3 部署方式
- 输出文件 : dist/UARTAssistant.exe
- 部署方法 :直接运行可执行文件,无需安装
- 依赖处理 :所有依赖项已打包到可执行文件中
五、 技术亮点
- 多线程设计 :采用多线程处理串口接收,确保界面响应流畅
- 模块化架构 :功能模块化设计,便于维护和扩展
- 持久化存储 :命令列表和配置的持久化存储
- 实时波形显示 :使用 matplotlib 实现实时数据波形可视化
- 灵活的筛选功能 :支持日志和波形的关键字筛选
- 优化的打包配置 :使用 UPX 压缩减小可执行文件大小
- 完整的串口参数配置 :支持波特率、校验位、数据位、停止位的配置
六、 应用场景
- 嵌入式开发 :调试和测试嵌入式设备的串口通信
- 物联网设备 :与 IoT 设备进行串口通信和数据采集
- 工业自动化 :与工业设备进行串口通信和控制
- 教育教学 :串口通信原理的教学和实验
- 设备调试 :各种串口设备的调试和故障排查
七、 结论
UART Assistant 是一款功能完整、界面友好的串口通信工具,基于 Python 和 PyQt5 开发,提供了丰富的串口通信和数据处理功能。通过 PyInstaller 打包成可执行文件,使其可以在 Windows 系统上直接运行,无需安装 Python 环境。
该工具的设计考虑了实际使用场景的需求,提供了命令管理、波形显示、日志筛选等实用功能,为串口通信调试提供了便利。同时,其模块化的架构也为后续的功能扩展和维护提供了良好的基础。
参考文献
- PyQt5 官方文档: https://doc.qt.io/qtforpython/
- pyserial 官方文档: https://pyserial.readthedocs.io/
- matplotlib 官方文档: https://matplotlib.org/stable/contents.html
- PyInstaller 官方文档: https://pyinstaller.org/en/stable/
- Python 官方文档: https://docs.python.org/3/
工具、源代码下载链接:
https://download.csdn.net/download/Steam_G/92690719?spm=1001.2014.3001.5501
更多推荐



所有评论(0)