# OpticalModuleBatchTestSystem **Repository Path**: hopefully-2023/OpticalModuleBatchTestSystem ## Basic Information - **Project Name**: OpticalModuleBatchTestSystem - **Description**: 光模块批量测试系统 - 基于WPF(.NET Framework 4.8)的桌面应用程序,采用MVVM架构,支持设备管理、实时参数测试、固件烧录和数据查询功能 - **Primary Language**: C# - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-09 - **Last Updated**: 2026-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 光模块批量测试系统 (OpticalModuleBatchTestSystem) 一个基于 WPF (.NET Framework 4.8) 的光模块批量测试与管理桌面应用程序,采用 MVVM 架构设计,支持设备管理、实时参数测试、固件烧录和数据查询等功能。 ## ✨ 主要功能 ### 📱 设备管理 - 自动扫描并识别串口设备 - 实时显示设备连接状态 - 支持多设备同时连接管理 - 设备卡片式可视化展示 ### 📊 参数测试 - 实时监控光模块关键参数: - 发射光功率 (Tx Power) - 接收光功率 (Rx Power) - 工作电压 (Voltage) - 偏置电流 (Bias Current) - 工作温度 (Temperature) - 实时数据曲线图表展示 (LiveCharts) - 支持测试暂停/继续 - 后台测试模式,切换页面不中断测试 - 自动/手动数据保存 ### 🔧 固件烧录 - 支持 `.bin` 和 `.hex` 格式固件文件 - 烧录进度实时显示 - 烧录日志记录 - 支持烧录取消操作 ### 📈 数据查询 - 历史测试数据查询 - 数据导出功能 (Excel) - 测试结果统计分析 ## 🛠️ 技术栈 | 技术 | 说明 | |------|------| | **框架** | .NET Framework 4.8 | | **UI框架** | WPF (Windows Presentation Foundation) | | **架构模式** | MVVM (Model-View-ViewModel) | | **MVVM框架** | MvvmLight 5.4.1 | | **图表库** | LiveCharts 0.9.7 | | **串口通信** | System.IO.Ports | | **数据访问** | ADO.NET + SQL Server | | **Excel处理** | NPOI 2.8.0 | | **日志框架** | log4net 3.3.1 | ## 📁 项目结构 ``` OpticalModuleBatchTestSystem/ ├── Common/ # 公共组件 │ ├── Constants/ # 常量定义 │ ├── Converters/ # WPF值转换器 │ ├── Enums/ # 枚举类型 │ ├── Helpers/ # 工具类 │ │ ├── SerialPortHelper.cs # 串口通信助手 │ │ ├── SqlHelper.cs # 数据库助手 │ │ └── ExcelHelper.cs # Excel导出助手 │ └── DeviceManager.cs # 全局设备管理器(单例) ├── Models/ # 数据模型 │ ├── ModuleInfo.cs # 光模块信息 │ ├── TestData.cs # 测试数据 │ ├── BurnRecord.cs # 烧录记录 │ └── User.cs # 用户信息 ├── ViewModels/ # 视图模型 │ ├── Base/ # 基类 │ ├── MainViewModel.cs # 主窗口 │ ├── DeviceViewModel.cs # 设备管理 │ ├── TestViewModel.cs # 参数测试 │ ├── BurnViewModel.cs # 固件烧录 │ ├── DataViewModel.cs # 数据查询 │ └── LoginViewModel.cs # 用户登录 ├── Views/ # 视图层 │ ├── Controls/ # 自定义控件 │ ├── Pages/ # 页面 │ │ ├── DevicePage.xaml # 设备管理页 │ │ ├── TestPage.xaml # 参数测试页 │ │ ├── BurnPage.xaml # 固件烧录页 │ │ └── DataPage.xaml # 数据查询页 │ ├── MainWindow.xaml # 主窗口 │ └── LoginWindow.xaml # 登录窗口 ├── Styles/ # 样式资源 │ ├── Colors.xaml # 颜色主题 │ ├── ButtonStyles.xaml # 按钮样式 │ ├── InputStyles.xaml # 输入控件样式 │ ├── TextBlockStyles.xaml # 文本样式 │ └── CardStyles.xaml # 卡片样式 ├── Services/ # 服务层 │ ├── IDialogService.cs # 对话框服务接口 │ └── DialogService.cs # 对话框服务实现 └── Properties/ # 程序集属性 ``` ## 🚀 快速开始 ### 环境要求 - Windows 7/10/11 - Visual Studio 2019 或更高版本 - .NET Framework 4.8 SDK - SQL Server (可选,用于数据持久化) ### 安装步骤 1. **克隆项目** ```bash git clone https://gitee.com/your-username/OpticalModuleBatchTestSystem.git ``` 2. **打开解决方案** 使用 Visual Studio 打开 `OpticalModuleBatchTestSystem.sln` 3. **还原 NuGet 包** ``` 工具 → NuGet 包管理器 → 程序包管理器控制台 执行: Update-Package -reinstall ``` 4. **配置数据库 (可选)** 修改 `App.config` 中的连接字符串: ```xml ``` 5. **运行项目** 按 `F5` 或点击"开始调试" ## 📖 使用说明 ### 1. 登录系统 启动应用程序后,首先需要登录。默认账户: - 用户名: `admin` - 密码: `123456` ### 2. 设备管理 - 系统自动扫描可用串口设备 - 点击设备卡片进行连接/断开操作 - 已连接设备显示绿色状态指示灯 ### 3. 参数测试 - 从下拉列表选择已连接设备 - 点击"开始测试"按钮 - 实时查看参数曲线变化 - 支持暂停/继续测试 - 可手动保存当前数据快照 ### 4. 固件烧录 - 选择目标设备 - 浏览并选择固件文件 (.bin/.hex) - 点击"开始烧录" - 等待烧录完成 ### 5. 数据查询 - 选择时间范围 - 查询历史测试数据 - 支持导出到 Excel ## 🔧 配置说明 ### 串口配置 默认串口参数: - 波特率: 9600 - 数据位: 8 - 停止位: 1 - 校验位: None 可在 `SerialPortHelper.cs` 中修改默认配置。 ### 数据库配置 系统支持 SQL Server 数据库,建表脚本: ```sql CREATE TABLE TestData ( Id INT IDENTITY(1,1) PRIMARY KEY, PortName NVARCHAR(50), ModuleSN NVARCHAR(100), OpticalPower FLOAT, Voltage FLOAT, Temperature FLOAT, BiasCurrent FLOAT, TestTime DATETIME DEFAULT GETDATE() ); ``` ## 📝 开发说明 ### 添加新功能模块 1. **创建 Model** - 在 `Models/` 目录下添加数据模型 2. **创建 ViewModel** - 继承 `ViewModelBase`,实现属性绑定 3. **创建 View** - 在 `Views/Pages/` 下添加 XAML 页面 4. **注册导航** - 在 `MainViewModel` 中添加导航命令 ### 样式自定义 修改 `Styles/` 目录下的 XAML 文件: - `Colors.xaml` - 修改主题颜色 - `ButtonStyles.xaml` - 自定义按钮样式 - `InputStyles.xaml` - 输入控件样式 ## 🤝 贡献指南 1. Fork 本仓库 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 ## 👥 作者 - **hopefully-2023** - [https://gitee.com/hopefully-2023](https://gitee.com/hopefully-2023) --- 如有问题或建议,欢迎提交 Issue!