亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于Python實現(xiàn)的查詢軟件平臺控制塊的方法及系統(tǒng)與流程

文檔序號:12824404閱讀:1050來源:國知局

本發(fā)明涉及軟件控制塊查詢領(lǐng)域,具體涉及一種基于python實現(xiàn)的查詢軟件平臺控制塊的方法及系統(tǒng)。



背景技術(shù):

python是一種面向?qū)ο蟮慕忉屝陀嬎銠C程序設(shè)計語言。運行python程序時,不需要像其它語言(例如c語言或者c++語言)必須通過編譯及鏈接等中間步驟,直接執(zhí)行python程序即可。因此python程序具有在不同情況下快速調(diào)整的能力,往往在修改代碼后能立即看到程序修改后的結(jié)果,調(diào)試和修改都非常方便。

控制塊(controlblock)是指各個模塊內(nèi)部的一種數(shù)據(jù)結(jié)構(gòu),用來保存記錄模塊內(nèi)部的數(shù)據(jù)。一般一個模塊內(nèi)部會有大量的控制塊,當控制塊內(nèi)部會鑲嵌其它子控制塊時,控制塊的數(shù)據(jù)會非常復(fù)雜。

現(xiàn)有的查詢控制塊的方法為:通過人工編寫各個控制塊的數(shù)據(jù)的顯示函數(shù)后導(dǎo)入終端進行查詢,上述方法存在以下缺陷:

(1)人工編寫各個控制塊的顯示函數(shù)的工作量較大,不僅工作效率較低,而且可能在編寫過程中出現(xiàn)大量的錯誤,工作精度嚴重不足。

(2)在終端查詢控制塊時,會根據(jù)各個控制塊的顯示函數(shù)查閱對應(yīng)控制塊的部分數(shù)據(jù),當因異常原因(例如查詢過程出現(xiàn)錯誤等)需要查詢指定控制塊的完整數(shù)據(jù)時,需要設(shè)置斷點來進行查詢;而對于協(xié)議模塊而言,一般情況下會有協(xié)議報文交互,因此若設(shè)置斷點時間過長,可能導(dǎo)致因信令超時和協(xié)議斷鄰引發(fā)的其它問題,嚴重影響查詢控制塊的工作質(zhì)量。



技術(shù)實現(xiàn)要素:

針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明解決的技術(shù)問題為:使用一條命令查看控制塊的所有數(shù)據(jù)。本發(fā)明的工作效率、工作精度和工作質(zhì)量均較高。

為達到以上目的,本發(fā)明提供的基于python實現(xiàn)的查詢軟件平臺控制塊的方法,包括以下步驟:

s1:指定待解析模塊的頭文件,轉(zhuǎn)到s2;

s2:使用python程序解析頭文件中的所有控制塊,生成每個控制塊對應(yīng)的回調(diào)函數(shù),轉(zhuǎn)到s3;

s3:制定每個控制塊的查詢命令,將所有控制塊的查詢命令關(guān)聯(lián)至控制塊輸出命令行,轉(zhuǎn)到s4;

s4:將控制塊輸出命令行和所有控制塊的回調(diào)函數(shù)關(guān)聯(lián)后,生成控制塊查詢文件。

本發(fā)明提供的實現(xiàn)上述方法的基于python實現(xiàn)的查詢軟件平臺控制塊的系統(tǒng),包括頭文件解析單元、控制塊回調(diào)函數(shù)生成單元、控制塊命令行制定單元和控制塊查詢文件生成單元;

頭文件解析單元用于:指定待解析模塊的頭文件,向控制塊回調(diào)函數(shù)生成單元發(fā)送控制塊回調(diào)函數(shù)生成信號;

控制塊回調(diào)函數(shù)生成單元用于:收到控制塊回調(diào)函數(shù)生成信號后,使用python程序解析頭文件中的所有控制塊,生成每個控制塊對應(yīng)的回調(diào)函數(shù),向控制塊命令行制定單元發(fā)送控制塊命令行制定信號;

控制塊命令行制定單元用于:收到控制塊命令行制定信號后,制定每個控制塊的查詢命令,將所有控制塊的查詢命令關(guān)聯(lián)至控制塊輸出命令行,向控制塊查詢文件生成單元發(fā)送控制塊查詢文件生成信號;

控制塊查詢文件生成單元用于:收到控制塊查詢文件生成信號后,將控制塊輸出命令行和所有控制塊的回調(diào)函數(shù)關(guān)聯(lián)后,生成控制塊查詢文件。

與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:

與現(xiàn)有技術(shù)中人工編寫各個控制塊的顯示函數(shù)相比,參見s1和s2可知,本發(fā)明通過python程序直接解析頭文件中的所有控制塊,來生成每個控制塊對應(yīng)的回調(diào)函數(shù),無需重新對控制塊進行編碼。因此,不僅顯著提高了回調(diào)函數(shù)生成的工作效率,而且回調(diào)函數(shù)生成時不會出現(xiàn)錯誤,極大的提高了工作精度。

與此同時,參見s3和s4可知,本發(fā)明的所有控制塊的查詢命令會關(guān)聯(lián)至控制塊輸出命令行,控制塊輸出命令行會與所有控制塊的回調(diào)函數(shù)關(guān)聯(lián)。因此,與現(xiàn)有技術(shù)中需要設(shè)置斷點相比,本發(fā)明直接根據(jù)不同控制塊的查詢命令來顯示對應(yīng)控制塊的所有數(shù)據(jù),因此不需要設(shè)置斷點,顯著提高了工作質(zhì)量,不僅可以隨時查詢控制塊,便于定位和維護,而且使用一條命令即可查看控制塊的所有數(shù)據(jù),擴展非常方便。

附圖說明

圖1為本發(fā)明實施例中基于python實現(xiàn)的查詢軟件平臺控制塊的方法的流程圖。

具體實施方式

以下結(jié)合附圖及實施例對本發(fā)明作進一步詳細說明。

參見圖1所示,本發(fā)明實施例中的基于python實現(xiàn)的查詢軟件平臺控制塊的方法,該方法包括以下步驟:

s1:指定待解析模塊的頭文件,轉(zhuǎn)到s2。

s1中以rldf模塊內(nèi)部頭文件rldf.h中的結(jié)構(gòu)體控制塊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程序解析頭文件中的所有控制塊,生成每個控制塊對應(yīng)的回調(diào)函數(shù),轉(zhuǎn)到s3。

s2中解析1個控制塊的具體流程為:

s201:解析控制塊,轉(zhuǎn)到s202;

s202:判斷當前控制塊中是否存在子控制塊,若是,轉(zhuǎn)到s203,否則轉(zhuǎn)到s204;

s203:解析當前控制塊中的所有子控制塊,轉(zhuǎn)到s204;

s204:根據(jù)解析數(shù)據(jù)生成當前控制塊的回調(diào)函數(shù)。

s2以rldf_ilm_ldp_lsp_cb為例,使用python解析后控制塊的回調(diào)函數(shù)rldf_ilm_ldp_lsp_outlog如下,其中rldf_print_cli_cb_info為控制塊每個字段的顯示函數(shù):

s3:制定每個控制塊的查詢命令,將所有控制塊的查詢命令關(guān)聯(lián)至控制塊輸出命令行,轉(zhuǎn)到s4。

s4:將控制塊輸出命令行和所有控制塊的回調(diào)函數(shù)關(guān)聯(lián)后,生成控制塊查詢文件(可執(zhí)行文件),轉(zhuǎn)到s5。

s5:在控制塊查詢文件的控制塊輸出命令行中,輸入控制塊的查詢命令后查詢該控制塊的所有數(shù)據(jù)。以rldf_ilm_ldp_lsp_cb為例,命令行形式showrldfdebugcb1cb_typecb_key其中cb_type為模塊為每個控制塊分配內(nèi)存的索引,rldf_ilm_ldp_lsp_cb的索引值定義為#definemem_rldf_ftn_ldp_lsp_cb0x00000044,十進制數(shù)據(jù)即69,cb_key為控制塊key值,rldf_ilm_ldp_lsp_cb的key值為入標簽,通過轉(zhuǎn)發(fā)表查看為786433,執(zhí)行命令行后顯示信息如下所示。

fh-cr8000#showrldfdebugcb169786433

control-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_sig_protocol=0x00000003(dec:3)

}

in_label(0x41718e70/24)={

flags=0x00000000(dec:0)

pad=0x00000000(dec:0)

len=0x00000004(dec:4)

label(0x41718e78/16)=

0x01000c000x000000000x000000000x00000000}

label_operator=0x00000002(dec:2)

nhlfe_list(0x41718e8c/12)={

next=0x41718e8c(dec:1097961100)

prev=0x41718e8c(dec:1097961100)

self=0x00000000(dec:0)

}

node_type=0x00000003(dec:3)

build_time=0x00000053(dec:83)

dci_block_state(0x41718ea0/60)=

0x000000000x000000000x000000000x00000000

0x000000000x000000000x000000000x00000000

0x000000000x000000000x000000000x00000000

0x000000000x000000000x00000000

nhlfe_dci_block_state(0x41718edc/60)=

0x000000000x000000000x000000000x00000000

0x000000000x000000000x000000000x00000000

0x000000000x000000000x000000000x00000000

0x000000000x000000000x00000000

}

ilm_ldp_lsp_tree_node(0x41718f18/16)={

parent=0x3f8200ec(dec:1065484524)

left=0x00000000(dec:0)

right=0x00000000(dec:0)

l_height=0x00000000(dec:0)

r_height=0x00000000(dec:0)

}

fec_id(0x41718f28/44)={

vrf_id=0x00000000(dec:0)

fec_prefix_len=0x00000020(dec:32)

fec_addr(0x41718f2e/36)={

type=0x00000001(dec:1)

length=0x00000004(dec:4)

pad1=0x00000000(dec:0)

address(0x41718f32/32)=

0x010101010x000000000x000000000x00000000

0x000000000x000000000x000000000x00000000

}

}

}

本發(fā)明實施例提供的實現(xiàn)上述所述方法的基于python實現(xiàn)的查詢軟件平臺控制塊的系統(tǒng),包括頭文件解析單元、控制塊回調(diào)函數(shù)生成單元、控制塊命令行制定單元、控制塊查詢文件生成單元和控制塊數(shù)據(jù)顯示單元。

頭文件解析單元用于:指定待解析模塊的頭文件,向控制塊回調(diào)函數(shù)生成單元發(fā)送控制塊回調(diào)函數(shù)生成信號。

控制塊回調(diào)函數(shù)生成單元用于:收到控制塊回調(diào)函數(shù)生成信號后,使用python程序解析頭文件中的所有控制塊,生成每個控制塊對應(yīng)的回調(diào)函數(shù),向控制塊命令行制定單元發(fā)送控制塊命令行制定信號。

控制塊回調(diào)函數(shù)生成單元生成每個控制塊對應(yīng)的回調(diào)函數(shù)的具體工作流程為:解析控制塊,判斷當前控制塊中是否存在子控制塊,若是,解析當前控制塊中的所有子控制塊后,根據(jù)解析數(shù)據(jù)生成當前控制塊的回調(diào)函數(shù);否則直接根據(jù)解析數(shù)據(jù)生成當前控制塊的回調(diào)函數(shù)。

控制塊命令行制定單元用于:收到控制塊命令行制定信號后,制定每個控制塊的查詢命令,將所有控制塊的查詢命令關(guān)聯(lián)至控制塊輸出命令行,向控制塊查詢文件生成單元發(fā)送控制塊查詢文件生成信號;

控制塊查詢文件生成單元用于:收到控制塊查詢文件生成信號后,將控制塊輸出命令行和所有控制塊的回調(diào)函數(shù)關(guān)聯(lián)后,生成控制塊查詢文件(可執(zhí)行文件)。

控制塊數(shù)據(jù)顯示單元用于:在控制塊查詢文件的控制塊輸出命令行中,輸入控制塊的查詢命令后查詢該控制塊的所有數(shù)據(jù)。

進一步,本發(fā)明不局限于上述實施方式,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍之內(nèi)。本說明書中未作詳細描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1