获取触摸屏点击坐标和滑屏判断函数
下面代码有两个功能函数,get_slide()用于滑屏和获取点击坐标,而get_ts()仅用于获取一次点击坐标。
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/input.h> //输入子系统头文件 //触摸屏文件路径
#define TS_DEV "/dev/input/event0"
//获取的(x,y)坐标
int ts_x,ts_y;/*
功能: 获取一次划动的方向或点击坐标
返回值:1-->右滑; 2-->左滑; 3-->上滑; 4-->下滑; 5-->点击(获取到点击坐标)*/
int get_slide()
{int x1, x2, y1, y2;int flag = 0; //记录当前获取到的坐标的个数 : 0 --> 无; 1-->横坐标; 2-->横纵坐标struct input_event xy;//1, 打开触摸屏文件int fd = open(TS_DEV, O_RDWR);if(-1 == fd){perror("open ts failed");return -1;}//2, 读取分析触摸屏数据 -->获取起点坐标while(1) {read(fd, &xy, sizeof(xy)); //如果触摸屏文件中没有数据-->程序在此阻塞!if(xy.type == EV_ABS && xy.code == ABS_X && flag == 0){flag = 1;x1 = xy.value *800/1024; //对获取的坐标进行等比例换算}if(xy.type == EV_ABS && xy.code == ABS_Y && flag == 1){flag = 2;y1 = xy.value *480/600;} if(flag == 2) //获取的第一个坐标就是起点坐标{flag = 0;printf("start : (%d, %d)\n", x1, y1);break; } }x2 = x1; y2 = y1;//获取终点坐标 (x2, y2)while(1) {read(fd, &xy, sizeof(xy)); //如果触摸屏文件中没有数据-->程序在此阻塞!if(xy.type == EV_ABS && xy.code == ABS_X ){x2 = xy.value *800/1024; //对获取的坐标进行等比例换算}if(xy.type == EV_ABS && xy.code == ABS_Y ){y2 = xy.value *480/600;} if(xy.type == EV_KEY && xy.code == BTN_TOUCH && xy.value == 0)//压力值为0的时候此时获取终点坐标{printf("end : (%d, %d)\n", x2, y2);break; } }//判断终点位置相对起点的位置if(x2>x1 && (y2-y1)*(y2-y1) < (x2-x1)*(x2-x1)) //右划{printf("right slide -->\n");close(fd);return 1;}if(x2<x1 && (y2-y1)*(y2-y1) < (x2-x1)*(x2-x1)) //左划{printf("left slide <--\n");close(fd);return 2;} if(y2<y1 && (y2-y1)*(y2-y1) > (x2-x1)*(x2-x1)) //上划{printf("up slide ^\n");close(fd);return 3;} if(y2>y1 && (y2-y1)*(y2-y1) > (x2-x1)*(x2-x1)) //下划{printf("down slide v\n");close(fd);return 4;}if(x1 == x2 && y1 == y2) //不划{printf("点击 !\n");ts_x = x1;ts_y = y1;close(fd);return 5;}
}/*************************************************************************************/
//获取一次点击触摸屏坐标函数
int get_ts()
{//1, 打开触摸屏文件int fd = open(TS_DEV, O_RDWR);if(-1 == fd){perror("open ts failed");return -1;}//2, 读取分析触摸屏数据int flag = 0; //记录当前获取到的坐标的个数 : 0 --> 无; 1-->横坐标; 2-->横纵坐标struct input_event xy;while(1) //触摸屏坐标范围: 1024 * 600 LCD : 800*480{read(fd, &xy, sizeof(xy)); //如果触摸屏文件中没有数据-->程序在此阻塞!if(xy.type == EV_ABS && xy.code == ABS_X && flag == 0){flag = 1;ts_x = xy.value *800/1024; //对获取的坐标进行等比例换算}if(xy.type == EV_ABS && xy.code == ABS_Y && flag == 1){flag = 2;ts_y = xy.value *480/600;} if(flag == 2){flag = 0;break;}}//3, 关闭触摸屏文件close(fd);
}
获取触摸屏点击坐标和滑屏判断函数相关推荐
- 欢乐鼠标自动点击器_使用ESP32 DIY蓝牙自动点击器,滑屏器
前言 因为爱薅羊毛,然后正好最近免费车一趟接一趟,咪咕开完,京东开,京东开完掌阅开,下一个不知道是谁,,,,可我又不是什么很有耐心的人,虽然我喜欢看书,但是如果规定时间,加上页数限制我就很烦,所以我还 ...
- js获取鼠标点击坐标
转载自:http://www.cnblogs.com/dolphinX/archive/2012/10/09/2717119.html 在一些DOM操作中我们经常会跟元素的位置打交道,鼠标交互式一个经 ...
- Java 获取鼠标点击坐标
Java 窗体的使用,获取鼠标右键点击的坐标,其中使用了匿名内部类 import java.awt.FlowLayout; import java.awt.event.MouseAdapter; im ...
- 使用adb指令获取手机点击坐标
首先,进入adb shell模式: adb shell 输入getevent监听手机事件 getevent 然后就可以点击手机了,点完后,打印控制台会有类似以下的信息: 其中以003 0035和003 ...
- linux触摸屏信息,如何使用Linux获取触摸屏原始数据的坐标
拥有3m的microtouch显示器.它通过USB连接到我的debian系统,并重新识别为人机界面(hid).我正在尝试访问和推送实时信息-如果被触摸,我想知道(x,y)的位置,并将其通过netcat ...
- Swiper4.0:H5手机端滑屏判断当前页Index并且触发动画(slideChangeTransitionEnd与swiper.activeIndex)
API: https://www.swiper.com.cn/api/event/92.html var mySwiper = new Swiper('.swiper-container', {dir ...
- Appium基础篇14-上下左右滑屏操作swipe方法
本篇来学习webdriver.py下一个滑屏操作,这个方法叫swipe,这个方法只是手机端appium的方法,不是selenium3的方法.在介绍滑屏操作之前,你需要了解如何得到屏幕的高和宽,因为每个 ...
- Unity 获取鼠标点击转换世界坐标
/// <summary> /// 获取鼠标点击坐标 /// </summary> Vector3 screenPosition;//将物体从世界坐标转换为屏幕坐标 Vecto ...
- opengl中如何确定鼠标的点击坐标在一个圆柱体范围之内?
在OpenGL中确定鼠标点击坐标在圆柱体范围内的方法有多种.一种常用的方法是使用投影和反投影矩阵.首先,你需要在渲染圆柱体之前设置投影矩阵,然后在鼠标点击事件中获取当前点击坐标.接下来,使用反投影矩阵 ...
最新文章
- 高性能服务器开发之C++定时器
- 他是我们内心世界的一员 (见信息时报2011年7月10日)
- 我们是如何通过全球第一免费开源ERP Odoo做到项目100%交付
- boost库学习入门篇
- 你搞清楚「NULL」、「0」、「'0'」、「0」「\0」了吗?
- ext get id js_Ext.getCmp(“id”) 简单应用 | 学步园
- tomcat 在WIN10 上运行出现500错误的解决方法
- request.getParameterMap()使用
- Java 用POST方式 传对象给 Servlet
- Linux内核虚拟内存之页表管理
- 关于JAVA输入输出流造成的Runtime线程阻塞问题【新人笔记】
- 详细vue脚手架安装教程
- JavaWeb之Servlet-注册页面
- Unbuntu ./btest : cannot execute binary file: Exec format error解决方案(CSAPP)
- D - 暴力[百钱百鸡(稍简单)]
- python输出复数去掉括号_从字符串中删除常用词(及其复数形式)的技术
- Python爬虫 - 统计自己读过小说的字数
- 7-13 打印金字塔图案
- android 如何从 3.55mm耳机接口 读取数据,USB Type-C接口详细定义,自制Type-C转3.5mm耳机转接线...
- 【无标题】非专业45岁,目标:Python对表格的识别转换。(1)基础识别