一种人机命令系统的实现方法及其系统的制作方法

文档序号:6605278阅读:137来源:国知局
专利名称:一种人机命令系统的实现方法及其系统的制作方法
技术领域
本发明涉及软件技术领域,尤其涉及一种人机命令系统的实现方法及其系统。
背景技术
专业嵌入式软件中许多功能是通过人机命令来人工配置系统的一些参数的。人机 命令可以通过串口登陆方式输入,也可以通过TELNET(远程登陆)方式下达或者在后台网 管界面上下达。配置信息一般是以命令的形式下发给嵌入式系统,但实际上所有命令的集合可以 用一个树形的层次结构来表示,目前一般的配置信息是以类文本或者二进制的方式保存。 这种方式不利于人们直观的看出树形结构的层次关系。另外一个方面,随着系统的使用,配置信息不断的增强和扩展,可能需要有新的命 令CMD2来替换老的命令CMD1,然而由于人们的使用习惯使得新的命令不容易推广,很难实 现软件系统的平滑升级。

发明内容
本发明解决的技术问题是提供一种人机命令系统的实现方法及其系统,可实现软 件的平滑升级。为解决上述技术问题,本发明提供了一种人机命令系统的实现方法,所述方法包 括设置命令在不同的运行状态下、和/或不同的软件版本中的权限信息;从命令脚本或从人机界面输入命令后,根据当前的运行状态和该命令的权限信息 决定是否执行该命令。进一步地,所述运行状态包括系统启动阶段和系统正常工作阶段;所述权限信息包括是否可见,以及是否可执行;其中,可见,是指能够通过在线帮助系统得到该命令的帮助信息。进一步地,所述命令的权限信息至少包括如下几种在系统启动阶段和系统正常工作阶段可见可执行的权限P1,在系统启动阶段可执行不可见的权限P2 ;在系统正常工作阶段不可执行可见的权限P3 ;在系统启动阶段和系统正常工作阶段不可执行不可见权限P4。进一步地,所述方法还包括设置命令的升级提示信息,包括该命令将要废止;该命令已经废止;该命令的替代命令。进一步地,当命令不需要升级时,将命令的权限设置为在系统启动阶段和系统正常工作阶段可见可执行的权限Pl ;当命令需要升级时,将命令的权限设置为在系统启动阶段只执行不可见权限P2, 及在系统正常工作阶段不可执行可见的权限P3 ;在命令升级完成后,将命令的权限设置为在系统启动阶段和系统正常工作阶段不 可执行不可见权限P4。进一步地,命令脚本以可扩展标记语言(XML)格式存储于XML脚本文件中,XML脚 本文件中包含命令的所述权限信息和/或所述升级提示信息。进一步地,在系统启动过程中如果检测到有配置文件中有命令更新,则系统在读 取完所有的配置信息后,将以新的命令的格式保存所述配置文件。进一步地,采用动态加载的方法加载配置脚本。本发明还提供了一种人机命令系统的实现系统,所述系统包括XML脚本文件读 取模块、命令结构树控制模块和解释模块,其中所述XML脚本文件读取模块用于,从XML脚本文件读取命令脚本,其中,XML脚本 文件中存储有设置的命令在不同的运行状态下、和/或不同的软件版本中的权限信息;所述命令结构树控制模块用于,根据从XML脚本文件中读取的信息生成命令结构 树,并为解释模块提供命令词法、语法分析的依据;所述解释模块用于,根据所述命令结构树控制模块提供的内容,对从配置文件中 读取或者人机界面输入的命令进行词法分析、语法分析,并根据命令结构树中该命令的权 限信息和当前的运行状态决定是否执行该命令。此外,所述系统还包括执行模块和配置信息数据库,所述解释模块进一步用于,根据所述命令的权限信息和当前的运行状态,若可以 执行则发送消息给所述执行模块,消息中包含执行命令所需要的参数及该命令的权限信 息,并将接收到的执行结果反馈给用户;若不能执行,则根据所述命令的权限信息决定是否 给用户帮助信息和/或升级提示信息;所述执行模块用于,收到所述解释模块发送的消息时,根据所述消息中的参数执 行命令,将执行结果反馈给所述解释模块,并根据所述命令的权限信息从命令结构树控制 模块获得所述命令的相关信息决定是否向所述解释模块反馈帮助信息和/或升级提示信 息;其中,所述运行状态包括系统启动阶段和系统正常工作阶段;所述权限信息包括是否可见,以及是否可执行;可见,是指能够通过在线帮助系统得到该命令的帮助信息。此外,所述解释模块进一步用于,在读取配置文件的过程中如果检测到有需要更 新的命令,则对所述配置文件进行标记,待配置文件中的配置信息读取完成后,按照新的命 令格式更新所述配置文件。此外,所述解释模块进一步用于,按照如下方式控制命令结构树控制模块和XML 脚本文件读取模块读取新的XML脚本文件,并生成新的命令结构树所述解释模块向所述命令结构树控制模块发送消息,使其清空命令结构树;所述解释模块向所述命令结构树控制模块发送消息,使其根据新的XML脚本文件 生成新的命令结构树;
所述命令结构树控制模块向所述XML脚本文件读取模块发消息,控制所述XML脚 本文件读取模块读取新的XML脚本文件。本发明通过给命令绑定不同的权限,使得软件可以平滑升级,既使得老的命令可 以继续使用,又保证了新的命令的推广;既支持软件整体升级,也支持命令脚本的单独在线 升级。此外,本发明中,以XML的形式存储命令脚本,便于命令树形层次关系的查看和命令 脚本的维护。


图1示出了本发明实施例的XML格式配置脚本文件的结构示意图;图2示出了本发明实施例的人机命令实现系统的组成框图;图3示出了本发明实施例的人机命令的处理流程图。
具体实施例方式本发明的主要目的在于,针对现有技术中存在的软件升级等问题,提供一种便于 平滑升级的人机命令系统,其核心思想在于,通过给命令绑定不同的权限,一个命令可以拥 有多种权限,从而在不同的程序运行状态对相同的命令进行不同的处理,既使得老的命令 可以继续使用,又保证了新的命令的推广,从而使得软件可以平滑升级。此外,本发明以 XML (Extensible MarkupLanguage,可扩展标记语言)的形式存储命令脚本,便于命令结构 树形层次关系的查看和命令脚本的维护。基于上述思想,本发明具体采用如下技术方案设置命令在不同的运行状态下、和/或不同的软件版本中的权限信息;从命令脚本或从人机界面输入命令后,根据当前的运行状态和该命令的权限信息 决定是否执行该命令。进一步地,所述的运行状态包括系统启动阶段和系统正常工作阶段。进一步地,所述的权限信息包括是否可见,以及是否可执行;可见,是指能够通过在线帮助系统得到该命令的帮助信息;例如,通过在命令行输入HELP或者‘?’加上命令的关键字,能够看到该命令及其 相关参数的帮助信息。所述的帮助信息可以包括是否能够通过帮助看到该命令,及该命令 的具体参数和是否需要升级等信息。需要指明的是,命令执行后除了实际的执行结果还会有给用户反馈的执行结果 (如执行成功或失败)的信息,而执行后得到的执行结果信息不属于本发明所述的可见信 息的范围。可执行,是指该命令能达到我们输入该命令想要达到的实际的目的。进一步地,所述命令的权限信息至少包括如下几种在系统启动阶段和系统正常工作阶段可见可执行的权限P1,在系统启动阶段可执行不可见的权限P2 ;在系统正常工作阶段不可执行可见的权限P3 ;在系统启动阶段和系统正常工作阶段不可执行不可见权限P4。进一步地,设置命令的升级提示信息,包括
该命令将要废止;该命令已经废止;该命令的替代命令。进一步地,当命令不需要升级时,将命令的权限设置为在系统启动阶段和系统正 常工作阶段可见可执行的权限P1,即该命令既可以通过帮助系统看到该命令,又可以达到 实际的执行效果。进一步地,当命令需要升级时,将命令的权限设置为在系统启动阶段只执行不可 见权限P2,即该命令能够达到实际的执行效果,但却无法通过命令在线帮助得到该命令的 帮助信息。此外,针对该权限P2,在命令执行成功后除了正常的返回信息外,还可以根据需要 给用户升级提示信息,例如会提示用户该命令将要废止等。该权限P2只用于系统启动阶 段。进一步地,在命令需要升级时,还可将命令的权限设置为在系统正常工作阶段不 可执行可见的权限P3,即通过HELP或者‘?’的在线帮助系统会给出帮助信息,但该命令不 会被执行成功。在给出的帮助信息中可以包括该命令的升级提示信息,例如该命令已经废 止,以及可以替代的命令是什么。或者,也可以在输入该命令时自动给出该命令的升级提示 信息,提示用户此命令已经废止,以及可以替代的命令等。该权限P3只用于系统正常工作 阶段。其中,P2、P3权限可用于设置在命令行已经废止但是在软件保存的配置文件中还 存在的命令的权限。一方面,在命令行取消该命令的执行权限,另一方面,需要在系统启动 的时候可以从配置脚本中读取并执行该命令,以保证系统的平滑升级。进一步地,在命令升级完成后,可将老版本中的命令的权限设置为在系统启动阶 段和系统正常工作阶段不可执行不可见权限P4,即该命令不会被执行成功,但通过人机界 面输入该命令后会给出该命令的升级提示信息,例如替代命令的提示信息等。该权限可以 在软件配置中已经不存在老的配置信息,且人员已经熟悉新的替代的命令时候。该权限用 于系统启动和正常运行阶段。需要说明的是,P3和P4两种权限下,系统给出的信息是有区别的,前者是指可见, 即可以通过帮助系统给出帮助信息;而后者则不能通过帮助系统给出帮助信息,系统在命 令执行后会给出另外的升级提示信息。进一步地,命令脚本以XML格式存储于XML脚本文件中,XML脚本文件中包含命令 的所述权限信息和/或所述升级提示信息。进一步地,软件保存配置的时候,对于即将用新的替代命令替换的老命令,以新的 命令行的格式来保存配置。具体地,通过新的配置脚本中某个命令的权限可以判断出该命 令是否是有更新的命令,在系统启动过程中如果检测到有命令更新的情况,则系统读取配 置文件,并将其中涉及到升级的命令以新的命令的格式保存配置文件,从而自动完成配置 文件的升级。进一步地,采用动态加载的方法加载配置脚本,配置脚本可以打包在新的版本文 件中随软件升级一起加载;或者,配置脚本也可以通过单独地替换配置脚本的XML脚本文 件,动态加载到内存中。因此,既支持软件整体升级又支持命令脚本的单独在线升级。
以下将结合附图及具体实施例对本发明技术方案的实施作进一步详细描述。图1示出了本发明实施例的使用XML脚本文件存储命令脚本的示意图,该命令脚 本是个树形的结构,XML的特性使得使用XML存储树形结构的数据有天然的优势。如图1所示,配置脚本XML脚本文件结构具体描述如下command_node_list 下包含一个或多个 command_node (命令节点)。command_ node的属性记录的是命令节点信息,如关键字、帮助、权限、宏等。commancLnode下包含一 个 parameter_list、一个 handler_list 禾口一个 command_node_list。其中 parameter_list 为参数列表,handler_list为处理函数列表,command_node_list为子节点列表。parameter_list下包含一个或多个pd (参数节点),pd的属性记录着一个参数定 义数据,如名称、是否关键字、类型、帮助、动态帮助、动态检验等。handler_list下包含一个或多个hd(处理函数节点),hd的属性记录着一个函数 定义数据,如函数名称、可选必选参数等。需要更新的命令CMD1,其帮助信息中可以包含可 替代命令CMD2的相关信息。图2示出了本发明实施例的人机命令系统的组成框图,该系统主要包括人机界面 交互模块、配置文件读写模块、命令解析模块和执行模块。如图2所示,命令解析模块进一 步可分为XML脚本文件读取模块、命令结构树控制模块、解释模块、数据库模块。其中,各模块实现的功能描述如下人机界面交互模块负责用户输入的读取和系统给用户反馈信息;配置文件读写模块负责从配置文件读取信息和写信息到配置文件;命令解析模块负责解析从命令行和配置文件读取的配置脚本的语义;执行模块负责命令的具体的执行和反馈执行结果给命令解析模块;XML脚本文件读取模块负责从XML脚本文件读取命令脚本以及将更新后的命令 写到XML脚本文件中;其中,设置的命令权限以及升级提示信息存储于XML脚本文件中,通 过使用常见的编辑工具编辑XML脚本文件即可实现。命令结构树控制模块根据从XML脚本文件中读取的信息生成命令结构树;并为 解释模块提供命令词法、语法分析的依据;解释模块根据命令结构树控制模块的内容来解释配置字符串的语义;并根据解 释后的信息调用执行模块执行;在执行模块执行成功后将相关信息存储到配置信息数据库 (数据库)中;配置信息数据库存储实际运行状态时候系统的配置信息。结合图2,本实施例的人机命令系统的处理流程主要包括如下步骤步骤一.启动阶段XML脚本文件读写模块从XML脚本文件读取命令结构信息,读 到命令结构树控制模块;读到该信息后命令结构树控制模块才能配合解释模块进行工作;步骤二 .命令从脚本读取或者从人机界面输入,命令以字符串的形式被发送到解 释模块;步骤三.对于输入的命令,解释模块从命令结构控制模块读取命令的信息,对输 入的命令进行词法分析、语法分析,并根据命令结构树中该命令的执行权限和当前程序的 运行状态决定该命令是否可以执行若可以执行则发送消息给执行模块,消息中包含执行 需要的参数,和命令的权限信息;若不能执行则根据命令结构树控制模块中的权限信息决定是否给用户反馈升级提示信息;其中,在启动阶段读取配置文件的过程中如果检测到有需要更新的命令,解释模 块会对该配置文件进行标记,等待配置信息都读取完成后,按照新的命令格式保存配置,以 完成配置文件的更新;步骤四.执行模块根据解释模块发过来的消息,执行命令,并从命令结构树控制模块获得命令的相关信息(如命令的权限信息),将执行的结果反馈给解释模块;进一步地,该步骤四具体分为a,如果人机界面输入的命令是普通的配置命令,解释模块接收到执行模块反馈的 命令执行成功的消息,发消息给配置信息数据库将配置相关信息写入数据库中,然后解释 模块发消息给相应的人机界面模块或者配置文件读取模块反馈执行的结果;如果命令执行 失败,解释模块直接给人机界面模块或者配置文件读取模块发送执行失败的消息。此外,如 果命令可以执行,则执行模块还需要根据命令结构树中命令的相关信息,将相应的升级提 示信息连同执行结果反馈给解释模块。b,如果人机界面输入的命令为保存配置的命令,则解释模块根据数据库中的配置 信息和命令结构树控制模块中的相关信息,按照新的命令的格式将配置信息写入到配置文 件中,完成配置文件的更新;步骤五.在系统的配置信息读完之后启动过程中如果有命令更新的情况,系统在 读取完所有的配置信息后,自动以新的命令的格式保存配置文件;在软件升级过程中,一般需要软件重新启动。在软件启动过程中,会读取系统的的 配置信息,并解释执行,在解释执行配置信息中的命令的时候,会读取配置脚本中的命令的 信息,包括命令的权限,根据命令的不同权限,可以判断出该命令是否在升级等信息。步骤六.当进行在线XML脚本升级的时候,先通过人机界面把新版本的XML脚本 下载到系统中;然后通过人机界面输入命令,更新命令结构树中的信息,更新命令结构树的 时候,命令结构树禁止其他模块对其访问操作。例如,在设置命令的权限时,初始启动阶段不会有帮助命令出现,也不需要给用户 反馈命令的替代命令等信息。升级软件的时候,如果我们需要用命令CMD2替换命令CMD1, 假设软件的版本分别为VI,V2, V3,那么,在Vl版本中可见可执行权限Pl的命令CMD1,在 V2版本中我们可以赋予其P2+P3的权限,允许其命令在系统开始启动的时候老的配置信息 可以正确的读取执行,在系统启动后可以平滑地推广新的命令。在V3版本中我们可以给 CMDl赋予P4的权限,这个时候配置文件中已经不存在该命令,系统不会对该命令实际执行 成功,但会提示用户升级以后的替代命令。配置脚本的加载采用动态加载的方法,配置脚本可以随软件升级一起加载,配置 脚本也可以通过单独地替换配置脚本的XML脚本文件,动态加载到内存的命令结构树控制 模块中。进一步地,动态加载配置脚本的具体步骤描述如下1、通过人机界面交互模块输入动态加载配置脚本的命令,人机交互模块对输入的 命令进行加工,变成内部可识别的格式后输出给解释模块;2、解释模块对人机交互模块输入的内容在命令结构树中查找,进行词法、语法分 析,确认是动态加载配置脚本的命令后,继续下一步处理;
3、解释模块给执行模块发送指令,将新的配置脚本文件拷贝到设备的非易失存储器中。4、解释模块通过操作系统提供的互斥机制将系统的命令结构树控制模块和XML 脚本文件读取模块进行排他性锁定;5、命令结构树控制模块和XML脚本文件读取模块在解释模块的控制下,读取新的 配置脚本(XML脚本文件),并生成新的命令结构树;6、解释模块解除对命令结构树控制模块和XML脚本文件读取模块进行排他性锁定。其中,上述步骤5进一步可分为如下步骤5. 1、解释模块向命令结构树控制模块发送消息,使其清空命令结构树;5. 2、解释模块向命令结构树控制模块发消息,使其根据新的XML脚本文件生成新 的命令结构树;5. 3、命令结构树控制模块向XML脚本文件读取模块发消息,控制XML脚本文件读 取模块读取新的XML脚本文件。图3示出了本发明实施例中对人机命令的解释处理流程,如图3所示,对命令的解 释具体包括以下内容步骤301、读取字符串配置命令进行词法、语法分析;步骤302、读取一条配置命令进行处理;步骤303、根据分析出的配置命令获取该命令的执行权限;步骤304、判断该命令是否是帮助命令,如果是帮助命令则执行步骤305,否则执 行步骤307 ;步骤305、根据命令的权限判断是否该给出该命令的帮助信息,权限足够(可见) 则执行步骤306 ;权限不够(不可见)则不给出该命令的帮助信息,直接返回步骤302 ;步骤306、显示命令的帮助信息,返回步骤302 ;步骤307、当命令为非帮助性质的命令时候,根据命令的权限和当前程序的状态判 断该命令是否可以执行可以执行则执行步骤308 ;不可以执行的命令直接执行步骤310 ;步骤308、执行该命令,然后继续下一步骤309 ;步骤309、判断程序是否处在启动阶段,如果是启动阶段,不用给用户反馈替换命 令的升级提示信息,直接执行步骤302 ;如果非启动阶段则继续执行步骤310 ;步骤310、查看该命令是否有替代命令的升级提示信息,如果没有则返回步骤 302,如果有替代命令则执行步骤311 ;步骤311、向用户返回替代命令的升级提示信息后,返回步骤302,继续读取下一 条命令进行处理。以上所述仅为本发明优选实施例,并不用于限制本发明,对于本领域的技术人员, 本发明可以有各种更改和变化。凡在本发明精神和原则之内,所作的任何修改、等同替换和 改进等,均包含在本发明的保护范围之内。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令 相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘 等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
权利要求
一种人机命令系统的实现方法,其特征在于,所述方法包括设置命令在不同的运行状态下、和/或不同的软件版本中的权限信息;从命令脚本或从人机界面输入命令后,根据当前的运行状态和该命令的权限信息决定是否执行该命令。
2.如权利要求1所述的方法,其特征在于,所述运行状态包括系统启动阶段和系统正常工作阶段;所述权限信息包括是否可见,以及是否可执行;其中,可见,是指能够通过在线帮助系统得到该命令的帮助信息。
3.如权利要求2所述的方法,其特征在于, 所述命令的权限信息至少包括如下几种在系统启动阶段和系统正常工作阶段可见可执行的权限P1, 在系统启动阶段可执行不可见的权限P2 ; 在系统正常工作阶段不可执行可见的权限P3 ; 在系统启动阶段和系统正常工作阶段不可执行不可见权限P4。
4.如权利要求1所述的方法,其特征在于,所述方法还包括 设置命令的升级提示信息,包括该命令将要废止; 该命令已经废止; 该命令的替代命令。
5.如权利要求3或4所述的方法,其特征在于,当命令不需要升级时,将命令的权限设置为在系统启动阶段和系统正常工作阶段可见 可执行的权限P1 ;当命令需要升级时,将命令的权限设置为在系统启动阶段只执行不可见权限P2,及在 系统正常工作阶段不可执行可见的权限P3 ;在命令升级完成后,将命令的权限设置为在系统启动阶段和系统正常工作阶段不可执 行不可见权限P4。
6.如权利要求1、2、3或4所述的方法,其特征在于,命令脚本以可扩展标记语言(XML)格式存储于XML脚本文件中,XML脚本文件中包含 命令的所述权限信息和/或所述升级提示信息。
7.如权利要求5所述的方法,其特征在于,在系统启动过程中如果检测到有配置文件中有命令更新,则系统在读取完所有的配置 信息后,将以新的命令的格式保存所述配置文件。
8.如权利要求1所述的方法,其特征在于, 采用动态加载的方法加载配置脚本。
9.一种人机命令系统的实现系统,其特征在于,所述系统包括XML脚本文件读取模 块、命令结构树控制模块和解释模块,其中所述XML脚本文件读取模块用于,从XML脚本文件读取命令脚本,其中,XML脚本文件 中存储有设置的命令在不同的运行状态下、和/或不同的软件版本中的权限信息;所述命令结构树控制模块用于,根据从XML脚本文件中读取的信息生成命令结构树,并为解释模块提供命令词法、语法分析的依据;所述解释模块用于,根据所述命令结构树控制模块提供的内容,对从配置文件中读取 或者人机界面输入的命令进行词法分析、语法分析,并根据命令结构树中该命令的权限信 息和当前的运行状态决定是否执行该命令。
10.如权利要求9所述的系统,其特征在于,所述系统还包括执行模块和配置信息数据库,所述解释模块进一步用于,根据所述命令的权限信息和当前的运行状态,若可以执行 则发送消息给所述执行模块,消息中包含执行命令所需要的参数及该命令的权限信息,并 将接收到的执行结果反馈给用户;若不能执行,则根据所述命令的权限信息决定是否给用 户帮助信息和/或升级提示信息;所述执行模块用于,收到所述解释模块发送的消息时,根据所述消息中的参数执行命 令,将执行结果反馈给所述解释模块,并根据所述命令的权限信息从命令结构树控制模块 获得所述命令的相关信息决定是否向所述解释模块反馈帮助信息和/或升级提示信息; 其中,所述运行状态包括系统启动阶段和系统正常工作阶段; 所述权限信息包括是否可见,以及是否可执行; 可见,是指能够通过在线帮助系统得到该命令的帮助信息。
11.如权利要求9或10所述的系统,其特征在于,所述解释模块进一步用于,在读取配置文件的过程中如果检测到有需要更新的命令, 则对所述配置文件进行标记,待配置文件中的配置信息读取完成后,按照新的命令格式更 新所述配置文件。
12.如权利要求9或10所述的系统,其特征在于,所述解释模块进一步用于,按照如下方式控制命令结构树控制模块和XML脚本文件读 取模块读取新的XML脚本文件,并生成新的命令结构树所述解释模块向所述命令结构树控制模块发送消息,使其清空命令结构树; 所述解释模块向所述命令结构树控制模块发送消息,使其根据新的XML脚本文件生成 新的命令结构树;所述命令结构树控制模块向所述XML脚本文件读取模块发消息,控制所述XML脚本文 件读取模块读取新的XML脚本文件。
全文摘要
本发明公开了一种人机命令系统的实现方法及系统,其中所述方法包括设置命令在不同的运行状态下、和/或不同的软件版本中的权限信息;从命令脚本或从人机界面输入命令后,根据当前的运行状态和该命令的权限信息决定是否执行该命令。本发明通过给命令绑定不同的权限,使得软件可以平滑升级,既使得老的命令可以继续使用,又保证了新的命令的推广。
文档编号G06F9/445GK101887375SQ20101021679
公开日2010年11月17日 申请日期2010年6月30日 优先权日2010年6月30日
发明者张晶敏, 朱聃, 简化, 罗小妮, 郭红涛 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1