喬晉龍,李冠林
(1.中國(guó)特種飛行器研究所 湖北 荊門(mén)448035;2.高速水動(dòng)力航空科技重點(diǎn)實(shí)驗(yàn)室 湖北 荊門(mén)448035)
一種飛參記錄數(shù)據(jù)解析軟件的設(shè)計(jì)與實(shí)現(xiàn)
喬晉龍1,2,李冠林1
(1.中國(guó)特種飛行器研究所 湖北 荊門(mén)448035;2.高速水動(dòng)力航空科技重點(diǎn)實(shí)驗(yàn)室 湖北 荊門(mén)448035)
為了便于對(duì)飛參記錄儀查看,本文提出了一種數(shù)據(jù)解析軟件的設(shè)計(jì)方案,并完成該軟件架構(gòu)的設(shè)計(jì)。解析軟件采用了模塊化的思想,以數(shù)據(jù)索引結(jié)構(gòu)為基礎(chǔ),實(shí)現(xiàn)了記錄儀數(shù)據(jù)的解析和查看。實(shí)際使用表明,該軟件操作簡(jiǎn)單,數(shù)據(jù)解析正確,滿足用戶需求。
飛參記錄儀;軟件架構(gòu);模塊化;數(shù)據(jù)索引結(jié)構(gòu)
飛參記錄儀,又稱(chēng)“黑匣子”,浮空器的各種飛行狀態(tài)及環(huán)境信息是分析浮空器系統(tǒng)性能的原始依賴(lài),同時(shí)也是系統(tǒng)發(fā)生事故和飛行事故時(shí)查找原因的依據(jù)[1]。飛參記錄數(shù)據(jù)是某浮空器飛參記錄儀的儲(chǔ)存信息,反映了浮空器各系統(tǒng)的工作情況和各種飛行狀態(tài)的信息。一旦浮空器發(fā)生飛行故障,飛參記錄數(shù)據(jù)為查找設(shè)備故障及失事原因提供重要依據(jù)[2-3]。飛參記錄數(shù)據(jù)解析軟件根據(jù)約定的傳輸協(xié)議,將特定形式的記錄數(shù)據(jù)解析為便于查看的記錄數(shù)據(jù),其解析的效率直接影響到故障的排查[4-5]。
浮空器往往是在某一時(shí)間段發(fā)生故障,需要解析軟件能夠快速地解析浮空器故障時(shí)間段內(nèi)的飛參記錄數(shù)據(jù)。一般的飛參解析軟件都是將飛參記錄儀中的數(shù)據(jù)全部解析到文件中,解析過(guò)程中需要多次進(jìn)行I/O操作,其效率是非常低的,本文提到的解析軟件針對(duì)某種型號(hào)浮空器故障在時(shí)間段間斷性的特點(diǎn),以時(shí)間段建立索引,快速地解析某一時(shí)間段內(nèi)的飛參數(shù)據(jù)。
飛參記錄儀解析系統(tǒng)結(jié)構(gòu)圖如圖1所示。測(cè)控計(jì)算機(jī)作為浮空器執(zhí)行任務(wù)的控制單元,它會(huì)周期性地向飛參記錄儀發(fā)送飛參數(shù)據(jù),飛參記錄儀會(huì)將接收到數(shù)據(jù)存儲(chǔ)起來(lái)。當(dāng)需要查看飛參數(shù)據(jù)時(shí),會(huì)將飛參記錄儀與計(jì)算機(jī)通過(guò)數(shù)據(jù)下載線連接,啟動(dòng)數(shù)據(jù)提取軟件,將飛參記錄儀中的數(shù)據(jù)下載到計(jì)算機(jī),此時(shí)飛參數(shù)據(jù)文件不便于查看,啟動(dòng)解析軟件將下載后飛參數(shù)據(jù)文件轉(zhuǎn)換為容易查看的數(shù)據(jù)文件。
圖1 系統(tǒng)結(jié)構(gòu)圖
數(shù)據(jù)解析軟件解析過(guò)程由掃描數(shù)據(jù)模塊、建立索引模塊和數(shù)據(jù)導(dǎo)出模塊組成,數(shù)據(jù)解析軟件架構(gòu)圖如圖2所示。
圖2 數(shù)據(jù)解析軟件總體結(jié)構(gòu)圖
掃描數(shù)據(jù)模塊負(fù)責(zé)將飛參記錄數(shù)據(jù)讀入到內(nèi)存中,為解析軟件建立索引提供了前提條件;建立索引模塊通過(guò)解析內(nèi)存中的記錄數(shù)據(jù),根據(jù)記錄數(shù)據(jù)的時(shí)間段將記錄數(shù)據(jù)劃分為若干部分,建立相應(yīng)的索引結(jié)構(gòu);導(dǎo)出數(shù)據(jù)模塊負(fù)責(zé)將選定的時(shí)間段數(shù)據(jù)解析為便于查看的數(shù)據(jù),并導(dǎo)入到Excel報(bào)表中。
3.1掃描數(shù)據(jù)模塊
掃描數(shù)據(jù)模塊以文件流的形式通過(guò)讀I/O操作將飛參記錄數(shù)據(jù)讀入內(nèi)存中,其中讀I/O的接口函數(shù)為ReadFile()。
3.2建立索引模塊
每幀飛參記錄數(shù)據(jù)都具有自身的時(shí)間屬性,包括年、月、日、小時(shí)、分鐘、秒和毫秒,飛參記錄儀每個(gè)時(shí)間段內(nèi)都會(huì)接收到大量的數(shù)據(jù)幀,而浮空器故障發(fā)生在某一時(shí)間段內(nèi),該時(shí)間段的數(shù)據(jù)時(shí)間屬性是相同的,本文根據(jù)故障發(fā)生時(shí)間較短的特點(diǎn),將時(shí)間屬性相同的數(shù)據(jù)幀加入到一個(gè)集合中,建立相應(yīng)的索引結(jié)構(gòu),可以減少解析軟件導(dǎo)出無(wú)效數(shù)據(jù)的時(shí)間,提高軟件整體的解析效率,索引結(jié)構(gòu)圖如圖3所示。
圖3 索引結(jié)構(gòu)圖
本文將飛參數(shù)據(jù)幀以天為單位建立一級(jí)索引,以小時(shí)為單位建立二級(jí)索引,以分鐘為單位建立三級(jí)索引。一級(jí)索引結(jié)構(gòu)中包括屬性時(shí)間屬性值(月和日)、內(nèi)存數(shù)據(jù)流地址、二級(jí)索引(小時(shí))地址和數(shù)據(jù)記錄條數(shù)。二級(jí)索性包括內(nèi)存數(shù)據(jù)流的起始位置、數(shù)據(jù)幀數(shù)目和三級(jí)索引。三級(jí)索引包括數(shù)據(jù)流的起始位置和數(shù)據(jù)個(gè)數(shù)。在用戶導(dǎo)出數(shù)據(jù)記錄之前首先根據(jù)建立的索引結(jié)構(gòu)查詢(xún)一級(jí)索性列表,找到相應(yīng)的時(shí)間屬性day相同的值,然后根據(jù)一級(jí)索引的hour屬性查找相應(yīng)的二級(jí)索引,然后根據(jù)二級(jí)索引的屬性min便可查到對(duì)應(yīng)的三級(jí)索引,找到自己所需的數(shù)據(jù)記錄集[6],建立索引結(jié)構(gòu)數(shù)據(jù)流圖如圖4所示。
圖4 建立索引結(jié)構(gòu)數(shù)據(jù)流程圖
在建立索引的過(guò)程中,首先需要遍歷內(nèi)存的飛參數(shù)據(jù),查找完整的數(shù)據(jù)幀,讀取數(shù)據(jù)幀時(shí)間屬性,遍歷一級(jí)索引結(jié)構(gòu),如果數(shù)據(jù)幀時(shí)間屬性值(月和日)與一級(jí)索引結(jié)構(gòu)匹配失敗,建立一個(gè)新的一級(jí)索引結(jié)構(gòu)并插入到一級(jí)索引鏈表中;反正,修改一級(jí)索引的數(shù)據(jù)相關(guān)屬性,查看匹配成功一級(jí)索引的二級(jí)索引時(shí)間屬性(小時(shí)),如果數(shù)據(jù)幀的時(shí)間屬性(小時(shí))與該二級(jí)索引匹配失敗,建立一個(gè)新的二級(jí)索引結(jié)構(gòu)并插入該二級(jí)索引鏈表中;反正,修改二級(jí)索引的相關(guān)數(shù)據(jù)屬性,查看匹配匹配成功二級(jí)索引的三級(jí)索引,如果數(shù)據(jù)幀的時(shí)間屬性(分鐘)與該三級(jí)索引匹配失敗,建立一個(gè)新的三級(jí)索引結(jié)構(gòu)并插入該三級(jí)索引結(jié)構(gòu)中,反之修改該三級(jí)索引的相關(guān)數(shù)據(jù)屬性。
3.3導(dǎo)出數(shù)據(jù)模塊
導(dǎo)出數(shù)據(jù)模塊包括數(shù)據(jù)解析部分和數(shù)據(jù)導(dǎo)出部分。在數(shù)據(jù)解析部分中,解析軟件按照相應(yīng)的協(xié)議將飛參記錄數(shù)據(jù)轉(zhuǎn)化為便于識(shí)別的二進(jìn)制數(shù)據(jù)。飛參數(shù)據(jù)一幀數(shù)據(jù)解析過(guò)程主要包括文件尾部判斷、數(shù)據(jù)幀頭判斷和數(shù)據(jù)幀尾判斷。如果讀取數(shù)據(jù)為文件尾部標(biāo)示符,表示飛參文件解析完畢;根據(jù)數(shù)據(jù)幀頭與幀尾的判斷,來(lái)截取完整的一幀飛參數(shù)據(jù)進(jìn)行數(shù)據(jù)解析并存儲(chǔ)。
在數(shù)據(jù)導(dǎo)出部分中,解析軟件將二進(jìn)制數(shù)據(jù)導(dǎo)出到Excel報(bào)表中,在Excel報(bào)表中,根據(jù)需求可以靈活的將數(shù)據(jù)以多種形式表現(xiàn)出來(lái)。
一般的解析軟件解析數(shù)據(jù)花費(fèi)的時(shí)間與需要解析的數(shù)據(jù)大小無(wú)關(guān),只與飛參記錄儀的大小有關(guān),而本文解析軟件解析時(shí)間與所需解析數(shù)據(jù)大小幾乎成線性關(guān)系,如圖5所示。
圖6所示為解析軟件界面,該軟件可以截取原始數(shù)據(jù)和解析飛參數(shù)據(jù),并保存為Excel文件。
圖5 數(shù)據(jù)解析對(duì)比圖
圖6 軟件界面
飛參解析軟件根據(jù)浮空器故障具有時(shí)間段的特點(diǎn),建立時(shí)間段索引式數(shù)據(jù)鏈表,縮短飛參數(shù)據(jù)的解析時(shí)間,提高了數(shù)據(jù)的解析效率。
[1]王文杰.便攜式飛行參數(shù)記錄儀測(cè)試系統(tǒng)的設(shè)計(jì)[D].南京:南京航空航天大學(xué),2009.
[2]甘曉華.飛艇技術(shù)概論[M].北京:國(guó)防工業(yè)出版社,2005.
[3]賈圣羽,楊瀟文.飛參記錄儀數(shù)據(jù)解析算法分析[J].特種飛行器研究,2013,25(4):2628.
[4]劉磊等.某型無(wú)人機(jī)機(jī)載雙路視頻與飛參記錄儀設(shè)計(jì)[J].航空計(jì)算技術(shù),2013,43(4):132-134
[5]吳建剛.飛參記錄數(shù)據(jù)計(jì)算機(jī)處理的相關(guān)問(wèn)題研究[J].計(jì)算機(jī)仿真,2007,24(2):18-21.
[6]王宏生,宋繼紅.數(shù)據(jù)結(jié)構(gòu)[M].北京:國(guó)防工業(yè)出版社.2013.
The design and implementation of a software analyzing flight data recorder
QIAO Jin-long1,2,LI Guan-lin1
(1.China Special Vehicle Research Institute,Jingmen 448035,China;2.Key Aviation Scientific and Technological Laboratory of High-Speed Hydrodynamic,Jingmen 448035,China)
To facilitate the view of flight data recorder,this paper proposes a kind of design scheme of software analyzing data and completes the design of software structure.Analytic software adopts the modular thought,based on data index structure to implement analysis and view of flight recorder data,The practical application shows that the software has the features of simple operation and accurate data analysis,which meets users'need.
flight data recorder;software structure;modular;data index structure
TN919
A
1674-6236(2016)13-0021-02
2015-07-18稿件編號(hào):201507136
喬晉龍(1987—),女,山西朔州人,碩士,助理工程師。研究方向:軟件開(kāi)發(fā)與測(cè)試。