崔北鵬,張寶欣,關(guān)凱元,李坤龍,陳 昕
(上海機(jī)電工程研究所,上海 201109)
科研生產(chǎn)各環(huán)節(jié)中產(chǎn)生的原始數(shù)據(jù)通過傳感器被遙測(cè)終端接收到的實(shí)時(shí)數(shù)據(jù),反饋參試設(shè)備在各類試驗(yàn)的狀態(tài),是科研決策分析的重要數(shù)據(jù)依據(jù),屬于高成本價(jià)值數(shù)據(jù)資源;但是原始數(shù)據(jù)不僅數(shù)量龐大而且十分耗費(fèi)存儲(chǔ)空間,單個(gè)原始文件一般在百兆字節(jié)左右存儲(chǔ)空間,單機(jī)版解析軟件生成的各參數(shù)文件一般在一至十幾字節(jié)存儲(chǔ)空間;該類數(shù)據(jù)一般不能夠直接用于科研分析,需要經(jīng)過一定的處理和解析;然而,隨著型號(hào)業(yè)務(wù)的拓展、產(chǎn)品系列化快速發(fā)展、型號(hào)研制的數(shù)量激增、歷史試驗(yàn)數(shù)據(jù)分析利用的需求越來越強(qiáng)烈,不同型號(hào)、不同階段、不同設(shè)備的數(shù)據(jù)文件若采用不同的軟件進(jìn)行處理,將會(huì)大大增加軟件版本的數(shù)量,這樣的處理方式給軟件使用、管理和維護(hù)帶來了極大的困難;我們迫切需要一種通用化的、容易維護(hù)的、簡捷快速的、靈活部署的軟件以適應(yīng)當(dāng)今和未來日趨緊迫數(shù)據(jù)處理任務(wù)形勢(shì)。
雖然各類軟件根據(jù)相同的通信協(xié)議進(jìn)行編碼,但是由于不同軟件解包方法、處理步驟和實(shí)現(xiàn)平臺(tái)均不相同,為了處理各個(gè)設(shè)備采集到的數(shù)據(jù),不僅需要部署不同的使用環(huán)境,而且需要協(xié)調(diào)多個(gè)單位和部門的工作,同時(shí),也增加了軟件發(fā)布和維護(hù)的工作量。當(dāng)前原始數(shù)據(jù)數(shù)據(jù)處理軟件常見問題如下:
1)現(xiàn)有原始數(shù)據(jù)及解析數(shù)據(jù)庫沒有統(tǒng)一有效的管理和規(guī)范,歷史數(shù)據(jù)不能正確的還原和解析;
2)沒有統(tǒng)一的數(shù)據(jù)分析工具,存在分析對(duì)象不對(duì)等、數(shù)據(jù)溯源不便捷等情況;
3)各類產(chǎn)品數(shù)據(jù)處理軟件通用性差,軟件功能簡單,只能完成基礎(chǔ)的參數(shù)曲線顯示和數(shù)據(jù)文本輸出,不具備參數(shù)相關(guān)性計(jì)算;
4)原始數(shù)據(jù)較為分散且缺失相應(yīng)的分析工具,設(shè)計(jì)師無法便捷地對(duì)多次試驗(yàn)、不同產(chǎn)品的同類參數(shù)數(shù)據(jù)進(jìn)行橫向、縱向比對(duì)分析,數(shù)據(jù)共享性差;
5)缺乏數(shù)據(jù)處理分析手段,不能充分挖掘數(shù)據(jù)資源的價(jià)值;
6)數(shù)據(jù)顯示耗時(shí)較長,不能滿足設(shè)計(jì)師大批量、高頻次的數(shù)據(jù)查詢及分析需求。
MVC(即model-view-controller)是Xerox PARC在20世紀(jì)80年代為編程語言Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式,提供了一種按功能對(duì)軟件進(jìn)行模塊劃分的方法。早期的MVC可以單獨(dú)開發(fā)出數(shù)據(jù)庫訪問系統(tǒng),即在Model層就包含有數(shù)據(jù)庫的讀寫操作。這種模式最大的優(yōu)勢(shì)就是可以為一個(gè)模型在運(yùn)行時(shí)同時(shí)建立和使用多個(gè)視圖,變化—傳播機(jī)制可以確保所有相關(guān)的視圖及時(shí)得到模型數(shù)據(jù)變化,從而使所有關(guān)聯(lián)的視圖和控制器做到行為同步[1]。
MVC架構(gòu)的含義是將一個(gè)軟件分為模型層、視圖層和控制層3個(gè)相對(duì)獨(dú)立的層次[2];模型層主要包含數(shù)據(jù)處理的具體邏輯及算法、用于數(shù)據(jù)處理的類及方法,視圖層主要包括數(shù)據(jù)處理結(jié)果的顯示、接收及響應(yīng)用戶的不同請(qǐng)求,控制層主要用于控制軟件的整體運(yùn)行[3-4],從視圖層獲知用戶的需求,送入模型層解算,再將解算的結(jié)果反饋在視圖層中[5-8];總之,模型層是軟件的運(yùn)算中心,視圖層是軟件的交互中心,控制層是軟件的總控中心,各層次之間的關(guān)系見圖1。
圖1 MVC架構(gòu)
通用數(shù)據(jù)處理軟件采用MVC架構(gòu),以控制層Controller為軟件核心,負(fù)責(zé)調(diào)配視圖層View和模型層Model以實(shí)現(xiàn)軟件的各個(gè)功能。其中視圖層主要包含軟件界面和數(shù)據(jù)顯示模塊;模型層主要包括對(duì)數(shù)據(jù)文件的建模,文件的參數(shù)數(shù)據(jù)庫、特性關(guān)系數(shù)據(jù)庫的建模(數(shù)據(jù)庫并非唯一選項(xiàng),亦可采用其他配置方式)以及數(shù)據(jù)處理模塊的建模;控制層主要包括對(duì)上述的模塊進(jìn)行有效地調(diào)度和資源分配,以及為提升用戶體驗(yàn)所必須的處理過程的時(shí)間上的合理配置。
通過MVC架構(gòu)可以將軟件的功能最大限度的解耦開來,每個(gè)層級(jí)專注于自身的任務(wù),針對(duì)不同的場景,最大程度的復(fù)用軟件的各個(gè)層級(jí),比如視圖層可以使用C#、QT、HTML等不同環(huán)境開發(fā),模型層不需要任何改變,更重要的是,不同型號(hào)的原始數(shù)據(jù),通過整理與總結(jié),可以化歸為幾種模型進(jìn)行解算,而不需要改變視圖層,如此,大大提高了軟件的擴(kuò)展性、降低了維護(hù)的成本[9-14]。
雖然科研生產(chǎn)各環(huán)節(jié)中產(chǎn)生的原始數(shù)據(jù)量較大,但是各類產(chǎn)品測(cè)量的參數(shù)類別、參數(shù)特性等共通性較大,具有較好的參考價(jià)值和借鑒性,采用MVC架構(gòu)可以高效的處理原始數(shù)據(jù)、管理解析數(shù)據(jù)庫和靈活的顯示交互。
基于MVC架構(gòu),可以將模型層和視圖層繼續(xù)細(xì)分為翻譯器、數(shù)據(jù)庫連接器、關(guān)聯(lián)器和繪圖器,如圖2所示。從用戶的角度看,關(guān)聯(lián)器是軟件的輸入,繪圖器是輸出的結(jié)果,進(jìn)一步的,關(guān)聯(lián)器主要用于接受用戶的關(guān)聯(lián)指令,明確用戶需要分析哪些數(shù)據(jù)及需要的輸出形式,繪圖器將分析的結(jié)果以圖片的形式顯示出來,同時(shí),響應(yīng)用戶對(duì)顯示曲線的縮放、對(duì)比、標(biāo)記、統(tǒng)計(jì)等操作。
圖2 總體架構(gòu)
模型層是軟件的運(yùn)算中心,除了一些基礎(chǔ)算法與數(shù)據(jù)結(jié)構(gòu),它的核心是種類多樣的翻譯器與數(shù)據(jù)庫連接器。數(shù)據(jù)庫連接器是配合翻譯器工作的模塊,它可以針對(duì)不同的翻譯器,找到對(duì)應(yīng)的數(shù)據(jù)庫,并正確的提取其中的信息,接著,翻譯器借助數(shù)據(jù)庫中的信息對(duì)原始數(shù)據(jù)進(jìn)行拆分、還原,得到用戶需要的結(jié)果。
控制層是軟件的中樞,它從關(guān)聯(lián)器中得到了用戶的需求,送入對(duì)應(yīng)的翻譯器進(jìn)行解算,解算的參數(shù)從數(shù)據(jù)庫連接器中獲取,最后將解算的結(jié)果反饋在繪圖器中,如此,在用戶、原始數(shù)據(jù)、數(shù)據(jù)庫3個(gè)元素之間搭建起了結(jié)構(gòu)清晰、適應(yīng)性廣、擴(kuò)展性強(qiáng)的軟件橋梁[15-16]。
根據(jù)目前的數(shù)據(jù)來源,翻譯器主要分為422翻譯器、遙測(cè)翻譯器、記錄儀翻譯器、CAN翻譯器等類型,如圖3所示。翻譯器主要實(shí)現(xiàn)了數(shù)據(jù)預(yù)處理(含時(shí)碼修正、數(shù)據(jù)剔野等功能)、模擬量還原、數(shù)字量還原、解析結(jié)果標(biāo)準(zhǔn)化輸出等功能,可以適應(yīng)不同來源的數(shù)據(jù),同種來源的數(shù)據(jù)若處理方法略有區(qū)別,可以通過繼承方法,大大減少軟件開發(fā)的代碼量,提高代碼的復(fù)用性及維護(hù)的速度。
圖3 翻譯器類圖
針對(duì)數(shù)據(jù)來源多樣、硬件資源差異較大的情況,采用抽象類的技術(shù)進(jìn)行翻譯器的設(shè)計(jì),根據(jù)422翻譯器、遙測(cè)翻譯器、記錄儀翻譯器、CAN翻譯器等具體翻譯器抽象出基礎(chǔ)翻譯器;基礎(chǔ)翻譯器主要實(shí)現(xiàn)4個(gè)功能:數(shù)據(jù)提取、數(shù)據(jù)清洗、數(shù)據(jù)還原和標(biāo)準(zhǔn)輸出;其中,數(shù)據(jù)提取是基礎(chǔ)翻譯器的一個(gè)抽象的方法,具體實(shí)現(xiàn)在各類子翻譯器中,提取好數(shù)據(jù)利用基礎(chǔ)翻譯器中通用方法進(jìn)行數(shù)據(jù)清洗和數(shù)據(jù)還原,最后再根據(jù)用戶需求進(jìn)行標(biāo)準(zhǔn)化輸出。
為了覆蓋科研在用的數(shù)據(jù)庫類型,主要設(shè)計(jì)了ACCESS數(shù)據(jù)庫連接器、MYSQL數(shù)據(jù)庫連接器和XML數(shù)據(jù)庫連接器等,如圖4所示。
圖4 數(shù)據(jù)庫連接器類圖
在數(shù)據(jù)庫連接器的設(shè)計(jì)過程中主要采用了標(biāo)準(zhǔn)數(shù)據(jù)庫技術(shù),通過對(duì)模型層的進(jìn)一步分析,可以將模型層進(jìn)一步細(xì)分為解析方法和解析參數(shù)兩大類,針對(duì)不同型號(hào)、不同階段、不同設(shè)備的原始數(shù)據(jù),通過設(shè)計(jì)統(tǒng)一的標(biāo)準(zhǔn)數(shù)據(jù)庫,可以將模型層所需的解析參數(shù)細(xì)致的區(qū)分并存儲(chǔ)下來,這樣一來,在解析方法完備的情況下,只需根據(jù)通信協(xié)議更新數(shù)據(jù)庫,便可以實(shí)現(xiàn)軟件的快速維護(hù)。
標(biāo)準(zhǔn)數(shù)據(jù)庫主要分為7個(gè)部分如表1所示;其中,設(shè)備表包含原始數(shù)據(jù)所含的設(shè)備類別,浮動(dòng)波道幀格式表定義了所有設(shè)備浮動(dòng)波道的幀格式,浮動(dòng)波道占位表羅列了所有設(shè)備浮動(dòng)波道在主幀中的位置,數(shù)字量參數(shù)表和模擬量參數(shù)表分別存儲(chǔ)了數(shù)字量與模擬量的還原系數(shù)、設(shè)備類型、數(shù)據(jù)類型等一系列信息,幀結(jié)構(gòu)表存儲(chǔ)了主幀幀格式、碼速率等信息,幀標(biāo)識(shí)表羅列了所有幀標(biāo)識(shí)的類型和定義,用于解析具有分時(shí)復(fù)用功能的復(fù)雜數(shù)據(jù)幀。設(shè)備收錄下來的幀數(shù)據(jù)會(huì)存儲(chǔ)在.dat 文件中,格式基本按照遙測(cè)設(shè)備研制任務(wù)書中關(guān)于子幀波道表的描述[17]。
表1 標(biāo)準(zhǔn)數(shù)據(jù)庫
通過對(duì)用戶的需求進(jìn)行深入分析,對(duì)于原始數(shù)據(jù),科研人員主要有數(shù)據(jù)檢查、圖線查看、批量輸出等需求,進(jìn)一步的,用戶既需要軟件具有原始數(shù)據(jù)品質(zhì)檢查的功能,又需要針對(duì)部分參數(shù)能夠快速的繪制曲線進(jìn)行分析,也需要軟件能夠一鍵化、標(biāo)準(zhǔn)化輸出全部處理后的數(shù)據(jù),方便輸入其他平臺(tái)進(jìn)行更加深入的分析。
為了滿足用戶的3種需求,關(guān)聯(lián)器實(shí)現(xiàn)了設(shè)置關(guān)聯(lián)、預(yù)處理、批量輸出、曲線顯示4個(gè)主要功能,其中,設(shè)置關(guān)聯(lián)明確原始數(shù)據(jù)和翻譯器的對(duì)應(yīng)關(guān)系,預(yù)處理實(shí)現(xiàn)了原始數(shù)據(jù)的零點(diǎn)修正、時(shí)碼修正和數(shù)據(jù)剔野,同時(shí)生成預(yù)處理報(bào)告,詳細(xì)分析了數(shù)據(jù)的品質(zhì)供用戶參考,批量輸出則完成了選定數(shù)據(jù)的一鍵解析,根據(jù)用戶的選擇生成對(duì)應(yīng)的TXT、CSV、DAT等格式的文件,最后,曲線顯示完成了參數(shù)的快速查詢及曲線繪制。
為了后續(xù)型號(hào)、階段提供可擴(kuò)展配置的接口,在關(guān)聯(lián)器的設(shè)計(jì)過程中采用了反射技術(shù)。
反射是以自述方式表示系統(tǒng)的狀態(tài)和行為。通常一個(gè)反射系統(tǒng)由兩個(gè)邏輯空間組成基空間和元空間,其中基空間是被反射的系統(tǒng)運(yùn)行的空間,元空間是對(duì)它進(jìn)行反射的空間,通過“具體化”,系統(tǒng)從基空間映射到元空間,通過“反射”,系統(tǒng)從元空間映射到基空間,利用反射技術(shù)在運(yùn)行時(shí)重新配置系統(tǒng)的行為可以實(shí)現(xiàn)系統(tǒng)運(yùn)行時(shí)對(duì)環(huán)境和需求變化的自適應(yīng)[18]。
模型層解析方法的構(gòu)建是一個(gè)不斷完善迭代的過程,隨著設(shè)備的新研、技術(shù)的更新,軟件可以快速的繼承或者新研更多的解析方法,而針對(duì)不同來源的原始數(shù)據(jù),通過反射技術(shù),可以從程序外部注入部分代碼并靈活的配置軟件所需要使用的解析方法,這樣一來,和標(biāo)準(zhǔn)數(shù)據(jù)庫組合使用,就實(shí)現(xiàn)了軟件的型號(hào)通用性、階段通用性以及設(shè)備通用性,即一個(gè)軟件適應(yīng)多個(gè)型號(hào)、多個(gè)階段、多種設(shè)備,并為后續(xù)型號(hào)、后續(xù)階段、新研設(shè)備留有擴(kuò)展配置接口。
繪圖器主要用于選定參數(shù)的曲線繪制,同時(shí)滿足用戶的曲線交互分析需求,基于事件響應(yīng)互鎖結(jié)構(gòu)和數(shù)據(jù)壓縮顯示技術(shù),主要設(shè)計(jì)了鼠標(biāo)滾輪縮放、鼠標(biāo)拖曳放大、鼠標(biāo)懸停、鼠標(biāo)捕捉、自動(dòng)幅值、數(shù)據(jù)統(tǒng)計(jì)、屏幕截圖、屏幕標(biāo)記、屏幕數(shù)據(jù)截取等功能,功能全面,操作靈活,響應(yīng)迅速,極大的提高了軟件的交互性及數(shù)據(jù)分析的效率。
由于原始數(shù)據(jù)的數(shù)量龐大,現(xiàn)有數(shù)據(jù)處理軟件的顯示方法響應(yīng)很慢,不能滿足各專業(yè)設(shè)計(jì)師的使用需求,所以需要一種數(shù)據(jù)壓縮算法進(jìn)行數(shù)據(jù)的高效交互,現(xiàn)有的數(shù)據(jù)壓縮算法主要有:王鶴等人提出基于分布式壓縮感知和邊緣計(jì)算的配電網(wǎng)電能質(zhì)量數(shù)據(jù)壓縮存儲(chǔ)方法 ,利用同步正交匹配追蹤算法進(jìn)行配電網(wǎng)電能質(zhì)量數(shù)據(jù)壓縮,通過K-SVD字典學(xué)習(xí)算法對(duì)配電網(wǎng)測(cè)量值進(jìn)行分析,實(shí)現(xiàn)電能質(zhì)量數(shù)據(jù)的高精度壓縮;趙會(huì)群等人提出基于密度劃分的數(shù)據(jù)存儲(chǔ)方法,通過密度區(qū)域劃分算法降低高度重復(fù)數(shù)據(jù)的冗余度,利用縮LZW算法有效減少數(shù)據(jù)存儲(chǔ)空間;常會(huì)麗等人提出的基于多維矢量矩陣的MVC多維數(shù)據(jù)壓縮方法通過壓縮編碼處理變化后的系數(shù)矩陣數(shù)據(jù),提升多維數(shù)據(jù)壓縮效果;常會(huì)麗等人還提出的基于關(guān)系數(shù)據(jù)庫的多維數(shù)據(jù)存儲(chǔ)方法,是利用關(guān)系數(shù)據(jù)庫存儲(chǔ)壓縮后的多維數(shù)據(jù)[19]。
參考研究人員的成果,結(jié)合原始數(shù)據(jù)的特征,在繪圖器的設(shè)計(jì)過程中創(chuàng)造性的采用了數(shù)據(jù)壓縮顯示技術(shù),大大提高了顯示的效率,提升了人機(jī)交互的效果。
如果直接進(jìn)行折線圖的繪制,由于實(shí)時(shí)采集的數(shù)據(jù)量很大,參數(shù)分離解析后,可能會(huì)有百萬級(jí)別的數(shù)據(jù)量,這將給軟件前端帶來很大壓力,顯示刷新的速度會(huì)非常慢;經(jīng)過分析可以發(fā)現(xiàn),實(shí)際上真正參與繪圖的點(diǎn)數(shù)不會(huì)超過顯示的分辨率,進(jìn)一步的,往往與顯示的橫向分辨率呈正相關(guān),故當(dāng)點(diǎn)集密度大于顯示分辨率時(shí),按照像素排序進(jìn)行繪圖,反之,按照點(diǎn)集排序進(jìn)行繪圖,由此,采用這種基于像素的圖像壓縮顯示技術(shù),可以大幅增進(jìn)了視圖層顯示刷新的速度,也就是說,軟件的反應(yīng)速度、人機(jī)交互的效率得到了提高[20-22]。
通用型數(shù)據(jù)處理軟件主要在C#平臺(tái)上開發(fā)實(shí)現(xiàn),通過接口定義,明確了控制層、模型層和視圖層之間傳輸?shù)臄?shù)據(jù),利用工廠模式,在對(duì)應(yīng)的接口下定義了控制層、模型層和視圖層的父類,具體的邏輯與流程,通過繼承與重寫的方法,在子類中詳細(xì)實(shí)現(xiàn)。
軟件工作流程是:首先進(jìn)行設(shè)置關(guān)聯(lián),添加數(shù)據(jù)庫和對(duì)應(yīng)的原始數(shù)據(jù)文件;其次進(jìn)行預(yù)處理,對(duì)主幀序列進(jìn)行校驗(yàn)、清洗和補(bǔ)正,并將異步嵌入的數(shù)字量幀從主幀中分離出來,并從主幀中提取對(duì)應(yīng)時(shí)刻的時(shí)間;接著選擇需要顯示的參數(shù);最后進(jìn)行曲線繪制,在畫圖之前,程序會(huì)自動(dòng)進(jìn)行二次分離,將需要顯示的參數(shù)從對(duì)應(yīng)數(shù)字量幀中分離出來,并將提取對(duì)應(yīng)時(shí)刻的時(shí)間;畫圖完成后,可以根據(jù)需要選擇文本、圖像等格式的輸出,用于數(shù)據(jù)的進(jìn)一步提煉與分析。
軟件開發(fā)完成即在多個(gè)型號(hào)中使用,通過型號(hào)的具體運(yùn)用很好的驗(yàn)證了軟件的可用性與可靠性;其次,采用新的設(shè)計(jì)提高了數(shù)據(jù)解析的效率,增快了科研任務(wù)的進(jìn)度;同時(shí),采用統(tǒng)一的數(shù)據(jù)處理軟件,大大減少了軟件及數(shù)據(jù)庫的維護(hù)時(shí)間;此外,在遇到實(shí)際使用的問題時(shí),可以快速的進(jìn)行舉一反三,軟件的健壯性得到很大的提高。
關(guān)聯(lián)器主要利用C#的WinForm平臺(tái)設(shè)計(jì)實(shí)現(xiàn),選用了選項(xiàng)卡、按鈕、文本框、數(shù)值框、復(fù)選框、樹形顯示等前端控件,設(shè)計(jì)了按鈕單擊事件、樹形顯示單雙擊事件、復(fù)選框數(shù)值變化事件、選項(xiàng)卡切換事件等用戶響應(yīng),原始數(shù)據(jù)和翻譯器的對(duì)應(yīng)關(guān)系存儲(chǔ)在樹形結(jié)構(gòu)中,既方便增減與遍歷,又方便存儲(chǔ)與讀取,關(guān)聯(lián)器的界面如圖5所示。
圖5 關(guān)聯(lián)器界面
關(guān)聯(lián)器開發(fā)完成后采用遍歷方法對(duì)其功能進(jìn)行驗(yàn)證,首先,針對(duì)一組數(shù)據(jù),選擇不同的排序方法、繪制方法和輸出選項(xiàng),進(jìn)行圖線顯示與輸出,顯示結(jié)果、輸出內(nèi)容與預(yù)先設(shè)置符合,測(cè)試結(jié)果合格;其次,對(duì)快速檢索欄進(jìn)行測(cè)試,輸入不同的關(guān)鍵字,參數(shù)列表可以快速有效的進(jìn)行篩選顯示,刪除關(guān)鍵字,參數(shù)列表立即恢復(fù)初始狀態(tài),測(cè)試結(jié)果合格;最后,對(duì)添加刪除參數(shù)進(jìn)行測(cè)試,選擇兩組數(shù)據(jù)不少于10項(xiàng)的模擬量和數(shù)字量參數(shù),分別通過按鈕點(diǎn)擊和鼠標(biāo)控制兩種方式進(jìn)行操作,參數(shù)可以正常添加和刪除,測(cè)試結(jié)果合格。
用戶打開軟件后,首先進(jìn)入設(shè)置關(guān)聯(lián)選項(xiàng)卡,添加數(shù)據(jù)庫與原始數(shù)據(jù),添加完成后可以直接進(jìn)入快捷功能選項(xiàng)卡,這里可以進(jìn)行原始數(shù)據(jù)的批量處理,在預(yù)處理選項(xiàng)卡中,可以檢查原始數(shù)據(jù)的品質(zhì),并得到預(yù)處理報(bào)告,原始數(shù)據(jù)品質(zhì)檢查合格后,便能在參數(shù)選擇選項(xiàng)卡中,查詢并選中部分參數(shù),點(diǎn)擊曲線顯示按鈕后,關(guān)聯(lián)器界面自動(dòng)隱藏,繪圖器界面彈出并繪制對(duì)應(yīng)的圖線,關(guān)聯(lián)器工作流程見圖6。
圖6 關(guān)聯(lián)器工作流程
繪圖器主要通過C#的WinForm平臺(tái)和GDI+繪圖方法設(shè)計(jì)實(shí)現(xiàn),關(guān)聯(lián)器接收到圖線顯示指令后,在控制層的指揮下,先利用模型層解析原始數(shù)據(jù),再將待顯示數(shù)據(jù)顯示在繪圖器中,繪圖器則用數(shù)據(jù)壓縮顯示算法,快速的將圖線顯示在界面上,繪圖器界面如圖7所示。
圖7 繪圖器界面
繪圖器有豐富的人機(jī)交互功能,方便查看分析曲線,如果科研人員需要縮放功能,既可以通過鼠標(biāo)滾輪快速橫向縮放、也可以使用鼠標(biāo)拖曳橫向或縱向放大,此外,右鍵菜單中的自動(dòng)幅值可以根據(jù)曲線的幅值范圍,自動(dòng)將圖像的縱軸改變到二八比例,節(jié)省人員操作時(shí)間,如果用戶需要獲取關(guān)鍵點(diǎn)的信息,鼠標(biāo)捕捉可以抓取曲線上離鼠標(biāo)指針最近的點(diǎn),屏幕標(biāo)記可以記錄并和其他點(diǎn)進(jìn)行比較,最后,使用者還可以通過屏幕截圖或數(shù)據(jù)截取,輸出當(dāng)前圖像和點(diǎn)集,用于報(bào)告的編寫或深度數(shù)據(jù)分析。
繪圖器開發(fā)完成后采用兩組不同時(shí)間的長航時(shí)的飛行數(shù)據(jù)進(jìn)行驗(yàn)證,首先,在同一組數(shù)據(jù)中分別選擇不少于10項(xiàng)的模擬量與各路數(shù)字量參數(shù),依次進(jìn)行顯示驗(yàn)證,驗(yàn)證結(jié)果合格,可以正??焖亠@示;其次,在同一組數(shù)據(jù)中交叉選擇不同通道的數(shù)字量及模擬量參數(shù),驗(yàn)證結(jié)果合格;接著,隨機(jī)選擇兩組數(shù)據(jù)的模擬量及數(shù)字量參數(shù)進(jìn)行復(fù)合顯示,驗(yàn)證結(jié)果合格;最后,軟測(cè)人員選擇不少于20項(xiàng)的模擬量和數(shù)字量參數(shù),通過快速移動(dòng)鼠標(biāo)及滾輪等操作進(jìn)行壓力測(cè)試,顯示情況正常,沒有出現(xiàn)死機(jī)、藍(lán)屏等情況,同時(shí)曲線刷新迅速且正常,驗(yàn)證結(jié)果合格。
基于MVC架構(gòu)的通用型數(shù)據(jù)處理軟件開發(fā)完成后,已成功運(yùn)用在多個(gè)型號(hào)任務(wù)中。通用數(shù)據(jù)處理軟件,采用了統(tǒng)一的處理框架,將復(fù)雜多變的數(shù)據(jù)處理流程化繁為簡。同時(shí),模塊化的程序架構(gòu)也充分保證了對(duì)不同的數(shù)據(jù)有相應(yīng)的處理方式,并且通過軟件反射技術(shù)能夠進(jìn)行迭代升級(jí)。一方面,解決了多重版本所帶來的問題,有效降低了軟件維護(hù)成本;另一方面,也使得數(shù)據(jù)處理的針對(duì)性更強(qiáng),更加細(xì)致,能夠從更深層次挖掘數(shù)據(jù)所包含的意義。科研人員利用該平臺(tái),快速的處理與分析復(fù)雜多源的原始數(shù)據(jù),極大的提高了數(shù)據(jù)判讀的效率和型號(hào)研制的進(jìn)度,提升了原始數(shù)據(jù)的效能,豐富了設(shè)計(jì)師的分析手段,為他們提供了更加全面和多維度的數(shù)據(jù)視角,并為大數(shù)據(jù)技術(shù)在數(shù)據(jù)處理與分析方面的運(yùn)用做好鋪墊準(zhǔn)備。同時(shí),運(yùn)維人員受益于軟件的通用性和易維護(hù)性,節(jié)省了大量的人力和物力,維護(hù)成本大大降低,更新速度顯著提高,從而,進(jìn)一步的支撐了型號(hào)的快速推進(jìn),助力型號(hào)研制迭代升級(jí)。