基于灯光控制系统的脚本执行方法及装置与流程

文档序号:19750680发布日期:2020-01-21 19:24阅读:270来源:国知局
基于灯光控制系统的脚本执行方法及装置与流程

本发明涉及灯光控制领域,且特别涉及一种基于灯光控制系统的脚本执行方法及装置。



背景技术:

实现照明的功能性和经济性是城市照明建设的主旨,但随着技术的进步、城市建设理念的进步,城市景观亮化的表现形式上已从原来单一的泛光照明到现在大片区大规模的led多媒体、灯光秀演绎,甚至在局部区域增加了激光、3d以及全息投影等多形态的夜景展现,照明正演变为城市景观。随着网络化及智能化的推进,新一代通信技术与灯光网络协议应用使城市夜景的表现载体多样化,通过光的艺术演绎美化城市、提升城市形象的新手段,渐渐成为城市的新型景观。

在现有的灯光秀控制中,每个灯光的执行动作是被写入主程序中,主程序根据时间轴依次执行,在进行音乐控制的同时下发每个灯光参数至对应的终端灯具,从实现灯光与音乐控制的同步。随着灯光秀技术的不断发展,现有的灯光秀系统非常的庞大,末端灯具的数量以及每个灯具的参数均非常的多。这将导致主程序的规模非常的庞大,运行速度受到很大的影响。



技术实现要素:

本发明为了克服现有灯光秀控制系统中主程序规模庞大,运行速度慢的问题,提供一种在执行速度块且呢过实现高复杂度的灯光变幻的基于灯光控制系统的脚本执行方法及装置。

为了实现上述目的,本发明提供一种基于灯光控制系统的脚本执行方法,其包括:

响应于脚本载入触发请求,从指定路径内获取并载入包含有灯光秀执行动作的脚本文件;

解析载入的脚本文件,获取脚本文件中的时间轴以及与时间轴相关联的动作行并将动作行按照顺序存储于动作区内;

根据时间轴上预定义的时间挂起主执行线程并根据时间轴依次从动作区取出动作行,主执行线程恢复后,载入取出的动作行且每一个动作行启用一个新的线程执行;

从动作行内提取每个动作以及与其对应的参数,将每个动作分发至与对应的执行函数,执行函数获取该动作所需的参数并根据获取的参数执行对应的动作。

根据本发明的一实施例,在解析载入的脚本文件时,根据脚本文件中的每一时间轴创建一动作区并将该时间轴下的动作行存储于该动作区内。

根据本发明的一实施例,在解析载入的脚本文件时,逐行读取脚本文件中的内容并根据预先设定的条件将每行内容划分为注释区、空行区或者动作区。

根据本发明的一实施例,在脚本文件解析获得注释区、空行区以及动作区后进行打包,在脚本执行时从打包后的动作区内获取动作。

根据本发明的一实施例,动作包括末端灯具的开关、颜色、位置以及方向的设置。

根据本发明的一实施例,基于载入触发请求载入脚本文件时,校验指定路径是否存在和指定路径所执行的文件的格式是否为脚本文件格式。

另一方面,本发明还一种基于灯光控制系统的脚本执行装置,其包括脚本载入模块、脚本解析模块、脚本执行模块以及动作执行模块。响应于脚本载入触发请求,脚本载入模块从指定路径内获取并载入包含有灯光秀执行动作的脚本文件。脚本解析模块解析载入的脚本文件,获取脚本文件中的时间轴以及与时间轴相关联的动作行并将动作行按照顺序存储于动作区内。脚本执行模块根据时间轴上预定义的时间挂起主执行线程并根据时间轴依次从动作区取出动作行,主执行线程恢复后,载入取出的动作行且每一个动作行启用一个新的线程执行。动作执行模块从动作行内提取每个动作以及与其对应的参数,将每个动作分发至与对应的执行函数,执行函数获取该动作所需的参数并根据获取的参数执行对应的动作。

根据本发明的一实施例,脚本解析模块包括读取模块、创建模块以及打包模块。读取模块逐行读取脚本文件中的内容并根据预先设定的条件将每行内容划分为注释区、空行区或者动作区。创建模块根据脚本文件中的每一时间轴创建一动作区并将该时间轴下的动作行存储于该动作区内。打包模块在脚本文件解析获得注释区、空行区以及动作区后进行打包。

根据本发明的一实施例,基于灯光控制系统的脚本执行装置还包括校验模块,基于载入触发请求载入脚本文件时,校验模块校验指定路径是否存在和指定路径所执行的文件的格式是否为脚本文件格式。

综上所述,本发明提供的基于灯光控制系统的脚本执行方法及装置将灯光秀动作执行所需要的程序以脚本的形式进行存储。在灯光秀控制时,基于脚本载入请求,将预先存储有灯光秀动作的脚本载入并进行解析以形成动作区。挂起主执行线程并根据时间轴依次从动作区取出动作行;在主执行线程恢复后,载入取出的动作行且每一个动作行启用一个新的线程执行,从而实现终端灯具动作的下发与主执行线程内音频的同步,实现灯光秀的控制。脚本形式的调用大大简化了主执行线程的程序量,降低灯光秀系统资源的使用,大幅度提高了程序的执行速度。

为让本发明的上述和其它目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。

附图说明

图1所示为本发明一实施例提供的基于灯光控制系统的脚本执行方法的流程图。

图2所示为本发明一实施例提供的基于灯光控制系统的脚本执行装置的结构示意图。

具体实施方式

如图1所示,本实施例提供的基于灯光控制系统的脚本执行方法包括:响应于脚本载入触发请求,从指定路径内获取并载入包含有灯光秀执行动作的脚本文件(步骤s10)。解析载入的脚本文件,获取脚本文件中的时间轴以及与时间轴相关联的动作行并将动作行按照顺序存储于动作区内(步骤s20)。根据时间轴上预定义的时间挂起主执行线程并根据时间轴依次从动作区取出动作行,主执行线程恢复后,载入取出的动作行且每一个动作行启用一个新的线程执行(步骤s30)。从动作行内提取每个动作以及与其对应的参数,将每个动作分发至与对应的执行函数,执行函数获取该动作所需的参数并根据获取的参数执行对应的动作(步骤s40)。以下将结合图1详细介绍本实施例提供的基于灯光控制系统的脚本执行方法。

本实施例提供的基于灯光控制系统的脚本执行方法始于步骤s10,在该步骤内基于灯光控制系统的脚本执行装置中的脚本载入模块响应于脚本载入触发请求,从指定路径内载入预先形成的存储有灯光动作的脚本文件。所述脚本载入触发请求和指定路径均设置于主执行线程内。于本实施例中,在基于载入触发请求载入脚本文件时,校验指定路径是否存在以及指定路径所执行的文件的格式是否为脚本文件格式。当指定路径不存在或者指定路径内的脚本文件的格式不正确时则显示载入失败。

脚本文件是一程序文件,该程序文件内除了灯光动作信息外通常还会包括程序撰写者所留下的注释信息以及空行等。在载入脚本文件后,执行步骤s20,需要对载入的脚本文件进行解析,从脚本文件内获取与灯光动控制相关的时间轴和动作行。于本实施例中,脚本文件的解析采用如下方法:

逐行读取脚本文件中的内容;

根据预先设设定的条件判断该行是否为注释行、空行或者时间轴。如果是注释行则将其放入注释区内,如果是空行则放入空行区内;若是时间轴则创建一片动作区并将该时间轴下的动作行按照顺序放入动作区内。然而,本发明对此不作任何限定。对于预先设定给的条件,具体而言:对于注释行而言,在编写脚本的时候会以"#"开头,故预先给定的判断条件为该行的起始字符是否为“#”;若是,则将该行判断为注释行。对于空行而言,判断的条件为起始的n个连续的字符是否均为空格;如果是,则判断该行为空行。然而,本发明对此不作任何限定。于其它实施例中,可采用其它的给定条件进行判断。

为减小数据存储的空间并提高后续动作载入的速度,于本实施例中,在脚本文件解析获得注释区、空行区以及动作区后进行打包,在脚本执行时从打包后的动作区内获取动作。

之后,执行步骤s30,根据时间轴上预定义的时间挂起主执行线程并根据时间轴依次从动作区取出动作行,主执行线程恢复后,载入取出的动作行且每一个动作行启用一个新的线程执行。由于主执行线程内包含了音频和视频的执行程序,为实现灯光控制与音频和视频的同步,在动作载入时,需要将主执行线程在预先设定的时间点挂起。在此期间根据时间轴依次从动作区取出动作行,当主执行线程恢复的时候讲取出的动作行载入且每一个动作行启用一个新的线程执行。新的线程与主执行线程同步执行,从而实现灯光和音频的同步。

对于灯光秀控制而言,每个动作指向一个控制对象,在控制时需要根据参数来对这个对象进行控制。在脚本内容中,每一动作行内封装了某一动作和该动作所对应的参数且该封装的格式是固定的。在步骤s30载入动作行后,执行步骤s40,根据该固定的格式对动作行进行解析,分离动作行内的动作和参数。将分离的动作执行输入至执行函数内,执行函数调用该动作对应的参数以实现灯光的控制。所述动作包括末端灯具的开关、颜色、位置以及方向的设置。然而,本发明对此不作任何限定。

与上述基于灯光控制系统的脚本执行方法相对应的,本实施例还提供一种灯光控制系统的脚本执行装置,其包括脚本载入模块10、脚本解析模块20、脚本执行模块30以及动作执行模块40。响应于脚本载入触发请求,脚本载入模块10从指定路径内获取并载入包含有灯光秀执行动作的脚本文件。脚本解析模块20解析载入的脚本文件,获取脚本文件中的时间轴以及与时间轴相关联的动作行并将动作行按照顺序存储于动作区内。脚本执行模块30根据时间轴上预定义的时间挂起主执行线程并根据时间轴依次从动作区取出动作行,主执行线程恢复后,载入取出的动作行且每一个动作行启用一个新的线程执行。动作执行模块40从动作行内提取每个动作以及与其对应的参数,将每个动作分发至与对应的执行函数,执行函数获取该动作所需的参数并根据获取的参数执行对应的动作。

进一步的,基于灯光控制系统的脚本执行装置还包括校验模块,基于载入触发请求载入脚本文件时,校验模块校验指定路径是否存在和指定路径所执行的文件的格式是否为脚本文件格式。当指定路径不存在或者指定路径内的脚本文件的格式不正确时则显示载入失败。

于本实施例中,脚本解析模20块包括读取模块21、创建模块22以及打包模块23。读取模块21逐行读取脚本文件中的内容并根据预先设定的条件将每行内容划分为注释区、空行区或者动作区。创建模块22根据脚本文件中的每一时间轴创建一动作区并将该时间轴下的动作行存储于该动作区内。打包模块23在脚本文件解析获得注释区、空行区以及动作区后进行打包。

本实施例提供的灯光控制系统的脚本执行装置的工作原理如本实施例中灯光控制系统的脚本执行方法中步骤s10~s40所述,在此不再赘述。

综上所述,本发明提供的基于灯光控制系统的脚本执行方法及装置将灯光秀动作执行所需要的程序以脚本的形式进行存储。在灯光秀控制时,基于脚本载入请求,将预先存储有灯光秀动作的脚本载入并进行解析以形成动作区。挂起主执行线程并根据时间轴依次从动作区取出动作行;在主执行线程恢复后,载入取出的动作行且每一个动作行启用一个新的线程执行,从而实现终端灯具动作的下发与主执行线程内音频的同步,实现灯光秀的控制。脚本形式的调用大大简化了主执行线程的程序量,降低灯光秀系统资源的使用,大幅度提高了程序的执行速度。

虽然本发明已由较佳实施例揭露如上,然而并非用以限定本发明,任何熟知此技艺者,在不脱离本发明的精神和范围内,可作些许的更动与润饰,因此本发明的保护范围当视权利要求书所要求保护的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1