用途与实际影响
这项功能怎样使用
为什么需要它
只整张刷新会太慢,只发变化部分又可能在漏了一帧后越错越多。系统先给机箱屏发完整画面,再持续更新变化,必要时重新发整张纠偏。
举个实际例子
机箱屏像是冻住了,系统会先确认旧写入者已经退出,再用一张完整画面重新打底,之后恢复每秒更新。最后仍以实体屏上的时钟重新跳动为准,而不是看到电脑“发送成功”就宣布修好。
最后我会得到什么
机箱屏应恢复约每秒更新,并定期整张校正;主机记录能说明发送到哪一步,但最终仍须看实体时钟和像素真的变化。
正常时
唯一发送程序接上正确设备并维持刷新时,主机侧状态通过;实体结果还要现场观察。
发现问题时
发送太慢或失败时退出这一发送程序,由现有恢复入口重新建立完整画面。
入口不可用或证据不足时
旧发送者没退出或设备身份不唯一时不启动第二个程序抢屏。
从哪里开始
机箱屏冻结时,在已接入项目的本机 AI 对话中点名这块实体屏并描述最后一次变化。
需要准备什么
- 实际串口设备
- 冻结时间与现有写入进程
从开始到拿到结果
- 1
先找到真正连着机箱屏的端口
系统确认设备身份与旧发送程序是否退出,不沿用旧电脑的端口编号。
- 2
重新建立画面
发送完整基线,再每秒更新变化部分,定期补全帧避免漏帧长期冻结。
- 3
看真实屏幕
交回时钟是否重新跳动;主机发送成功没有设备确认时保留未知,由看门狗按实际故障恢复。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
9月9日03:38Z继续约1 Hz发送,14,487/14,487帧、失败0;本人实体屏确认及异常退出自动接回保留9月7日实测日期关键规则与设计选择
command 200 是保守已验证全帧路径;command 204 始终标为设备特定候选。
安装默认保持 1 Hz,不把降到 3 秒当通用稳定性修复。
增量 900 ms、全帧 10 秒上限,首次发送失败即退出。
heartbeat 必须包含 send_attempted 和恢复基线,不能只报进程 alive。
本模块用到的名词
- baseline(完整基线)
- 设备可据此得到完整画面的 command 200 帧。
- delta(差分)
- 只发送变化区域的 command 204 数据,主机更快但无设备 ACK。
- serial session(串口会话)
- 一次独占打开与写入周期;重开可清除部分驱动/设备停滞。
专业定义
以 command 200 建完整画面基线、command 204 做有界增量,并用唯一写入者、发送上限、定期重开会话和 heartbeat 限制静默冻结。
解决什么
解决全帧太慢、增量静默冻结、串口双写、驱动停滞、假心跳和恢复基线长期不到达。
当前怎样实现
- 启动执行 vendor-shaped priming、亮度恢复和两帧 command 200。
- 稳态每秒发送 command 204 差分。
- warmup 60/120/180 帧与长期 900 帧重建 serial session 并补全帧。
- 看门狗校验 mode、period、send_ms、last_full_frame 和 failed。
执行流程
- 1
确认唯一 COM 设备和旧 owner 已退出。
- 2
打开串口并发送完整基线。
- 3
每秒发送有界差分。
- 4
到恢复边界时重开会话并补全帧。
- 5
失败退出,由长期看门狗恢复。
边界
- COM7 是当前本机默认,不是可泛化设备事实;实际操作前必须重验身份。
- 主机写成功不是 device ACK。
- Alt helper 仅保留隔离测试,不进入当前日常链路。
失败与恢复
- 旧 stream 未释放 COM
- 启动失败关闭,不抢占或创建第二个 writer。
- 单次 send 超时或失败
- worker 退出,watchdog 进入有界恢复。
- heartbeat 新鲜但基线逾期
- 判为不健康,不接受假活。
真实入口
E:\Projects\Tools\TURZX-SideScreen\tools\turzx_side_screen\TURZX.SideScreen.Stream.cscommand 200/204、deadline、heartbeat
E:\Projects\Tools\TURZX-SideScreen\tools\turzx_side_screen\TURZX.SideScreen.Protocol.cs已验证 command 200/123 编码边界
E:\Projects\Tools\TURZX-SideScreen\tools\turzx_side_screen\README_protocol.md协议观察与证据边界
E:\Projects\Tools\TURZX-SideScreen\tools\turzx_side_screen\TestStreamCadence.ps1节拍与恢复基线合同
E:\Projects\Tools\TURZX-SideScreen\scripts\TestRuntimeReliability.ps1唯一 writer、heartbeat 和超时回归
如何验证
- 2026-09-07T23:24:15Z heartbeat为285/285、failed=0、period=1010 ms、send_ms=22、last_full_frame=180;晚于异常退出恢复时第5帧,发送继续推进。8月31日2748/2748保留为历史。
- 9月7日StreamCadence与RuntimeReliability通过;生产链实测软件启动31.06秒恢复,强制结束watchdog后63.33秒由原VBS接回并确认旧sender退出。
- 套件的TestVideoStream因已有生产流而跳过;来源工程另行完成精确设备下的真实恢复,本人随后确认实体屏正常刷新。command 204仍没有设备逐像素ACK。
与其他模块的关系
安装与换机模块先确认当前串口和本地 runtime(运行环境);本模块接收 renderer 位图,失败由电源与恢复模块处理,实体结果进入分层验收。
