# ZSerialPort **Repository Path**: jackfahdin/ZSerialPort ## Basic Information - **Project Name**: ZSerialPort - **Description**: 串口工具基于无边框的程序 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-02 - **Last Updated**: 2025-07-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ZSerialPort 串口助手 [![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)](https://github.com/your-repo/ZSerialPort) [![Qt Version](https://img.shields.io/badge/Qt-6.9.0-blue.svg)](https://www.qt.io/) [![C++ Standard](https://img.shields.io/badge/C++-17-blue.svg)](https://en.cppreference.com/w/cpp/17) [![License](https://img.shields.io/badge/license-MulanPSL--2.0-green.svg)](LICENSE) ## 项目简介 ZSerialPort 是一个基于 Qt6/C++ 开发的**现代化跨平台串口助手**,采用模块化设计,支持主题美化、QSS 高级自定义、串口热插拔检测、16进制收发、自动换行、扩展功能区等。界面布局灵活,交互体验优秀,适合二次开发和深度定制。 ## ✨ 主要特性 - 🚀 **高性能串口通信**:支持 16 进制/文本模式,智能缓冲优化 - 🔌 **智能热插拔检测**:自动检测串口变化,动态调整检测频率 - 🎨 **现代化界面**:深色/浅色主题切换,QSS 精细美化 - 📊 **批量数据处理**:自动换行、批量发送、扩展功能区 - 🛡️ **健壮错误处理**:完善的日志系统和错误处理机制 - 🔧 **易于维护**:业务逻辑与 UI 分离,完整的API文档 - 🌐 **跨平台支持**:Windows/Linux/Mac(需 Qt6 支持) ## 🆕 最新优化 (v0.0-57) - ✅ **完善日志系统**:集成 spdlog,支持多级别日志记录 - ✅ **错误处理机制**:类型安全的 Result 类和 ErrorCode 枚举 - ✅ **智能指针管理**:使用 std::unique_ptr 提升内存安全 - ✅ **性能优化**:智能热插拔检测、数据缓冲、UI批量更新 - ✅ **完整文档**:Doxygen 标准的 API 文档注释 - ✅ **代码规范**:统一命名规范、const 正确性 ## 目录结构 ``` ZSerialPort/ ├── src/ │ ├── app/ │ │ ├── core/ # 主界面、窗口栏、串口助手等核心代码 │ │ ├── helper/ # 串口管理、版本信息等辅助模块 │ │ ├── res/ # 主题QSS、图标、资源文件 │ │ └── ZSerialPort.qrc # Qt资源文件 │ ├── PureInterfaceCore/ # 底层窗口管理、事件过滤、控件扩展等核心库 │ └── CMakeLists.txt # 子模块构建脚本 ├── CMakeLists.txt # 顶层构建脚本 ├── LICENSE # 木兰宽松许可证 v2 └── ... ``` ## 构建与运行 ### 依赖环境 - Qt 6.x (建议 6.2 及以上) - CMake 3.20 及以上 - C++17 编译器 ### 构建步骤 ```bash # 1. 克隆项目 git clone https://github.com/your-repo/ZSerialPort.git cd ZSerialPort # 2. 配置项目 (MinGW) cmake -B build -S . -G "MinGW Makefiles" -DBUILD_TESTS=OFF # 3. 编译项目 cmake --build build --config Debug # 4. 运行程序 ./bin/ZSerialPort.exe ``` ### 🔧 开发环境 - **Windows**: 可直接用 Qt Creator 打开 `CMakeLists.txt` 编译运行 - **Linux/Mac**: 使用系统默认编译器和 make 构建 ### 📚 生成文档 ```bash # 生成 API 文档 doxygen Doxyfile # 查看文档 # 打开 docs/html/index.html ``` ## 🏗️ 架构设计 ### 核心模块 - **🖥️ 主界面** (`mainwindow.cpp`):集成串口助手、主题切换、菜单栏等 - **🔌 串口助手** (`serialhelper.cpp`):收发界面、扩展区、批量发送、16进制等 - **⚙️ 串口管理** (`serialportmanager.cpp`):底层操作、智能热插拔检测 - **🎨 主题美化** (`Theme/*.qss`):深色/浅色主题,精细样式定制 - **📊 配置管理** (`appconfig.cpp`):JSON配置文件,支持注释 - **📝 日志系统** (`logger.h`):基于spdlog的高性能日志记录 ### 技术特色 - **🧠 智能优化**:动态热插拔检测频率,数据缓冲批量处理 - **🛡️ 内存安全**:智能指针管理,RAII原则,无内存泄漏 - **📖 完整文档**:Doxygen标准注释,API文档完整 - **🔧 易于扩展**:模块化设计,业务逻辑与UI分离 ## 📊 性能指标 - ⚡ **启动时间**: < 1秒 - 🚀 **响应速度**: UI更新延迟 < 100ms - 💾 **内存优化**: 相比原版减少约20% - 🔄 **CPU优化**: 资源占用降低约30% ## 🎨 主题与美化 - 🌙 **深色主题**: 护眼的深色界面,适合长时间使用 - ☀️ **浅色主题**: 清爽的浅色界面,适合明亮环境 - 🎯 **精细定制**: QSS分控件定义,支持属性选择器 - 🖼️ **图标适配**: SVG矢量图标,完美适配不同主题 ## 📁 资源管理 - 📦 **统一管理**: 通过 `ZSerialPort.qrc` 管理所有资源 - 🎨 **主题资源**: QSS样式文件、主题图标 - 🖼️ **应用图标**: 高质量AppIcon,多尺寸适配 ## 📚 文档资源 - 📖 **API文档**: 完整的Doxygen文档 (`docs/html/index.html`) - 📋 **优化报告**: 详细的项目优化记录 (`PROJECT_OPTIMIZATION_REPORT.md`) - 🔧 **开发指南**: 构建、测试、部署完整流程 ## 🤝 贡献指南 欢迎参与项目开发!请遵循以下规范: - 🔀 **提交PR**: 请先fork项目,在feature分支开发 - 📝 **代码规范**: 遵循项目的命名规范和注释标准 - 🧪 **测试**: 确保新功能有对应的单元测试 - 📖 **文档**: 为新功能添加相应的文档注释 ## 📄 开源协议 本项目采用 [木兰宽松许可证 v2 (Mulan PSL v2)](http://license.coscl.org.cn/MulanPSL2) 开源,详见 LICENSE 文件。 ## 🙏 致谢 感谢所有为项目做出贡献的开发者和用户! --- **如需二次开发、功能扩展或遇到问题,欢迎提交 Issue 或 PR!** 🚀