一个基于QtEmbedded应用程序集成桌面的设计与实现.pdf

上传人:qwe****56 文档编号:74639938 上传时间:2023-02-27 格式:PDF 页数:4 大小:343.87KB
返回 下载 相关 举报
一个基于QtEmbedded应用程序集成桌面的设计与实现.pdf_第1页
第1页 / 共4页
一个基于QtEmbedded应用程序集成桌面的设计与实现.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《一个基于QtEmbedded应用程序集成桌面的设计与实现.pdf》由会员分享,可在线阅读,更多相关《一个基于QtEmbedded应用程序集成桌面的设计与实现.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、微电子学与计算机!年第!卷第#期收稿日期#!$%$&基金项目%江苏高校高新技术产业发展项目!(&)*&+江苏省计算机信息处理技术重点实验室开放课题资助!,-&.&/)!引言随着面向信息处理的嵌入式设备不断发展#嵌入式产品中的应用程序逐渐增多#随之功能也不断强大$在嵌入式操作系统方面出现了0123 4-和56789:;67?以其开放源码%容易定制和扩展%多硬件平台支持和内置网络功能等优良秉性#逐渐成为嵌入式系统的研究热点和广泛使用的系统平台$嵌入式设备系统中有许多针对设备特定功能的应用程序#为了在一个设备中让用户协调地操作各个应用程序#很好地处理这些应用程序与底层驱动以及应用程序之间的通信#就需

2、要一个机制来整体地管理这些应用程序#比如AB922CDEF的GC9H61集成环境I%J#在高端的信息处理型嵌入式设备中就有很好的应用$我们的开发设计平台是基于-.67?操作系统#应用程序是基于GCR=3LD88D8的窗口程序#在设备上实现了如地址簿#网页浏览器#拨号程序#电子邮件等应用程序$由于应用程序很多#就必须提供一个统一的界面让用户操作#本文要实现的就是这样一个应用程序的集成桌面#它必须包括对应用程序的窗口管理#应用程序与驱动程序以及应用程序之间的通信和数据传输$桌面的设计在67?中的窗口系统是基于客户机R服务器模式的S 56789:系统#该模式满足了S环境设计者的一个目标#即完全可扩展

3、性ITJ$服务器也称作S-DBPDB#管理所有可用于显示器的资源#所有的窗口绘制#窗口裁剪都是通过S-DBPDB来完成的$客户机也称作S 26D7CU通过S-DBPDB传递显示器请求的S应用程序$就本系统所采用的GCR=3LD88D8开发工具而言#我们可以开发两种应用程序#即S-DBPDB程序和S W G617OU SXN?7&2?17U GXNY 0D6&8DU ZNY 6&:D7!-EF992 9 93H?CDB-E6D7ED 178 ADEF7929OU-99EF9:76PDB;6CU-?_F9?)%!&/1L 9 93H?CDB X79B31C697 0B9ED;67OU-?_F9?)

4、%!&/F671+(-$719$:AFD H1HDB 67CB98?ED;1 8D;6O7 178 63H2D3D7C1C697 9 8D;aC9H L1;D8 97 GCR=3LD88D8 9B 67CDOB1CD8 1HH26E1&C697;67 17 D3LD88D8 8DP6EDb 6P67O CFD B13D:9Ba 9 CFD;CD3U CFD 1?CF9B;D3HF1;6;CFD EB6C6E12 B92D 9 S-DBPDB 21&DBU 178 8D;EB6LD CFD;92?C697 9 1HH26E1C697;:6789:3171OD3D7C 1;:D22 1;CFD E

5、933?76E1C697 178 81C1 CB17;36;697LDC:DD7 1HH26E1C697;178 8DP6ED 8B6PDBb;)=57*:X7CDOB1CD8 8D;aC9HU 56789:3171OD3D7CU X7CDBNHH26E1C697 E933?76E1C697/V微电子学与计算机!年第!卷第#期微电子学与计算机与$%&(&融合在一起!形成一个应用程序!将集成桌面的功能变成$%&(&的一部分!图)显示了整个系统的层次结构本系统中的集成桌面是将一些经常使用的应用程序做成图标置于用户界面上!除了键盘上的应用程序快捷键外!对于在焦点状态的应用程序图标!按下回车键也可以启

6、动或者显示应用程序窗口!但不管是用快捷键还是回车键来启动或者显示应用程序最终都会融合到一个统一的窗口管理框架内 图是本系统桌面的截图!通过左下角的的按钮弹出的菜单可将任意程序的快捷方式添加到桌面上!也可以将桌面上的程序快捷方式删除!这样对整个系统的可扩展性带来了很大的方便!用户可以随时定制自己的应用程序 但是如果不采用集成桌面!而是将所有应用程序融合成一个应用程序!那么就没有扩展性可言!应用程序窗口管理在本系统中的应用程序窗口管理只涉及到窗口的显示与关闭!在窗口中隐藏了系统菜单!也不存在任务栏!所以不涉及到窗口的最大化和最小化问题 在*+,-./&00&0的$%&(&应用程序中已经对系统中存在

7、的窗口信息提供了有力的支持 为了能协调调度系统中每一个应用程序窗口!在系统中要为每个应用程序维护一个当前状态的信息结构!任何应用程序的启动和关闭!以及任何窗口的显示和关闭都会影响到该结构!该结构的定义如下#&.12 3+4+&5 67889:122;2&20;2A&336;2+;%+4+&B,488C;4+;A2 3+4+13*D;3+E*F%F;20AGH 4CCF;23B,4CC G;20AG3/&CA23+A+I;3 488C;4+;A2;2+;JA+K&LB,IA+K&L+A 4+;(4+&+I;3 488C;4+;A2*F%MC;&2+N788C;4+;A2B,+I&;2+&24C;

8、0 AO+I;3 488C;#4+;A2?B在上述结构中记录着应用程序的基本信息!分别是应用程序的运行状态!应用程序的所有窗口信息$*F%F;20AG是$%&(&中的一个窗口信息类%!应用程序快捷键!以及应用程序在$%&(&层的标识符$*F%MC;&2+是在$%&(&中的一个应用程序信息类%!随着用户对系统的操作!每个应用程序的数据结构中的值也将不断变化!应用程序窗口管理的流程如图P所示!其中!#的功能都整合在$%&(&层!而$是在$MC;&2+程序中实现的!这四部分的具体功能如下&!截获所有的用户键盘按键&实现应用程序的窗口显示以及对应用程序信息的修改&$接受从$%&(&层传递的按键!如果收

9、到-3键!就关闭窗口!否则执行其自身的程序逻辑&#实现对窗口关闭后应用程序信息的修改等&!#系统截键处理在系统中的硬件设备中有一个特殊的键盘!在#Q微电子学与计算机!年第!卷第#期键盘上有所有应用程序的快捷键!所以要显示程序窗口的首要任务就是要截获用户的所有键盘按键!然后分析按键以及后继对所得到的按键进行处理$%&(&管理着所有可用于显示器的资源!与系统硬件也结合得比较紧密!)*+,-.&/&/对其也进行了较好的封装!对于$%&(&层的程序提供了全局变量012%&(&#类)3%&(&的对象$!其管理和保存着系统中$456&7*程序窗口的几乎所有信息!另外其中也包含了一个全局键盘钩子类8&9#.

10、:;/65*&!可以在键盘驱动程序将用户按键发送到$456&7*程序之前首先截获到键值!并有权决定是否将按键发送到当前的用户应用程序#具有焦点的应用程序窗口$!这个键盘钩子类的定义如下%=5;22 8&9.:;/?.56=)3%&(&8&9.:;/5B?8&9.:;/65*&C DE+=:72*=*:.:5 F65*&C67*76=:/&G 67*H&9=:/&G 67*-:/6F6&2G.:562I&22G.:5;*:J&?&;*KE+L:H:F*L&H&9.:;/(6*;5 M 5B?8&9.:;/65*&C KE+/&2*=*:NE在类8&9.:;/367/:1,(&7*中的某个状态$!

11、一旦有窗口发生状态的变化就会进入处理函数!该处理发生在图O的和#的连接处!在处理函数中我们关注的是当)3%&(&367/:1,(&7*参数为)3%&(&P&2*:9时!即当有某个窗口被销毁关闭时!判别该窗口是否是对应的应用程序的最后一个窗口!如果是则意味着整个应用程序的关闭!那么就要相应地设置该程序的参数!比如将该程序的运行状态改为未运行等!这样就对窗口的关闭处理完毕&!$窗口调度的时机经过上面截键!窗口显示和窗口关闭的三步处理!窗口管理的主体部分就完成了!在整个系统中有三种情况需要涉及到窗口管理调度!第一种情况下是用户显式地按键盘!想调度出某个应用程序!这时会涉及到窗口调度!显示出窗口)第二

12、种情况是当底层的硬件设备的状态改变时!需要显示出与其状态变化相对的某个应用程序的窗口!比如!当用户拿起话筒时!底层的Q;/设备的状态产生了变化!用户这时极有可能要打电话!所以在显示界面上要变成P6;5&(拨号程序$的界面!这时在Q;/驱动中用L;7/5&2=;7=:/&R K内核函数模拟用户按键!发送该应用程序(P6;5&$的快捷键!此时在键盘钩子函数中也会捕获到该模拟按键!从而调度出需要的应用程序)第三种情况是在用户操作应用程序时!可能会需要调出另外的应用程序!这时也涉及窗口调度!但是在这种情况下是通过应用程序与$%&(#&的管道通信来告诉$%&(&需要调度出什么应#S微电子学与计算机!年第

13、!卷第#期微电子学与计算机用程序!相互之间有通信协议#这时$%&(&端的窗口管理部分就直接调用键盘钩子处理函数#参数就是要调度出的某个应用程序的快捷键键值#比如当用户在用图象浏览器看一幅图象时#要将这幅图象用)*+,-发出去#这时就需要调度出)*+,-程序窗口#那么浏览器程序先和$%&(&程序通信#然后$%&(&再调度出)*+,-程序#所以三种情况最终都归结到键盘钩子中的窗口管理程序$!应用程序与底层驱动程序的通信在嵌入式开发中#系统中有很多适用于具体功能的设备#比如本系统中的.+/设备#上层应用程序与它必然有很多数据要交换#这时就涉及到两者之间的通信问题$在一般情况下驱动程序处于内核层#而应

14、用程序处于用户层#所以比较传统的做法是信号通信#共享内存等$由于在本系统中通信量较大#相互之间的关系错综复杂#所以决定采用分层通信的方法#即在图0中所分的四层中#每一层就只与其相邻层发生通信#这样做系统结构就比较清晰#而且比较容易维护和修改#具体的通信示意图如图1$程序本身的,234-函数来传递516#而如果是驱动程序要将数据传送给上层应用程序#那么传统的方法是经过!#即先将数据填入共享内存#然后发送%,7信号给特定的应用程序#当应用程序接受到信号后#就到与驱动程序约定好的地址空间取得数据$在本系统中并不采用直接通信的方法#而是所有通信都要经过$8%&(&层中转#即为!$%#在驱动程序与$%&

15、(&之间约定了一系列的协议#驱动程序利用9+:/-&;3+:32/&32?9+:&-类!是对A,:BC中管道的封装5!6#首先在应用程序端建立管道服务器等待接受信号#使用32?9+:&-类中的成员函数(2,/&3&,(&!32:;4%4,:7 D*;7E 32:;4FG4&H+G D/+4+#其中*;7是与应用程序的通信协议#/+4+是可以附带传送的数据#当应用程序接受到管道信号时#再从共享内存中取出所需要的数据#完成整个通信过程#这种通信模式有以下几点好处%&避免了由于驱动程序向上层应用程序传送数据频繁#信号资源不足#而且在内核空间要查找出一个应用程序的I,/号效率不高的问题$因为每一层程序

16、只与其相邻层程序通信#维护与修改相对简单$(减少了由于系统空间与应用空间过多的交互而出现系统崩溃的可能性$结束语当前嵌入式产品正向着功能强大#操作简单#体积小等方向发展#随着功能的不断强大#提供给用户一个方便易用的应用程序集成环境将是至关重要的$本文介绍了一个在A,:BC下基于4J)*#K&/&/的集成桌面在嵌入式设备中的实现#阐述了基于图形界面的嵌入式设备的系统层次结构#突出了$%&(&层的重要作用#以及怎样将应用程序窗口管理和$%&(&程序有机结合起来#协调处理上下层程序间的通信和数据传输$虽然本文所介绍的窗口管理只在特定设备上实现#但其通用的设计理念对信息处理型的嵌入设备将很有示范意义$

17、参考文献506944?LJJMMMN42-4&39N32*J?2/B34;JO42?,+J,:/&CN94*-56%P10Q$R%)S&%THURHAN 944?L JJ MMMN;+*;B:7;&*,N32*E QQPN N5P6V S2K&4 F2M:5美6著N戴英E王辉E崔宝琛 等译N深入学习L$W,:/2M编程技术5T6N北京L电子工业出版社EQQ0N PN516H-&;+:/2 SBK,:,E V2:+49+:2K&4著E魏永明E骆刚E姜君 等译N AXUR$设备驱动程序5T6N北京L中国电力出版社E QQN 00N5!6W S,39+/%4&(&:;5美6著E尤晋元 等译N RUX$环境高级编程5T6N北京L机械工业出版社E QQN N5Y6郭胜超E吕强E杨季文N一个嵌入式A,:BC应用系统在ABKK23Z开发板上的实现5V6N计算机应用E QQPN00N吕强!0Y!8#教授$研究方向为分布计算与嵌入计算操作系统$夏俊鸾硕士研究生$钱培德!018#教授#博士生导师$研究方向为中文信息处理操作系统$杨季文!0YP8#教授$研究方向为操作系统$#

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁