基于Qt的船用导航雷达显控终端软件设计

2014-12-11 13:27王冰山郝延刚王远斌
江苏科技信息 2014年22期
关键词:图元船用控件

王冰山,郝延刚,王远斌

(1.中国电子科技集团公司第二十八研究所,江苏南京 210007;2.海军驻南京地区雷达系统军事代表室,江苏 南京 210003)

0 引言

雷达显控终端是雷达系统中人机交互的主要接口。鉴于在其他平台下进行图形界面(GUI)开发的成本较高,MicroSoft 公司的源代码具有保密性、军品对保密的需求还有外贸对知识产权的严格要求,目前,嵌入式版的Linux 操作系统在实际应用中越来越受到用户的欢迎;在众多的军用雷达终端当中,小型化、成本低适合于小型船只应用的雷达中,可靠稳定的嵌入式导航雷达终端也有一定的市场需求。因此,选择Qt 进行嵌入式界面开发是一个较好的方案。

Qt 是由奇趣公司开发的标志性产品,目前流行的Linux 桌面环境KDE 模式就是由Qt 开发的,Qt 具有如下特点:Qt 是类MFC 的面向对象的C++开发包;具有信号与槽的事件驱动机制;另外,Qt 是一种跨平台的开发工具,其环境下编写的源代码,只有稍加修改或不修改就可以在不同的环境下进行编译运行;它提供了丰富的类库以及灵活易用的Qt Designer 工具开发界面。

本软件主要工作是实现DSP 与ARM 的配合工作,由DSP高速处理雷达采集到的数据,ARM 的角色则是担任整个系统的控制器,负责应用程序中多个任务的控制和调度。对获取的水上目标信息实时的显示和记录,为雷达参数设置提供图形接口。除此之外,为了实现ARM 与DSP 之间的通信,自定义了通信协议格式,通过多个串口传输数据,为开发过程中的程序调试和通信数据的可靠传输提供了强力保障。

1 界面设计

(1)图形框架。Qt 的Graphics View 框架使用MVC 模式,适合对大量2D 图元的管理。Graphics View 框架中包括3 个主要的类:QGraphicsScene、QGraphicsView 和QGraphcsItem,分别是场景、视图和图元。场景是QGraphicsItem 对象的容器。QGraphics View 是视图窗口部件,它使场景的内容可视化,QGraphicsItem 是图元基类。

(2)界面布局和风格。Qt Designer 是Qt GUI 编程语言一系列工具中的一个,该工具提供了Qt 基本的可绘制窗口的部件。在设计器中通过鼠标直接拖放这些窗口部件,能够高效、快速地实现GUI 界面的整体框架设计,界面直观形象。在使用Qt Designer 设计GUI 时,可以使用样式表定制控件的外观,快速而高效地设计窗口部件的风格。

Qt 设计器简化了用户界面设计手段,它提供了大量的封装好的工具和接口。用户可以轻而易举地通过拖拽的方式布控Qt 界面控件,另外还可以调用Qt 设计器的Layout 控件对界面进行布局和排版,控件的移动和缩放都变得非常简单,最后达到用户所要求的风格,在布局完毕之后,可以通过简单的方式对各个窗口控件以及界面风格进行相应的参数设置。另外,信号与槽的机制在Qt 设计器中也可以手动设置,加大了界面上窗口部件的通信效率。总之,Qt Designer 为雷达显示控制终端的界面设计提供了便捷的方式和灵活的接口。

本软件使用Qt 设计器设计了终端主界面上的部件和窗口,并在人机交互的过程中采用了信号与槽的机制。该雷达显示控制终端除了界面上飞车美观人性化,而且使得对雷达的控制操作变得非常简单,响应时间快。

(3)自定义绘图。QGraphics View 框架下Qt 提供大量的绘图接口,每个绘图对象都可以被看作为一个QGraphicsItem,每个图元都由它自己的绘制函数,绘制完毕之后可以调用addItem()函数将绘制好的图元一一加入到场景中,使得Qt 绘图非常易于模块化,对单个图形对象进行增减都非常方便,只需要调用Qt 接口removeItem()即可将一个绘图对象轻易删除,对图元进行管理和操作的接口都非常丰富。但在嵌入式平台下,大量的自定义绘图会对整个平台的资源占用较大,出现卡顿或者死机的现象。鉴于此,本软件引进了OpenGL 图形加速,通过ARM 芯片上的PowerVR 模块对整个图形界面进行加速显示,大大减少处理器的负担,使得整个界面变得非常流畅。

OpenGL(Open Graphics Library)作为图形硬件的一个软件接口,它也是该领域的工业标准。OpenGL 具有很好的移植性,它与硬件无关,因这些优势,OpenGL 为很多硬件和软件开发人员都提供了很多便利。

Qt 为了使用OpenGL 绘制,可以通过QGLWidget 调用setViewport()函数来设置作为QGraphicsView 的视口。如果需要在OpenGL 中打开反锯齿,可以通过调用QGLFormat::sampleBuffers()来使用OpenGL 的采样缓冲区(sample buffer)。在目标航迹和目标点迹的绘制过程中,使用OpenGL 绘图后,减轻了CPU 负担,大幅度提高应用程序图形绘制效率。

2 数据处理

DSP 芯片具有快速RAM,通常可通过独立的数据总线在两块中同时访问,可以并行执行多个操作,可以低开销或无开销及跳转的硬件支持,使得数据处理快速高效,固通常复杂大量的数据计算以及雷达采集处理过后的数据都由DSP 来进行计算处理,再将计算结果通过串口发往ARM,ARM 再根据该结果在显控界面上进行相应的图形绘制。

3 应用实例

在某项目中采用Qt4.8 进行船用导航雷达的显控界面的软件开发,如图1 所示。通过开发过程中的模拟实验以及真实环境下的实际应用,信息显示、界面操控以及系统的稳定性完全能满足船用导航雷达各方面的需要。

4 结论

本文中所利用的图形化视图框架以及OpenGL 图形加速,Qt4.8 及其以后的版本才支持,要采用本文中所描述的方法进行界面软件设计,必须要采用Qt4.8 以后的版本。通过实验模拟和实际应用发现,使用Qt 对导航雷达显控软件进行设计和开发,不但具有很高的实时显示性能和美观的界面设计,另外,雷达界面上的显示功能及该系统性能完全满足船用导航雷达终端的需求。

图1 基于Qt 的船用导航雷达终端显控界面

[1]蔡志明,卢传富,李立夏.精通Qt4 编程[J].计算机工程,2010(1).

[2]Mark Summerfield.Advanced Qt Programming Creating Great Software with C++and Qt4[J].Prentice Hall,2010(6).

[3]周名阳,韩秀玲.基于Qt 的图像数据网络传输应用研究[J].计算机工程与设计,2011(6).

[4]Zeng Y,Xu,J,Peng D.Radar Velocity -measuring System Design and Computation Algorithm Based on ARM Processor[C].Proceedings of the 8th World Congress on Intelligent Control and Automation,2010.

猜你喜欢
图元船用控件
船用PVC夹芯板在近场水下爆炸作用下的吸能特性
山钢拿下船用9Ni钢订单
一种组态控件技术在电力监控系统中的运用
学术出版物插图的编排要求(一):图注
联锁表自动生成软件的设计与实现
船用柴油机应用前景展望
关于.net控件数组的探讨
我国第一台2205千瓦船用低速柴油机
基于Qt绘图系统的图形应用优化研究与实现
ASP.NET服务器端验证控件的使用