摘 要:針對民用飛機電子飛行包與地面數據管理系統數據匹配及一致性的問題,設計和實現了基于SQLite的民機地面數據管理系統,對基本的SQ語句作了二次封裝,對開發的系統進行了測試和實驗。實驗證明,通過地面數據管理系統與電子飛行包的配套使用,可以大大減輕電子飛行包的工作量,并可以不通過格式轉換實現數據的上傳和下載,為相關系統的研制提供了很好的參考價值。
關鍵詞:地面數據管理系統;SQLite;二次封裝
引言
雖然Oracle、SQL Server及MySQL等關系數據庫系統代表著當今數據庫應用的主流,但它們并不能滿足所有應用場合的需要,比如,對于嵌入式系統應用便失去了用武之地。在嵌入式系統中,由于硬件資源有限,不可能安裝龐大的數據庫服務器,并且嵌入式數據庫的實現還須滿足系統的可定制性要求,即系統選擇的技術路線要面向具體的行業應用,因而,源碼開放的嵌入式數據庫SQLite的優勢便顯得較為明顯,在開發民用飛機電子飛行包中采用了SQLite嵌入式數據庫。然而,如果在電子飛行包中進行電子航圖的編輯刪減,一方面由于沒有鼠標和鍵盤,操作起來不方便,另一方面由于電子飛行包硬件配置有限,處理速度很慢。因此需要在與電子飛行包中配套的地面數據管理系統中實現諸多功能,并且可以將處理好的數據等資源直接上傳到電子飛行包中。在以往的工程項目中,地面數據管理系統采用Access數據庫或SQLServer等數據庫,但是會存在數據格式不一致問題,數據上傳下載需要轉換且花費一定的時間。因此,地面數據管理系統也采用了嵌入式數據庫SQLite,一方面可以大大減少電子飛行包中的工作量,另一方面又可以不用數據格式轉換且保證數據的一致性。
1 SQLite綜述
SQLite是2000年面世的一種小型嵌入式數據庫。它是一個小型的C語言鏈接庫,該鏈接庫本身就完全包含數據庫引擎的功能,可以方便地運用于嵌入式系統中。SQLite提供了對SQL92的大多數支持,支持多表、索引、事務、視圖和觸發等一系列用戶接口及驅動,簡單易用,速度也相當快,同時還提供了豐富的數據庫接口。SQLite具有很強的內聚性,整個系統還不到25000行ANSIC代碼,而且其源代碼完全開放,可以自由地應用于任何領域,甚至包括商業應用。
SQLite具有以下特性:
零配置——不需要安裝和管理配置;儲存在單一磁盤文件中的一個完整的數據庫;數據庫文件可以在不同字節順序的機器間自由共享;存儲量大,可支持數據庫的大小為2TB;代碼小巧,完整配置的少于250KB;在大多數常見操作上比流行的客戶/服務器數據庫引擎更快;簡單易用的API;具有良好注釋的源代碼,95%經過測試;獨立,沒有外部依賴;代碼完全開放,可以免費用于任何用途,包括商業目的。
2 系統總體結構
民用飛機電子飛行包可容納機組攜帶的所有資料,能將航空圖表、飛行手冊及飛行日志等資料進行數字化處理,大大方便了機組人員的資料查詢和數據處理。基本功能有:
(1)電子化的文件、手冊、圖表和資料,便于隨時調用查閱;(2)電子航圖,包括機場圖、進近圖、離場圖及航路圖等;(3)電子檢查單,包括正常檢查單、快速檢查單;(4)電子化飛機性能分析;(5)電子化的飛行性能計算;(6)電子化的飛行日志。
在電子飛行包中進行電子航圖的編輯刪減,一方面由于沒有鼠標和鍵盤,操作起來不方便,另一方面由于電子飛行包硬件配置有限,處理速度很慢。因此需要開發配套的地面數據管理軟件。電子飛行包與地面數據管理系統的結構關系圖如圖1所示。
3 系統的設計
地面數據管理系統用來管理系統數據,進行數據傳輸。地面數據管理軟件的結構圖如下所示,分為用戶登錄、電子課件、檢查單、電子航圖、飛行手冊、用戶信息、數據管理和數據傳輸十個模塊。地面數據管理系統軟件功能劃分如圖2所示。
(1)打開軟件,軟件進行數據庫和界面初始化,初始化完成后進入用戶登錄界面,根據用戶級別輸入正確的用戶信息,進入系統主界面。(2)系統主界面與電子飛行包主界面類似,根據用戶需要,選擇不同的功能按鈕進入各任務模塊。(3)電子課件包括對所有的電子課件進行管理查看,電子課件的格式為有PDF、doc、Html等格式。選擇不同的文件格式,在列表列出電子課件文件夾下該類型的所有文件。(4)檢查單,包括快速檢測單和常規檢查單。(5)電子航圖主要包括以下功能:多級子目錄組織管理航圖,設置航圖所屬機場,生效時間等數據;航圖數據的基本編輯功能;航圖資料庫的版本管理;航圖更新包的導出、導入;對航圖圖層的增加、刪除;對機場數據庫的管理。(6)電子手冊,主要包括以下功能,按專業進行文檔管理、維護以及文檔查詢功能。(7)用戶管理,根據用戶的級別和權限,可管理相應用戶的信息,包括增加、刪除、修改用戶信息。(8)數據管理主要包括以下功能:建立基于安全管理的數據庫;文檔、航圖、數據等信息的原始備份;文檔、航圖、數據等信息根據需要的恢復;文檔、航圖、數據等信息的剔除冗余信息的整合;文檔、航圖、數據等信息的存檔等;數據格式的轉換。(9)飛機性能分析,主要包括以下功能,平飛需用的推力、最大、最小平飛速度分析;升限分析;下降性能分析;水平加減速性能分析;盤旋性能分析;爬升性能分析;航程、航時分析;起飛、著陸性能分析。(10)數據傳輸主要包括以下功能:文檔、航圖、數據等信息的單次或批量導出;文檔、航圖、數據等信息的單次或批量導入。
4 系統的實現
地面數據管理系統是在Windows XP操作系統下進行開發和調試,采用模塊化結構和開放式體系,便于軟件升級和擴充。地面數據管理系統在Visual Studio 2008中開發的。電子手冊和地面數據管理系統運行PC機上,通過USB口實現數據通訊。
實現系統后,進行了測試和實驗。實驗證明,地面數據管理系統能夠實現地面數據的管理,能夠和電子手冊正常通訊,能夠保證數據庫的一致性。好多在電子飛行包中不方便實現的功能,如電子航圖的管理,飛機性能分析等,可以通過地面數據管理系統完成,然后方便的導入到電子手冊中。地面數據管理系統主界面如圖4所示,電子航圖管理界面如圖5所示,飛機性能分析畫面如圖6所示。
地面數據管理系統對用戶信息、電子手冊、電子航圖、電子課件、檢查單的管理函數進行二次封裝,部分函數名稱列表如下:
//添加用戶
BOOL AddUser(USER_TEST puser);
//創建查詢用戶信息
BOOL CreateUserInfoDB(CString strfile);
BOOL SelectMyUsers(CListCtrl&list);
//刪除用戶
BOOL DeleteUser(USER_TEST puser);
BOOL DeleteMyUserById(int id);
//查詢用戶
BOOL SelectMyUsers();
BOOL SelectMyUserName();
//添加用戶
BOOL AddMyUser(PUSER puser);
//更新用戶
void UpdateById(int id,PUSER puser);
BOOL SelectUsersByUserName(CString strOldPWD,CString strNewPWD,CString strName);
//創建、查詢電子手冊
BOOL CreateElecReferDB(CString strfile);
BOOL GetElecReferInfo(int nType );
//創建、查詢電子地圖
BOOL CreateMapInfoDB(CString strfile);
BOOL GetMapInfo(int nType );
//刪除圖層
BOOL DeleteOneMap(int nMapSelect, CString sMap );
//添加圖層
BOOL AddOneMap(int nMapSelect, CString sMap)。
通過對SQLite部分函數進行的二次封裝,可為應用開發帶來以下好處:
(1)系統模塊化;(2)節省內存,易于維護,當需要功能升級時,只需升級底層dll,而不需要升級整個系統;(3)編譯好的dll可以直接加載到系統中,不需再次編譯,節省時間;(4)方便用戶使用,減少冗余代碼,有助于資源的共享。
5 結束語
文章針對民用飛機電子飛行包與地面數據管理系統數據匹配及一致性的問題,概述了SQLite,設計和實現了與民用飛機電子飛行包匹配的地面數據管理系統,對基本的SQ語句作了二次封裝,為相關系統的研制提供了很好的參考價值。
參考文獻
[1]岑冬梅.基于SQLite的空間數據庫存儲技術的研究與實現[D].武漢科技大學,2009.
[2]萬俊.智能手機中基于SQLite的媒體查詢功能的研究與實現[D].南京理工大學,2006.
[3]樂建煒,向復生,戴樹嶺.虛擬座艙中多功能顯示器的仿真[J].系統仿真學報,2005,17(12):3046-3049.
[4]GL Studio Users Manual[M].USA: Distributed Simulation Technology Inc, 2006.
[5]李軍,姜國衛.某型飛機飛行模擬器的設計與實現[J].仿真器與仿真設備,2007:357-363.
作者簡介:段世梅(1984-),女,碩士,軟件工程師,主要從事飛行仿真技術研究。