命令管理装置及其命令管理方法

文档序号:6485960阅读:186来源:国知局
命令管理装置及其命令管理方法
【专利摘要】本发明提供一种命令管理装置,包括:注册模块,其用于注册命令的元素,对注册的元素进行解析,确定所述注册的命令的参数,并保存所述注册的命令的参数;接收模块,其用于接收输入的命令,其中,所述输入的命令包括至少一个元素;处理模块,其用于判断输入的所述命令中的元素与注册的所述命令的元素是否匹配,如果相匹配,则使用所述注册的命令。相应地,提供一种命令管理方法。本发明使用注册的方式进行命令的采集,便于命令的维护与扩展。
【专利说明】命令管理装置及其命令管理方法
【技术领域】
[0001]本发明涉及计算机处理系统【技术领域】,尤其涉及一种命令管理装置及其命令管理方法。
【背景技术】
[0002]随着计算机处理系统技术的发展,目前出现了许多各种类型的计算机处理系统应用,例如,嵌入式系统。应用嵌入式系统的嵌入式设备,例如,电视机顶盒、电梯、公交卡刷卡机、自动取款机、KTV点唱机、全自动洗衣机等。在嵌入式设备中,为了更好更高效地控制设备,尤其是那些没有n (用户界面)的设备,命令行的操作就显得至关重要,而命令行的操作直接与嵌入式设备里的命令行管理方法相关。
[0003]现有的命令行管理方法通常是把所有的命令放在若干个数组中,然后配上执行函数(例如,可参见发表于《今日电子》2009年第8期的文章“智能命令行设计及其在SOPC系统中的应用”)。这种方法很简单,但是比较死板,不能够处理比较复杂的情况,不适合命令的扩展,命令很多,层次很多时就容易产生冲突。此外,这种方法不方便维护,具体来讲,很容易在多个程序员开发不同模块时产生命令重复定义的冲突,给维护带来很大成本。

【发明内容】

[0004]为了解决上述问题,本发明提供一种命令管理装置及其命令管理方法,以实现更简单、更高效的命令管理方式。
[0005]为了实现以上目的,本发明提供的命令管理装置包括:
[0006]注册模块,其用于注册命令的元素,对注册的元素进行解析,确定所述注册的命令的参数,并保存所述注册的命令的参数;
[0007]接收模块,其用于接收输入的命令,其中,所述输入的命令包括至少一个元素;
[0008]处理模块,其用于判断输入的所述命令中的元素与注册的所述命令的元素是否匹配,如果相匹配,则使用所述注册的命令。
[0009]优选的是,所述注册的命令的参数包括以下至少之一:元素的顺序、该命令的功能和该命令的应用范围。
[0010]进一步优选的是,所述注册的命令的功能定义在该命令的回调函数中,所述使用所述注册的命令的处理包括:调用所述注册的命令的回调函数。
[0011]优选的是,将所述注册的命令的参数保存在以下之一:树结构、文件列表。
[0012]优选的是,所述注册模块还用于注册视图,所述视图表示命令层次。
[0013]优选的是,如果所述注册的命令的参数保存在树结构中,则保存所述注册的命令的参数的处理包括:
[0014]将所述注册的命令的参数保存在一颗树中,其中,一棵树表示一个视图,其树结构的根节点为视图对象,根节点的子节点为视图对象或命令对象,命令对象节点的子节点为命令元素对象,所述视图对象表示命令的层次,所述命令对象表示命令元素的顺序。[0015]进一步优选的是,每个命令对象节点和作为其子节点的命令元素对象构成二叉树。
[0016]本发明同时提供一种命令管理方法,包括:
[0017]注册命令的元素,对注册的元素进行解析,确定所述注册的命令的参数,并保存所述注册的命令的参数;
[0018]重复执行以下处理:
[0019]接收输入的命令,其中,所述输入的命令包括至少一个元素;
[0020]判断输入的所述命令中的元素与注册的所述命令的元素是否匹配,如果相匹配,则使用所述注册的命令。
[0021]优选的是,所述方法还包括:
[0022]在注册的命令的回调函数中定义该命令的功能;
[0023]所述使用所述注册的命令的处理包括:调用所述注册的命令的回调函数。
[0024]优选的是,所述注册命令的元素的处理还包括注册视图,所述视图表示命令层次。
[0025]优选的是,如果所述注册的命令的参数保存在树结构中,则保存所述注册的命令的参数的处理包括:
[0026]将所述注册的命令的参数保存在一颗树中,其中,一棵树表示一个视图,其树结构的根节点为视图对象,根节点的子节点为视图对象或命令对象,命令对象节点的子节点为命令元素对象,所述视图对象表示命令的层次,所述命令对象表示命令元素的顺序。
[0027]本发明的技术效果如下:
[0028](I)命令管理方式灵活,方便命令的参数的扩展,适用于那些需要强大命令行支持的设备,例如交换机和路由器;
[0029](2)由于采用命令注册方式,而不是采用集中式的方式管理,所以方便计算机处理系统中的其它软件模块自己管理自己的命令,也方便开发人员自己维护自己命令,再也不用将所有命令放到一起去维护,杜绝了命令的重复定义,因此便于维护,而且维护成本低;
[0030](3)命令查找快,效率高。
【专利附图】

【附图说明】
[0031]图1是根据本发明实施例的命令管理装置的结构图;
[0032]图2是根据本发明实施例的命令注册步骤的流程图;
[0033]图3是根据本发明实施例的树结构的示图;
[0034]图4是根据本发明实施例的命令处理步骤的流程图。
【具体实施方式】
[0035]以下,将参照附图和实施例对本发明进行描述。
[0036]总地来讲,本发明提供的命令管理装置包括注册模块、接收模块和处理模块。其中,注册模块用于注册命令的元素,对注册的元素进行解析,确定所述注册的命令的参数,并保存所述注册的命令的参数。接收模块用于接收输入的命令,其中,所述输入的命令包括至少一个元素。处理模块用于判断输入的所述命令中的元素与注册的所述命令的元素是否匹配,如果相匹配,则使用所述注册的命令。[0037]这里,所述注册的命令的参数包括以下至少之一:元素的顺序、该命令的功能和该命令的应用范围。注册的命令的功能可定义在该命令的回调函数中,在使用注册的命令时,调用该命令的回调函数即可。注册的命令的参数可保存在树结构、文件列表等数据结构中。此外,注册模块还可用于注册视图,这里,视图表示命令层次。
[0038]以下将结合具体实施例对本发明的具体实现进行详细描述。在本实施例中,注册命令的参数保存在树结构中,并将注册命令的功能定义在相应命令的回调函数中。
[0039]图1是根据本发明实施例的命令管理装置的结构图。如图1中的虚线框所示,该命令管理装置包括注册模块1、接收模块2和处理模块3。
[0040]注册模块I可进一步包括命令注册接口 11、语法解析模块12和树结构建立模块13,其中,命令注册接口 11用于注册命令的元素、元素的顺序、回调函数和应用范围;语法解析模块12用于对注册的命令进行语法解析;树结构建立模块13用于根据解析结果建立树结构。
[0041]命令注册接口 11又可进一步包括命令元素对象接口 111、命令对象接口 112和视图对象接口 113,其中,命令元素对象接口 111用于注册命令的元素;命令对象接口 112用于注册命令元素的顺序和回调函数;和视图对象接口 113用于注册视图,所述视图表示命令层次。具体来讲,在本发明中,为了方便管理,将命令分成很多层次,例如接口层或管理层,将每个层次定义为一个视图,不同的视图表示不同的命令层次。
[0042]在本实施例中,一颗树表不一个视图(即,一个命令层次),其树结构的根节点为视图对象,根节点的子节点为视图对象或命令对象,命令对象节点的子节点为命令元素对象。
[0043]以下,将给出本实施例的一个具体示例。
[0044]在本不例中,利用Lex (Lexical Complier)工具和 Yacc (YetAnother ComplierComplier)工具来注册命令和对接收的命令进行处理。由于Lex工具和Yacc工具是本领域技术人员公知的技术,因此,本文省略其描述。
[0045]此外,在本示例中,将使用以下几个概念:
[0046](I) Cmo (command object):命令元素对象,用来表示命令的基本元素;
[0047](2) Cmd(command):命令对象,一条条的命令叫做Cmd,—般情况下一组命令由一个个Cmd组成,一个Cmd由若干个Cmo组成;
[0048](3) View:视图对象,不同的视图代表不同的命令的不同应用范围,主要是方便用户了解正在操作的对象范围。
[0049]相应地,命令元素对象接口 111为Cmo接口,命令对象接口 112为Cmd接口,视图对象接口 113为View接口。
[0050]图2是本示例的由注册模块I执行的命令注册步骤的流程图。
[0051]如图2所示,首先,在步骤S201中,根据所需要使用的命令编写Yacc语法分析脚本,然后用Yacc工具生成相应的C语言文件,即,语法分析器。这里,需要注意:(I)与Lex的配合使用,具体来讲,要注意函数的相互调用;(2)与C代码的结合,这里所述的词法分析主要是完成词汇模式(或者常规表达式)的解析,解析结果给建立树结构提供依据,因此,在Yacc脚本中,C语言的部分要将解析结果提供给树结构建立函数。
[0052]接着,在步骤S202中,通过Cmo接口注册Cmo对象。
[0053]例如命令ping ipAddress,这条命令由两个Cmo组成,其中类型为关键字的ping和类型为ip地址的ipAddress。按照命令元素的顺序进行注册,例如,将先注册的元素标示为$1,后注册的元素标示为$2,依次类推。Cmo的类型是在Lex脚本中定义的,部分定义如下表1所示。
[0054]表1
【权利要求】
1.一种命令管理装置,包括: 注册模块,其用于注册命令的元素,对注册的元素进行解析,确定所述注册的命令的参数,并保存所述注册的命令的参数; 接收模块,其用于接收输入的命令,其中,所述输入的命令包括至少一个元素; 处理模块,其用于判断输入的所述命令中的元素与注册的所述命令的元素是否匹配,如果相匹配,则使用所述注册的命令。
2.根据权利要求1所述的装置,其特征在于,所述注册的命令的参数包括以下至少之一:元素的顺序、该命令的功能和该命令的应用范围。
3.根据权利要求2所述的装置,其特征在于,所述注册的命令的功能定义在该命令的回调函数中,所述使用所述注册的命令的处理包括:调用所述注册的命令的回调函数。
4.根据权利要求1所述的装置,其特征在于,将所述注册的命令的参数保存在以下之一:树结构、文件列表。
5.根据权利要求1所述的装置,其特征在于,所述注册模块还用于注册视图,所述视图表示命令层次。
6.根据权利要求4所述的装置,其特征在于,如果所述注册的命令的参数保存在树结构中,则保存所述注册的命令的参数的处理包括: 将所述注册的命令的参数保存在一颗树中,其中,一棵树表示一个视图,其树结构的根节点为视图对象,根节点的子节点为视图对象或命令对象,命令对象节点的子节点为命令元素对象,所述视图对象表示命令的层次,所述命令对象表示命令元素的顺序。
7.根据权利要求6所述的装置,其特征在于,每个命令对象节点和作为其子节点的命令元素对象构成二叉树。
8.一种命令管理方法,包括: 注册命令的元素,对注册的元素进行解析,确定所述注册的命令的参数,并保存所述注册的命令的参数; 重复执行以下处理: 接收输入的命令,其中,所述输入的命令包括至少一个元素; 判断输入的所述命令中的元素与注册的所述命令的元素是否匹配,如果相匹配,则使用所述注册的命令。
9.根据权利要求8所述的方法,其特征在于,还包括: 在注册的命令的回调函数中定义该命令的功能; 所述使用所述注册的命令的处理包括:调用所述注册的命令的回调函数。
10.根据权利要求8所述的方法,其特征在于,所述注册命令的元素的处理还包括注册视图,所述视图表示命令层次。
11.根据权利要求8所述的方法,其特征在于,如果所述注册的命令的参数保存在树结构中,则保存所述注册的命令的参数的处理包括: 将所述注册的命令的参数保存在一颗树中,其中,一棵树表示一个视图,其树结构的根节点为视图对象,根节点的子节点为视图对象或命令对象,命令对象节点的子节点为命令元素对象,所述视图对象表示命令的层次,所述命令对象表示命令元素的顺序。
【文档编号】G06F9/46GK103488524SQ201210194062
【公开日】2014年1月1日 申请日期:2012年6月13日 优先权日:2012年6月13日
【发明者】郭锐 申请人:北大方正集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1