Android getevent用法详解
TP驱动调试分享——基于Qualcomm SDM710平台Android9.0,TP 采用I2C方式和CPU进行通信_高通tp驱动_永恒小青青的博客-CSDN博客
手机触摸屏扫描信号实测波形_触摸屏报点率_AirCity123的博客-CSDN博客
如何查看TP报点率?触摸TP查看详细信息
adb shell
getevent -r
getevent 指令用于获取 input 输入事件,比如获取按键上报信息、获取触摸屏上报信息等。
指令源码路径:/system/core/toolbox/getevent.c
getevent -h:查看 getevent 帮助信息
root@rk3288:/ # getevent -h getevent -h Usage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device]-t: show time stamps-n: don't print newlines-s: print switch states for given bits-S: print all switch states-v: verbosity mask (errs=1, dev=2, name=4, info=8, vers=16, pos. events=32, props=64)-d: show HID descriptor, if available-p: show possible events (errs, dev, name, pos. events)-i: show all device info and possible events-l: label event types and names in plain text-q: quiet (clear verbosity mask)-c: print given number of events then exit-r: print rate events are received
getevent:显示当前有那些输入设备,数量与 /dev/input 目录下相同
root@rk3288:/ # getevent getevent add device 1: /dev/input/event3name: "ILITEK Multi-Touch-V3020" add device 2: /dev/input/event2name: "PC Camera" add device 3: /dev/input/event1name: "gsensor" add device 4: /dev/input/event0name: "rk29-keypad"root@rk3288:/ # ls /dev/input ls /dev/input event0 event1 event2 event3
查看默认上报数据
root@rk3288:/ # getevent /dev/input/event3 getevent /dev/input/event3 0003 0039 00000004 0003 0035 00002324 0003 0036 00001a9f 0001 014a 00000001 0003 0000 00002324 0003 0001 00001a9f 0000 0000 00000000 0003 0039 ffffffff 0001 014a 00000000 0000 0000 00000000
-t:显示时间戳
// 读取 event3 数据(触摸屏) root@rk3288:/ # getevent -t /dev/input/event3 getevent -t /dev/input/event3 [ 1141.248434] 0003 0039 0000000e [ 1141.248434] 0003 0035 00002cd4 [ 1141.248434] 0003 0036 00001a09 [ 1141.248434] 0001 014a 00000001 [ 1141.248434] 0003 0000 00002cd4 [ 1141.248434] 0003 0001 00001a09 [ 1141.248434] 0000 0000 00000000 [ 1141.322181] 0003 0039 ffffffff [ 1141.322181] 0001 014a 00000000 [ 1141.322181] 0000 0000 00000000
-n:不换行打印
root@rk3288:/ # getevent -n /dev/input/event3 getevent -n /dev/input/event3 0003 0039 000000020003 0035 00002f000003 0036 00001a4e0001 014a 000000010003 0000 00002f000003 0001 00001a4e0000 0000 000000000003 0039 ffffffff0001 014a 000000000000 0000 000000000003 0039 000000030003 0035 00002e880003 0036 000019b80001 014a 000000010003 0000 00002e880003 0001 000019b80000 0000 000000000003 0039 ffffffff0001 014a 000000000000 0000 000000000003 0039 000000040003 0035 00002d700003 0036 00001a000001 014a 000000010003 0000 00002d700003 0001 00001a000000 0000 000000000003 0039 ffffffff0001 014a 000000000000 0000 000000000003 0039 000000050003 0035 00002d080003 0036 000019a50001 014a 000000010003 0000 00002d080003 0001 000019a50000 0000 000000000003 0039 ffffffff0001 014a 000000000000
-s:显示指定位的开关状态
root@rk3288:/ # getevent -s5 /dev/input/event3 getevent -s5 /dev/input/event3 0000
-S:显示所有位的开关状态
root@rk3288:/ # getevent -S /dev/input/event3 getevent -S /dev/input/event3 0000
-v:根据 mask 值显示相关信息,执行后会一直显示上报数据
errs=1, dev=2, name=4, info=8, vers=16, pos. events=32, props=64
默认显示 dev| name| info| vers = 30;
root@rk3288:/ # getevent -v /dev/input/event3 getevent -v /dev/input/event3 add device 1: /dev/input/event3bus: 0003vendor 222aproduct 004dversion 0110name: "ILITEK Multi-Touch-V3020"location: "usb-ff540000.usb-1.3/input0"id: ""version: 1.0.1root@rk3288:/ # getevent -v30 /dev/input/event3 getevent -v30 /dev/input/event3 add device 1: /dev/input/event3bus: 0003vendor 222aproduct 004dversion 0110name: "ILITEK Multi-Touch-V3020"location: "usb-ff540000.usb-1.3/input0"id: ""version: 1.0.1root@rk3288:/ # getevent -v2 /dev/input/event3 getevent -v2 /dev/input/event3 add device 1: /dev/input/event3root@rk3288:/ # getevent -v8 /dev/input/event3 getevent -v8 /dev/input/event3bus: 0003vendor 222aproduct 004dversion 0110location: "usb-ff540000.usb-1.3/input0"id: ""root@rk3288:/ # getevent -v16 /dev/input/event3 getevent -v16 /dev/input/event3version: 1.0.1root@rk3288:/ # getevent -v32 /dev/input/event3 getevent -v32 /dev/input/event3events:KEY (0001): 014aABS (0003): 0000 : value 12008, min 0, max 16384, fuzz 0, flat 0, resolution 310001 : value 5790, min 0, max 9600, fuzz 0, flat 0, resolution 32002f : value 0, min 0, max 9, fuzz 0, flat 0, resolution 00035 : value 0, min 0, max 16384, fuzz 0, flat 0, resolution 310036 : value 0, min 0, max 9600, fuzz 0, flat 0, resolution 320039 : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0
-d:如果设备可用,显示设备隐藏的描述信息
-p:显示设备支持的事件类型和编码方式
root@rk3288:/ # getevent -p /dev/input/event3 getevent -p /dev/input/event3 add device 1: /dev/input/event3name: "ILITEK Multi-Touch-V3020"events:KEY (0001): 014aABS (0003): 0000 : value 13084, min 0, max 16384, fuzz 0, flat 0, resolution 310001 : value 5284, min 0, max 9600, fuzz 0, flat 0, resolution 32002f : value 0, min 0, max 9, fuzz 0, flat 0, resolution 00035 : value 0, min 0, max 16384, fuzz 0, flat 0, resolution 310036 : value 0, min 0, max 9600, fuzz 0, flat 0, resolution 320039 : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0input props:INPUT_PROP_DIRECT
-i:显示设备的所有信息和支持的事件,比 -p 显示更多信息
root@rk3288:/ # getevent -i /dev/input/event3
-l:以文本形式输出事件类型和名称,比 -t 更清楚直观
// 读取 event3 数据(触摸屏) root@rk3288:/ # getevent -l /dev/input/event3 getevent -l /dev/input/event3 // 事件类型 事件码 事件值 EV_ABS ABS_MT_TRACKING_ID 0000000f EV_ABS ABS_MT_POSITION_X 00002bbc EV_ABS ABS_MT_POSITION_Y 00001b6d EV_KEY BTN_TOUCH DOWN EV_ABS ABS_X 00002bbc EV_ABS ABS_Y 00001b6d EV_SYN SYN_REPORT 00000000 EV_ABS ABS_MT_TRACKING_ID ffffffff EV_KEY BTN_TOUCH UP EV_SYN SYN_REPORT 00000000
-q:暂时不会使用
-c:打印固定数量的事件并退出
root@rk3288:/ # getevent -c 10 /dev/input/event3 getevent -c 10 /dev/input/event3 0003 0039 00000012 0003 0035 000038a4 0003 0036 000008f5 0001 014a 00000001 0003 0000 000038a4 0003 0001 000008f5 0000 0000 00000000 0003 0039 ffffffff 0001 014a 00000000 0000 0000 00000000
-r:显示事件上报速率
// 检测触摸屏报点速率 root@rk3288:/ # getevent -r /dev/input/event3 getevent -r /dev/input/event3 0003 0039 00000015 0003 0035 000030d8 0003 0036 00001954 0001 014a 00000001 0003 0000 000030d8 0003 0001 00001954 0000 0000 00000000 rate 0 0003 0039 ffffffff 0001 014a 00000000 0000 0000 00000000 rate 9
参数可以组合使用,一次性查看需要的触摸屏信息
root@rk3288:/ # getevent -tlr /dev/input/event3 getevent -tlr /dev/input/event3 [ 2514.550104] EV_ABS ABS_MT_TRACKING_ID 0000001c [ 2514.550104] EV_ABS ABS_MT_POSITION_X 00002dac [ 2514.550104] EV_ABS ABS_MT_POSITION_Y 000018ca [ 2514.550104] EV_KEY BTN_TOUCH DOWN [ 2514.550104] EV_ABS ABS_X 00002dac [ 2514.550104] EV_ABS ABS_Y 000018ca [ 2514.550104] EV_SYN SYN_REPORT 00000000 rate 0 [ 2514.638845] EV_ABS ABS_MT_TRACKING_ID ffffffff [ 2514.638845] EV_KEY BTN_TOUCH UP [ 2514.638845] EV_SYN SYN_REPORT 00000000 rate 11
相关文章:
Android getevent用法详解
TP驱动调试分享——基于Qualcomm SDM710平台Android9.0,TP 采用I2C方式和CPU进行通信_高通tp驱动_永恒小青青的博客-CSDN博客 手机触摸屏扫描信号实测波形_触摸屏报点率_AirCity123的博客-CSDN博客 如何查看TP报点率?触摸TP查看详细信息 adb shell ge…...
面试题-TS(二):如何定义 TypeScript 中的变量和函数类型?
面试题-TS(二):如何定义 TypeScript 中的变量和函数类型? 一、 变量类型的定义 在TypeScript中,我们可以使用冒号(:)来指定变量的类型。以下是一些常见的变量类型: 布尔类型(boolean):表示tr…...
【4】-多个User执行测试
目录 一个locustfile中有多个User 使用--class-picker指定执行 小结 一个locustfile中有多个User from locust import task, HttpUserclass User01(HttpUser):weight 3 # 权重host https://www.baidu.comtaskdef user_01_task(self):self.client.get(url/, nameuser_01_…...
基于Eisvogel模板的Markdown导出PDF方法
Requirements 模板地址:Wandmalfarbe/pandoc-latex-template Pandoc:Pandoc官网 Latex环境:例如TexLive Pandoc参数 --template"模板存放位置" --listings --pdf-enginexelatex --highlight-style kate -V CJKmainfontSimSun -V C…...
linux服务器安装redis
一、安装下载 下载安装参考文章 下载安装包地址:https://download.redis.io/releases/ 亲测有效,但是启动的步骤有一些问题 安装完成!!! 二、启动 有三种启动方式 默认启动指定配置启动开机自启 说明:…...
QT中信号和槽本质
信号 信号的本质就是事件 在QT中信号的发出者是某个实例化的类对象,对象内部可以进行相关事件的检测。 槽 槽函数是一类特殊的功能的函数,也可以作为类的普通成员函数来使用 在Qt中槽函数的所有者也是某个类的实例对象。 信号和槽的关系 在Qt中我…...
layui各种事件无效(例如表格重载或 分页插件按钮失效)的解决方法
下图是我一个系统的操作日志,在分页插件右下角嵌入了一个导出所有数据的按钮 ,代码没有任何问题,点击导出按钮却失效 排查之后,发现表格标签table定义了ID又定义了lay-filter,因我使用的layui从2.7.6升级到2.8.11&…...
flutter开发实战-父子Widget组件调用方法
flutter开发实战-父子Widget组件调用方法 在最近开发中遇到了需要父组件调用子组件方法,子组件调用父组件的方法。这里记录一下方案。 一、使用GlobalKey 父组件使用globalKey.currentState调用子组件具体方法,子组件通过方法回调callback方法调用父组…...
策略模式的实现与应用:掌握灵活算法切换的技巧
文章目录 常用的设计模式有以下几种:一.创建型模式(Creational Patterns):二.结构型模式(Structural Patterns):三.行为型模式(Behavioral Patterns):四.并发…...
当ChatGPT应用在汽车行业,具体有哪些场景?
ChatGPT有潜力彻底改变汽车行业并将其提升到新的高度。在ChatGPT的加持下,该行业的多个领域都将取得重大变化。 利用ChatGPT作更高级的虚拟助理 你可能用过现有的虚拟助理,它们一系列的回复有时候让人不得不感叹一句“人工智障”!然而&a…...
行为型-中介者模式(Mediator Pattern)
概述 中介者模式(Mediator Pattern)是一种行为型设计模式,它通过封装一系列对象之间的交互方式,使这些对象能够互相通信而不需要直接相互引用。中介者模式通过集中控制对象的交互,使得对象之间的耦合度降低࿰…...
Kibana+Prometheus+node_exporter 监控告警部署
下载好三个软件包 一、prometheus安装部署 1、解压 linxxubuntu:~/module$ tar -xvf prometheus-2.45.0-rc.0.linux-amd64.tar.gz 2、修改配置文件的IP地址 # my global config global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is ever…...
【前端知识】JavaScript——设计模式(工厂模式、构造函数模式、原型模式)
【前端知识】JavaScript——设计模式(工厂模式、构造函数模式、原型模式) 一、工厂模式 工厂模式是一种众所周知的设计模式,广泛应用于软件工程领域,用于抽象创建特定对象的过程。 优点:可以解决创建多个类似对象的…...
未来的算法备案法规:创新和安全如何兼顾?
随着科技的快速发展,算法正逐步渗透到我们生活的各个方面,从推荐引擎到自动驾驶,从医疗诊断到金融交易,这一现象既充满希望,也充满了挑战。其中一个关键的挑战就是如何设计和实施有效的算法备案法规,以促进…...
pycharm 使用远程服务器 jupyter (本地jupyter同理)
1. 远程服务器miniconda 环境中创建jupyter环境 # 1. 激活环境 conda activate envname#2. 在环境中安装jupyter pip install jupyter # 或者 conda install jupyter#3. 生成jupyter_notebook_config.py文件 jupyter notebook --generate-config#4. 设置密码 jupyter noteboo…...
leetcode 376. 摆动序列
2023.7.28 本题思路是定义一个 direct变量记录上一次摆动是上坡还是下坡 。 然后在一个for循环中循环判断当前摆动和上一次摆动是否一致,如果不一致则视为一次摆动。 如果前后元素值相等得话,直接continue进入下一次循环。 下面看代码: clas…...
【图像处理】使用自动编码器进行图像降噪(改进版)
阿里雷扎凯沙瓦尔兹 一、说明 自动编码器是一种学习压缩和重建输入数据的神经网络。它由一个将数据压缩为低维表示的编码器和一个从压缩表示中重建原始数据的解码器组成。该模型使用无监督学习进行训练,旨在最小化输入和重建输出之间的差异。自动编码器可用于降维、…...
MySQL大数据量分页查询方法及其优化
---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适应场景: 适用于数据量较少的情况(元组百/千级) ---原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3). L…...
dataTable转成对象、json、list
datatable转换成list集合 public static T TableToEntity<T>(DataTable dt, int rowindex 0, bool isStoreDB true){Type type typeof(T);T entity Activator.CreateInstance<T>();if (dt null){return entity;}DataRow row dt.Rows[rowindex];PropertyInfo…...
ubuntu环境安装centos7虚拟机网络主机不可达,ping不通
【NAT模式下解决】1.首先vi /etc/sysconfig/network-scripts/ifcfg-ens33检查ONBOOTyes,保存 2.输入systemctl restart network命令重启网关...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...
