EDN China > 设计实例 > 嵌入式系统 > 操作系统 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) VxWorks下基于Tilcon的图形界面显示方案

付琦?? 蒋健?? 北京理工大学?? 姚鹰?? 中国船舶系统工程部?? 2013年04月09日 ?? 收藏0

3. Tilcon的使用方法

基于Tilcon的结构组成,可以灵活的对图形界面进行设计。首先,利用IDS产生合乎要求的界面,保存后生成twd ( Tilcon Window Definition) 文件;其次,用户编写应用程序来控制图形界面的显示,同时利用丰富的API函数丰富界面的功能。典型的基于VxWorks的Tilcon应用程序架构如图4所示。

VxWorks下基于Tilcon的图形界面显示方案

图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号的数字成为最简便的一种方法。

3. 具体实现方法,

WindML编码显示的参数和实现思路集中体现在点阵存储文件的结构上,这些文件在D:\Tornado2.2\target\src\ugl\fonts\bmf目录下,该目录下有各种VxWorks支持的字库点阵信息,只需要改动其中不会被用到的某一种字体格式即可。例如对于实际项目中项目中不使用Times new roman 14号字,修改的内容包括0、1、2、3、4、5、6、7、8、9及小数点。最终修改的目的就是将字库中的某一种不会用到的字体字号修改为需要用到的大字号数字,将WindML重新编译到VxWorks,使VxWorks字库支持大字号的显示。对于实例来讲就是,当Tilcon中字体设置为Times new roman 14时,目标机中显示的为大号数字。

若要讨论数字及小数点的修改,就必须了解点阵的意义、字模的产生方法以及点阵信息描述表总表和点阵信息结构。其中有两个重要的概念,一个是字模结构,WindML 为每一种字体定义了一个字模结构,它规定了每个字符所拥有的空间大小,相邻两个字符的间距。文字的字模是文字在屏幕上显示的关键,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状。如英文“A”在字模中是如图5这样记载的。

VxWorks下基于Tilcon的图形界面显示方案

图5:英文“A”在字模中的记载方式。

《电子设计技术》网站版权所有,谢绝转载


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

VxWorks? 图形用户界面? Tilcon? WindML编码?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈