趙倩+張燕平
摘要
為了對機載航電設(shè)備的加載參數(shù)進行集中管理、并為設(shè)備的參數(shù)加載功能提供重要的準備工作,基于MFC框架、Access數(shù)據(jù)庫以及ADO數(shù)據(jù)庫訪問技術(shù),設(shè)計并實現(xiàn)了安裝在地面站計算機上的航電加載數(shù)據(jù)管理軟件。軟件的主要功能是:顯示、編輯和管理加載數(shù)據(jù),生成加載用數(shù)據(jù)文件,以及對數(shù)據(jù)文件進行解析后使用。實際使用效果證明:該軟件的用戶界面簡潔直觀、易學(xué)易操作、功能完善,并且可維護性和可擴展性好。
【關(guān)鍵詞】航電加載數(shù)據(jù)管理 軟件設(shè)計與實現(xiàn) MFC框架 Access數(shù)據(jù)庫 ADO數(shù)據(jù)庫訪問
航空電子系統(tǒng)是飛機上所有電子設(shè)備的綜合,涵蓋通信、導(dǎo)航、雷達、電子戰(zhàn)、飛行控制和管理等各個系統(tǒng)的電子子系統(tǒng),同時也包括這些系統(tǒng)間用于信息交換和資源共享的信息綜合系統(tǒng)。隨著計算機技術(shù)、數(shù)字通信技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,航電系統(tǒng)也向綜合模塊化(IMA:Integrated Module Avionics)方向發(fā)展,其軟硬接口(ICD)涉及的信號量也在不斷增加,而且各種數(shù)據(jù)之間的交聯(lián)關(guān)系又非常復(fù)雜。
在大中型甚至小型飛機上,面對越來越多的應(yīng)用數(shù)據(jù),如:航路點有幾百個甚至上千個、飛行計劃數(shù)十條甚至上百條、超短波電臺上百條的波道參數(shù)、短波電臺的各種通訊參數(shù)等,僅靠人工在機載顯示器上使用機載輸入設(shè)備進行設(shè)置,效率低下、難以滿足用戶的使用要求。針對這種情況,通常配備專用的地面站計算機,使用安裝好的加載數(shù)據(jù)管理軟件對機上各設(shè)備的參數(shù)數(shù)據(jù)進行集中管理,然后將準備好的符合特定格式要求的數(shù)據(jù)文件放入數(shù)據(jù)傳輸裝置中,通過機載顯示器按照簡單的操作步驟讀取數(shù)據(jù)后統(tǒng)一加載到各機載設(shè)備中。
在這種應(yīng)用中,航電加載數(shù)據(jù)管理軟件提供了重要的準備工作,不僅要符合機載設(shè)備對數(shù)據(jù)的各種要求、滿足系統(tǒng)需求的所有功能,還需設(shè)計實現(xiàn)易學(xué)易用、簡潔直觀的操作界面供地面維護員等人員使用。
為了科學(xué)地管理不斷增大的加載數(shù)據(jù)量,并為用戶提供友好的界面顯示效果和操作方式,本文提出了基于MFC框架和Access數(shù)據(jù)庫技術(shù)的航電加載數(shù)據(jù)管理軟件設(shè)計方法,并對軟件進行了實現(xiàn),使用專業(yè)的數(shù)據(jù)庫工具管理加載數(shù)據(jù)內(nèi)容,使用微軟公司提供的Windows應(yīng)用程序方法設(shè)計并實現(xiàn)顯示界面和內(nèi)部邏輯,并通過ADO數(shù)據(jù)庫訪問技術(shù)實現(xiàn)數(shù)據(jù)庫與應(yīng)用程序的連接。
1相關(guān)理論與技術(shù)介紹
1.1MFC框架技術(shù)
MFC(MicrosoftFoundationClass,即微軟的基礎(chǔ)類)是微軟為了簡化程序員的開發(fā)工作所開發(fā)的一套C++類的集合,是一套面向?qū)ο蟮暮瘮?shù)庫,以類的方式提供給用戶使用,利用這些類,可以有效地幫助程序員完成Windows應(yīng)用程序的開發(fā)。
MFC的功能可分為用戶界面設(shè)計、文件操作、多媒體使用、數(shù)據(jù)庫訪問等。MFC的特性包括封裝、繼承、虛函數(shù)和消息映射。其中,CWnd是所有窗口類的基類,該類及其派生類封裝了Windows窗口的句柄,即HWND;通??芍苯邮褂肅Wnd類及其派生類,創(chuàng)建各種窗口,實現(xiàn)特定的功能。
1.2Access數(shù)據(jù)庫
數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構(gòu)組織、存儲和管理數(shù)據(jù)的倉庫。Access是Office系列軟件中用于管理數(shù)據(jù)庫的應(yīng)用軟件,可運行于各種Windows系統(tǒng)環(huán)境;Access繼承了Windows的特性,易于使用且界面友好,因此得到廣泛應(yīng)用。Access使用標準的SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)作為數(shù)據(jù)庫語言,提供了強大的數(shù)據(jù)處理能力和通用性,是一個功能強大且易于使用的桌面關(guān)系型數(shù)據(jù)庫管理系統(tǒng)和應(yīng)用程序生成器。
1.3數(shù)據(jù)對象ADO技術(shù)
對于SQLServer或Access數(shù)據(jù)庫管理工具,采用面向?qū)ο蟮某绦蛟O(shè)計語言作為其前端開發(fā)工具時,有多種接口方式可供選擇,如:數(shù)據(jù)訪問對象技術(shù)JET、開放式數(shù)據(jù)庫連接性O(shè)DBC技術(shù)、遠程數(shù)據(jù)對象RDO技術(shù)、數(shù)據(jù)對象ADO技術(shù)等。
ADO(Active Data Objects)是一種基于COM(Component Object Model組件對象模型)技術(shù)和面向?qū)ο蟮臄?shù)據(jù)庫訪問技術(shù),可以訪問關(guān)系數(shù)據(jù)庫與非關(guān)系數(shù)據(jù)庫,目前主要用于訪問關(guān)系型數(shù)據(jù)庫。由于它是基于COM技術(shù)的,具有訪問速度快、占用資源小的優(yōu)點,并簡化了程序員數(shù)據(jù)存取的工作,便于使用。
2航電加載數(shù)據(jù)管理軟件設(shè)計
2.1主要功能和特點
針對某型直升機航空電子各設(shè)備的參數(shù)加載功能需求,為了對各設(shè)備的加載參數(shù)進行集中管理、并為參數(shù)加載功能提供重要的準備工作,本文基于MFC框架和Access數(shù)據(jù)庫技術(shù)設(shè)計并實現(xiàn)了一個新的航電加載數(shù)據(jù)管理軟件,程序通過ADO技術(shù)對數(shù)據(jù)庫進行訪問。軟件的主要功能是:所有加載數(shù)據(jù)的顯示、編輯和存儲,生成特定格式的數(shù)據(jù)文件用于加載,以及對加載用數(shù)據(jù)文件的解析與回放。
本文軟件主要由三部分構(gòu)成:數(shù)據(jù)層、用戶交互界面、加載用數(shù)據(jù)文件;三者之間存在數(shù)據(jù)交互,框架圖見圖1,詳細介紹見2.2和2.3節(jié)。
2.2數(shù)據(jù)庫設(shè)計
航電各設(shè)備的加載參數(shù)可按系統(tǒng)劃分,如:綜顯、導(dǎo)航、通信等;各系統(tǒng)下按模塊劃分,如:綜顯系統(tǒng)中含航路點和飛行計劃等模塊的數(shù)據(jù)、通信系統(tǒng)下含超短波電臺和短波電臺等模塊的數(shù)據(jù)。鑒于需進行參數(shù)加載的系統(tǒng)多、各系統(tǒng)下的模塊多,因此借助專業(yè)的數(shù)據(jù)庫工具管理數(shù)據(jù)。本文軟件涉及的數(shù)據(jù)量屬于中小型信息量級,采用Access數(shù)據(jù)庫足以實現(xiàn)對數(shù)據(jù)的有效管理。
應(yīng)用程序?qū)?shù)據(jù)庫的使用,不僅增快查詢數(shù)據(jù)的速度、減少數(shù)據(jù)冗余、節(jié)省存儲空間,并且可使數(shù)據(jù)與程序分離,數(shù)據(jù)完全獨立、便于管理,更好地實現(xiàn)數(shù)據(jù)的共享。設(shè)計數(shù)據(jù)庫時除了滿足現(xiàn)有功能的要求,還應(yīng)適應(yīng)表結(jié)構(gòu)在未來發(fā)生的變化,并使由變化導(dǎo)致的數(shù)據(jù)庫結(jié)構(gòu)沖突降低到最小。endprint
本文軟件數(shù)據(jù)庫的表結(jié)構(gòu)見圖1中數(shù)據(jù)層所示:每個系統(tǒng)中的每個模塊形成一個數(shù)據(jù)表,如:綜顯系統(tǒng)的航路點數(shù)據(jù)對應(yīng)一個數(shù)據(jù)表、飛行計劃數(shù)據(jù)對應(yīng)另一數(shù)據(jù)表…,其他系統(tǒng)的各模塊數(shù)據(jù)表設(shè)計類似。
2.3軟件架構(gòu)設(shè)計
圖1所示是軟件的整體架構(gòu)圖,下面給出三個主要構(gòu)成的具體信息。
(1)數(shù)據(jù)層:由Access數(shù)據(jù)表組成的數(shù)據(jù)管理中心,詳細內(nèi)容見2.2節(jié);
(2)用戶交互界面:直接面向使用者的顯示和操作界面,用MicrosoftVisualC++6.0平臺的基于對話框的編程技術(shù)實現(xiàn);程序讀取數(shù)據(jù)層的數(shù)據(jù)后將內(nèi)容顯示在交互界面上,使
用者在界面上對數(shù)據(jù)進行修改后可實時寫入數(shù)據(jù)層的對應(yīng)數(shù)據(jù)表中;
(3)加載用數(shù)據(jù)文件:是用于機載設(shè)備參數(shù)加載的數(shù)據(jù)文件,格式需符合與機載數(shù)據(jù)讀取設(shè)備(如:綜顯)之間定義好的接口控制文件要求。程序讀取數(shù)據(jù)層的數(shù)據(jù)進行處理后可生成加載用數(shù)據(jù)文件;另外,軟件也可對訪問到的加載用數(shù)據(jù)文件進行解析后寫入數(shù)據(jù)層對應(yīng)位置,并覆蓋原有內(nèi)容。
3航電加載數(shù)據(jù)管理軟件實現(xiàn)
本文軟件的開發(fā)工具是:WindowsXP操作系統(tǒng)環(huán)境下的Microsoft Visual C++6.0軟件開發(fā)工具和Microsoft Access 2003數(shù)據(jù)庫管理工具;運行環(huán)境要求是:Windows 2000及以上操作系統(tǒng)。
3.1用戶界面
3.1.1軟件主畫面
本文軟件主界面由一個基于MFC框架的對話框,并添加樹形控件、列表控件、按鈕等組成;整體布局分三部分,分別是左側(cè)由樹形控件實現(xiàn)的按系統(tǒng)和模塊劃分的目錄、中間由列表控件顯示的某系統(tǒng)某模塊的詳細數(shù)據(jù)顯示內(nèi)容、以及右側(cè)的三個功能鍵,其顯示效果如圖2所示。
(1)樹形目錄-按系統(tǒng)和模塊劃分:樹形目錄的一級節(jié)點按系統(tǒng)劃分,各系統(tǒng)下按模塊劃分二級節(jié)點;如有必要,還可依次劃分三級、四級節(jié)點,如:航路點可劃分為普通航路點和機場點等信息。目錄的組成應(yīng)層次清晰、劃分合理、一目了然;尤其是系統(tǒng)和模塊數(shù)量較大時,目錄的設(shè)計與實現(xiàn)直接影響界面的用戶友好性。
(2)詳細數(shù)據(jù)內(nèi)容列表:選中左側(cè)目錄任一最低級別節(jié)點后雙擊,中間列表出現(xiàn)對應(yīng)節(jié)點下所有的數(shù)據(jù)信息,這些信息從Access數(shù)據(jù)庫中提取得到。列表的每一列由數(shù)據(jù)的屬性值組成,如:航路點的屬性有“航路點號”、“緯度”、“經(jīng)度”、“高度”等;每行代表一項數(shù)據(jù),圖2列表中每行表示一個航路點。
從數(shù)據(jù)庫中提取數(shù)據(jù)在列表上進行顯示時,應(yīng)注意對數(shù)據(jù)進行適當(dāng)?shù)膿Q算,以保證顯示在界面上被用戶看到和使用的是直觀的、符合實際使用的數(shù)值,避免用戶自己進行計算、保證使用效果。
(3)功能鍵:主界面右側(cè)有三個功能鍵:生成文件、文件解析、取消。點擊“生成文件”鍵,可生成加載用數(shù)據(jù)文件,詳見3.2.1節(jié);點擊“文件解析”鍵,可解析并回放指定數(shù)據(jù)文件,詳見3.2.2節(jié)。點擊“取消”鍵,退出主界面,軟件運行結(jié)束。
3.1.2數(shù)據(jù)編輯畫面
雙擊主界面列表中的任一行數(shù)據(jù),彈出對應(yīng)數(shù)據(jù)的編輯窗口。圖3所示是綜顯系統(tǒng)-航路點目錄下一個機場點數(shù)據(jù)的編輯窗口。軟件以易用性為原則提供了多種數(shù)據(jù)修改方式,有下拉框、輸入框等,并給出數(shù)據(jù)的輸入范圍提示、以及輸入錯誤時的提示信息(如果有)。
數(shù)據(jù)修改完成后,點擊下方“保存”鍵,將修改后數(shù)據(jù)保存到Access數(shù)據(jù)庫并同步更新主界面列表的顯示,編輯窗口消失,回到主界面。點擊“取消”鍵,不對Access數(shù)據(jù)庫和主界面數(shù)據(jù)進行修改,數(shù)據(jù)內(nèi)容不變,編輯窗口消失,回到軟件主界面。
3.2Access數(shù)據(jù)庫與加載數(shù)據(jù)文件間數(shù)據(jù)轉(zhuǎn)化
軟件使用MFC的文件操作類實現(xiàn)對文件的打開、關(guān)閉、讀、寫、獲取文件信息等操作,使用ADO組件的Connection、Command和RecordSet對象等以及SQL語句實現(xiàn)程序與數(shù)據(jù)庫的連接、數(shù)據(jù)記錄的訪問和處理。
3.2.1加載數(shù)據(jù)文件的生成
完成數(shù)據(jù)的編輯、確認所有數(shù)據(jù)符合使用要求后,點擊主界面右側(cè)的“生成文件”鍵,彈出圖4所示的窗口提示使用者可生成加載用數(shù)據(jù)文件,并選擇路徑以存放文件。生成的數(shù)據(jù)文件需滿足接口控制文件的格式要求,因此軟件需對從Access數(shù)據(jù)庫提取的數(shù)據(jù)進行格式轉(zhuǎn)化。
3.2.2加載數(shù)據(jù)文件的解析與回放
實際應(yīng)用中,用戶經(jīng)常想在己有加載數(shù)據(jù)文件的基礎(chǔ)上對數(shù)據(jù)進行修改后,重新生成文件用于機載設(shè)備。針對這種功能,本文軟件提供了操作步驟進行實現(xiàn):點擊主界面右側(cè)的“文件解析”鍵,出現(xiàn)類似于圖4的窗口提示用戶選擇待解析文件,然后讀取文件將數(shù)據(jù)存儲到Access數(shù)據(jù)庫相應(yīng)位置、覆蓋原有數(shù)據(jù),并同步更新畫面顯示內(nèi)容。此后,用戶便可對新數(shù)據(jù)進行查看和修改,并可重新生成新的加載用數(shù)據(jù)文件。
4結(jié)論
本文基于MFC框架、Access數(shù)據(jù)庫和ADO數(shù)據(jù)庫訪問技術(shù)提出并實現(xiàn)了一種新的航電加載數(shù)據(jù)管理軟件,集中管理所有加載數(shù)據(jù)、為航電各子系統(tǒng)的參數(shù)加載功能提供了重要的準備工作。主要工作有:
(1)使用Access數(shù)據(jù)庫技術(shù)管理所有數(shù)據(jù),數(shù)據(jù)管理專業(yè)工具化、軟件實現(xiàn)和應(yīng)用不受數(shù)據(jù)量增大的局限;
(2)充分考慮使用者的使用習(xí)慣、不斷改進完善,設(shè)計實現(xiàn)了簡潔直觀的交互界面,讓使用者經(jīng)過少量培訓(xùn)甚至不需培訓(xùn),就能快速操作軟件;
(3)軟件架構(gòu)可擴展性好,若用于其他航電系統(tǒng),僅需按照新需求更改數(shù)據(jù)庫和數(shù)據(jù)文件的數(shù)據(jù)內(nèi)容,不需改動軟件架構(gòu),更改代價低。
實際使用效果說明:該軟件的用戶界面簡潔直觀、易學(xué)易操作、功能完善,并且可維護性和可擴展性好。
參考文獻
[1]馬建毅,鄭連澤.未來航空電子系統(tǒng)的發(fā)展方向[J].艦船電子工程,2014,34(03):4-8.
[2]牛強軍.航空電子系統(tǒng)的發(fā)展趨勢[J].西安航空技術(shù)高等??茖W(xué)校學(xué)報,2011,29(01):13-17.
[3]楊洋,嚴俊,谷清范.航空電子系統(tǒng)接口控制文檔工具的設(shè)計與實現(xiàn)[J].航空電子技術(shù),2014,45(01):24-29.
[4]王海青.航空電子系統(tǒng)綜合技術(shù)分析[J].飛機設(shè)計,2007,27(01):55-61.
[5]張雙,張磊,王曉陽.小型綜合航電加卸載技術(shù)研究[J].航空計算技術(shù),2011,41(04):128-131.
[6]張雙,茹偉,張磊.小型綜合座艙顯示系統(tǒng)軟件設(shè)計與實現(xiàn)[J].電光與控制,2013,20(06):62-65.
[7]孫鑫,余安萍.VC++深入詳解[M].北京:電子工業(yè)出版社,2007.
[8]姚領(lǐng)田.精通MFC程序設(shè)計[M].北京:人民郵電出版社,2006.
[9]郭琦,楊小輝,劉更等.基于關(guān)系型數(shù)據(jù)庫和Java內(nèi)容倉庫的機械產(chǎn)品仿真數(shù)據(jù)管理[J].機械設(shè)計與制造,2011,(05):237-239.
[10]孫晶晶,吳效明.基于Access數(shù)據(jù)庫的家庭健康監(jiān)護系統(tǒng)設(shè)計[J].醫(yī)療衛(wèi)生裝備,2012,33(03):21-24.
[11]蘇燕,梁武.基于Access數(shù)據(jù)庫教務(wù)管理系統(tǒng)的設(shè)計與實現(xiàn)[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2012,(10):135-137.
[12]楊富國.VisualC++程序開發(fā)案例解析[M].北京:清華大學(xué)出版社,北京交通大學(xué)出版社,2006:66-72.
[13]楊新安.電子扣費系統(tǒng)的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2012.
[14]馬玉濤.基于Intranet的遠程機房監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[D].青島:中國海洋大學(xué),2009.
[15]楊得亮,崔松濤.基于VB和Access數(shù)據(jù)庫的電纜快速設(shè)計系統(tǒng)[J].計算機工程與設(shè)計,2011,32(12):4282-4285.
[16]石潤麗.海洋環(huán)境數(shù)據(jù)加載工具系統(tǒng)設(shè)計與實現(xiàn)[D].青島:中國海洋大學(xué),2011.endprint