1.数码相框-相框框架分析(1)
框架 分析 数码
2023-09-27 14:28:33 时间
项目流程
- 弄清需求(需要完成什么)
- 设计框架(怎么实现需求)
- 编写代码(怎么通过代码设计)
- 测试
弄清需求
(1)上电,LCD显示一副图片
(2)根据配置文件,决定停留当前界面还是自动显示下一张
(3)点击一下,出现一个对话框(手动显示,自动显示)
(4)上放大,下缩小,左右滑动切换图片
(5)左右滑动很快时,切换上上/下下一张
设计框架
通过两部分来完成:
1)输入进程(如下图所示)
创建3个线程:触摸线程、按键线程、主控线程
-触摸线程:不停调用tslib,当有数据后,封装成事件,上报给主控线程
-按键线程:没按下时休眠,按下时便产生中断,封装好上报给主控线程
-主控线程:收到数据后,用socket发送给显示进程
2)显示进程(如下图所示)
创建7个线程
-socket接收线程:
用来接收socket,比如收到左划的数据,便通知事件到主控线程
-主控线程:
根据得到的事件,然后调用驱动通过DMA将准备好的数据(位于某个内存上)放到显存地址framebuffer上.
-其它5个进程(当前,左,右,上,下):
比如当主控显示完一个图片后,则开始准备好(解压上幅图片/下幅图片,放大,缩小等数据),方便主控线程直接调用,从而提高速度.
图片数据是通过应用程序用库libjpeg解压(将jpeg格式转换为LCD显示格式),使用mmap()函数传到某个内存上.
当前线程的意义:
之前我们说过,当点击一下,会出现一个对话框,若退出对话框后, 便会通知当前线程,从而显示当前图片。
对话框:
按钮以及边框直接做成一个个图片,调用对话框时,直接覆盖LCD显存上即可
总结:
使用多线程好处在于:每个模块独立起来,方便以后修改,而且全局变量在多线程里可以共用.
下章学习:
相关文章
- Android Hook框架adbi的分析(2)--- inline Hook的实现
- 浏览器中实现深度学习?有人分析了7个基于JS语言的DL框架
- Selenium自动化测试框架常见异常分析及解决方法
- 高效、易用的自动化测试框架设计
- 官宣!——放出多款框架,免费并允许商用,将开源进行到底!
- Google Earth Engine APPS(GEE)—— Landsat 数据的时间序列分析来监测森林转化和退化 (CODED)整体框架(万字长文)
- Android 25种炫酷动画框架
- 淘东电商项目(22) -Canal数据同步框架
- 性能测试中Disruptor框架ExceptionHandler使用分享
- 初步整合vue-element-admin和GitDataV两个Vue开源框架方案实现大数据可视化
- JAVA单元测试框架-12-java代码重复执行失败的测试用例
- Apworks框架实战(三):单元测试与持续集成
- OSNIT信息收集分析框架OSRFramework
- Java小白进阶系列——Java锁框架AQS源码分析目录大纲
- Java集合框架之一:ArrayList源码分析
- 阿里ARouter 路由框架解析
- 小程序框架之视图层 View~获取界面节点信息
- 【总结】编写自己的JDBC框架
- 【漏洞复现】CVE-2022–21661 WordPress核心框架WP_Query SQL注入漏洞原理分析与复现
- Spring源码分析(二)两种方案搭建基础框架
- Python学习---抽屉框架分析[点赞功能分析]
- java jodd轻量级开发框架
- 分析USB平台设备模型框架(1)
- RDIFramework.NET框架SOA解(集Windows服务、WinForm形式和IIS发布形式)-分布式应用程序
- SSH框架总结(框架分析+环境搭建+实例源代码下载)
- SSH框架总结(框架分析+环境搭建+实例源代码下载)
- 分布式服务器框架之Servers.Core库中实现MongoDB对象实体类 管理对象ID
- U3D客户端框架之商业项目中的 FSM 有限状态机 实现代码