楊宛璐,應艷茹,吳慧欽,王建普
(航空工業(yè)洪都,江西 南昌,330024)
飛行模擬器的設備眾多,各個模擬分系統(tǒng)的數據接口也越來越繁雜,以往人工手動更改接口配置文件已經不能滿足當前的業(yè)務需求。本文設計一種基于WPF設計的配置工具,采用工程化的方式對所有接口文件進行加載、保存,圖形化界面方式對所有模塊進行編輯,對系統(tǒng)的數據接口文件進行有效的管理。
數據采集配置軟件是飛行模擬器數據采集系統(tǒng)不可或缺的組成部分,主要實現對動態(tài)接口及數采信號的定義,生成一定格式的配置文件,數采軟件通過讀取配置文件的信息,建立動態(tài)接口和獲取數采信號詳細信息,軟件采用關系表的形式,通過主鍵(iID,子iID)建立動態(tài)接口與數采信號變量的一一對應關系,完成數據映射。編輯工具除具有生成和編輯數采信號文件、動態(tài)接口文件的功能,還可在編輯配置文件過程中,對文件進行唯一性判斷和安全性檢查,同時,對同類型的配置文件具有文件合并的功能。
本系統(tǒng)采用WPF作為界面實現技術,采用C#語言編寫邏輯代碼,主要介紹實現數據采集系統(tǒng)配置軟件的WPF界面設計方法及技巧,旨在說明如何高效設計出合理、易擴展、友好的系統(tǒng)界面。
WPF是 Microsoft原有.NET框架和 DirectX的產物。WPF能夠運用快速開發(fā)的視覺效果以及特殊的用戶體驗技術來建立與客戶的密切關系,使企業(yè)可以建立穩(wěn)定的數字客戶關系。
WPF提供統(tǒng)一的UI(用戶界面)平臺。因此,設計人員只需學習一個模式,就可以獲得無限可能的UI體驗。對于.NET開發(fā)人員,代碼量能減少到最佳用戶體驗和通訊邏輯所需的行數;對于設計人員,WPF提供的平臺可以消除內容、媒體和應用程序之間的邊界。最重要的是,WPF可以使開發(fā)人員和設計人員同步緊密地合作來快速提供不同的體驗[1]。
數采系統(tǒng)配置工具系統(tǒng)框架采用MVVM (Model-View-View-Mode)模式。該模式系統(tǒng)框架如圖1所示。View先綁定View Model,然后執(zhí)行一些命令向其請求動作。View Model與Model通訊,通知響應UI。這樣的通訊機制使得系統(tǒng)構建十分容易。在系統(tǒng)界面和功能越來越松耦合的同時,功能可測性越來越強[1]。
圖1 系統(tǒng)結構圖
本系統(tǒng)界面采用WPF編程實現,采用Visual Studio 2010和.Net Framework 4.0平臺架構。
界面設計采用微軟的Expression Blend 4和Visual Studio 2010。Blend主要負責界面設計,包括空間布局,背景色,控件樣式以及自定義控件;Visual Studio 2010主要完成界面上控件的響應及界面之間的傳值,完成用戶與系統(tǒng)的信息交互。
基于WPF的數據采集配置可分為文件管理、模塊管理、數據管理、有效性檢測、系統(tǒng)管理五大部分(見圖 2)。
圖2 MVVM架構圖
主窗口由三部分組成,標題欄、菜單欄及左、右兩欄業(yè)務區(qū)(見圖3)。
圖3 主界面
1)菜單欄:通過菜單實現新建文件、打開文件、保存文件等功能。
2)左側業(yè)務區(qū):通過加載文件顯示樹狀視圖節(jié)點信息,主要指加載XML文件節(jié)點信息,顯示各個層次節(jié)點屬性的信息。
3)右側業(yè)務區(qū):通過點擊左側樹狀圖的節(jié)點信息,以Tab頁形式顯示各個模塊的詳細信息。
該配置工具在子模塊的設計過程中將界面顯示功能與業(yè)務模塊盡量獨立,這樣可以減少它們之間的耦合,便于進行維護和移植[3]。同時在配置過程中,進行有效性檢測,目的是為了配置出合格的數據文件。
子模塊通過自定義控件實現,該系統(tǒng)中存在9個自定義控件,分別為:
以下以總線模塊進行舉例說明,在主窗口左側樹狀圖,點擊不同節(jié)點會在右側業(yè)務區(qū)載入不同的自定義控件,如點擊 “總線”節(jié)點,將載入CANInfoUserControl自定義控件,并以Tab頁形式顯示。此Tab頁需重新設置樣式,每一個Tab頁由一個TextBlock和一個Button組成,Button重定義模板,由“×”圖形填充,并實現關閉該子模塊的功能。為保證總線模塊與主框架的松耦合狀態(tài),應使總線模塊只有一個獨立的數據源,簡單來說是為模塊設計對外部公開的公共接口。
因此注冊依賴屬性ItemSourceDataProperty,用戶可通過ItemSource屬性給該控件賦值。
圖4 文檔結構圖
本系統(tǒng)配置文件為XML文本格式文件,XML(Extensible Markup Language)是一種界定文本數據的簡便而標準的方法,它可根據需求創(chuàng)建任意數據結構,此格式允許自定義標簽并支持層次結構的嵌套。XML文本格式不受編程語言和平臺的限制,能夠在不同的用戶、平臺和程序間交換數據[2]。
配置工具的數據結構與約定規(guī)則的XML數據之間相互映射,信息可以相互解析。
如圖4所示,配置系統(tǒng)的詳細信息以樹型結構表示,Root節(jié)點是邏輯節(jié)點XML結構中的根節(jié)點,本身也包括一部分信息,如工程的名稱、創(chuàng)建人、創(chuàng)建版本、創(chuàng)建時間等。在保存交換數據時,要使信息不丟失且具有原始的結構信息,XML以屬性方式保存這部分信息,保持數據的真實性與完整性。圖4中XML文檔所示元素代表模型中樹節(jié)點、各元素的屬性。配置工具能夠導入.pro文件和對應各個模塊的XML文件(如 : NetConfig、 CANInfoConfig、DIModuleConfig、AIModuleConfig等),用戶可根據實際需求進行相應的界面配置。配置工具根據各個模塊的XML文件信息和工程人員的配置信息,生成各個模塊的配置文件,同時也可導出新的配置文件。
應用WPF實現的系統(tǒng)界面使得系統(tǒng)界面更加美觀,新的架構使得界面與代碼更好地分離,開發(fā)和維護越來越簡單。該配置工具開發(fā)完成后,已實際應用于工程配置中。實踐證明,該工具既能滿足當前工程環(huán)境中的配置需求,也能有效降低配置工作的難度,提升了工作效率,保證了配置的準確性,在飛行模擬器數據采集系統(tǒng)中發(fā)揮了應有的作用。