[Full]
完整版
[Rss]
订阅
[Xml]
无图版
[Xhtml]
无图版
Rss
& SiteMap
曙海教育集团论坛
http://www.bjzhda.cn
曙海教育集团论坛
◎
曙海教育集团论坛
→
VxWorks技术讨论区
→
VxWorks下基于Tilcon的图形界面显示方案
共1 条记录, 每页显示 10 条, 页签:
[1]
[浏览完整版]
标题:VxWorks下基于Tilcon的图形界面显示方案
1楼
wangxinxin
发表于:2010-11-17 9:01:04
以下内容含脚本,或可能导致页面不正常的代码
<div class="t_msgfont" id="postmessage_363025"><a href="http://www.ed-china.com/SEARCH/ART/VxWorks.HTM"><font color="#0000ff">VxWorks</font></a>是由美国风河公司<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%BF%AA%B7%A2">开发</span>的一套微内核、高可靠性、可裁剪的<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%C7%B6%C8%EB%CA%BD">嵌入式</span>多任务实时操作系统,是现在所有独立于处理器的操作系统中最具特色的一个,具有多达1800多个功能强大的应用<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%B3%CC%D0%F2">程序</span>接口,近年来以其出色的可靠性和实时性广泛地应用于<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%D2%BD%C1%C6">医疗</span>、航空、船舶、车载电子等领域。 如同大部分嵌入式操作系统一样,VxWorks并没有集成完善的用户图形开发界面,但随着嵌入式操作系统的广泛应用,用户对产品各个方面的要求越来越高,工程师们也开始将项目的目标定位成“以人为本”,开发友好且健壮的人机界面得到空前的重视。风河公司为此开发出可选组件WindML(WindRiver Multimedia Library),WindML作为VxWorks的媒体库为用户提供了进行图形界面开发的丰富的API,也为用户提供了一个实用性极强的图形<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%D3%B2%BC%FE">硬件</span>接口。尽管利用WindML可以进行基于<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%B4%FA%C2%EB">代码</span>的各种用户界面的开发,但用户可以利用更实用的<a href="http://www.ed-china.com/SEARCH/ART/Tilcon.HTM"><font color="#0000ff">Tilcon</font></a>工具,实现“拖-放”式的图形界面<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%C9%E8%BC%C6">设计</span>,把用户从大量编码的图形界面开发方式中解放出来,大大简化了嵌入式系统图形界面的开发过程[1]。 WindML 1.WindML介绍 WindML(WindRiver Multimedia Library)是运行在嵌入系统中的多媒体应用;为各种体系提供基本图形、视频和音频技术。WindML是独立于操作系统的图形界面引擎,它可实现尽可能小的内存占用,同时提供最佳性能。WindML由两个组件组成:一个软件开发工具箱(SDK),为各种平台开发与硬件无关的应用开发服务;一个<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%C7%FD%B6%AF">驱动</span>程序开发工具箱(DDK),用于实现驱动程序。二者提供用于图形界面开发的丰富的API,包括区域管理,文字显示,颜色管理,视频支持,特殊<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%CD%BC%CF%F1">图像</span>格式处理等方面,使开发人员在Wind River的实时操作系统上建造丰富的、全面的、可嵌入的GUI成为可能,同时保证较低系统开销和快速市场化[2]。其中DDK包括16位Unicode字体支持;使用灰度字体、true type 字体、防混淆和字体的子像素渲染这些增强特性。在体系结构上可以理解为,WindML将软件、硬件隔离开,实现脱离软硬件环境的更稳定高效的图形界面开发。如图1所示,其层次结构从上到下依次为:软件——SDK——DDK——硬件,依靠这种结构可以进行各种多媒体应用进行模块化开发。 <p align="center" sizset="23" sizcache="0"><img alt="VxWorks下基于Tilcon的图形界面显示方案" src="http://www.ed-china.com/ARTICLE_IMAGES/200908/20090827_ES_EMS_TS_62F1.JPG" align="center" border="0"/> 图1:WindML结构关系图。 WindML具有如下优点:极小内存占用,容易<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%D2%C6%D6%B2">移植</span>到定制硬件上,高性能图形输出,直观的、完善的API,灵活的内存管理,事件路由,基本窗口创建,ISO 8 位和Unicode 16-位字体支持,带有抗混淆支持的AGFA 单型第三方字体引擎插件选项,多线程支持,Alpha混合支持,视频叠加支持,JPEG图像支持,用于Tornado II的VxSim模拟程序支持[3]。 2.WindML的配置及编译 利用Tilcon进行应用程序图形界面开发,WindML的配置及编译都是首要的前提条件,还需要将编译后的WindML加载到VxWorks的内核,最终实现其“承上启下”的功能。安装WindML不会影响原Tornado安装,安装后WindML的配置工具和组件会自动出现在IDE中。配置WindML需要在VxWorks的集成开发环境Tornado中进行,依照Tools /WindML/Configure 步骤打开相应配置对话框,如图2所示。 需要强调的是,位图字体选项卡中,提供了可选的Unicode 16-位字体支持,可根据具体需要增加或是裁剪字库,精简嵌入式系统的内核。确定需要用的多媒体设备,配置好WindML后就是编译多媒体库,对于每一次重要的修改应先选择clean清除原本的多媒体库内容,再进行编译,而工程中涉及到的对字体的修改只需要直接编译即可。 <p align="center" sizset="24" sizcache="0"><img alt="VxWorks下基于Tilcon的图形界面显示方案" src="http://www.ed-china.com/ARTICLE_IMAGES/200908/20090827_ES_EMS_TS_62F2.JPG" align="center" border="0"/> 图2:WindML配置选项。 Tilcon图形开发软件介绍 1.Tilcon简介 Tilcon Interface Development Suite(IDS)为多平台用户接口开发提供解决方案,是目前最先进的VxWorks下实时操作系统图形开发工具,它集成了大量成熟控件,用户只需要从工具栏中拖动控件,即可实现简单的界面开发,它开发的图形应用程序具有可裁剪性强、运行效率高、显示效果好等优点,因此Tilcon已成为Wind River 开发环境首推的图形界面开发工具。Tilcon的另一个巨大的优点就是它的程序代码不需要修改就可以从VxWorks上移植到Windows上运行,这极大地方便了<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%B5%F7%CA%D4">调试</span>过程,并且Tilcon支持Windows、L inux宿主机开发环境;同时还它可以支持Windows 98 /2000 /ME /NT/XP、W in2dows CE、Linux、VxWorks、QNX等多种目标操作系统的交叉开发。 2. Tilcon组件构成 Tilcon开发系统由三个主要部件构成:Tilcon嵌入式向量引擎(EVE),平台无关的API和可视化设计工具Tilcon Interface Builder——Tilcon图形编辑器,如图3所示。EVE 是一个小的、事件驱动的内核,独立于应用程序的进程,其主要任务是驱动、管理所有的用户界面显示及人机交互事件。Tilcon的这种分离设计方式,使得应用程序只需要专注于实现自己核心的实时应用。 第二个部件是平台无关的复杂的API调用,API是人机交互的接口函数,这些函数可以动态创建对象,可以控制对象属性,无论在Tilcon图形编辑器上可以直接修改还是不能直接修改的属性,利用丰富的API函数都可以实现。 Tilcon Interface Builder为用户提供了便捷的图形界面设计环境,将所需要的控件拖拽到需要放置的位置即可,并且所有控件的显示风格和功能可以通过对象属性页进行方便地修改。IDS用类似VB的方式构建界面,并生成不含代码的窗口描述文件,窗口中的每一个对象都有自己的ID,Value,还有其他属性,如:是否模糊,对象之间是否关联,按钮的抬起或按下,指针指向的数值等等。这些属性通过EVE引擎,调用API,都可以读取和控制,从而得知窗口的改变或控制窗口的行为,该API与C/C++完全兼容,且平台无关,开发人员只需关注程序的逻辑与实现,而不必考虑其他[4]。 <p align="center" sizset="23" sizcache="0"><img alt="VxWorks下基于Tilcon的图形界面显示方案" src="http://www.ed-china.com/ARTICLE_IMAGES/200908/20090827_ES_EMS_TS_62F3.JPG" align="center" border="0"/> 图3:Tilcon的体系结构。 从图3可以看出用户的应用程序,或者说程序员开发的应用程序,完全的C程序,通过API与引擎通信,用户界面也是通过引擎呈现到用户屏幕面前,两者通过引擎结合。不难看出,由于引擎的存在,不管是用户界面,合适用户的应用程序,都可以做到平台无关,只需针对不同的平台做不同的设置,因而大大减少了重复劳动,用户界面和程序代码都可重复利用,缩短了开发周期和成本。由于IDS可以直接导入图片,因此用户界面也可以很漂亮。 3. Tilcon的使用方法 基于Tilcon的结构组成,可以灵活的对图形界面进行设计。首先,利用IDS产生合乎要求的界面,保存后生成twd ( Tilcon Window Definition) 文件;其次,用户编写应用程序来控制图形界面的显示,同时利用丰富的API函数丰富界面的功能。典型的基于VxWorks的Tilcon应用程序架构如图4所示。 <p align="center" sizset="23" sizcache="0"><img alt="VxWorks下基于Tilcon的图形界面显示方案" src="http://www.ed-china.com/ARTICLE_IMAGES/200908/20090827_ES_EMS_TS_62F4.JPG" align="center" border="0"/> 图4:典型的基于VxWorks的Tilcon应用程序架构。 在用户编写应用程序来控制图形界面的显示这一步中,需要说明的是:初始化数据结构时,决定了是基于哪种操作系统。应用程序使用TRT_Start命令启动EVE,加载和显示窗口之后,应用程序将进入主循环,等待事件的发生。主循环中可定义各种作用的API函数进行窗口事件处理,通过引擎作用继而控制控件的动作[6]。 VxWorks中大字体显示 1. 问题的提出 VxWorks作为嵌入式实时操作系统,在国内应用已非常广泛,但VxWorks原厂商没有直接提供完备的汉字显示解决方案,及普通字符集的大字体显示功能。也就是说,无论是Times new roman 还是Helvetica ,都只能提供最大24号的字体显示,而大部分项目的图像界面分辨率为640*480,无疑24号的字体对于显示屏来讲太小了。通常,实时显示一定要直观,并且显示的效果还要达到最佳,最适合工作人员观察,因此关键数据的显示一定要清晰、明了。 2. 问题的解决方案 实现西文大字体显示的最根本的方法就是在WindML字库中添加同已有字体文件相一致的大号字体的点阵信息源文件,完全自主开发一套点阵存储、点阵获取、点阵显示、汉字显示函数。但这种方法会消耗大量的时间在无用的点阵信息修改上,使得显示变得复杂。另一种方法就是基于已存在的点阵信息源文件进行修改,改造WindML的双字节和单字节显示函数,该方法对点阵的操作相当灵活,适合对点阵信息进行较少修改时,直接实现大字体的显示。 对于一般性的工程实际问题,屏幕上要求实时变化的一般为0-9这十个数字,而汉字显示通常只作为背景出现,考虑到VxWorks内核的大小,对于汉字的显示只需要通过Tilcon的背景设置,令其以图片的形式显示出来即可,修改已有的WindML字库来显示大于24号的数字成为最简便的一种方法。 </div><!--精华贴打标记--><!--精华贴打标记-->
说明:
上面显示的是代码内容。您可以先检查过代码没问题,或修改之后再运行.
共1 条记录, 每页显示 10 条, 页签:
[1]
Copyright © 2000 - 2009
曙海
教育集团
Powered By
曙海教育集团
Version 2.2
Processed in .03125 s, 2 queries.
[Full]
完整版
[Rss]
订阅
[Xml]
无图版
[Xhtml]
无图版