更全的杂志信息网

基于DeltaGUI的vxworks电子地图的实现

更新时间:2009-03-28

0 引言

vxworks系统具有高效的微内核、可裁剪性、高可靠性、高稳定性等优点,被广泛应用于农业、工业、医疗、军事、航空航天等领域。随着计算机硬件性能的提高,以前因硬件性能限制并不要求图形界面的vxworks应用软件也被越来越多的领域要求具备基本甚至复杂图形功能。鉴于基于vxworks开发的软件具备高实时性、高可靠性、支持图形显示、支持电子地图等特点,目前军品型号人机交互项目通常要求在vxworks操作系统进行设计实现。

vxworks操作系统在可靠性、实时性上满足软件设计要求。Windml作为风河公司的多媒体库虽能提供对基本的图元、视频、音频的支持,但自带的控件不足以支撑复杂图形界面的显示[1],如电子地图中的图形要素。为了实现复杂的图形界面,往往会借助于当今比较成熟的vxworks图形开发工具,DeltaGUI作为轻量级的嵌入式图形开发包具有可靠性强、占用资源少、易移植等优点,能很好的支持嵌入式图形界面的开发,被广泛应用于vxworks系统轻量级图形开发上。

现在主流电子地图都是在桌面地理信息系统工具Mapinfo中制作的完成,在嵌入式系统中并没有专门的软件或插件支持Mapinfo格式的电子地图[2],在Vxworks系统实现电子地图功能首先需开发Mapinfo电子地图文件读取工具,对读取的地图信息进行显示。

1 Mapinfo地图文件的读取

1.1 Mapinfo地图数据格式[3-6]

Tab文件和MIF文件是Mapinfo地图的主要存储格式, 其中,Mapinfo的Tab数据存储在属性表结构文件(.tab)与属性数据文件(.dat)中,空间数据保存在空间数据文件(.map)中,两者通过交叉索引文件(.id)联系。

Mapinfo公司并没有对外公布原始矢量形式存储的数据格式,但其提供的地图数据交换格式(MIF和MID)可以供开发人员做二次开发,该格式的空间数据以ASCII码存储,易生成且便于编译。

DeltaGUI实现作图的原理是在系统内存中分配一个与实际物理显存相对应的虚拟显示存储空间,然后把虚拟显示存储空间的图像数据更新到物理显示存储空间上以实现图像的显示。画图是把虚拟显示存储空间的图像数据更新到物理显示存储空间的过程,实现图形的刷新,这种显示方式为脱屏缓冲,脱屏缓冲技术可最大限度的提高图形显示速度,减少图形显示时的闪烁。但出于效率和视觉考虑,在进行图形数据更新时,可只更新发生变化的那块区域的数据,这一区域被称作为失效(无效)区域,若整个屏幕都发生变化,失效区域为整个屏幕。

地图缩放功能是响应雷达显示量程的切换操作,根据切换后的量程自动切换地图显示范围,当切换雷达显示量程时,使整个矩形区域失效,按照电子地图显示流程,重新绘制地图背景。

1.2 Mapinfo地图数据的读取

区域放大功能是将关心的区域放大至全屏,在需要放大的矩形区域左上角单击鼠标左键不放,然后拖动鼠标至矩形区域右下角,释放鼠标左键,矩形区域会放大到整个PPI屏幕,单击鼠标右键恢复普通视图。内部处理过程:首先根据DeltaGUI反馈的鼠标左键按下、鼠标移动、鼠标左键抬起、鼠标右键抬起消息,判断是否执行了区域放大操作或恢复普通视图操作;若是区域放大操作,根据选择的矩形区域进行比例放大,并重新计算放大后的显示中心屏幕坐标,使整个矩形区域失效,按画图的流程完成画图;若是恢复图通视图操作,则将区域放大模式恢复至普通模式。

电子地图的显示及相关操作由PPI显示类实现,把内存中的地图数据通过图形工具包DeltaGUI以图层的方式进行画图。为了保证画图的高效性,只绘制虚拟显存中失效矩形区域内的图元,当第一次绘图时,失效区域为整个PPI屏幕,以后绘图的失效区域是地图或背景被覆盖而需要重绘的矩形区域。

地图读取方法:打开第一个mif图层文件,开辟内存创建图层链表指针,将图层中的图形数据和mid文件中图形描述信息以链表的形式存放在图层结构体中,此图层的图元全部读取完毕后,读取下一个mif图层文件,再次开辟内存创建图层链表指针,将新的图层指针赋值给上一图层结构体中的下一图层指针后,进行本图层数据的读取和存储,以此类推完成所有文件的读取,并将所有图层的数据存在内存变量中,地图读取的过程是通过C++封装的地图读取类实现,图1为电子地图文件读取流程图。

  

图1 地图文件读取流程图

2 基于DeltaGUI地图信息的显示

2.1 DeltaGUI的显示技术[7]

本文首先阐述CCOS技术的原理及发展过程及CCOS技术的研究情况和实验结果,随后对几项关键技术的研究成果及现状进行综述,最后对CCOS技术未来的发展趋势进行展望。

2.2 电子地图显示功能的实现

求得各指标标准差σ1=8.71,σ2=2.59,σ3=1.47,σ4=2.62,σ5=2.24,σ6=1.77,σ7=3.84,进一步根据式(8)求得各指标权重值Wb={0.395,0.124,0.046,0.104,0.090,0.052,0.189}。

MIF文件的内容主要包括“头文件区”和“数据区”,在“头文件区”规定了地图的版本信息、字符集、投影坐标类型及表的结构;在“数据区”记录了图形的坐标和图形属性信息,包括点、文本、线、折线、区域、矩形、圆角矩形、椭圆、圆弧等;MID作为图形属性数据描述文件,对MIF文件中定义的图形要素的属性进行说明。

  

图2 脱屏缓冲原理

  

图3 电子地图显示流程图

MapInfo软件不能在vxworks系统下读取MapInfo原始地图数据,在vxworks系统下开发电子地图,只能从mif和mid文件获取地图数据。地图数据被存放在多个mif和mid文件,每个mif文件为一个图层,图形信息以图元的形式存储在mif图层文件中,每个图元的描述信息存储在mid文件中,在程序设计时采用链表方式对文件信息进行存储,根据mif文件格式定义图元、图层的数据结构体,典型的图层结构体采用链表形式,内容包括点、线、折线、多边形、区域、弧线等的属性描述。

二十分钟后,厨房的门开了,一群穿黑色水手裙、戴黑礼帽的年轻姑娘走出来,她们微垂着脸,像恼恨自己的发育的处女那样含着胸,每人的胳膊肘下,夹着一本圣歌歌本。她们是南京城最漂亮的一群“女学生”。这是我想象的,因为女学生对她们是个梦,她们是按梦想来着装扮演女学生的,因此就加上了梦的美化。

2.3 实例说明

应用程序运行在单核CPU主频1.1GHz,显卡为intel Extreme Graphics2的单板机上。应用程序除了进行网络任务、串口任务、图形控件的操作与响应、鼠标键盘的操作与响应外,每40ms还进行一次屏幕刷新,刷新的主要内容包括点迹、航迹、杂波、微表、地图。图4为电子地图显示效果图、图5为区域放大显示效果图,操作过程中,图形界面无卡顿,其他任务及操作响应及时,表明这种基于DeltaGUI的显示方法能实现地图及雷达信息的显示功能,经过用户长时间的使用,满足可靠性和实时性的要求,且采用通用的C++语言实现,具有较强的移植性,可以应用在有相同需求的其他项目中。

  

图4 电子地图显示效果图

  

图5 区域放大显示效果图

3 结束语

本文以某型雷达为背景,讲述了在vxworks操作系统下电子地图的实现方法,并在有限硬件平台上实现电子地图的显示,最后成功应用在某在研型号项目中,提升了嵌入式系统实时性、可靠性、支和人机交互能力。该技术成果可在嵌入式指挥控制系统、火力控制系统中推广,具有良好的应用前景。

1.缩减传统成鱼池塘养殖面积,大面积推广小龙虾、河蟹、甲鱼、黄鳝、泥鳅、黄颡鱼、大白刁等市场价格高,市场需求大,经济效益高的名特优品种;大力推进“一鱼一产业”战略,在现有的小龙虾、河蟹、鳝鳅三个“百亿元”产业发展势头强劲的基础上,2018-2020年湖北省利用国家政策性支持资金,全省每年升级改造池塘5000亩,推广名特优水产养殖面积5000亩。积极谋划实施渔业供给侧结构性改革,稳步推进湖北渔业结构调整。

参考文献:

[1] 栗明,栗科峰.嵌入式图形库Windml中窗口控件的实现[J].数字技术与应用,2011(4): 125-126.

[2] 翟艳磊,何祥宇,夏玉杰.嵌入式电子地图设计中Mapinfo文件的读取和显示[J].现代计算机,2010(2): 122-125.

[3] 李旭升.MiniGUI的研究及在嵌入式车载导航系统中的应用[D].成都:西华大学,2009.

[4] 汪亚雷,余春暄.基于嵌入式Linux的Mapinfo格式地图显示[J].嵌入式操作系统应用,2006,22(10-2):185-186.

[5] 赵从欣.基于Mapinfo平台的Mif/mid文件成图方法[J].四川测绘,2003:28-32.

[6] 李杰,付梦印,邓志红.Mapinfo格式的地图数据在嵌入式导航系统中的应用[J].计算机工程与应用,2003(13):214-217.

[7] 北京科银京成技术有限公司.DeltaGUI技术白皮书3.0[C].2002.

 
郝士林,李方军,朱永杰
《火控雷达技术》 2018年第01期
《火控雷达技术》2018年第01期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息