李笑瑜,孫永榮,趙科東
(1.江蘇航空職業(yè)技術(shù)學院,a.航空工程學院; b.鎮(zhèn)江市無人機應用創(chuàng)新重點實驗室,江蘇 鎮(zhèn)江 212134;2.南京航空航天大學,南京 210000)
ARINC661規(guī)范通過對座艙顯示的圖形接口進行標準化的規(guī)定,實現(xiàn)了顯示畫面“視感”與顯示控制功能的隔離,運行階段的邏輯配置交由用戶應用(UA)管理,座艙顯示系統(tǒng)(CDS)內(nèi)核負責畫面渲染,從而降低了控制與顯示的耦合程度[1]。
作為ARINC661座艙顯示系統(tǒng)中的重要部分,UA承擔邏輯處理功能,通過對CDS之間的事件消息進行響應,來實現(xiàn)對CDS畫面的動態(tài)控制。
隨著航空電子系統(tǒng)設備逐漸增加,顯示系統(tǒng)中顯示器的種類和數(shù)量也在日益增長,例如,可分為頭盔顯示器、平視顯示器以及多功能顯示器等[2],一個UA可能要與多臺顯示器進行交互。本文基于ARINC661規(guī)范,研究了多顯示器座艙系統(tǒng)中畫面的處理技術(shù),設計了一種UA正確處理不同顯示器畫面的方法,保證了事件響應的正確性。
ARINC661協(xié)議中包含了CDS,UA以及它們之間的通信協(xié)議3部分[3]。整個ARINC661座艙顯示系統(tǒng)的工作流程如圖1所示。
圖1 基于ARINC661的CDS系統(tǒng)工作流程圖Fig.1 Diagram of CDS based on ARINC661
UA主要在座艙顯示系統(tǒng)運行階段發(fā)揮作用,其主要功能為:1) 通過發(fā)送指令驅(qū)動CDS內(nèi)核,從而控制畫面動態(tài)顯示;2) 接收CDS內(nèi)核的指令完成相應設置,實現(xiàn)顯示器周邊按鍵以及屏幕操作的事件響應,完成相應參數(shù)的設置。
基于ARINC661規(guī)范的座艙顯示系統(tǒng)采用“視窗”的概念,顯示器中的各種顯示元素組成了一個窗口集,一個顯示單元唯一定義一個窗口,而分屏顯示利用圖層實現(xiàn),如此看來,圖層是座艙顯示系統(tǒng)中UA所知的最高級別的實體,顯示畫面就是多個UA中多個圖層的信息集合。每一個UA擁有對若干個圖層的管理權(quán)限,每個圖層定義塊包含了該UA所管理的其中一個圖層的完整定義,而每一個圖層中又包含著圖層所擁有的窗體部件的參數(shù)和屬性等[1]。
圖層擁有活動性及可見性兩個重要屬性,只有激活的圖層才具有意義[4],激活圖層包含的交互式窗體部件才能進行人機交互,進而產(chǎn)生事件發(fā)送給CDS[5]。
ARINC661規(guī)范中,一個UA的圖層可能在CDS的多個顯示器中顯示,如圖2所示,UA1擁有3個圖層,分別是Layer1,Layer2和Layer3(簡稱L1,L2和L3)。L1,L2在1號顯示器中激活并顯示,L1,L3在2號顯示器中激活并顯示,那么,當請求UA1發(fā)送數(shù)據(jù)給1號顯示器時,UA1需要交出L1和L2的參數(shù)設置指令,同樣,當請求UA1發(fā)送數(shù)據(jù)給2號顯示器時,UA1需要交出L1和L3的參數(shù)設置指令,此時,1號顯示器有事件消息通報給UA1的L1,那么L1將事件響應消息發(fā)送給1號顯示器,如圖2中實線箭頭所示,此時L1的屬性發(fā)生變化,那是否需要將該事件通報消息(圖2中虛線箭頭所示)發(fā)送給2號顯示器則是一個值得考慮的問題,換言之,UA1必須清楚自己的圖層在不同顯示器中的激活情況,才能確定需要發(fā)送消息的顯示器。
實際上,上述情況可以通過一個二維表實現(xiàn),如表1所示,UA1通過查詢表就知道給不同顯示器需要發(fā)送哪個圖層的指令。
圖2 UA1與兩個顯示器的交互示意圖Fig.2 Interaction between UA1 and two displays
表1 UA1圖層在1號,2號顯示器中激活情況Table 1 UA1 layer’s activation in Display 1 and 2
依然以上述為例,設定L1中有一個交互式窗體部件ComboBox組合框,某一個時刻,飛行員在1號顯示器中選中它,產(chǎn)生事件發(fā)送給UA1的L1,如圖2所示,1號顯示器將ComboBox產(chǎn)生的事件消息通報給UA1,L1要根據(jù)邏輯做出響應,并生成事件處理指令,該事件處理指令會在下一次UA1給1號顯示器發(fā)送參數(shù)更新指令時一起發(fā)送出去。同時,L1也在2號顯示器中顯示,1號顯示器的顯示畫面不能影響2號顯示器,所以,僅靠表1記錄圖層激活情況是不夠的,UA1還需要記錄與各個顯示器的通信狀態(tài)。
隨著圖層數(shù)的增加,表1查詢本身就是低效的,再添加額外的信息記錄通信狀態(tài)將會更加復雜,因此,引入一個全新的概念——會話(session)。會話是指,某個UA與CDS中某個顯示器建立起的虛擬對話,當UA的某幾個圖層在顯示器中激活時,就產(chǎn)生會話,一旦這些圖層都為非激活狀態(tài)時,會話就斷開,即UA的一個會話保存了在某個顯示器中它被激活的圖層[6]。
下面建立會話對象重新分析和研究上面的問題。如圖3所示,UA1與1號、2號顯示器分別建立會話S1和S2,這樣,當1號顯示器中L1上的窗體部件產(chǎn)生事件時,事件會被UA1與1號顯示器的會話S1所捕獲,S1要求L1做出處理,并得到事件處理指令,而由于2號顯示器并沒有事件產(chǎn)生,所以UA1與2號顯示器的會話S2沒有事件捕捉行為,不會響應L1的事件,顯示畫面并不會發(fā)生改變[7]。
圖3 會話對象作用示意圖Fig.3 Sketch map of session
會話對象負責管理與CDS中對應顯示器的通信狀態(tài),如果一個UA與4個顯示器進行通信,就可能產(chǎn)生4個會話對象。
本文創(chuàng)建的會話對象關(guān)鍵類成員如下。
1) 顯示器標號:用以標識UA是與哪個顯示器建立會話關(guān)系。
2) 事件處理緩沖區(qū):會話對象的作用就是將事件單獨處理,在緩沖區(qū)存儲要下發(fā)給顯示器的事件,而不是改變該圖層的顯示畫面。
3) 已經(jīng)激活的圖層列表:只有激活的圖層才會有事件處理的情況,會話對象只需要知道激活圖層的信息即可[8]。
仿真CDS是對座艙系統(tǒng)中各顯示器進行模擬運行和仿真顯示,包括1臺多功能顯示器、1臺平視顯示器和1臺頭盔顯示器,座艙顯示控制終端與用戶接口顯示控制軟件輔助開發(fā)調(diào)試組件可在運行Windows系統(tǒng)的PC機環(huán)境下運行,完成一系列符合ARINC661規(guī)范的信息處理。座艙顯示控制終端與用戶接口顯示控制軟件輔助開發(fā)調(diào)試組件具體可實現(xiàn)如下兩個階段的功能。
1) 定義階段功能[9]:按照ARINC661標準解析DF文件,創(chuàng)建窗體部件實例,并對所有參數(shù)進行初始化設置。
2) 運行階段功能:接收UA端發(fā)送的ARINC661標準消息指令,解析指令并發(fā)送響應信息;接收外部輸入設備對CDS的操作,產(chǎn)生事件通報,發(fā)送給UA端,UA端做出響應。
通過采用OpenGL渲染機制,實現(xiàn)對多功能顯示器、平視顯示器和頭盔顯示器畫面的多窗口仿真顯示和實時更新。
本文利用仿真CDS的多功能顯示器與平視顯示器作為兩臺仿真顯示器,以飛機加油畫面為例,初始時,加油UA與兩臺仿真顯示器連接通訊,顯示畫面都如圖4a所示,兩臺顯示器的顯示畫面均來自于加油UA的同一個圖層,然后飛機開始進行加油,一段時間之后,在多功能顯示器上按下“停止加油”按鈕后,多功能顯示器切換為圖4b所示畫面,此時油箱呈現(xiàn)出半油和滿油狀態(tài),并未在平視顯示器進行操作,操作畫面不發(fā)生改變。
圖4 飛機加油畫面Fig.4 Picture of aircraft refuelling
基于ARINC661規(guī)范的座艙顯示系統(tǒng)在當今得到了越來越多的應用,航空機載顯示器的種類和數(shù)量會與日俱增,一個UA可能需要參與多臺顯示器的畫面控制,當多臺顯示器畫面關(guān)聯(lián)到同一個圖層時,UA就要對發(fā)生了畫面操作行為的圖層進行管理。
本文基于ARINC661規(guī)范,分析了基于ARINC661架構(gòu)的座艙顯控系統(tǒng),對圖層進行了研究,針對多顯示器觸屏操作[10],研究了UA對畫面的處理技術(shù),保證了事件響應的正確性。實踐證明,該設計合理,運行可靠。
參考文獻
[1] ARINC.ARINC 661 specification:cockpit display system interfaces to user systems[S].[S.1.]:Aeronautical Radio,INC,2002.
[2] 牛強軍.航空電子系統(tǒng)的發(fā)展趨勢[J].西安航空技術(shù)高等??茖W校學報,2011,29(1):13-17.
[3] 劉建,劉勤,孫永榮,等.ARINC661規(guī)范及其應用開發(fā)研究[J].計算機與現(xiàn)代化,2010(4):188-192.
[4] 錢雪佳,孫永榮,袁磊,等.基于ARINC661的座艙顯示系統(tǒng)通信機制研究[J].測控技術(shù),2013,32(10):105-108.
[5] 袁磊,孫永榮,周曉達,等.基于ARINC661的DF文件設計平臺研究與實現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(5):156-159.
[6] 邢飛燕,施佺,胡祖輝,等.基于MVC的高校研究生會管理系統(tǒng)的開發(fā)與實現(xiàn)[J].科技資訊,2015,13(18):34-35.
[7] 牛文生.機載計算機技術(shù)[M].北京:航空工業(yè)出版社,2013:19-25.
[8] 趙文獻,孫永榮,王勇,等.ARINC661設計文件自動生成平臺的研究與實現(xiàn)[J].航空計算技術(shù),2014(2):114-117.
[9] 趙文獻.ARINC661定義文件開發(fā)軟件的設計與實現(xiàn)[D].南京:南京航空航天大學,2016.
[10] 鄭澄,孫永榮,王暉,等.基于ARINC661的觸摸屏顯控系統(tǒng)研究與設計[J].電光與控制,2015,22(4):62-65.