项目 / Portfolio

SETB 智能电子测试台数据分析系统

EL2311 课程项目 · C# WinForms

一个面向工业电子设备的测试数据管理系统。支持批量导入 XML 格式的测试数据,自动判断故障状态并生成报告,提供双角色权限——操作员用于日常测试,管理员可执行自定义查询。

执行质量报告统计视图,展示测试数据的统计结果
用户角色
2
故障预警规则
8
层 SQL 安全校验
2
触发锁定
5次
字体缩放
5级

做这个的原因

工业电子设备的测试场景里,传统的人工记录和人工分析方式应付不了批量测试数据。这个系统把导入、解析、存储、故障判断、报表生成整个流程走通,减少人工分析的工作量。

双角色权限

系统预设操作员和管理员两组固定账号,登录后跳转到各自的功能界面,实现权限隔离。针对暴力破解,连续登录失败 5 次后会锁定 30 秒,锁定状态写入本地文件持久化——即使重启程序也读取锁定记录,不能靠重启绕过限制。

登录界面弹出的锁定提示:连续登录失败已锁定账号 30 秒
超出登录尝试次数后的安全提示

数据导入与容错

导入 XML 前先校验文件格式;解析节点时用空值合并运算符处理缺失字段,避免单个节点缺失导致整个解析崩溃;单条数据解析失败时跳过并计数,不影响其余数据的导入。解析完成后通过事务批量写入 SQLite,保证写入的完整性和效率。

XML 导入结果提示框,显示成功导入 12 条、跳过 1 条无效数据
XML 解析结果提示,12 条成功、1 条因格式无效跳过

故障诊断

所有故障和预警的判断规则集中存放在一个静态配置类里,包含 6 条故障规则和 2 条预警规则。判断逻辑封装在数据模型的只读属性中,业务代码不需要重复编写判断逻辑,修改阈值只需要改配置类,不涉及业务代码。

执行质量报告界面,按测试批次统计通过率与故障分布
执行质量报告统计视图
系统健康诊断日志界面,按时间列出各项设备状态记录
系统健康诊断日志视图

并发状态与安全查询

系统能正确识别同一天内"正常→高温预警→过热与断电双重故障→恢复正常"这类复杂状态切换,时间线上分别标出故障和预警。管理员的自定义 SQL 查询做了两层校验——界面层先拦截包含 DELETE、DROP、UPDATE 等关键字的语句,数据库层再校验一次,即使绕过界面校验也会在数据库层被拦下,只允许只读查询。

单日诊断日志时间线,标出正常、高温预警、过热与断电双重故障、恢复正常四个状态段
单个测试日内并发故障与预警的诊断日志
自定义查询界面弹出的安全提示:检测到 DELETE 等数据修改关键字,查询已被拦截
拦截数据修改类 SQL 语句的安全提示

架构设计

系统按表现层、服务层、数据模型层、工具层分层设计。核心类图展示了各层职责边界,以及类之间的继承、组合和依赖关系。

系统核心 UML 类图,展示表现层、服务层、数据模型层、工具层各类及其继承、组合、依赖关系
核心 UML 类图

核心业务流程

三个核心场景的时序图:用户登录与权限校验、操作员导入数据生成报表、管理员执行只读查询。

用户登录与权限校验时序图,展示界面、服务层与数据层之间的调用顺序
用户登录时序图
操作员导入数据并生成报表的时序图
操作员业务流程时序图
管理员执行自定义只读查询的时序图,包含两层 SQL 安全校验
管理员业务流程时序图

其他细节

系统实现了统一的深色主题,递归遍历表单自动识别所有控件类型并应用对应样式,不需要逐个控件单独设置。同时支持报表和数据表格最多 5 级的字体缩放,提升视觉障碍用户的可访问性。

阈值设计依据

阈值判断基于设备物理特性设定:电压安全区间 3.0–5.5V,电流故障阈值 >2.0A,温度预警 70–80°C、故障 >80°C,功耗预警 >5.0W,电量 0% 直接判定故障,通信错误率 >0.15 判定故障。这些数值参考了主流 MCU 的标准逻辑电平和半导体器件的结温上限。

← 查看其他项目