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