
Linux量产工具
文章平均质量分 97
sakabu
记录我的嵌入式学习路线,梦想成为嵌入式大牛
展开
-
Linux应用项目之量产工具(六)——业务系统
前面我们完成了量产工具的各个子系统:显示、输入、文字、UI、页面。这样的架构很容易扩展,可以在这上面实现各种业务:比如可以做收银机、自动售卖机、智能秤、取号机;再加上摄像头显示,就可以做出可视对讲、视频监控、人脸红外测温等等。前面初始化各个子系统都与我们的业务没有关系,最主要的是调用主页面里的 Run 函数,所以Run 函数在做什么事情就和业务严重相关,我们要做的就是编写主页面的 Run 函数。至此,量产工具这个项目我们就完成了,这是韦东山老师的一个项目。原创 2024-12-01 03:17:13 · 698 阅读 · 2 评论 -
Linux应用项目之量产工具(五)——页面系统
前面我们完成了量产工具的显示、输入、文字、UI系统;这节我们来实现页面系统的代码。代码比较简单。我们在主界面点击一个按钮后,可以跳转到另一个界面执行其他操作,我们怎么去统一的表示这些界面?我们需要抽象出一个结构体。页面管理器用来管理页面:只需要实现 2 个函数:1.PageRegister:把多个页面注册进链表2.Page(name):取出某个界面,得到它的句柄。原创 2024-11-21 11:12:41 · 727 阅读 · 0 评论 -
Linux应用项目之量产工具(四)——UI系统
所谓 UI ,就是 User Interface(用户界面),有图像界面(GUI)等;我们的UI系统,就是构造各类GUI元素,比如按钮(目前只实现按钮)。怎么描述一个按钮呢?它的位置、大小怎么表示?怎么绘制它?用户点击它之后,如何处理?点击按钮后怎么处理,是业务系统的事情(顶层APP),所以应该提供一个 InitButton 函数,让用户可以提供 OnPressed 等底层函数,上层代码通过下面 3 个函数使用按钮。至此UI系统就完成了。原创 2024-11-20 14:24:48 · 1040 阅读 · 3 评论 -
Linux应用项目之量产工具(三)——文字系统
前面我们完成了量产工具的显示系统和输入系统,这节我们来实现文字系统,套路和前两节类似,先抽象出数据结构然后再对代码进行封装。我们要抽象出一个结构体 FontBitMap ,能描述一个“字符”:位置、大小、位图;我们还要抽象出一个结构体 FontOpr ,能描述字体的操作,比如Freetype的操作、固定点阵字体的操作。底层代码需要实现这三个函数,后面也会有管理层,底层需要把自己注册到管理链表里,上层代码就可以直接调用底层代码而无需关心细节。这就是面向对象的编程思想。原创 2024-11-15 20:11:15 · 731 阅读 · 3 评论 -
Linux应用项目之量产工具(二)——输入系统
前面我们完成了量产工具显示系统部分,见本篇实现输入系统。我们这个项目支持不同的输入设备,比如触摸屏和网络输入,这些输入设备都会向上层提供数据,那么这些数据的结构要统一;另外,对于不同的输入设备,我们也应该抽象出一个统一的结构体来表示。我们想支持同时从多个输入设备里面得到数据,就需要提供一个输入管理。需要为每一个输入设备创建一个线程,就像单片机引入操作系统FreeRTOS一样,要用到线程编程。相关知识见:Linux线程编程。不能使用单一的变量来保存数据,而是使用一个数组来保存数据,使用“环形缓冲区”。原创 2024-11-14 20:25:04 · 770 阅读 · 0 评论 -
Linux应用项目之量产工具(一)——显示系统
把这套软件烧写在 SD 卡上,插到 IMX6ULL 板子里并启动,它就会自动测试各个模块、烧写 EMMC 系统。工人只要按照说明接入几个模块,就可以完成整个测试、烧写过程。测试结果一目了然:等 LCD 上所有模块的图标都变绿时,就表示测试通过。对这个项目,我们要拆分出多个子系统,并且这些子系统与业务无关,以后还可以应用在其他项目上;我们编写各个子系统的代码时,要抽象出它的对外接口,增加它的扩展性,减少和其他模块的耦合性。原创 2024-11-10 20:51:10 · 898 阅读 · 3 评论