APP下载

基于VAPS XT 的座舱显示设计与实现

2019-04-26秦正运葛晨程新满

电子技术与软件工程 2019年6期
关键词:图符图形符号座舱

文/秦正运 葛晨 程新满

座舱显示(CDS: Cockpit Display System)作为与飞行员交互的第一接口,集成了飞机系统状态显示、飞行指令引导、侦察告警、火力攻击等重要功能,具有信息量大,内容显示复杂等特点。目前,国内对座舱显示的开发主要是采用C 语言使用OpenGL 编程实现,具有工作量大、开发周期长、开发效率低、后期维护难、显示效果差等缺点。

针对如上特点,本文引入了可视化的图形开发工具VAPS 进行座舱显示设计,以此来提高显示的质量,缩短开发周期。

1 VAPS介绍

VAPS XT 是由加拿大Presagis 公司研发的人机界面设计工具,专用于航空、车辆仪表等高性能电子设备应用的设计开发。VAPS XT拥有良好的用户界面,用户可以利用其提供的控件来快速设计所需要的仪表图形,具有快速、可视化等优点;并且VAPS XT 支持UDP、TCP、共享内存等方式和外界进行数据交互。在设计结束后,可通过代码生成器将设计的图形转换成C++代码,无需改动即可以应用到各个平台上去。VAPS 已经在NH90、F-22、V-22等多个系列的飞机座舱显示设备。

2 架构设计

座舱显示(CDS)和用户系统(UA)两部分构成了座舱显示控制软件,CDS 作为显示终端,接收来自UA 的画面数据信息,这些信息包括画面号、各个图符的驱动数据等;CDS 向UA 反馈用户的人机接口的交互指令信息,用于UA 控制画面信息。

CDS 软件主要分为两个部分:画面显示和数据通讯。

VAPS 主要用于CDS 的显示画面的开发。首先VAPS 通过一系列强大的GUI 编辑器对显示图符进行建模,形成图符库;然后根据设计的具体需求配置图符的属性,添加相应的逻辑,从而组建完整的画面。图符库的使用可以提高图符控件的标准化程度,减少开发工作量,提高开发效率。

VAPS 工程与通讯应用的数据交互采用nCOM 进行。为了能够使用nCOM,必须构建数据描述文件(DD:Data Description File),并将外部应用的数据与之映射。座舱显示端将总线上接收的数据按照DD 文件规定的格式进行处理,才能被VAPS 工程所用。因此,我们需要根据显示画面的数据信息来制定DD 文件,导入VAPS 工程,并与画面数据关联,从而驱动画面的动态显示。如图1所示。

通过对座舱显示软件的功能需求分析,座舱显示软件主要分为3 个部分:

(1)设计图形符号库,从中选择相应的图形符号控件,设置其属性,构成画面。

(2)根据画面交互的要求,设计DD 文件。

(3)通信数据的I/O 处理。

3 系统实现

3.1 图形符号及画面开发

3.1.1 构建图形符号

标准图形符号设计为CDS 的基本图形接口,CDS 的主题设计过程可以简单的描述为图形符号的结构和属性设计,这实际上是为CDS 的设计引入了开放的开发模式,即随着图形符号部件的配置不同,座舱显示可以呈现出不同的内容。标准图形符号库的构建和使用为CDS 端画面显示的开发实现提供支持。CDS 端画面由各种图形符号构成,按照相关标准设计的图形符号,使构成的整个画面更加规范,同时符合标准的图符库的构建和图符复用,能够提高画面开发效率,形成家族化的画面显示风格,积累显示系统开发的资产,奠定后续开发和改进的基础。

VAPS 中包含大量图形、字符、仪表、数据和计算控件,图形符号设计就是通过VAPS提供的这些部件进行HMI 的图形化开发,将这些基本图元部件自由的组合,并通过建立图形符号对象的输入输出,关联内部控制逻辑,形成更复杂的图形符号;设计好的图形符号保存在图形符号库内,在设计画面时,将其从库中拖拽到设计界面,设置好图形符号的输入输出数据,即可使用。

3.1.2 画面布局

在VAPS XT 中建立一个Format 对象,从图形符号库选取所需的图形符号,根据用户需求,合理分配图形符号位置,配置图形符号属性,实现整个画面布局。

3.1.3 实现内部逻辑

VAPS XT 内部逻辑是通过数据流(Data Flow)实现的,在数据流中可以使用数值比较、逻辑判断等VAPS 提供的语句,对各个图符的输入输出数据进行逻辑判断,实现图符的状态控制。

3.1.4 画面的输入输出

画面数据的输入输出是通过DD 文件实现的(设计方法见3.2 节),在设计好DD 文件之后,将其导入到VAPS 工程中,VAPS 工程将其视为一种数据结构类型,通过创建Data Sender/Receiver 对象,各创建一个数据接收和发送对象,这两个对象同时映射到同一个内存空间,Data Sender 向其发送数据,Data Receiver 从内存接收数据。将这两个对象加入到画面中与画面进行关联,则完成用户到画面的接口操作。3.1.5 画面测试

在画面设计完成后,需要对画面的显示逻辑、接口通讯进行测试。通过设置Data Sender 对象的各个元素的值,画面便可以通过Data Receiver 对象接收到数据,从而实现对画面进行测试。如图2所示。

3.2 DD文件定义

为了使两个或多个VAPS XT 设计的应用能够互相交联,或者使VAPS XT 构建的应用和外部应用交联,VAPS XT 提供了nCom 接口进行通讯。nCom 提供了DD 文件作为数据接口,通过构建Data Sender/Receiver 对象,来实现应用间的通讯。

因此,DD 文件可以作为通讯数据与画面显示的通道。CDS 端接收总线的通讯数据,并解析处理,将解析后的数据以DD 的格式通过nCom 传递给构成画面的每个图符模型的参数,驱动画面中每个图符的显示。

DD 文件本质上是XML 格式文件,文件语法遵从XML,并在其基础上有所简化,一个简单的DD 文件如下:

表1

图1:座舱显示架构

图2:VAPS XT 画面设计流程

DD 文件必须以dataDescription 为根节点,其属性名字必须与DD 文件名一致,如上述文件为Float50.dd,文件的dataDescription 节点的属性必须为Float50;field 为子节点,每个field 子节点都标示一个变量;每个field 节点都包换三个子节点name、type、cardinality,这三个子节点的元素分别标示变量名、变量类型、变量维数。值得一提的是,DD 文件不支持二维数组和结构体,如果想使用结构体,则必须采用DD 文件嵌套的方式。

3.3 通信数据的I/O处理

CDS 端显示的数据从根本上来说是各个航电子系统的数据,这些数据是UA(User Application)端从总线上获取的,然后再经过处理通过总线或者共享内存的方式传输到CDS 端。由于UA 端和CDS 端的硬件或者软件配置的不同(例如系统大小端序不同、结构体对齐方式不同等),CDS 通讯应用需要把接收到的通讯数据再一次处理,转换成VAPS工具中的DD 文件结构。

在VAPS XT 中,DD 文件最终转换为用户I/O 缓存,可以通过DD 的名字来索引到I/O 缓存的句柄。将CDS 处理后的数据复制到I/O 缓存里,VAPS XT 便可以获取数据到从而驱动画面显示。VAPS XT 分别为C++和C 语言分别提供了索引DD 共享内存的方式,在这里我们采用的是C++方式。

VAPS XT为我们提供了一个vxtRTUserIntegrationCallbacksI 的基类,通过设计这个基类的派生类可以完成I/O 数据缓存等用户接口的初始化。此基类提供了4 个虚函数需要实例化,具体见表1。

4 结束语

VAPS XT 工具的使用从根本上改变了座舱显示开发方法,使得设计工作主要集中在构建画面和数据接口上,省去了大量图形的编程开发与调试工作,也可以很方便的将设计过程中的文件移植到不同的环境中去。VAPS XT工具的使用使得需求和设计紧密结合,快速高效迭代,从而优化了设计过程,降低开发成本。

猜你喜欢

图符图形符号座舱
开放式数字座舱软件平台IndiGO
NDT推出面向下一代智能座舱应用的压感触控解决方案
GB/T《流体传动系统及元件 图形符号和回路图 第1部分:图形符号》征求意见
未来民机座舱显示控制系统初探
川鄂盐道白菜柱头图形符号意义分析
中国传统图形符号与现代标志设计的融合
手机界面中图形符号的发展趋向
论“坡芽歌书”符号形象的审美意蕴
计算机辅助飞机制造协调路线图设计研究
压力容器法兰的参数化绘制方法