摘 要:
雷达仿真界面是显示雷达信息最直观的图形界面。本文针对以往雷达二维图形仿真界面存在俯仰角参数表示不直观、运动目标状态显示不准确、人机操作界面不友好等问题,以VxWorks实时多任务操作系统为应用平台,通过在WindML3.0 应用 Mesa4.0 技术实现图形三维显示效果,创新性地设计实现了一套高稳定性、高可靠性和强实用性的雷达三维仿真界面,改进了以往二维图形显控界面的缺点,同时兼顾二维仿真界面显示,实现了二维和三维雷达仿真界面的完美兼容。
关键词 : VxWorks Mesa ;雷达仿真界面 ;三维
Abstract:
Radar system is base on radar simulation interfaces. According to 2D graphics drawing disadvantages of former radar two-dimensional simulation interfaces, such as unintuitive representation of pitch angle, inaccurate display of moving target, and unfriendly man-machine interface,the author through a technology which using the application of Mesa4.0 in WindML3.0, innovatively present a stable and high-powered radar three-dimensional simulation interfaces in VxWorks real time multitask operating system. The new interface not only is well compatible with former interface but also improve the formers to achieve the expectant effect.
0 引言
雷达显控仿真界面是显示雷达信息最直观的图形界面,是雷达信息系统与操作员之间最重要的人机交互手段,所以雷达仿真界面的视觉效果对操作员及时准确地进行数据判断具有很大影响。雷达仿真界面设计任务主要包括 :显示雷达威力范围信息,供雷达操作员观察 ;对雷达目标航迹进行可视化显示,显示目标运动的全过程 ;通过观察视角的旋转、缩放、拉近、延伸等交互操作,使目标航迹能完整反映雷达目标的运动信息等。传统的雷达图像仿真界面一般为二维显示界面,通过 PPI 圆显示。这种显示方式存在对于具备三坐标信息的某些型号雷达目标方位显示不准确以及俯仰角度变化体现不直观的问题。本文基于 VxWorks 实时多任务操作系统系统,通过将 Mesa4.0 剪裁移植至 WindML3.0,设计实现了一套雷达三维仿真界面。该软件设计不仅充分满足了雷达仿真界面的功能性,并可以同传统二维仿真界面进行无缝转换,充分考虑了雷达仿真界面的人性化设计,具有友好、直观的人机界面。
1 WindML3.0 及 Mesa4.0 简介
本文软件在 VxWorks 实时多任务嵌入式操作系统下开发,通过 WindML3.0 下 Mesa4.0 的移植及裁剪,实现了雷达三维图形的仿真显示功能。下面分别对 WindML3.0 以及 Mesa4.0 进行介绍。
1.1 WindML3.0 简介 [1]
WindML(Wind Media Library) 是嵌入式实时操作系统 VxWorks 中的一个多媒体组件库,为其提供了图形图像、字体、视音频等多媒体功能。WindML3.0 沿用了 WindML2.0 的基本 2D 图形库,包含点、直线、矩形、椭圆、多边形这五种基本的 2D 图形绘制 API。但是, WindML3.0 也存在着部分缺陷,例如,在图形绘制上仍没有得到根本上的改观,不支持三维显示,反走样处理等进一步高级的图像处理功能。本文就是利用 Mesa4.0 在 WindML3.0 中的移植来弥补这些缺陷 [2] 。
1.2 Mesa4.0 简介[3]
Mesa 是一个基于 OpenGL 规范开发的 3D 图形库开源库,用于渲染交互式三维图形系统。Mesa 自发布以来已经得到成熟的应用,各种设备驱动程序允许 Mesa库在许多不同的环境中使用(从软件仿真到 GPU 的硬件加速)。同时,也可以很好的应用在不同的操作系统中, 如Linux、Windows、Unix等。相对于Mesa的最新版本,Mesa4.0 版本对 VxWorks 系统提供了更加完整的适配支持。因此,在 WindML 的应用中具有良好的兼容性 [3] 。
2 雷达三维仿真界面设计实现
雷达三维仿真界面是在以往传统的雷达二维仿真界面设计的基础上,对雷达显示区域进行改进,使二维与三维仿真界面良好兼容,更形象直观的体现了俯仰角,目标运动状态变化信息。该设计实现的关键在于将Mesa4.0 移植入 WindML3.0 中,并合理剪裁应用。
2.1 WindML3.0 下移植 Mesa4.0
Mesa4.0 的移植原理主要为 :利用其开源特性,将Mesa4.0 源码编译成用户所需 WindML3.0 下的链接库。示例编译的步骤如下 :
(1)在 Tornado 平台下,建立 Toolchain 为 SIMNTgnu 的 DownLoad 工程 ;
(2)添加文件,将 Mesa4.0 的源文件添加到工程目录中 ;
(3)在 C:\Tornado2.0\target\h 下建立 GL 文件夹,将 gl.h、 glext.h、glu.h、uglglutshapes.h、uglMesa.h 拷贝至GL 文件夹下;
(4)设置 Builds 选项卡中的 c/c++ 编译器选项,添加 Mesa 的 include 和 src 路径,并编译生成 .a 文件 ;(5)将生成的 .a 文件链接到 PRJ_LIBS 选项卡中,编译工程,生成 .out 下载文件,完成 WindML3.0 下 Mesa4.0 的移植。
2.2 Mesa4.0 在 WindML3.0 中的使用
《WindML Driver for Mesa 4.0》 [4]中可以找到在WindML 中使用 Mesa 的典型应用示例。示例步骤流程图如图 1 所示。
图 1 WindML 中使用 Mesa 应用流程图
2.3 Mesa4.0 的剪裁
Mesa4.0 三维图形库是针对 WindML2.0 开发的,能够正确地应用于 WindML2.0 的开发应用。当应用于WindML3.0 的窗口系统时,容易出现窗口失去响应的问题。因此,针对窗口问题,需要对 Mesa4.0 源码进行剪裁。
对于 Mesa4.0 的剪裁主要需要修改更改绘图页面的选择和图形上下文的相应代码。
2.3.1 更改绘图页面
在 Mesa4.0 对于 WindML 的程序中,使用了两个变量 firstPage 和 secondPage 分别表示绘图页和显示页。当处于直接绘图模式时,firstPage=secondPage;当处于双缓冲模式时,firstPage 和 secondPage 轮流维护绘图页和缓冲页。
由于 WindML3.0 的双缓冲模式,其页面处理由窗口系统自行完成。这对于 Mesa4.0 来说相当于直接绘图模式。因此,Mesa4.0 的双缓冲绘图方法不适用于WindML3.0 的窗口系统。
为实现该功能,需要手动更改 Mesa 中有关直接绘图模式的代码。具体为 :在创建 UGL/Mesa 环境的函数中,设置 firstPage 的 pageId 为绘图页面的 pageId ;设置 firstPage 所维护的缓冲区地址为绘图页面的地址,如图 2 所示。
图 2 firstPage 的更改
2.3.2 更改图形上下文的相应代码
在 Mesa4.0 对于 WindML 的程序中,创建了一个图形上下文,在某个窗口界面绘图时会与 WindML3.0的窗口系统所创建的图形上下文产生冲突。因此,需要修改 Mesa4.0 中有关图形上下文的代码。具体如下 :
在直接绘图模式设置绘图页面之前,销毁 Mesa 创建的图形上下文,并将 Mesa 图形上下文赋值为 UGL的图形上下文。
2.3.3 销毁保护
由于销毁了 Mesa 创建的图形上下文,因此在销毁Mesa 前(uglMesaDestroyContext),必须对 Mesa图形上下文的有效性进行判断。当 Mesa 上下文中的图形上下文与 UGL 中的不同时,方可进行销毁。
2.4 界面效果图
利用 VxWorks 在 Windows 下的模拟器对二维和三维仿真界面效果图做了对比 ( 如图 3 所示 ),发现相比于二维界面,三维界面能更直观的体现运动目标信息和俯仰角变化状态,在视觉效果和界面上也更加友好。并且,通过按键控制,可以实现三维和二维图像的渐进转换,良好的兼容了这两种显示模式(如图4所示)。
图 3 雷达二维 / 三维仿真界面实现效果对比图
图 4 三维界面转换至二维界面效果图
3 结语
本文针对传统雷达二维仿真界面显示中存在的不直观,反映目标运动过程不准确等问题,应用 Mesa4.0 在 WindML3.0 中的移植实现了三维界面仿真效果,以及雷达目标航迹的仿真。结果十分清晰直观地反映了参数的变化情况并模拟了目标的运动过程,并且和二维仿真界面有着良好的兼容性,取得了令人满意的效果。
参考文献
[1] 秦啸,宋慧娟,穆朝义.基于WindML媒体库的图形界面开发
[J].电子技术与软件工程,2013(17):100-101.
[2] 练学辉,朱佳丽,乔大雷.基于WindML的图形开发与应用
[J].雷达与对抗,2015,35(1):65-68.
[3] 章国华.基于VxWorks的图形软件WindML3.0的研究[J].武汉船舶职业技术学院学报,2014,13(2):68-71.
[4] 毛子鹰,高贵明.WindML中Mesa的应用[J].雷达与对抗,2009(3):67-70.
(上海航天技术研究院,上海 201100)