CN101110703B - 可定制的命令行实现方法和系统 - Google Patents
可定制的命令行实现方法和系统 Download PDFInfo
- Publication number
- CN101110703B CN101110703B CN2007101277702A CN200710127770A CN101110703B CN 101110703 B CN101110703 B CN 101110703B CN 2007101277702 A CN2007101277702 A CN 2007101277702A CN 200710127770 A CN200710127770 A CN 200710127770A CN 101110703 B CN101110703 B CN 101110703B
- Authority
- CN
- China
- Prior art keywords
- node
- command line
- response message
- command
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种可定制的命令行实现方法和系统,其中,该方法可以包括以下步骤:步骤1,根据用户的要求,在配置文件中定义命令行格式;步骤2,系统启动时,加载配置文件,在内存中生成命令行配置树;步骤3,在收到用户输入的一条命令行时,按照命令行配置树对命令行进行解析以产生命令消息,并得到响应消息处理节点;步骤4,将命令消息发送给目标对象后等待响应消息;以及步骤5,响应消息处理节点处理响应消息,并将结果显示给用户。从而,可以满足不同用户对不同产品的差异性需求,即,用户可以根据自己的习惯定制命令行格式,而不需要修改程序代码。
Description
技术领域
本发明涉及电信系统设备领域,更具体地,涉及一种可定制的命令行实现方法和系统。
背景技术
对电信设备进行数据配置和维护的时候,一般都要提供命令行的方式,这种命令行的操作方式带来了一些问题,首先,从使用角度来看,不同用户对不同产品的操作习惯不同,目前的命令行实现方式很难同时满足这种差异性.从实现的角度而言,通常的实现方式是,每次增加或者修改一条命令,都要修改代码,重新编译和连接,需要进行版本升级等大量的工程维护工作,影响面比较大.此外,代码修改比较频繁,程序也容易出错。
因而,急需一种方案能够基于xm1文件实现电信设备的用户可配置的人机命令。
发明内容
为了解决现有技术中的诸如用户要求增加或者修改一条命令行需要修改版本代码等的问题,本发明提供了一种可定制的命令行实现方法和系统,如果用户要求增加或者修改一条命令行,只需要修改树状配置文件,不需要修改版本代码,就可以满足不同的用户需要。另外本发明的命令行实现方法实现了模块化和通用化,可以作为电信领域的通用的命令行模块。
本发明的一个方面提供了一种可定制的命令行实现方法,其可以包括以下步骤:步骤1,根据用户的要求,在配置文件中定义命令行格式;步骤2,系统启动时,加载配置文件,在内存中生成命令行配置树;步骤3,在收到用户输入的一条命令行时,按照命令行配置树对命令行进行解析以产生命令消息,并得到响应消息处理节点;步骤4,将命令消息发送给目标对象后等待响应消息;以及步骤5,响应消息处理节点处理响应消息,并将结果显示给用户。
其中,配置文件中的每一项对应于命令行配置树中的一个节点,以及配置文件中的每一项的属性值对应于每个节点的节点信息。
节点信息包括以下任一种或组合:节点类型、节点值、节点值在命令中的偏移量、节点占有位、以及帮助信息。节点类型包括:第一层节点、中间层节点、叶节点、以及参数节点。
另外,叶节点还包括对应的响应消息解析节点描述,以及参数节点包括表示参数为可选参数或必选参数的字段。
响应消息处理节点是通过响应消息解析节点描述得到的。
可定制的命令行实现方法还可以包括以下步骤:系统启动后,用户通过系统本身提供的用户扩展命令对命令行的格式实时地修改、增加、删除和存储。
本发明还提供了一种可定制的命令行实现系统,包括:配置模块,用于根据用户的要求,在配置文件中定义命令行格式;持续化模块,用于在系统启动时,加载配置文件,在内存中生成命令行配置树;用户输入输出模块,用于由用户输入命令行;命令行解析模块,用于在收到来自用户输入输出模块的一条命令行时,按照命令行配置树对命令行进行解析以产生命令消息,并得到响应消息处理节点,响应消息处理节点处理响应消息,并将结果显示给用户;以及消息处理模块,用于将命令消息发送给目标对象后等待响应消息。
其中,配置文件中的每一项对应于命令行配置树中的一个节点,以及配置文件中的每一项的属性值对应于每个节点的节点信息。
节点信息包括以下任一种或组合:节点类型、节点值、节点值在命令中的偏移量、节点占有位、以及帮助信息。节点类型包括:第一层节点、中间层节点、叶节点、以及参数节点。
另外,叶节点还包括对应的响应消息解析节点描述,以及参数节点包括表示参数为可选参数或必选参数的字段。响应消息处理节点是通过响应消息解析节点描述得到的。
因而,采用本发明,可以满足不同用户对不同产品的差异性需求,即,用户可以根据自己的习惯定制命令行格式,而不需要修改程序代码。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据本发明的可定制的命令行实现方法的流程图;
图2是本发明中的命令行系统的功能结构图;
图3是本发明中的命令行系统的数据结构图;
图4是根据本发明实施例的执行一条命令的处理过程的流程图;以及
图5是根据本发明的可定制的命令行实现系统的框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明的方法的思想为:
一、事先根据目标用户的习惯,在xm1文件中定义命令行格式.其中对每一个节点定义其属性,比如要修改的目标对象、格式、取值范围、帮助说明、以及对应的回应消息解析节点等;
二、系统启动时,命令行模块加载上面的xm1配置文件,在内存中生成一个命令行配置树;
三、用户输入一条命令行时,按照上面生成的命令行配置树进行匹配,根据匹配结果填充命令行的消息字段.如果匹配不成功,提示错误信息.如果匹配成功,将配置消息通过消息发送模块将命令发送给目标对象,同时等待目标对象的回应,.收到回应消息后,根据匹配的解析节点,对回应消息进行解析,并将解析结果返回给用户界面;以及
四、如果在系统启动之后,系统在运行之中时,用户想增加一条新的命令,或者想修改现有的一条命令格式,为此,本发明的命令行系统本身还提供了几个用户扩展命令,可以用来对命令行的格式实时地修改,增加,删除和存盘.方便用户使用和扩展。
图1是根据本发明的可定制的命令行实现方法的流程图,如图1所示,该方法包括以下步骤:
步骤S102,根据用户的要求,在配置文件中定义命令行格式;
步骤要s104,系统启动时,加载配置文件,在内存中生成命令行配置树;
步骤S106,在收到用户输入的一条命令行时,按照命令行配置树对命令行进行解析以产生命令消息,并得到响应消息处理节点;
步骤S108,将命令消息发送给目标对象后等待响应消息;以及
步骤S110,响应消息处理节点处理响应消息,并将结果显示给用户。
其中,配置文件中的每一项对应于命令行配置树中的一个节点,以及配置文件中的每一项的属性值对应于每个节点的节点信息。
节点信息包括以下任一种或组合:节点类型、节点值、节点值在命令中的偏移量、节点占有位、以及帮助信息。节点类型包括:第一层节点、中间层节点、叶节点、以及参数节点。
另外,叶节点还包括对应的响应消息解析节点描述,以及参数节点包括表示参数为可选参数或必选参数的字段。
响应消息处理节点是通过响应消息解析节点描述得到的。
可定制的命令行实现方法还可以包括以下步骤:系统启动后,用户通过系统本身提供的用户扩展命令对命令行的格式实时地修改、增加、删除和存储。
图2是本发明中的命令行系统的功能结构图,如图2所示,该系统包括:消息通讯模块、命令行解析模块、用户输入模块、以及IO持续化模块。
图3是本发明中的命令行系统的数据结构图,其中,整个命令行为一树型结构,命令行是由一个个的节点组合而成,每个节点都有一些属性,例如,节点类型、对象标识号、命令号。
图4是根据本发明实施例的执行一条命令的处理过程的流程图,以下将参考图2和图3来详细描述图4的过程。
如图4所示,具体处理流程如下:
S402,当系统启动时,IO持续化模块读入xm1配置文件,解析成树状数据结构,xm1中的每一项对应树状结构中的一个节点.xm1中的各个属性值也读入节点信息中,最后生成整个如图3所示的树型数据结构;
S404,用户输入模块开始工作,接收用户的输入;
S406,用户输入模块收到用户的命令行时,发送到解析模块去解析;
S408,解析模块经过解析后,产生命令消息,同时根据叶节点中的响应消息解析节点描述得到对应的响应消息处理节点,通过消息处理模块,发送到目标对象,之后等待响应消息;以及
S410,解析模块收到响应消息后,将消息送到对应的响应消息处理节点去处理,最后将处理结果显示给用户。
其中,节点信息包括如下内容:节点类型、节点值、节点值在命令中的偏移量、节点占用位数、帮助信息等,而叶节点除了上面的字段外,还有对应的响应消息解析节点描述,表示对应的响应消息的解析方法。参数节点还包括一个表示本参数是可选还是必选的字段,表示该参数是必选参数还是可选参数,以及表示值范围的最大和最小值。
以下结合实施例,对上述各步骤进行详细说明。
例如,我们现在要增加一条增加v5接口的命令,命令需要带上两个变量:接口ID和接口变量,要求以一定的消息格式发送给目标对象,假如我们这里定义的消息格式如下:
| OID:8 | Command:16 | V5id:32 | Var:16 |
上面oid表示命令行消息要发送的目标对象,本例中为V5对象(假设为33),command为对目标对象的操作,本例为增加接口(假设为4),v5id为要增加的v5接口的标识号,var为v5接口的变量.上面冒号后面的数字表示各字段占用的比特位数。
假设我们设计的命令行为:V5 inf add id x var y(其中x为要创建的v5id值,y为变量值),则对应的xml配置文件为:
<root type=′node′helpinfo=′v5′>
<v5type=′node′ value=′33′offset=‘1’size=’8’helpinfo=′v5
[inf]′>
<inf type=′node′helpinfo=′v5inf[add]′>
<add type=′leaf value=′4′offset=’2’size=’16’helpinfo
=′id:v5 interface id[0-65535]|var:v5 variable[0-65535]′resultresolve
=″v5command″>
<id type=′int′offset=′3′size=′32′minvalue=′0′
maxvalue=′16777215′option=‘M’/>
<var type=′int′offset=′4′size=′16′minvalue=′0′
maxvalue=′65535′option=‘M’/>
</add>
</inf>
</v5>
<response>
<v5command node=‘leaf’>
<v5idtype=‘int’offset=‘1’size=′32′/>
<result type=‘string’offset=’2’/>
</v5command>
</response>
</root>
上面helpinfo字段为帮助信息。
下面对照图2对此xm1配置进行说明,root根节点下面第一层节点为V5,该节点的信息为:偏移量为1,值为33,占一个字节,实际上就是oid对应的字段.V5节点下面的inf节点为中间节点,inf节点下面为叶节点add,其偏移量为2,值为4,占16比特位,实际上就对应着消息内容中的command字段.叶节点中的resultresolve属性为v5command,表示对命令的响应内容按照response项下的v5command项的描述来进行解析.叶节点add下面为参数节点,id和var分别对应消息内容中的id和var字段,option属性值为M,表示该字段为必选项,在人机命令中必须提供。
因此,接收到用户输入“V5 inf add id x var y”时,解析模块产生的消息内容为:
| 33∶8 | 4∶16 | x:32 | y:16 |
经消息处理对象发送给目标对象,等待响应,收到响应消息后,按照v5command项进行解析,前4个字节为对应的v5id,后面的字节为表示创建结果字符串描述.最后将此结果显示给用户。
图5是根据本发明的可定制的命令行实现系统500的框图。如图5所示,该系统包括:配置模块502,用于根据用户的要求,在配置文件中定义命令行格式;持续化模块504,用于在系统启动时,加载配置文件,在内存中生成命令行配置树;用户输入输出模块506,用于由用户输入命令行;命令行解析模块508,用于在收到来自用户输入输出模块506的一条命令行时,按照命令行配置树对命令行进行解析以产生命令消息,并得到响应消息处理节点,响应消息处理节点处理响应消息,并将结果显示给用户;以及消息处理模块510,用于将命令消息发送给目标对象后等待响应消息。
其中,配置文件中的每一项对应于命令行配置树中的一个节点,以及配置文件中的每一项的属性值对应于每个节点的节点信息。
节点信息包括以下任一种或组合:节点类型、节点值、节点值在命令中的偏移量、节点占有位、以及帮助信息。节点类型包括:第一层节点、中间层节点、叶节点、以及参数节点。
另外,叶节点还包括对应的响应消息解析节点描述,以及参数节点包括表示参数为可选参数或必选参数的字段。响应消息处理节点是通过响应消息解析节点描述得到的。
综上所述,采用本发明的方法和系统,可以满足不同用户对不同产品的差异性需求,即,用户可以根据自己的习惯定制命令行格式,而不需要修改程序代码。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种可定制的命令行实现方法,其特征在于,包括以下步骤:
步骤1,根据用户的要求,在配置文件中定义命令行格式;
步骤2,系统启动时,加载所述配置文件,在内存中生成命令行配置树;
步骤3,在收到所述用户输入的一条命令行时,按照所述命令行配置树对所述命令行进行解析以产生命令消息,并得到响应消息处理节点;
步骤4,将所述命令消息发送给目标对象后等待响应消息;以及
步骤5,所述响应消息处理节点处理所述响应消息,并将结果显示给所述用户。
2.根据权利要求1所述的可定制的命令行实现方法,其特征在于,所述配置文件中的每一项对应于所述命令行配置树中的一个节点,以及所述配置文件中的每一项的属性值对应于每个所述节点的节点信息。
3.根据权利要求2所述的可定制的命令行实现方法,其特征在于,所述节点信息包括以下任一种或组合:节点类型、节点值、节点值在命令中的偏移量、节点占有位、以及帮助信息。
4.根据权利要求3所述的可定制的命令行实现方法,其特征在于,所述节点类型包括:第一层节点、中间层节点、叶节点、以及参数节点。
5.根据权利要求4所述的可定制的命令行实现方法,其特征在于,所述叶节点还包括对应的响应消息解析节点描述,以及所述参数节点包括表示参数为可选参数或必选参数的字段。
6.根据权利要求5所述的可定制的命令行实现方法,其特征在于,所述响应消息处理节点是通过所述响应消息解析节点描述得到的。
7.根据权利要求1所述的可定制的命令行实现方法,其特征在于,还包括以下步骤:
所述系统启动后,所述用户通过所述系统本身提供的用户扩展命令对命令行的格式实时地修改、增加、删除和存储。
8.一种可定制的命令行实现系统,其特征在于,包括:
配置模块,用于根据用户的要求,在配置文件中定义命令行格式;
持续化模块,用于在系统启动时,加载所述配置文件,在内存中生成命令行配置树;
用户输入输出模块,用于由所述用户输入命令行;
命令行解析模块,用于在收到来自所述用户输入输出模块的一条命令行时,按照所述命令行配置树对所述命令行进行解析以产生命令消息,并得到响应消息处理节点,所述响应消息处理节点处理响应消息,并将结果显示给所述用户;以及
消息处理模块,用于将所述命令消息发送给目标对象后等待所述响应消息。
9.根据权利要求8所述的可定制的命令行实现系统,其特征在于,所述配置文件中的每一项对应于所述命令行配置树中的一个节点,以及所述配置文件中的每一项的属性值对应于每个所述节点的节点信息。
10.根据权利要求9所述的可定制的命令行实现系统,其特征在于,所述节点信息包括以下任一种或组合:节点类型、节点值、节点值在命令中的偏移量、节点占有位、以及帮助信息。
11.根据权利要求10所述的可定制的命令行实现系统,其特征在于,所述节点类型包括:第一层节点、中间层节点、叶节点、以及参数节点。
12.根据权利要求11所述的可定制的命令行实现系统,其特征在于,所述叶节点还包括对应的响应消息解析节点描述,以及所述参数节点包括表示参数为可选参数或必选参数的字段。
13.根据权利要求12所述的可定制的命令行实现系统,其特征在于,所述响应消息处理节点是通过所述响应消息解析节点描述得到的。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2007101277702A CN101110703B (zh) | 2007-06-28 | 2007-06-28 | 可定制的命令行实现方法和系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2007101277702A CN101110703B (zh) | 2007-06-28 | 2007-06-28 | 可定制的命令行实现方法和系统 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN101110703A CN101110703A (zh) | 2008-01-23 |
| CN101110703B true CN101110703B (zh) | 2011-11-30 |
Family
ID=39042610
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN2007101277702A Expired - Fee Related CN101110703B (zh) | 2007-06-28 | 2007-06-28 | 可定制的命令行实现方法和系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN101110703B (zh) |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101546264B (zh) * | 2009-04-27 | 2012-08-15 | 成都市华为赛门铁克科技有限公司 | 一种命令行的处理方法、装置和通信系统 |
| CN101841430A (zh) * | 2010-05-05 | 2010-09-22 | 北京星网锐捷网络技术有限公司 | 一种命令行的修正方法及装置 |
| CN101924656B (zh) * | 2010-08-26 | 2013-11-06 | 北京天融信科技有限公司 | 一种基于动态配置的网络设备cli实现方法和装置 |
| CN102857355B (zh) * | 2011-06-27 | 2018-07-13 | 中兴通讯股份有限公司 | 一种消息适配的方法及装置 |
| WO2012095042A2 (zh) | 2012-02-17 | 2012-07-19 | 华为技术有限公司 | 对通信设备中配置命令进行清除的方法和装置 |
| CN103455307B (zh) * | 2012-05-29 | 2018-02-23 | 腾讯科技(深圳)有限公司 | 对命令行输出的信息进行处理的方法和装置 |
| CN102761443B (zh) * | 2012-07-20 | 2018-04-24 | 深圳市驰通达电子有限公司 | 命令行的配置方法及装置 |
| CN103457761B (zh) * | 2013-07-17 | 2017-02-08 | 国家电网公司 | 一种跨平台命令行配置接口的实现方法 |
| CN104461574B (zh) * | 2014-12-23 | 2018-06-19 | 上海斐讯数据通信技术有限公司 | 一种基于xml的命令行处理装置及方法 |
| CN105183507A (zh) * | 2015-08-24 | 2015-12-23 | 汉柏科技有限公司 | 一种应用程序间版本的匹配方法及系统 |
| CN105930138B (zh) * | 2015-12-25 | 2019-05-10 | 中国银联股份有限公司 | 一种消息处理方法及装置 |
| CN105893089B (zh) * | 2016-03-30 | 2019-05-21 | 国云科技股份有限公司 | 一种Linux命令行的封装方法 |
| CN106951250B (zh) * | 2017-03-20 | 2020-09-22 | 苏州浪潮智能科技有限公司 | 一种基于选项标识的指令解析方法及装置 |
| CN111858018B (zh) * | 2019-04-30 | 2023-04-14 | 中移(苏州)软件技术有限公司 | Cgroup配置的方法、装置、计算机设备及存储介质 |
| CN111158770B (zh) * | 2019-12-30 | 2023-01-06 | 联想(北京)有限公司 | 一种配置信息的显示方法、设备及存储介质 |
| CN112463144B (zh) * | 2020-12-02 | 2022-11-11 | 苏州浪潮智能科技有限公司 | 分布式存储的命令行服务方法、系统、终端及存储介质 |
| CN113722009A (zh) * | 2021-08-27 | 2021-11-30 | 上海矽昌微电子有限公司 | 一种参数解析方法、系统、终端设备和存储介质 |
| CN113986390B (zh) * | 2021-10-29 | 2024-01-26 | 烽火通信科技股份有限公司 | 配置文件的生成方法、装置、设备及可读存储介质 |
-
2007
- 2007-06-28 CN CN2007101277702A patent/CN101110703B/zh not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| CN101110703A (zh) | 2008-01-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101110703B (zh) | 可定制的命令行实现方法和系统 | |
| CN100461692C (zh) | 网络设备配置系统和方法 | |
| CN106528129B (zh) | 一种Web应用界面生成系统及方法 | |
| CN106569801A (zh) | 一种基于复杂参数的组态化显控系统 | |
| CN110609906B (zh) | 知识图谱构建方法及装置、存储介质及电子终端 | |
| US20010039540A1 (en) | Method and structure for dynamic conversion of data | |
| CN102708213B (zh) | 一种在pdm系统与erp系统之间实现bom信息传输的方法 | |
| CN112765270B (zh) | 区块链数据处理方法、装置、计算机设备及介质 | |
| CN102567026B (zh) | 移动应用构建系统和移动应用构建方法 | |
| CA2511912A1 (en) | System and method for building and execution of platform-neutral generic services' client applications | |
| CN102110110A (zh) | 基于soa的数据访问方法和装置 | |
| CN105049256A (zh) | 一种通用自定义接口报文实现方法及系统 | |
| CN110889013B (zh) | 一种基于xml的数据关联方法、装置、服务器及存储介质 | |
| CN100505743C (zh) | 通用消息解释器的实现方法 | |
| CN1980144A (zh) | 一种大数据量网管数据快速配置的方法 | |
| CN113839992B (zh) | 设备控制方法及装置 | |
| CN101179444B (zh) | 配置生效方法、配置系统及配置网关 | |
| CN101415170A (zh) | 话单的定制处理方法、装置及系统 | |
| CN114371982A (zh) | 一种模拟测试方法、装置、设备及可读存储介质 | |
| CN111723036A (zh) | 数据处理方法、相关设备及计算机存储介质 | |
| CN101826087A (zh) | 编码信息数据的配置装置、方法 | |
| CN101425079A (zh) | Nv数据处理方法和装置 | |
| CN101286880B (zh) | 管理对象创建方法和装置 | |
| CN100474297C (zh) | 人机语言生成系统及其方法 | |
| CN101227629B (zh) | 支持可扩展标记语言数据接口的实现方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| TR01 | Transfer of patent right | ||
| TR01 | Transfer of patent right |
Effective date of registration: 20200123 Address after: 4819 emperor Avenue, Triangle Park Research Center, Durham, Delaware, USA Patentee after: Open Invention Network Co.,Ltd. Address before: 518057 Nanshan District science and Technology Industrial Park, Guangdong high tech Industrial Park, ZTE building Patentee before: ZTE Corp. |
|
| CF01 | Termination of patent right due to non-payment of annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111130 |