您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术嵌入式多任务GUI的通用解决方案 正文
嵌入式多任务GUI的通用解决方案

嵌入式多任务GUI的通用解决方案

点击数:7514 次   录入时间:03-04 11:44:39   整理:http://www.55dianzi.com   嵌入式系统-技术
    系统维护一个系统消息队列和多个指定任务信息队列,每个指定任务信息队列对应一个应用任务,如图5所示。事件任务将输入转化成消息并将其放入系统消息队列中,系统任务检索到输入消息后首先会对该消息进行检查,然后将消息邮寄给目标应用任务或直接对消息进行处理。每个应用任务从它的消息队列中移出消息,并将其发送到适当的窗口程序中进行处理。一个应用任务可以将消息邮寄到它自己的消息队列,也可以邮寄到其他应用任务的消息队列中。

    此外,为了达到不同的目的,系统提供了同步和异步两种基本类型的消息。
2.3 桌面及窗口管理
   
屏幕中的窗口通常是相互覆盖,而且它们的相对位置也在不断地变动。这些窗口有可能分别属于不同的任务,但共享一个相同的屏幕。所以,如何方便并有效地计算和维护窗口便显得很重要。
    首先介绍2个概念:全局剪切域和窗口剪切域。它们都与应用任务相关,前者指出哪些区域占据屏幕,后者给出在相同的应用任务中所有对象的剪切关系。
    系统任务除了要维护它自己的剪切域外,还要负责管理所有应用任务的全局剪切域,如图6所示。一旦窗口位置发生变化,系统任务必须更新信息并且通知应用任务作出相应的变动。另一方面,在计算窗口剪切域时,应用任务只须关心它本身而不受其他任务的影响,好像整个屏幕只有它一个任务在运行。至于最后实际的剪切结果,只需将全局剪切和窗口剪切结果进行“与”运算。

2.4 Z序和对象树
    Z序实际定义了屏幕中对象集(可显窗口)之间的层次关系。GUI用户可以通过选择要被置于前端的窗口来改变Z序。很多GUI系统将Z序当作一个带有指定运算集的显式列表来实现。然而,在嵌入式GUI系统中不用这种方式,而是通过对象树来说明这些GUI对象之间的层次关系和Z序。理论上,每一个GUI对象都有父亲、孩子和兄弟。因此,所有显示在屏幕上的对象便构成一棵以桌面为根节点的倒置树。对树进行“后根遍历”就能够容易地得到Z序。
    图7描述了对象树的建立过程。对象树的采用极大地简化了桌面管理,能够在不增加额外工作的情况下方便地组合对象和实现Z序管理。

3 小 结
   
将来的GUI系统将越来越复杂,要求GUI系统实现的功能也越来越丰富,这就需要一个更加开放且伸缩性好的体系结构。本文提出的嵌入式GUI体系结构具有很强的灵活性,且可移植性好,能够很好地应用于嵌入式领域的各种环境。



上一页  [1] [2] 


本文关键字:通用  嵌入式  解决方案  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术