欢迎访问学兔兔标准下载网,学习、交流 分享 !
返回首页 |ICS 49.020 V 07
HB 8607-2021
飞机驾驶舱显示系统与用户系统接口要求
Requirements of cockpit display system interfaces to user systems for aircrafts
2021-04-19 发布 2021-07-01 实施
中华人民共和国工业和信息化部 发 布
前 言
本标准按照 GB/T 1.1-2009《标准化工作导则 第 1 部分:标准的结构和编写》给出的规则起草。本标准由中国航空综合技术研究所归口。
本标准起草单位:苏州长风航空电子有限公司、中国航空综合技术研究所、沈阳飞机设计研究所、航空工业无线电电子研究所。
本标准主要起草人:王 伟、王敬驰、周晓达、王瑞球、沈铭洪、朱国强、刘慧卓、康介祥、高忠杰、王 宁。
飞机驾驶舱显示系统与用户系统接口要求
1 范围
本标准规定了飞机驾驶舱显示系统与用户系统之间的接口要求。
本标准适用于民用飞机驾驶舱和军用飞机座舱中显示系统与用户系统接口设计。
2 规范性引用文件
下列文件对于本标准的应用是必不可少的。凡是注日期的引用文件, 仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本标准。
GB 13000 信息技术 通用多八位编码字符集(UCS) 第一部分:体系结构与基本多文种平面HB 6096 SZ-01 数字信息传输系统
HB 20198 航空电子全双工交换式以太网
ARINC 615A 基于以太网接口的数据加载协议(Software Data Loader Using Ethernet Interface) ARINC 665 可加载软件标准(Loadable Software Standards)
3 术语和定义、缩略语
3.1 术语和定义
下列术语和定义适用于本标准。
3.1.1
驾驶舱显示系统 cockpit display system
飞机驾驶舱中管理画面显示功能的所有设备的组合。驾驶舱显示系统在管理显示画面中元素层级的同时接受飞行员的交互操作。
3.1.2
用户系统 user system
飞机驾驶舱中给显示系统传输数据信息的所有设备的统称。用户系统通过其内部应用软件实现与显示系统的通信。
3.1.3
用户应用 user application
用户系统中的应用软件,管理驾驶舱显示系统中某一部分画面的显示逻辑。
3.1.4
窗体部件 widget
驾驶舱显示系统画面显示的最小单元,窗体部件的参数接口规定了驾驶舱显示系统与用户系统之间
的通信接口。
3.1.5
目视与交互效果 look & feel
驾驶舱显示系统预定义的窗体部件的外观和行为。
3.1.6
式样设置 styleset
窗体部件的通用属性,用来说明窗体部件“目视与交互效果”。该属性由飞机设备制造商预定义,存储在驾驶舱显示系统中。
3.1.7
定义文件 definition file
用于显示图层及其内部窗体部件信息的标准格式文件。
3.1.8
定义阶段 definition phase
驾驶舱显示系统加载和解析定义文件的过程。定义阶段将会对画面显示所需的窗体部件进行创建。
3.1.9
运行阶段 run-time phase
驾驶舱显示系统和用户系统之间按照规定指令格式进行动态数据交互的过程。
3.1.10
窗口 window
由驾驶舱显示系统设定的矩形显示区域,其内部包含一个或者多个图层,图层的显示区域受到窗口显示区域的限制。
3.1.11
图层 layer
用户应用所能识别的显示层级中用来存放窗体部件的顶层实体。
3.1.12
用户应用层定义 user application layer definition
用户应用中与图层相对应的数据结构信息,包含了该图层上所有窗体部件的参数设置信息和显示层级信息。
3.1.13
父容器 parent container
容器类窗体部件内部所包含的窗体部件称为其子窗体部件,该容器类窗体部件称为其子窗体部件的父容器。
3.1.14
光标 cursor
屏幕中用于表示输入位置的指示符。
3.1.15
正常 normal
窗体部件处于可见、可用且未被选定时的可视化状态。
3.1.16
聚焦 focus
窗体部件的可视化状态。交互类窗体部件接收到由飞行员通过非光标控制装置(如键盘)产生的触发事件后,该窗体部件处于“聚焦”状态。
3.1.17
高亮 highlight
窗体部件的可视化状态。光标移动到可用的交互类窗体部件交互区域时, 该窗体部件处于“高亮”状态。
3.1.18
交互类窗体部件 interactive widget
响应飞行员的交互操作触发交互事件的窗体部件。
3.1.19
内部状态 inner state
描述窗体部件功能的特殊状态。例如:PushButton 窗体部件有一种内部状态;CheckButton 窗体部件有两种内部状态:“SELECTED”和“UNSELECTED”。
3.1.20
视觉表现 visual representation
窗体部件不同可视化状态下的外观表现。驾驶舱显示系统中预定义了窗体部件所有可能的视觉表现形式。
3.1.21
竞争冲突情况 race condition
某一窗体部件同时具有输入输出属性,驾驶舱显示系统更改其内部状态时给用户应用发送了一个通知指令,在接收到该通知指令之前,用户应用给驾驶舱显示系统发送了一个更改该窗体部件内部状态的参数设置请求指令。此时,CDS 无法判断该参数设置请求指令是 UA 在接收到通知指令之前还是之后发送的,指令所表示的窗体部件内部状态也可能与最新更新的窗体部件内部状态不一致,这种情况就是“竞争冲突情况”。
3.1.22
公共状态情况 common state condition
对多个用户应用具有相同影响效果的情况(如,警告、警示)。在公共状态情况下,用户应用可以方便地实现对隐藏图形特性的控制。
3.1.23
光环 halo
绘图类窗体部件外围用来增强该窗体部件辨识度的轮廓。光环的颜色与窗体部件本身的填充色通常为对比色。
3.1.24
事件 event
由飞行员的交互操作产生,从驾驶舱显示系统发送到用户应用的通知指令。
3.1.25
窗体部件库 widget library
存储在驾驶舱显示系统中的所有窗体部件完整说明(图形说明和行为说明)的集合。
3.1.26
图片 picture
存储在驾驶舱显示系统中的固定图像,可以通过索引号引用,不可旋转。
3.1.27
符号 symbol
存储在驾驶舱显示系统中的可旋转图形,可以通过索引号来引用。
3.2 缩略语
BITE——机内自测试设备(Built-In Test Equipment)
CCD——光标控制装置(Cursor Control Device)
CDS——驾驶舱显示系统(Cockpit Display System)
CRP——坐标系参考点(Coordinate Reference Point)
DF——定义文件(Definition File)
DTD——文档类型定义(Document Type Definition)
DU——显示单元(Display Unit)
EFI——电子飞行仪表(Electronic Flight Instrument)
EFIS——电子飞行仪表系统(Electronic Flight Instrument System)
EICAS——发动机指示与机组告警系统(Engine Indication and Crew Alerting System)
FM——飞行管理(Flight Management)
FTFP——文件传输协议(Trivial File Transfer Protocol)
HMD——头盔显示器(Helme-tmounted Displayer)
HMI——人机界面(Human Machine Interface)
HUD——平视显示器(Head-Up Displayer)
I/O——输入/输出(Input/Output)
LSB——最低位(Least Significant Bit)
MCDU——多功能显示单元(Multi-Purpose Control Display Unit)
MIL——地图项目列表(Map Itemlists)
ND——导航显示器(Navigation Displayer)
OEM——原始设备制造商(Original Equipment Manufacturer)
PFD——主飞行显示器(Primary Flight Displayer)
PNG——可移植的网络图像文件格式(Portable Network Graphics)
TCAS——交通告警与避撞系统(Traffic Alert and Collision Avoidance System)
TCP——传输控制协议(Transmission Control Protocol)
UA——用户应用(User Application)
UALD——用户应用层定义(User Application Layer Definition)
UDP——用户数据报协议(User Datagram Protocol)
XML——可扩展标记语言(Extensible Markup Language)
4 要求
4.1 驾驶舱显示系统与用户系统之间的接口
4.1.1 概述
驾驶舱显示系统与用户系统的接口在软件层面上体现为 UA 与 CDS 之间的接口,即窗体部件的接口,对窗体部件接口的规范定义实现了逻辑功能与人机界面(HMI)“目视与交互效果”的分离。“目视效果”指的是窗体部件的外观,例如颜色、边框等绘图属性; “交互效果”指的是窗体部件的行为,例如交互类窗体部件被选中时作出的反应行为。
UA 通过对窗体部件接口的设置改变其功能状态,即 UA 只需管理窗体部件的功能,无需直接改变窗体部件的“目视与交互效果”。
窗体部件的“目视与交互效果”和功能是相关联的。通过 StyleSet(式样设置)参数在飞机设备制造商预定义的窗体部件式样中进行选择,确定窗体部件属于哪一种“目视与交互效果”后,UA 在该“目视与交互效果”下对窗体部件的功能进行说明。窗体部件的式样包含多个属性的设定, 这些属性不但包含在 CDS 中运行时窗体部件所表现出来的行为属性,而且包含在不同的功能状态下窗体部件的外观属性。UA 在获取这些属性设定之后,参照飞机设备制造商制定的接口规则对画面中窗体部件的“目视与交互效果”进行管理。
窗体部件的接口定义可以分为下列两种情况:
a) 定义阶段的接口,该阶段的接口用于定义存储在 CDS 中的窗体部件静态参数信息;
b) 运行阶段的接口,该阶段的接口可供 UA 在系统运行时控制和更改窗体部件的某些属性。标准在 CDS 和 UA 所构建系统构架中的应用如图 1 所示。
图 1 标准在 CDS 和UA 所构建系统构架中的应用
4.1.2 定义阶段
DF 文件定义了窗体部件的参数信息和层级架构,CDS 对 DF 文件的解析过程就是创建窗体部件(窗体部件实例化和参数初始化)的过程。
定义阶段所有显示所需的窗体部件都必须完成创建,从而可以确定 CDS 中的内存分配,预留足够的内存空间用于对窗体部件进行分配。地图类窗体部件,例如 MapHorz_ItemList 窗体部件,其所包含地图项目的内存配置信息则在运行阶段进行分配。
某些特殊窗体部件的特定参数只能在定义阶段进行设置,这些参数的设置会对 CDS 存储空间的分配产生影响。例如,BufferFormat 窗体部件的 BufferStructure 参数。
定义阶段完成加载和解析的 DF 文件,运行阶段才可以对其内部信息进行处理,例如,DF 文件中定义的窗体部件在运行阶段进行参数数据信息交换。
4.1.3 运行阶段
运行阶段 UA 和 CDS 通过运行阶段指令进行数据信息交换,满足了如下功能需求。
UA 发送给 CDS 的运行阶段指令:
a) 运行阶段窗体部件参数信息的更新需求;
b) 对 CDS 发送的窗体部件、图层等图形实体变更情况进行反馈的需求,例如,对图层可见性变更的反馈、对控制焦点移动变更的反馈。
CDS 发送给 UA 的运行阶段指令:
a) 对 UA 发送的消息进行处理后通知处理结果的需求;
b) 对交互操作所产生的事件信息的通知需求;
c) CDS 配置命令的通知需求,例如,图层已激活的通知;
d) 异常情况的通知需求。
4.1.4 特殊情况
4.1.4.1 初始化图层
初始化阶段是 CDS 完成初始画面显示的阶段。CDS 决定画面显示的格式及内容。
当需要激活图层时,UA 给 CDS 发送一个“图层激活”请求指令,在未接收到 CDS 发送的“图层为激活状态”的通知指令之前,UA 不应该给 CDS 发送任何画面数据。在接收到 CDS 发送的“图层已激活”通知指令之后,UA 才会对画面进行更新,包括图层中窗体部件的参数更新以及图层可见性状态的更新。CDS 只有在接受到 UA 发送的“图层可见”请求指令后,才会显示对应图层。
4.1.4.2 重新初始化图层
在某些情况下,UA 已经对图层中窗体部件的参数进行了设置,CDS 在画面显示时丢失了相关窗体部件的参数信息。当检测到这种情况时, CDS 会给 UA 发送一个“重新初始化图层”的通知指令,UA接收到该指令后对图层中窗体部件的参数、图层的可见性等一些必要信息进行更新。在 UA 接收到该通知指令之前,CDS 将不会显示信息丢失的图层。
4.1.4.3 隐藏图层
在某些情况下,CDS 需要隐藏某一个处于显示状态的图层。在这种情况下,CDS 会给 UA 发送一个“图层为去激活状态”的通知指令,UA 接受到通知指令后中断对该图层中窗体部件参数的更新。
4.2 窗口/图层
4.2.1 显示层级
显示层级设定时延用了计算机中视窗的概念,由于飞机环境的限制,存在诸多制约。CDS 显示层级中的最顶层为显示单元(DU),它是显示器中各种显示格式的集合。显示单元则是由窗口(Window)组成,窗口的相关属性由 CDS 当前的配置定义。窗口内部可以包含多个图层(Layer),图层与 UA 相关联,为其内部的窗体部件提供了一个固定的显示区域。显示层级关系如图 2 所示。
图 2 显示层级示意图
4.2.2 窗口
窗口隶属于 CDS 并接受 CDS 的管理,CDS 可以对窗口的可见性进行更改。UA 不能创建窗口。
窗口具备下述特性:
a) 显示单元中的图像由一个或者多个窗体构成;
b) 用于显示单元中画面显示的窗口全部在 CDS 配置定义时预定义,CDS 根据当前的配置来决定窗口的显隐情况;
c) 窗口定义了一个矩形的显示区域;
d) 窗口的大小在运行阶段不能改变;
e) 窗口不能叠加显示;
f) 窗口包含一个或者多个图层。
4.2.3 图层
4.2.3.1 图层的图形特性
图层是窗口下一层级的容器,是 UA 可以控制的顶层显示实体。对于 UA 而言,图层是显示层级结构中存放 UA 所能控制窗体部件的顶层容器。对于 CDS 而言,图层是窗口中与 UA 相关联的图形层。图层的存在使得多个 UA 的信息可以集中显示在一个窗口中。
图层具备下述图形特性:
a) 图层所在坐标系原点位置取决于其所属窗口参考点的位置;
b) 图层的显示范围不能超出其所属窗口定义的显示范围(如果图层中有弹出式的窗体部件,则该窗体部件及其弹出部分也不能超出该图层所属窗口定义的显示范围);
c) 图层可以叠加显示。
4.2.3.2 图层的内容管理
图层的内容管理具有下述特性:
a) 图层与用户应用图层定义(UALD)相关联,每一个图层只受其关联 UALD 所对应 UA 的控制。 UALD 定义了图层中窗体部件的层次结构。
b) UA 和CDS 共同管理图层。
c) UA 只能控制其所对应的图层,不能对图层所属的窗口进行管理,窗口只能根据 CDS 的当前配置来进行定义。
d) UA 和CDS 可以管理同一个窗口下的多个图层。
e) 管理图层的 UA 和 CDS 需要对图层中窗体部件的参数进行管理,UA 需要知悉图层中所有窗体部件运行阶段的可变参数信息。
f) 当飞行员对图层中交互式窗体部件进行输入操作时,CDS 会给对应的 UA 发送事件。
4.2.3.3 图层的优先级管理
图层的优先级管理包括图层本身的优先级管理以及图层中窗体部件的优先级管理,具体有下述三个特性:
a) 图层优先级决定了图层在所属窗口中的可见性顺序,优先级高的图层显示在上层。UA 只对其所包含图层的相对优先级进行管理,并不涉及不同 UA 图层之间的优先级,而 CDS 对不同 UA图层之间的绝对优先级进行管理。
b) 窗体部件按照其在 UALD 中定义的顺序依次进行绘制,先定义的窗体部件先绘制,后定义的窗体部件后绘制,最后定义的窗体部件显示在画面的最顶层。需要注意的是, 对于容器类窗体部件而言,如果容器类窗体部件 Widget1 在容器类窗体部件 Widget2 之前定义,那么Widget2中所包含的所有子窗体部件都显示在 Widget1 中所包含子窗体部件的上层。
c) 具有弹出功能或者弹出部分的窗体部件需要绘制在其他窗体部件的上层,例如,PopUpMenu窗体部件、PopupPanel 窗体部件以及 ComboBox 窗体部件等。
4.2.3.4 图层的可见性和可用性管理
4.2.3.4.1 概述
图层拥有两个基本属性:可见性(可见/不可见)和可用性(激活/去激活)。
4.2.3.4.2 可见性
图层的可见性由 UA 通过图层的可见性参数进行控制。
当图层被设置为“不可见”时,图层中的所有窗体部件均不可见,但各窗体部件当前的可见性参数值是不变的。
4.2.3.4.3 可用性
图层的可用性由 CDS 控制。如果一个图层处于“激活”状态,即使它是“不可见”的,CDS 也需要从该图层所属的 UA 中获取图层的更新数据。
当 CDS 设置图层为“激活”状态后,需要向该图层所属的 UA 发送 A661_NOTE_LAYER_IS_ ACTIVE 通知指令,通知 UA 该图层已激活。
当图层处于“激活”状态时,CDS 需要周期性的向该图层所属 UA 发送 A661_NOTE_CYCLIC_ ACTIVATION 通知指令。
当 CDS 设置图层为“去激活”状态后,需要向该图层所属的 UA 发送 A661_NOTE_LAYER_IS_ INACTIVE 请求,通知 UA 该图层未激活。
当图层处于“去激活”状态时,CDS 将其可见性参数设置为“不可见”;当图层处于“激活”状态时,该图层所属的 UA 就可以改变图层的可见性参数。当图层被设置为“激活”状态或者 CDS 给 UA发送了一个 A661_NOTE_REINIT_LAYER_DATA 通知指令时,UA 需要对该图层中的数据信息进行初始化。
4.2.3.5 图层的关联性管理
图层的关联性管理说明了数据交换与数据显示之间的相关性。
每一个图层都有一个与之匹配的关联号,即:ContextNumber 参数。ContextNumber 参数的值由图层所属的 UA 进行控制。UA 通过发送指令结构中的ContextNumber 位来更改关联号的值。当进行交互操作时,CDS 给 UA 发送的指令结构中也包含当前的关联号信息。
关联号的初始值在 UALD 中进行设置。当 CDS 给 UA 发送通知指令时,UA 可以通过关联号来了解 CDS 的当前状态并且判别 CDS 是否处于“紊乱状态”。
4.2.4 层级管理
CDS 在对驾驶舱画面的显示层级进行管理时应该注意下列问题:
a) 在指定的显示单元中显示正确的窗口;
b) 在指定的窗口中显示正确的图层。CDS 给 UA 发送A661_NOTE_LAYER_IS_ACTIVE 通知指令,告知 UA 其对应的图层已经处于“激活”状态,UA 可以对该图层中窗体部件进行管理。
UA 可以给 CDS 发送请求指令,要求显示其对应的某一图层,CDS 根据当前执行的配置逻辑决定是否接受该请求。
4.2.5 窗口中的位置和尺寸
4.2.5.1 概述
窗口中对象的位置参考如图 3 所示。
图 3 窗口中对象位置的参考
4.2.5.2 原点
所有对象以其自身左下角端点为参考点。子窗体部件以其上一级父容器窗体部件的参考点位置为其所在坐标系的原点位置。
4.2.5.3 角度
所有角度的单位默认为“度”。旋转操作以垂直于XY 坐标平面的 Z 轴为旋转轴,零角度方向为X轴正方向,从X 轴开始的逆时针旋转为旋转的正方向。
当一个圆弧的起始角和结束角分别等于 fr(180)的最小与最大值时,该圆弧就形成一个完整的圆。
4.2.5.4 屏幕显示单元的度量单位
所有显示器屏幕单元的最小度量单位是 0.01mm。所以窗体部件的位置和大小都以 0.01mm 为单位进行说明。窗体部件中与位置相关的参数为有符号的整型量,与尺寸相关的参数为无符号的整型量。
4.2.6 光标管理
4.2.6.1 概述
光标由 CDS 控制并定义其外观。光标的外观属于其“目视与交互效果”的一部分,不同外观的光标具有相同的管理方式。光标的外观取决于使用该光标的窗体部件的类型以及该窗体部件当前所处的状态(例如,文本编辑框在正常状态下使用的光标一般为“箭头”形状,在编辑状态下则一般为“竖线”形状)。
与光标相关的信息可以按照通信协议的要求在 CDS 和 UA 之间传递。
光标的管理操作涉及到窗体部件的两种表现状态:“聚焦”和“高亮”。当光标选中某一窗体部件时,该窗体部件处于“聚焦”状态;当光标悬浮于某一窗体部件时,该窗体部件处于“高亮”状态。
对于某些特殊的输入设备(例如触摸屏),由于光标可能并不跟随其选中的坐标位置移动,或者根本没有光标显示,需要根据 CDS 规定的“聚焦”和“高亮”状态的触发条件进行实际处理。
4.2.6.2 从 UA 到 CDS 的光标管理
从 UA 到 CDS 光标管理示例 1:
UA 给 CDS 发送请求指令,请求 CDS 将光标置于特定的窗体部件上。CDS 可以响应该请求,移动光标,也可能不响应该请求,不移动光标。
从 UA 到 CDS 光标管理示例 2:
在某种导航情况下,需要对窗体部件的导航顺序进行定义,UA 会自动通知 CDS 光标所需聚焦的下一个窗体部件 ID 号,实现 CDS 对焦点序列的管理。
4.2.6.3 从 CDS 到 UA 的光标管理
从 CDS 到 UA 光标管理示例:
在无法获取其他相关信息的情况下,如果存在多个飞行员进行操控,CDS 需要通过对外部输入设备的判别确定是哪一个飞行员在操控光标进行交互操作。
CDS 需要对光标操作可能出现的所有情况都提前做好定义。
使用光标进行控制操作时的响应时间与系统的操作需求相关。下表中列出了使用光标进行不同控制操作所需响应时间的范围,系统设计人员需要按照需求对计算机处理能力和软件构架进行选择。
CDS 可以同时处理其任务列表中前四项任务,如果运用合理将会极大的减轻用户应用的运行负担。使用光标进行不同控制操作所需响应时间的参考值见表 1。
表 1 光标控制响应时间的参考值
4.3 窗体部件
4.3.1 窗体部件的标识
窗体部件的标识,也就是[WidgetIdent],在其所属图层对应的 UALD 中是唯一确定的,是 CDS 和UA 之间进行通信的基础。窗体部件的标识由UA 进行设置和管理。
因为 CDS 需要对图层及其优先级进行管理,同时还需要在定义阶段知悉窗体部件属于哪一个图层,所以 CDS 需要从 UA 获取一个与图层相关联的[LayerIdent](图层标识)。不同 UA 对应的图层可能具有相同的[LayerIdent],因此,CDS 还需要使用[UserApplicationIdent](用户应用标识)来对其内部的图层标识进行管理。
在对 CDS 与 UA 之间的接口进行定义时,使用层级式的标识[UserApplicationIdent].[LayerIdent]. [WidgetIdent]来保证接口所对应窗体部件的唯一性。
4.3.2 窗体部件的状态
4.3.2.1 窗体部件的状态定义
窗体部件的四种不同级别状态定义如图 4 所示。
这四种不同级别的窗体部件状态分别是:
a) 状态级别 1:可见性状态,决定了窗体部件是否可见。
b) 状态级别 2:内部状态,每个窗体部件的特殊功能所对应的特有状态。
c) 状态级别 3:可用性状态,决定了窗体部件是否可用。交互类窗体部件具备该级别的状态, 可用的交互类窗体部件可以接收飞行员的输入信息。
d) 状态级别 4:可视化状态,决定了窗体部件的视觉表现。“正常”和“聚焦”是典型的可视化窗体部件状态。
图 4 窗体部件状态级别
UA 可以更改窗体部件状态,这些状态的改变将影响窗体部件的行为。UA 通过下列特定的运行阶段可变参数对前三种级别的状态进行管理:
a) Visible 参数;
b) 与内部状态相关联的特定参数(例如 CheckButton 窗体部件的 CheckButtonStates 参数);
c) Enable 参数。
状态级别 4 是视觉表现,UA 并不可以对窗体部件的视觉表现进行直接的设置。
4.3.2.2 内部状态的管理
CDS 与 UA 都能对窗体部件的内部状态进行管理。例如, 可以通过下列两种方法对 CheckButton 窗体部件的内部状态进行管理:
a) 当飞行员选中 CheckButton 窗体部件时, CDS 将 CheckButton 窗体部件表示内部状态的CheckButtonState 参数的参数值从 A661_SELECTED 改变为 A661_UNSELECTED 或者从A661_UNSELECTED 改变为 A661_SELECTED;
b) 当接口进行初始化或者刷新时,UA 将 CheckButton 窗体部件的参数值设为默认值, 改变CheckButtonState 参数的参数值。
窗体部件的内部状态说明了该窗体部件在 UA 所对应系统中的当前状态。根据已知的窗体部件状态信息或者接收到的飞行员操作信息,UA 对窗体部件的内部状态进行更新。
对于可以进行交互操作的窗体部件,当 CDS 根据飞行员的交互操作改变窗体部件的内部状态时, CDS 会给 UA 发送一个通知指令,告知 UA 交互操作的功能,则称该窗体部件具有输入属性。对于不可以进行交互操作的窗体部件(如,CheckButton 窗体部件的 Enable 参数设置为A661_FALSE),其内部状态只能由 UA 进行管理,则称该窗体部件具有输出属性。
对于同时具备输入输出属性的窗体部件,CDS 和 UA 需要对“竞争冲突情况”进行处理。
多数交互类窗体部件都可能发生“竞争冲突情况”,EditBoxText 等具有输入条目的窗体部件发生“竞争冲突情况”时的现象通常不是很明显。对于 EditBoxText 窗体部件而言,当输入条目的格式与显示条目的格式不相同时,它同时具备输入输出属性。
EditBoxText 窗体部件发生“竞争冲突情况”的例子如下: EditBoxText 当前的重量显示值为“XXX.X”,飞行员希望输入一个新值,这个新值在输入窗口中可能是“XX”的形式,在飞行员确认输入完成之前,由于 UA 会对显示内容定时刷新,EditBoxText 窗体部件显示的值会变回“XXX.X”。直到飞行员确认输入后,UA 会将输入值转换为“XX.X”形式后更新 EditBoxText 窗体部件的显示内容,此时,EditBoxText 窗体部件显示的值才会变为“XX.X”。
UA 和 CDS 可以采取以下多种方法来处理“竞争冲突情况”:
a) 降低 UA 对窗体部件参数的更新频率可以在一定程度上降低“竞争冲突情况”发生的几率,另外,UA 对具有输入输出属性窗体部件进行更新时必须先要保证窗体部件在 CDS 中的内部状态与在 UA 中的内部状态是一致的。
b) 对于具有文本编辑功能的窗体部件, 当窗体部件处于编辑状态时, CDS 可以通过发送A661_EVT_ EDITBOX_OPENED 事件来告知 UA,严禁对对应窗体部件进行参数更改,从而减少“竞争冲突情况”发生的几率,但是在参数设置和发送 A661_EVT_ EDITBOX_OPENED事件之间仍然可能发生“竞争冲突情况”。
c) UA 可以使用图层的关联号来避免“竞争冲突情况”,尤其是在飞行员从周期刷新的列表中选择数据时。例如:UA 给 CDS 发送 ComboBox 窗体部件的 EntryList 参数值,第一次发送的条目列表结构为“A”、“B”、“C”、“D”,第二次发送的条目列表结构为“A”、“B”、 “Q”、“D”。CDS 给 UA 反馈 EntryNumber 参数值为 3,告知 UA 当前选中的条目为条目列表中的第三个条目,但是,UA 并不清楚选中的条目是第一次发送的条目列表结构中的“C ”还是第二次发送的条目列表结构中的“Q”。此时,如果知道第一次发送的条目列表对应的图层关联号为 125,第二次发送的条目列表对应的图层关联号为 126,同时 CDS 反馈的条目序号事件的关联号为 126,那么 UA 就可以判断 CDS 选中的是“Q”。
d) UA 确认类窗体部件可以通过 UA 确认功能来避免“竞争冲突情况”。
4.3.3 窗体部件的通用参数
4.3.3.1 标识参数
窗体部件的标识参数定义见表 2。
表 2 窗体部件的标识参数
4.3.3.2 状态参数
窗体部件的状态参数定义见表 3。
表 3 窗体部件的状态参数
4.3.3.3 “式样设置”和“光环”参数
4.3.3.3.1 “式样设置”参数
“式样设置”参数允许 UA 从窗体部件预定义的图形特征集列表中选取一种用于当前显示。CDS预定义的每一个图形特征集中都固化了多个绘图功能(颜色的深度、光晕、填充类型、线的粗细/式样、闪烁、透明度、字体、字符的亮度、排布、旋转等),可以通过对预设图形特征集的调用获得需要的窗体部件显示效果。飞机设备制造商规定了不同图形特征集的用途, 从而可以保证在公共状态情况下所有UA 调用的预定义图形特征集的一致性。CDS 给每一个预定义的图形特征集都设定了索引号,以便 UA对其进行调用。
“类型设置”参数中,只有个别满足特定要求的图形特征参数会被重新赋值,其余均保持默认值。只有通过“式样设置”参数设置,UA 才可以对表现公共状态情况的隐藏图形特性进行访问。
“式样设置”参数的默认值为:A661_STYLE_SET_DEFAULT。由飞机设备制造商或者 CDS 制造商来定义“ 式样设置” 参数值所对应的图形特征集列表。 常用的 “式样设置” 参数值包括: A661_STYLE_SET_NOMINAL 、A661_STYLE_SET_SELECTED 、A661_STYLE_SET_ADVISORY 、 A661_STYLE_SET_PRESELECTED 、A661_STYLE_SET_CAUTION 、A661_STYLE_SET_ENGAGED、 A661_STYLE_SET_WARNING 、A661_STYLE_SET_ARMED 、A661_STYLE_SET_NOT_ENGAGED ,这些常用的“式样参数值”可以根据飞机设备制造商或者 CDS 制造商的需求进行命名,因此并不在表 87 中体现。
4.3.3.3.2 “光环”参数
“光环”参数为 A661_FALSE 表示不绘制“光环”,“光环”参数为 A661_TRUE 表示绘制“光环”。
当某个窗体部件绘制“光环”时,如果该窗体部件的“光环”和其他窗体部件相交,那么该窗体部件的“光环”就会显示在最前端,截断与之相交的窗体部件。
窗体部件“光环”示例如图 5 所示。图中,垂直 GpLine 窗体部件“光环”参数设置为A661_TRUE,显示在水平 GpLine 窗体部件的上方。
图 5 窗体部件“光环”的示例
“光环”参数 A661_SAME_LEVEL 通常用于连续绘制的窗体部件,如果它们的“光环”参数设置为 A661_SAME_LEVEL,那么它们的“光环”可以融合在一起,“光环”的相交部分会相互连接。
“光环”参数设置为 A661_SAME_LEVEL 时的效果如图 6 所示。图中,垂直 GpLine 窗体部件显示在水平 GpLine 窗体部件的上方,垂直 GpLine 窗体部件的“光环”参数设置为A661_SAME_LEVEL,水平 GpLine 窗体部件的“光环”参数设置为A661_TRUE 或A661_SAME_LEVEL。
图 6 “光环”参数设置为 A661_SAME_LEVEL 时的效果
当新增的窗体部件“光环”参数设置为 A661_TRUE 时,当前的窗体部件“光环”的显示层级将会被改变。例如, 先绘制了两个 GpLine 窗体部件,GpLine1 的“光环”参数设置为A661_TRUE,GpLine2的“光环”参数设置为 A661_SAME_LEVEL,之后又绘制了一个 GpRectangle 窗体部件,并设置其“光环”参数为 A661_TRUE,则 GpRectangle 窗体部件的“光环”显示在两个 GpLine 窗体部件的“光环”之上。
Connector 窗体部件所连接的图层中的窗体部件如果设置了“光环”参数,“光环”的显示层级需按照 Connector 窗体部件“光环”在其图层中的显示层级进行显示。例如, 被连接图层中首个绘图类窗体部件的“光环”参数设置为 A661_SAME_LEVEL,那么其“光环”在 Connector 窗体部件所在图层中的显示层级就相当于 Connector 窗体部件“光环”参数设置为 A661_SAME_LEVEL 时,“光环”所显示的位置。
UA 开发者在设计时需要注意 Connector 窗体部件可能对“光环”层级的影响,在 Connector 窗体部件设定好后,按照连接方式对“光环”参数进行设定。
禁止在多个“光环”参数设置为A661_SAME_LEVEL 的窗体部件中增加一个不具备“光环”属性的窗体部件。
当窗体部件的“光环”参数值设置为 A661_SAME_LEVEL 时,其“光环”的显示层级取决于绘制顺序优先于它且“光环”参数值设置为 A661_TRUE 的第一个窗体部件的“光环”显示层级。若“光环”参数设置为 A661_TRUE 的窗体部件可见性改变,其后绘制窗体部件“光环”参数设置为A661_SAME_LEVEL “光环”显示层级会受到影响。
“光环”参数设置为 A661_TRUE 的窗体部件可见性改变对其后绘制的“光环”参数设置为A661_SAME_LEVEL 的窗体部件的“光环”显示层级的影响示例如图 7 所示。图 7(1)所示为正常逻辑下的“光环”显示层级,CDS 并不按照该逻辑运行。图 7(2)所示的显示逻辑为CDS 实际运行逻辑,“光环”的显示层级发生改变。
图 7 “光环”参数设置为 A661_TRUE 的窗体部件可见性改变对其后绘制的“光环”
参数设置为 A661_Same_Level 的窗体部件的“光环”层级的影响
UA 设计者在进行显示优先级以及光环显示层级设计时需充分考虑上述情况。对于同一层次的窗体部件应该设置相同的“光环”层级,“光环”参数设置为 A661_SAME_LEVEL 适用于可见性经常改变的窗体部件,“光环”参数设置为 A661_TRUE 适用于可见性不经常改变的窗体部件或者其后绘制的“光环”参数设置为 A661_SAME_LEVEL 的窗体部件与其具有相同的显隐条件。如果某个不可见的窗体 部 件 “ 光 环 ” 参 数 设 置 为 A661_TRUE , 其 后 绘 制 的 窗 体 部 件 “ 光 环 ” 参 数 设 置 为A661_SAME_LEVEL,则前者对后者的影响由 CDS 决定。
4.3.3.4 位置参数和大小参数
窗体部件的位置参数和大小参数定义见表 4。
表 4 窗体部件的位置/大小参数
参数 PosX 、PosY 、SizeX 和 SizeY 定义了窗体部件的可编辑区域,窗体部件的图形特性都在该区域内实现。这一可编辑区域只规定了窗体部件的固定区域,对于 ComboBox 这类包含“弹出部分”的窗体部件,只有固定部分才受上述参数的约束。
4.3.3.5 与焦点序列相关的参数
通过方向键对焦点的移动方向等进行控制属于 CDS 的内部管理,并不需要通过接口进行参数设置。 UA 可以通过 NextFocusedWidget 参数对焦点序列进行控制。
为了在焦点选择和焦点确认事件后实现对窗体部件 的 自动聚焦 ,需要同时使用布尔型参数AutomaticFocusMotion 和 NextFocusedWidget。
窗体部件中与焦点序列相关的参数定义见表 5。
表 5 窗体部件中与焦点序列相关的参数
焦点不但可以在同一个图层的窗体部件之间移动,而且可以在不同图层的窗体部件之间移动,即使这些图层隶属于不同的 UA。
如果焦点序列中的某一窗体部件为“不可见”状态或者“去激活”状态,那么 CDS 将会自动跳过该窗体部件,聚焦到焦点序列中下一个既“可见”又“激活”的窗体部件。
焦点序列本身并不是循环的 ,如果希望其具备循环属性,那么序列中最后一个窗体部件的NextFocusedWidget 参数需要指向第一个窗体部件。
CDS 同样支持焦点序列倒序运行,当有多种倒序方式时,CDS 需要预先设定好焦点序列的倒序方式。
4.3.4 窗体部件的事件
当飞行员对 CDS 中某个交互式窗体部件进行操作时,该窗体部件会生成一个对应的事件,CDS 通过 A661_NOTIFY_WIDGET_EVENT 通知指令将该事件发送给对应的 UA。
窗体部件的事件由用户的操作产生,与 CDS 和 UA 之间的交互没有关系。
假定 RadioBox 窗体部件内有两个 ToggleButton 窗体部件,其中一个 ToggleButton 窗体部件已经被飞行员选中,当飞行员选中另一个 ToggleButton 窗体部件时,新被选中的 ToggleButton 窗体部件的ToggleState 参数将被设置为A661_SELECTED,并且 CDS 将发送包含A661_EVT_STATE_CHANGE 事件信息的通知指令给对应 UA。当 CDS 需要将 ToggleButton 窗体部件重新设置为未选中时,不需要给
UA 发送包含事件信息的通知指令,否则不但浪费了通信资源,而且需要 UA 去辨别 CDS 需求和紊乱状态之间的区别。
在上一个例子 中,如果 UA 给 CDS 发送一个 A661_CMD_SET_PARAMETER 请求指令将ToggleButton 窗体部件设置为未选中,CDS 并不会生成一个 A661_NOTIFY_WIDGET_EVENT 通知指令。在某些情况下,CDS 对指令的反馈是必要的,但是对于大多数的参数设置指令,CDS 都不会做出反馈,而是通过更低级别的通信协议或者无损的通信途径等其他方式完成对 UA 的反馈。
可触发事件的窗体部件及其触发事件的种类见表 6。
表 6 窗体部件以及对应的触发事件
表 6 窗体部件以及对应的触发事件(续)
4.4 窗体部件库
4.4.1 窗体部件的功能
窗体部件库中窗体部件的功能说明见表 7。
4.4.2 窗体部件的分类
窗体部件库中窗体部件的 8 种类型见表 8。
表 7 窗体部件功能说明
表 7 窗体部件功能说明(续)
表 7 窗体部件功能说明(续)
表 7 窗体部件功能说明(续)
表 8 窗体部件的类型
窗体部件所属的种类见表 9。每一个窗体部件所属种类并不是唯一的,一个窗体部件可能属于多个种类。
表 9 窗体部件的种类表
表 9 窗体部件的种类表(续)
表 9 窗体部件的种类表(续)
4.4.3 容器类
4.4.3.1 概述
容器类窗体部件是可以被当作父容器的窗体部件,内部可以包含多个子窗体部件。该类窗体部件可以用来构建图层中窗体部件的层次。
当容器类窗体部件的 Visible 参数设置为A661_FALSE 时,其内部的子窗体部件也是“非可见”状态,但子窗体部件的 Visible 参数的值不会改变。
当容器类窗体部件的 Enable 参数设置为A661_FALSE 时,其内部的子窗体部件也“去激活”状态,但子窗体部件的 Enable 参数的值不会改变。
容器类窗体部件的子窗体部件以其父容器的参考点(即左下角顶点)为其所在坐标系的原点。如果某一容器类窗体部件没有参考点,则其子窗体部件以上级具有参考点的父容器窗体部件的参考点为其所在坐标系的原点。
图层不是窗体部件,其内部同样可以包含窗体部件,并且图层可以对其内部窗体部件的可见性和可用性进行统一管理。
4.4.3.2 容器类窗体部件可能的子窗体部件
各容器类窗体部件可包含的子窗体部件见表 10。
表 10 容器类窗体部件子窗体部件可能的种类
表 10 容器类窗体部件子窗体部件可能的种类(续)
表 10 容器类窗体部件子窗体部件可能的种类(续)
4.4.4 绘图类
大部分的窗体部件都有一个图形化的显示实体,这些具有图形化显示实体的窗体部件就是绘图类窗体部件。
绘图类窗体部件根据其 StyleSet 参数设置的不同,会显示出不同外观。对于一个 StyleSet 参数给定的非交互类窗体部件,它的外观是固定的;交互类窗体部件则根据其内部状态的不同可能会显示出不同的外观。
4.4.5 文本类
4.4.5.1 概述
文本类窗体部件是指某些包含文本字符串(包括数字、字符以及相关符号)的窗体部件。
在文本字符串中插入转义字符串可以显示特定格式的文本字符串内容。某些窗体部件具有转义功能,例如窗体部件 LabelComplex 和 ScrollList;MIL 列表中的 LEGEND 和 LEGEND_POPUP 项目也具有转义 功能 。窗体 部件文本字符串 内容的特定显示格式 由 DefaultStyleText 参数进行 设置 , DefaultStyleText 参数还可以设定窗体部件是否使用转义字符串;MIL 列表中的项目通过 ITEM_STYLE项目来设定是否需要使用转义字符串。
文本类窗体部件字符串的最大长度(以字节为单位)由参数 MaxStringLength 设定,该长度包括字符串的结束标识符——NULL 字符。对于使用转义字符串的字符串,其字符串长度为包含转义字符串和NULL 结束标识符在内的所有字符的长度。如果在字符串的末尾包含多个用于填充的 NULL 字符,只有第一个 NULL 字符计算在字符串长度之中。
对于可以对文本字符串进行修改的 SetParameter 指令,例如 A661_ParameterStructure_String 指令和StringArray_CellStructure 指令,它们的指令结构中都包含了 StringSize 参数,该参数与 MaxStringLength参数遵循相同的规则。
4.4.5.2 字符集及字符编码
表 11~表 13 列举了文本字符串中可以使用的字符(除用法需要另外定义的 ESC 字符外)。此处只对字符样式进行定义,不对字符字体进行具体规定。
每一个 DF 文件都包含一个或多个与之关联的字符编码,这些字符编码的编码规则适用于定义阶段及运行阶段所有字符串类型的参数。除了表中规定的 ASCII 扩展字符编码、UTF-8 字符编码以及 GBK字符编码三种常用字符编码的对应规则,飞机设备制造商也可以使用自定义字符编码。
字符均采用单字节的储存方式,使用自定义字符编码也需要按照单字节方式进行字符存储。
对于表 11 和表 12 中的标注了“ASCII/UNICONDE/GBK”标准字符,相同字符在 ASCII 扩展字符编码、UTF-8 字符编码以及 GBK 字符编码三种编码方式下字符码值相同,码值范围为 0 到 127。
表 11 控制字符(ASCII/UNICONDE/GBK)
表 12 打印字符(ASCII/UNICONDE/GBK)
表 12 打印字符(ASCII/UNICONDE/GBK)(续)
表 12 打印字符(ASCII/UNICONDE/GBK)(续)
表 13 扩展字符集中的字符为 ASCII 扩展字符编码方式中的标准字符,若使用UTF-8 字符编码方式和 GBK 字符编码方式编码,可参考表 13 中提供的编码值或自定义编码值实现对应字符的显示。
表 13 扩展字符集
4.4.5.3 符号编码
字母 G 的字符编码既可以表示为‘G’,也可以表示为h47。
字符串‘GH12’的编码则由‘G’、‘H’、‘1’、‘2’的字符编码顺序排列组成。
假定:
Kxxx 表示一个不变值(编码或者字符串);Txxx 表示同一类型的文本值集合(编码或者字符串);⊗为串联符号。
字符串的串联等式:
Kyyy=‘0’;Kxxx=‘abc’;则 Kyyy⊗Kxxx=‘0abc’。
集合的串联等式:
Kyyy=‘0’;Txxx={‘a’、‘b’、‘c’};则 Kyyy⊗Txxx={‘0a’、‘0b’、‘0c’}。
4.4.5.4 转义字符串的功能
不同转义字符串所能产生的效果见表 14。
表 14 转义字符串的类型
4.4.5.5 默认字体属性
参数 DefaultStyleText 定义窗体部件中的文本字符串是否使用转义字符串,该参数将会在详细说明中的窗体部件 LabelComplex 和 ScrollList 部分具体说明。即使使用了转义字符串, 该参数仍然可以对窗体部件中字符串的背景色、前景色以及字体种类进行定义。
4.4.5.6 转义字符串的说明
所有的转义字符串都以字符“ESC”作为开始标志。在字符“ESC”之后是一个转义字符串标识
(数值对应表 17 中 0x40 到 0x51)以及序列所需的特殊参量(由 Tvalue 指定)。有些转义字符串适用于其后面的全部字符,例如 TForeColor;有些转义字符串适用于 Start 和End 两个转义字符串之间的字符,例如 TVideoInv。
转义字符串使用说明见表 15。
表 15 转义字符串使用说明
在 Tvalue0 的二进制格式数值中,各部分定义如下:
a) Bit8~Bit5=0011(固定值);
b) Bit4 表示右侧是否有轮廓线。Bit4=1 表示右侧有轮廓,在轮廓说明中表示为R;
c) Bit3 表示左侧是否有轮廓线。Bit3=1 表示左侧有轮廓,在轮廓说明中表示为L;
d) Bit2 表示底部是否有轮廓线。Bit2=1 表示底部有轮廓,在轮廓说明中表示为 B;
e) Bit1 表示顶部是否有轮廓线。Bit1=1 表示顶部有轮廓,在轮廓说明中表示为 T。不同轮廓情况下 Tvalue0 对应的二进制数值和十六进制数值见表 16。
表 16 不同轮廓情况对应的二进制数值和十六进制数值
表 16 不同轮廓情况对应的二进制数值和十六进制数值(续)
转义字符串的标识及其对应编码值见表 17。
表 17 转义字符串的标识及其对应编码值
转义字符串由多个字节表示,其中 P1、Tvalue1、Tvalue2 这些参数的对应值以字节形式存储,对应码值与字符编码中的部分码值重复。因此,在字符解码时需要同时考虑转义字符串存在的可能性。
4.4.5.7 文本对齐方式
文本的对齐一般以其所在矩形区域为参考,由文本的对齐方式参数 PosX 、PosY 、SizeX 、SizeY 共
同定义。典型的文本对齐方式如图 8 所示。
图 8 典型文本对齐方式
参数 PosX、PosY 定义了文本的定位点,文本根据定位点在矩形显示区域的位置来进行对齐。例如,左对齐将文本内容定位在矩形显示区域的左边,右对齐将文本内容定位在矩形显示区域的右边。如图 9所示,十字符号代表了 PosX、PosY 所表示的定位点。多行文本可以在矩形显示区域中采用相同的方法进行多行对齐。不同对齐方式下的定位点设定如图 9 所示。
顶部左对齐
中部左对齐
底部左对齐顶部居中对齐
水平居中对齐
底部居中对齐顶部右对齐
中部右对齐
底部右对齐
图 9 不同对齐方式下的定位点设定
4.4.6 交互类
飞行员的交互操作会触发交互类窗体部件给其对应 UA 发送事件。
每一个交互类窗体部件都有对应的生成事件结构表,事件结构表的具体内容在附录 A 中定义。
交互类窗体部件会因内部状态的变化而显示出不同的外观。
4.4.7 动态表现类
在运行阶段,UA 可以控制动态表现类窗体部件产生动态移动的效果,动态表现类窗体部件的参数PosX 、PosY 在运行阶段是可以更改的。
4.4.8 地图管理类
4.4.8.1 概述
地图管理类窗体部件的功能是对地图内部的符号进行管理。
飞机显示器中的地图通常有两种类型:水平地图和垂直地图。不论是哪一种类型的地图,组成地图的窗体部件之间的相互作用方式都是相似的。
水平地图管理窗体部件的集合主要包括下列几个窗体部件:
a) MapHorz;
b) MapHorz_Source;
c) MapHorz_ItemList;
d) MapGrid。
垂直地图管理窗体部件的集合主要包括下列几个窗体部件:
a) MapVert;
b) MapVert_Source;
c) MapVert_ItemList;
d) MapGrid。
地图类窗体部件以及地图使用所需的预定义符号集都将在定义阶段进行定义,符号的数量和位置在运行阶段可以被改变。
4.4.8.2 水平地图管理
4.4.8.2.1 概述
MapGrid 窗体部件使用网格化的方式对地图背景数据进行绘制。
MapHorz_ItemList 窗体部件提供了地图绘制时所需地图项目的列表,运行阶段可以实时从列表调用绘图所需的地图项目,从而实现地图信息动态变化。
MapHorz_ItemList 窗体部件中每一个地图项目在屏幕坐标系的显示坐标都基于对于地图元素在现实坐标系中的位置。为了将 MapHorz_ItemList 窗体部件中的地图项目以标准格式进行显示,需要对其进行坐标转换,将现实坐标系中地图元素的坐标转换为屏幕坐标系中地图项目的坐标。
坐标转换过程需要注意以下内容:
a) 现实坐标系的相关信息在 MapHorz_Source 窗体部件的 MapDataFormat 参数中说明, MapHorz_ItemList 窗体部件中的数据依赖于 MapHorz_Source 窗体部件的。同样,MapGrid 窗体部件中用于表示现实坐标系的单位的参数 X 增量和 Y 增量也与 MapHorz_Source 窗体部件相关。因此, MapGrid 窗体部件和 MapHorz_ItemList 窗体部件必须是 MapHorz_Source 窗体部件的子窗体部件。
b) MapHorz 窗体部件支持将现实坐标系中的坐标转化为屏幕坐标系中的坐标。MapHorz 窗体部件和 MapHorz_Source 窗体部件之间的转化过程分离是为了实现不同现实坐标系的融合,使得来自于不同现实坐标系的多个 MapHorz_ItemList 窗体部件和 MapGrid 窗体部件可以融合在同一个地图中。
现实坐标系与屏幕坐标系之间的转换方式如图 10 所示。
图 10 现实坐标系与屏幕坐标系之间的转换方式
给 CDS 提供 MapHorz_ItemList 窗体部件信息的 UA 被称作“地图 UA”。地图 UA 通过MapHorz_Source 窗体部件给 CDS 提供 MapHorz_ItemList 窗体部件中地图项目的坐标系信息,从而实现MapHorz_ItemList 窗体部件中地图项目的显示。
另外还需要一个特定的UA 给 CDS 提供地图融合所需的相关信息,这个UA 被称为“地图主UA”。地图主 UA 需要将 MapHorz_Source 窗体部件中的全部数据传递给 MapHorz 窗体部件,用于 CDS 中的地图融合。例如: 对于导航显示窗口,通常以 ND 应用程序为地图主 UA,以 FMS 、TCAS 或其他应用程序为地图 UA。
不同种类 UA 之间的数据可以相互融合。
4.4.8.2.2 MapHorz、MapHorz_Source 、MapHorz_ItemList 和 MapGrid 之间的关联
MapHorz 窗体部件既可以是 MapHorz_Source 窗体部件的父容器,也可以通过 Connector 窗体部件与 MapHorz_Source 窗体部件进行连接。MapHorz 窗体部件可以被指定只能包含 Connector 窗体部件或者 MapHorz_Source 窗体部件。MapHorz 窗体部件定义了其包含的所有 MapHorz_Source 窗体部件的相关信息,但是,MapHorz 窗体部件和 MapHorz_Source 窗体部件又由不同的 UA 定义,因此,它们所属的 UALD 和图层也是不同的。
MapHorz_Source 窗体部件的父容器只能是 MapHorz 或者图层。若父容器为图层, 则该图层只包含MapHorz_Source 窗体部件(一个或多个)。MapHorz_Source 窗体部件可以通过 Connector 窗体部件被多个 MapHorz 窗体部件共享。
地图主 UA 可以通过 Connector 窗体部件的可见性参数对其他图层中 MapHorz_Source 窗体部件的可见性进行管理。
MapHorz_Source 窗体部件是 MapHorz_ItemList 窗体部件和 MapGrid 窗体部件的父容器。 MapHorz_Source 窗体部件定义了其子窗体部件现实坐标系的特征。
MapHorz 、MapHorz_Source 、MapHorz_ItemList 、MapGrid 四者之间的相互关系如图 11 所示。
说明:
:图层 :同一图层内的窗体部件树结构
: 图层所隶属的UA :图层间的链接
图 11 MapHorz 窗体部件管理架构
4.4.8.2.3 MapHorz 和 MapHorz_Source 的参数定义
MapHorz 和 MapHorz_Source 窗体部件的参数给 CDS 提供地图绘制所需的全部信息。
在定义 MapHorz 和 MapHorz_Source 窗体部件的参数时,应该充分考虑地图主 UA 和所有地图 UA的显示需求。
MapHorz 和 MapHorz_Source 窗体部件的参数类型见表 18。
表 18 MapHorz 和 MapHorz_Source 窗体部件的参数
4.4.8.3 垂直地图管理
垂直位置显示格式是一个典型的垂直地图管理类窗体部件。垂直地图管理与水平地图管理相似, 只需要按照水平地图管理中窗体部件的功能特性一一对应即为垂直地图管理中窗体部件的功能特性,对应方式如下:
a) MapHorz →MapVert;
b) MapHorz_Source →MapVert_Source;
c) MapHorz_ItemList →MapVert_ItemList;
d) MapGrid →MapGrid。
4.4.8.4 优先级管理
地图管理类窗体部件的显示优先级规则定义如下:
第一级:按照图层之间的优先级进行图层显示。
第二级:按照图层内窗体部件的优先级进行图层中窗体部件的显示。UALD 中窗体部件的定义顺序规定了窗体部件的显示层级,后定义的窗体部件显示在上层。
第三级:MapHorz_ItemList 窗体部件中地图项目的显示优先级由地图项目的 ItemIndex 参数值决定。 ItemIndex 参数值越高,地图项目的显示优先级越高。
第一级和第二级绘制优先级在运行阶段时不可以改变的,第三级地图项目的绘制优先级在运行阶段可以动态改变。
MapHorz_ItemList 窗体部件引入了容器的概念,有利于对其内部地图项目进行独立管理。例如,FMS可以通过多个 MapHorz_ItemList 窗体部件设置不同的飞行计划和背景数据。
4.4.8.5 地图同步号
MapSynchronizationNumber(地图同步号)是 MapHorz (MapVert)、 MapHorz_ItemList (MapVert_ ItemList)和 MapGrid 窗体部件的参数,该参数只能在运行阶段设置。由于 MapSynchronizationNumber参数在窗体部件的创建结构中不能设定,所以默认其初始值为零。
CDS 对 MapHorz 窗体部件进行绘制时首先会查看其地图同步号。如果 MapHorz 窗体部件的地图同步号为非零值,那么与其拥有相同地图同步号的 MapHorz_ItemList 窗体部件和 MapGrid 窗体部件就会被绘制。这一规则对于垂直地图的窗体部件同样适用。
如果 MapHorz 窗体部件的地图同步号值为零(或者没有从 UA 接收到地图同步号),那么CDS 将对所有的 MapHorz_ItemList 窗体部件进行绘制,不考虑其地图同步号的值。同样, 如果 MapHorz_ItemList窗体部件的地图同步号值为零,则该 MapHorz_ItemList 窗体部件一定会被绘制而不需要考虑其父容器MapHorz 窗体部件的地图同步号设置情况。
当地图配置改变时(例如,地图的范围发生改变或地图的模式发生改变),有些地图 UA 控制的地图项目列表将会相应的产生改变,地图主 UA 会发送新的地图同步号给这些 UA。为了适应新的配置要求,这些地图 UA 新增了地图项目,它们将具有指定地图同步号的地图项目列表发送给 CDS ,CDS 则根据地图同步号来决定何时在变化后的地图上显示这些项目列表。
典型流程如下:
a) 地图主 UA 决定地图的范围、比例、旋转和位置等参数的变更情况, 并处理相关计算和准备工作。
b) 地图主 UA 改变需要变更地图中 MapHorz 窗体部件的地图同步号,所有地图同步号与之不对应的 MapHorz_ItemList 窗体部件都将停止显示。之后,变更后的所有参数将发送给 MapHorz窗体部件。
c) 地图主 UA 将变更后的控制参数发送给对应的地图 UA。
d) 地图 UA 检测控制参数的改变,并处理相关计算和准备工作。这一操作时间充裕,因为与MapHorz 窗体部件地图同步号不相符的 MapHorz_ItemList 窗体部件将不会显示。
e) 地图 UA 发送一个变更后的地图项目列表给 CDS,然后改变变更后 MapHorz_ItemList 窗体部件的地图同步号以匹配 MapHorz 窗体部件。如果整个变更环节包含多个地图的变更,地图主UA 需要对其他窗体部件或窗体部件组重复上述操作。
4.4.9 UA 确认类
, ,
暂不处理飞行员交互操作,而是让 UA 对当前事件进行确认。
为了实现上述功能,需要具备下列条件:
a) CDS 需要知道哪个窗体部件触发事件,UA 需要知道所需确认的事件是什么,因此,UA 需要将对应窗体部件的 Enable 参数设置为 A661_TRUE_WITH_VALIDATION;
b) UA 在完成事件确认后通过运行阶段可变更参数 EntryValidation 通知 CDS。
如果 窗体部件 Enable 参数 的值未设置 为 A661_TRUE_WITH_VALIDATION ,CDS 将忽 略
EntryValidation 参数信息。
UA 对飞行员选择进行确认的例子如图 12 所示。
CDS 在等待 UA 确认时有设定好的延迟时间,在延迟时间之后 CDS 才接收到 UA 的确认信息将会
导致 UA 和CDS 之间消息的不同步。
并非所有具有 ENABLE 参数的窗体部件都需要进行 UA 确认,表 9 按照是否具备 UA 确认功能将
具有 ENABLE 参数的窗体部件分为两类:
a) 窗体部件不支持 UA 确认。当这类窗体部件的 ENABLE 参数设置为 A661_TRUE_WITH_ VALIDATION 时,其实际意义等同于 ENABLE 参数设置为A661_TURE ,该类窗体部件没有运行阶段可变更参数 EntryValidation;
b) 窗体部件支持 UA 确认,UA 完成确认之后给 CDS 发送 Ent