用途与实际影响
这项功能怎样使用
为什么需要它
机箱竖屏很窄,长磁盘名或空闲状态容易挤乱排版;电脑上的预览生成太慢也不该拖住实体刷新。画面首先要让我抬眼看清关键数字和缺失原因。
举个实际例子
磁盘名字长得快能写一行诗、游戏又没启动时,机箱屏仍会把名称、容量和“正在等待帧”排清楚,不让文字互相打架;电脑上的预览偶尔失败,实体屏照样继续刷新。
最后我会得到什么
机箱竖屏上的文字、长磁盘名和没有游戏帧的提示都能清楚排开;电脑预览另供排查,不拖慢实体屏。
正常时
取得当前状态后生成画面并发送,实体是否真更新再看实屏。
发现问题时
新数据慢或缺字段时显示资料变旧,不让整屏冻结。
入口不可用或证据不足时
画面生成失败时停止这次发送,不能拿旧程序的图冒充新画面。
从哪里开始
直接看 480×1920 机箱竖屏;布局或预览异常时在项目 AI 对话中说明哪块信息看不清。
需要准备什么
- 实际屏幕照片或具体区域描述
- 长名称、无游戏帧等现场情况
从开始到拿到结果
- 1
取得本次快照
渲染器读取有来源和时效标记的数据。
- 2
排成可读画面
按竖屏尺寸安排硬件、网络和磁盘等信息,长名称与等待帧状态保持可读。
- 3
看实体更新
软件图可辅助定位,预览失败不阻断实体发送;旧快照继续显示时须看见它已变陈旧。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
9月7日渲染、HTTP与预览回归通过,本人确认TURZX实体屏正常刷新;画廊仍是各自标注日期的预览与历史发送帧关键规则与设计选择
时钟直接在 renderer 内按本地时间生成,不依赖慢快照。
完整 HTTP body 有墙钟 deadline 和 4 MiB 上限。
PNG 预览在低优先级 single-flight(单飞)线程生成,可丢弃但不阻塞发送。
长进程、磁盘和状态有有界布局,不通过缩成不可读小字解决。
本模块用到的名词
- GDI+(Windows 2D 绘图)
- 项目用来绘制固定像素位图的本地图形接口。
- wall-clock deadline(墙钟截止)
- 覆盖 headers 和完整 body 的真实最长等待,而不是只等一个回调。
- single-flight(单飞)
- 同类慢任务未完成时不再排第二份,避免队列堆积。
专业定义
把可信 snapshot(快照)排成适合竖屏远读的时钟、CPU/GPU、FPS、内存、网络、磁盘和进程卡片,并让慢 HTTP 或 PNG 预览不阻塞真实发送。
解决什么
解决窄屏信息层级、长名称溢出、慢 HTTP body、预览编码阻塞和空值误显示。
当前怎样实现
- C# / GDI+ 在固定 480×1920 画布上绘制卡片。
- 指标请求和渲染循环各有 deadline;错误时使用最近好快照。
- renderer 线程与串口 sender 线程使用 AboveNormal / Highest,但绝不使用 Realtime。
- 测试 fixture 生成可重复 PNG,供视觉比较和网站画廊。
执行流程
- 1
请求本地 snapshot。
- 2
验证 body 大小、时效和状态。
- 3
在固定画布布局每一块信息。
- 4
生成位图并交给 transport。
- 5
发送后异步排队诊断 preview。
边界
- 软件 PNG 只证明 renderer 输出,不证明实体屏颜色、刷新或连接。
- 最后好快照可保证画面连续,但必须同时显示新鲜度下降。
- 设计 SVG 和 fixture 不是当前机器遥测。
失败与恢复
- HTTP body 中途停滞
- caller deadline 到期后使用缓存,不等 timer callback。
- 预览文件被锁或编码慢
- 丢弃本轮 preview,不影响串口发送。
- 字段为空或名称过长
- 显示状态或有界换行,不清零或溢出卡片。
真实入口
E:\Projects\Tools\TURZX-SideScreen\tools\turzx_side_screen\TURZX.SideScreen.Renderer.cs位图布局、deadline 与异步预览
E:\Projects\Tools\TURZX-SideScreen\tools\turzx_side_screen\TURZX.SideScreen.Stream.cs快照读取、渲染循环与发送编排
E:\Projects\Tools\TURZX-SideScreen\tools\turzx_side_screen\TestRenderer.ps1固定 fixture 渲染回归
E:\Projects\Tools\TURZX-SideScreen\tools\turzx_side_screen\TestHttpPipeline.ps1HTTP 完整 body 与缓存回归
E:\Projects\Tools\TURZX-SideScreen\tools\turzx_side_screen\design\dashboard-live-render-reference.svg当前布局参考
如何验证
- 9月7日历史 TestRenderer 与 TestHttpPipeline 通过并生成480×1920 PNG;本轮未重新执行。
- preview 文件约 80 KiB,测试输出可重复读取。
- 9月7日本人确认TURZX实体屏正常刷新;本轮没有逐像素拍摄或独立仪表对照,不把可见刷新扩大为所有数据准确。
与其他模块的关系
消费指标模块的快照,把位图交给串口传输;画廊展示其软件输出。
