多发光节点的分布式灯光控制方法和系统
本技术涉及多节点协同控制,特别涉及一种多发光节点的分布式灯光控制方法和系统。
背景技术:
1、随着可编程电子积木、模块化发光玩具的快速发展,出现了多节点协同灯光控制的应用场景,用户可通过图形化或者文本形式编辑场景程序,设定不同的灯效动作、颜色、亮度以及时间逻辑,由控制设备驱动多个物理发光积木节点协同完成复杂灯光演绎。这类系统一般由程序生成终端、中心控制装置以及大量分布式布置的实体发光节点组成,实体发光节点硬件资源有限,存储、运算处理能力较低,难以直接运行复杂上层场景程序,通常需要借助中心控制装置完成指令解析与调度,再向各个发光节点下发灯效控制指令。
2、目前,该类设备主流控制方案主要分为两类,一类是由移动终端直接向各个发光节点逐条下发灯效指令,将图形化场景程序直接解释为客户端定时操作;另一类是将完整脚本整体下发至中心控制器,由控制器解析脚本并执行灯光调度。第一类方案高度依赖通信链路实时可靠性,当节点数量增多、无线链路出现丢包、重传,或者实体发光积木被人为移动、替换、重新布局之后,容易发生动作重复、程序部分执行、控制目标指向错误硬件节点、多节点执行时序不同步等问题。第二类方案虽然将脚本整体下发至控制器,但大多仅依靠简单长度校验完成脚本完整性判断,缺少对脚本传输过程的异常管控,若脚本分片传输出现乱序、重复分片、分片内容冲突、传输中断等情况,存在不完整或者被篡改的脚本被投入运行的风险。
3、现有技术还存在如下技术问题:1)在程序执行前实体布局发生变化时会出现目标漂移,造成实际控制对象与用户预期不符,而广播类灯效又需要在动作启动时动态取得在线节点,目标冻结与广播动态取节点之间存在逻辑矛盾;2)在包含持续时长的灯效以及广播类灯效的运行场景下,容易在新灯效已经生效之后触发,错误关闭已经更新灯效的节点,广播结束执行关闭操作时,还会错误影响广播启动之后才新加入网络的实体节点;3)难以兼顾脚本部署可靠性与多节点灯光协同执行的正确性。
技术实现思路
1、本技术提供一种多发光节点的分布式灯光控制方法和系统,实现脚本可靠传输校验,规避目标漂移,防止旧任务误关闭新的节点灯效。
2、一方面,本技术提供了一种多发光节点的分布式灯光控制方法,所述方法包括:
3、获取包含逻辑目标、灯效动作以及时间参数的场景程序,依据实体发光节点的节点信息将所述逻辑目标映射为真实节点集合,并执行目标冻结以固定本次执行所对应的真实节点集合,得到冻结目标信息,当所述逻辑目标为广播类目标时,保留为广播表示,不在编译阶段冻结具体节点,而在广播动作启动时由中心控制装置动态取得当时在线节点集合;
4、对携带所述冻结目标信息的场景程序执行编译处理得到场景脚本,并将所述场景脚本发送至中心控制装置;
5、所述中心控制装置基于统一起始时间调度所述活动脚本内各灯效动作并向多个实体发光节点下发控制指令,为每一个实体发光节点维护节点效果版本信息;
6、针对具有持续时长的灯效动作,基于所述节点效果版本信息执行灯效关闭控制,使得旧灯效的结束任务不会关闭后续生效的新灯效;
7、针对广播类灯效动作,在广播启动时采集当时在线且符合能力条件的实体发光节点生成广播目标快照,并记录快照中各节点对应的效果版本,广播结束时遍历所述广播目标快照,仅向快照内且当前节点效果版本与快照记录版本一致的节点下发关闭指令,以排除广播启动后加入的节点以及已被新灯效覆盖的节点。
8、另一方面,本技术提供了一种多发光节点的分布式灯光控制系统,用于执行上述多发光节点的分布式灯光控制方法,包括:程序生成终端、中心控制装置以及多个实体发光节点;
9、所述程序生成终端,用于获取场景程序,依据实体发光节点的节点信息完成逻辑目标映射以及目标冻结得到冻结目标信息,编译生成场景脚本并发送至中心控制装置,其中,广播类目标保留为广播表示以供中心控制装置在广播启动时动态取得在线节点集合;
10、所述中心控制装置为独立实体硬件控制器,分别与所述程序生成终端、多个所述实体发光节点通信连接,所述中心控制装置配置有暂存区域和活动脚本存储区,所述中心控制装置被配置为:基于统一起始时间调度活动脚本,向实体发光节点下发灯效控制指令,维护各实体发光节点对应的节点效果版本,依据节点效果版本完成旧灯效结束任务的关闭判断,并在广播启动时采集在线节点生成广播目标快照,广播结束时依据所述广播目标快照排除后加入节点;所述中心控制装置还配置持久化存储区,用于在重启后恢复活动脚本、节点效果版本以及结束任务状态;
11、多个所述实体发光节点为具备发光组件的物理硬件节点,用于接收所述中心控制装置下发的灯效控制指令执行灯效动作,并向中心控制装置返回指令确认信息以及向中心控制装置反馈节点信息。
12、从上述本技术提供的技术方案可知,一方面,通过目标冻结操作,在编译脚本之前就固定本次执行对应的真实节点集合,避免后续实体发光节点布局发生变化带来的目标漂移问题,使得实际受控硬件节点与用户编辑场景程序时设定的控制对象保持一致,为后续脚本编译、传输与调度提供确定的执行对象基础,而对于广播类目标则保留为广播表示并在广播启动时动态取得在线节点集合,既保证了非广播目标的确定性,又满足了广播类灯效需要覆盖当前全部在线节点的动态需求,解决了目标冻结与广播动态取节点之间的逻辑矛盾;另一方面,由中心控制装置接收场景脚本并基于统一起始时间调度各灯效动作,对于同一时刻作用于多节点的动作可通过附带未来执行时刻或广播下发实现节点级同步执行,进一步提升多节点灯光协同的精确性;第三方面,依靠统一起始时间作为各灯效动作的执行基准,有利于多个分布式实体发光节点实现灯光动作协同,维护节点效果版本信息,建立起各个节点灯效状态的可追溯标记,并在节点确认接收或效果实际生效时更新版本且记录版本更新时间,为后续灯效关闭控制提供精确的判断依据,无需在资源有限的发光节点侧维护复杂状态逻辑,降低实体发光节点的运算与存储负担;第四方面,借助节点效果版本区分节点上新、旧灯效,避免旧灯效的结束任务错误关闭后续生效的新灯效,依托广播动作的目标快照限定广播原始受控节点集合,使得广播结束关闭操作仅针对快照内符合条件的节点,能够排除广播启动之后新加入的节点,防止无关节点被错误关闭,提升多节点灯光执行逻辑的正确性;第五方面,通过灯效控制指令确认与重传机制,确保中心控制装置下发的每条灯效指令均被节点可靠接收,通信失败时按策略重试并记录失败信息,关闭指令失败时保持结束任务延后重试,避免因一次通信失败导致节点灯效无法正常关闭;第六方面,通过中心控制装置配置持久化存储区并在重启后恢复活动脚本、节点效果版本以及结束任务状态,解决了hub(即中心控制装置)重启后调度状态丢失的问题,持久化数据损坏时进入安全停止状态并通知程序生成终端,保证了系统的容错能力;第七方面,通过通信中断重连后的状态查询与恢复决策机制,程序生成终端可根据中心控制装置返回的场景状态、活动脚本标识及错误事件决定重新上传、继续执行或终止任务,避免将上传确认误认为灯效已执行完成,同时中心控制装置上报可区分传输、校验、调度和节点总线失败的错误信息,为精准恢复提供依据。综上,本技术的技术方案形成从场景程序输入到多实体发光节点协同灯效输出的完整闭环,在不提升实体发光节点硬件处理负担的前提下,同时实现脚本部署传输的可靠性以及多发光节点灯光协同执行的正确性,并通过节点同步执行、效果版本更新时间记录、指令确认、通信失败处理、hub重启恢复以及异常恢复机制,全面提升了系统在复杂通信环境和异常场景下的可靠性与容错能力。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com