# SerialTool **Repository Path**: squne/SerialTool ## Basic Information - **Project Name**: SerialTool - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-20 - **Last Updated**: 2026-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MobiiotSerial
**基于 Qt5 的跨平台 GUI 串口调试工具** [![License](https://img.shields.io/badge/license-MPL--2.0-blue.svg)](LICENSE) [![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20Windows%20%7C%20macOS-lightgrey.svg)]() [![Qt](https://img.shields.io/badge/Qt-5.15%2B-green.svg)](https://www.qt.io/)
## 概述 MobiiotSerial 是一款跨平台串口调试工具,专为需要与嵌入式设备、单片机及其他串口设备通信的开发者和工程师设计。基于 Qt5 框架构建,提供友好的图形界面用于串口通信测试与调试,支持中英文双语切换。 ### 主要功能 - **多标签页架构**:中央标签页同时管理多个串口会话,实时连接状态指示灯 - **会话管理**:创建、编辑、重命名、删除、导入、导出串口会话,配置参数持久化为 JSON - **ADB 终端**:内置 ADB Shell,支持 Android 设备调试,输出结果实时展示 - **指令面板**:右侧面板提供串口指令和 ADB 指令两个标签页,双击发送、增删改自定义指令,支持导入导出指令列表 - **串口管理**:自动扫描串口,一键连接/断开/暂停 - **双格式收发**:ASCII 与 HEX 两种数据收发模式,发送按钮支持下拉切换 - **DTR/RTS 信号线控制**:在会话配置中设置 DTR(数据终端就绪)和 RTS(请求发送)信号线 - **高级终端模式**:类 PuTTY 的收发一体终端,支持指令历史和上下键回读 - **自动重复发送**:可配置时间间隔的自动发送,支持毫秒级精度 - **快捷发送**:输入框中按回车键即时发送 - **发送后清空**:可选的发送后自动清空输入框 - **数据日志**:支持将通信日志导出保存到文件 - **收发统计**:状态栏实时显示接收/发送字节计数 - **时间戳显示**:可切换显示每条消息的时间戳 - **显示选项**:可独立切换显示发送内容、接收内容和时间戳 - **暂停输出**:临时暂停接收数据显示,不丢失数据 - **自动换行**:接收区域支持自动换行切换 - **多语言**:内置中英文界面切换 - **自定义波特率**:支持自定义波特率输入(最多 7 位数字) - **串口配置**:可自定义波特率、校验位、停止位、数据位和流控 - **跨平台**:支持 Linux、Windows 和 macOS ### 代码架构 ``` main.cpp ── 程序入口,创建 MainWindow └── mainwindow.h / .cpp ── 主窗口:会话管理、工具栏、菜单、标签页容器 ├── sessiondata.h / .cpp ── SessionData 数据结构 + SessionManager(JSON 持久化) ├── sessiondialog.h / .cpp── SessionConfigDialog(单页配置弹窗) ├── serialtab.h / .cpp ── SerialTab(单个串口标签页) │ └── terminalview.h / .cpp ── TerminalView(类 Putty 收发同屏控件) ├── adbtab.h / .cpp ── AdbTab(ADB Shell 终端标签页) ├── commandmanager.h / .cpp── CommandManager(指令面板 Dock) └── aboutdialog.h / .cpp ── AboutDialog(关于对话框) global.h ── 全局枚举:BAUDRATE、DATABIT、STOPBIT、CHECKBIT、CTRLBIT ``` | 文件 | 类/用途 | 被谁调用 | 调用谁 | |------|---------|----------|--------| | `main.cpp` | 程序入口 | — | MainWindow | | `mainwindow.h/cpp` | MainWindow — 主窗口框架 | main.cpp | 所有其他模块 | | `sessiondata.h/cpp` | SessionData / SessionManager | MainWindow, SessionDialog, SerialTab | global.h | | `sessiondialog.h/cpp` | SessionConfigDialog | MainWindow | SessionData, global.h | | `serialtab.h/cpp` | SerialTab — 串口标签页 | MainWindow | TerminalView, SessionData, global.h | | `terminalview.h/cpp` | TerminalView — 类 Putty 终端控件 | SerialTab | — | | `adbtab.h/cpp` | AdbTab — ADB 终端标签页 | MainWindow | QProcess | | `commandmanager.h/cpp` | CommandManager — 指令面板 | MainWindow | QJsonDocument | | `aboutdialog.h/cpp` | AboutDialog | MainWindow | aboutdialog.ui, global.h | | `global.h` | 全局枚举 | (被多数文件包含) | — | ## 系统要求 - **操作系统**:Linux (Ubuntu 18.04+, Debian 10+), Windows 7+, macOS 10.12+ - **Qt 框架**:Qt 5.15.2 或更高版本 - **依赖项**: - Qt5 Widgets, GUI, Core, SerialPort, Network - 标准 C/C++ 运行时库 - X11 库 (Linux) ## 从源码编译 ### 前置条件 - Qt 5.15 或更高版本(含 Qt SerialPort 模块) - 支持 C++11 的编译器(GCC 4.8+, Clang 3.3+, MSVC 2015+) - qmake ### Linux (Ubuntu/Debian) 1. **安装 Qt5 开发包:** ```bash sudo apt-get update sudo apt-get install qt5-default qtserialport5-dev qttools5-dev-tools build-essential ``` Ubuntu 22.04+(qt5-default 已移除): ```bash sudo apt-get install qtbase5-dev qtserialport5-dev qttools5-dev-tools build-essential ``` 2. **克隆并编译:** ```bash git clone MobiiotSerial cd MobiiotSerial qmake SerialPort.pro make -j$(nproc) ``` 编译产物位于 `Out/MobiiotSerial`。 3. **运行:** ```bash ./Out/MobiiotSerial ``` ### Windows 1. **安装 Qt SDK**,从 [qt.io](https://www.qt.io/download) 下载,安装时确保选择 Qt SerialPort 模块。 2. **使用 Qt Creator 编译:** - 在 Qt Creator 中打开 `SerialPort.pro` - 选择编译套件(MinGW 或 MSVC) - 点击构建并运行 3. **命令行编译(MinGW):** ```cmd qmake SerialPort.pro mingw32-make ``` 4. **部署依赖:** 使用 `windeployqt` 收集所需的 DLL: ```cmd windeployqt --serialport Out\MobiiotSerial.exe ``` ### macOS 1. **通过 Homebrew 安装 Qt:** ```bash brew install qt@5 export PATH="/usr/local/opt/qt@5/bin:$PATH" ``` 2. **编译:** ```bash git clone MobiiotSerial cd MobiiotSerial qmake SerialPort.pro make -j$(sysctl -n hw.ncpu) ``` 3. **部署依赖(可选):** ```bash macdeployqt MobiiotSerial.app ``` 4. **运行:** ```bash open MobiiotSerial.app ``` ## Linux 打包(Debian/Ubuntu) MobiiotSerial 在 `deb_prj/` 目录下包含完整的 Debian 打包结构。构建 `.deb` 包的步骤: 1. **先编译二进制文件**(参见上方的 Linux 编译说明)。 2. **将二进制文件复制到打包结构中:** ```bash cp Out/MobiiotSerial deb_prj/opt/MobiiotSerial/ ``` 3. **收集共享库**(如需打包依赖): ```bash cd script chmod +x ldd.sh ./ldd.sh ../Out/MobiiotSerial cp ../lib/* ../deb_prj/opt/MobiiotSerial/lib/ cd .. ``` 4. **构建 .deb 包:** ```bash chmod +x gen_deb.sh ./gen_deb.sh ``` 5. **安装:** ```bash sudo dpkg -i MobiiotSerial.deb # 如有依赖问题: sudo apt-get install -f ``` ## 运行方式 安装或编译完成后: 1. **命令行启动:** ```bash mobiiotserial ``` 2. **应用菜单启动:** 在系统应用菜单中找到 "MobiiotSerial"。 3. **串口权限(Linux):** 如果遇到权限拒绝错误,将用户添加到 `dialout` 组: ```bash sudo usermod -a -G dialout $USER ``` 注销后重新登录使更改生效。 ## 使用指南 ### 基本操作 1. **会话管理**:左侧会话面板可新建、编辑、重命名、删除会话,右键列表项弹出操作菜单 2. **配置**:通过会话向导设置串口号、波特率、数据位、停止位、校验位和流控 3. **连接**:点击工具栏"开始"按钮建立连接(再点击可暂停/继续,"停止"完全断开) 4. **发送数据**: - 在输入框中输入数据 - 通过发送按钮下拉菜单选择 ASCII 或 HEX 格式 - 点击"发送"或按 **回车键** 发送 - 可勾选"发送后清空"自动清空输入框 5. **接收**:数据自动显示在接收区域,状态栏实时更新收发字节数 6. **保存日志**:文件 > 保存日志文件,导出通信日志 ### 高级功能 - **自动重复发送**:勾选"重发"并设置时间间隔(毫秒),自动定时发送 - **显示选项**:工具栏可独立切换 HEX 接收、显示发送、时间戳、自动换行 - **暂停输出**:点击暂停按钮临时停止显示而不中断数据接收 - **自定义波特率**:在会话向导波特率下拉框中选择"自定义",输入数值(1-7 位数字) - **语言切换**:菜单 > 关于中切换界面语言(中文/英文) - **接收格式**:工具栏支持 HEX/ASCII 接收格式一键切换 ## 常见问题 **问:应用程序无法启动** - 确保已安装所有 Qt5 依赖项 - Linux 下检查文件权限:`chmod +x MobiiotSerial` **问:找不到串口** - 点击"扫描串口"刷新串口列表 - 检查串口权限(参见上方的"串口权限"部分) **问:打开串口时权限被拒绝** - Linux 下将用户添加到 `dialout` 组,或使用 `sudo` 运行 - 确保没有其他应用程序正在使用该串口 **问:Linux 上存在依赖问题** - dpkg 安装后运行 `sudo apt-get install -f` - 或使用 `sudo apt-get install ./mobiiotserial.deb` 自动解决依赖 ## 待办事项 - [ ] 数据可视化与波形绘制 ## 许可证 本项目基于 Mozilla Public License 2.0 (MPL-2.0) 许可。详情参见 [LICENSE](LICENSE) 文件。 ## 作者 - 邮箱:Squne@live.com ---