在做HID相关的产品是,我们经常要看看输出是否正确,这时就需要一些小工具,这些小工具可以自己开发,也可以从网上找些已经做好的,下面介绍几款工具,

1. PassMark KeyboardTest

这是Windows下的一款测试小工具,小巧简单实用,是Windows下面测试的好助手,有一个月的免费试用期。

2. evtest

Linux下面的测试工具,可以使用 “apt-get install evtest”安装。

需要su权限执行,可以选择监听那个“/dev/input/eventXX”。

(注意:直接使用“cat /dev/input/eventXX”会产生一堆乱码)

3. showkey

Linux下面的测试工具,ubuntu好些不需要安装可以直接使用,命令“showkey -a”显示输入的字符。

4. hcidump

这是一款Linux下的工具,可以使用命令“apt-get install bluez-hcidump”安装,其功能和命令十分丰富,

打开help文档,可以看到有如下功能,

# hcidump --help

Usage: hcidump [OPTION...] [filter]

-i, --device=hci_dev HCI device

-l, --snap-len=len Snap len (in bytes)

-p, --psm=psm Default PSM

-m, --manufacturer=compid Default manufacturer

-w, --save-dump=file Save dump to a file

-r, --read-dump=file Read dump from a file

-d, --wait-dump=host Wait on a host and send

-t, --ts Display time stamps

-a, --ascii Dump data in ascii

-x, --hex Dump data in hex

-X, --ext Dump data in hex and ascii

-R, --raw Dump raw data

-C, --cmtp=psm PSM for CMTP

-H, --hcrp=psm PSM for HCRP

-O, --obex=port Channel/PSM for OBEX

-P, --ppp=channel Channel for PPP

-S, --sap=channel Channel for SAP

-D, --pppdump=file Extract PPP traffic

-A, --audio=file Extract SCO audio data

-Y, --novendor No vendor commands or events

-4, --ipv4 Use IPv4 as transport

-6 --ipv6 Use IPv6 as transport

-h, --help Give this help list

-v, --version Give version information

--usage Give a short usage message举例来说其强大的功能,Bluetooth HID输入“12345”,选择既输出ASCII又输出hex,结果如下,

# hcidump -X

HCI sniffer - Bluetooth packet analyzer ver 2.5

device: hci0 snap_len: 1500 filter: 0xffffffffffffffff

> ACL data: handle 21 flags 0x02 dlen 14

L2CAP(d): cid 0x0041 len 10 [psm 0]

0000: a1 01 00 00 1e 00 00 00 00 00 ..........

1> ACL data: handle 21 flags 0x02 dlen 14

L2CAP(d): cid 0x0041 len 10 [psm 0]

0000: a1 01 00 00 1f 00 00 00 00 00 ..........

> ACL data: handle 21 flags 0x02 dlen 14

L2CAP(d): cid 0x0041 len 10 [psm 0]

0000: a1 01 00 00 20 00 00 00 00 00 .... .....

23> ACL data: handle 21 flags 0x02 dlen 14

L2CAP(d): cid 0x0041 len 10 [psm 0]

0000: a1 01 00 00 21 00 00 00 00 00 ....!.....

> ACL data: handle 21 flags 0x02 dlen 14

L2CAP(d): cid 0x0041 len 10 [psm 0]

0000: a1 01 00 00 22 00 00 00 00 00 ....".....

45> ACL data: handle 21 flags 0x02 dlen 14

L2CAP(d): cid 0x0041 len 10 [psm 0]

0000: a1 01 00 00 00 00 00 00 00 00 ..........Bluetooth HID输入“12345”,选择输出raw data,结果如下,

从结果上看,输出6行,前5行是输出“Press Key”事件(12345),最后一个是“release key”事件。

正常而言,一般是 按下(press)一个Key后,马上松开(release);不过这会造成传输效率低下,所以这里是只传输按下(press) key的事件,最后才传输一个松开(release) key的事件(我们称之为Fast HID)。不过,这在一些设备上会出现丢失字符的现象。所以需要修改Bluetooth firemare来设置一个选项Enable/Disable "Fast HID"。

# hcidump -R

HCI sniffer - Bluetooth packet analyzer ver 2.5

device: hci0 snap_len: 1500 filter: 0xffffffffffffffff

> 02 15 20 0E 00 0A 00 41 00 A1 01 00 00 1E 00 00 00 00 00

> 02 15 20 0E 00 0A 00 41 00 A1 01 00 00 1F 00 00 00 00 00

> 02 15 20 0E 00 0A 00 41 00 A1 01 00 00 20 00 00 00 00 00

> 02 15 20 0E 00 0A 00 41 00 A1 01 00 00 21 00 00 00 00 00

> 02 15 20 0E 00 0A 00 41 00 A1 01 00 00 22 00 00 00 00 00

> 02 15 20 0E 00 0A 00 41 00 A1 01 00 00 00 00 00 00 00 00

5.  还有其他Linux节点与此有关,如/dev/hidrawX,没有搞懂里面数据的具体含义;

另外,还有节点/dev/input/eventX,但是没有细细研究。

$ sudo hexdump /dev/hidraw0

0000000 0001 2300 0000 0000 0100 0000 0026 0000

0000010 0000 0001 1f00 0000 0000 0100 0000 001e

0000020 0000 0000 0001 2400 0000 0000 0100 0000

0000030 0020 0000 0000 0001 2100 0000 0000 0100

0000040 0000 0026 0000 0000 0001 2700 0000 0000

0000050 0100 0000 0000 0000 0000 0001 2700 0000

0000060 0000 0100 0000 001e 0000 0000 0001 2500

0000070 0000 0000 0100 0000 0027 0000 0000 0001

filter hid_HID调试工具相关推荐

  1. linux 内核 调试工具介绍

    1 内核调试以及工具总结 内核总是那么捉摸不透, 内核也会犯错, 但是调试却不能像用户空间程序那样, 为此内核开发者为我们提供了一系列的工具和系统来支持内核的调试. 内核的调试, 其本质是内核空间与用 ...

  2. 前端技术-调试工具(上)

    页面制作之调试工具 常用的调试工具有Chrome浏览器的调试工具,火狐浏览器的Firebug插件调试工具,IE的开发人员工具等.它们的功能与使用方法大致相似.Chrome浏览器简洁快速,功能强大这里主 ...

  3. 【学习点滴】linux调试工具、cmake和网络抓包

    目录 gdb 多进程调试 多线程调试: gdb底层原理 Linux下查看服务器端的并发连接个数: Valgrind memcheck strace Linux下,绑定1024以下的端口需要root权限 ...

  4. Logstash:Grok filter 入门

    有效分析和查询送入 Elastic Stack 的数据的能力取决于信息的可读性. 这意味着,当将非结构化数据摄取到系统中时,必须将其转换为结构化数据. 通常,这个至关重要的任务留给 Logstash( ...

  5. python调试工具_您需要在2020年了解的所有python调试工具

    python调试工具 Debugging is an inevitable and often painful process when any programmer developing their ...

  6. js移动端调试控制台_移动端js调试工具:eruda

    通常写前端页面都在Chrome浏览器的开发模式下进行调试,但是写放在移动端的H5页面时,有时候会遇到在Chrome上调试没有问题,但是在手机的浏览器上有问题的情况:或者有些功能只能在特定的容器中才能其 ...

  7. 苹果Instruments性能调试工具概述

    苹果开发工具套件还提供了丰富而强大的性能调试工具和其它开发工具.自Xcode 3.0开始,Apple提供了自己的Profiling Tools--Instruments..[推荐:<苹果开发工具 ...

  8. android_ADB 调试工具总结

    Android ADB 调试工具总结 ADB,即 Android Debug Bridge Android 调试桥 (adb) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备 ...

  9. Windows高级调试 调试工具简介

    第一部分   概      述 第1章   调试工具简介 许多技术性的书籍和文章都指出了在正确的软件设计和软件工程原则中包含的重要性.有些书侧重于介绍在方法与实践之间的均衡性,而有些书则注重对方法的描 ...

最新文章

  1. 在线学位课程_您在四年制计算机科学学位课程中学到的知识
  2. .NET 中 Image 转 Icon
  3. Streaming源码解读之接收流数据的全生命周期
  4. java怎么创建log4_如何使用log4j记录日志
  5. Django 函数和方法的区别
  6. 洛谷 P2704 [NOI2001]炮兵阵地
  7. 自动添加html结束标志,HTML:包含或排除可选的结束标记?
  8. xposed学习四:总结
  9. python界面gui随机生成器_Python 实现的、带GUI界面的词云生成器
  10. scrapy离线调试本地HTML文件
  11. 刷题笔记(1) 一个序列是否为二叉搜索树的遍历结果
  12. JMS介绍与ActiveMQ安装
  13. vs2017+pcl1.8.1配置
  14. Rockchip官方开发板的Android固件下载地址汇总
  15. MySQL 的安装与启动
  16. cad快速选择命令快捷键_CAD快捷键命令:倒角的使用技巧
  17. 2019年-2020年计划
  18. 第17章 国际贸易与资本流动
  19. java实现处理无限层级树形结构
  20. 梯度下降法求解方程的极值

热门文章

  1. python爬虫实战之多线程爬取前程无忧简历
  2. 【循序渐进学Python】Python中的循环(一)——for循环(嵌套)与range函数
  3. speedoffice文档中如何绘制流程图
  4. proteus学习笔记一:点亮LED
  5. continue用法(continue用法总结)
  6. mysql 查询去除小数点_SQL查询金额去掉小数点后面的零
  7. office中为何还要保留Access数据库? 【3500人回复】知乎
  8. Hibernate入门-03
  9. 面向对象,类,属性,方法,创建调用属性方法,有参,无参,变量代码示例
  10. 【软考系统架构设计师】复盘架构设计师真题知识点第八章---Web架构设计