微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 嵌入式系统上消息机制的实现

嵌入式系统上消息机制的实现

时间:08-10 来源:互联网 点击:

程序,根据应用程序返回的参数,再决定是否刷新 screenDC,即调用 GDI进行相应区域的重绘工作。

3.2 利用2个数组来记录所有菜单

OBJECT* WIN_OBJECT[]、MENU WIN_MENU[]这2个数组与Menu之间的关系如图 2所示。WIN_OBJECT是一个结构体指针数组,数组的每一项,存放一个指向 OBJECT类型的结构体数组的指针(如mainMenu[3]),这个结构体数组相当于一个菜单的作用,数组的长度表示该菜单下,菜单项的个数,同时,ID标签也指向这个菜单,如图 2中 mainMenu_ID,WIN_OBJECT[mainMenu_ID]中就存放了一个指向mainMenu[]数组的指针。 mainMenu[]中的每一项指向一个具体的OBJECT结构体,可以抽象理解为指向一个按钮。 WIN_MENU[]数组的作用是指示当前菜单下按钮的个数,以及当前按钮的索引和默认按钮的索引,如WIN_MENU[mainMenu_ID]={3,0,0};表示mainMenu_ID菜单下,有3个按钮,默认和当前按钮都是button0。在OBJECT结构体中,还存放了该 OBJECT的事件处理函数指针。

可以看出,采用这种模型能把前台显示的菜单系统很直观的表现出来,这样,极大的方 便了后台的维护,有着相对可视化的优点,并且具有良好的移植性能,在更换平台时,只要考虑GDI函数的重写以及底层按键与结构体 EVENT_DESCRIPTOR注册关系。适合于轻量级的嵌入式系统应用,不能应用于复杂的界面开发,如需要窗口重叠,剪贴等,也恰恰印证了嵌入式系统都有着自己特殊的应用范围这一特殊性。

4 结 束

本文介绍的消息机制实现灵活,占用额外 ROM空间少,可以用于单环或多线程模式,执行效率高,同样也有着相对完整的结构组织。虽然不适用于大型的界面开发,但是非常适合一些简单应用场合,在当前GUI功能越来越复杂,占用 ROMRAM空间越来越多的情况下,这种简单的实现方法为一些简单的界面开发提供了一种消息机制,能有效的降低成本并保持较高的实时性。此方法已经在基于 UC/OSII的操作系统上实现了多媒体播放器的功能。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top