UCGUI 模拟器分析

Ucgui模拟器是通过WIN32程序来模拟嵌入式设备在WINDOWS上显示,那它是如何模拟的呢?(另需参照UCGUI的模拟器UCGUISim的设计文档

Ucgui模拟器程序主要完成以下几件事

一.   创建模拟器主窗口,这个窗体包括一些模拟器控制菜单,如打开LOG记录/打开调色板显示窗体/新建LCD模拟器窗体,以及暂停/继续模拟器。创建的窗口如下

 

二.   创建一个LCD模拟显示窗口并初始化其显示所需的各种数据结构,LCD窗口的大小由UCGUILCDConf.h中配制时指定(LCD_XSIZE/LCD_YSIZE),及其它的诸如每个象素占用多少位(LCD_BITSPERPIXEL),首先分配一块足够大的显存(4M)并初始化这块数据为0,每个象素占用不大于 8位时模拟显示屏幕需要用到8位图,还必须初始化要用到的调色板。

 

三.   提供操作LCD模拟显示屏幕的几个基本图形函数,UCGUI是一个设计层次非常清晰的图形系统,它将GUI的底层图形功能作为一层向上层提供最基本的图形功能,只有这一层才与具体的硬件相关,这一层包括基本的画点函数/矩形填充函数/调色板初始化函数/颜色索引与RGB的转换函数。

四.   提供上层的LOG记录接口的实现,主要完成UCGUI中调试信息的输出,是否输出调试信息可以由UCGUI中的一个开关设置。

五.   开启一个新的线程,在此线程中调用System/Main.c中的main()函数,此函数中再调用MainTask()函数,这个函数即为我们在模拟器中编程必须提供的一个函数,在单任务情形下UCGUI的程序均写在MainTask函数当中,供模拟器开启的线程调用。这里必须分清楚:主线程创建模拟器主窗口及LCD模拟窗口;UCGUI图形应用程序以新开的另外一个线程运行,这个线程结束时则UCGUI图形应用程序结束。模拟器显示模拟程序是通过UCGUILCD的操作(4M显存的操作),所以通过对4M显存的相应显示就OK(LCDSIM.c).

六.    LCD模拟器窗口消息函数当中接收KEY消息及MOUSE消息,并通过UCGUI中的KEYMOUSE接口传送到UCGUI内部以驱动UCGUI事件消息LOOP

利用如下结构体存储需转换的键盘,映射到UCGUI键值

当模拟器响应时,转化到UCGUI的结构体,让UCGUI响应

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值