数码相框的框架设计

你好!这里是我是学电子工程的博客,欢迎和我一起交流。

如果本篇博客对您有帮助,或许可以在下方评论给我留个言。ps(我是韦老大的学生^-^)


开始今天的项目分析

1.我们做什么项目,第一个是搞清楚项目的需求。

2.我们需要设计这个软件程序方面的框架

3.编写代码

4.编写测试

(同时这里也指出了几个岗位,一个是系统架构师,还有就是专家,比如这个程序里面涉及一个独一无二的算法,你就是里面的专家,其他的还有两个吧,将框架程序填满的人,比如c++工程师,应用工程师,还有一个就是测试软件工程师)


好了,下面我们来讲解一下,数码相框的功能,也就是它要提供什么样的需求:

 依照数码相框,我们一上电   ,lcd就会显示一幅图片
我们可以根据配置文件,决定停留还是显示下一副
点击一下,出现对话框(图片)这是我做的做的一个图片选界面,如下图1.1

数码相框的框架设计

                                                图1.1

因为我们选的lcd它只支持电阻屏(无法支持双手操作)根据上下左右(上下控制照片放大和缩小),左右移动很快时,显示下一幅(界面显示)


写框架总结

程序框架,输入进程如图1.2和显示进程如图1.3

1.输入进程:a.主控线程:得到上报的事件,用socket发出

                    b.使用tslib读写TS,封装事件,上报

                    c.按键线程:读按键,封装事件,上报

数码相框的框架设计

               图1.2


显示进程:a.socket线程接受socket

                b.放大线程:准备好放大的数据

                c.缩小线程:准备好缩小的数据

                d.下一幅线程:准备好下一幅的图片

                e.上一副线程:准备好上一幅的图片

                f.当前图片线程:准备好当前的图片

               主控:根据得到的事件,决定显示那一幅

                

数码相框的框架设计
                                                                       图1.3

驱动:分配5块内存,DMA操作,mmap


注释:Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。

a.为什么要分独立进程和显示进程了?

因为我想把输入进程和独立进程独立出来,可以类比于stm32的库函数,直接可以拿来调用,以后还能拿出来用。增加可移植型。

b.为什么进程里面的模块成为线程了?

处于同一进程里面的线程可以互相使用线程里面的全局变量

线程之间的优点是他们共享全局变量