linux应用层获取鼠标坐标

Linux下输入子系统上报触摸屏坐标 Linux 中,输入子系统是由输入子系统设备驱动层、输入子系统核心层(Input Core)和输入子系统事件处理层(Event Handler)组成。 阅读详情
linux应用层获取鼠标坐标
2011-01-13 22:46

补充:在这个函数中要打开一个鼠标设备,但是在嵌入式的文件系统中没有这个设备节点,
鼠标设备的主设备号和次设备号有是如何确定的呢?
在  linux 系统中,鼠标和键盘的设备号都是固定的,可以在 PC 上查看,再在嵌入式的文件系统中自己建立。

qu@ubuntu:/tmp$ ls -l /dev/input/
total 0
drwxr-xr-x 2 root root     120 2008-11-06 08:49 by-path
crw-rw---- 1 root root 13,  64 2008-11-06 08:49 event0
crw-rw---- 1 root root 13,  65 2008-11-06 08:49 event1
crw-rw---- 1 root root 13,  66 2008-11-06 08:49 event2
crw-rw---- 1 root root 13,  67 2008-11-06 08:49 event3
crw-rw---- 1 root root 13,  68 2008-11-06 08:48 event4
crw-rw---- 1 root root 13,  69 2008-11-06 08:48 event5
crw-rw---- 1 root root 13,  70 2008-11-06 08:48 event6
crw-rw---- 1 root root 13,  63 2008-11-06 16:48 mice
crw-rw---- 1 root root 13,  32 2008-11-06 16:48 mouse0
crw-rw---- 1 root root 13,  33 2008-11-06 08:49 mouse1
crw-rw---- 1 root root 13, 128 2008-11-06 08:49 ts0
crw-rw---- 1 root root 13, 129 2008-11-06 08:49 ts1

鼠标设备一般为  mice  设备,主设备号为  13, 次设备号为  63。
键盘设备一般为  event 设备,主设备号为 13, 次设备号为 64 ~ 70。

#include <stdio.h>
#include <linux/input.h>
#include <fcntl.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/stat.h>



int main(int argc,char **argv)
{
    int fd, retval;
    char buf[6];
    fd_set readfds;
    struct timeval tv;

    //fd = open("/dev/input/mice", O_RDONLY);
    if(( fd = open("/dev/input/mice", O_RDONLY))<0)
    {
        printf("Failed to open /"/dev/input/mice/"./n");
        exit(1);
    }
    else
    {
        printf("open /"/dev/input/mice/" successfuly./n");
    }

    while(1)
    {
        tv.tv_sec = 5;
        tv.tv_usec = 0;

        FD_ZERO(&readfds);
        FD_SET(fd, &readfds);

        retval = select(fd+1, &readfds, NULL, NULL, &tv);
        if(retval==0)
            printf("Time out!/n");
        if(FD_ISSET(fd,&readfds))
        {
            if(read(fd, buf, 6) <= 0)//终端设备,一次只能读取一行
            {
                continue;
            }
            printf("Button type = %d, X = %d, Y = %d, Z = %d/n", (buf[0] & 0x07), buf[1], buf[2],   buf[3]);
        }
    }
    close(fd);
    return 0;
}

ContextCapture导入点云进行重建 阅读详情

相关推荐

Linux平台下获取鼠标坐标应用层编程指南

Linux平台上,如果你需要开发一个应用程序来获取鼠标坐标信息,你可以使用X11库来实现这个功能。X11是一个广泛用于Linux系统的窗口系统协议,它提供了访问图形界面元素的接口。首先,你需要在系统中安装X11开发库。在大多数Linux发行版上,你可以使用包管理工具来安装它。一旦安装了X11开发库,你就可以使用C或C++编程语言来编写程序。希望这篇文章能帮助你在Linux平台上开发应用程序来获取鼠标坐标信息。请注意,上述示例程序只是演示了基本的鼠标坐标获取功能。来获取鼠标坐标信息。

CyberLynxX的博客 537

Linux之解析鼠标input事件数据

Linux中USB鼠标驱动:http://blog.csdn.net/qq_21792169/article/details/48790745 或者直接Linux自带的USB鼠标驱动。 /*        * 向输入子系统汇报鼠标事件情况,以便作出反应。        * data 数组的第0个字节:bit 0、1、2、3、4分别代表左、右、中、SIDE、EXTRA键的按下情况;

Herok 2万+

「HTML和CSS入门指南」hr 标签详解

标签是 HTML5 中用于插入水平分割线的标签,常用于在页面中添加分隔线或者段落之间的分割线。通过灵活运用 标签和属性,我们可以帮助用户更好地理解页面内容,同时也可以美化和装饰页面。在实际应用中需要注意避免过度使用 标签,以使页面看起来简洁明了。

a451319296的博客 7627

Linux获取鼠标当前坐标,如何在bash中获取当前的鼠标坐标

为了避免所有的sed / awk / cut的东西,你可以使用xdotool getmouselocation --shell尤其是,eval $(xdotool getmouselocation --shell)将位置置于shell变量X,Y和SCREEN中.之后,echo $X $Y将给一个片段准备好以后的xdotool mousemove或任何其他用途.我的额外的顺序点击几个位置是一个文件p...

weixin_36478866的博客 1150

linux怎么获取鼠标位置,如何在Linux中读取低级鼠标单击位置。

我正在使用此代码从linux中的dev / input / event *读取鼠标事件。#include #include #include #include #include #define MOUSEFILE "/dev/input/event4"int main(){int fd;struct input_event ie;if((fd = open(MOUSEFILE, O_RDONLY)...

weixin_32048835的博客 1724

linux如何使用鼠标数据的,请问linux中如何快速获得鼠标数据(主要是鼠标位置坐标)...

现在只找到一种方法,就是读/dev/input/mouse文件,但是发现速度巨慢,而且鼠标偏移大于100的时候字节就会溢出不知道各位都是通过什么方法获取的系统:debian,最好不要启动图形界面,实在不行才考虑。。。希望详细点,本人linux接触不多|可以用gpm库,给你一个例子,编译方法:gcc-otesttest.c-lgpm如果没找到gpm.h,你可能需要安装gpm-devel的r...

weixin_35592186的博客 341

linux高级应用(四)通过触摸屏获取坐标

一、在Linux中,一个进程stack大小的限制 1、stack中存放的是什么内容 stack是一个动态的内存区,程序运行的时候,才会有stack内存区。stack有出栈和入栈的概念。 主要内存: 局部变量(静态局部变量除外–static)、函数的参数、函数的返回值、函数的返回地址、函数调用的时候需要保存的寄存器。 int lcd_show_bmp(char bmp_name) { int fd_bmp,fd_lcd; char bmp_buf[8004803];//RGB int lcd_buf[8004

人生当苦无妨 3918

linux应用层读写event,Linux应用层获取鼠标坐标

补充:在这个函数中要打开一个鼠标设备,但是在嵌入式的文件系统中没有这个设备节点,鼠标设备的主设备号和次设备号有是如何确定的呢?在 linux 系统中,鼠标和键盘的设备号都是固定的,可以在 PC 上查看,再在嵌入式的文件系统中自己建立。linuxidc.com@Ubuntu:/tmp$ ls -l /dev/input/total 0drwxr-xr-x 2 root root 120 2...

weixin_39960700的博客 553

linux 基于QT的C++模拟鼠标按键程序

xdotool是linux下类似"按键精灵"的工具,在一些自动测试中经常用到。qt程序调用该该工具获取鼠标位置,并进行按键点击。

qq_17169835的博客 1862

imx6ull开发板,Linux-c编程,识别 键盘、鼠标、触摸屏坐标

确认 键盘、开发板、触摸屏 对应的 /dev/input/eventX。开发板的gpio按键。

2301_79809746的博客 171

Linux输入设备应用编程

关于触摸屏数据的分析就给大家介绍这么多,不管是键盘也好、或者是鼠标、触摸屏,都可以像上面那样将输入设备的数据直接打印出来,然后自己再去分析,确定该输入设备上报事件的规则和流程,把这些弄懂之后再去编写程序验证结果。在 for 循环中,调用 read()读取输入设备上报的数据,当按键按下或松开(以及长按)动作发生时,read()会读取到输入设备上报的数据,首先判断此次上报的事件是否是按键类事件(EV_KEY),如果是按键类事件、接着根据 value 值来判断按键当前的状态是松开、按下还是长按。

qq_28576837的博客 1233

嵌入式linux应用层读取触摸屏坐标简单示例

嵌入式linux应用层读取触摸屏简单示例 linux下面触摸屏读取方法就是读取/dev/input/event*事件 1、检查event编号 hexdump /dev/input/event1 按触摸屏会输出信息的就是触摸屏对应文件 000b9b0 0003 0032 0017 0000 1b59 0000 0000 0000 000b9c0 09f2 000e 0000 0000 0003 0039 0000 0000 000b9d0 1b59 0000 0000 0000 09f2 000e 0000

锅锅的博客 4053

Linux 应用层开发入门(二十)| 获取输入系统设备数据

本文介绍了如何通过Linux输入子系统获取输入设备的基本信息和事件类型。主要内容包括:1. 使用ioctl的EVIOCGID命令获取设备ID信息(总线类型、厂商ID、产品ID等);2. 通过EVIOCGBIT命令获取设备支持的事件类型位图;3. 详细解析了位图机制,展示了如何遍历位图判断设备支持的事件类型(如EV_KEY、EV_REL等);4. 提供了完整的示例程序,包含设备打开、信息获取和位图解析的全过程。该程序可帮助开发者识别输入设备类型(如USB鼠标、键盘等),理解Linux输入子系统的工作原理。

嵌入式小程同学的博客 835

Qt模拟鼠标点击:应用层与系统层实现详解与实战

在桌面应用开发中,事件模拟是实现自动化测试、远程控制等功能的基石。其核心原理是通过程序化生成输入事件,替代真实用户操作。从技术实现层面,主要分为应用层模拟和系统层模拟两种路径。应用层模拟基于框架自身的事件系统,通过构造并派发事件对象(如Qt的QMouseEvent)来触发目标控件的响应,具有跨平台、精准安全的优势,但作用域限于应用内部。系统层模拟则调用操作系统原生API(如Windows的SendInput),直接向系统输入流注入事件,能够实现全局范围的模拟,但涉及平台相关代码和焦点管理等复杂问题。这两种方

weixin_34323858的博客 364

关于linux捕捉鼠标事件的方法

data[1]、data[2]代表x与y的相对坐标,即本次鼠标移动与上次鼠标移动了多少坐标,向左则x为负,向下则y为负。如果事件的类型代码是EV_ REL,value的正数值和负数值分别代表两个不同方向的值。linux的设备都以文件形式存放,要读取鼠标,有两种方法,一种是通过/dev/input/mice,一种是通过/dev/input/eventx (x是标号,0,1,2..... 具体的进这个文件夹查看)。这里我的鼠标不支持读取相对坐标,因此鼠标只读取绝对坐标,注意滚轮事件属于相对事件。

xingyekm的博客 1759

linux/ubuntu系统python模拟鼠标移动/按键/获取鼠标位置

以python3为例: 1.pip3 install pymouse ,安装pymouse 2. sudo apt-get install python-xlib, pymouse必须要xlib的支持。 3. mouse.py -------------------------- from pymouse import PyMouse m = PyMouse() m.positio...

qq_33635100的博客 2601

arm shell 获取本地键盘输入值_嵌入式linux下如何使用usb键盘和鼠标

如何测试Linux下的USB鼠标可用,usb mouse ,/dev/input/event1一句话:cat /dev/input/event1 | hexdump移动鼠标,然后终端就打印出你的鼠标坐标了。首先usb键盘驱动的源代码位于一下目录:drivers/usb/input/usbkbd.c将usb键盘驱动编译进内核:#make menuconfigDevice Drivers--->...

weixin_35089515的博客 852

linux嵌入式arm基础笔记3之触摸屏原理与输入子系统

==================== 输入子系统================= 触摸屏原理 从技术原理角度讲,触摸屏是一套透明的绝对定位系统,因此他必须具备三个特性: 第一是透明性能:透明材质的好坏会直接影响到触摸屏的视觉效果,主要体现在屏幕的反光性和清晰度。 第二是绝对坐标系统:我们传统的鼠标是一种相对的定位系统,定位只参照前一次的鼠标位置的坐标,而触摸屏需要选哪里就指哪里,这是一种绝对...

qasxc78563的博客 1076

嵌入式Linux入门-输入系统应用编程(鼠标、键盘、触摸屏)

Linux系统下,我们如何编写程序获得鼠标的位置?键盘的哪一个按键被按下了?触摸屏的哪个位置被触摸了?学过单片机的都知道,这些本质上都是一些信号,由驱动程序解析,但我们讲的是应用编程,也就是说从驱动程序中直接获取我们需要的。那么必然就需要一套规范的接口,不然每个人写的都不一样,做个应用,还得阅读驱动源码,就离谱了。

闪耀大叔的博客 3478

tsmc18rf工艺包(免安装OA格式)

主页有教程:放到工作目录下,使用解压命令:tar -zxvf tsmc18rf.tar.gz不需要转换,直接添加库就可以使用工艺包配置项:1 - TSMC 0.18um 1.8v/3.3v 1P6M MM/RF PDK

上一篇: 提问的智慧
下一篇: makefile解释及模板
hollyhock13
博客等级 码龄20年 38粉丝 39原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值