一、获取/dev/input/event16设备的vid和pid

testhid.c

  1. #include <linux/types.h>
  2. #include <linux/input.h>
  3. #include <linux/hidraw.h>
  4. #include <sys/ioctl.h>
  5. #include <sys/types.h>
  6. #include <sys/stat.h>
  7. #include <fcntl.h>
  8. #include <unistd.h>
  9. #include <poll.h>
  10. #include <time.h>
  11. #include <math.h>
  12. #include <stdio.h>
  13. #include <stdint.h>
  14. #include <string.h>
  15. #include <stdlib.h>
  16. #include <errno.h>
  17. int main(){
  18. char filename[64];
  19. strcpy(filename,"/dev/input/event16");
  20. char name[80];
  21. int fd = open(filename, O_RDWR /*| O_NONBLOCK*/);
  22. if(fd <= 0) {
  23. printf("TK----------->>>>open error\n");
  24. return -1;
  25. }
  26. /////////
  27. struct input_id inputId;
  28. int rc = ioctl(fd, EVIOCGID, &inputId);
  29. printf("TK-------->>>>info.vendor is 0x%x\n",inputId.vendor);
  30. printf("TK-------->>>>info.product is 0x%x\n",inputId.product);
  31. printf("TK-------->>>>info.bustype is 0x%x\n",inputId.bustype);
  32. /*
  33. struct hidraw_devinfo info;
  34. int rc = ioctl(fd, HIDIOCGRAWINFO, &info);
  35. printf("TK-------->>>>info.vendor is 0x%x\n",info.vendor);
  36. printf("TK-------->>>>info.product is 0x%x\n",info.product);
  37. printf("TK-------->>>>info.bustype is 0x%x\n",info.bustype);
  38. */
  39. ///////////
  40. struct hidraw_report_descriptor descriptor;
  41. rc = ioctl(fd, HIDIOCGRDESC, &descriptor);
  42. printf("TK-------->>>>descriptor.size is 0x%04x\n",descriptor.size);
  43. //////
  44. int descriptorSize=0;
  45. rc = ioctl(fd, HIDIOCGRDESCSIZE, &descriptorSize);
  46. printf("TK-------->>>>descriptorSize is 0x%04x\n",descriptorSize);
  47. //////
  48. name[sizeof(name) - 1] = '\0';
  49. if(ioctl(fd, EVIOCGNAME(sizeof(name) - 1), &name) < 1) {
  50. name[0] = '\0';
  51. }
  52. printf("TK------->>>name is %s\n",name);
  53. //////
  54. close(fd);
  55. return 0;
  56. }

二、编译

Android.mk

  1. LOCAL_PATH:= $(call my-dir)
  2. include $(CLEAR_VARS)
  3. LOCAL_SRC_FILES:= \
  4. testhid.c
  5. LOCAL_SHARED_LIBRARIES := \
  6. libutils
  7. LOCAL_MODULE:= testinput
  8. LOCAL_MODULE_TAGS := optional
  9. include $(BUILD_EXECUTABLE)

三、运行

    1. TK-------->>>>info.vendor is 0x0
    2. TK-------->>>>info.product is 0x1
    3. TK-------->>>>info.bustype is 0x19
    4. TK-------->>>>descriptor.size is 0x0000
    5. TK-------->>>>descriptorSize is 0x0000
    6. TK------->>>name is Power Button

获取输入设备的vid和pid的更多相关文章

  1. 通过串口设备vid,pid自动获得该设备所对应的串口号

    用C#做串口通讯很方便,因为dotfx2.0已经集成了Serial Port控件,此控件使用上比MSComm控件更简单,当然它也有一个小bug (RecievedBytesThreshold设置有时候 ...

  2. 重新想象 Windows 8 Store Apps (49) - 输入: 获取输入设备信息, 虚拟键盘, Tab 导航, Pointer, Tap, Drag, Drop

    [源码下载] 重新想象 Windows 8 Store Apps (49) - 输入: 获取输入设备信息, 虚拟键盘, Tab 导航, Pointer, Tap, Drag, Drop 作者:weba ...

  3. USB的VID和PID,以及分类(Class,SubClass,Protocol)

    USB(Universal Serial BUS,通用串行总线)协议规定,所有的USB设备都有VID(Vendor ID,供应商识别码)和PID(Product ID,产品识别码).VID由供应商向U ...

  4. 去确认CP210x UART Bridge的USB的VID和PID

    [背景] 之前买的USB口的HART猫: [记录]为USB接口的HART猫ExSaf ESH232U安装对应的USB转RS232驱动 其中内部是USB转RS232. 然后打算去看看之前的自己此处的某个 ...

  5. 浅谈USB设备的VID和PID

    根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备,VID和PID都是两个字节长,其中,供应商ID(VID)由供应商向U ...

  6. (转)USB的VID和PID,以及分类(Class,SubClass,Protocol)

    USB的VID和PID,以及分类(Class,SubClass,Protocol) 原文地址:http://blog.csdn.net/gaojinshan/article/details/78783 ...

  7. VID和PID

    今天很在一份datasheet上突然看到 VID 和 PID 很奇怪!!还不是很懂!!! 参考:https://blog.csdn.net/gaojinshan/article/details/787 ...

  8. Linux下查看USB设备的VID、PID命令

    Linux下查看PID命令 cat /proc/bus/usb/devices 或 lsusb 方法一:在/etc/init.d/rcS中添加mount -t usbfs none /proc/bus ...

  9. 获取服务进程server.exe的pid(0号崩溃)

    #include "stdafx.h" #include <windows.h> #include <iostream> #include <COMD ...

随机推荐

  1. Ninja:Java全栈Web开发框架-Ninja中文网

    相信不少业界人士都还停留在SSh的时代 其实我想给大家推荐的一个轻量级框架那就是Ninja; Ninja是一个Java全栈Web开发框架,稳定.快速.非常高效. 商业价值 在你的下一个项目中,Ninj ...

  2. 编写高质量iOS代码的52个有效方法1-1

    一.使用向前声明(@class)的好处 1.有效减少编译器编译的时间: 2.有效避免循环引用: 二.字面量语法的好处 1.字面常量 精简.可用于所有数据类型,如: NSNumber *intNumbe ...

  3. 回车事件jquery

    有时候,操作按钮需要回车键 直接上代码: //回车事件document.onkeydown = function (e) { var ev = document.all ? window.event ...

  4. Linux中kettle启动spoon.sh遇到的问题

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAccAAAAYCAIAAAAAgaGrAAAE1klEQVR4nO1b2ZWrMAylLgpyPa7Gzb

  5. digitalocean注册验证账户、激活账号教程

    注册digitalocean账号很简单,使用优惠链接注册digitalocean还能赠送10美元余额,digitalocean vps是优秀的SSD VPS,最便宜的套餐只要5美元/月. 由于中国大陆 ...

  6. Gentoo挂载ntfs的NTFS分区

    内核需要开启的选项 File systems ---> <*> FUSE (Filesystem in Userspace) support 使用NTFS-3G NTFS-3G是一个 ...

  7. aforge之hough

    /// <summary> /// 参数不能是一位索引 /// </summary> /// <param name="bmp"></pa ...

  8. 【Machine Learning in Action --4】朴素贝叶斯过滤网站的恶意留言

    背景:以在线社区的留言板为例,为了不影响社区的发展,我们需要屏蔽侮辱性的言论,所以要构建一个快速过滤器,如果某条留言使用了负面或者侮辱性的语言,那么就将该留言标识为内容不当.过滤这类内容是一个很常见的 ...

  9. asp.net URL DES加密 什在URL中的使用

    DES 加密 有时会有 + = 这些特殊字符串 Server.UrlDecode(Request["UserName"]) //能解决  = 号,但是 +号会变成空格 HttpUt ...

  10. Base64技术:把对象转变成字符串

    需求:在安卓移动端和服务器进行数据交互的时候,有些时候需要上传,下载文件.如果所有的参数都变成字符串,会更加方便. 原理:Base64只是把byte[]数组进行了编码,然后再解码的过程,文档内容无法直 ...