[發明專利]基于數據庫的動態加載通信協議的測試軟件開發方法有效
| 申請號: | 201811200802.1 | 申請日: | 2018-10-16 |
| 公開(公告)號: | CN109445769B | 公開(公告)日: | 2021-08-06 |
| 發明(設計)人: | 程玉芝;李斌彬 | 申請(專利權)人: | 天津津航技術物理研究所 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30 |
| 代理公司: | 中國兵器工業集團公司專利中心 11011 | 代理人: | 王雪芬 |
| 地址: | 300308 天津*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 數據庫 動態 加載 通信協議 測試 軟件 開發 方法 | ||
1.一種基于數據庫的動態加載通信協議的測試軟件開發方法,其特征在于,包括以下步驟:
(1)建立Access數據庫
首先建立數據包的物理層和傳輸層協議格式數據表A,內容包括數據包編號、串口號、波特率、校驗方式、通信數據的周期性、周期及說明注釋;然后建立數據包的應用層協議格式數據表B,包括幀的數據包編號、數據字編號、數據名稱和相關標識這些基本項;最后建立數據包的數據解析和編碼協議數據表C,包括數據字編號、解碼數據編號、解碼數據當量、解碼數據長度、解碼數據有無符號;三個表建立完成后,通過數據字編號將數據表C關聯到數據表B上,通過數據包編號將數據表B關聯到數據表A上,該Access數據庫作為測試軟件的一個配置項;
(2)將通信協議按照第一步規定的格式填入Access數據庫
每個數據包依次按以下方法操作:將數據包的串口號、波特率、校驗方式、通信數據的周期性、周期及說明注釋寫入數據表A對應的項中,形成數據包的物理層和傳輸層協議記錄;在表A中展開表B,將數據字編號、數據名稱和相應標識寫入表B對應的項中,形成數據包的應用層協議;在表B中展開表C,將數據包中的解碼數據編號、解碼數據當量、解碼數據長度、解碼數據有無符號寫入表C對應的項中,形成數據包的解碼協議;
(3)測試軟件將通信協議從Access數據庫中讀出
a)創建ListCtrl1控件用于數據發送和顯示,創建ListCtrl2控件用于數據接收和顯示;
b)按照步驟1中數據庫表A的格式讀出其中一個數據包的物理層和傳輸層協議放入數據包結構體數組中,并將發送數據包名稱顯示在ListCtrl1控件中,接收數據包名稱顯示在ListCtrl2控件中;
c)讀取表B中該數據包中的字的協議放入數據字結構體數組中,并將數據字名稱顯示在對應的ListCtrl類型控件中,依次排列;
d)最后讀取表C中該字的解析協議放入解碼數據結構體數組中,并將該解碼數據名稱放在ListCtrl類型控件對應的數據字下面,依次排列;
e)返回步驟c,繼續讀該數據包中的下一個字,直至該數據包中的所有字均讀完;
f)返回步驟b,繼續下一個數據包,直至所有數據包均讀完;
(4)串口設置
設置MSComm控件的串口屬性,包括串口號、波特率,校驗方式,這些參數來源于步驟3中讀取的串口號參數;
(5)數據更改
提取ListCtrl1控件中字所在的行或解碼數據所在的行的更改列,產生Edit控件,用戶在此改變字的十六進制值或解碼數據的十進制值,當判斷更改數據所在行為十六進制原碼行時,進行輸入規則判定;當判斷更改數據所在行為十進制解碼數據行時,進行輸入規則判定,違反輸入規則時,拒絕輸入,保持原數據不變,符合規則,則寫入ListCtrl1控件中;
(6)數據編碼和解碼
若更改的是發送數據的十六進制原碼,首先通過字的解析協議結構體中“所在字數量”找到與該原碼共同實現解碼的其它數據字的十六進制原碼,按高地位順序拼接形成最終的十六進制原碼,然后通過該字的解碼協議依次對該字下所有的解碼數據解碼;
若更改的是發送數據的十進制碼,首先通過該字的解碼協議對解碼數據編碼,然后將該編碼再按字的解碼協議解碼,限幅,并將解碼得到的十進制值顯示在ListCtrl1控件該解碼數據所在的行,找到同一字下其它的解碼數據并按照解碼協議編碼,解碼,限幅、顯示,最后按起始位起、數據長度順序拼接構成最終原碼,按照“所在字數量”得到拼接的所有字的十六進制原碼;
接收數據時,按行將數據字的十六進制原碼寫入對應行中,當該字下有解碼數據時,按照字的解碼協議依次對該字下所有的解碼數據解碼;
(7)數據收發與顯示
發送數據時,提取ListCtrl1控件中指令包名稱所在行,依次從需要發送的數據包的包名稱行開始讀取數據字所在的行的十六進制值,放入發送數據包數組,直到該數據包的最后一行,形成發送數據包;并按照該數據包結構體中周期的要求在多媒體定時器響應函數中發送該數據包;
接收數據時,將接收的數據字的十六進制數和解碼數據的十進制數顯示在ListCtrl2控件對應的數據包所在的行。
2.如權利要求1所述的方法,其特征在于,步驟(5)中,當判斷更改數據所在行為十六進制原碼行時,輸入規則為,只允許輸入“0”到“9”和“a”到“f”的字符,超過2位字符則取低兩位。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于天津津航技術物理研究所,未經天津津航技術物理研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811200802.1/1.html,轉載請聲明來源鉆瓜專利網。





