CN106951250B - 一种基于选项标识的指令解析方法及装置 - Google Patents
一种基于选项标识的指令解析方法及装置 Download PDFInfo
- Publication number
- CN106951250B CN106951250B CN201710165612.XA CN201710165612A CN106951250B CN 106951250 B CN106951250 B CN 106951250B CN 201710165612 A CN201710165612 A CN 201710165612A CN 106951250 B CN106951250 B CN 106951250B
- Authority
- CN
- China
- Prior art keywords
- instruction
- option
- analysis
- request
- module
- 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.)
- Active
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000004806 packaging method and process Methods 0.000 claims description 11
- 238000005538 encapsulation Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于选项标识的指令解析方法及装置,该方法包括:接收用户下发的指令;依据指令名字progname和操作名字verbname查询到指令对应的操作option;依据操作option中定义的标识选项进行指令选择解析,得到解析结果。该方法实现提高指令扩展的易用性。
Description
技术领域
本发明涉及软件架构技术领域,特别是涉及一种基于选项标识的指令解析方法及装置。
背景技术
目前,在软件架构中,针对指令的处理架构都是固定的架构,当需要后续新增指令扩展时,需要编写新的扩展指令,重新构建信的指令处理架构,这样重新构建指令处理架构的过程非常繁琐,指令处理架构的易用性较低,没有实现模块化编程,不能满足软件架构的产品的特定需求,一旦有新的产品需求如指令扩展,则需要重新构建整个软件架构,重新构建针对指令的处理架构,易用性较低。
发明内容
本发明的目的是提供一种基于选项标识的指令解析方法及装置,以实现提高指令扩展的易用性。
为解决上述技术问题,本发明提供一种基于选项标识的指令解析方法,该方法包括:
接收用户下发的指令;
依据指令名字progname和操作名字verbname查询到指令对应的操作option;
依据操作option中定义的标识选项进行指令选择解析,得到解析结果。
优选的,依据操作option中定义的标识选项进行指令选择解析,得到解析结果之后,还包括:
依据解析结果封装需求request,对封装后的需求request进行指令解析处理。
优选的,所述对封装后的需求request进行指令解析处理,包括:
依据封装后的需求request中的task_id信息从模板table中获取模板对象;
依据模板对象中存储的控制域field对封装后的需求request进行匹配解析。
优选的,所述依据模板对象中存储的控制域field对封装后的需求request进行匹配解析之后,还包括:
解析完毕后,依据task_id信息查询指令接口handle。
本发明还提供一种基于选项标识的指令解析装置,用于实现上述基于选项标识的指令解析方法,包括:
接收模块,用于接收用户下发的指令;
查询模块,用于依据指令名字progname和操作名字verbname查询到指令对应的操作option;
解析模块,用于依据操作option中定义的标识选项进行指令选择解析,得到解析结果。
优选的,所述装置还包括:
封装模块,用于依据解析结果封装需求request,对封装后的需求request进行指令解析处理。
优选的,所述封装模块包括:
模板对象获取单元,用于依据封装后的需求request中的task_id信息从模板table中获取模板对象;
匹配解析单元,用于依据模板对象中存储的控制域field对封装后的需求request进行匹配解析。
优选的,所述封装模块还包括:
查询单元,用于解析完毕后,依据task_id信息查询指令接口handle。
本发明所提供的一种基于选项标识的指令解析方法及装置,接收用户下发的指令;依据指令名字progname和操作名字verbname查询到指令对应的操作option;依据操作option中定义的标识选项进行指令选择解析,得到解析结果。可见,提供了一种依据option选型标识进行解析封装的指令处理策略,主要实现为单个指令由独立的数据结构维护,使得指令封装与解析流程模块化,具备很好的维护性及扩展性,如此新增指令以模块形式融入软件架构,实现模块化编程,基于指令标识选型进行选项解析具备很高的易用性,便于后续新增指令扩展,提高易用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明所提供的一种基于选项标识的指令解析方法的流程图;
图2为指令解析过程具体流程图;
图3为本发明所提供的一种基于选项标识的指令解析装置的结构示意图。
具体实施方式
本发明的核心是提供一种基于选项标识的指令解析方法及装置,以实现提高指令扩展的易用性。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明所提供的一种基于选项标识的指令解析方法的流程图,该方法包括:
S11:接收用户下发的指令;
S12:依据指令名字progname和操作名字verbname查询到指令对应的操作option;
S13:依据操作option中定义的标识选项进行指令选择解析,得到解析结果。
可见,该方法提供了一种依据option选型标识进行解析封装的指令处理策略,主要实现为单个指令由独立的数据结构维护,使得指令封装与解析流程模块化,具备很好的维护性及扩展性,如此新增指令以模块形式融入软件架构,实现模块化编程,基于指令标识选型进行选项解析具备很高的易用性,便于后续新增指令扩展,提高易用性。
进一步的,步骤S13之后,还包括:依据解析结果封装需求request,对封装后的需求request进行指令解析处理。
进一步的,对封装后的需求request进行指令解析处理的过程具体为:依据封装后的需求request中的task_id信息从模板table中获取模板对象;依据模板对象中存储的控制域field对封装后的需求request进行匹配解析。
进一步的,依据模板对象中存储的控制域field对封装后的需求request进行匹配解析之后,还包括:解析完毕后,依据task_id信息查询指令接口handle。
本方法提供了一种依据option选型标识进行解析封装的指令处理策略,主要实现为单个指令由独立的数据结构维护,包括选项内容、模板内容、选项标识、选型描述等部分,使得指令封装与解析流程模块化,具备很好的维护性及扩展性。
本方法主要处理流程为:用户下发设置/查询指令,首先依据progname(指令名字)verbname(操作名字)查询对应操作option,因为所有指令的操作option均由一个全局的table进行维护。查询成功后,依据该指令对应option定义的标识选型进行指令选项解析进而依据解析结果封装对应request;将request发送至处理模块便进入指令解析处理阶段,该阶段通过task_id从模板table中获取对应指令的模板对象,进而依据模板中存储的控制域field对接收的request进行匹配解析,解析完毕可依据task_id获取对应task_handle进而进入具体的指令执行阶段。本方法新增指令以模块形式融入软件架构,实现模块化编程,并且基于指令标识选型进行选项解析具备很高的易用性。
本方法从软件架构上来讲,针对每个独立的指令,采用独立的头文件进行维护,内部包含指令数据结构、指令选项描述结构、指令选项模板、模板table以及定义的其他关键数据结构。
模块初始化模块数据结构中只需要定义公共控制域,其他采用#include策略添加对应指令头文件方式进行新增。指令新增实例代码如下:
由于指令头文件包含各个阶段所需数据结构对象,需要针对性隔离编译,采用常规条件编译策略即可,模块条件编译代码如下:
#ifdef FUNC_XX
{CMD_NAME,CMD_SIZE,NULL};
#endif
其中指令选项描述结构主要用于指令解析封装阶段,用于分析指令选项的类型、长度、内容等信息为后续分析解析提供更好的便利性;指令选项模板以及模板table对象主要用于指令解析处理阶段,主要用于匹配解析选项进而依据解析选项内容查询对应处理handle,从而完成整个指令的处理工作。
本方法依据产品需求定义,采用新型指令处理架构,主要目的为便于后续新增指令扩展而设计的一套易用性架构,更好的实现模块化编程思路,进而满足产品特定需求。
详细的,本发明主要包含指令解析封装和指令解析处理两个阶段,其中指令解析封装阶段主要分为构建option,解析指令选项以及构建request,option构建方法如下:
数据结构:
具体指令实现(cmd_funcx.h):
指令解析封装阶段用到的选项结构,其中SD_OPTIONx为对应的选项标识
指令解析阶段主要分为获取模板,依据模板解析选项,template构建方法如下:
模板数据结构:
具体指令模板结构(cmd_funcx.h):
如图2所示,为总体流程图,用户下发设置/查询指令,首先校验指令progname、verbname,查看是否支持该指令,然后从option table中获取对应该指令的option信息,进而依据该指令事先定义的SD信息确认指令各个参数域,待指令解析完成后构建对应指令request,通过发送接口发送至处理模块,处理模块接收到request,依据request中的task_id信息从template table中提取对应该指令的template信息,提取成功后,依据template中事先存储的field信息校对request中的SD对应的field信息,校验成功后通过task_id查询对应的指令handle接口进行处理,执行完毕即完成整个指令执行流程。
参考图3,图3为本发明所提供的一种基于选项标识的指令解析装置的结构示意图,用于实现上述基于选项标识的指令解析方法,该装置包括:
接收模块101,用于接收用户下发的指令;
查询模块102,用于依据指令名字progname和操作名字verbname查询到指令对应的操作option;
解析模块103,用于依据操作option中定义的标识选项进行指令选择解析,得到解析结果。
可见,该装置中采用了一种依据option选型标识进行解析封装的指令处理策略,主要实现为单个指令由独立的数据结构维护,使得指令封装与解析流程模块化,具备很好的维护性及扩展性,如此新增指令以模块形式融入软件架构,实现模块化编程,基于指令标识选型进行选项解析具备很高的易用性,便于后续新增指令扩展,提高易用性。
基于上述装置,进一步的,所述装置还包括:封装模块,用于依据解析结果封装需求request,对封装后的需求request进行指令解析处理。
进一步的,封装模块包括:
模板对象获取单元,用于依据封装后的需求request中的task_id信息从模板table中获取模板对象;
匹配解析单元,用于依据模板对象中存储的控制域field对封装后的需求request进行匹配解析。
进一步的,封装模块还包括:查询单元,用于解析完毕后,依据task_id信息查询指令接口handle
以上对本发明所提供的一种基于选项标识的指令解析方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (4)
1.一种基于选项标识的指令解析方法,其特征在于,包括:
接收用户下发的指令;
依据指令名字progname和操作名字verbname查询到指令对应的操作option;
依据操作option中定义的标识选项进行指令选择解析,得到解析结果;
其中,还包括:
根据指令选项描述结构分析指令选项的类型、长度和内容;其中,所述指令选项描述结构为指令头文件的数据结构;
其中,依据操作option中定义的标识选项进行指令选择解析,得到解析结果之后,还包括:依据解析结果封装需求request,对封装后的需求request进行指令解析处理;
其中,所述对封装后的需求request进行指令解析处理,包括:
依据封装后的需求request中的task_id信息从模板table中获取模板对象;
依据模板对象中存储的控制域field对封装后的需求request进行匹配解析。
2.如权利要求1所述的方法,其特征在于,所述依据模板对象中存储的控制域field对封装后的需求request进行匹配解析之后,还包括:
解析完毕后,依据task_id信息查询指令接口handle。
3.一种基于选项标识的指令解析装置,其特征在于,包括:
接收模块,用于接收用户下发的指令;
查询模块,用于依据指令名字progname和操作名字verbname查询到指令对应的操作option;
解析模块,用于依据操作option中定义的标识选项进行指令选择解析,得到解析结果;
其中,还包括:
用于根据指令选项描述结构分析指令选项的类型、长度和内容的模块;其中,所述指令选项描述结构为指令头文件的数据结构;
封装模块,用于依据解析结果封装需求request,对封装后的需求request进行指令解析处理;
其中,所述封装模块包括:
模板对象获取单元,用于依据封装后的需求request中的task_id信息从模板table中获取模板对象;
匹配解析单元,用于依据模板对象中存储的控制域field对封装后的需求request进行匹配解析。
4.如权利要求3所述的装置,其特征在于,所述封装模块还包括:
查询单元,用于解析完毕后,依据task_id信息查询指令接口handle。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710165612.XA CN106951250B (zh) | 2017-03-20 | 2017-03-20 | 一种基于选项标识的指令解析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710165612.XA CN106951250B (zh) | 2017-03-20 | 2017-03-20 | 一种基于选项标识的指令解析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106951250A CN106951250A (zh) | 2017-07-14 |
CN106951250B true CN106951250B (zh) | 2020-09-22 |
Family
ID=59472984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710165612.XA Active CN106951250B (zh) | 2017-03-20 | 2017-03-20 | 一种基于选项标识的指令解析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951250B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110703A (zh) * | 2007-06-28 | 2008-01-23 | 中兴通讯股份有限公司 | 可定制的命令行实现方法和系统 |
CN103365709A (zh) * | 2012-04-01 | 2013-10-23 | 北京北方微电子基地设备工艺研究中心有限责任公司 | Recipe管理方法和系统以及半导体设备控制系统 |
CN103544131A (zh) * | 2013-10-12 | 2014-01-29 | 深圳市欧克蓝科技有限公司 | 一种可动态配置矢量处理架构 |
CN105354034A (zh) * | 2015-11-17 | 2016-02-24 | 贵阳朗玛信息技术股份有限公司 | 应用程序的页面跳转方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159760B (zh) * | 2007-10-24 | 2011-09-21 | 中兴通讯股份有限公司 | 基于xml数据交换文件实现通讯协议的方法及系统 |
US8966441B2 (en) * | 2012-07-12 | 2015-02-24 | Oracle International Corporation | Dynamic scripts to extend static applications |
JP5980037B2 (ja) * | 2012-08-06 | 2016-08-31 | キヤノン株式会社 | 管理システム、サーバー、クライアント、及びその方法 |
CN105204848B (zh) * | 2015-08-27 | 2018-08-14 | 深圳创维-Rgb电子有限公司 | 使用二进制程序进行功能固化并提供服务的方法及系统 |
-
2017
- 2017-03-20 CN CN201710165612.XA patent/CN106951250B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110703A (zh) * | 2007-06-28 | 2008-01-23 | 中兴通讯股份有限公司 | 可定制的命令行实现方法和系统 |
CN103365709A (zh) * | 2012-04-01 | 2013-10-23 | 北京北方微电子基地设备工艺研究中心有限责任公司 | Recipe管理方法和系统以及半导体设备控制系统 |
CN103544131A (zh) * | 2013-10-12 | 2014-01-29 | 深圳市欧克蓝科技有限公司 | 一种可动态配置矢量处理架构 |
CN105354034A (zh) * | 2015-11-17 | 2016-02-24 | 贵阳朗玛信息技术股份有限公司 | 应用程序的页面跳转方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106951250A (zh) | 2017-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461516B (zh) | 一种数据处理方法和装置 | |
CN108304172B (zh) | 一种web开发方法及web开发引擎 | |
CN101159760B (zh) | 基于xml数据交换文件实现通讯协议的方法及系统 | |
WO2020199423A1 (zh) | Yang模型配置界面的自动化构建方法及系统 | |
CN107153535B (zh) | 一种操作ElasticSearch的方法及装置 | |
CA2569820A1 (en) | A method for portable plc configurations | |
CN102521409B (zh) | 一种基于通信协议的数据库数据批量更新方法 | |
US10445079B2 (en) | Mapping and formatting input commands to a third party protocol | |
CN106933869B (zh) | 一种操作数据库的方法和装置 | |
WO2012126301A1 (zh) | 一种消息发送、接收处理的方法及其装置 | |
CN112214516A (zh) | 数据序列化和反序列化的方法及装置 | |
CN103780624A (zh) | 一种面向复杂系统的通用应用层网络通信协议应用方法 | |
CN114218906A (zh) | 基于Vue的表格数据格式化组件实现方法 | |
PL1964042T3 (pl) | Sposób przygotowania karty inteligentnej dla usług podpisu elektronicznego | |
CN109086147A (zh) | 应用程序的服务接口调用方法、装置及存储介质 | |
CN102377506A (zh) | 测试报文处理系统 | |
CN106951250B (zh) | 一种基于选项标识的指令解析方法及装置 | |
CN107301067A (zh) | 基于iap技术的北斗用户机远程升级系统及其升级方法 | |
US20140085486A1 (en) | Information processing terminal, information processing method, and apparatus control system | |
CN106843855B (zh) | 一种汇总文件的打包方法及装置 | |
CN105005678B (zh) | 资源交换平台获取角色信息的方法和装置 | |
CN106227688A (zh) | 一种兼容多模式的目标机软件维护通信方法 | |
CN105302557A (zh) | 线程建立及处理的方法及装置 | |
CN104836639A (zh) | 一种可传输多种算法参数的数据传输方法 | |
CN113377362B (zh) | 一种电控端私有协议解析的源代码自动生成与适配方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200827 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |