亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        通用報文編解碼與串口測試軟件的研究與實現(xiàn)

        2015-07-02 16:57:31黃偉
        廣西教育·C版 2015年6期
        關(guān)鍵詞:自動化

        黃偉

        【摘 要】為提高串口測試軟件的通用性和靈活性、提高測試效率,提出一種通用報文編解碼與串口測試軟件的實現(xiàn)方案,重點對報文編解碼所涉及的關(guān)鍵技術(shù)進(jìn)行研究。

        【關(guān)鍵詞】串口測試 串行通信 報文編解碼 自動化

        【中圖分類號】 G 【文獻(xiàn)標(biāo)識碼】 A

        【文章編號】0450-9889(2015)06C-0189-02

        在串行通信系統(tǒng)系統(tǒng)的測試工作中,報文協(xié)議是一項非常重要的測試內(nèi)容,需要對各種報文協(xié)議進(jìn)行大量的測試。測試人員在設(shè)計測試用例時針對每個報文協(xié)議手工編制大量的測試報文,再通過串口調(diào)試工具來進(jìn)行串行通信并完成相關(guān)測試,最后根據(jù)報文協(xié)議來人工判讀測試數(shù)據(jù),工作量相當(dāng)繁重。此外,報文協(xié)議的復(fù)雜性、枯燥性,以及重復(fù)性地輸入輸出數(shù)據(jù)給手工測試帶來了很大的困難,大量測試報文的編制和解析更增加了手工測試的難度和出錯率。編寫專用的串口測試程序是提高測試效率和準(zhǔn)確性的有效途徑,但是各類系統(tǒng)的報文協(xié)議種類多、區(qū)別大,使用專用的串口測試程序只能完成特定系統(tǒng)、特定報文協(xié)議的測試任務(wù),無法靈活滿足新系統(tǒng)、新報文協(xié)議的測試需求。

        針對上述問題,本文以提高串口測試軟件的通用性和靈活性、提高測試效率為主要目標(biāo),提出一種通用報文編解碼與串口測試軟件的實現(xiàn)方案,重點對報文編解碼所涉及的關(guān)鍵技術(shù)進(jìn)行研究。

        一、軟件系統(tǒng)組成

        在數(shù)字通信中,一次通信所要傳輸?shù)乃袛?shù)據(jù)稱為報文。待測的串行通信系統(tǒng)各個組成部分以及系統(tǒng)與外界之間必須按照協(xié)議來傳輸報文數(shù)據(jù),因此在對系統(tǒng)進(jìn)行測試的過程中,報文協(xié)議是一項非常重要的測試內(nèi)容,需要進(jìn)行大量的報文編碼、串口調(diào)試及報文解析工作。因此,通用報文編解碼與串口測試軟件總體上由報文元數(shù)據(jù)管理模塊、報文管理模塊、串口測試模塊、報文解析模塊共4個模塊組成。

        報文元數(shù)據(jù)管理模塊主要實現(xiàn)報文系統(tǒng)的元數(shù)據(jù)定義功能。元數(shù)據(jù)(Metadata)是描述數(shù)據(jù)的數(shù)據(jù)(data about data),主要是對數(shù)據(jù)屬性(property)的描述性信息。對于報文系統(tǒng)而言,元數(shù)據(jù)描述了報文協(xié)議的數(shù)據(jù)結(jié)構(gòu)和報文字段的格式。報文元數(shù)據(jù)管理模塊通過友好的用戶界面,讓用戶方便地輸入和維護(hù)待測試報文協(xié)議的報文元數(shù)據(jù)。

        報文管理模塊提供一個直觀的報文編輯界面,根據(jù)指定的報文協(xié)議的元數(shù)據(jù)信息,將數(shù)據(jù)幀結(jié)構(gòu)中各項參數(shù)的具體含義和可選值等信息通過友好的用戶界面呈現(xiàn)給用戶,并根據(jù)用戶設(shè)定的各項參數(shù)值生成十六進(jìn)制的報文數(shù)據(jù)。

        串口測試模塊負(fù)責(zé)將報文管理模塊生成的一條或多條報文數(shù)據(jù)發(fā)送到對應(yīng)的串口,并接收串口的應(yīng)答報文。

        報文解析模塊負(fù)責(zé)解析不同應(yīng)答報文的具體含義,將報文的內(nèi)容和意義直觀展示給用戶。由用戶指定需要解析的應(yīng)答報文以及期望匹配的報文協(xié)議,該模塊根據(jù)報文協(xié)議的元數(shù)據(jù)信息,將十六進(jìn)制的應(yīng)答報文解析為用戶可以理解的報文狀態(tài)參數(shù)值。

        二、關(guān)鍵技術(shù)實現(xiàn)

        (一)數(shù)據(jù)存儲方式。報文元數(shù)據(jù)既可以存儲于XML文件,也可以存儲于關(guān)系型數(shù)據(jù)庫,兩種方式各有利弊:

        1.XML文件隨系統(tǒng)軟件存儲于本地計算機(jī),適合在單機(jī)環(huán)境使用;XML的語法非常適合描述數(shù)據(jù),能清晰地表示數(shù)據(jù)的邏輯結(jié)構(gòu),易于用戶理解,用戶使用操作系統(tǒng)自帶的文本編輯器即可對報文元數(shù)據(jù)進(jìn)行維護(hù)。但報文元數(shù)據(jù)均以明文方式存儲于XML文件之中,缺乏安全性保護(hù)機(jī)制,如果是多用戶共用則可能造成用戶敏感數(shù)據(jù)的泄漏。

        2.關(guān)系型數(shù)據(jù)庫如SQL Server既能有效地存儲報文元數(shù)據(jù),又提供了很好的安全性保護(hù)機(jī)制,適合在單機(jī)環(huán)境和網(wǎng)絡(luò)環(huán)境使用。但是采用關(guān)系型數(shù)據(jù)庫增加了系統(tǒng)部署的工作量和難度,不利于非專業(yè)人員使用。

        本文采用SQLite來存儲報文元數(shù)據(jù)。SQLite是一款輕量級的關(guān)系數(shù)據(jù)庫,具有零配置的特點,無需安裝和管理配置,是存儲在單一磁盤文件中的一個完整的數(shù)據(jù)庫。SQLite可以為數(shù)據(jù)庫文件設(shè)置訪問密鑰,從而實現(xiàn)基本的數(shù)據(jù)安全保護(hù)。由于SQLite既適合在單機(jī)環(huán)境使用,無需安裝和管理配置,又具有關(guān)系型數(shù)據(jù)庫的優(yōu)點,因此是一種比較理想的數(shù)據(jù)存儲方式。如果采用抽象工廠設(shè)計模式,還可以方便的遷移到其他諸如SQL Server等數(shù)據(jù)庫系統(tǒng)以實現(xiàn)C/S模式運(yùn)行。

        (二)報文元數(shù)據(jù)管理。本文研究的串口數(shù)據(jù)幀由幀頭、數(shù)據(jù)及幀尾3部分組成。幀頭標(biāo)記每幀報文的開始,長度和值由串口通信協(xié)議具體定義。數(shù)據(jù)域存放數(shù)據(jù)幀的信息內(nèi)容如方位角、俯仰角,或控制指令如自檢命令、授時命令等。幀尾是整個數(shù)據(jù)域與幀頭的校驗碼,常用的校驗方式有累加和校驗、異或和校驗、循環(huán)冗余校驗等,有的協(xié)議幀尾使用固定的值,甚至沒有幀尾。

        據(jù)此設(shè)計報文元數(shù)據(jù)的存儲結(jié)構(gòu),包括數(shù)據(jù)幀表、幀頭表、數(shù)據(jù)域表、位域表及枚舉值表。具體作用如下。

        1.數(shù)據(jù)幀表:包含某一類報文的描述性名稱,幀頭長度,數(shù)據(jù)域長度以及校驗方式。

        2.幀頭表:存儲某一類報文幀頭各個字節(jié)的描述性名稱和值。

        3.數(shù)據(jù)域表:存儲某一類報文數(shù)據(jù)域的各個數(shù)據(jù)項的描述性名稱、數(shù)據(jù)類型、存儲方式等信息。數(shù)據(jù)項的存儲方式又定義為高中低3個字節(jié)、高低2個字節(jié)、不含位域的1個字節(jié)、包含位域的1個字節(jié)等類型。所謂“位域”是把一個字節(jié)中的8個二進(jìn)位劃分為幾個不同長度的區(qū)域,這樣就可以用一個字節(jié)的二進(jìn)制位域來同時表示幾個信息。如果數(shù)據(jù)項包含位域,還需通過位域表來進(jìn)一步描述各個位域的具體信息。

        4.位域表:存儲組成某個字節(jié)的各個位域的描述性名稱、位域長度、是否提供枚舉值、是否有默認(rèn)值等信息。

        5.枚舉值表:用于創(chuàng)建報文編輯界面的時候,為枚舉型的位域提供輸入選項,如是/否、有效/無效、正常/故障,等等。枚舉值表存儲這些選項的描述性名稱和對應(yīng)位域的二進(jìn)制值。

        (三)報文管理。報文管理模塊主要解決兩個關(guān)鍵問題:一是從報文元數(shù)據(jù)加載指定的報文協(xié)議定義,并動態(tài)生成報文編輯界面;二是用戶根據(jù)用戶在報文編輯界面設(shè)定的各項報文參數(shù),動態(tài)生成十六進(jìn)制的報文數(shù)據(jù)。

        1.動態(tài)生成報文編輯界面。由于不同報文協(xié)議的報文格式、內(nèi)容及長度不一,因此報文編輯界面必須根據(jù)具體的報文協(xié)議來動態(tài)生成。.NET Winform的TableLayoutPanel控件提供了一個表格布局模版,適合以表格形式在窗體上動態(tài)添加控件,表格的行數(shù)也可以根據(jù)報文長度動態(tài)增加。本文使用單選按鈕控件,提供默認(rèn)值、枚舉值及自定義值等選項來給用戶指定各個報文字段的值,單選按鈕控件與其所代表的報文元數(shù)據(jù)的名稱和值(Name-Value)綁定,用戶選中單選按鈕即可將其對應(yīng)的報文字段值顯示在當(dāng)前行。

        2.動態(tài)生成報文數(shù)據(jù)。這是本文所述系統(tǒng)的關(guān)鍵功能,實現(xiàn)的算法是根據(jù)報文元數(shù)據(jù)所定義的字節(jié)和位域順序,在報文編輯界面依次查找和讀取各個報文字段的當(dāng)前值,并將讀取到的十六進(jìn)制或二進(jìn)制值,經(jīng)數(shù)據(jù)轉(zhuǎn)換和重組之后形成一條相對完整的報文。

        對于占1字節(jié)、包含位域的報文字段,程序?qū)⒃撟止?jié)各個位域的二進(jìn)制值,全部拼接成一個8位二進(jìn)制字符串,再轉(zhuǎn)換為十六進(jìn)制值。

        對于占2字節(jié)的報文字段,值范圍為十進(jìn)制數(shù)0~65535,需要程序?qū)τ脩糨斎氲闹颠M(jìn)行數(shù)據(jù)轉(zhuǎn)換,分別提取其十六進(jìn)制表示的高八位和低八位。例如十進(jìn)制數(shù)60110,轉(zhuǎn)換的結(jié)果為0xEA(高八位)、0xCE(低八位)。借助C#語言中StructLayout和FieldOffset特性,可以比較方便的實現(xiàn)相關(guān)的數(shù)據(jù)轉(zhuǎn)換。

        (四)發(fā)送報文。報文管理模塊生成的報文并未包含校驗碼和幀尾,并不是完整的一條報文。在串口測試工作中,校驗碼也是一個重要的測試內(nèi)容,還需要對缺少校驗碼或校驗碼錯誤的情況進(jìn)行測試,如果由報文管理模塊來自動計算出校驗碼,會對后續(xù)的串口測試工作造成不便。因此本文在設(shè)計軟件時,將添加校驗碼和幀尾的工作放在串口測試模塊實現(xiàn)。用戶在窗體上設(shè)定校驗碼為“無、自動計算、隨機(jī)生成錯誤值”三個選項之一,以及指定是否在報文末尾附加固定的幀尾值,報文將按指定的要求附加校驗碼和幀尾之后才被發(fā)送到串口。串口測試模塊還可提供串口參數(shù)設(shè)定、自動定時發(fā)送、接收串口數(shù)據(jù)等功能。

        (五)報文解析。報文解析是報文編碼的逆過程。報文解析模塊有兩種實現(xiàn)方案:一是對串口測試模塊接收到的報文數(shù)據(jù)進(jìn)行實時的解析,二是先保存接收到的報文再進(jìn)行解析。相比之下后者更為合理,因為系統(tǒng)在短時間內(nèi)可能會接收到大量的報文數(shù)據(jù),如果對這些數(shù)據(jù)進(jìn)行實時解析和顯示,界面上信息刷新的速度會非???,用戶可能還沒有看清楚某個報文的具體意義,界面上的信息就已經(jīng)發(fā)生了變化。因此,為了分析測試數(shù)據(jù)的需要,報文解析模塊應(yīng)當(dāng)先保存捕獲到的報文,等到捕獲的報文數(shù)量達(dá)到一定值時自動或手動停止報文的捕獲,然后再開始對報文進(jìn)行分析。

        報文解析模塊根據(jù)報文的數(shù)據(jù)幀格式來讀取通過串口測試模塊接收到的串口數(shù)據(jù),并根據(jù)報文元數(shù)據(jù)的定義,將串口數(shù)據(jù)逐字節(jié)、逐位域的解析還原為有具體含義的報文信息,最后通過友好的界面將報文的內(nèi)容和意義直觀展示給用戶。報文解析功能有助于測試人員觀察待測系統(tǒng)對于測試數(shù)據(jù)的響應(yīng)是否與測試用例的預(yù)期結(jié)果相符,減少了測試人員人工判讀測試結(jié)果的工作量,提高了測試效率和準(zhǔn)確性。

        綜上,本文探討和實現(xiàn)了一種通用報文編解碼與串口測試軟件的實現(xiàn)方案以及涉及的關(guān)鍵技術(shù)。實際應(yīng)用情況表明,該軟件能減輕測試人員的工作量,避免了測試過程中人為的疏忽和錯誤,提高了測試效率和正確率,同時也提高了串口測試軟件的通用性和靈活性。當(dāng)然,該軟件還存在繼續(xù)改進(jìn)的空間,例如可進(jìn)一步朝著自動化測試產(chǎn)品的方向改進(jìn),根據(jù)測試腳本自動生成測試用例,并自動形成測試結(jié)果和報表,最終實現(xiàn)測試過程自動化和測試結(jié)果自動化。

        【參考文獻(xiàn)】

        [1]劉燁,王永斌,劉宏波.報文解析工具中的XML數(shù)據(jù)字典[J].計算機(jī)工程,2009(3)

        [2]陳乃澍,吳國慶.炮兵指揮系統(tǒng)測試的報文通用解析編輯模型[J].火力與指揮控制,2009(6)

        [3]馬賢穎,劉文紅,夏燁.航天測控系統(tǒng)遙控軟件自動化測試仿真平臺研究[J].系統(tǒng)仿真學(xué)報,2014(4)

        [4]董延杰,宋朝輝,陳靜.嵌入式軟件串口通信自動化測試工具的研究[J].自動化應(yīng)用,2014(10)

        [5]曹佳佳. 應(yīng)答器報文編譯碼的研究與設(shè)計[J]. 科技信息,2012(1)

        [6]侯高雷,黃明山,李志華. 基于C~#的終端自動化測試系統(tǒng)設(shè)計與實現(xiàn)[J]. 現(xiàn)代電子技術(shù),2012(2)

        [7]張婷婷.基于.NET的RS-232高效串口調(diào)試程序設(shè)計與實現(xiàn)[J].計算機(jī)光盤軟件與應(yīng)用,2012(17)

        【作者簡介】黃 偉(1979- ),男,廣西隆安人,碩士,南寧職業(yè)技術(shù)學(xué)院軟件技術(shù)專業(yè)帶頭人,講師。

        (責(zé)編 黎 原)

        猜你喜歡
        自動化
        國內(nèi)焊接設(shè)備市場現(xiàn)狀及發(fā)展趨勢研究
        供電企業(yè)電力自動化主站系統(tǒng)研究
        錦界煤礦連采膠帶機(jī)集控系統(tǒng)的介紹
        供熱站自動控制系統(tǒng)中PLC的應(yīng)用
        AGV小車在白酒行業(yè)自動化立體倉庫中的應(yīng)用
        中國市場(2016年36期)2016-10-19 03:40:15
        電氣工程及其自動化問題與對策
        我國機(jī)械設(shè)計制造及其自動化的現(xiàn)狀及發(fā)展趨勢
        淺論節(jié)能設(shè)計理念在機(jī)械制造與自動化中的應(yīng)用
        簡析火力發(fā)電廠熱工自動化儀表應(yīng)用及故障排除方法
        配網(wǎng)自動化實用化模式建設(shè)及系統(tǒng)運(yùn)行
        久久超碰97人人做人人爱 | 熟妇人妻av中文字幕老熟妇| 国产日韩欧美在线| av熟女一区二区久久| 91色区在线免费观看国产| 精品国产三级a∨在线| 日本韩无专砖码高清| 久久精品国产亚洲AV高清y w| av免费一区二区久久| 亚洲欧洲成人精品香蕉网| 最近日本中文字幕免费完整| 在线观看亚洲你懂得| 亚洲av无吗国产精品| 欧洲美女熟乱av| 中文字幕乱码在线人妻| 日韩精品无码一本二本三本色| 熟妇五十路六十路息与子| 国产精品国产三级国产在线观 | 国产av一区二区三区区别| 精品国产一区二区三区av新片| 99在线精品免费视频| 日产无人区一线二线三线新版| 超清无码AV丝袜片在线观看| 国产黄色一区二区在线看 | 少妇仑乱a毛片| 在线不卡av天堂| 亚洲无人区乱码中文字幕| 日韩五码一区二区三区地址| 人妻少妇乱子伦无码视频专区| 国产又色又爽无遮挡免费动态图| 国产AV无码专区亚洲AWWW| 加勒比日韩视频在线观看 | 青青草精品视频在线播放| 男同gay毛片免费可播放| 人妻被猛烈进入中文字幕| 亚洲熟女av在线观看| 亚洲国产精品美女久久| 人人爽人人爱| 午夜无码无遮挡在线视频| 中文字幕亚洲精品在线| 无码一区二区三区亚洲人妻|