- edc-web: Flask 项目骨架(设备管理、测试操作、测试信息三大页面) - edc_server: 升级子模块(tb_serialnet 透传支持) - docs: 测试工装EDC管理系统需求文档
3.7 KiB
3.7 KiB
1|# 测试工装EDC管理系统
2|
3|做一个EDC工装web管理系统(edc-web)。用flask框架实现, 功能描述:
4|
5|* 顶部菜单是设备、测试信息两个菜单。
6|
7|* 设备页面有基本的联网终端列表(联网终端信息 参考 `dnt_info`表格,列出设备序列号、名称,是否在线等内容),列表每条记录的最右侧一列是操作列,有测试 按钮,电机测试按钮,会进入测试操作界面。支持更改终端的名称并提交保存。
8|
9|* 测试操作页面,测试页面包括测试操作区,和当前测试信息显示区。
10|
11| * 测试操作区支持包括如下指令:单次开始测试0xB0、测试复原0xB1、电机前进0xBA,电机后退0xBB、电机停止0xBC,电机发送的时候通过网络串口透传指令交互("Method": "SerialNet", 参考《PGLC网络接口协议.md》)。操作区还支持自动化操作:测试次数 输入框,开始 按钮,点击开始 按钮后(前端平均值的字段要进行清零),进入自动化测试流程,该按钮会显示结束,如果此时点击结束按钮,就会变为 开始按钮。当进入自动化流程时,有一个实时的进度条,表示当前还剩余多少次测试。发一次 单次开始测试0xB0 到接收到一条 0xB2字段的上报指令内容为完整的一次,进度条上的剩余次数减一,从发送0xB0指令到接收的超时时间为10秒,即发送0xB0指令后,如果10秒内没有收到0xB2的指令返回,表示当次执行失败,视为一条失败记录,失败的记录条数也要显示出来。我这里提供一个实现的思路供参考:前端将发什么指令放到一个表(比如叫透传发送表 tb\_serialnet),该表需要有`dnt_info`的设备ID关联(dnt\_id),还有其它字段:`send_pkg`(发送指令包),`rcv_pkg`(接收指令包), `state`(状态,0表示未发送,1表示已经发送,2表示已经收到回复),还有 `create_time`, `update_time`字段。后台服务edc\_server 开启一个独立的任务轮询该表,如果有未发送的透传指令,立马通过UDP端口下发给终端(需要注意防止冲突)。edc\_server 如果有收到该网络终端上报的子设备的传感数据包(0xB2指令),解析后先存放到设备测试状态表 `tb_state_tst`,然后再显示到前端,前端还要运算当前自动化测试的平均值(失败记录的次数不列入平均值计算)。
12|
13| * 测试信息显示区会显示设备实时主动上报的测试数据(即raw\_data中命令字为0xB2 的上报数据),将其解析后显示出来。并且支持显示最近自动化测试的平均值:平均峰峰值、平均开始工作频率、平均进入工作频率、平均进入距离、平均离开距离、平均进入速度、平均离开速度。
14|
15|* 测试信息网页显示所有的测试数据,显示内容支持分页、内容查找、按日期查找,还支持导出功能,显示内容需要包含数据库表 `dnt_info`, `tb_state_tst`, 网页表格显示的字段 包括来自 `dnt_info`的网络模块的设备编码(dnt serial);还有 `tb_state_tst` 字段内容,参考《DG430串口协议.md》有关子设备上报状态内容字段的描述。
16|
17|
18|# 修订说明
19|
20|| 版本 | 修订日期 | 说明 | 修订人 |
21|| --- | --- | --- | --- |
22|| | | | |
23|| V1.0 | 2026-05-28 | 初始版本 | wangfq |
24|| | | | |
25|| | | | |
26|| | | | |
27|| | | | |
28|| | | | |
29|| | | | |