# 测试工装EDC服务 # 1 文档说明 **EDC** : Edge Data Center 边缘数据中心、主机 《自动化工装EDC网络接口协议》: 测试工装EDC服务支持的网络接口协议说明 # 2 数据库表结构 ## 2.1`**dnt_info**` — 联网终端信息表 > DNT(Data Network Terminal)是连接子设备的联网终端。 | **字段** | **类型** | **约束** | **说明** | | --- | --- | --- | --- | | `id` | int | PK, AUTO\_INCREMENT | 主键 | | `serial` | varchar(45) | UNIQUE | 序列号(唯一) | | `name` | varchar(45) | | 名称 | | `ip` | varchar(45) | | IP 地址 | | `port` | int | | 端口 | | `mac` | varchar(45) | | MAC 地址 | | `subnet` | varchar(45) | | 子网掩码 | | `gateway` | varchar(45) | | 路由地址 | | `msgport` | int | | 消息端口 | | `version` | varchar(45) | | 固件版本 | | `dtype` | varchar(5) | DEFAULT '0' | **设备类型(重要)** | | `poll_duration` | int | DEFAULT 0 | 轮询间隔 | | `reset_duration` | int | DEFAULT 0 | 重启间隔 | | `state` | tinyint | DEFAULT 0 | 在线状态:1 online, 0 offline | | `last_login` | datetime | | 最后上线 | | `last_off` | datetime | | 离线时间 | | | | | | | | | | | | | | | | | `online_total` | int | DEFAULT 0 | 累计在线时长 | **dtype 设备类型枚举:** | **值** | **说明** | | --- | --- | | 1 | 区位 有线 | | 2 | 超声波车位 有线 | | 3 | 4G\_1 | | 4 | 4G\_2 | | 5 | LoRa 区位主机 | | 6 | LoRa 区位从机 | | 7 | LoRa 车位主机 | | 8 | LoRa 车位从机 | | 9 | LoRa 广播模式 | | 10 | LoRa 中继 | | 11 | 中继模式(485-2) | | 12 | 4G 上报传感数据(MQTT) | | 13 | 有线 上报传感数据(MQTT) | | 14 | 有线 显示发布(MQTT) | | 20 | DLD950 流量计数 | | | | | 30 | 测试工装 | | | | ## 2.2 `**tb_loop_test_info**` 车检器测试参数信息表 | **字段** | **类型** | **约束** | **说明** | | --- | --- | --- | --- | | `id` | int | PK, AUTO\_INCREMENT | 主键 | | `name` | varchar(45) | | 名称 | | `dev_model` | varchar(24) | | 设备型号 | | `model_code` | tinyint | | 型号代号 | | `hard_ver` | varchar(10) | | 硬件版本 | | `soft_ver` | varchar(10) | | 固件版本 | | `relay_exist` | tinyint | | 是否有存在继电器 | | `relay_pluse` | tinyint | | 是否有脉冲继电器 | | `sens_min` | int | | 灵敏度最小值 | | `sens_max` | int | | 灵敏度最大值 | | `freq_min` | int | | 频率最小值 | | `freq_max` | int | | 频率最大值 | | `peak_min` | int | | 峰峰值最小值 | | `peak_max` | int | | 峰峰值最大值 | | `create_time` | datetime | | 创建时间 | | `update_time` | datetime | | 更新时间 | ## 2.3 `**tb_state_tst**` — 设备测试状态表 | **字段** | **类型** | **约束** | **说明** | | --- | --- | --- | --- | | `id` | int | PK, AUTO\_INCREMENT | 主键 | | `dnt_id` | int | FK → dnt\_info.id | 所属 DNT | | `dpg430_addr` | tinyint | | 测试工装DPG430地址 | | `pcnum` | varchar(10) | | 批次号: 年月,如202605 | | `serialnum` | int | | 流水号,当月测试的流水号 | | `sub_type` | tinyint | | 子设备类型:1 DLD110, | | `str_type` | varchar(30) | | 设备类型 | | `iffinish` | varchar(5) | | 是否测试完成 | | `fault_info` | varchar(100) | | 故障信息 | | `relay_out` | varchar(24) | | 继电器输出信息 | | `ppvalue` | float | | 峰峰值 | | `idle_freq` | float | DEFAULT 0 | 开始工作频率 | | `enter_freq` | float | DEFAULT 0 | 进入工作频率 | | `exit_freq` | float | DEFAULT 0 | 离开工作频率 | | `enter_dist` | int | DEFAULT 0 | 进入高度/距离 | | `exit_dist` | int | DEFAULT 0 | 离开高度/距离 | | `enter_speed` | int | DEFAULT 0 | 进入速度 | | `exit_speed` | int | DEFAULT 0 | 离开速度 | | `create_time` | datetime | | 记录时间 | **外键:** `dnt_id` → `dnt_info.id` ## 2.4 `**tb_collect_template**` —原始数据采集表模板 | **字段** | **类型** | **约束** | **说明** | | --- | --- | --- | --- | | `id` | int | PK, AUTO\_INCREMENT | 主键 | | `dat_type` | tinyint | DEFAULT 0 | 数据类型 : 0 心跳包, 1 流量传感数据,2 探头传感数据,3 其他, 4 同步时间戳,7 RS485数据,8 串口主动上报数据,9 配置返回指令,11 异常事件 | | `raw_data` | varchar(380) | | 原始数据 | | `state` | tinyint | DEFAULT 0 | 0 未处理, 1 已经处理 | | `create_time` | datetime | DEFAULT CURRENT\_TIMESTAMP | 原始数据 | | `update_time` | datetime | DEFAULT CURRENT\_TIMESTAMP | 原始数据 | # 3 流程描述 主机UDP服务,监听端口:5500,5505 主机TCP服务,监听端口:5550 1 设备上电后,设备通过TCP连接上主机后,会发出同步时间请求("TimeStamp"),主机返回时间同步信息,设备收到后,会立刻通过UDP上报 发现设备指令("Count\_Off") 返回数据,以让主机获取设备的详细信息。主机获取到设备的详细信息后,设备的唯一编码是 `Device_id`字段,在 `dnt_info`表格里检查有没有改设备的信息,主要是根据设备的串码、设备唯一编码: `serial`。主机通过UDP获取到的设备的 `Device_id`在 数据库表 `dnt_info`的 `serial`里面,表示已经注册了该设备的信息,只比较该表格相应记录里面的IP、网关信息,如果一致,就只更新 `last_login`上线时间信息;如果不一致,就更新该表格里相应记录im的IP、网关信息,同时更新 `last_login`上线时间信息。如果主机通过UDP获取到的设备的 `Device_id`不在 数据库表 `dnt_info`的 `serial`里面,那么需要根据 该设备唯一编码 和 原始数据采集表模板 创建新的原始数据采集表,表名的格式为 tb\_collect\_\[Device\_id\],例:如果Device\_id 为 A123456,那么该设备的原始数据采集表名为:tb\_collect\_A123456。 2 设备主动上报子设备传感数据指令(方法名为 `TSReport`) 和 设备返回的串口透传指令信息(方法名为`SerialNet`) 会存放到该 设备所关联的原始数据采集表里面。主动上报子设备传感数据包对应的 `dat_type`是 8,将传感数据包的 `Sub_Dat`对应的内容插入到 原始数据采集表的 `raw_data`字段里面。设备返回的串口透传指令的数据包对应的 `dat_type`是 9,将该透传数据包的 `SerialDat`对应的内容插入到 原始数据采集表的 `raw_data`字段里面。 3 业务解析服务,当原始数据采集表有未处理的记录时(`state`字段的值为0),业务解析服务马上提取该记录进行解析,只解析该记录的 `dat_type`为8时的记录,该原始数据为测试工装的上报数据,具体的解析方法参考《测试工装DG430串口协议》文档有关数据包的格式说明,将解析后的内容插入到表格 `tb_state_tst`。只要业务解析服务 提取过的记录,最后都要将记录状态置位(`state`字段的值置为1)。 # 修订说明 | 版本 | 修订日期 | 说明 | 修订人 | | --- | --- | --- | --- | | | | | | | V1.0 | 2026-05-27 | 初始版本 | wangfq | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |