主流嵌入式Linux下GUI解决方案.ppt_第1页
主流嵌入式Linux下GUI解决方案.ppt_第2页
主流嵌入式Linux下GUI解决方案.ppt_第3页
主流嵌入式Linux下GUI解决方案.ppt_第4页
主流嵌入式Linux下GUI解决方案.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主流嵌入式Linux下GUI解决方案,基本概念介绍 GUI(graphicaluserinterfaces) 图形用户界面(GUI),图形用户接口. 为用户提供界面友好的所见所得的操作环境. 主流解决方案 Qt/Embedded 图形库大而全,能够开发较为复杂的图形系统 Microwindows 项目规模较小、功能较为薄弱,缺乏等三方软件开发的支持 MiniGUI小巧、灵活,源码相对较少,基本概念,Qt Qt是Trolltech公司所开发的一个跨平台FrameWork环境 (一个运行的平台,有一堆常用的“库”) 多平台的C+图形用户界面应用程序框架 支持组件编程 (把系统分割成一些组件或设施的

2、一种思想 ,修改项目代码的一些部分不会破坏整个系统 ) Trolltech 跨平台应用程序界面框架 (QT) 嵌入式Linux开发的应用程序平台,能够应用到PDA和各种移动设备(Qtopia) Qt/E Qt库开发商Trolltech公司开发的面向嵌入式系统的Qt版本 采用C+封装 丰富的控件资源 较好的可移植性,Qt/Embedded,Qt/E实现结构 Qt/Embedded的底层图形引擎基于framebuffer 计算机显示存储器的一部分,存放屏幕图像的内容。 framebuffer是一种驱动程序接口 将显示设备抽象为帧缓冲区 显示内存的一个映像 (用户) QWSserver 负责事件的服

3、务分发,Qt/Embedded,QPE(Qt Plamtop Environment) 针对PDA软件的整体解决方案 底层的 GUI系统、Window Manager、Soft Keyboard 上层的PIM(个人信息管理器 )、浏览器 、多媒体 Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集 Qtopia平台组成 Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim) Qtopia server/laucher 控制窗口系统 进程间通信 发起所有应用和其他核心任务的主要服务程序,系统平台介绍,系统平台软件结构图 引导装载程序viv

4、i 设备驱动(包括帧缓存fb) 嵌入式Linux内核 文件系统yaffs(只读cramfs,需做修改) 基于QT/Embedded和Qtopia的用户图形界面以及应用程序,Qt/E 、Qtopia,构建GUI时用于 Qt开发的典型工具 tmake:跨平台的Makefile生成器 moc:用于Qt C+扩展的metra-object编译器 designer:用于设计窗口组建的应用程序, (*.ui文件) uic:从界面文件生成代码的用户界面编译器(*.cpp unsigned short x; unsigned short y; unsigned short pad; TS_RET;驱动程序提供

5、给上层应用程序使用的信息,用来存储触摸屏的返回值,项目进度,触摸屏坐标确定 触摸屏本身有自己的指标分辨率, 比如2048*2048(即它 的坐标系),它和我们LCD显示屏的坐标系(比如大点的1024*768)是两个概念。 通过ADS控制器的SPI/I2C总线读取到的触摸屏的坐标信 息,是触摸屏(贴在LCD上面很像包装纸的一层薄膜)以它 本身坐标原点O(物理的固定的,4个边角的某一个)为参 考的坐标对(X,Y) 原理是两个电压值(Nx,Ny),根据触摸屏X,Y方向的参 考电压,做个线性比较,得到其坐标值(X,Y,项目进度,触摸屏坐标确定 实际使用过程中, 唯一的参考定位是LCD屏的坐标系(x,y

6、), tslib就是把两个2维线性坐标系通过几个样值的比较,对应转换, 即(X,Y)-(x,y) (1)计算程序,调用LCD显示驱动程序,在LCD上打印几个光标,选择方便计算的,比如( x1,y1),(x2,y2). (2) 触摸屏驱动程序应该还没有设计完成, 这里只需要做到其触摸屏控制器初始化函数、坐标数据读取函数和相应的点击中断程序工作就可以了。分别点击这些点,程序中读出这些点对应的触摸屏坐标值(X1,Y1),(X2,Y2). (3) 这时候,就可以得到了两个坐标系的对应关系,具体就是代入程序中读到的采样值求解下面对应方程的6个系数(a,b,c,d,e,f): x=aX+bY+c, y=e

7、X+fY+g,项目进度,tslib校正原理 触摸动作模拟鼠标动作 传统的鼠标:相对定位系统,只和前一次鼠标的位置坐标有关 触摸屏:绝对坐标系统 绝对坐标系统的特点:每一次定位坐标与上一次定位坐标没有关系,每次触摸的数据通过校准转为屏幕上的坐标,不管在什么情况下,触摸屏这套坐标在同一点的输出数据是稳定的。不过由于技术原理的原因,并不能保证同一点触摸每一次采样数据相同,不能保证绝对坐标定位,点不准,这就是触摸屏最怕出现的问题:漂移。对于性能质量好的触摸屏来说,漂移的情况出现并不是很严重。所以很多应用触摸屏的系统启动后,进入应用程序前,先要执行校准程序,项目进度,tslib校正原理 LCD坐标和触摸

8、屏的物理坐标的比较 从触摸屏中读出的是点的物理坐标,其坐标轴的方向、XY值的比例因子、偏移量、缩放因子都与LCD坐标不同,项目进度,tslib校正原理 使触摸屏坐标和LCD坐标一一对应,且以插件形式提供附加功能如滤波、防抖。 tslib的API接口 tsdev表示触摸屏设备 fd:打开触摸屏设备的文件描述符 list:指针,依次存放指向tslib插件的指针,项目进度,tslib校正原理 tslib的API接口 ts_sample存放按键消息 x,y:按键的坐标位置(以LCD坐标系为基准) pressure:按键的轻重程度 tv:按键发生的时间,项目进度,tslib校正原理 tslib的函数 t

9、s_open() 打开触摸屏设备 ts_config() 读取触摸屏配置文件并决定加载模块 variance: 限定点击力度方差 dejitter: 去除点击抖动 linear: 将触摸屏上的坐标转换成LCD的坐标 ts_close() 释放触摸屏设备及相关资源 ts_fd() 返回打开的触摸屏设备的文件描述符 ts_read() 从触摸屏设备读取采样点坐标 开发板上运行Calibrate程序,触摸屏上任何一点的坐标就可以在主机LCD屏上回显出来。于是,就采集到了4个角的物理坐标 假设是6.4英寸屏,640X480分辨率,则它们的像素坐标分别是(20,20)、(20,460)、(620,460

10、)和(620,20)。这样,使用待定系数法就可以算出坐标系之间的平移关系。比如: Vx = xFactor*Px + xOffset Vy = yFactor*Py + yOffset,Qt/E 、Qtopia,qte/qtopia在2410s上的移植 使用tslib export TSLIB_CONSOLEDEVICE=none tslib运行需要的控制台,这里就是LCD屏幕 ,设定控制台设备为none,否则默认为/dev/tty, export TSLIB_FBDEVICE=/dev/fb0 指定帧缓冲设备 export TSLIB_TSDEVICE=/dev/touchscreen/0raw 指定触摸屏设备节点文件 export TSLIB_CALIBFILE=/etc/pointercal 指定触摸屏校准文件pintercal的存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论