sACN 预览包被当成现场输出,怎样辨认 Preview 与终止标志

2026-10-24

sACN的Preview位和Stream Terminated位表达不同语义,不能把Options整个字节只判断为“非零就有效”。Preview数据用于预览,不应用来产生现场输出;终止标记属于该流生命周期,并不等于给全部灯具发送熄灭值。

先固定输入与适用条件

附件用0x00、0x80、0x40、0xC0四个选项字节,分别拆解两个位。只验证位提取和报告逻辑,没有接收真实流,也没有模拟设备最后保持、退回备用源或熄灯策略。接收器对此的实际状态变化仍需目标版本说明和输出观察。

Art-Net字段按官方4版Release V1.4、Revision 1.4dp核对。sACN例子限定ETC sACN v2.0.2所声明的E1.31-2018兼容字段及IPv4样本;现行ESTA目录已列E1.31-2025,2018亦含IPv6。本文不声称旧库实现新版全部功能。

按字段与边界执行

  1. 保存完整Options原始字节,再分别用0x80与0x40掩码读取。不要因为一个已知位存在,就丢弃其他位或把组合值当成未知错误。

  2. Preview为一时将数据标记为预览用途,不进入本例的现场数据候选集合。可视化应用也要保留该标记,避免转发链误当正式源。

  3. Terminated为一时记录流终止信号,交由接收端生命周期策略处理。单个终止观测不代表已完整验证发送方的终止发送流程。

  4. 把仅预览、仅终止与两位组合分别跑过。现场验收时查看接收应用是否正确区分它们,且没有将流退出自动解释为全系统停演。

用具体样例核对结果

0x00的两个标记都为假;0x80为预览;0x40为终止;0xC0两者同时存在。附件报告对四种输入逐项输出布尔值及“可作为本地普通实时数据候选”标记,只有0x00在这个简化分类中进入候选。脚本并不执行接收器超时、合并或灯光安全状态逻辑。

通过条件是位提取独立、预览不冒充现场输出、终止不被转换为未约定的动作。若现场有“预览画面正常但灯不亮”,这可能恰恰符合Preview用途;不要为了让灯亮而盲清选项。若终止后灯仍保持,应查询接收器的失效策略及其他有效源,不能从这一个字节直接断言它不遵守协议。

下载与复现

analyze.py、input.json、result.json。

input保存原始整数,result给出十六进制、两个标志与分类边界。交接时保留完整包和源CID,避免只发“收到停止了”的主观描述;真实灯光行为仍未在本地验证。

把输入与脚本保存到同一个本地目录后执行 python analyze.py,脚本只读取输入、计算并重写同目录的结果文件。先保留原始附件副本,再将自己的脱敏输入另存为新版本,记录输入摘要与执行日期;不要把合成字段覆盖成看似真实的现场日志。

已用 Python 3.12.4 实际运行附件算法并检查断言。结果来自同目录合成输入;没有接入真实NDI源、控制器、灯具、接收卡或LED屏,不能据此填写现场验收通过。

对接下一步与一级来源

基础背景可看sACN(E1.31)灯光网络协议速查。相关流程收在展厅中控专题;需要项目对接时,带上本文输入及结果向SoftControl核对实际能力。

一级来源核对日期:2026-10-24。原始协议规则、本文原创运算和目标系统行为应分别留证;附件计算正确,不等于设备已经按该参数工作。

需要展厅软硬件方案或定制开发?

加微信,把这一页发到你手机上

扫码加站长企业微信,会自动把这一页的链接发给你。问软件授权、报价,或者现场遇到问题,也可以直接聊。

去留微信

留言讨论

评论发布后会被人工复核,违规内容将被删除。

    还没有人评论,来说说你的看法

    如果发表没有反应,可以前往联系我们告诉我们。

    这个页面有问题?

    提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。