999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向航天軟件的半實物仿真測試平臺構建

2022-04-28 08:28:04劉會穎任紅彬顏明會劉紫陽
大眾科技 2022年2期
關鍵詞:設備

劉會穎 任紅彬 顏明會 劉紫陽

面向航天軟件的半實物仿真測試平臺構建

劉會穎任紅彬顏明會劉紫陽

(北華航天工業學院,河北 廊坊 065000)

為了進一步提高軟件自動化測試程度,降低在人力、時間的成本投入,并切實提高航天軟件測試質量和效率,文章以Qt為開發框架,實現一個基于半實物的仿真測試平臺,該平臺設計實現了半自動化測試以及用戶自定義測試模式,旨在為地面測發控軟件提供半實物仿真的測試環境。通過測試,該平臺可在Windows系統上穩定運行,滿足對航天軟件可靠、高效、便捷的測試需求。

自動化測試;Qt;半實物;仿真;半自動化測試

引言

隨著航天技術的快速發展,航天軟件愈加復雜,智能化、集成化程度不斷提高,軟件間交互模式和交互類型更加多樣化。此外,研制周期逐漸縮短,軟件迭代愈加頻繁,這些都對軟件的測試提出了更多的要求和新的挑戰。

半實物仿真是航空航天領域中應用較為廣泛的仿真技術,能夠實現在不做任何實物的條件下對航天軟件進行測試,很大程度上節省了測試成本。航天軟件測試的復雜程度大多取決于它的保密性,半實物仿真技術對解決由于設備涉密而無法在真實測試中拿到真正的被測件時有切實的幫助。

目前應用于航天軟件中的仿真平臺僅支持各類設備之間的通信功能,不具備數據延遲處理、數據發送觸發方式、數據分析、數據類型設定等能力。仿真平臺利用以太網實現遠程通信,傳統的軟件開發方法是利用Socket套接字來編寫程序,套接字本身比較復雜,難以掌握和使用[1]。本文探討了利用Qt實現半實物仿真測試平臺,旨在為地面測發控軟件提供半實物仿真的測試環境。

1 平臺結構與功能設計

1.1 系統底層工具介紹

Qt是一款跨平臺的面向對象的界面設計框架,支持在當前主流操作系統中的正常運行且支持多語言編程,目前通過Qt還衍生了Qt Designer/ Creator等優秀產品。Qt為使用者提供了已完成的封裝庫,通過信號槽機制連接按鍵及需要調用的函數,使得各部分的銜接工作更加簡便,可以讓使用者進行更高效率的開發[2]。

Qt Creator是一款簡單易用的開發工具,版本不斷地更新使Qt Creator的功能更加豐富強大,支持跨平臺運行,使得開發人員能更加容易地在不同的運行環境下完成開發任務[3]。

1.2 系統功能設計

結合對被測件的了解以及平臺需要支持的特性,對平臺的功能進行整體的設計。平臺的功能主要包括能夠完成三種類型的地面測發控軟件的創建,一是對連接的被測件進行通信測試;二是建立觸發半自動化測試技術的命令字;三是添加不同發送類型,發送模式的回令信息。具體的功能如圖1所示。

半實物仿真測試平臺實現三種通信接口,模擬PLX、箭地系統等多種地面測發控軟件,為被測件與外圍設備交互提供可靠的通信環境。簡單來講,所有模擬的軟件都可以被認為是服務端,用來接收并解析被測件發出的數據,而被測件可通俗地認為是不同通信的客戶端,這樣解釋外圍設備與被測件之間的聯系,更容易讓人理解。

三種通信接口分別為TCP、UDP、串口,以TCP為例,平臺運行首先建立新的外圍設備,根據外圍設備所屬類型選擇對應的通信接口類型,設置連接參數與對應的配置文件,這里的配置文件指的是包含該設備對應的命令字及回令的XML文件。配置文件設為可選項,若不填寫,則有平臺自動生成;若填寫,利用Qt提供良好的XML解析功能對文件進行讀寫。Qt中解析XML文件的方式有三種,一種是通過QXmlStreamReader方式,其它兩種是通過DOM或者回調函數方式,在選擇配置文件進行解析時使用DOM方式。DOM解析通過把整個XML文件都讀入到內存中這種方式來構造一個樹結構,通過在程序中對樹節點的操作來完成文件的讀寫[4]。

運行設備,監聽被測件的連接,接受被測件的連接之后進行數據處理,讀入接收數據,對數據按照命令字設定的索引長度進行切割,對比切分得到的數據與設定的命令字信息,匹配成功則觸發回令按照設定的發送模式與類型進行數據的回復,多次執行驗證回復信息是否能對被測件起到驗證作用。

2 軟件關鍵功能介紹

2.1 多線程機制

將耗時的操作放在主線程之外的線程中執行能夠有效地解決軟件卡頓或異常退出的情況。運行平臺,開啟設備連接,不可能每次只運行一個設備,這樣對于軟件的測試效率有著很大的影響。平臺使用多線程機制,運行設備,每當一個被測件進行連接的時候就開啟一個新的線程。多線程的實現有兩種方法,第一種就是繼承重寫QThread中的run函數,再一種就是使用moveToThread函數來進行線程的轉移[5]。這里采用后者的實現方法,從QObject派生一個類,將對收到的數據信息進行解析操作寫到該類的槽函數中,啟動線程,這樣就開始了一條線程的工作,當被測件與設備斷開連接時,線程退出。上述的操作都使用到了信號槽機制。

2.2 命令字匹配的半自動測試技術

半自動化測試技術通過命令字匹配來最終實現,仿真平臺實時監聽被測件請求,解析請求中的命令字,并根據命令字類型完成相應的回復。把需要的回復信息簡稱為回令,回令是設置在所屬命令字下面的。

每個設備下可以添加多個命令字,命令字的類型可分為兩種,一種是常規命令字,需要監聽請求才能觸發的;另一種是定時器觸發,由使用者來控制它是否可以被觸發。

設置常規命令字時,重點在于填寫它的解析值、長度與索引信息,這是信息匹配的依據。將一個設備下所用命令字中的長度、索引、解析值放入一個列表中,當收到被測件發出的信息時開始根據列表中所保存的索引與長度進行信息的切割,將得到的結果與解析值進行比較,若相等,那么則認為命令字匹配成功。該步驟具體算法實現如下:

2.3 執行python腳本

由命令字匹配或定時器觸發的回令包括三種發送類型:Data、File、Script。當發送類型為Data時,需要將發送數據設置為包含幀頭、數據區、填充字節、校驗和CRC、填充字節、數據區長和幀尾的數據。被測件主要是根據收到的回復數據中這些分區對應的信息來做出回應與操作的。幀類型包含Modbus、自定義幀兩種,若需要更多可進行擴展。當發送類型為File時,即選擇發送文件,文件類型未進行指定。文件發送時將其轉為被測件可識別的編碼。

若發送類型是Script,即python腳本。這里選擇的文件必須是.py類型的,文件內容由使用者根據被測件的需要進行編寫,腳本內容中在得到被測件發送的數據之后對其進行操作,返回要回復的信息。

在進行python腳本解析時需要提前進行環境配置,在.cpp文件中添加Python.h的頭文件,這是調用python腳本必須的步驟,同時還要配置這個工程的.pro文件,將python的libs和include包含進來。完成這些之后還需要將python腳本文件放在與exe文件同級目錄下才可保證正確的執行。解析python腳本文件算法實現如下:

2.4 定時器觸發命令字

命令字的觸發實現方法分為兩種,一種是命令字匹配的形式進行觸發,還有一種就是通過定時器的設置進行命令字的觸發。傳統意義上來說,第一種觸發方式的使用性較為廣泛,但是對于某些特定的被測件的連接通信要求來說,定時器的觸發方式是十分關鍵的,由于保密性要求,在此就不對被測件進行舉例說明了。

單說定時器在QT中的應用,就要涉及到線程的知識,而又是因為平臺實現的多線程機制使得在這個基礎上實現定時器有一定的困難性,首先需要弄清楚每一條可被開啟的線程,其次是在定時器這個線程中做到命令字的觸發。功能的增加不能影響平臺通信的時效性,因此就要做到將定時器觸發命令字放在獨立的線程中去實現。

定時器的實現主要是通過設置周期和次數進行的,周期指的是循環發送的周期時間,次數指的是周期性回復消息需要進行的次數。這里的觸發和命令字的觸發不盡相同,定時器觸發不需要對接收到的被測件所發送來的數據進行切分、遍歷等一系列的處理。在開啟設備且與被測件進行連接成功后,被測件發送數據,仿真設備接收數據,從接收數據開始就已經觸發了定時器操作,根據已經設置好的周期與次數進行回令發送。例如周期是1000 ms,次數是3次,則通信方式就是以周期為1000 ms的時間給被測件回復回令。

定時器觸發功能的添加并不會影響命令字觸發,這兩個是在不同的線程中進行處理的,具有同時同步性但是不具有互相干擾及阻塞性,不會出現等待現象或者讓步現象。因此在定時器觸發的情況下,設備仍然對接收到的數據進行解析,按照命令字進行匹配,解決了對于不同的被測件對測試的不同類別的需求。相關代碼段如下:

2.5 回令支持的數據模式

對于數據模式的要求有兩種,一種是ASCII,另一種是Hex十六進制。兩種模式的提供使得數據的發送更具有擴展性。在添加回令時設置回令的數據模式,一般情況下,在回令的發送類型為File時,數據模式都會設定成ASCII模式,這樣方便文字及字母的發送,而Hex多數是在僅發送數據格式時設置。

在與被測件設備進行通信時,傳回來的數據經常是十六進制的,也就是說,在仿真設備對被測件發送數據時,仍然需要的是十六進制的支持。在QT封裝的通信協議中支持的字符格式是有一定的要求的,其中支持數據發送的write函數中形參僅支持一個字節數組QByteArray,因此,需要將字符串轉化為字節數組才能使用此函數進行發送。具體的操作步驟如下:

(1)把十六進制字符串分成一個char數組,循環其中的兩個char,這兩個char的值一定都是在從0到9,從a到f之間的;

(2)先找到第一個char對應的下標位置,例如:char的值是a,那么下標位置就是10,把數字10轉成byte類型,取低4位bit,然后用相同的辦法找到第二個char對應的下標數字,取到該數字的低4位bit;

(3)將剛剛取到的兩個低4位bit拼在一起,第一個char對應的4位bit為字節的高4位,第二個char對應的4位bit為字節的低4位,這樣組成一個完整的8位字節;

(4)循環完char數組,就得到了16進制字符串對應的字節數組。

2.6 其它功能

軟件平臺提供了輔助工具,幫助使用者進行CRC校驗計算、浮點與十六進制相互轉換、EB90校驗和計算,方便用戶在操作數據發送與接收時對數據進行簡單的翻譯與解讀。

平臺還提供了日志模塊,設置日志模塊的主要作用是為了顯示設備的運行和停止狀態、被測件的連接斷開狀態、被測件向外發送的信息記錄、命令字是否匹配成功與匹配成功后已經發送的數據內容。

用戶可根據關鍵字對日志模塊顯示的消息進行查找,方便進行數據的正確性判斷及查找比對。

根據對當前日志的需求及日后要做的一些處理,平臺添加了日志保存功能,方便后期的查看分析與數據整合。

對于新建的設備,由于設備添加模塊是在其它的界面上操作完成的,所以在總體界面的左下角添加了設備屬性顯示功能,只要雙擊某一設備,它所對應的有關屬性參數就會被顯示出來,平臺主界面如圖2所示。

圖2 主界面

3 軟件平臺測試

在軟件開發過程中,測試是軟件質量保證的關鍵,是產品發布并且提交給用戶的穩定化階段。半實物仿真測試平臺的測試內容主要為程序可擴展性和用戶友好性兩個方面。

3.1 可擴展性測試

目前基于Windows 7、Windows10這兩種操作系統進行測試,將由Release版本生成的myapp.exe執行文件同libgcc_sdw2-1.dll、libstdc++-6.dll、libwinpthread-dll、Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll六個動態銜接庫放置于一個文件夾中然后拷貝至兩種操作系統中[6]。通過測試發現該軟件平臺均可以在兩種操作系統上平穩運行,軟件平臺各個模塊間切換流暢。

3.2 用戶友好性測試

該軟件在Windows7、Windows10操作系統上啟動時間只需要幾秒,測試過程模擬了多個虛擬設備同時運行,未出現異常。軟件平臺操作緊跟需求,界面簡潔美觀。

4 結束語

本文設計了基于Qt的半實物仿真測試平臺,實現了從虛擬設備創建、命令字、回令添加到命令字匹配到信息發送的基本功能。通過測試該軟件平臺可以在Windows系統上平穩運行。值得一提的是,該軟件平臺增加新的回令發送模式,使消息回復的便捷程度提高,不過該平臺還僅適用于三種通信接口的半自動化測試,希望將來通過完善實現更多通信接口以及受自動化測試驅動的功能。總之,該軟件平臺在功能支持上對于地面測發控軟件的模擬與測試有著重要的意義。

[1]黃翩,張瓊,祝婷. 基于Qt的一個服務器多個客戶端的TCP通信[J]. 電子科技,2015,28(3): 76-78.

[2]王連慶,錢莉. 基于QT的3D相機軟件系統設計[J]. 軟件導刊,2021,20(3): 195-198.

[3]王維波,栗寶鵬,侯春望. Qt5.9 C++開發指南[M]. 北京:人民郵電出版社,2018.

[4]王宏明,林衛永,王泉榮,等. 基于QT的XML文件自動轉換方法[J]. 鐵路通信信號工程技術,2021,18(2): 88-92.

[5]蘇州長風航空電子有限公司. 一種基于QT控件的多線程數據通信方法: 中國,202110074862.9[P]. 2021-05-25.

[6]賴佳路,鐘仁明. 基于Qt的瘢痕疙瘩二維放療計劃快速設計平臺的構建[J]. 中國醫療設備,2019,34(8): 108-111.

Construction of Hardware-in-the-Loop Simulation Test Platform for Aerospace Software

In order to further improve the degree of software automatic test, reduce the cost investment in manpower and time, and effectively improve the quality and efficiency of aerospace software testing. Taking Qt as the development framework, a hardware-in-the -loop simulation test platform is realized. The platform designs and implements semi-automatic test and user-defined test mode, which aims to provide a hardware in the loop simulation test environment for ground test, launch and control software. Through the test, the platform can run stably on Windows system and meet the requirements of reliable, efficient and convenient test of aerospace software.

automatic test; Qt; hardware-in-the-loop; simulation; semi-automatic test

TP27

A

1008-1151(2022)02-0005-04

2021-09-22

劉會穎(1998-),女,河北唐山人,北華航天工業學院計算機學院在讀碩士研究生,研究方向為軟件測試。

劉紫陽(1993-),女,河北邢臺人,北華航天工業學院講師,研究方向為軟件測試。

猜你喜歡
設備
諧響應分析在設備減振中的應用
調試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
HTC斥資千萬美元入股虛擬現實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 欧美日韩北条麻妃一区二区| 天天综合天天综合| 日韩国产 在线| 一级爆乳无码av| 日韩欧美网址| av在线人妻熟妇| 国产浮力第一页永久地址| 日韩国产精品无码一区二区三区| 高潮爽到爆的喷水女主播视频| 在线视频亚洲色图| 亚洲成人黄色在线观看| 日韩精品亚洲一区中文字幕| 亚洲人精品亚洲人成在线| 国产小视频网站| 国产无码制服丝袜| 无码在线激情片| 久久综合九九亚洲一区| 欧美区日韩区| 久久青草免费91观看| 成年人免费国产视频| 亚洲日韩精品欧美中文字幕 | 91精品国产91久无码网站| 2021国产乱人伦在线播放| 国产精品亚欧美一区二区三区 | 色婷婷综合激情视频免费看| 欧美午夜在线观看| 尤物国产在线| 精品1区2区3区| 亚洲国产综合精品一区| 91口爆吞精国产对白第三集| 无码丝袜人妻| 97在线视频免费观看| 久久91精品牛牛| 国产xxxxx免费视频| 天天综合网站| 久草国产在线观看| 老熟妇喷水一区二区三区| 91亚洲影院| 亚洲三级影院| 色爽网免费视频| 国产成人欧美| 亚洲AⅤ无码国产精品| 国产精品熟女亚洲AV麻豆| 色综合国产| 亚洲永久色| 热这里只有精品国产热门精品| 波多野结衣久久高清免费| 99热国产在线精品99| 中文字幕2区| 亚洲欧美极品| 亚洲av无码片一区二区三区| 91久久天天躁狠狠躁夜夜| 中文字幕亚洲无线码一区女同| 色婷婷啪啪| 国产拍在线| 亚瑟天堂久久一区二区影院| 欧美亚洲激情| 亚洲国产中文综合专区在| 日韩少妇激情一区二区| 国内精品小视频福利网址| 97超碰精品成人国产| 美女被操黄色视频网站| 夜夜高潮夜夜爽国产伦精品| 亚洲精品第五页| 午夜小视频在线| 日韩精品少妇无码受不了| 欧美午夜性视频| 久久青青草原亚洲av无码| 福利在线免费视频| 欧美日本视频在线观看| 婷婷六月综合| 中文字幕乱码二三区免费| 国产特级毛片| 国产精品无码久久久久久| 亚洲Av综合日韩精品久久久| 欧美日韩一区二区在线免费观看 | 在线视频一区二区三区不卡| 国内毛片视频| 国产一区二区丝袜高跟鞋| 亚洲男人的天堂视频| h视频在线观看网站| 国产www网站|