2.7 KiB
2.7 KiB
[OPEN] serial-gateway-download
问题描述
- 连接 2.4G 网关后,终端设备没有接收到数据。
- “下载本场”功能没有作用。
- 需要参照参考项目
Jump_window/Form1的逻辑排查并修复。
当前症状
- 后端可以打开串口。
- 终端设备未见有效接收结果。
- 需要确认串口收发、协议解析、下载本场发送顺序是否与旧版一致。
假设
- 打开的串口不是网关真实串口。
- 下载本场的发送帧内容或顺序与旧版 Form1 不一致。
- 接收解析规则与设备协议不匹配,导致有效帧被丢弃。
- 场次/设备地址映射与旧版不一致,数据下载到了错误地址。
- 前端触发了接口,但后端未实际执行关键串口发送链路。
计划
- 对照参考项目 Form1 收发逻辑。
- 给串口打开、串口发送、串口接收解析、下载本场流程加运行时埋点。
- 复现下载本场与接收数据流程。
- 基于日志证据确定根因后再做最小修复。
证据
- 用户确认秩序册中的
001.002.003.033.074这类字段是“终端设备通信地址”。 - 用户反馈模板
秩序册1场2人_模板 .xlsx中,003.002.003.005.052属于赵其三,但计数落到了李胜席。 - 实际读取模板表后,原始顺序是:李胜席 ->
001.002.003.023.200,赵其三 ->003.002.003.005.052,秩序册解析顺序本身正确。 - 旧版
Form1接收逻辑直接使用MyJumper[PerChangCi, ReceivedByte[2]],说明设备回传索引是当前场次内的 0 基槽位。 - 当前新后端默认把 participant
DeviceId设为slotIndex + 1,前端也传了1/2/3...,因此第二个手柄回传索引1会被映射到第一个人。 - 旧版
Form1.button2_Click的下载顺序为:06 06->FF 13 04 00 03->0D 0D-> 姓名 -> RFID ->30->0A 0A。 - 修复前日志缺少
55FF130400030000000000AA,且没有帧间等待与发送前清缓存。 - 修复后日志已出现
55FF130400030000000000AA,且发送时间间隔符合旧版100ms/50ms。 - 当前运行日志仍显示打开端口为
COM1,且暂无接收日志,说明“错误串口/网关未响应”仍是剩余风险。
已实施修复
- 下载本场发送顺序改为对齐
Form1.button2_Click。 - 每帧发送前执行清接收缓存,发送后按旧版加入延时。
- 前端不再默认自动选择第一个串口,避免误开
COM1。 - 前端秩序册解析新增“通信地址/手柄地址/设备地址/终端地址”字段识别,并将该字段传入后端下载地址帧。
- 后端 participant 默认设备号改为当前场次 0 基槽位,前端移除错误的 1 基
deviceId覆盖,修正计数错位问题。