摘 要:航空設(shè)備上傳數(shù)據(jù)的分析存在數(shù)據(jù)量大、數(shù)據(jù)不直觀、關(guān)鍵數(shù)據(jù)段不易捕捉等問(wèn)題。針對(duì)這些問(wèn)題,作者提出了一個(gè)軟件解決方案—數(shù)據(jù)分析軟件。本文介紹了該軟件的框架結(jié)構(gòu)和幾個(gè)關(guān)鍵類(class)的設(shè)計(jì)和類之間的邏輯關(guān)系,并展示了該軟件在實(shí)際工作中的效果。最后分析了數(shù)據(jù)分析軟件的擴(kuò)展性和應(yīng)用前景。
關(guān)鍵詞:類;DataLine;Translator;DataDrawer
航空設(shè)備數(shù)據(jù)分析一直是一個(gè)難題,因?yàn)閿?shù)據(jù)按ICD協(xié)議上傳,需要轉(zhuǎn)化為可讀數(shù)據(jù)才能分析設(shè)備的運(yùn)行狀態(tài)。但是設(shè)備的上傳速率一般在毫秒級(jí),所以設(shè)備運(yùn)行一個(gè)小時(shí)可以輸出上百兆的數(shù)據(jù),人工分析這些數(shù)據(jù)費(fèi)時(shí)費(fèi)力且錯(cuò)誤率高,容易錯(cuò)過(guò)關(guān)鍵數(shù)據(jù)。
針對(duì)這種情況,作者設(shè)計(jì)了一種專門分析設(shè)備上傳數(shù)據(jù)的軟件(簡(jiǎn)稱數(shù)據(jù)分析軟件)。使用數(shù)據(jù)分析軟件處理百萬(wàn)行的數(shù)據(jù)只需要不到一分鐘的時(shí)間,而且該軟件可以將數(shù)據(jù)制成曲線,可以更容易地捕捉到關(guān)鍵數(shù)據(jù)。
1 數(shù)據(jù)分析軟件
數(shù)據(jù)分析軟件包含兩個(gè)模塊:數(shù)據(jù)轉(zhuǎn)換模塊和數(shù)據(jù)繪制模塊。
1.1 數(shù)據(jù)轉(zhuǎn)換模塊
1.1.1 時(shí)間類
航空設(shè)備上傳的數(shù)據(jù)一般以時(shí)間為基準(zhǔn),因此數(shù)據(jù)轉(zhuǎn)換時(shí)需要保留原始數(shù)據(jù)的時(shí)間信息,這樣才能將數(shù)據(jù)繪制成以時(shí)間為X軸的曲線。時(shí)間類的定義如圖1:
基類Time繼承了IComparable接口,所以Time類重載了 “!=”,” <”, “>”,”==”四個(gè)操作符,這樣Time類的對(duì)象之間可以比較大小,所以轉(zhuǎn)換后的數(shù)據(jù)可以按時(shí)間前后排序。
1.1.2 數(shù)據(jù)類
在數(shù)據(jù)分析軟件中,數(shù)據(jù)是以行為單位的,每一行數(shù)據(jù)有多個(gè)域,不同行數(shù)據(jù)的域名相同,域內(nèi)的數(shù)據(jù)不同。數(shù)據(jù)行類定義如圖2。
DataLine的對(duì)象代表一行轉(zhuǎn)換后的數(shù)據(jù),ToString接口可以將DataLine里存儲(chǔ)的數(shù)據(jù)以文本的形式輸出。DataLine是一個(gè)抽象類,需要用他的子類實(shí)例化對(duì)象。由圖可見(jiàn),MLSData集成了DataLine類,在成員變量中加入了一個(gè)MLSTime的對(duì)象_time用以表示該行數(shù)據(jù)的上傳時(shí)間,并且可以用CompareTo接口比較兩個(gè)MLSData對(duì)象的時(shí)間先后。其實(shí)MLSData的CompareTo接口只是調(diào)用了成員變量_time的CompareTo,如圖3。
1.1.3 翻譯器類
翻譯器實(shí)現(xiàn)的功能是將一行原始數(shù)據(jù)轉(zhuǎn)換為可讀數(shù)據(jù),翻譯器定義如圖4。
Translator是一個(gè)抽象類,其中定義了一個(gè)抽象函數(shù)Translate,這個(gè)函數(shù)有一個(gè)類型為String的形式參數(shù)data,并返回一個(gè)DataLine類(或其子類)的對(duì)象。其中data表示一行文本格式的原始數(shù)據(jù),返回值DataLine表示轉(zhuǎn)換后的數(shù)據(jù)。當(dāng)需要分析按新版本ICD協(xié)議上傳的數(shù)據(jù)時(shí),只需創(chuàng)建一個(gè)新的Translator子類,并按ICD協(xié)議重寫(xiě)Translate函數(shù)即可。
1.2 數(shù)據(jù)繪制模塊
數(shù)據(jù)繪制模塊類關(guān)系圖如圖5:
父類DataDrawer是一個(gè)抽象函數(shù),他實(shí)現(xiàn)了繪制曲線的一些基本功能。子類MLSDrawer集成了DataDrawer的基本功能,并添加了數(shù)據(jù)段放大功能。MD_WarningLine添加了告警線的顯示功能,分析人員可以清晰地看到數(shù)據(jù)告警的位置,并針對(duì)該段數(shù)據(jù)進(jìn)行分析。MultiLineDawer添加了多曲線繪制弄能,可以將多組數(shù)據(jù)的曲線繪制在同一坐標(biāo)系內(nèi),讓分析人員可以進(jìn)行多組數(shù)據(jù)間的交叉比對(duì)。
2 實(shí)際應(yīng)用
如圖6,設(shè)備上傳數(shù)據(jù)經(jīng)數(shù)據(jù)轉(zhuǎn)換模塊處理后輸出可讀數(shù)據(jù)。
數(shù)據(jù)繪制模塊讀取分析結(jié)果數(shù)據(jù)后,可以將結(jié)果中的一組或多組數(shù)據(jù)繪制成曲線。
在曲線繪制區(qū)域內(nèi)拖動(dòng)鼠標(biāo)可已放大局部數(shù)據(jù),如圖9。
3 結(jié)語(yǔ)
本文介紹了一種數(shù)據(jù)分析軟件的結(jié)構(gòu)設(shè)計(jì)和實(shí)現(xiàn)方法。在實(shí)際應(yīng)用中,數(shù)據(jù)分析軟件大大提高了數(shù)據(jù)分析和設(shè)備錯(cuò)誤排查的效率。該軟件的應(yīng)用并不僅限于航空數(shù)據(jù)的分析,實(shí)際上它可以翻譯和繪制任何種類的數(shù)據(jù),但原始數(shù)據(jù)必須滿足以下兩個(gè)條件之一:(1)原始數(shù)據(jù)含有時(shí)間信息;(2)原始數(shù)據(jù)不含時(shí)間信息,但數(shù)據(jù)以固定速率上傳。第二種情況下需要在數(shù)據(jù)分析軟件中擴(kuò)展一個(gè)TimeGenerator類輸出等間隔的MLSTime類對(duì)象,并將該對(duì)象加入轉(zhuǎn)換后的DataLine中??梢?jiàn)隨著數(shù)據(jù)分析軟件的不斷擴(kuò)展,該軟件的應(yīng)用領(lǐng)域會(huì)越來(lái)越廣。
作者簡(jiǎn)介:李珅(1981-),男,陜西耀縣人,碩士研究生,研究方向:數(shù)字信號(hào)處理。endprint