电子产品量产工具-软件架构-输入系统

该笔记为百问 韦东山老师免费课程学习过程的整理,学习过程中,软件架构思想很重要,所以在每学习完一个单元后悔整理一下。

软件架构

整体软件架构

该课程整体的软件架构:

input_manager.c是主管的角色,他知道手下每个码农兄弟能做什么,然后以领导化的语言汇总抽象之后向上层的研发总监 告。那么他是怎么知道下面各码农能做什么呢然是靠各位码农兄弟们向这位主管 告了!

netinput.ctouchscreen.c作为码农兄弟的角色,他们会向主管们 告自己是谁能干嘛入职的时候他们会填写表格信息(就是g_tNetinputDevg_tTouchscreenDev,上交给主管,通过RegisterInputDevice()向主管注册了自己。主管在用到相应的功能时就会叫对应的码农兄弟去干活,并且会把一些要求的参数给到这位码农兄弟。码农兄弟接到之后,运用他多年修炼的C+V功力去完成任务,并且把结果告诉主管。

输入系统的工作流程:

先上一个应用层调用的代码:

1. 注册各个输入设备InputInit

创建链表,将所有的设备opr结构体指针加到该指针中,这里采用的是头插法,节点插入到链表表头。

3. 获取输入数据GetInputEvent

1.无数据则休眠
2.有数据时则返回数据

一定要注意,获取是在线程回调函数里面执行的,如上图。
在创建线程之后,会有两个线程:netinput 和 touchscreen线程,他们都执行 input_recv_thread_func() 函数,但是传进去的参数是不一样的。netinput 线程创建时传入自己的opr数据结构体指针。

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24810 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月1日
下一篇 2022年6月1日

相关推荐