佘巧燕 汪海涵



摘要:控制顯示單元是直升機座艙中的重要人機接口,承擔了大部分的交互控制和顯示功能。當前,各型直升機控制顯示單元的顯示控制需求不一樣,導致軟件開發難度和開發費用增加。為了使各型控制顯示單元軟件通用,提出一種基于窗體庫的軟件設計方法,該方法將窗體構成的DF作為消息進行傳輸,使得圖形顯示與邏輯管理完全分開。最后將該方法用在某型直升機及其模擬器上,聯試和運行結果表明:該方法簡單可行,能清晰指導任務軟件的正常運行,使得軟件開發工作更加.簡便,加快了軟件開發進度,節約了成本,具有可擴展性、可維護性。以后還可將代碼直接移植到其它直升機型號和模擬器。
[關鍵詞]交互控制 窗體庫 圖形 可移植
1 引言
控制顯示單元簡稱CDU。在航空電子系統中,CDU主要與綜合任務處理機(IMP)通信,是直升機座艙中的一個主要控制部件,承擔了大部分的交互控制和顯示功能,每個型號直升機根據需要都會配置一至兩臺控制顯示單元,方便駕駛員修改、裝訂各類參數。
目前,各類在役直升機和模擬器的CDU軟件與IMP軟件按功能需求來定義,CDU的按鍵采集、圖形顯示和畫面調度不受IMP控制,.兩者之間只進行一些簡單的數據交換,每次軟件開發或更改都需在CDU和IMP兩端同時進行。由于每個型號CDU軟件與IMP軟件設計具有相對的唯一性,不能將代碼直接平移到其它型號,且不能實現與模擬器之間互換,可擴展性和維護性差,隨著型號越來越多,軟件復雜性和需求變更變得更頻繁,需要多人協同開發,軟件開發周期變長,采用以前的軟件設計方式已經不能滿足需要。鑒于此,從工程應用角度出發,針對CDU提出一·種基于窗體庫的軟件設計方法,并將該方法成功應用到某型直升機和模擬器上。
2 窗體庫理念
傳統上的CDU軟件與IMP軟件由開發人員自己進行定義和編寫,最終得到包含基于內部規則及邏輯的能將信息呈現的可執行程序。而基于窗體庫的軟件設計方法將CDU的圖形繪制代碼和邏輯控制代碼區分開,將所有的邏輯控制及數據存儲交由IMP管理,系統結構如圖1所示。在圖1中,DF消息在IMP和CDU之間被交換,一旦用戶操作被處理,IMP端將發送信息給CDU更新顯示。
CDU顯示系統負責將窗體顯示呈現給最終使用者,所有的窗體都在窗體庫里被定義,并以唯一的ID號用以標識,這種類型的標識方式簡化了CDU和IMP之間的消息交換。窗體命令構成了DF,用于更新顯示,按圖形功能將窗體命令分為控制命令、繪圖命令和特殊圖符命令,包含圖形顯示屬性,如位置、大小、顏色、文本、閃爍等信息。再往下一個級,連接到CDU的物理顯示被劃分為一個或者多個窗口,每個窗口可以渲染多個層級,層級可以交疊但窗口不能交疊,用以創建最終結果,如圖2所示。CDU在整個運行過程中,所有窗體屬性的改變由用戶應用程序IMP進行管理和控制,CDU響應來自按鍵、觸摸屏、鼠標、鍵盤或者其他輸入設備的用戶操作事件,這些交互操作將對窗體顯示產生作用或者生成新的事件,IMP負責接收這些事件消息進而控制CDU顯示,這樣的實時交互機制具備如下好處:CDU軟件只需編寫、編譯、測試、驗證一次;改變應用邏輯流程的時候,僅僅需要修改IMP軟件。
3 CDU軟件設計
3.1 數據通訊.
CDU與IMP之間的應用層數據按數據幀傳輸,每個數據幀從前到后包括消息塊編號、消息塊長度和消息塊內容。消息塊編號指CDU與IMP應用層軟件之間需要交換的數據塊結構的編號,從0開始編號,依次遞增,占用2個字節;消息塊長度為消息塊內容的字節個數,占用2個字節;消息塊內容指CDU與IMP之間需要交換的數據塊結構具體內容,長度大小不定,依據具體內容而定。
3.2 接口定義和消息流程
CDU與IMP應用層之間接口關系如圖3所示。IMP到CDU僅定義2個數據塊,分別為顯示數據DF消息和其它消息塊;CDU到IMP同樣包括2個數據塊,分別為按鍵消息塊和其它消息塊。
通信底層握手成功后,IMP主動周期發送顯示數據塊,該數據塊采用動態可變長DF黑包格式,用于控制CDU顯示每一幅畫面,它對整個CDU來說尤為關鍵,具體解析詳見后面第3.3節,按鍵消息塊將CDU采集到的按鍵碼值實時報告給IMP,用于畫面更改或者切換,通過這兩個消息塊可以控制CDU顯示用戶需要的圖形,同時可實現數據裝訂修改功能。其它消息塊用于傳輸特定信息,如模式控制、離散量采集、故障上報等。
3.3 DF消息
DF消息包括命令頭、DF數據長度、窗體命令和命令尾4部分,其中窗體命令按功能分為控制命令、繪圖命令和特殊圖符命令,見表1、表2、表3,所有的窗體命令構成窗體庫,窗體庫在CDU端定義和實現,每個窗體有唯一的ID號標識。
在窗體庫中,控制命令用于控制圖形的線寬、圖形的線型、字符的字體及大小、圖形與字符的閃爍及顏色等信息;繪圖命令用于控制CDU繪制基本圖形,如:點、線、橢圓、多邊形、扇形、弧線、中英文字符串及位圖等;特殊圖符命令列舉了XX1、XX2、輸入法等常用圖符。繪圖命令和特殊圖符命令包含了每個圖符的坐標、大小、旋轉角度、特殊處理等屬性。
4 應用
采用基于窗體庫的CDU軟件設計方法,關鍵在于DF消息的生成和解析。圖4為一個簡單畫面基于DF消息的顯示流程。圖中圍起來的兩個點畫線框分別代表IMP和CDU,從中可以看出,一幅畫面可以按照DF消息拆成一個個窗體命令,由對應的封裝函數將這些不同命令壓縮成一個DF黑包,由IMP發送出去,CDU收到DF包后調用解析函數將DF黑包分解成不同的窗體命令,再依次調用窗體庫從而得到目標圖形畫面。
CDU在實驗室的仿真運行效果如圖5所示,當IMP斷開時,CDU顯示黃色閃爍字符“通信中斷”,通信穩定建立后,依次按壓CDU面板,上的按鍵可以進入不同的畫面或者修改相應參數,畫面切換和參數修改由IMP根據CDU傳送的按鍵消息控制,CDU負責繪圖和采集用戶操作事件。最后將該方法應用到某型直升機和模擬器上,試驗和運行結果表明:該方法通用性強,能正確指導任務的執行,滿足各種畫面的顯示控制和參數裝訂,CDU軟件可在不同直升機型號及模擬器之間互換,加快軟件開發進度,有效降低研制費用。
5 結束語
文章結合工程應用提出了基于窗體庫的CDU軟件設計方法,該方法實用性強,打破了以往直升機型號和模擬器封閉式的獨立軟件設計,CDU采用調用窗體庫的方式顯示IMP發送的顯示數據DF消息包,同時將采集到的用戶事件傳送給IMP,實現IMP對CDU完全管控。
CDU與IMP每完成一次軟件開發,可將相應代碼直接移植到其它仿真平臺(含模擬器)或者型號上去,只需對軟件進行少量更改甚至不更改,加快了軟件開發進度,節約了成本。即便以后需求發生改變,也只需在IMP端做少量軟件修改即可完成對應功能,可擴展性和可維護性變強。
目前該方法已成功應用到某型直升機和模擬器上,隨著以后直升機型號越來越多,相信該方法會得到更廣泛的應用和推廣。
參考文獻
[1]張海藩。軟件工程導論[M].北京:清華大學出版社,2003.
[2] Aeronaut ical Radio INC. ARINC Characteristic 702A-3 Advanced flight management computer system[S]. USA:Aeronautical Radio INC, 2006.
[3]雅各布森,布謝,朗博,統一軟件開發過程[M].北京:機械工業出版社,2001.
[4]Arinc 661 Specification: Cockpit Display System Interfaces to UserSystems [S]. Aeronautical Radio INC,2002.
[5]馬銳。飛行管理系統性能優化與控制研究[D].西安:西北工業大學,2006.
[6]熊華鋼,王中華。先進航空電子綜合技術[M].北京:國防工業出版社,2009.