补光灯控制修复记录(2026-03-26)

现象

本次确认的原因

1. 串口连接可能进入“假连接”状态

补光灯控制走 /dev/ttyS5 @ 9600,原实现里 isConnected() 只根据是否记录了 currentPath 判断是否连接:

这会导致一种情况:

2. 发送失败时没有及时清掉坏连接

原先 dev_sendUart() 调用失败时,只是抛出异常,没有立刻把当前连接状态清掉。

这样会导致:

3. 页面上的“开关补光灯”按钮未接业务逻辑

布局里有 btn_fill_light_toggle,但原来的 FillLightActivity 没有给它绑定点击事件。

结果是:

本次修改内容

1. PlateSensorSerialManager.java

文件:

修改点:

目的:

2. FillLightController.java

文件:

修改点:

目的:

3. FillLightActivity.java

文件:

修改点:

目的:

本次验证结果

已执行编译验证:

后续如果再出现类似问题,优先这样排查

1. 先看现象

如果页面显示成功、但灯没有变化,优先怀疑串口连接失效或硬件端未响应。

2. 优先检查这三个文件

3. 如果问题再次出现,建议继续加日志

建议记录以下信息:

这样可以快速区分:

结论

本次修复的核心思路不是改协议,而是增强串口控制的稳定性:

如果后续补光灯再次出现“第一次能控,后来失效”,优先参考本记录继续排查。