轻量级GUI管理系统技术方案

技术编号:35230514 阅读:22 留言:0更新日期:2022-10-15 10:51
本发明专利技术涉及轻量级GUI管理系统,包括应用层、GUI窗口管理系统及用户层,GUI窗口管理系统通过接收并响应用户层的按键消息、定时器消息及其它消息,完成对应用层应用信息的显示;GUI窗口管理系统通过双指针管理方式连接所创建的窗口,GUI管理系统首先建立ROOT窗口并使ROOT窗口位于主链表最上层,之后新创建的窗口插入到当前窗口主链表末尾;本发明专利技术通过双指针机制管理窗口链,便于窗口查找和增加;通过对窗口接口采用动态内存管理,使得GUI对静态内存的占用率低。存的占用率低。存的占用率低。

【技术实现步骤摘要】
轻量级GUI管理系统


[0001]本专利技术涉及GUI管理
,具体涉及一种轻量级GUI管理系统。

技术介绍

[0002]市面上很多开源的GUI系统如LVGL、MicroWindows等,还有收费GUI系统MiniGUI、柿饼UI等,提供各有特色GUI管理系统,有丰富文档和接口,为片上系统实现UI交互界面提供很多实现的便利。
[0003]对于单片机小微系统来讲,特别资源比较紧张的单片机,这些大型的GUI系统有移植难度高,占用空间大等痛点,而且对于现在的芯片供货资源紧张的大环境下,GUI系统占用芯片资源过大也变相增加产品的成本.在这个背景下,超轻量级GUI基于UI管理目标,根据小微系统特点,自主实现一套移植简单,运行效率高,方便裁剪,占用空间极小的UI管理套件,为小微系统实现图形交互界面提供便利。

技术实现思路

[0004]为了解决已有技术存在的不足,本专利技术提供了一种轻量级GUI管理系统,包括应用层、GUI窗口管理系统及用户层,GUI窗口管理系统通过接收并响应用户层的按键消息、定时器消息及其它消息,完成对应用层应用信息的显示;其中,GUI窗口管理系统通过双指针管理方式连接所创建的窗口,GUI管理系统首先建立ROOT窗口并使ROOT窗口位于主链表最上层,之后新创建的窗口插入到当前窗口主链表末尾;GUI窗口管理系统为每个所创建的窗口所实现的管理包括:动态申请窗口内存空间、设定窗口坐标的区域和名字、注册窗口消息处理函数、将新创建的窗口插入到当前窗口主链表末尾、设置本窗口为焦点窗口、返回各窗口的窗口句柄给应用窗口、转发各种消息给应用窗口处理;GUI窗口管理系统为每个所创建的窗口所实现的管理还包括在销毁窗口时实现:关闭销毁相应窗口的子窗口节点、执行窗口销毁前资源的释放、设置相应窗口的父窗口为焦点窗口、发送父窗口重绘消息、从窗口主链表中去掉相应窗口及释放相应窗口占用的内存空间。
[0005]其中,所述GUI窗口管理系统采用RTOS系统,开辟UI线程专门执行窗口消息处理函数,非UI线程接收用户层的按键消息、定时器消息及其它消息,并通过postmessage机制申请消息内存,以及将上述消息发送到UI线程中。
[0006]其中,所述GUI窗口管理系统在UI线程内设立消息队列,GUI管理系统从消息队列中读取消息,根据消息中涉及的窗口句柄数据,将消息分派给相应的窗口,由相应窗口中的窗口消息处理函数总入口分派给具体的窗口消息处理函数来执行。
[0007]其中,窗口消息处理函数对各窗口能够执行如下操作:创建窗口、销毁窗口、关闭
窗口、窗口绘制、响应用户层的按键消息、定时器消息及刷新窗口状态栏消息。
[0008]其中,各窗口的窗口消息处理函数总入口通过xx_ui_msgproc函数进行消息的分派;通过xx_ui_paint()函数实现窗口绘制,通过xx_ui_key()函数实现对按键消息的响应,通过xx_ui_timer()函数实现对定时器消息的响应;其中,xx代表窗口的名字。
[0009]其中,所述GUI窗口管理系统同时通过sendmessage机制,直接接收用户层的按键消息、定时器消息及其它消息,并通过调用窗口句柄找到相应窗口中的对应的窗口消息处理函数来执行。
[0010]其中,用户层的定时器消息由定时模块提供,定时模块内注册多个定时器,每个定时器注册时同时为其注册定时器入口函数,多个定时器之间采用双向指针方向连接,每个定时器内存动态分配,且每个定时器具有独立唯一定时ID。
[0011]其中,所述定时模块通过定时器调度函数增加定时器列表中每个定时器的计数器值,在计数器值达到定时器周期后执行相应的定时器入口函数。
[0012]本专利技术提供的轻量级GUI管理系统,通过双指针机制管理窗口链,便于窗口查找和增加;通过对窗口接口采用动态内存管理,使得GUI对静态内存的占用率低。
附图说明
[0013]图1:本专利技术的轻量级GUI管理系统的整体框架思路图。
[0014]图2:本专利技术的轻量级GUI管理系统的窗口管理核心事件图。
[0015]图3:GUI窗口管理系统所创建的窗口的列表结构图。
[0016]图4:GUI管理系统的运行原理图。
[0017]图5:本专利技术的窗口消息传递机制示意图。
[0018]图6:本专利技术的GUI管理系统中GUI窗口管理系统的移植接口结构说明图。
[0019]图7:本专利技术的一较佳实施例中应用窗口界面设计逻辑原理图。
[0020]图8:本专利技术的定时模块的数据结构图。
具体实施方式
[0021]为了对本专利技术的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本专利技术的技术方案及其产生的有益效果。
[0022]为了解决已有技术的GUI系统存在的种种不足,以最小代码实现窗口管理,从而实现小微系统的GUI管理,本专利技术提供的轻量级GUI管理系统,几大核心的思路要点如下:1、GUI窗口结构采用动态内存管理,在销毁窗口的时候进行资源和内存的释放,使得GUI静态内存占用率低。
[0023]2.对所创建的窗口的窗口链采用双指针管理,使得窗口查找和增加非常便利。
[0024]3.窗口基本采用全消息传递处理的方式,每个窗口在创建窗口的时候都会注册一个消息处理函数,单独对本窗口所有的事件进行处理,以达到各个窗口设计的独立性,给用户提供设计UI的便利。
[0025]4.采用焦点窗口的概念,GUI在系统起来时会先建立一个ROOT窗口,ROOT窗口会优先处理各种消息,ROOT不能处理的消息会传递给焦点窗口注册处理函数处理。
[0026]具体的实现机能下文详述。
[0027]图1为本专利技术的轻量级GUI管理系统的整体框架思路图,如图1所示,本专利技术的轻量级GUI管理系统,包括应用层、GUI窗口管理系统及用户层,GUI窗口管理系统通过接收并响应用户层的按键消息、定时器消息及其它消息,完成对应用层应用信息的显示。
[0028]图2为本专利技术的轻量级GUI管理系统的窗口管理核心事件图,主要针对GUI窗口管理系统而言,此管理系统用于创建窗口、销毁窗口、传递用户层到GUI窗口管理系统的消息以及对所传递的窗口消息进行处理。针对轻量级GUI管理系统在上述四大核心事件中所能够实现的机能,请结合图3及图4来理解:图3及图4分别为GUI窗口管理系统所创建的窗口的列表结构图及本专利技术的GUI管理系统的运行原理图。
[0029]请首先参阅图3所示,本专利技术在GUI窗口管理系统创建之初,首先建立ROOT窗口并使ROOT窗口位于主链表最上层,之后创建的其它窗口依次插入到当前窗口主链表末尾,整个窗口主链表上串起的窗口采用双指针方式连接,便于窗口的查找、删除及插入等操作。针对每个创建的窗口,GUI窗口管理系统都会为其注册窗口消息处理函数,以用来处理用户层发送的按键消息、定时器消息及其它消息;同时,每个窗口都有唯一的窗口句柄(对应窗口内存地址),每条传递给GUI窗口管理系统的消息都会带窗口句柄的参本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种轻量级GUI管理系统,其特征在于,包括应用层、GUI窗口管理系统及用户层,GUI窗口管理系统通过接收并响应用户层的按键消息、定时器消息及其它消息,完成对应用层应用信息的显示;其中,GUI窗口管理系统通过双指针管理方式连接所创建的窗口,GUI管理系统首先建立ROOT窗口并使ROOT窗口位于主链表最上层,之后新创建的窗口插入到当前窗口主链表末尾;GUI窗口管理系统为每个所创建的窗口所实现的管理包括:动态申请窗口内存空间、设定窗口坐标的区域和名字、注册窗口消息处理函数、将新创建的窗口插入到当前窗口主链表末尾、设置本窗口为焦点窗口、返回各窗口的窗口句柄给应用窗口、转发各种消息给应用窗口处理;GUI窗口管理系统为每个所创建的窗口所实现的管理还包括在销毁窗口时实现:关闭销毁相应窗口的子窗口节点、执行窗口销毁前资源的释放、设置相应窗口的父窗口为焦点窗口、发送父窗口重绘消息、从窗口主链表中去掉相应窗口及释放相应窗口占用的内存空间。2.如权利要求1所述的轻量级GUI管理系统,其特征在于:所述GUI窗口管理系统采用RTOS系统,开辟UI线程专门执行窗口消息处理函数,非UI线程接收用户层的按键消息、定时器消息及其它消息,并通过postmessage机制申请消息内存,以及将上述消息发送到UI线程中。3.如权利要求2所述的轻量级GUI管理系统,其特征在于:所述GUI窗口管理系统在UI线程内设立消息队列,GUI管理系统从消息队列中读取消息,根据消息中涉及的窗口句柄数据,将消...

【专利技术属性】
技术研发人员:刘仁学黄顺玉赵峰杨沙洲付强
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1