VxWorks下基于WindML汉字显示在某武控系统中的解决方案

合集下载

VxWorks系统显示汉字方案设计

VxWorks系统显示汉字方案设计
r k s 系统 显示汉 字方案设 计
哈 尔滨电气集 团阿城 继电器有 限责任公 司 王丽丽
【 摘要 】V x Wo r k s 作为 嵌入 式实时操作 系统,在 国内应用 已非 常广泛 ,但V x Wo r k s 原厂 商没有直接 提供完备 的汉字显 示解决方 案。本文这个 热 点论 题 ,通 过对 Vx Wo r k s 显 示 组件 的分 析 ,具 体 给 出 一种 汉 字 显 示 的 方 案 。 【 关键 词】嵌入 式系统;汉字;显示
“ 1 ”,作 为汉 字的机 内码 ,又称 为 异行 国 字 库 ,这 个 点 阵 字 库 不 必 按 照 W i n d M L 的双 字 标码 。这样 处理 ,既解 决 了汉字机 内码与 西 节 编 码 机 制 进 行 编 码 , 里 面 所 存 储 的 只是 汉 文字符 编码 ( A C S I I 码) 的二 义性 问题 ,又保 字 的 点 阵 信 息 和 区 位 码 信 息 , 这 个 字 库 可 证了汉字机 内码和 国标 码之间非 常简单 的对 以通 过从W i n d o w s 中导 出: 由于我们 不选 用 应关系。 W i n d M L 的双 字 节编 码 机 制 , 所 以对 于 V x W o r k s 字形码又 叫汉 字点阵 ,它是 采用点阵表 中关 于 点 阵字 体驱 动 如 何控 制 打 点 以及 显 示汉字字形 的代码 。常用的点阵有 1 6 ×1 6 、 示 ,我 们 并 不 需 要 了 解 ;更 重 要 的 是 我 们 拥 2 4×2 4 、3 2×3 2 等 ,例 如1 6 ×l 6 点阵,是把 有 更 大 的 灵 活 性 ; 我 们 只 需 要 做 的 是 把 自 己 个汉 字分 为l 6 行、1 6 N ,共2 5 6 个栅 格 , 所 写 的汉 字 显 示 函数 绑 定  ̄ W i n d M L 上 面 , 在 控 制、点线面 作 图等 函数,编程接 口很类似 个栅格 即为一个 点位,某点位 若有点则用 这 里 就 必 须 要 求 我 们 自 己写 点 阵 的 存 储 , 点 于T o r b o C ,B o r l a n d C 里 的 图 形 库 。Z i n c 基 “ 1 ”表 示 , 无 点 则 用 “ 0 ”表 示 。 可 见 一 个 阵 显 示 、汉 字 显 示 函 数 。做 起 来 其 实 不 难 , 于W i n d M L ,提供 了类W i n d o w s 风格 的接 口, l 6 ×1 6 点 阵汉 字 需用 3 2 个字节表示 。 只 要 求 我 们 了 解 一 下 汉 字 的 编 码 的 基 本 知 有 各 种 控 件 被 封 装 于 内 , 编 程 接 口很 类 似 于 3 . 汉 字 的 显 示 方 案 识 , 即汉 字 双 字 节 编 码 中 , 高 、 低 字 节 的 最 w i n d o w s 编程 。 实 现 本 地 汉 字 显 示 的方 案 一 定 会 涉 及 到 高 位 都 是 为 “1 ” , 而 西 文 字 符 的 编 码 的 最 ( 2 ) W i n d M L + J w o r k s W i n d M L , 只 是 不 同 的方 案 对 W i n d M L 的依赖程 高位 为 “ 0 ” , 我 们 就 是 利 用 这 点 来 判 断 出 J w o r k s 提 供J a v a 的 支 持 ,在 V x W o r k s 上 度有所不同 。 所要显示的字符是汉字还是英 文。 启动 J a v a 虚拟 机来解释 J a v a 语 言;图形开发 W i n d M L 是 由两部分组成 的,S D K 和D D K , 在 这 里 , 以1 6 ×l 6 的汉 字 点 阵 编 码 为 例 编程 接 口是J a v a 语言 ,J a v a 虚拟机 的图形实 所 谓的S D K 指的是软件 开发模块 ,D D K 指 的是 子 进 行 说 明 现 基 于W i n d M L 。 驱动开发模块;S D K 包含 了一个广泛 的涉及 图 ( 1 ) 首 先 开辟 一个 内存 空 间 , 把 1 6 ×1 6 的 ( 3 ) W e b S e r v e r + W i n d M L + J w o r k s + B r o w s e r 形 处 理 、输 入 处 理 、 多 媒 体 、字 体 和 内存 管 点 阵 编 码 读 入 内存 。 W e b W e r v e r 使 显 示 编 程 接 口 成 为 编 写 理 方 面 的 A P I 函数 集 ,这 就 使 得 开 发者 所进 行 酬 I 嘲 缸% 子函 其 中 船 e : 呻 参数 I 6 ×l 6 呶 宇点 阵字库所存放 的位I, 网页 ,可 以通过 远 程 的 B r o w s e r 来 访 问 而 的开发是于硬件平台无关的;D D K 模块 指的是 f d ; Ad df C h me s e c b 使 设 备 具有 远 程显 示 接 口,也可 以在 本机 驱 动 层 ,对 于 通 用 的 硬 件 的 配 置 , 它 都 能给 p 1 6 F o n l f a P , A M- ( mn * ) f  ̄1 o c ( ] 6 8 0 0 0 ) 做B r o w s e r 使 设 备 具有 本机 显示 接 口。该 出它所涉及到的驱动,它所提供的& P I 集合 , R DONL Y . m - 0 p O B r o w s e r 的实现 需要W i n d M L 或J w o r k s 的支持 。 使 得 开 发 者 可 以很 快 地 从 它 所 提 供 的 通 用 驱 r 目 《m . p 1 6 F 0  ̄l m  ̄ , A M. 2 6 7 6 1 6 ) ; 上述 方案 内,纯W e b S e r v e r 的 方 案 不 动 中开 发 出适 合 需 要 的新 的驱 动 。 c s 蚺. _ D l 锄妇 最啪 措向内存中所存披前 l 6 ×1 6 点 阵 汉字字库媳码 - 需 要本地汉 字显示 ,只要在 网页 上放国标码 几 种 汉 字 的显 示 方 案 : 或U n i c o d e 码 等, 由远程 的B r o w s e r 去实现 显 ( 1 ) 利用W i n d M L 对双 字节 编码 的支持 , ( 2 ) 汉字 的点阵显示 函数 。 示 ;其它方案 基本上 都需要W i n d M L 的支持 , 实 现 对 汉 字 的 点 阵 存 储 、 点 阵 获 取 、 点 阵 显 利 用 汉 字 的 区位 码 计 算 出 该 汉 字 点 阵 在 这 是因 为V x W o r k s 系 统 里 所 有 底 层 的 显 示 操 示 的 全 过程 ,并 使 用W i n d M L 的 双 字 节 显 示 函 字 库 中 的 起 始 位 置 ,计 算 公 式 : 作 都 是通 过 W i n d M L 实现 的 。 数 实 现 汉 字 码 到 汉 字 显 示 。这 种 方 法 使 用 了 ( 9 4 ×( 区号 一 1 ) + ( 位号一 1 ) ) ×3 2 2 . 汉 字编 码 的 基 本 知 识 系统机制 ,并使使用W i n d M L 的其 它 上 层 组 件 假如 是l 2 ×1 2 字库 需要2 4 字节 来表示 , 为 进 行 汉 字 信 息 处 理 , 国 家 专 门于 1 9 8 1 很 方 便 地 实 现 汉 字 显 示 ; 但 是 这 个 方 法 的 所 以后面的系数不 是乘 以3 2 而 是乘以2 4 。 年 颁 布 了 国标 G B 2 3 1 2 一 《 信 息 交 换 汉 字 编 前提 ,要对 W i n d M L 的双字节编码 机制理解透 接着 ,取出该汉字 点阵编码 ,判断在相 码 字符集 》。其 中共 收集 了汉字 6 7 6 3 个 ,并 彻 ,并 且 要 有 符 合 W i n d M L 双 字 节 编 码 机 制 的 应 的 位 置 是 否 执 行 u g l P i x e 1 S e t 函 数 , 该 函 确 定每个汉字采用两字节编码 。 汉字字库 。 数是在 该像素执 行打点操 作 ,假 如某位 点为 区 位 码 和 国 际 码 。 这 两 种 汉 字 编 码 都 ( 2 ) 自 己 开 发 点 阵 存 储 、 点 阵 获 取 、 点 “1 ” ,则 执 行 ,反 之 则 不 执 行 该 函 数 。 v o i d f o n t l 6 D r a w( U G LG C I D gc , i nt 由国标G B 2 3 1 2 规定 。其中 区位码 ,按照汉 字 阵显示 ,改造W i n d M L 的双字节 或单字节 显示 nt y, u nsi g ne d, ch a r c ol or, i nt 在G B 2 3 1 2 中的排列顺 序编码 ,它是把汉 字分 函数 , 使 其 能 判 断 汉 字 码 , 一 旦 判 断 出 汉 字 x, i 成9 4 个 区 、9 4 个 位 存 放 在 一 张表 中 ,一 个 区 码 ,则 使 用 自 己开 发 的 点 阵获 取 、 点 阵 显 示 p a g e ,i n t f o n t l n P a g e ) 6 F m ( ( P a g e - ‰ 1 ) 9 4 +f o a l t

VxWorks5.5平台下矢量字体显示的实现

VxWorks5.5平台下矢量字体显示的实现

计 算 机 系 统 应 用
方式 ,单字节 编码包括英文字母、数字和特 殊字符等,
双 字节 编 码 包 括汉 字和 自定 义字 符 等 。 W i M L 宁 体显 示 分 字 节显 示 和 单 字 节 显 示 两 n d
3 . . 1字库动态加载 4 字库动态加载方式是将 w n o s下的 Tu T p i w d re ye 字体库 文件 ( t , .c . t )拷 贝到 目标机 目录下 ,根据 t f t 用户需求在程 序执行 过程中动态加载字库。动态加载 的实现方法:先声明两个结构变 量,
_
图 2 单字节字符转换成双字节字符 字符编码根据长度分为单字 节和双字节两种编码
2 4 经 验交流 E p r n e xh n e 0 x ei cs c a g e E
21 0 1年 第 2 O卷 第 7 期
ht:w . S .r. t l wwc — og n pl ・a c
21 0 1年 第 2 O卷 第 7期
性 ,二次 贝赛尔 曲线既能保证轮廓 曲线 的光滑性 ,又 有利于提高字形还原的速度 。如下图 1 ” 所示 。
u l 2 o t ieC e t( gFr F nDrv r raeUGL . _ - UGIDRI R p ie, VE Dr r v
a he e a v rey o o t d sz sb sn h u Ty e f n s a d Fre p o te gn .Th sp p rd s rb st e c v ai t ff ns a ie y u i g te Tr e p o t i n n e Ty e f n n i e i a e e ci e h
统直 接使用 ,资源非 常丰 富,能满足嵌入式系统对字 库 的新 需求 。

VWorks下WindML和Zinc的使用分析和总结

VWorks下WindML和Zinc的使用分析和总结

VxWorks 下 WindML 和 Zinc 的使用,Tornado2. 2 + WindML3. 0(2)2008-05-11 11:22以上谈到了安装完Tornado2. 2和BSP,本局部主要介绍在VmWare5. 5上下载并运行一个简单的helloWorld程序。

首先:VmWare5. 5虚拟机中虚拟的网卡为AMD的Pc-Net网卡,而Tornado2.2所带的PCNet网卡驱动在实际使用过程中并不好用,因此需要重新编译网卡驱动。

下面单独介绍如何编译网卡驱动。

编译网卡驱动准备工作:在Arnd的官方网站上下载PCNet网卡驱动,是一个99年的很老的压缩包,名为ln97xEnd. tarl. gz,解压缩后在对应文件夹下找到target 文件夹,将此文件夹拷贝到Tornado2. 2的安装目录下target文件夹所在的位置并覆盖。

编译:在开始->运行->cmd,进入..\tornado2. 2\host\x86~win32\bin 目录,运行torVars. bat,此批处理文件主要是设置Tornado的环境变量,为了方便起见,你也可以将其设置在Window XP系统的环境变量中。

设置的环境变量如下:set WIND_H0ST_TYPE=x86-win32set WIND_BASE=D:\Tornado2. 2set PATH=%WIND_BASE%\host\%WIND_HOST_TYPE%\bin;%PATH%进入到・. \tornado2. 2\target\src\drv\end 目录,运行 make CPU=PENTIUMtool=gnu ln97xEnd. o注意大小写和空格。

完成后将此目录下生成的ln97Xend. o拷贝到・. \tornado2.2\target\lib\pentium\PENTIUM\common 目录下,在 cmd 窗口中重新定位到..\tornado2. 2\target\lib\pentium\PENTIUM\common 目录,运行arpentium -d libdrv. a ln97xEnd. o完成后再运行arpentium -ra iOlicomEnd. o libdrv. a ln97xEnd. o成功后驱动编译就完成了。

在WindML下汉字、图形界面及图片显示的开发研究

在WindML下汉字、图形界面及图片显示的开发研究

在WindML下汉字、图形界面及图片显示的开发研究胥小武;余立建;刘洪雨【摘要】本文介绍WindML的结构,重点叙述在开发文字图形前字库的原理、结构和配置、显示图片文件前的准备工作及WindML设置编译的重要注意事项,最后用具体的项目开发成果,展示了在VxWorks下用WindML开发的文字、图形、图片文件的显示.【期刊名称】《铁路计算机应用》【年(卷),期】2014(023)008【总页数】4页(P49-52)【关键词】VxWorks;WindML;文字;图形;图片文件【作者】胥小武;余立建;刘洪雨【作者单位】西南交通大学信息科学与技术学院,成都610031;西南交通大学信息科学与技术学院,成都610031;西南交通大学信息科学与技术学院,成都610031【正文语种】中文【中图分类】U29;TP39VxWorks实时操作系统由400多个相对独立的、短小精炼的目标模块组成,用户可根据需要选择适当的模块来裁剪和配置系统,这就有效保证了系统的安全性和可靠性[1]。

VxWorks包含了BSP,Wind内核,I/O系统,文件系统,网络系统,图形系统等[2]。

WindML是VxWorks下的一部分,它支持多媒体程序运行于嵌入式操作系统,主要用于提供基本的图形、视频和声频技术应用开发。

WindML API提供了一个统一的图形硬件接口及处理输入/输出设备事件的能力。

WindML包括两个组件:(1)SDK。

它提供了图形资源的初始化和清理例程,多媒体API包括了2D图形化界面、区域管理、窗口、颜色管理、视频音频、JPEG 支持、事件服务、内存管理、扩展API和设备管理;(2)DDK。

它提供了一个完整的常见硬件配置,参考驱动程序例程和API文档可以快速建立起新的驱动程序[3]。

WindML的层次结构如图1所示。

?在WindML第一次使用之前要配置、编译WindML。

VxWorks中的板级支持包BSP (board support package)是介于底层硬件和上层软件之间的底层软件开发包,它主要用来屏蔽底层硬件,进行硬件系统的初始化并调用外设的驱动程序接口管理系统外设。

vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法[发明专利]

vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法[发明专利]

专利名称:vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法
专利类型:发明专利
发明人:高娟
申请号:CN202010657373.1
申请日:20200709
公开号:CN111880683A
公开日:
20201103
专利内容由知识产权出版社提供
摘要:本发明属于vxworks系统技术领域,具体涉及一种vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法。

该方法首先配置windml虚拟鼠标设备;其次基于windml虚拟设备实现触摸屏驱动事件:通过串口接收任务解析触摸屏协议报文,获取有效的触摸事件坐标点。

同时,比较两次点坐标状态判断当前鼠标事件类型,作为虚拟鼠标事件输入,达到实现触摸屏驱动的目的。

利用上述技术方案,本发明可以实现vxwork系统下触摸屏串口驱动,该方法已经经过了算法验证,并进行了实验检验。

结果标明,该方案可以缩短触摸屏响应事件时间,保证触摸屏设备在vxwork系统下正常使用并且可兼容他类型鼠标。

申请人:天津津航计算技术研究所
地址:300308 天津市东丽区空港经济区保税路357号
国籍:CN
代理机构:中国兵器工业集团公司专利中心
代理人:周恒
更多信息请下载全文后查看。

VxWorks

VxWorks

VxWorks下基于WindML汉字显示在某武控系统中的解决方案作者:葛团伟来源:《电子世界》2013年第12期【摘要】主要针对VxWorks原厂商没有直接提供完备的汉字显示解决方案,通过对WindML图形显示组件中BMF结构的详细分析、汉字存储结构和VxWorks中汉字显示操作方法的论述,给出VxWorks下基于WindML汉字显示在某武控系统控制台上解决方案,具有较高的实用价值。

【关键词】VxWorks操作系统;WindML;汉字显示1.引言VxWorks操作系统是美国风河公司设计开发的一种嵌入式实时操作系统,具有高性能的内核以及友好的用户开发环境。

它以其良好的可靠性、卓越的实时性和可裁剪性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。

基于VxWorks系统的输入、输出一般可应用风河公司提供的图形开发库WindML(Wind Media Library)进行开发。

本文结合VxWorks在某武控系统显控台上的应用,通过对WindML显示组件中的BMF (Bitmapped Monochrome Font)结构的详细分析和汉字存储结构论述,给出在VxWorks中显示汉字的具体方案,具有一定的参考价值。

2.VxWorks操作系统汉字显示方案汉字在VxWorks中显示是一种图形解决方案,其编码可参考GB2312《信息交换汉字编码字符集》。

VxWorks只有工作在图形模式下才可能显示汉字,以下列出VxWorks操作系统汉字显示几种方案。

(1)利用WindML对双字节编码的支持,实现对汉字点阵存储、获取和显示的全过程,并使用WindML双字节显示函数实现汉字码到汉字显示,这种方法使用了系统机制及WindML的其他上层组件很方便地实现汉字显示,但前提要对WindML的双字节编码机制理解透彻,并且要有符合WindML双字节编码机制的汉字字库。

(2)自己研发点阵存储、获取和显示,改造WindML双字节或单字节显示函数,使其能判断汉字码,一旦判断出汉字码,则使用自己研发的点阵获取、显示等把汉字显示出来。

VxWorks中利用WindML实现点阵汉字显示的方法

图1-2
图1-3
4.汉字的显示
在完成汉字字库的加入工作后,就可以在程序中运用WindML自带的接口函数进行汉字的显示工作了。
首先初始化图形上下文GC,然后使用uglInitialize()函数进行字体驱动和字体引擎的初始化,再使用uglDriverFind()函数选择字体驱动,再利用uglFontFinedString()函数查找已经配置好的字体,然后就是uglFontCreate()函数创建字体。这些步骤和英文汉字的初始化步骤是一样的,只是字体选择的不同。完成好上述步骤后,就可以调用显示函数uglTextDrawW()来进行汉字的显示了。需要注意的是字体不需要时要调用uglDestory()来销毁字体。
2.WindML字库文件格式(以song16为例)
#include <ugl/driver/font/udbmffnt.h>
UGL_LOCAL const unsigned char page0Data[] ={
/*耿*/
0xa2,/*page*/
0xb9,/*index*/
0x00,/*size(MSB)*/
leading:行间距;
maxAdvance和maxDescent:两者之和是最大长度(纵向)大小,两数的交界决定了一个baseline,maxAscent是baseline以上的长度,maxDescent是baseline以下的部分;
maxAdvance:指最大宽度(横向)大小,以点为单位;
以上面的“耿”字为例,打点效果如图1-1所示,字体点阵宽度和高度各16,baseline在点阵最下行边沿,从它向上数16行(即点阵的第一行)开始按data所示数据开始打点。
UGL_FONT_PROPORTIONAL,/*spacing*/

基于VxWorks操作系统的WindML图形操控界面实现方法

基于VxWorks操作系统的WindML图形操控界面实现方法胡俊【期刊名称】《计算机与数字工程》【年(卷),期】2011(39)11【摘要】通过使用WindML来实现界面显示,显示主要采用读取24位真彩色位图的方式来实现,背景用整个位图显示,界面中需改变的图像只需刷新局部显示内存,给出详细源代码,方法简单,并且界面美观,通用性强.%Using WindML to achieve Interface-Display under VxWorks operating system, and the way to realize Interface-Display is to read 24bit bitmaps into buffer, and then display it Providing particular program codes, the method is simple and the interface is beautiful, and can be widely used.【总页数】4页(P196-199)【作者】胡俊【作者单位】华中光电技术研究所武汉光电国家实验室,武汉,430074【正文语种】中文【中图分类】TP391.41【相关文献】1.基于WindML的图形界面控制系统设计 [J], 蒲元远;吉高卿2.基于VxWorks的WindML图形界面开发方法 [J], 蔡华;卞新高;史中权;丁坤3.VxWorks系统下基于WindML的窗口化图形界面设计 [J], 吴秀才;李瑞斋;周健4.基于WindML媒体库的图形界面开发 [J], 秦啸;宋慧娟;穆朝义;5.VxWorks系统下基于WindML的窗口化图形界面设计 [J], 吴秀才;李瑞斋;周健因版权原因,仅展示原文概要,查看原文内容请购买。

VxWorks下汉字显示解决方案


t e p o l m fl t c h n s h r ce sd s l y a d p e e t awa o d s ly a t p fsmp e l e v c h r b e o t e C i e e c a a t r i a , n r s n s y t i a e o i l i e — ai p p y n
1 点 阵 汉 字
1 1 点 阵汉字 基本 原 理 .
还 提供 操作 输入 设 备 和 处理 输 入 设 备 事件 的功 能 。
Wid n ML由两部 分 组 成 : 软件 开 发 包 ( D 和 硬 件 S K)
Abs r t:Th mb d e e ltme o r tn y t m W o k swi e y a p id i to a e e e, a — t ac e e e d d r a i pe ai g s se Vx r si d l p le n nai n ld fns n v iai n a d Ae o a tc &Asr n u is d ma n .Bu t a pl ai n n g to n r n u is to a tc o i s t is p i to i Chi n o ntr r b e t a c na e c u es a p o l m h t
但 V Wok 原 厂 商 WidRvr 司没 有 提 供 x rs n ie 公
汉 字 显示 方 案 , 国 内应 用 汉 字 显 示 是 必 不 可 少 在
的 。本文 就汉 字显 示 的基 本原 理 进 行 了讨 论 , 析 分
了基 于 WidR vr 司 的 图形 开 发 组 件 实 现 汉 字 n i 公 e 显 示 的机 理 , 结 合 实 例 具 体 给 出利用 Wid 并 n ML从 底 层 解 决点 阵 汉 字显 示 的解 决 方 案 , 并设 计 了一种 矢 量 汉字 显示 的解 决方 案 。

基于WindML的图形开发与应用

基于WindML的图形开发与应用练学辉;朱佳丽;乔大雷【摘要】以电子地图显示软件开发为背景,研究了Vxworks下使用WindML3.0进行嵌入式图形开发的全过程,包括WindML的配置和加载、WindML下图形开发的总体框架等,并实现了WindML下图形窗口的创建、显示、刷新,汉字的显示,并利用双缓冲技术解决电子地图刷新时的屏幕闪烁问题.【期刊名称】《雷达与对抗》【年(卷),期】2015(035)001【总页数】4页(P65-68)【关键词】WindML图形开发;WindML配置和加载;窗口显示;双缓冲;汉字显示【作者】练学辉;朱佳丽;乔大雷【作者单位】海军驻南京地区雷达系统军事代表室,南京210003;中国船舶重工集团公司第七二四研究所,南京211153;中国船舶重工集团公司第七二四研究所,南京211153【正文语种】中文【中图分类】TP31Vxworks实时操作系统具有高实时性、高可靠性等特点,被广泛应用于工业控制、国防军事等领域。

Vxworks6.0以下版本采用的是Tornado开发工具,而Vxworks6.0以上版本集成的是Workbench开发工具。

Vxworks能够支持大多数常用的工作平台和目标处理器,除基本的功能和开发工具外,它还具有多媒体应用开发组件WindML。

WindML组件为嵌入式系统提供了基于常用设备的图形、视频以及音频技术。

Tornado 和Workbench开发工具均支持WindML组件,且Workbench支持更高的WindML版本。

本文总结了基于WindML3.0的图形开发过程,包括WindML的配置、加载及遇到的问题与解决方法,同时描述了基于WindML实现电子地图的任意缩放、平滑漫游以及名称标绘等功能的内容,主要介绍基于WindML的绘图窗口的创建、显示、刷新,双缓冲技术在电子地图显示软件中的具体应用以及汉字显示的实现。

WindML多媒体库是Tornado的可选组件之一,具有一整套Vxworks操作系统下的基本图形功能,为开发者提供了一个层次清晰、结构合理的图形开发框架。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VxWorks下基于WindML汉字显示在某武控系统中的解决方案
【摘要】主要针对VxWorks原厂商没有直接提供完备的汉字显示解决方案,通过对WindML图形显示组件中BMF结构的详细分析、汉字存储结构和VxWorks中汉字显示操作方法的论述,给出VxWorks下基于WindML汉字显示在某武控系统控制台上解决方案,具有较高的实用价值。

【关键词】VxWorks操作系统;WindML;汉字显示
1.引言
VxWorks操作系统是美国风河公司设计开发的一种嵌入式实时操作系统,具有高性能的内核以及友好的用户开发环境。

它以其良好的可靠性、卓越的实时性和可裁剪性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。

基于VxWorks系统的输入、输出一般可应用风河公司提供的图形开发库WindML(Wind Media Library)进行开发。

本文结合VxWorks在某武控系统显控台上的应用,通过对WindML显示组件中的BMF(Bitmapped Monochrome Font)结构的详细分析和汉字存储结构论述,给出在VxWorks中显示汉字的具体方案,具有一定的参考价值。

2.VxWorks操作系统汉字显示方案
汉字在VxWorks中显示是一种图形解决方案,其编码可参考GB2312《信息交换汉字编码字符集》。

VxWorks只有工作在图形模式下才可能显示汉字,以下列出VxWorks操作系统汉字显示几种方案。

(1)利用WindML对双字节编码的支持,实现对汉字点阵存储、获取和显示的全过程,并使用WindML双字节显示函数实现汉字码到汉字显示,这种方法使用了系统机制及WindML的其他上层组件很方便地实现汉字显示,但前提要对WindML的双字节编码机制理解透彻,并且要有符合WindML双字节编码机制的汉字字库。

(2)自己研发点阵存储、获取和显示,改造WindML双字节或单字节显示函数,使其能判断汉字码,一旦判断出汉字码,则使用自己研发的点阵获取、显示等把汉字显示出来。

该方法对点阵操作更加灵活,适合非标准点阵算法或当开发者已有成熟的点阵操作方法时,把该方法绑接到WindML上。

(3)完全自己研发一套点阵存储、获取和显示函数,使用特定的显示函数把汉字显示出来。

该方法具备最大的灵活性,甚至不理睬WindML的任何机制,直接在上层组件里实现,但这种方法使程序中的英文混合显示变得复杂,程序可移植性也比较差。

要在某武控系统显控台上实现基于VxWorks操作系统的汉字显示,一定会
涉及到WindML,只是不同方案对WindML的依赖程度不同,本文就第一种汉字显示方案详细论述WindML双字节编码机制,并利用该机制构建WindML汉字显示框架,有力支撑各种汉字显示。

3.WindML中BMF结构参数分析
参见WindML显示组件中的BMF结构体ugl_bmf_font_desc和ugl_font_desc,其结构体解析如下:
(1)字符横向和纵向都要有额外空间,以防止字符粘接重叠,相关参数leading:行间距。

(2)每个字模都有占据空间,该空间对于点阵字库里的每个字都一样大,所有字符点阵大小都不应该超过该空间,如果超过,显示时超出部分将被截掉,相关参数有:
maxAscent+maxDescend是字体的最大长度(即纵向)大小,两数的交界决定了一个baseline,maxAscent是baseline以上的长度,maxDescent是baseline 以下的部分。

baseline对于定位字符点阵的打点起始位置非常重要,另外如果有一行来自同一个字符集的字符串,则这些字符的baseline是在一条线上。

maxAscent+maxDescent有时被称为字符表高度height,注意要与下面所述的字符高度区别开来。

maxAdvance是字体的最大宽度(横向)大小,以点为单位。

(3)对字符的一些变换选项,字符读取的标志等。

相关参数有:
pixelSixe:平均行、列大小,weight:行、列加粗属性,italic:斜体属性,spacing:字符行间距属性,charSet:字符集标志,faceName:字符集名称,familyName:字符集的家族名称,scalable:字符放大缩小比例。

WindML显示字符时,以maxAscent+ maxDescend作为字符高度,以width 作为字符宽度,根据字符ascent和字符height取出字符点阵数据,进行weight、italic、scalable等运算(很多运算需要用户开发),然后输出到屏幕。

4.WindML中汉字存储结构
WindML双字节编码显示参数和实现思路集中体现在点阵存储文件的结构上,该文件主要包括西文扩展为双字节编码表、国标编码点阵表和总的点阵数据表等。

以下以国标编码点阵表举例。

4.1 国标编码点阵表
UGL_LOCAL const unsigned char UGL_FAR_DATA
Page1Data[]=
{
/* 1500 (“啊” 1500 指的是GB2312编码的page分类,从0算起)*/
0xA1,/* page */
0xB0,/* index */
0x00, /* size(MSB)*/
36,/* size(LSB)*/
16,/* width */
16,/* high */
16,/* ascent */
0x00,0x04,0x2F,0x7E,0xF9,0x04,0xA9,0x04,0xAA,0x14,0xAA,0x7C,0xAC,0x54,0xAA,0x54,0xAA,0x54,0xA9,0x54,0xE9,0x74,0xAD,0x54,0x0A,0x04,0x08,0x04,0x08,/* data */。

相关文档
最新文档