新闻中心

EEPW首页>嵌入式系统> DeltaOS 3.0 -简介(5)

DeltaOS 3.0 -简介(5)

——
作者: 时间:2007-03-01 来源:科银京成 收藏

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

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

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

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

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

  • 嵌入式设备资源受限,不可能具有传统台式机那样的硬件条件来支持复杂的图形界面系统。
  • 硬件技术飞速发展,产品丰富多样,对不同的硬件平台需要开发不同的图形界面。即使使用同一套应用界面,移植到不同硬件平台上也需要付出很大的代价。
  • 开发经验问题,大部分的程序员熟悉Windows或者X-Window图形开发环境,熟悉一套全新的开发环境需要花费大量的时间和精力。

科银京成推出的图形用户接口具有可裁剪、平台无关性、类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++工具来编译和调试自己的应用程序,以加快代码编写和调试的速度。在仿真开发环境下编写的应用程序代码,几乎不用任何改动,只要加上目标机硬件驱动程序,编译后即可直接放到目标机上运行。

  • 良好的服务

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

基本规格

  • 基本元素
  • 图形用户接口 提供外观类似 Windows 的图形接口基本元素,包括:
  • 窗口
  • 对话框
  • 菜单
  • 按钮 ( 命令按钮、单选框、复选框 )
  • 文本框
  • 滚动条
  • 进度条
  • 提供类似 Windows 的消息处理机制,最多可同时存放 40 条消息。
  • 支持常见图形文件格式为 BMP ( Windows )、 GIF (87a、89a)、 JPG ( 1.x )。
  • 完整的中文支持,提供国标一二级字库和全拼、词组两种中文输入法,字库和输入法均可由用户根据需求自行扩展。
  • 资源占用情况
    • 内存(堆)

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

  • 显示驱动程序所分配的脱屏( Off-Screen)显示缓冲区。
  • 一般由图形模式分辨率和颜色深度决定。例如, 640 x 480 x 256色显示模式下,一个像素占用一个(8位)字节,则所需的脱屏显示缓冲区大小为640 x 480=307200字节,即大约300K字节。
  • 各种动态创建的 GUI对象(消息、控件、窗口等)自身所占用的内存。
  • 视各种对象自身复杂程度而定,每个对象占用的内存从数十字节到数 K字节不等。
  • 各种动态创建的数据对象所占用的内存。

如编辑框所分配的文本缓冲区、图形处理类所分配的位图对象等,这类对象占用的内存由用户需求而定。例如,如果用户需要在内存中处理一幅 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



评论


相关推荐

技术专区