基于嵌入式操作系统VxWorks的图形界面开发

发布者:龙爱泉也最新更新时间:2012-03-27 来源: 电子产品世界 关键字:嵌入式操作系统  图形界面  VxWorks 手机看文章 扫描二维码
随时随地手机看文章

  引言

  嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,显然,嵌入式系统中的操作系统是整个系统的核心部分。 VxWorks作为性能优秀的嵌入式操作系统,不论是在可靠性、实时性、可裁减性方面,还是在开放性、易用性等方面都是相当不错的。

  本文主要利用WindML解决了嵌入式系统一般图形开发中所遇到的问题,对个别实现中的关键技术进行了详细阐述,并且总结出了图形界面开发的一般流程以供借鉴。

  VxWorks概述

  VxWorks操作系统是美国Wind River公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它十分灵活,具有多达1800个功能强大的应用程序接口(API);其次,它适用面广,可以用于从最简单到最复杂的产品设计;再次,它可靠性高,可以用于从防抱死刹车系统到星际探索的关键任务;最后,它适应性强,可以用于所有流行的CPU平台。VxWorks嵌入式实时操作系统包括微内核 Wind、高级的网络支持、强有力的文件系统和I/O管理、C++和其它标准支持等核心功能。

  Tornado及WindML概述

  WindML概述

  WindML(Wind媒体库)提供了对运行在嵌入式系统上的多媒体应用程序的支持,以及用来开发可定制的标准化设备驱动程序的框架。并且,WindML提供了一系列工具用来处理输入设备和过程事件。以上这些功能绝大部分都由WindML提供的API来完成。

  WindML由两个部分组成:软件开发工具箱(SDK)和硬件开发工具箱(DDK)。

  SDK用来开发应用程序,在图形、输入处理、多媒体、字体和内存管理等方面,提供了全面的API,并且允许开发者在不同的硬件平台下完成独立于硬件的简单代码。

  DDK用来完成驱动程序的开发,它提供了一系列完整的通常硬件配置情况下的驱动程序参考,以及一系列能使开发者迅速开发出驱动程序的API。DDK具有可扩展性和可定制性。DDK是SDK与硬件之间的中间层,直接与应用对象的硬件设备(包括显示器、视频、音频、键盘和鼠标等)相连接。


 
图1 自动隐藏流程图[page]

图2 窗口互锁流程图

  图形界面开发技术

  程序总体框架

  几乎所有实际应用方面的编程都有一个框架可以遵循,利用WindML的图形开发也不例外。虽然,它限制了一些有个性和特色的程序的出现,但它毕竟能够减少编程时的错误,而且能够提高编程的效率。图形开发设计的总体框架主要是调用uglInitialize完成 UGL (通用图形库)初始化,设备驱动装载,创建图形环境变量完成对所有资源的释放,并退出。

  基本操作简要介绍

  二维图形库

  ● 绘图基本要素:基本的图形是由简单的几何要素组成的,包括椭圆、直线、多边形。
  ● 文字渲染和字体管理:提供了一种简便的方法将文本信息绘制到显示设备上。
  ● 位图管理: API提供了一个简便的机制用来创建和渲染单色、彩色和透明位图图像至显示设备。
  ● 图形指针管理:指针是一个由应用程序创建的,并由指针设备定位到屏幕上的图像。它支持254种颜色以及透明色 和反向像素。
  ● 批量绘图:进行绘图操作,能够确认绘图操作的完整性,使屏幕闪烁最小,并且能最有效地利用系统资源。
  ● 图形环境变量:包含了图画特征的所有信息,比如绘图的基本要素、默认位图、裁剪与观察区尺寸、光栅模式和文字渲染用的字体等。
  ● 颜色管理:在多种显示模式或多种显示设备类型下,利用颜色管理API能很方便地进行一些应用软件开发,对应用软件进行优化。
  ● 双缓冲技术:主要是为了减少高频率或大区域刷新时的屏幕闪烁。利用API,可以先将对象绘制入一个未显示的页(或缓冲),当绘图结束时再将这个页显示出来。 [page]

  事件处理— 一般包括鼠标、触摸屏、键盘和用户自定义事件等的处理。
  区域和窗口管理-包括区域和裁剪;以及窗口管理。
  多媒体— 包括视频、音频和JPEG等。
  资源管理— 包括常规资源、内存管理、设备驱动注册表、重叠面、驱动信息与管理。

  扩展功能的实现

  在实际编写程序时,总会遇到这样或那样的问题,有些可以通过已定义的功能函数来解决,而另一些不能直接解决的,我们通常会编写一段程序对现有功能进行扩展(利用已有的函数,通过特定的算法,完成特定功能)。在利用WindML组件进行编程时,我所遇到的几个实际问题,都是通过功能扩展来解决的。下面将对这些问题进行详细讨论:

  指针延时自动隐藏

  通过循环读取事件队列中的事件信息,对类型是指针的事件进行处理来完成鼠标消息的响应。但是,在此之前必须对鼠标指针的位置、图像以及大小等进行初始化,并将其显示在显示器上。然后,在事件处理时,如果通过函数uglEventGet得不到事件信息,即该函数返回状态为UGL_STATUS_Q_EMPTY时,若此时满足某特定条件,或者说系统已经空闲一定时间,那么,程序将调用函数uglCursorOff隐藏指针,直到有鼠标事件进入事件队列并被得到时,调用函数 uglCursorOn显示指针。流程图见图1。

  窗口互锁

  窗口互锁就是要求整个屏幕中最多只有一个窗口显示,要想显示另一个窗口必须在该窗口关闭后才能进行。WindML组件自身没有提供这种互锁功能,组件中的窗口可以重叠、嵌套,理论上,只要系统提供的资源足够,那么屏幕上可以显示无限个窗口。流程图见图2。

  屏幕取词技术

  在WindML组件中,所有的图像、文字、窗口等都是以像素的形式画到显示设备上的。因此,一旦将对象绘制到显示设备上,就不可能用给定的函数得到某个区域中的对象。这样,如果需要用户输入信息,然后再得到这些信息时,问题就出现了:用户输入信息可以通过响应键盘事件,然后刷新相应显示区域来完成;但此时得到相应显示区域内的信息就十分棘手了,因为WindML组件中没有提供实现该功能的函数。现在就必须对WindML进行功能扩展以实现屏幕取词功能。

  首先,规定需要用户输入的内容放在某个窗口中完成,假定要求用户输入的内容不止一个,但也不超过十个,多个内容按上下顺序排列。其次,我们规定在窗口中指针点击OK键完成取词功能,点击CANCLE键不取词。第三,假定键盘事件只响应数字键、‘.’键以及上下左右四个方向键。第四,所有的动态更新数据存放在字符串数组指针中,并在关闭窗口前释放它。

  按键功能仿真技术

  WindML组件中不存在像按钮这些类似的控件,所以,要实现Windows中的各种控件功能,要么购买Wind River公司提供的Zinc组件,要么就利用WindML现有的功能仿真实现。现以按钮控件为例,说明如何利用WindML实现按键功能。首先,我们必须完成按钮的外观设计:初始时先用一种颜色在规定的区域内绘制一矩形框,并在框内写字以完成一按钮抬起时的状态;当指针点击该区域,必须要仿真出按钮被按下的状态,此时只要以另一种颜色重画该区域并重新写字即可。其次,我们必须通过程序知道什么时候指针点击了该区域,这时我们可以利用宏 UGL_POINT_IN_RECT(point, rect)来判断。在鼠标左键被按下时,可以通过事件得到当前指针的位置(x,y),令point.x=x,point.y=y,如果point在给定的 rect范围(上述规定区域)内,则宏返回UGL_TRUEU,否则返回GL_FALSE。这样就实现了按键功能的仿真,由于整个流程较简单,这里就不给出流程图了。

  结语

  综上所述,嵌入式实时操作系统VxWorks的图形开发组件WindML在图形界面开发中的功能还是十分强大的,但是由于它的开发功能十分底层,因此一些Windows中常见的功能没有直接的函数或功能块实现。然而,因为它十分底层,我们可以通过一定的算法对WindML的功能进行扩展以完成所需功能的实现。总体而言,WindML组件功能强大但不完善,并且编写的代码量较多。但在嵌入式领域中,强调实时性及资源消耗最小的同时能实现如此功能已经是十分优秀了。

  参考文献

  1. ‘WindML Programmer’s Guide 2.0 Beta-2’, Wind River Systems, Inc.
  2. ‘VxWorks Programmer’s Guide 5.4’. Wind River Systems, Inc.

关键字:嵌入式操作系统  图形界面  VxWorks 引用地址:基于嵌入式操作系统VxWorks的图形界面开发

上一篇:VxWorks操作系统及实时多任务程序设计
下一篇:VxWorks系统的映像及其装载过程解析

推荐阅读最新更新时间:2024-05-02 21:59

风河VxWorks全新升级尽显Java嵌入式开发优势
随着物联网飞速发展,各细分市场的企业都在寻求实现单个设备以及联网系统的数字化转型,而这无疑会让操作系统以及整个嵌入式系统迎来发展的良机。然而在数字化转型过程中,由于设备操作系统可能存在版本差异,在现场进行远程编程、测试和升级将会面临艰巨的挑战。 为此,我们推出了针对VxWorks实时操作系统(RTOS)的风河Micro Runtime组件。此前RTOS主要支持C/C++语言组合,而该组件新增了对Java应用支持,让物联网开发者在设计应用程序时,能够充分利用Java在嵌入式开发方面的优势,提高开发效率、增强代码可移植性,并通过远程修复漏洞节约成本、增加营收。 Micro Runtime提供最佳的嵌入式Java运行时环境,
[嵌入式]
风河<font color='red'>VxWorks</font>全新升级尽显Java嵌入式开发优势
基于嵌入式操作系统的网络摄像机
与传统模拟监控系统相比,数字视频监控系统具有诸多优点:   1)把监控录像保存在大容量硬盘上,数字信号存储信息永不丢失,图像质量不下降。   2)数字视频容易被计算机处理。可以在监控图像中设定报警区域,计算机对报警区域的图像进行分析和处理,做到自动监控,无人值守。   3)数字视频经过压缩之后,占用带宽较小,而且数字信号在传输时容易进行加密,非法截取的信号无法还原为视频图像。   4)数字录像存储在计算机硬盘上,可以用计算机来检索和管理,摆脱了手工管理和检索的复杂繁琐。   基于网络摄像机的远程视频监控系统的研究,国外起步较早,成熟的网络摄像机产品有索尼营销公司推出的10BASE2T的网络摄像机“SNC2VL10N”,以
[工业控制]
基于<font color='red'>嵌入式操作系统</font>的网络摄像机
基于VxWorks实现自动发送彩信嵌入式设计
在ARM微处理器硬件平台上,应用WindRiver公司的Tornado集成开发环境,实现基于VxWorks的自动发送彩信的嵌入式应用系统。该系统使用现有CDMA网络,根据设定的参数发送彩信到特定的移动终端用户。 随着嵌入式应用的发展和16/32位RISC处理器技术的成熟,以及支持各种高端处理器的嵌入式操作系统的涌现和完善,嵌入式无线设备可以利用CDMA网络实现许多新的应用。自动发送彩信的嵌入式系统就是这种新应用之一,在特定的条件下,系统自动发送彩信到指定的移动通信终端;该应用系统是由用户根据要求设定触发条件的自动发送彩信系统,当满足触发条件时,设备会自动控制捕获、压缩图像部件拍摄外部图像,经过模数转换、数字压缩等处理后,经处理
[嵌入式]
西门子工业计算机采用风河VxWorks商用平台
【新闻要点】: 西门子在其高性能工业计算机中采用风河VxWorks实时操作系统。 借力VxWorks,西门子新产品上市时间缩短四个月,工程成本降低50%。 全球领先的智能互联系统软件提供商风河®公司宣布,Siemens Digital Factory Division选用VxWorks®实时操作系统(RTOS)作为其市场领先的高性能工业计算机的基础平台。 西门子的工业计算机运行在各种极端严酷的环境中,甚者经常被直接安装在工厂的生产车间里。由于通常的计算机操作系统并不能完全满足环境多变、任务复杂的工业应用要求,西门子需要能够可靠、快速、安全地执行各项任务的实时操作系统。西门子认为,使用经过实际应用长期验证的商用实时操作系统可
[工业控制]
基于VxWorks的T比特路由器2.5G POS接口板设计与实现
   1. 引言   随着IP网络的蓬勃发展、新的应用不断涌现,用户对网络带宽的要求也越来越高。运营商采用OC一192(10Gbps)接口的光纤传输大大提高了光传输网络的容量,而路由器作为网络的主要节点设备,其处理速度就成为网络通信的主要瓶颈之一。一台具有50个oc一192接口的路由器交换容量将达到T比特级,国外T比特路由器已经开始试运行,国内开发T比特路由器也迫在眉睫。本文所研制的T比特路由器,系统总吞吐率可达1.28Tbps,峰值交换能力为2.4Tbps,而每端口可达到10G的转发速率;为达到10G的转发速率,本路由器采用了4路2.5GPOS接口。    2. 硬件总体结构设计   本路由器硬件体系结构由线路接口子系
[嵌入式]
基于VxWorks目标跟踪系统的接口板设计
1 前言    由于目前发展现代化的坦克火控系统已成为充分发挥坦克火力,提高战场生存能力的最有效途径之一。随着嵌入式系统的发展,VxWorks操作系统以其良好的有效性、可裁减性、互操作性、可靠性和卓越的实时性等优点被广泛地应用在高精尖技术及实时性要求极高的领域中。因此基于VxWorks嵌入式操作系统的目标自动跟踪技术的研究已经成为提高坦克火控系统性能研究的主要方向。本文以研制坦克目标自动跟踪系统信息处理平台为背景,设计了基于 VxWorks的目标自动跟踪系统的 PCI总线接口板,实现了坦克火控计算机与坦克火控系统之间的数据通信。其中以桥接芯片 PCI9054 为核心的设计尤为重要。使目标自动跟踪系统具备了能够捕获和跟踪较复杂
[嵌入式]
开放式控制平台及其在无人潜航器制导系统中的
2004年7月波音公司首次验证有人驾驶战斗机与无人机UAV(Unmanned Aerial Vehicle)协同飞行的能力,并验证了无人机的自主控制能力,包括实时防止空中相撞能力、自主规避机动能力、自主改变航线以响应突如其来的威胁和飞行故障 。这次试验是作为美国国防高级研究计划局DARPA(Defense Advanced Research Projects Agency)提出的软件激活控制SEC(Software Enabled Control) 计划的一部分。SEC是重要的实时软件技术,实现SEC的关键是开发新的控制算法和软件技术。开放式控制平台(OCP)是一个开放式、基于中间件技术的软件结构和嵌入式控制系统开发平台。该项目的
[模拟电子]
开放式控制平台及其在无人潜航器制导系统中的
基于μC/OS-II嵌入式操作系统的TCSC实验控制器前置单元设计
可控串联补偿( TCSC) 是柔性交流输电系统( FACTS)概念提出后的第一个FACTS装置。由于TCSC直接串入输电线路,可以连续、快速、大范围地调节线路阻抗(本身的阻抗从容性到感性变化) ,和其自身的数据采集与监控( SCADA)系统相配合,可以实现远方阻抗和功率潮流调节,平息地区性功率振荡,提高系统暂态稳定性,抑制次同步谐振。本文通过一个在研项目——福建-华东电网互联的可控串补研究,详细介绍了可控串联补偿( TCSC)实验控制器的前置单元部分设计,以便于为实际决策提供完整准确的实验数据。 TCSC的稳态特性分析电路模型 TCSC的基本结构是固定的串补电容C并联一个由双向晶闸管(实际也可把两个单向晶闸管并联反接在一起
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved