wxpython製作解包工具 三

2021-06-22 09:16:58 字數 1701 閱讀 5601

今天完成解包工具第二版(v0.1.0),相對於最初版本,有兩個變化

1:報文格式寫入xml配置檔案,便於後期修改

2:優化工具功能,刪除新增報文功能

先上介面,整體布局與初版變化較小,刪除報文選擇視窗與對應的圖示:

再說邏輯:

第一步讀取xml配置檔案。xml檔案中需要提供的資訊包括報文的長度、名稱和解釋,並且按照順序排序。在讀取xml檔案時,使用字典和列表儲存報文結構資訊,每個字典的key為報文包的名稱,而字典的value為長度、名稱和解釋組成的列表,程式啟動後首先讀取xml配置檔案,如果檔案錯誤,程式將提示錯誤。xml檔案格式和讀取函式如下:

1

q_updown

資訊傳送的方向 (0=車對地,1=地對車)

7m_version

語言/**版本編號 (0010000=v1.0)

1q_media

資訊傳輸媒介 (0=應答器,1=環線)

3n_pig

本應答器在應答器組中的位置 (000=1,111=8)

第二步,解析報文。這裡將報文分成四類,分別處理。

第一類:順序執行類,包括etcs16、etcs42、etcs45、etcs131、etcs132、etcs254、ctcs3、ctcs4、ctcs5

此類報文只需順序讀取報文結構後填入解析資訊,執行**如下:

第二類:迴圈執行類,包括etcs21、etcs27、ctcs1、ctcs2

此類報文在執行時需要尋找關鍵字「n_iter」,根據解析出來的值進行迴圈解析,**如下:

第三類:判斷+迴圈執行類,包括etcs5、etcs41、etcs46、etcs68、etcs72、etcs79

此類報文在執行時需要除了尋找決定迴圈次數關鍵字的「n_iter」外,還需要針對不同的包尋找各自的關鍵字。

舉個栗子,在解析etcs68包時,當「q_trackinit」值為1時,則解析"d_trackinit"值,並跳過接下來的三個字段「d_trackcond」、「l_trackcond」和"m_trackcond";當「q_trackinit」值為0時,則跳過"d_trackinit",而解析接下來三個欄位的值。此時就需要加入關鍵字判斷函式來決定跳過的步長。**如下:

第四類:也就是中文包etcs44包的處理,其中包含了順序執行(ctcs3、ctcs4、ctcs5)和迴圈執行(ctcs1、ctcs2)

這裡需要做的只是判斷包名,再呼叫相應函式。

製作RPM安裝包工具checkinstall

checkinstall 是乙個能從 tar.gz 類的源 自動生成 rpm debian 或slackware 安裝包的程式 本文環境介紹 本文的示例程式時nagios的外掛程式,目的是把nagios的外掛程式編譯安裝好後壓成乙個rpm包,便於安裝和解除安裝 1 首先安裝checkinstall程...

使用tcpdump抓包工具來捕捉三次握手和四次揮手

目錄 實驗步驟小結 在低年級的時候,老師講計算機網路的時候,對於三次握手和四次揮手過程一知半解,到了現在自己更願意去鑽研這些原理性的東西。你是否曾懷疑過,到底tcp連線是不是如下圖所示這樣,在實際應用中,這又發揮著什麼樣的作用?我們首先要知道什麼是三次握手,什麼是四次揮手。這其實是工作在運輸層的tc...

三維動畫特效渲染製作工具 Houdini 17

功能介紹 1 直觀 藝術家友好的工具 雖然節點是使houdini獨一無二並賦予它力量的原因,但是有許多視口和架子工具可以實現藝術家友好的視 互。在幕後,houdini為您構建節點和網路。houdini讓我們的藝術家探索不同的創意路徑,因為很容易分支出乙個新節點來探索替代解決方案。2 下一級 視覺特效...