程静菲 赵琦
摘要:ARINC661标准定义了座舱显示系统和用户系统之间的接口,并定义了符号和控件库及其相关行为。ARINC661标准将显示软件定义为一种运行时解释程序,它提供一系列部件组成的控件库,支持显示由这些部件组成的用户应用的图形画面。本文通过对ARINC661显示逻辑及标准座舱显示控件库的特性进行研究,包括控件库的通用特性、行为逻辑、使用方法以及事件产生,可以为用户应用提供基于人机交互界面标准化座舱显示控件库、图形显示和交互式服务,最终显示为可视化的座舱显示画面。
关键词:ARINC661 座舱显示系统 用户应用 控件库 控件特性 事件定义
中图分类号:V24 文献标识码:A 文章编号: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
隨着现代民用航空电子系统的发展,在民用航空驾驶舱的布局中,多功能显示器已经逐步取代了传统机械仪表,将所有主飞行信息和飞行员所需的相关显示画面综合显示在显示器上,驾驶员可以通过菜单、手动控制等不同方式来访问与管理信息,大大提高了飞行员的人机功效[1]。但随着应用的广泛化和人机接口(HMI,Human Machine Interface)设计的复杂化,使得座舱显示系统的开发难度和成本在过去十几年的发展进程中呈现显著上升的趋势。由于缺乏行业规范,业内的设计者根据自己的开发方法和流程,系统的接口设计也各不相同,给飞机座舱显示系统的开发和综合带来很大不便,显示系统的通用性,开放性以及设计成本的提升问题都亟待解决[2]。为了解决这些难题,国际上成立了行业委员会,研究并制定了座舱显示系统与用户系统间的接口规范,并由ARINC公司发布了ARINC661标准。
ARINC661标准规定了分布式显示系统的架构,显示平台与机载子系统之间的通信接口和图形接口等,允许各子功能进行并行开发,在显示系统集成过程中可以采用逐个子系统增量集成的方式[3]。在ARINC661标准中,定义了用户应用(UA,User Application)和座舱显示系统(CDS,Cockpit Display System)间的接口标准,实现显示和控制的松耦合。相比集中式的综合显示控制系统,ARINC661的体系结构具有更好的通用性和可维护性,可用于不同用途、不同机型,大大缩短了综合显示系统的开发和验证时间,降低了开发维护成本以及集成的难度[4]。
1 ARINC661显示逻辑介绍
ARINC661标准定义了飞机座舱显示的体系架构,将显示画面和显示控制逻辑分离,制定了丰富的显示控件库以及可靠的通讯机制,以支持交互式显示系统的构建。ARINC661标准显示系统主要包括CDS、UA和它们之间的通信协议等三个实体,其中通信协议包括定义阶段和运行阶段两部分。座舱显示系统(CDS)提供DF(Definition File)的加载和人机交互控制功能,并依据ARINC661用户应用程序(UA)的指令完成显示器上的画面更新。ARINC661用户应用程序(UA)的功能则包括DF文件的定义和处理显示相关联的控制逻辑[5]。ARINC 661标准的显示系统架构如图1所示。
从图1可以看出,ARINC 661标准中允许一个CDS对多个UA要求的显示内容进行渲染,因而在工程应用中,通常将CDS又称作ARINC661 Server。ARINC 661在CDS中引入了显示层次的概念,主要包括显示单元(Display Unit)、窗口(Window)、层(Layer)和控件(Widget)等层次,以便于系统管理不同层次的实体组成树状结构。显示单元是CDS 中最顶层的实体,它可以由多个窗口实体构成,CDS和UA都不能够对窗口实体的属性进行动态控制。窗口是显示中一个具有裁剪能力的矩形区域,运行时不可改变大小,多个窗口间不可交叠。图层是CDS中可以被UA所见的最顶层实体,多个图层组成了窗口中的画面,一个UA可对多个图层进行控制。同时,图层和图层间也可进行链接,在一个UA的图层上顯示另一个UA的信息。CDS按UA请求和配置信息对图层的可见性、活动性和优先级进行管理[6]。控件是ARINC 661规范中所定义接口的基本单元。为了增强应用的灵活性,ARINC 661只对控件的定义阶段和运行阶段接口进行了定义,并未对每个控件的具体实现(如Look&Feel属性) 做出约束。图2表示窗口和图层以及控件之间的层级关系。
2 控件库的特性及使用
2.1 控件库的概念
每个定义文件包含一个或多个图层,每个图层包含了由众多控件组成的具有复杂父子关系的层次结构。在ARINC661标准中,控件是组成ARINC661显示画面的最基本元素之一。控件库由CDS提供,在UA的定义文件中,使用了控件库中的控件,并定义了每个组成控件的初始属性,例如位置,颜色和可见性等。通过窗口和图层的配置,CDS上最终的显示格式是由有限的控件集合组成,这个控件的集合被称为widget库[7]。
2.2 控件特性和使用定义
控件的常用参数主要包括:控件的识别参数,状态参数,视感特性(Look&Feel),位置和大小,焦点导航参数。
控件的识别参数包含3个基本参数:WidgetType, WidgetIdent和ParentIdent。识别参数中控件类型(即标准中的WidgetType)在ARINC标准中有明确的定义,所有UA均根据ARINC标准中的统一定义。识别参数中的控件识别号(即标准中的WidgetIdent)是由UA指定和管理,一个Widget ID在一个UA图层定义中是唯一的。CDS需要知道控件属于哪个图层,以及这个图层属于哪个UA。在定义阶段,CDS通过DF文件中的[UAID].[LayerID].[WidgetID]识别Widget。在运行阶段,CDS通过系统架构(物理通道和逻辑通道)识别[UAID],因此[UAID]不出现在A661实时协议中。
识别参数中的父层控件识别号(即标准中的ParentIdent)应该是容器类型的控件的识别号或者0。因为父层控件只能是容器。识别号0表示父层是layer。Layer是控件层级的最高层。例如,BasicContainer的父层是LayerA,则它的ParentIdent为0;PushButton的父层是BasicContainer,则它的ParentIdent是BasicContainer的ID。图3是Layer与Widget层级的示意图。
控件的状态参数包含个3基本参数:Visible, Enable和Anonymous。状态参数中的可见性(即标准中的Visible)有2个枚举值:A661_FALSE和A661_TRUE。A661_FALSE表示不绘制这个控件。A661_TRUE表示如果它的所有父容器都可见,绘制这个控件;如果它的任何一个父容器不可见,不绘制这个控件。状态参数中的可交互性(即标准中的Enable)用于设置该控件能否交互,有3个枚举值:A661_FALSE,A661_TRUE和A661_TRUE_WITH_VALIDATION。A661_FALSE表示这个Widget不能交互。A661_TRUE或者A661_TRUE_WITH_VALIDATION表示如果它的所有父容器都可用,则这个控件可交互;如果它的任何一个父容器不可用,则这个控件不能交互。需要注意的是,不管Enable参数设置为什么,一个不可见的控件是不能交互的。状态参数中的匿名(即标准中的Anonymous)有2个枚举值:A661_FALSE和A661_TRUE。A661_FALSE表示这个控件运行阶段可访问,如果控件具有运行阶段可访问参数,则它可以在运行阶段被改变。A661_TRUE表示UA不能实时修改控件的运行时参数。
控件的视感特性可以用参数StyleSet来进行设置和选择。但并不是每一个控件都具有视感特性。视感特性分为基本概念: Look和Feel。Look是指控件的外观图形特性,如颜色、边框、填充、光晕、线宽、线的样式、闪烁、透明、字体、字符高亮、字间距、旋转等。Feel是指控件的行为,如一个可交互的控件以什么方式被飞行员选择。例如,将光标移到控件上,并点击它来产生选中事件。UA负责功能逻辑,而功能状态又与视感特性相关,为了让UA和CDS分开,UA使用一组索引号,指向不同的Look&feel,反映其功能状态, 控件的StyleSet参数即提供这一功能。通常,这些视感特性是飞机制造商在人机功效接口文件中定义的,适用于所有的UA,使得整个座舱显示一致。视感特性的参数样式设置(即标准中StyleSet)允许UA使用一组预先定义的图像特性应用到控件上。并且,用StyleSet定义的图形特性优先于其他图形特性。以CheckButton控件为例,StyleSet参数设置如表1所示。
根据CheckButton控件设置好的StyleSet参数样式设置,该控件的视感特性的外观和功能表现即如图4显示。
控件的位置和大小参数包含个4基本参数:PosX, PosY,SizeX和SizeY。在ARINC661标准中,定义了一个控件的原点在它的左下角,而容器内的控件的原点相对于容器。一般来说,屏幕长度度量单位为毫米,分辨率一般精确到0.01mm。对于不符合ARINC661通用定义的特殊情况则需要在参数定义中详细说明。参数PosX和PosY表示控件原点XY坐标,SizeX和SizeY则表示控件在X方向和Y方向的大小。这些参数定义了控件的剪裁区,区域之外的图形特性不需要绘制。当然,这个剪裁区只是控件的静态区域。有动态部分(如PopUp)的控件,其大小需要另外定义。
控件的焦点导航参数是与焦点(Focus)相关的一类参数。Focus是控件的一种状态。在这个状态下,控件接收机组人员通过键盘或除了光标控制器之外的其他装置(例如,滚轮)的输入(事件)。例如:EditBox控件处于编辑状态时,即是Focus状态。机组人员可以通过键盘上的TAB键,按照EditBox1->EditBox2->EditBox3->EditBox1的循环方式,选择需要聚焦到哪个EditBox进行进一步的操作(例如编辑)。也可以在一个EditBox编辑确认后,自动跳到下一个EditBox。这就是Fcous的导航功能。
控件的焦点导航参数在ARINC661标准中有兩个相关参数:NextFocusedWidget和AutomaticFocusMotion。参数NextFocusedWidget表示在机组人员确认后,Focus可以移动到的下一个控件的标识号。参数AutomaticFocusMotion则有两个枚举值;A661_FALSE和A661_TRUE。A661_FALSE表示Foucs不能自动移动;A661_TRUE表示在机组人员确认后,FOCUS自动移动到由NextFocusedWidget参数定义的控件上。在ARINC661标准中,Focus可以在同一个Layer中的不同控件之间移动,也可以在不同的Layer中的控件之间移动,且这些不同的Layer可以由不同的UA拥有。
2.3 控件的事件定义和使用
ARINC661标准在人机交互界面标准化座舱的定义了CDS与UA间交互信息的标准,即ARINC661运行时通信协议,当发生用户交互时,CDS则产生了一个事件,并将操作事件或通知发送给一个或多个UA,UA处理完后会发送消息请求更新或更改CDS显示的控件。在ARINC661标准中规定控件产生事件一定是人为操作的结果。例如,一个互斥容器RadioBox包含2个CheckButton控件,其中一个控件处于选中的状态,此时如果机组人员选中了另一个控件,新选中的控件则发送一个状态更改事件(A661_EVT_STATE_CHANGE)给UA。同时,CDS需要将另一个控件设置为非选中状态,并且由于该取消选中行为非机组人员操作,则不需要再发送一个事件给UA。在ARINC661-4标准中,定义了能触发产生事件的控件有34个,不同的控件触发不同的事件有22种,CDS和UA需要根据ARINC661标准中对于这些控件和具有通用结构的事件进行通用化处理。当机组人员使用控制器对一个可交互控件进行操作,例如CheckButton的点击选中,CDS需要根据ARINC661标准定义的标准事件结构将该事件发送给该CheckButton属于的UA,UA收到事件后,进行相应的逻辑处理,如校验通过认为该选中有效,将该控件变为选中状态。
3 结语
传统上,座舱显示软件是作为独立可执行程序开发的,基于内部规则和逻辑进行信息显示。ARINC661标准将图形绘制和视觉对象的逻辑、状态、样式和位置控制进行了分离,定义了座舱显示系统和用户系统之间的接口,并通过定义符号系统及其相关行为。用户应用程序定义为将数据传输到座舱显示系统,再将其显示为可视的向驾驶舱人员提供图形信息[8]。所有的显示内容,从图形元素到这些组件的可能分组,都通过一组预控件库来定义,即ARINC661标准中提供的一系列标准控件库。在系统开发阶段,用户应用开发者根据人机交互界面定义提供的控件库设计并基于ARINC661定义形成二进制图形定义文件,在系统定义阶段由座舱显示系统加载并实例化。本文档研究的基于ARINC661的座舱显示控件库的特性,对民用航空电子系统的集成化和模块化有重要的意义,使用了预定义的标准座舱显示控件库以及统一的接口,可以适用于主流的民用飞机的飞机装置,能最大程度地降低航空电子系统的开发和验证成本,也能很大限度地减少在同一驾驶舱中新增的显示功能的研发成本。在快速发展的民用飞机技术研发中,能显著有效地降低管理硬件过时的成本并适应不断发展的民用飞机航空电子技术。
参考文献
[1] 李笑瑜,孙永荣,沈宝国.ARINC661人机交互系统研究[J].计算机产品与流通,2019(5):141-142.
[2] 李君君,李伟伟,黄超.开放式座舱综合显示设计平台的研究与实现[J].科学与财富,2018(1):262.
[3] 王锐鑫,赵中华,沈国荣,等.飞机座舱显示系统关键技术研究[J].电声技术,2020,44(2):88-90.
[4] 王瑞球,王敬驰,王伟. 基于ARINC661的飞机座舱显示系统设计与实现[J].电子技术与软件工程,2018:15.
[5] 崔诗娴.基于ARINC 661协议的DF文件验证方法[J].计算机系统应用,2018,027(2):117-124.
[6] 李笑瑜,孙永荣,赵科东. ARINC661多显示器座舱系统中的UA画面处理技术[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] 傅山.民用运输类飞机驾驶舱人为因素设计原则[M].第1版.上海:上海交通大学出版社,2013:73-75.