DeltaOS 3.0 -简介(5)

嵌入式系统 时间:2007-03-01来源:科银京成

DeltaOS的图形用户接口(DeltaGUI)是一个支持中文的图形界面系统,它为构建图形用户界面提供了各种类似Windows风格的图形控件。图形用户接口支持DeltaOS/VxWorks/Linux等多种嵌入式操作系统,通过使用图形用户接口,开发人员可以在嵌入式电子设备(如工控机,PDA,STB等)上制作出台式机一样的图形界面效果。

图:图形用户接口体系结构

为什么选择图形用户接口?

带有显示器的嵌入式设备随处可见,有的采用小型液晶显示器,有的采用大尺寸的光栅显示器,有的要求高分辨率,有的则要把颜色数作为硬指标。不同的应用也有着不同的需求,有些应用要求能够在屏幕上高效的绘制出各种比例的矢量图,需要的是丰富的图形绘制功能,而另一些则要求编写出复杂华丽的界面,需要的是多种多样的窗口控件。由于应用需求的侧重点各不相同,为了满足各种嵌入式应用的需求,一套完整的图形界面系统需要对每一种功能都有全面的支持,这就导致了界面系统体积较大且使用复杂。

遗憾的是,与传统的台式机(PC机)不同,在嵌入式领域同时满足那么多需求往往需要付出很高的代价。主要原因有三个:

科银京成推出的图形用户接口具有可裁剪、平台无关性、类Windows风格等特点,解决了上述三个问题,从而降低了开发人员的开发代价。图形用户接口是进行嵌入式图形界面开发的良好选择。

增强和改进

新版本的图形用户接口具备如下特点:

在嵌入式的应用环境中,往往对程序的实时性要求较高,要求在指定的响应时间之内完成相应的任务。嵌入式GUI同样也面临着这样的要求,即要求GUI能够比较及时的反映状态的变化(尤其是在一些实时监控领域)。传统的GUI采用单线程,GUI核心和用户的应用程序都在一个线程执行,故所有的程序代码都是顺序执行,一旦程序中出现某个比较耗时的操作,则直接导致整个系统响应迟缓。

上述问题虽然可以靠MVC模式来解决(例如:可以将和显示无关的操作放入其他线程来执行),但是,采用这种编程方法对应用编写者的编程能力有相当高的要求。GUI系统应该提供一种方便的机制来解决上述问题。传统GUI无法解决这些问题,因此提出多任务GUI来实现以上功能。将应用放入不同的线程,则无论其中一个多么繁忙,都不会影响到别的应用的执行。并且对应用编写者的要求不高,使得他们可以把更多的精力放在业务逻辑的实现方面。

什么是克隆多屏显示模式?

克隆多屏显示模式是指在多台显示设备上显示同样的内容。这一技术在体育场馆中有着广泛的应用。下图就展示了DeltaOS的图形用户接口对克隆多屏显示的支持:

什么是独立多屏显示模式?

在同一显示设备上可以划分多个独立子屏,各个子屏之间是相互独立没有联系的。下图展示了图形用户接口对

什么是扩展多屏显示模式?

多屏扩展模式是指单个Windows显示桌面设置为超宽分辨率,然后横跨多台显示设备显示。这里讲的“扩展”并不是将图形或象素拉伸变形,相反,每个象素都与普通显示状态一样精细。

特性

图形用户接口以C++类库的形式提供,只有在应用程序中用到的组件才会被链接入最后的二进制代码中,根据应用的不同,对资源的使用一般从200k到 600k不等。例如,如果使用了所有的图形组件和国标一、二级点阵字库(11x11大小),则占用350K左右的资源。如此小的开销,非常适合需要中文的嵌入式图形界面。

图形用户接口具有平台无关性,它提供了一个硬件抽象层,使图形用户接口与具体硬件相隔离,无需直接和硬件交涉就能轻易挂接到各种输入、输出设备上。硬件抽象层以易于理解的面向对象形式提供给驱动开发人员,开发人员根据芯片的编程资料,可以方便地将图形用户接口移植到任何带有输入输出设备的平台。目前,图形用户接口已经移植到如下设备上: VGA标准、VESA1.2/2.0/3.0标准的视频图形适配器、LCD平板显示器以及打印机等。支持的输入设备有:标准的串口鼠标、PS/2鼠标、XT/AT键盘以及触摸屏等。

在概念、原理和风格上,图形用户接口采用了与Win32类似的多窗口以及消息驱动机制,窗口类和各种控件的使用方法也与Win32相近。因此,熟悉Windows编程风格的开发人员无需花费太多时间,即可很快掌握图形用户接口的编程方法。

图形用户接口提供了多种输出设备的驱动程序,支持各种规格的LCD、VGA、VESA的显示。图形用户接口提供的输入设备驱动包括串口鼠标、PS/2鼠标、XT/AT键盘、矩阵键盘、触摸屏等的驱动程序。

根据应用的需求,图形用户接口能够分别提供支持单色、4色、16色、256色、16位色、24位色以及32位色等显示模式的类库。同时,图形用户接口还支持各种大小的分辨率,满足应用的不同需要。

图形用户接口支持双字节字符集的输入及显示,能够显示各种大小的中文(GB2312)点阵字库,并配备了全拼、词组两种输入法。如果应用有别的需求,开发人员也可以外挂自己的输入法及字体。图形用户接口 提供了点阵字库转换工具,能够转换出各种大小的点阵字库,同时,为了节约存储空间,该工具带有自定义小字库的功能,能够只生成自己需要的汉字点阵数据。

图形用户接口提供了仿真开发环境,可脱离目标机环境编程和运行。所谓仿真开发,实际就是让图形用户接口的应用程序在Windows平台上运行。开发人员可直接使用Windows上提供的Microsoft Visual C++工具来编译和调试自己的应用程序,以加快代码编写和调试的速度。在仿真开发环境下编写的应用程序代码,几乎不用任何改动,只要加上目标机硬件驱动程序,编译后即可直接放到目标机上运行。

科银京成的开发团队在触摸屏驱动、鼠标驱动(包含硬件鼠标)、视频硬件加速、汉字输入、手写体识别、图形缩放(包括软硬件缩放)、图形平滑滚动等技术方面积累了大量的经验,能够结合嵌入式设备的具体硬件情况,提供全面的技术支持,指导应用开发者更高效地设计图形用户界面。

基本规格

图形用户接口应用程序在运行时需要动态分配的内存主要包括:

如编辑框所分配的文本缓冲区、图形处理类所分配的位图对象等,这类对象占用的内存由用户需求而定。例如,如果用户需要在内存中处理一幅 1024 x 768 x 65536色的位图,就需要约1.5M字节的内存。

图形用户接口 只在栈上创建少量局部变量(含简单数据对象),参数传递时也只使用指针来传递 GUI 对象。因此一般情况下 图形用户接口 仅占用不到 1K 字节的栈空间。

图形用户接口 以 C++ 类库的形式提供,只有在应用程序中用到的组件才会被链接入最后的二进制代码中,因此,组件的裁剪是自动完成的,无需用户干涉。

典型裁剪情况如下表所示(其中字库指 11x11 的点阵字库):

组件使用情况

代码段大小

数据段大小

共计

所有图形组件
国标一、二级字库
全拼中文输入法及码表

约 220K 字节

约 300K 字节

约 520K 字节

所有图形组件
国标一、二级字库

约 200K 字节

约 160K 字节

约 360K 字节

 

典型性能指标

测试环境:

赛扬800M处理器

内存256M

8位GUI组件库

测试内容

测试结果(ms/个)

创建窗口

(宽:500,高:300,带标题栏状态栏装饰窗口)

14.617

销毁窗口

(宽:500,高:300,带标题栏状态栏装饰窗口)

33.31

画点

49.767

画对角线(1024

关键词: 嵌入式操作系统 嵌专题delta

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

Copyright ©2000-2017 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.