Android 系统 TP 事件处理流程

简单流程

首先注册 i2c 设备,添加 tp 驱动,然后在 tp 驱动上响应中断、获取用户操作的
数据,通过筛选等一系列操作将数据上报。
总体流程图
*中断、线程、工作队列生成
*放大缩小、xy 对调等算法
*get_event 函数使用

1. 系统调用 TP 驱动

初始化流程图
TP 驱动的调用流程大体类似,通过 module_init 和 module_exit 函数调用与卸载
驱动,同时注册了两个函数,分别是 tpd_device_init 和 tpd_device_exit 用以驱
动初始化。
在这里插入图片描述
在 tpd_device_init 函数中向 i2c_broad 注册 i2c 设备,同时通过 tpd_driver_add 将
tpd_device_drive 添 加 到 tpd_driver_list 中 。 在 tpd_device_exit 函 数 中 通 过
tpd_driver_remove 注销我们注册的函数。
系统通过 tpd_driver_add 添加驱动后会回调 tpd_local_init 函数,对本地变量环境
等进行初始化,最后调用 tpd_i2c_probe 函数对具体设备进行检测与设置,同时
注册触摸线程。

2. TP 响应操作

响应流程图
TP 响应用户的操作原理其实很简单,就是当用户点击屏幕进行操作的时候,会
产生中断。通过和 BaseBand 连接的中断引脚触发 BaseBand 去 TP 的寄存器去
读点。然后将点进行处理,再通过 tpd_down 和 tpd_up 上报。

在 tpd_i2c_probe 这个入口函数中会通过 touch_event_handler 函数来运行触摸
线程等待队列,同时调用 tpd_irq_registration 这个函数去注册 tp 驱动的中断。
当中断触发的时候就会唤醒等待队列。
在这里插入图片描述
中断函数注册后通过 wait_event_interruptible 对等待队列进行唤醒调用 touch 线
程。
在这里插入图片描述
touch_event_handler 函数通过 report_data_handle 检查读点,判断按键状态调用
tpd_down 和 tpd_up

3. 报点处理

数据处理流程图
接收到的数据通过 report_data_handle 发送到 tpd_down 和 tpd_up 函数,tpd_down
函数调用过 input_report_abs 和 input_report_key 来进行处理,然后通过
input_mt_sync 函数来进行同步。Tpd_down 函数中参数 x、y 即为当前在 tp 中
的逻辑设备坐标。在 input_report_abs 这个函数会通过 input_event 函数继续上
报:
在这里插入图片描述
在 input_handle_event 函数中调用 input_event,input_event 函数中,首先会判
断当前过来的事件是不是系统所支持的。如果不支持的话 则未进行处理表示丢
弃,如果是系统支持的事件,就会通过一个互斥锁来进行事件处理。防止其它事
件和中断的干扰。通过 input_handle_event 继续对事件处理
在这里插入图片描述
在input_handle_event 中 通 过 input_get_disposition 判 断 类 型 支 持 , 再 通 过
input_pass_event 函数将对应的事件放到 eventHub 中进行处理。
将事件放到 eventHub 中,系统会通过 InputReader 和 InputDispatch 去完成事
件的分发。
在这里插入图片描述
tpd_up 函数通过 input_report_key 来进行处理,然后通过 input_mt_sync 函数来 进行同步
在这里插入图片描述

4. 亮屏息屏

设备通过 i2c 总线调用 tpd_device_driver 驱动执行 suspend 和 resume 函数对 tp
进行休眠与唤醒。一般 suspend 的时候 ic 要进入休眠模式且关闭中断刷新工作队
列等工作。在 resume 的时候要唤醒 ic,使能中断以及其他工作。在 ps 模拟距感
的情况下,检测通话熄屏则不需要经过休眠与唤醒,ic 仍处于工作状态。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/30009.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java网络编程之UDP和TCP套接字

一. 网络编程概述 我们知道在网络通信中, 数据的发送是从应用层开始, 一直封装到物理层然后进行发送的, 应用层要将数据交给传输层进行封装; 而接收方拿到数据后是从物理层到应用层进行分用, 传输层要将拿到的数据再分用给应用层进行使用, 网络编程实际操作中最关键的就是我们所…

工程师“魔改” AirPods Pro 接口,苹果“妥协”将成大势所趋?

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life) 近年来, USB-C 接口凭借其高效的数据传输、充电速度等优势,促使时下的许多手机品牌大规模使用,可谓实现了统一“半壁江山”的势头,甚至盖…

web开发中的通信协议

websocket def:websocket协议是基于tcp的,实现浏览器与服务器之间全双工通信的一种网络协议 websocket是一种持久协议,多应用在聊天,客服咨询等有实时报送需求的场景下。 早期没有websocket时,通过ajax短时轮询&#x…

GLM联合go-cqhttp实现qq群GLM机器人服务器的本地化部署笔记

GLM qq群服务器的本地化部署笔记 一. 概述1.1 整体结构1.2 目标1.3 需求1.4 流程说明 二. 部署流程2.1 使用GPT转发程序帮助文档2.1.1 使用git安装GLM2.1.2 不使用git安装GLM 2.2 使用Anaconda Navigator 虚拟运行GLM2.2.1 [https://www.anaconda.com/](https://www.anaconda.c…

chatglm-6b:本地手动下载,本地部署

文章目录 模型效果演示操作步骤步骤一步骤二步骤三 ChatGLM-6B是一个由清华大学和智谱AI联合研发的开源对话语言模型。它是一个支持中英双语问答的对话系统,并在中文方面进行了特别的优化。 该模型基于General Language Model (GLM)架构,具有62亿参数。借…

阿里组织变革:设立六大业务集团,成熟一个,上市一个;微软软件工程师最高年薪28.8万美元;iOS 16.4 发布|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

乐视实行四天半工作制,网友:还招人吗,我有个朋友想去!

作者 | 苏宓、出品 | CSDN(ID:CSDNnews) 新春的第一个工作日,有一个别人家的公司登上了热搜,羡煞旁人,它就是乐视。 起因是因为#乐视开始实行每周四天半工作制#,所谓话少事大,在官宣…

学历造假、拖欠工资、核心技术归属存疑?AI 独角兽创始人遭质疑后回应!

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 所谓树大招风,正在 Stability AI 及其创造的 Stable Diffusion 模型工具身上体现出来。 Stable Diffusion(SD)是如今主流的文本创建图像的生成式 AI 工具&#xff0c…

『突破极限』利用ChatGPT一分钟生成思维导图,从此告别繁琐,助你轻松学习……

大家有没有经常需要做思维导图的时候? ChatGPT可以快速做PPT、快速做短视频、快速做图片,那可不可以快速做思维导图呢? 答案是肯定滴,而且出图速度超出你的想象,非常离谱。 以后读文献、书籍、商业文章分析简直就是…

【问题已解决】无法定位程序输入点于XXX动态链接库***.dll上

无法定位程序输入点于XXX动态链接库***.dll上 事件前因后果温馨提示解决方法 ChatGPT中文版购买 事件前因后果 在一次安装又卸载falsh(可能非正版)后,关机再开机后,发现除了浏览器,其他软件双击打开是都提 示无法定位…

使用WPS时,SAP导出文件提示windows找不到文件

朋友碰一个问题,用户使用WPS后,SAP导出excel文档,系统无法自动打开且提示以下错误,安装office的就没有这个问题。 不可能让用户去下载office,那样会显 得SAP很拉跨,再说了那么多用户,你去给他装…

WPS Office AI实战:Excel表格处理与分析,一句话搞定

前面几篇我已经系统性将 WPS AI 的能力介绍给你,唯独 Excel 表格的 AI 助力姗姗来迟。近日在WPS AI的功能介绍里发现WPS已经悄悄集成了AI能力,今天就为你拆解下日常的Excel处理,AI 可以提供哪些帮助。(与智能表格 AI 能力相似&…

WPS Office AI实战:智能表格化身智能助理

前面我们已经拿 WPS AI 对Word文字、PPT幻灯片、PDF 做了开箱体验,还没有看过的小伙伴,请翻看以前的文章,本文开始对【智能表格】进行AI开箱测验。 表格在日常的数据处理中占绝对地位,但表格处理并不是每一个人都擅长,…

阿里巴巴腾讯网易京东都宣布了各自的 AI 计划;微软推进裁员 1 万人计划;Rust 1.67.1 发布|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

163.net邮箱,让海外邮件收发畅通无阻

电子邮件是作为跨境对接及商务往来传输重要媒介方式,通过电子邮件可进行更加高效、专业且低成本的精准营销方式。但由于受到国内外的网络环境、ip等限制,需经过多次跳转,因此导致邮件传输过程中退信、收不到信、丢失等问题的产生。究竟如何让…

使用AutoGpt创建自动化任务

1.下载并安装AutoGpt git clone https://github.com/Torantulino/Auto-GPT.git cd Auto-GPT pip install -r requirements.txt注意要使用python3.8及以上的环境,不然会出现问题: 比如: ERROR: No matching distribution found for colorama…

【Prompt Engineering 教程:写 Prompt 的艺术】1、什么是 Prompt Engineering?

【Prompt Engineering 教程:写 Prompt 的艺术】1、什么是 Prompt Engineering? 文章目录 【Prompt Engineering 教程:写 Prompt 的艺术】1、什么是 Prompt Engineering?什么是 Prompt Engineering?举个例子需要学习 PE 吗?One More Thing小结什么是 Prompt Engineering?…

chatgpt赋能python:Python调用FFmpeg录屏:详细介绍及实现步骤

Python 调用 FFmpeg 录屏:详细介绍及实现步骤 录屏是一种广泛应用于教学、演示、展示等领域的技术。现在,许多人都通过录屏技术来制作文件,并教授他们的知识和技术。Python 提供了许多库,可以轻松地帮助我们使用这种技术。在本文…

腾讯会议怎么录屏?几个步骤轻松录屏

最近由于疫情的影响很多小伙伴不管是学习还是居家办公都少不了使用线上会议来交流吧,比如网课或者一些项目的会议都需要在线上会议的形式来开展,那么对于一些比较重要的内容不管是领导安排的工作分享或者学习上的内容想要进行录制保存下来该如何操作呢&a…

chatgpt赋能python:Python制作录屏软件,让你的屏幕动作不再错过

Python制作录屏软件,让你的屏幕动作不再错过 作为一名Python工程师,你可能有很多需要记录屏幕操作的场景,比如演示软件或者录制教学视频。那么,有没有一款Python制作的录屏软件来满足你的需求呢?答案是肯定的&#xf…