测点数据驱动
2026年8月13日大约 2 分钟
测点数据驱动
三维场景与 2D 组态共用同一套测点驱动模型:画板级绑定一张「测点长表」,各元素按 data-key 消费自己的测点,值变化即时反映为颜色 / 闪烁 / 流动 / 液位 / 点位刷新——无需写代码。
画板级绑定(长表)
scene-3d 的数据组绑两列:
{
"point-key-field": [["conn_pts", "tbl_pts", "测点"]], // 键列(各 1 个字段)
"point-value-field": [["conn_pts", "tbl_pts", "数值"]] // 值列
}数据表每行一个测点(测点=TEMP, 数值=86.5)。任何连接类型(JSON 静态、API、数据库、MQTT/实时……)都可以,值刷新走数据系统统一节奏。
元素级消费
元素填 data-key(与键列的值匹配)后,可叠加以下规则(写在元素选项里,每行一条):
| 规则 | 适用 | 语法 | 效果 |
|---|---|---|---|
state-rules | 形状/拉伸体/文字/标签/标记/光墙/雷达/区域面/线条/光柱/管道/管网/导引线/LED… | 值1|值2=颜色,如 run|1=#22c55e、fault=#ef4444 | 命中即覆盖材质色/文字色/扫描色/整柱换色 |
blink-values | 同上多数元素 | fault|2(多值用 | 分隔) | 命中即 0.5s 频闪(告警强调) |
flow-rules | 管道/飞线/导引线 | 值=on/off/reverse[:速度],如 1=on:1.5、0=off | 命中即控制流动开关/方向/速度 |
| 液位阈值 | 液位罐 | tank-min/max 量程 + tank-low/tank-high 百分比 | 值→液柱高度;低于低阈值变琥珀、高于高阈值变红(可 blink-high 闪烁) |
JSON 整批刷新(批量元素)
以下元素的 data-key 支持测点值为 JSON 数组时整批替换数据(容量内就地刷新零重建):
- 热力图:
[[x,z,值],…]或[{"x","z","value"},…] - 数据点云:
[[x,y,z,值],…] - 图标点位:
[[x,y,z,标签?],…]
配合 scene3dWritePoint 动作(或外部数据源推送)即可实时驱动上百点位换阵形/换分布。
运行层写测点
scene3dWritePoint 动作把值写入运行层(覆盖绑定层同 key,播放会话内生效):
key+value(字面值:数字/true/false 自动转型),或payload-field从触发 payload 取值(支持点路径a.b.c)。- 典型用法:按钮模拟工况(告警/恢复/换文案)、点击设备回写状态。
LED 字幕屏 / 数据看板牌的行值、值标签的显示值,都会随写入即时刷新。
与动作联动改选项
规则驱动之外,scene3dSetOption 动作可运行时改任意元素的任意选项(piece-uid + option + value,JSON 优先解析):日夜切换=改场景 sky-preset、换底图=改瓦片地图 tile-preset、开步行=改相机 walk-enable、换聚字文案=改粒子 fx-text……播放会话内生效、不记历史。