首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试字符设备(鼠标、键盘、触摸屏等)并读取输入数据

调试字符设备(鼠标、键盘、触摸屏等)并读取输入数据
EN

Unix & Linux用户
提问于 2021-06-16 11:57:44
回答 1查看 464关注 0票数 1

我正在工作的一个项目,我有一个红外线多点触控框架连接到PC通过USB电缆,每当一个对象,例如一个手/手指,通过它,它作为一个鼠标。

我想要做的是能够打印出对象经过的坐标。我在想,如果我能理解设备如何与PC通信,那么我就可以编写一些程序(如果可能的话),以x和y值的形式打印出坐标。我读过这些类型的设备也被称为字符设备,我想知道是否有一种方法来调试它们并读取它发送给计算机的输入(假设它们发送关于我的手经过的x和y坐标以及鼠标光标移动到那里的方式)。

这不是我的研究领域,因为我是一个计算机工程师,所以我不知道如何开始。任何提示都将不胜感激。提前谢谢..。

以下是lsusb输出:

代码语言:javascript
复制
mohammedaabdu@Mohammed-HP-Pavilion-Gaming-Notebook:~$ lsusb -D /dev/bus/usb/001/008
Device: ID 1870:010d Nexio Co., Ltd 
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1870 Nexio Co., Ltd
  idProduct          0x010d 
  bcdDevice            5.a1
  iManufacturer           1 
  iProduct                2 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0029
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     736
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1

下面是dmesg输出:

代码语言:javascript
复制
[ 7907.643318] usb 1-1: new full-speed USB device number 5 using xhci_hcd
[ 7907.792675] usb 1-1: New USB device found, idVendor=1870, idProduct=010d, bcdDevice= 5.a1
[ 7907.792681] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 7907.792684] usb 1-1: Product: Nexio HID Multi-Touch ATI0320-10
[ 7907.792687] usb 1-1: Manufacturer: Nexio Touch Device (HS)
[ 7907.798615] input: Nexio Touch Device (HS) Nexio HID Multi-Touch ATI0320-10 Touchscreen as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/0003:1870:010D.0002/input/input22
[ 7907.855645] input: Nexio Touch Device (HS) Nexio HID Multi-Touch ATI0320-10 Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/0003:1870:010D.0002/input/input23
[ 7907.856502] input: Nexio Touch Device (HS) Nexio HID Multi-Touch ATI0320-10 as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/0003:1870:010D.0002/input/input24
[ 7907.857637] hid-generic 0003:1870:010D.0002: input,hiddev1,hidraw1: USB HID v1.11 Mouse [Nexio Touch Device (HS) Nexio HID Multi-Touch ATI0320-10] on usb-0000:00:14.0-1/input0
[ 7908.181472] input: Nexio Touch Device (HS) Nexio HID Multi-Touch ATI0320-10 as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/0003:1870:010D.0002/input/input26
[ 7908.182031] input: Nexio Touch Device (HS) Nexio HID Multi-Touch ATI0320-10 as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/0003:1870:010D.0002/input/input28
[ 7908.182632] hid-multitouch 0003:1870:010D.0002: input,hiddev1,hidraw1: USB HID v1.11 Mouse [Nexio Touch Device (HS) Nexio HID Multi-Touch ATI0320-10] on usb-0000:00:14.0-1/input0
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-06-16 12:37:29

如果它的行为已经像鼠标一样,您可以直接从鼠标事件中获取坐标。

有很多方法可以做到这一点。例如,带有库python-libinput的python程序。

xev还将向您展示这些事件。

或者,作为根,evtest,它将打印从/dev/ìnput/eventX中读取的人类可读的版本。

一些硬件在系统中显示为多个设备(例如,鼠标和键盘)。

代码语言:javascript
复制
xinput --list

将告诉您您拥有的输入设备(如果您不确定哪个设备是正确的,您可以拔掉它并回复它以查看不同之处)。

在这些情况下,您将不是访问原始数据,而是访问原始事件。

这应该能让你开始。关于libinput的文档有很多。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/654498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档