138 lines
4.2 KiB
Markdown
138 lines
4.2 KiB
Markdown
# 传感器测试设备软件 (Sensor Test System)
|
||
|
||
一款高安全性、高可靠性的传感器测试设备软件,作为传感器测试系统的核心控制单元,
|
||
实现从测试任务配置、自动化执行、实时监控、质量判定到加密报告生成的全流程闭环管理。
|
||
|
||
遵循 GJB 5000B 二级标准,满足军工级安全与可靠性要求。
|
||
|
||
## 功能特性
|
||
|
||
- **用户权限与双因子认证**: 支持操作员、工艺员、管理员三级权限,集成TOTP动态口令认证
|
||
- **条码识别与模板匹配**: 通过扫码枪或手动输入传感器条码,自动匹配测试计划
|
||
- **自动化测试序列执行**: 自动控制压力加压,DAQ数据采集,支持暂停/继续/跳步
|
||
- **实时数据监控与绘图**: 实时显示压力-输出数据,报警状态指示
|
||
- **特征参数计算与判定**: 基于最小二乘法计算非线性、迟滞、重复性误差
|
||
- **加密报告生成与导出**: 生成PDF/A格式报告和CSV数据文件,嵌入SM3哈希与数字水印
|
||
- **异常处理与自恢复**: 通讯中断后自动重连,恢复测试进度
|
||
|
||
## 技术栈
|
||
|
||
- Python 3.10+
|
||
- PyQt5 (GUI框架)
|
||
- reportlab (PDF生成)
|
||
- gmssl (SM3哈希算法)
|
||
- pyotp (TOTP动态口令)
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
codegen-runs/codegen_d83282644a2a4b4b91e025e76d296e18/
|
||
├── README.md # 项目说明文档
|
||
├── requirements.txt # Python依赖清单
|
||
├── app/
|
||
│ ├── __init__.py # 包初始化
|
||
│ ├── main.py # 主入口与GUI界面
|
||
│ ├── data_structures.py # 数据结构定义
|
||
│ └── services.py # 业务逻辑服务层
|
||
└── tests/
|
||
├── __init__.py # 测试包初始化
|
||
└── test_basic.py # 单元测试与集成测试
|
||
```
|
||
|
||
## 安装与运行
|
||
|
||
### 1. 环境要求
|
||
|
||
- Python 3.10 或更高版本
|
||
- 支持操作系统:麒麟V10 / Windows 10/11
|
||
|
||
### 2. 安装依赖
|
||
|
||
```bash
|
||
# 进入项目目录
|
||
cd codegen-runs/codegen_d83282644a2a4b4b91e025e76d296e18
|
||
|
||
# 创建虚拟环境(推荐)
|
||
python -m venv venv
|
||
|
||
# 激活虚拟环境
|
||
# Windows:
|
||
venv\Scripts\activate
|
||
# Linux/Kylin:
|
||
source venv/bin/activate
|
||
|
||
# 安装依赖
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 3. 启动应用
|
||
|
||
```bash
|
||
python -m app.main
|
||
```
|
||
|
||
### 4. 运行测试
|
||
|
||
```bash
|
||
# 运行所有测试
|
||
python -m pytest tests/ -v
|
||
|
||
# 或使用unittest
|
||
python -m unittest discover tests -v
|
||
```
|
||
|
||
## 使用说明
|
||
|
||
### 登录
|
||
|
||
1. 启动应用后显示登录对话框
|
||
2. 输入用户名和密码(默认测试账号见下表)
|
||
3. 输入6位TOTP动态口令(测试环境使用 `123456`)
|
||
|
||
| 用户名 | 角色 | 密码 |
|
||
|--------|------|------|
|
||
| admin | 管理员 | pass123 |
|
||
| tech01 | 工艺员 | pass123 |
|
||
| op01 | 操作员 | pass123 |
|
||
|
||
### 执行测试
|
||
|
||
1. 在条码输入框输入传感器型号(如 `SENSOR-001`),点击"加载测试计划"
|
||
2. 点击"开始"按钮启动自动化测试
|
||
3. 测试过程中可暂停/继续/跳步
|
||
4. 测试完成后自动显示判定结果(PASS/FAIL)
|
||
|
||
### 生成报告
|
||
|
||
1. 测试完成后,点击"生成报告"按钮
|
||
2. 系统生成PDF报告和CSV数据文件
|
||
3. 报告嵌入SM3哈希值和数字水印,确保完整性
|
||
|
||
## 测试账号(演示用)
|
||
|
||
| 用户名 | 角色 | 权限说明 |
|
||
|--------|------|---------|
|
||
| admin | 管理员 | 系统管理、用户管理、解锁账户 |
|
||
| tech01 | 工艺员 | 传感器型号配置管理 |
|
||
| op01 | 操作员 | 执行测试、查看结果、生成报告 |
|
||
|
||
## 安全特性
|
||
|
||
- **双因子认证**: 静态密码 + TOTP动态口令
|
||
- **账户锁定**: 密码错误5次自动锁定,管理员可解锁
|
||
- **数据不落地**: 所有测试数据仅驻留内存,断电自动清空
|
||
- **SM3哈希**: 报告完整性校验
|
||
- **数字水印**: 防篡改标识
|
||
|
||
## 约束说明
|
||
|
||
- 本工程为演示版本,硬件接口使用模拟数据
|
||
- 实际部署时需连接压力控制器、DAQ卡等硬件设备
|
||
- 双因子认证在演示中使用固定口令,正式环境需配置TOTP密钥
|
||
- SM3哈希使用SHA256模拟,正式环境使用gmssl库实现
|
||
- 网络隔离、USB白名单等功能在演示中简化为状态指示
|
||
|
||
## 许可证
|
||
|
||
本项目为传感器测试系统演示工程,仅供学习和评估使用。
|