zoukankan      html  css  js  c++  java
  • GUI软件框架--窗口服务器

    GUI软件框架

    图4显示了本GUI设计的软件层次,引入分层会带来很多好处:[3]

    降低复杂度每一层只专注自己需要实现的功能,实现高内聚;

    提高可移植性不管更换处理器还是LCD只需要修改底层部分;

    改善性能使用高效算法来优化性能只需要修改一处。

    图4 GUI软件层次

    4.png

    对于轻量级嵌入式GUI来说,窗口是十分重要的图形载体,嵌入式GUI一般一个屏幕仅容纳一个窗口,当前正在显示的窗口即为活跃窗口,其它均为睡眠窗口。因此窗口有2种状态:

    活跃期:处理消息,响应动作,如获取实时数据并刷新屏幕等;

    睡眠期:不响应外部消息,释放资源,如硬件和软件实体等;

    从逻辑上把窗口系统分成2层:窗口服务器和客户端,如图5所示。外部消息(用户按键、数据更新等)首先传递给窗口服务器,然后服务器把消息传发给当前活跃窗口,活跃窗口根据消息类别进行相应处理;另外,活跃窗口也可以向服务器发出请求,如切换窗口等。

    图5窗口服务器与客户端

    5.png

    在GUI设计中消息是各种对象通信的重要机制,窗口之间通信的种类繁多,如果对消息进行编码呢?图6显示了一种参考方式。消息本质上就是一个32位整数,其实很多RTOS消息传递也是这个类型。取低8位为事件编码,高24位为类型编码。[4]

    任一类型最大支持256个事件,类型编码仅能一位为1,否则将引起事件判断错误。当编码正确时,类型一定是2的整幂次,因此可以使用检查整幂次方的算法来检测消息正确性。

    http://www.21ic.com/embed/hardware/development/201804/51678.html

  • 相关阅读:
    USACO 6.4 章节
    USACO 6.3 章节 你对搜索和剪枝一无所知QAQ
    USACO 6.1 章节
    USACO 5.5 章节
    USACO 5.4 章节
    USACO 5.3 章节
    99乘法表
    mini整数计算器
    python爬虫-爬取天气预报内容
    python实时监控服务器性能
  • 原文地址:https://www.cnblogs.com/feng9exe/p/12294073.html
Copyright © 2011-2022 走看看