基于窗体库的控制显示单元软件设计与应用

2019-07-20 13:24佘巧燕汪海涵
电子技术与软件工程 2019年10期
关键词:图形

佘巧燕 汪海涵

摘要:控制显示单元是直升机座舱中的重要人机接口,承担了大部分的交互控制和显示功能。当前,各型直升机控制显示单元的显示控制需求不一样,导致软件开发难度和开发费用增加。为了使各型控制显示单元软件通用,提出一种基于窗体库的软件设计方法,该方法将窗体构成的DF作为消息进行传输,使得图形显示与逻辑管理完全分开。最后将该方法用在某型直升机及其模拟器上,联试和运行结果表明:该方法简单可行,能清晰指导任务软件的正常运行,使得软件开发工作更加.简便,加快了软件开发进度,节约了成本,具有可扩展性、可维护性。以后还可将代码直接移植到其它直升机型号和模拟器。

[关键词]交互控制 窗体库 图形 可移植

1 引言

控制显示单元简称CDU。在航空电子系统中,CDU主要与综合任务处理机(IMP)通信,是直升机座舱中的一个主要控制部件,承担了大部分的交互控制和显示功能,每个型号直升机根据需要都会配置一至两台控制显示单元,方便驾驶员修改、装订各类参数。

目前,各类在役直升机和模拟器的CDU软件与IMP软件按功能需求来定义,CDU的按键采集、图形显示和画面调度不受IMP控制,.两者之间只进行一些简单的数据交换,每次软件开发或更改都需在CDU和IMP两端同时进行。由于每个型号CDU软件与IMP软件设计具有相对的唯一性,不能将代码直接平移到其它型号,且不能实现与模拟器之间互换,可扩展性和维护性差,随着型号越来越多,软件复杂性和需求变更变得更频繁,需要多人协同开发,软件开发周期变长,采用以前的软件设计方式已经不能满足需要。鉴于此,从工程应用角度出发,针对CDU提出一·种基于窗体库的软件设计方法,并将该方法成功应用到某型直升机和模擬器上。

2 窗体库理念

传统上的CDU软件与IMP软件由开发人员自己进行定义和编写,最终得到包含基于内部规则及逻辑的能将信息呈现的可执行程序。而基于窗体库的软件设计方法将CDU的图形绘制代码和逻辑控制代码区分开,将所有的逻辑控制及数据存储交由IMP管理,系统结构如图1所示。在图1中,DF消息在IMP和CDU之间被交换,一旦用户操作被处理,IMP端将发送信息给CDU更新显示。

CDU显示系统负责将窗体显示呈现给最终使用者,所有的窗体都在窗体库里被定义,并以唯一的ID号用以标识,这种类型的标识方式简化了CDU和IMP之间的消息交换。窗体命令构成了DF,用于更新显示,按图形功能将窗体命令分为控制命令、绘图命令和特殊图符命令,包含图形显示属性,如位置、大小、颜色、文本、闪烁等信息。再往下一个级,连接到CDU的物理显示被划分为一个或者多个窗口,每个窗口可以渲染多个层级,层级可以交叠但窗口不能交叠,用以创建最终结果,如图2所示。CDU在整个运行过程中,所有窗体属性的改变由用户应用程序IMP进行管理和控制,CDU响应来自按键、触摸屏、鼠标、键盘或者其他输入设备的用户操作事件,这些交互操作将对窗体显示产生作用或者生成新的事件,IMP负责接收这些事件消息进而控制CDU显示,这样的实时交互机制具备如下好处:CDU软件只需编写、编译、测试、验证一次;改变应用逻辑流程的时候,仅仅需要修改IMP软件。

3 CDU软件设计

3.1 数据通讯.

CDU与IMP之间的应用层数据按数据帧传输,每个数据帧从前到后包括消息块编号、消息块长度和消息块内容。消息块编号指CDU与IMP应用层软件之间需要交换的数据块结构的编号,从0开始编号,依次递增,占用2个字节;消息块长度为消息块内容的字节个数,占用2个字节;消息块内容指CDU与IMP之间需要交换的数据块结构具体内容,长度大小不定,依据具体内容而定。

3.2 接口定义和消息流程

CDU与IMP应用层之间接口关系如图3所示。IMP到CDU仅定义2个数据块,分别为显示数据DF消息和其它消息块;CDU到IMP同样包括2个数据块,分别为按键消息块和其它消息块。

通信底层握手成功后,IMP主动周期发送显示数据块,该数据块采用动态可变长DF黑包格式,用于控制CDU显示每一幅画面,它对整个CDU来说尤为关键,具体解析详见后面第3.3节,按键消息块将CDU采集到的按键码值实时报告给IMP,用于画面更改或者切换,通过这两个消息块可以控制CDU显示用户需要的图形,同时可实现数据装订修改功能。其它消息块用于传输特定信息,如模式控制、离散量采集、故障上报等。

3.3 DF消息

DF消息包括命令头、DF数据长度、窗体命令和命令尾4部分,其中窗体命令按功能分为控制命令、绘图命令和特殊图符命令,见表1、表2、表3,所有的窗体命令构成窗体库,窗体库在CDU端定义和实现,每个窗体有唯一的ID号标识。

在窗体库中,控制命令用于控制图形的线宽、图形的线型、字符的字体及大小、图形与字符的闪烁及颜色等信息;绘图命令用于控制CDU绘制基本图形,如:点、线、椭圆、多边形、扇形、弧线、中英文字符串及位图等;特殊图符命令列举了XX1、XX2、输入法等常用图符。绘图命令和特殊图符命令包含了每个图符的坐标、大小、旋转角度、特殊处理等属性。

4 应用

采用基于窗体库的CDU软件设计方法,关键在于DF消息的生成和解析。图4为一个简单画面基于DF消息的显示流程。图中围起来的两个点画线框分别代表IMP和CDU,从中可以看出,一幅画面可以按照DF消息拆成一个个窗体命令,由对应的封装函数将这些不同命令压缩成一个DF黑包,由IMP发送出去,CDU收到DF包后调用解析函数将DF黑包分解成不同的窗体命令,再依次调用窗体库从而得到目标图形画面。

CDU在实验室的仿真运行效果如图5所示,当IMP断开时,CDU显示黄色闪烁字符“通信中断”,通信稳定建立后,依次按压CDU面板,上的按键可以进入不同的画面或者修改相应参数,画面切换和参数修改由IMP根据CDU传送的按键消息控制,CDU负责绘图和采集用户操作事件。最后将该方法应用到某型直升机和模拟器上,试验和运行结果表明:该方法通用性强,能正确指导任务的执行,满足各种画面的显示控制和参数装订,CDU软件可在不同直升机型号及模拟器之间互换,加快软件开发进度,有效降低研制费用。

5 结束语

文章结合工程应用提出了基于窗体库的CDU软件设计方法,该方法实用性强,打破了以往直升机型号和模拟器封闭式的独立软件设计,CDU采用调用窗体库的方式显示IMP发送的显示数据DF消息包,同时将采集到的用户事件传送给IMP,实现IMP对CDU完全管控。

CDU与IMP每完成一次软件开发,可将相应代码直接移植到其它仿真平台(含模拟器)或者型号上去,只需对软件进行少量更改甚至不更改,加快了软件开发进度,节约了成本。即便以后需求发生改变,也只需在IMP端做少量软件修改即可完成对应功能,可扩展性和可维护性变强。

目前该方法已成功应用到某型直升机和模拟器上,随着以后直升机型号越来越多,相信该方法会得到更广泛的应用和推广。

参考文献

[1]张海藩。软件工程导论[M].北京:清华大学出版社,2003.

[2] Aeronaut ical Radio INC. ARINC Characteristic 702A-3 Advanced flight management computer system[S]. USA:Aeronautical Radio INC, 2006.

[3]雅各布森,布谢,朗博,统一软件开发过程[M].北京:机械工业出版社,2001.

[4]Arinc 661 Specification: Cockpit Display System Interfaces to UserSystems [S]. Aeronautical Radio INC,2002.

[5]马锐。飞行管理系统性能优化与控制研究[D].西安:西北工业大学,2006.

[6]熊华钢,王中华。先进航空电子综合技术[M].北京:国防工业出版社,2009.

猜你喜欢
图形
图形的旋转
多变的图形
拼图形
分割图形
图形中的图形
图形中的角
数图形
分图形
找图形
图形配对