Zinc——嵌入式操作系统Vxworks下的用户图形界面开发工.pdf





《Zinc——嵌入式操作系统Vxworks下的用户图形界面开发工.pdf》由会员分享,可在线阅读,更多相关《Zinc——嵌入式操作系统Vxworks下的用户图形界面开发工.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2 0 0 5 年第4期(总第 1 8 7期)Z i n c 一嵌入式操作系统 V x w o r k s下的用户图形界面开发工具 陈旭,李义民 (中国电子科技集团公司 第 2 7研究所,郑州 4 5 0 0 0 5)摘要本文从 z i n c的概念、结构和运行机理等方面为使用 V x w o r k s 操作系统的用户介绍了一种新的界面 开发工具,这种工具不但拥有面向对象的特点,而且拥有事件驱动的体制。它类似于W i n d o w s 下面的可视化开发 工具,使得用户开发工程得心应手。关键词z i n c;V x w o r k s;面向对象;E v e n t W i n d M L 中
2、图分类号T P 3 1 6 2 1 Z i n c的产生背景 嵌入式操作系统 V x w o r k s 具有高实时性、多任 务管理、内核小、组件可裁剪等优点,在军工、通 信、智能控制、航空航海、消费电子等众多领域广 为使用。在有些场合,基于 V x w o r k s 的应用程序运 行在所谓狭义的嵌入式设备上,这些设备只是一个 黑盒子,负责一些诸如数据交换、数据处理、智能 决策、端口分配、实时控制等时效性强的任务,通 常这种设备无需人为干预;而在很多领域,即广义 的嵌入式产 品中,少量的人机交互还是必不可少 的,这些设备需要一个 良好的人机界面。Z i n c 便是 使用在 Vx w o r
3、 k s 操作系统中的图形开发工具,它类 似可视化编程工具使用在视窗操作系统中一样,使 用 Z i n c我们可以在 V x w o r k s 操作系统下开发出功 能强大的显示界面来,从而达到复杂人机互动的目 的。Z i n c出现之前,嵌入式操作系统 Vx w o r k s 在这 方面是弱项,一定程度上限制了 V x w o r k s 这种性能 良好系统的广泛使用,Z i n c 也就是针对这种状况应 运而生的捆绑在第二代 T o rna d o集成开发环境上的 一种用户界面开发工具。2 Z i n c的基本概念 Z i n c 是 Z i n c S o f t w a r e公司的
4、产品,属于第三 方软件。Z i n c实际上是一个可扩展的面 向对象的 C+类库,它为用户应用程序创建图形用户界面搭 收稿 日期:2 0 0 4 1 1 2 2 建了一个框架,并使之运行在类似于桌面操作系统 的“事件驱动”的机制下。这些类是在用户图形库(U G L)的基础上生成的抽象层,因此 Z i n c 是独立 于硬件平台的。另外由于这些类是源代码开放的,所以用户可以编写新的类,也可以从 已存在的类中 派生出新的类,定制这些类的外观和行为。作为一个图形界面设计工具,Z i n c面向两种用 户 平 台:一 是 桌 面 操 作 系 统,例 如 Mi c r o s o ft Wi n d o
5、 w s;二 是 嵌 入 式 实 时 操 作 系 统,例 如 V x w o r k s,如何在该系统中使用是本文的重点,以 下的介绍都是针对 V x w o r k s 操作系统的。从本质上来讲 Z i n c 是一个类库集合,它主要 由 三种类构成:第一,用户界面对象类,具体包括两种:1)派 生 于Z a f Wi n d o w O b j e c t 类 的 对 象 类:Z a f Wi n d o w O b j e c t 是 Z i n c的基类,它为用户图形界 面对象提供 了最基本的功能,例如移动、大小调整、拖动等。所有 Z i n c中可显示的对象,例如窗 口、按 钮等都是从
6、它派生出来的。2)派生于 Z a f Wi n d o w 类的对象类:Z a f Wi n d o w 也是派生于 Z a f Wi n d o w O b j e c t,但是扩展了它的功能,派生于 Z a f Wi n d o w 的对象可以包含“子对象”,例如多文档窗 口、对 话框、列表等。第二,构架对象类,构架对象类组成了基于 Z i n c 的应用程序的最基本的框架,构架对象类不是 可视化的类,它具有诸如管理用户图形界面对象、用户图形界面对象与应用程序进行通信、在应用程 维普资讯 http:/ Z i n c 一嵌入式操作系统 V x w o r k s下的用户图形界面开发工具 序
7、与底层图形库之间提供一个抽象层、在应用程序 中加载和管理资源等功能。构架对象类又派生出几 个典型的类:1)事件管理类 Z a f E v e n t Ma n a g e r。它是 Z i n c 应用程序的调度中心,是搭建在事件生产 者与事件 作用对象之 间的一座桥梁。Z a f E v e n t Ma n a g e r 类是一个很重要的类,是 Z i n c的事件驱动 机制的具体执行者。2)应用程序类 Z a f A p p l i c a t i o n,每一个 Z i n c的应用程序都要派生一个 Z a f A p p l i c a t i o n类的实例,提供程序的入口。另外
8、它还负责 存储应用程序中 E v e n t 管理器、Wi n d o w 管理器等 的外部指针。3)窗口管理类 Z a f Wi n d o w Ma n a g e r,4)显示类 Z a f D i s p la y。第三,数据对象类,数据对象类具有符和数字 的识别与存储、当特定的数据对象数值改变时通知 图形窗 口对象、当图形窗口对象的内容改变发出通 知三种功能。最基本的数据对象类是 Z a f D a t a,其 它类具有 Z a f Da t a类似的特征。一般来说,每一个 用户界面对象类都拥有一个数据对象类与之相关。构架对象类与图形界面类的关系类似于 V i s u a l c+中
9、文档类与视图类的关系,构架对象类提供对 数据类和图形界面类的管理,在数据类与图形类之 间搭建起一座桥梁。3 Z i n c的运行机制 Z i n c 的应用程序 是在基于事件 驱动(E v e n t d r i v e n)的机制下运行的。输入设备和应用程序之 间是通过事件(E v e n t)相互作用的。Z i n c的 E v e n t 有三种来源:操作系统本身、外部设备和用户应用 程序。例如鼠标移动就是一个典型的外部设备输入 事件。E v e n t获取之后再通过一个标准的方法包装 这些 E v e n t,然后发送给相应的对象以供处理,如 图 1 所示”。l c s 队 列 输 入
10、 设 备 、训 J 序 l E v e n t 竹理器 1 C o nt r nl 1 o o p 介 ()S F v e nt win d o w 箭婵器 I 一 L_7 工 wi n d o w对象 l I:v c n L 分 派 l 派 类对象 JL 坫炎对象 r J ()对象 在 Z i n c 应用程序运行过程中,E v e n t 管理器以 轮询的方式接收类似键盘、鼠标等外部设备以中断 驱动方式发出的数据信息,然后把这些信息对应的 事件汇集起来,放进内部的事件队列等待下一步的 电子科技 2 0 0 5年4月 1 5曰 1 5 维普资讯 http:/ Z i n c 一嵌入式操作系统
11、V x w o r k s 下的用户图形界面开发工具 处理。应用程序通过 Z a f A p p l i c a t io n类的 C o n t r o l()函数不断地从 E v e n t 管理器获取 E v e n t-然后又不断 地把这些 E v e n t 交给 Wi n d o w 管理器,由 Wi n d o w 管理器决定 E v e n t 的最终 目的地和所经过的路由,最后派发给相应的作用对象。Wi n d o w对象使用 E v e n t()函数处理 E v e n t,E v e n t最先会被本窗 口的用户定义的派生类对象处 理,如果派生类对象对它不作处理,就交由
12、本窗口 的 Wi n d o w基类对象处理,如果它还不作处理,就 交给最底层的基类一Z a f Wi n d o w O b j e c t,Z a f Win d o w O b j e c t 接收这个 E v e n t,然后交给内部的操作系统 处理。4 Z i n c的工程配置方法 下面的配置都是针对 D o w n lo a d型(T o r n a d o开 发环境中的工程分为 D o wn l o a d a b l e 型和 b o o t a b l e 型 两种,分别用来调试应用程序和制作 白启动型最终 软件产品”“。4 1 Wi n d M L项 的配置 V x w o
13、 r k s 操作系统中有一个 U g l 库,它给用户 提供了基本的图形功能,例如画点、画线等。但它 不是面向对象的,也不具有事件驱动的体制,具体 地说只具有简单的响应外部输入设备的功能,谈不 上体制。Z i n c 是建立在 U g l 基础上的,因此基于 Z i n c 的工程必须包含 U g l 的库,以提供对用户特定硬件 设备环境的支持。这个过程就是 Wi n d ML的配置。在 T o rna d o开发环境下,主菜单有一个“T o o l s”项,在其下选择“Wi n d ML”,即进入 Wi n d ML配置。Wi n d ML配置中的各个选项包括图形设备、输入设 备、字体、音
14、频设备以及杂项(m i s s c e l l a n e o u s)。图形设备选项下,用户必须选择对应的显示适 配器类型,然后再选择这些显卡能够提供的色深、分辨率和屏幕刷新率参数。以选择 P C B I O S为例,在 Z in c的缺省配置中,分辨率最高为 l 0 2 4 7 6 8,屏幕刷新率最高为 7 5 H z。如果需要提高这些参数 值,则需进入调试状态,调用相应的驱动程序,通 过调试器观察其是否支持更高的值,如果支持,则 修改相应的 c f g文件,再重新配置 Win d ML。在“mi s c e l l a n e o u s”项中,有一个“B u i l d Wi n d
15、ML a r c h i v e”复选框,如果选 中它,则编译 Wi n d ML时 会生成 l i b b s p U g 1 a 文件。在制作用于 b o o t a b l e 型的 V x w o r k s映像文件时必须包含 U g 1 a库文件,如果 不选中,则必须在应用程序中包含。4 2 Z i n o项 的配 置 基于 Z i n c的工程需要包含 l i b B s p g n u Z i n c a文 件,l i b B s p g n u Z i n c a相当于一个静态链接库,建议 用户在 Vx w o r k s 映像中包含它,这样就不需要每一 个应用程序分别包含它。
16、5 Z i n c的工程开发样例 基于 Z i n c的应用程序的启动过程是每一个应 用程序都首先创建一个 Z a f A p p l ic a t io n类的实例,用以保持对应用程序所需要的各种对象的访问,同 时创建 它 的成员 函数 m a i n()。程 序 的入 口在 v_a p p c p p中,入 口函数名是用户定义的,这个函数 的功能就是启动一个任务,此任务中的函数返回指 向 ma i n()的指针。像 D O S下的 c+程序一样,ma i n()是主函数,但不需要用户设计一个 w h i l e 循环来维持主函数的运行,Z i n c 的 C o n t r o l()函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Zinc 嵌入式 操作系统 Vxworks 用户 图形界面 开发

限制150内