前言:
前面已经将Linux应用开发基础知识学习完了,现在让我们来做个小项目练练手,对之前的一些知识点进行一个更加具体详细的认识与了解,我们要进行的项目名称为:电子产品量产测试与烧写工具,这是一套软件,用在我们的实际生产中, 在具体开发中我们将显示系统,输入系统,文字系统,UI系统,页面系统,业务系统这五个板块进行学习。
一、项目介绍:
电子产品量产测试与烧写工具。这是一套软件,用在我们的实际生产中, 有如下特点:
1.简单易用:
把这套软件烧写在 SD 卡上,插到 IMX6ULL 板子里并启动,它就会自动测试各个模块、烧写 EMMC 系统。
工人只要按照说明接入几个模块,就可以完成整个测试、烧写过程。
测试结果一目了然:等 LCD 上所有模块的图标都变绿时,就表示测试通过。
2.软件可配置、易扩展:
通过配置文件添加测试项,可以添加不限个数的测试项。
每个测试项有自己的测试程序,测试通过后把结果发送给 GUI 即可。各个测试程序互不影响。
3. 纯 C 语言编程
工具设计的界面,它可以一边测试一边烧写:
上图中的 led、speaker 按钮,可以点击:
1.当你看到 LED 闪烁时,就点击 led 按钮,它变成绿色表示测试通过;
2. 当你从耳机里听到声音时,就点击 speaker 按钮,它变成绿色表示测试通过。
其他按钮无法点击,接上对应模块后会自动测试,测试通过时图标就会变绿。
上图中的蓝色按钮表示烧写 EMMC 的进度,烧写成功后它也会变绿。
LCD 上所有图标都变绿时,就表示测试、烧写全部完成;某项保持红色的话,就表示对应模块测试失败。
二、程序框架:
设计到的知识点:
1.Framebuffer应用编程 2.文字显示及图像显示 3.输入系统应用编程
4.网络通信编程 5多线程编程
三、编程规范:
初学写的代码
现在要规范的代码:
你能把一个项目拆分成各个子系统吗?
并且这些子系统跟业务无关,
以后还可以应用在其他项目上!
对于一个子系统,
你怎么抽象出它的对外接口?
考虑周全了吗?
容易扩展吗?
跟别的模块耦合要尽量少!
这个项目可以锻炼我们哪些能力?
我们教给你的是“基础能力”:
1.良好的编程规范
2.面向对象的编程思想
3.练习对事物的抽象能力
4.练习对整个系统的把控
四、扩展项目:
很多产品的项目界面都是和我们这个项目的界面类似的,可以称我们这个项目是这些类似项目的基础项目:
五、项目资料:
关于这个项目的所有源代码已经绑定在本文章中。
很多产品的界面都是类似的