程靜菲 趙琦
摘要:ARINC661標(biāo)準(zhǔn)定義了座艙顯示系統(tǒng)和用戶系統(tǒng)之間的接口,并定義了符號(hào)和控件庫(kù)及其相關(guān)行為。ARINC661標(biāo)準(zhǔn)將顯示軟件定義為一種運(yùn)行時(shí)解釋程序,它提供一系列部件組成的控件庫(kù),支持顯示由這些部件組成的用戶應(yīng)用的圖形畫(huà)面。本文通過(guò)對(duì)ARINC661顯示邏輯及標(biāo)準(zhǔn)座艙顯示控件庫(kù)的特性進(jìn)行研究,包括控件庫(kù)的通用特性、行為邏輯、使用方法以及事件產(chǎn)生,可以為用戶應(yīng)用提供基于人機(jī)交互界面標(biāo)準(zhǔn)化座艙顯示控件庫(kù)、圖形顯示和交互式服務(wù),最終顯示為可視化的座艙顯示畫(huà)面。
關(guān)鍵詞:ARINC661? 座艙顯示系統(tǒng)? 用戶應(yīng)用? 控件庫(kù)? 控件特性? 事件定義
中圖分類(lèi)號(hào):V24? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? 文章編號(hào):1674-098X(2021)02(b)-0009-06
Characteristics and Research of Cockpit Display Widget Library Based on ARINC661
CHENG Jingfei? ZHAO Qi
(Radio Electronics Research Institute of AVIC, Shanghai, 200241 China)
Abstract: The ARINC661 standard defines the interface between the cockpit display system and the user system, and defines the Symbol and Widget Library and its related behaviors. The ARINC661 standard defines display software as a run-time interpreter, which provides a widget library composed of a series of components, and supports the display of user applications composed of these components. This document studies the characteristics of the ARINC661 display logic and standard cockpit display widget library, including the general characteristics of the widget library, behavior logic, usage methods and event generation, and can provide user applications with a standardized cockpit display widget library based on human-computer interaction interfaces and support graphical display and interactive services,and finally displayed as a visual cockpit display interface.
Key Words: ARINC661; Cockpit display system; User application; Widget library; Widget characteristics; Event definition
隨著現(xiàn)代民用航空電子系統(tǒng)的發(fā)展,在民用航空駕駛艙的布局中,多功能顯示器已經(jīng)逐步取代了傳統(tǒng)機(jī)械儀表,將所有主飛行信息和飛行員所需的相關(guān)顯示畫(huà)面綜合顯示在顯示器上,駕駛員可以通過(guò)菜單、手動(dòng)控制等不同方式來(lái)訪問(wèn)與管理信息,大大提高了飛行員的人機(jī)功效[1]。但隨著應(yīng)用的廣泛化和人機(jī)接口(HMI,Human Machine Interface)設(shè)計(jì)的復(fù)雜化,使得座艙顯示系統(tǒng)的開(kāi)發(fā)難度和成本在過(guò)去十幾年的發(fā)展進(jìn)程中呈現(xiàn)顯著上升的趨勢(shì)。由于缺乏行業(yè)規(guī)范,業(yè)內(nèi)的設(shè)計(jì)者根據(jù)自己的開(kāi)發(fā)方法和流程,系統(tǒng)的接口設(shè)計(jì)也各不相同,給飛機(jī)座艙顯示系統(tǒng)的開(kāi)發(fā)和綜合帶來(lái)很大不便,顯示系統(tǒng)的通用性,開(kāi)放性以及設(shè)計(jì)成本的提升問(wèn)題都亟待解決[2]。為了解決這些難題,國(guó)際上成立了行業(yè)委員會(huì),研究并制定了座艙顯示系統(tǒng)與用戶系統(tǒng)間的接口規(guī)范,并由ARINC公司發(fā)布了ARINC661標(biāo)準(zhǔn)。
ARINC661標(biāo)準(zhǔn)規(guī)定了分布式顯示系統(tǒng)的架構(gòu),顯示平臺(tái)與機(jī)載子系統(tǒng)之間的通信接口和圖形接口等,允許各子功能進(jìn)行并行開(kāi)發(fā),在顯示系統(tǒng)集成過(guò)程中可以采用逐個(gè)子系統(tǒng)增量集成的方式[3]。在ARINC661標(biāo)準(zhǔn)中,定義了用戶應(yīng)用(UA,User Application)和座艙顯示系統(tǒng)(CDS,Cockpit Display System)間的接口標(biāo)準(zhǔn),實(shí)現(xiàn)顯示和控制的松耦合。相比集中式的綜合顯示控制系統(tǒng),ARINC661的體系結(jié)構(gòu)具有更好的通用性和可維護(hù)性,可用于不同用途、不同機(jī)型,大大縮短了綜合顯示系統(tǒng)的開(kāi)發(fā)和驗(yàn)證時(shí)間,降低了開(kāi)發(fā)維護(hù)成本以及集成的難度[4]。
1? ARINC661顯示邏輯介紹
ARINC661標(biāo)準(zhǔn)定義了飛機(jī)座艙顯示的體系架構(gòu),將顯示畫(huà)面和顯示控制邏輯分離,制定了豐富的顯示控件庫(kù)以及可靠的通訊機(jī)制,以支持交互式顯示系統(tǒng)的構(gòu)建。ARINC661標(biāo)準(zhǔn)顯示系統(tǒng)主要包括CDS、UA和它們之間的通信協(xié)議等三個(gè)實(shí)體,其中通信協(xié)議包括定義階段和運(yùn)行階段兩部分。座艙顯示系統(tǒng)(CDS)提供DF(Definition File)的加載和人機(jī)交互控制功能,并依據(jù)ARINC661用戶應(yīng)用程序(UA)的指令完成顯示器上的畫(huà)面更新。ARINC661用戶應(yīng)用程序(UA)的功能則包括DF文件的定義和處理顯示相關(guān)聯(lián)的控制邏輯[5]。ARINC 661標(biāo)準(zhǔn)的顯示系統(tǒng)架構(gòu)如圖1所示。
從圖1可以看出,ARINC 661標(biāo)準(zhǔn)中允許一個(gè)CDS對(duì)多個(gè)UA要求的顯示內(nèi)容進(jìn)行渲染,因而在工程應(yīng)用中,通常將CDS又稱(chēng)作ARINC661 Server。ARINC 661在CDS中引入了顯示層次的概念,主要包括顯示單元(Display Unit)、窗口(Window)、層(Layer)和控件(Widget)等層次,以便于系統(tǒng)管理不同層次的實(shí)體組成樹(shù)狀結(jié)構(gòu)。顯示單元是CDS 中最頂層的實(shí)體,它可以由多個(gè)窗口實(shí)體構(gòu)成,CDS和UA都不能夠?qū)Υ翱趯?shí)體的屬性進(jìn)行動(dòng)態(tài)控制。窗口是顯示中一個(gè)具有裁剪能力的矩形區(qū)域,運(yùn)行時(shí)不可改變大小,多個(gè)窗口間不可交疊。圖層是CDS中可以被UA所見(jiàn)的最頂層實(shí)體,多個(gè)圖層組成了窗口中的畫(huà)面,一個(gè)UA可對(duì)多個(gè)圖層進(jìn)行控制。同時(shí),圖層和圖層間也可進(jìn)行鏈接,在一個(gè)UA的圖層上顯示另一個(gè)UA的信息。CDS按UA請(qǐng)求和配置信息對(duì)圖層的可見(jiàn)性、活動(dòng)性和優(yōu)先級(jí)進(jìn)行管理[6]??丶茿RINC 661規(guī)范中所定義接口的基本單元。為了增強(qiáng)應(yīng)用的靈活性,ARINC 661只對(duì)控件的定義階段和運(yùn)行階段接口進(jìn)行了定義,并未對(duì)每個(gè)控件的具體實(shí)現(xiàn)(如Look&Feel屬性) 做出約束。圖2表示窗口和圖層以及控件之間的層級(jí)關(guān)系。
2? 控件庫(kù)的特性及使用
2.1 控件庫(kù)的概念
每個(gè)定義文件包含一個(gè)或多個(gè)圖層,每個(gè)圖層包含了由眾多控件組成的具有復(fù)雜父子關(guān)系的層次結(jié)構(gòu)。在ARINC661標(biāo)準(zhǔn)中,控件是組成ARINC661顯示畫(huà)面的最基本元素之一。控件庫(kù)由CDS提供,在UA的定義文件中,使用了控件庫(kù)中的控件,并定義了每個(gè)組成控件的初始屬性,例如位置,顏色和可見(jiàn)性等。通過(guò)窗口和圖層的配置,CDS上最終的顯示格式是由有限的控件集合組成,這個(gè)控件的集合被稱(chēng)為widget庫(kù)[7]。
2.2 控件特性和使用定義
控件的常用參數(shù)主要包括:控件的識(shí)別參數(shù),狀態(tài)參數(shù),視感特性(Look&Feel),位置和大小,焦點(diǎn)導(dǎo)航參數(shù)。
控件的識(shí)別參數(shù)包含3個(gè)基本參數(shù):WidgetType, WidgetIdent和ParentIdent。識(shí)別參數(shù)中控件類(lèi)型(即標(biāo)準(zhǔn)中的WidgetType)在ARINC標(biāo)準(zhǔn)中有明確的定義,所有UA均根據(jù)ARINC標(biāo)準(zhǔn)中的統(tǒng)一定義。識(shí)別參數(shù)中的控件識(shí)別號(hào)(即標(biāo)準(zhǔn)中的WidgetIdent)是由UA指定和管理,一個(gè)Widget ID在一個(gè)UA圖層定義中是唯一的。CDS需要知道控件屬于哪個(gè)圖層,以及這個(gè)圖層屬于哪個(gè)UA。在定義階段,CDS通過(guò)DF文件中的[UAID].[LayerID].[WidgetID]識(shí)別Widget。在運(yùn)行階段,CDS通過(guò)系統(tǒng)架構(gòu)(物理通道和邏輯通道)識(shí)別[UAID],因此[UAID]不出現(xiàn)在A661實(shí)時(shí)協(xié)議中。
識(shí)別參數(shù)中的父層控件識(shí)別號(hào)(即標(biāo)準(zhǔn)中的ParentIdent)應(yīng)該是容器類(lèi)型的控件的識(shí)別號(hào)或者0。因?yàn)楦笇涌丶荒苁侨萜?。識(shí)別號(hào)0表示父層是layer。Layer是控件層級(jí)的最高層。例如,BasicContainer的父層是LayerA,則它的ParentIdent為0;PushButton的父層是BasicContainer,則它的ParentIdent是BasicContainer的ID。圖3是Layer與Widget層級(jí)的示意圖。
控件的狀態(tài)參數(shù)包含個(gè)3基本參數(shù):Visible, Enable和Anonymous。狀態(tài)參數(shù)中的可見(jiàn)性(即標(biāo)準(zhǔn)中的Visible)有2個(gè)枚舉值:A661_FALSE和A661_TRUE。A661_FALSE表示不繪制這個(gè)控件。A661_TRUE表示如果它的所有父容器都可見(jiàn),繪制這個(gè)控件;如果它的任何一個(gè)父容器不可見(jiàn),不繪制這個(gè)控件。狀態(tài)參數(shù)中的可交互性(即標(biāo)準(zhǔn)中的Enable)用于設(shè)置該控件能否交互,有3個(gè)枚舉值:A661_FALSE,A661_TRUE和A661_TRUE_WITH_VALIDATION。A661_FALSE表示這個(gè)Widget不能交互。A661_TRUE或者A661_TRUE_WITH_VALIDATION表示如果它的所有父容器都可用,則這個(gè)控件可交互;如果它的任何一個(gè)父容器不可用,則這個(gè)控件不能交互。需要注意的是,不管Enable參數(shù)設(shè)置為什么,一個(gè)不可見(jiàn)的控件是不能交互的。狀態(tài)參數(shù)中的匿名(即標(biāo)準(zhǔn)中的Anonymous)有2個(gè)枚舉值:A661_FALSE和A661_TRUE。A661_FALSE表示這個(gè)控件運(yùn)行階段可訪問(wèn),如果控件具有運(yùn)行階段可訪問(wèn)參數(shù),則它可以在運(yùn)行階段被改變。A661_TRUE表示UA不能實(shí)時(shí)修改控件的運(yùn)行時(shí)參數(shù)。
控件的視感特性可以用參數(shù)StyleSet來(lái)進(jìn)行設(shè)置和選擇。但并不是每一個(gè)控件都具有視感特性。視感特性分為基本概念: Look和Feel。Look是指控件的外觀圖形特性,如顏色、邊框、填充、光暈、線寬、線的樣式、閃爍、透明、字體、字符高亮、字間距、旋轉(zhuǎn)等。Feel是指控件的行為,如一個(gè)可交互的控件以什么方式被飛行員選擇。例如,將光標(biāo)移到控件上,并點(diǎn)擊它來(lái)產(chǎn)生選中事件。UA負(fù)責(zé)功能邏輯,而功能狀態(tài)又與視感特性相關(guān),為了讓UA和CDS分開(kāi),UA使用一組索引號(hào),指向不同的Look&feel,反映其功能狀態(tài), 控件的StyleSet參數(shù)即提供這一功能。通常,這些視感特性是飛機(jī)制造商在人機(jī)功效接口文件中定義的,適用于所有的UA,使得整個(gè)座艙顯示一致。視感特性的參數(shù)樣式設(shè)置(即標(biāo)準(zhǔn)中StyleSet)允許UA使用一組預(yù)先定義的圖像特性應(yīng)用到控件上。并且,用StyleSet定義的圖形特性優(yōu)先于其他圖形特性。以CheckButton控件為例,StyleSet參數(shù)設(shè)置如表1所示。
根據(jù)CheckButton控件設(shè)置好的StyleSet參數(shù)樣式設(shè)置,該控件的視感特性的外觀和功能表現(xiàn)即如圖4顯示。
控件的位置和大小參數(shù)包含個(gè)4基本參數(shù):PosX, PosY,SizeX和SizeY。在ARINC661標(biāo)準(zhǔn)中,定義了一個(gè)控件的原點(diǎn)在它的左下角,而容器內(nèi)的控件的原點(diǎn)相對(duì)于容器。一般來(lái)說(shuō),屏幕長(zhǎng)度度量單位為毫米,分辨率一般精確到0.01mm。對(duì)于不符合ARINC661通用定義的特殊情況則需要在參數(shù)定義中詳細(xì)說(shuō)明。參數(shù)PosX和PosY表示控件原點(diǎn)XY坐標(biāo),SizeX和SizeY則表示控件在X方向和Y方向的大小。這些參數(shù)定義了控件的剪裁區(qū),區(qū)域之外的圖形特性不需要繪制。當(dāng)然,這個(gè)剪裁區(qū)只是控件的靜態(tài)區(qū)域。有動(dòng)態(tài)部分(如PopUp)的控件,其大小需要另外定義。
控件的焦點(diǎn)導(dǎo)航參數(shù)是與焦點(diǎn)(Focus)相關(guān)的一類(lèi)參數(shù)。Focus是控件的一種狀態(tài)。在這個(gè)狀態(tài)下,控件接收機(jī)組人員通過(guò)鍵盤(pán)或除了光標(biāo)控制器之外的其他裝置(例如,滾輪)的輸入(事件)。例如:EditBox控件處于編輯狀態(tài)時(shí),即是Focus狀態(tài)。機(jī)組人員可以通過(guò)鍵盤(pán)上的TAB鍵,按照EditBox1->EditBox2->EditBox3->EditBox1的循環(huán)方式,選擇需要聚焦到哪個(gè)EditBox進(jìn)行進(jìn)一步的操作(例如編輯)。也可以在一個(gè)EditBox編輯確認(rèn)后,自動(dòng)跳到下一個(gè)EditBox。這就是Fcous的導(dǎo)航功能。
控件的焦點(diǎn)導(dǎo)航參數(shù)在ARINC661標(biāo)準(zhǔn)中有兩個(gè)相關(guān)參數(shù):NextFocusedWidget和AutomaticFocusMotion。參數(shù)NextFocusedWidget表示在機(jī)組人員確認(rèn)后,F(xiàn)ocus可以移動(dòng)到的下一個(gè)控件的標(biāo)識(shí)號(hào)。參數(shù)AutomaticFocusMotion則有兩個(gè)枚舉值;A661_FALSE和A661_TRUE。A661_FALSE表示Foucs不能自動(dòng)移動(dòng);A661_TRUE表示在機(jī)組人員確認(rèn)后,F(xiàn)OCUS自動(dòng)移動(dòng)到由NextFocusedWidget參數(shù)定義的控件上。在ARINC661標(biāo)準(zhǔn)中,F(xiàn)ocus可以在同一個(gè)Layer中的不同控件之間移動(dòng),也可以在不同的Layer中的控件之間移動(dòng),且這些不同的Layer可以由不同的UA擁有。
2.3 控件的事件定義和使用
ARINC661標(biāo)準(zhǔn)在人機(jī)交互界面標(biāo)準(zhǔn)化座艙的定義了CDS與UA間交互信息的標(biāo)準(zhǔn),即ARINC661運(yùn)行時(shí)通信協(xié)議,當(dāng)發(fā)生用戶交互時(shí),CDS則產(chǎn)生了一個(gè)事件,并將操作事件或通知發(fā)送給一個(gè)或多個(gè)UA,UA處理完后會(huì)發(fā)送消息請(qǐng)求更新或更改CDS顯示的控件。在ARINC661標(biāo)準(zhǔn)中規(guī)定控件產(chǎn)生事件一定是人為操作的結(jié)果。例如,一個(gè)互斥容器RadioBox包含2個(gè)CheckButton控件,其中一個(gè)控件處于選中的狀態(tài),此時(shí)如果機(jī)組人員選中了另一個(gè)控件,新選中的控件則發(fā)送一個(gè)狀態(tài)更改事件(A661_EVT_STATE_CHANGE)給UA。同時(shí),CDS需要將另一個(gè)控件設(shè)置為非選中狀態(tài),并且由于該取消選中行為非機(jī)組人員操作,則不需要再發(fā)送一個(gè)事件給UA。在ARINC661-4標(biāo)準(zhǔn)中,定義了能觸發(fā)產(chǎn)生事件的控件有34個(gè),不同的控件觸發(fā)不同的事件有22種,CDS和UA需要根據(jù)ARINC661標(biāo)準(zhǔn)中對(duì)于這些控件和具有通用結(jié)構(gòu)的事件進(jìn)行通用化處理。當(dāng)機(jī)組人員使用控制器對(duì)一個(gè)可交互控件進(jìn)行操作,例如CheckButton的點(diǎn)擊選中,CDS需要根據(jù)ARINC661標(biāo)準(zhǔn)定義的標(biāo)準(zhǔn)事件結(jié)構(gòu)將該事件發(fā)送給該CheckButton屬于的UA,UA收到事件后,進(jìn)行相應(yīng)的邏輯處理,如校驗(yàn)通過(guò)認(rèn)為該選中有效,將該控件變?yōu)檫x中狀態(tài)。
3? 結(jié)語(yǔ)
傳統(tǒng)上,座艙顯示軟件是作為獨(dú)立可執(zhí)行程序開(kāi)發(fā)的,基于內(nèi)部規(guī)則和邏輯進(jìn)行信息顯示。ARINC661標(biāo)準(zhǔn)將圖形繪制和視覺(jué)對(duì)象的邏輯、狀態(tài)、樣式和位置控制進(jìn)行了分離,定義了座艙顯示系統(tǒng)和用戶系統(tǒng)之間的接口,并通過(guò)定義符號(hào)系統(tǒng)及其相關(guān)行為。用戶應(yīng)用程序定義為將數(shù)據(jù)傳輸?shù)阶擄@示系統(tǒng),再將其顯示為可視的向駕駛艙人員提供圖形信息[8]。所有的顯示內(nèi)容,從圖形元素到這些組件的可能分組,都通過(guò)一組預(yù)控件庫(kù)來(lái)定義,即ARINC661標(biāo)準(zhǔn)中提供的一系列標(biāo)準(zhǔn)控件庫(kù)。在系統(tǒng)開(kāi)發(fā)階段,用戶應(yīng)用開(kāi)發(fā)者根據(jù)人機(jī)交互界面定義提供的控件庫(kù)設(shè)計(jì)并基于ARINC661定義形成二進(jìn)制圖形定義文件,在系統(tǒng)定義階段由座艙顯示系統(tǒng)加載并實(shí)例化。本文檔研究的基于ARINC661的座艙顯示控件庫(kù)的特性,對(duì)民用航空電子系統(tǒng)的集成化和模塊化有重要的意義,使用了預(yù)定義的標(biāo)準(zhǔn)座艙顯示控件庫(kù)以及統(tǒng)一的接口,可以適用于主流的民用飛機(jī)的飛機(jī)裝置,能最大程度地降低航空電子系統(tǒng)的開(kāi)發(fā)和驗(yàn)證成本,也能很大限度地減少在同一駕駛艙中新增的顯示功能的研發(fā)成本。在快速發(fā)展的民用飛機(jī)技術(shù)研發(fā)中,能顯著有效地降低管理硬件過(guò)時(shí)的成本并適應(yīng)不斷發(fā)展的民用飛機(jī)航空電子技術(shù)。
參考文獻(xiàn)
[1] 李笑瑜,孫永榮,沈?qū)殗?guó).ARINC661人機(jī)交互系統(tǒng)研究[J].計(jì)算機(jī)產(chǎn)品與流通,2019(5):141-142.
[2] 李君君,李偉偉,黃超.開(kāi)放式座艙綜合顯示設(shè)計(jì)平臺(tái)的研究與實(shí)現(xiàn)[J].科學(xué)與財(cái)富,2018(1):262.
[3] 王銳鑫,趙中華,沈國(guó)榮,等.飛機(jī)座艙顯示系統(tǒng)關(guān)鍵技術(shù)研究[J].電聲技術(shù),2020,44(2):88-90.
[4] 王瑞球,王敬馳,王偉. 基于ARINC661的飛機(jī)座艙顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2018:15.
[5] 崔詩(shī)嫻.基于ARINC 661協(xié)議的DF文件驗(yàn)證方法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2018,027(2):117-124.
[6] 李笑瑜,孫永榮,趙科東. ARINC661多顯示器座艙系統(tǒng)中的UA畫(huà)面處理技術(shù)[J].電光與控制,2018,025(006):95-97,114.
[7] AERONAUTICAL RADIO,INC. ARINC SPECIFICIATION 661-4 [S], COCKPIT DISPLAY SYSTEM INTERFACES TO USER SYSTEMS, MARYLAND,2010:5-271.
[8] 傅山.民用運(yùn)輸類(lèi)飛機(jī)駕駛艙人為因素設(shè)計(jì)原則[M].第1版.上海:上海交通大學(xué)出版社,2013:73-75.