CN102591695A - 基于嵌入式系统的图形用户中间件 - Google Patents
基于嵌入式系统的图形用户中间件 Download PDFInfo
- Publication number
- CN102591695A CN102591695A CN2011100043094A CN201110004309A CN102591695A CN 102591695 A CN102591695 A CN 102591695A CN 2011100043094 A CN2011100043094 A CN 2011100043094A CN 201110004309 A CN201110004309 A CN 201110004309A CN 102591695 A CN102591695 A CN 102591695A
- Authority
- CN
- China
- Prior art keywords
- middleware
- interface
- message
- graph user
- window
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一套基于WinCE系统的图形用户中间件,此中间件使用脚本语言Lua实现图形用户界面,可以跨平台使用,并且提供一些基础的图形控件,如按钮、列表框、进度条等。本发明可以提高界面开发效率,并且使得开发人员不需要具备很高的开发技能即可方便的使用。
Description
本发明所要解决的技术问题在于提供一套嵌入式图形用户中间件,此中间件使用脚本语言Lua实现图形用户界而,可以跨平台使用,并且提供一些基础的图形控件,如按钮、列表框、进度条等。
目前国内外已推出了多种用于嵌入式环境的通用图形用户界面系统,现在比较成熟的主要有MiniGUI、QT/Embedded等。国内的主流嵌入式图形设计库首推miniGUI。它模仿了Windows下的消息机制,采用VB、VC中的控件设计模式,具有较为完善的图形绘制功能。但在实际工程应用中,不能直接使用其接口函数,必须以miniGUI为主控平台,否则会产生致命的漏洞。DeltaGUI是构造嵌入式图形用户界面的应用开发包,它由北京科银京城技术有限公司自主开发,专门为实时嵌入式系统提供轻量级的图形用户界面支持。QT/Enbedded由于移植了大量的原来基于QT的X Window、程序,提供了非常完整的嵌入式GUI解决方案,再加上Opera浏览器可以说是一个成熟的商业软件。
与本发明相近的技术方案很少,目前较为流行的图形用户中间件使用XML作为配置文件配置界面的图形中间件,此类中间件,只是实现静态资源文件的配置,无法使用脚本语言实现整个用户界面的动态操作。
1、目前流行的界面开发中间件都是基于PC机上的中间件精简而来的。WinCE下较为流行的界面开发中间件有MFC和.Net Compact Framework.,这些流行的开发库,都有着一定的缺点,例如MFC很难上手,且用户界面开发与UI设计并不能完全脱离,整个架构过于冗杂,灵活性小,很难开发出华丽的界面,并且MFC是无法跨平台使用的;若使用.Net CompactFramework虽然开发容易、效率高,但是.Net Compact Framework是收费类库,会造成产品成本增加。
2、其他用户图形中间件例如QT,miniGUI等中间件对开发人员要求高,程序员无法从界面布局中完全解脱出来。
针对现有技术的主要不足本中间件提出使用C++实现整个中间件,并且添加C++与Lua交互的功能,使Lua语言可以调用C++接口,从而使得可以使用Lua语言实现整个用户界面。由于脚本语言对开发者编程要求低,可以使得开发效率提高。并且提供按钮、列表框、进度条、文字框、图片框等基础控件,使得开发更为方便和高效。
本发明解决其技术问题所采用的技术方案是:整个中间件完全从应用程序中剥离出来,对外提供一些接口,可作为用户图形库单独使用。他有四大模块构成:消息管理模块、窗口管理模块、资源管理模块、绘图模块组成、Lua交互模块。整个中间件是一个以消息为导向的系统,系统在消息的控制下进行窗口管理,通过调用资源管理模块添加资源文件,通过调用绘图模块进行窗口绘制。系统通过Lua语言进行界面实现,整个资源打包为一个bin文件,窗口管理模块通过Lua接口来添加控件、资源、以及管理窗口布局。绘图模块使用Windows GDI和DirectX技术以及Linux的FrameBuffer进行2D/3D图像绘制,从而在使用不同平台时,通过定义不同的宏而调用Windows或者Linux的绘图接口,从而实现跨平台的性能。在消息管理模块,对底层消息进行了封转,从而避免了操作系统的相关性。Lua交互模块,用于定义Lua语言调用的接口和调用的相应的C++接口,从而使得整个中间件可以使用 Lua语言进行界面实现。窗口管理模块与资源管理模块以标准C++采用面向对象的方式实现,这两个模块不依赖于操作系统,可以再windows平台或者Linux平台上编译运行,因此整个中间件可以很好的跨平台使用。
本发明的有益效果是,本发明可以提高界面开发效率,并且使得开发人员不需要具备很高的开发技能即可方便的使用。
下面结合附图和实施例对本发明进一步说明。
图1是本图形中间件的模块图。
整个系统使用standard C++和Windows api实现。主要设计方法如下:
由于整个用户图形中间件采用standard c++加Windows api的编程方式实现,因此,这个图形中间件在PC机上编程并调试成为可能,可以完全独立于WinCE进行开发,这样减少了调试的成本,并且使硬件的开发和软件的开发同时进行,大大提高了开发的速度。
使用Windows WinMain作为基础,生成一个并且是唯一一个窗口,这个窗口不带有任何基础控件,在此窗口的基础上进行界面的显示和切换。所有窗口都继承自CWnd,CWnd有一个Static的CWnd容器和一个装载控件的m_CUserControl容器,所有控件都继承于CUserControl,且CUserControl是一个嵌套的结构,每个CUserControl都可以有若干的CUserControl构成,通过一个m_CUserControl的容器来存储这些CUserControl。每个控件有自己的显示层次,用来表示绘制时的先后顺序。CUserControl通过读取具有特定格式的XML配置文件来得到各个控件的类型和显示信息,CUserControl使用C++面向对象编程的多态特性,实现m_CUserControl容器中各个控件的生成和添加。各个控件通过调用各自的Draw函数将自身绘制于图形缓存区。
由于在程序运行周期只存在一个窗口,也就是只有一个窗口句柄存在,因此在消息机制不同于其他中间件的设计方式。消息被分为三大类:系统全局消息、系统按键消息、定时器消息。
系统全局消息由IGlobalMessage接口来实现,他独立于CWnd存在,只有窗口需要处理系统全局消息时才会继承并实现它。
系统按键消息主要是用户点击屏幕或者点击外按键板触发的消息,这类消息只会发送到当前窗口进行处理。当系统发出点击操作消息后,此消息在WinProc函数被捕获,并且调用CWnd的OnWndMsg进行处理,此函数在获得当前窗口句柄后将消息分发给当前窗口的处理函数OnMsg进行处理,OnMsg在经过一系列判断,判断是否点击了某一按钮,若是这样则将此按钮id作为参数,调用该窗口的OnBtnID函数,此函数由用户用来定义点击后的操作。
定时器消息主要通过封装Windows api的SetTimer和KillTimer实现。定时器消息主要有两种:一种是全局定时器消息;一种是CUserControl定时器消息。前者不管窗口是否是当前显示窗口,消息都会被分发,后者当当前窗口退出后,其CUserControl的定时器消息将不再被处理。在设置CUserControl定时器的同时保存一个CUserControl的指针到TimerGrps,若指针为空则表示其为当前窗口定时器,否则此定时器为该CUserControl定时器,当消息被触发后,先调用当前窗口处理函数看是否有对应的id并处理,若未处理则调用基类的处理函数进行处理,否则查询当前窗口的TimerGrps容器中的id,找到此id调用相应的CUserControl定时器处理函数。
在界面显示方面,此中间件使用Windows GDI和DiretX技术将界面直接绘于屏幕的Primary层或者Overlay层。
在于Lua交互方面,使用SWIG1.3工具将C++的类和接口进行封装,使这些接口可以在 Lua语言中被调用。这样就可以用Lua语言进行界面实现了。
Claims (1)
1.中间件的控件生成方式。
2中间件使用Lua脚本语言进行界面生成的实现方式。
3中间件的单窗口管理模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100043094A CN102591695A (zh) | 2011-01-11 | 2011-01-11 | 基于嵌入式系统的图形用户中间件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100043094A CN102591695A (zh) | 2011-01-11 | 2011-01-11 | 基于嵌入式系统的图形用户中间件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102591695A true CN102591695A (zh) | 2012-07-18 |
Family
ID=46480407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100043094A Pending CN102591695A (zh) | 2011-01-11 | 2011-01-11 | 基于嵌入式系统的图形用户中间件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102591695A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992304A (zh) * | 2017-12-29 | 2018-05-04 | 北京远特科技股份有限公司 | 一种生成显示界面的方法和装置 |
CN109358839A (zh) * | 2017-12-29 | 2019-02-19 | 广州Tcl智能家居科技有限公司 | 一种嵌入式单片机软件开发的方法及存储介质 |
-
2011
- 2011-01-11 CN CN2011100043094A patent/CN102591695A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992304A (zh) * | 2017-12-29 | 2018-05-04 | 北京远特科技股份有限公司 | 一种生成显示界面的方法和装置 |
CN109358839A (zh) * | 2017-12-29 | 2019-02-19 | 广州Tcl智能家居科技有限公司 | 一种嵌入式单片机软件开发的方法及存储介质 |
CN107992304B (zh) * | 2017-12-29 | 2021-01-08 | 北京远特科技股份有限公司 | 一种生成显示界面的方法和装置 |
CN109358839B (zh) * | 2017-12-29 | 2022-09-02 | 深圳Tcl新技术有限公司 | 一种嵌入式单片机软件开发的方法及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8166396B2 (en) | User interface rendering | |
CN110134378A (zh) | 应用程序创建方法及装置、计算机设备及存储介质 | |
US20120317506A1 (en) | Method and System for Executing a Graphics Application | |
CN109901764A (zh) | 一种代码编辑器右键菜单功能实现方法及电子设备 | |
US6441833B1 (en) | Dynamically specifying invocations in compiled objects | |
Francese et al. | Supporting the development of multi-platform mobile applications | |
Vassallo et al. | Contemporary technologies and methods for cross-platform application development | |
Nolan et al. | Interactive and animated scalable vector graphics and R data displays | |
CN110443880A (zh) | 图像渲染方法、装置、存储介质及电子设备 | |
CN102591695A (zh) | 基于嵌入式系统的图形用户中间件 | |
CN101431569A (zh) | 可自定制和面向网络服务的手机桌面环境的实现方法 | |
Hu et al. | An Event Based GUI Programming Toolkit for Embedded System | |
JP2021068414A (ja) | ラッピング方法、登録方法、装置、レンダリングディバイス、及びプログラム | |
US9280323B2 (en) | Display of source code semantic layers | |
US11281477B2 (en) | Assigning computing resources to execution of evaluators for image animation | |
US20120072891A1 (en) | Computer Language Syntax for Automatic Callback Function Generation | |
US7634721B1 (en) | Composite component architecture using javaserver pages (JSP) tags | |
Rose et al. | Non-invasive adaptation of black-box user interfaces | |
Besacier et al. | Toward user interface virtualization: legacy applications and innovative interaction systems | |
Xingguo | Design and Implementation of Toolbox Based on Component Technology | |
Son et al. | Design and implementation of the smart virtual machine on iOS platform for the mobile game portability | |
Smaragdakis et al. | FC++: Functional tools for object‐oriented tasks | |
CN101446894B (zh) | 一种基于家用电脑绣花机的嵌入式图形系统 | |
US20240053996A1 (en) | Bridging ui elements across multiple operating systems | |
Raffaillac et al. | Turning function calls into animations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
DD01 | Delivery of document by public notice |
Addressee: Wu Yuan Document name: Notification that Application Deemed to be Withdrawn |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120718 |