基于Python实现的查询软件平台控制块的方法及系统技术方案

技术编号:15791667 阅读:182 留言:0更新日期:2017-07-09 21:36
本发明专利技术公开了一种基于Python实现的查询软件平台控制块的方法及系统,涉及软件控制块查询领域。该方法的步骤为:S1:指定待解析模块的头文件;S2:使用Python程序解析头文件中的所有控制块,生成每个控制块对应的回调函数;S3:制定每个控制块的查询命令,将所有控制块的查询命令关联至控制块输出命令行;S4:将控制块输出命令行和所有控制块的回调函数关联后,生成控制块查询文件。本发明专利技术能够使用一条命令查看控制块的所有数据,其工作效率、工作精度和工作质量均较高,非常适于推广。

【技术实现步骤摘要】
基于Python实现的查询软件平台控制块的方法及系统
本专利技术涉及软件控制块查询领域,具体涉及一种基于Python实现的查询软件平台控制块的方法及系统。
技术介绍
Python是一种面向对象的解释型计算机程序设计语言。运行Python程序时,不需要像其它语言(例如C语言或者C++语言)必须通过编译及链接等中间步骤,直接执行Python程序即可。因此Python程序具有在不同情况下快速调整的能力,往往在修改代码后能立即看到程序修改后的结果,调试和修改都非常方便。控制块(ControlBlock)是指各个模块内部的一种数据结构,用来保存记录模块内部的数据。一般一个模块内部会有大量的控制块,当控制块内部会镶嵌其它子控制块时,控制块的数据会非常复杂。现有的查询控制块的方法为:通过人工编写各个控制块的数据的显示函数后导入终端进行查询,上述方法存在以下缺陷:(1)人工编写各个控制块的显示函数的工作量较大,不仅工作效率较低,而且可能在编写过程中出现大量的错误,工作精度严重不足。(2)在终端查询控制块时,会根据各个控制块的显示函数查阅对应控制块的部分数据,当因异常原因(例如查询过程出现错误等)需要查询指定控制块的完整数据时,需要设置断点来进行查询;而对于协议模块而言,一般情况下会有协议报文交互,因此若设置断点时间过长,可能导致因信令超时和协议断邻引发的其它问题,严重影响查询控制块的工作质量。
技术实现思路
针对现有技术中存在的缺陷,本专利技术解决的技术问题为:使用一条命令查看控制块的所有数据。本专利技术的工作效率、工作精度和工作质量均较高。为达到以上目的,本专利技术提供的基于Python实现的查询软件平台控制块的方法,包括以下步骤:S1:指定待解析模块的头文件,转到S2;S2:使用Python程序解析头文件中的所有控制块,生成每个控制块对应的回调函数,转到S3;S3:制定每个控制块的查询命令,将所有控制块的查询命令关联至控制块输出命令行,转到S4;S4:将控制块输出命令行和所有控制块的回调函数关联后,生成控制块查询文件。本专利技术提供的实现上述方法的基于Python实现的查询软件平台控制块的系统,包括头文件解析单元、控制块回调函数生成单元、控制块命令行制定单元和控制块查询文件生成单元;头文件解析单元用于:指定待解析模块的头文件,向控制块回调函数生成单元发送控制块回调函数生成信号;控制块回调函数生成单元用于:收到控制块回调函数生成信号后,使用Python程序解析头文件中的所有控制块,生成每个控制块对应的回调函数,向控制块命令行制定单元发送控制块命令行制定信号;控制块命令行制定单元用于:收到控制块命令行制定信号后,制定每个控制块的查询命令,将所有控制块的查询命令关联至控制块输出命令行,向控制块查询文件生成单元发送控制块查询文件生成信号;控制块查询文件生成单元用于:收到控制块查询文件生成信号后,将控制块输出命令行和所有控制块的回调函数关联后,生成控制块查询文件。与现有技术相比,本专利技术的优点在于:与现有技术中人工编写各个控制块的显示函数相比,参见S1和S2可知,本专利技术通过Python程序直接解析头文件中的所有控制块,来生成每个控制块对应的回调函数,无需重新对控制块进行编码。因此,不仅显著提高了回调函数生成的工作效率,而且回调函数生成时不会出现错误,极大的提高了工作精度。与此同时,参见S3和S4可知,本专利技术的所有控制块的查询命令会关联至控制块输出命令行,控制块输出命令行会与所有控制块的回调函数关联。因此,与现有技术中需要设置断点相比,本专利技术直接根据不同控制块的查询命令来显示对应控制块的所有数据,因此不需要设置断点,显著提高了工作质量,不仅可以随时查询控制块,便于定位和维护,而且使用一条命令即可查看控制块的所有数据,扩展非常方便。附图说明图1为本专利技术实施例中基于Python实现的查询软件平台控制块的方法的流程图。具体实施方式以下结合附图及实施例对本专利技术作进一步详细说明。参见图1所示,本专利技术实施例中的基于Python实现的查询软件平台控制块的方法,该方法包括以下步骤:S1:指定待解析模块的头文件,转到S2。S1中以RLDF模块内部头文件rldf.h中的结构体控制块RLDF_ILM_LDP_LSP_CB为例,该控制块格式信息包含如下字段:typedefstructrldf_ilm_ldp_lsp_cb{RLDF_ILM_CBilm;AVLL_NODEilm_ldp_lsp_tree_node;RLDF_LDP_FEC_KEYfec_id;}RLDF_ILM_LDP_LSP_CB;S2:使用Python程序解析头文件中的所有控制块,生成每个控制块对应的回调函数,转到S3。S2中解析1个控制块的具体流程为:S201:解析控制块,转到S202;S202:判断当前控制块中是否存在子控制块,若是,转到S203,否则转到S204;S203:解析当前控制块中的所有子控制块,转到S204;S204:根据解析数据生成当前控制块的回调函数。S2以RLDF_ILM_LDP_LSP_CB为例,使用Python解析后控制块的回调函数rldf_ilm_ldp_lsp_outlog如下,其中rldf_print_cli_cb_info为控制块每个字段的显示函数:S3:制定每个控制块的查询命令,将所有控制块的查询命令关联至控制块输出命令行,转到S4。S4:将控制块输出命令行和所有控制块的回调函数关联后,生成控制块查询文件(可执行文件),转到S5。S5:在控制块查询文件的控制块输出命令行中,输入控制块的查询命令后查询该控制块的所有数据。以RLDF_ILM_LDP_LSP_CB为例,命令行形式showrldfdebugcb1cb_typecb_key其中cb_type为模块为每个控制块分配内存的索引,RLDF_ILM_LDP_LSP_CB的索引值定义为#defineMEM_RLDF_FTN_LDP_LSP_CB0x00000044,十进制数据即69,cb_key为控制块key值,RLDF_ILM_LDP_LSP_CB的key值为入标签,通过转发表查看为786433,执行命令行后显示信息如下所示。FH-CR8000#showrldfdebugcb169786433Control-BlockAddress:0X41718E2C{ilm(0X41718E2C/236)={srv_cb(0X41718E2C/68)={service_type=0X00000002(DEC:2)fsm_state=0X00000000(DEC:0)lsp_xc_index=0X00000029(DEC:41)self=0X41718E2C(DEC:1097961004)xc_node(0X41718E54/16)={parent=0X3FDA5F90(DEC:1071275920)left=0X00000000(DEC:0)right=0X3F820028(DEC:1065484328)l_height=0X00000000(DEC:0)r_height=0X00000001(DEC:1)}retry=0X00000000(DEC:0)retry_failed=0X00000000(DEC:0)lsp本文档来自技高网...
基于Python实现的查询软件平台控制块的方法及系统

【技术保护点】
一种基于Python实现的查询软件平台控制块的方法,其特征在于,该方法包括以下步骤:S1:指定待解析模块的头文件,转到S2;S2:使用Python程序解析头文件中的所有控制块,生成每个控制块对应的回调函数,转到S3;S3:制定每个控制块的查询命令,将所有控制块的查询命令关联至控制块输出命令行,转到S4;S4:将控制块输出命令行和所有控制块的回调函数关联后,生成控制块查询文件。

【技术特征摘要】
1.一种基于Python实现的查询软件平台控制块的方法,其特征在于,该方法包括以下步骤:S1:指定待解析模块的头文件,转到S2;S2:使用Python程序解析头文件中的所有控制块,生成每个控制块对应的回调函数,转到S3;S3:制定每个控制块的查询命令,将所有控制块的查询命令关联至控制块输出命令行,转到S4;S4:将控制块输出命令行和所有控制块的回调函数关联后,生成控制块查询文件。2.如权利要求1所述的基于Python实现的查询软件平台控制块的方法,其特征在于,S2中解析1个控制块的具体流程为:S201:解析控制块,转到S202;S202:判断当前控制块中是否存在子控制块,若是,转到S203,否则转到S204;S203:解析当前控制块中的所有子控制块,转到S204;S204:根据解析数据生成当前控制块的回调函数。3.如权利要求1所述的基于Python实现的查询软件平台控制块的方法,其特征在于,S4之后还包括以下步骤:S5:在控制块查询文件的控制块输出命令行中,输入控制块的查询命令后查询该控制块的所有数据。4.如权利要求1至3任一项所述的基于Python实现的查询软件平台控制块的方法,其特征在于:S4中所述控制块查询文件为可执行文件。5.一种实现权利要求1至4任一项所述方法的基于Python实现的查询软件平台控制块的系统,其特征在于:该系统包括头文件解析单元、控制块回调函数生成单元、控制块命令行制定单元和控制块查询文件生成单元;头文件解析...

【专利技术属性】
技术研发人员:吴涛方涛蒋玉玲蒋幸韵湘
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1