CN102591695A - 基于嵌入式系统的图形用户中间件 - Google Patents

基于嵌入式系统的图形用户中间件 Download PDF

Info

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
Application number
CN2011100043094A
Other languages
English (en)
Inventor
吴源
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN2011100043094A priority Critical patent/CN102591695A/zh
Publication of CN102591695A publication Critical patent/CN102591695A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

一套基于WinCE系统的图形用户中间件,此中间件使用脚本语言Lua实现图形用户界面,可以跨平台使用,并且提供一些基础的图形控件,如按钮、列表框、进度条等。本发明可以提高界面开发效率,并且使得开发人员不需要具备很高的开发技能即可方便的使用。

Description

基于嵌入式系统的图形用户中间件
Figure BSA00000414525600011
技术领域 
本发明所要解决的技术问题在于提供一套嵌入式图形用户中间件,此中间件使用脚本语言Lua实现图形用户界而,可以跨平台使用,并且提供一些基础的图形控件,如按钮、列表框、进度条等。 
Figure BSA00000414525600012
背景技术 
目前国内外已推出了多种用于嵌入式环境的通用图形用户界面系统,现在比较成熟的主要有MiniGUI、QT/Embedded等。国内的主流嵌入式图形设计库首推miniGUI。它模仿了Windows下的消息机制,采用VB、VC中的控件设计模式,具有较为完善的图形绘制功能。但在实际工程应用中,不能直接使用其接口函数,必须以miniGUI为主控平台,否则会产生致命的漏洞。DeltaGUI是构造嵌入式图形用户界面的应用开发包,它由北京科银京城技术有限公司自主开发,专门为实时嵌入式系统提供轻量级的图形用户界面支持。QT/Enbedded由于移植了大量的原来基于QT的X Window、程序,提供了非常完整的嵌入式GUI解决方案,再加上Opera浏览器可以说是一个成熟的商业软件。 
与本发明相近的技术方案很少,目前较为流行的图形用户中间件使用XML作为配置文件配置界面的图形中间件,此类中间件,只是实现静态资源文件的配置,无法使用脚本语言实现整个用户界面的动态操作。 
Figure BSA00000414525600013
发明内容 
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平台上编译运行,因此整个中间件可以很好的跨平台使用。 
本发明的有益效果是,本发明可以提高界面开发效率,并且使得开发人员不需要具备很高的开发技能即可方便的使用。 
Figure BSA00000414525600021
附图说明
下面结合附图和实施例对本发明进一步说明。 
图1是本图形中间件的模块图。 
Figure BSA00000414525600022
具体实施方式 
整个系统使用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中间件的单窗口管理模式。 
CN2011100043094A 2011-01-11 2011-01-11 基于嵌入式系统的图形用户中间件 Pending CN102591695A (zh)

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)

* Cited by examiner, † Cited by third party
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智能家居科技有限公司 一种嵌入式单片机软件开发的方法及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
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