- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Need to reverse engineering bluetooth usb mouse dongle, and use mouse board to measure distance, and plot them with matplotlib
我发现这些工具可以帮助完成此任务:
Linux
<小时/>Windows
Bibliography:
Examples:
lnx#> lsusb -s 2
Bus 005 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 003 Device 002: ID 192f:0716 Avago Technologies, Pte.
Bus 002 Device 002: ID 1bcf:053a Sunplus Innovation Technology Inc. Targa Silvercrest OMC807-C optische Funkmaus
<小时/>
lnx#> sudo lsusb -s 2:4 -v
Bus 002 Device 004: ID 1bcf:053a Sunplus Innovation Technology Inc. Targa Silvercrest OMC807-C optische Funkmaus
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x1bcf Sunplus Innovation Technology Inc.
idProduct 0x053a Targa Silvercrest OMC807-C optische Funkmaus
bcdDevice a0.31
iManufacturer 0
iProduct 2 2.4GHz 2way RF Receiver
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 46mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.00
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 179
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 0x0008 1x 8 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)
<小时/>
lnx#> lsusb -t
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 2: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 2: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 2: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 1: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 2, Class=Human Interface Device, Driver=usbhid, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M
|__ Port 3: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 4, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 3: Dev 4, If 3, Class=Audio, Driver=snd-usb-audio, 480M
<小时/>
lnx#> sudo usbmon -f0
ffff8800764640c0 4022916298 C Ii:003:01 0 8 = 00000000 00000000
ffff8800764640c0 4022916321 S Ii:003:01 -115 8 <
ffff880076464a80 4025994204 C Ii:004:01 0 6 = 0100ff00 0000
ffff880076464a80 4025994229 S Ii:004:01 -115 7 <
ffff880076464a80 4026010207 C Ii:004:01 0 6 = 0100ff00 0000
ffff880076464a80 4026010238 S Ii:004:01 -115 7 <
ffff880076464a80 4026018204 C Ii:004:01 0 6 = 0100ff00 0000
ffff880076464a80 4026018225 S Ii:004:01 -115 7 <
ffff880076464a80 4026026199 C Ii:004:01 0 6 = 0100ff00 0000
<小时/>
lnx#> sudo usbhid-dump -s 2:4
002:004:001:DESCRIPTOR 1393614919.941888
05 01 09 02 A1 01 85 01 05 09 19 01 29 08 15 00
25 01 95 08 75 01 81 02 05 01 09 01 A1 00 09 30
09 31 09 38 15 81 25 7F 75 08 95 03 81 06 05 0C
0A 38 02 95 01 81 06 C0 06 00 FF 09 01 15 00 26
FF 00 75 08 95 07 B1 02 C0 06 F3 F1 0A F3 F1 A1
01 85 02 09 00 95 01 75 08 15 00 26 FF 00 81 02
C0 05 0C 09 01 A1 01 85 03 15 00 26 FF 03 19 00
2A FF 03 75 10 95 03 81 00 C0 05 01 09 80 A1 01
85 04 05 01 19 81 29 83 15 00 25 01 95 03 75 01
81 06 95 01 75 05 81 01 C0 06 BC FF 09 88 A1 01
85 05 19 00 2A FF 00 15 00 26 FF 00 75 08 95 01
81 00 C0
<小时/>
lnx#> sudo usbhid-dump -s 2:4 | tail -n +2 | xxd -r -p | hidrd-convert -o spec
Usage Page (Desktop), ; Generic desktop controls (01h)
Usage (Mouse), ; Mouse (02h, application collection)
Collection (Application),
Report ID (1),
Usage Page (Button), ; Button (09h)
Usage Minimum (01h),
Usage Maximum (08h),
Logical Minimum (0),
Logical Maximum (1),
Report Count (8),
Report Size (1),
Input (Variable),
Usage Page (Desktop), ; Generic desktop controls (01h)
Usage (Pointer), ; Pointer (01h, physical collection)
Collection (Physical),
Usage (X), ; X (30h, dynamic value)
Usage (Y), ; Y (31h, dynamic value)
Usage (Wheel), ; Wheel (38h, dynamic value)
Logical Minimum (-127),
Logical Maximum (127),
Report Size (8),
Report Count (3),
Input (Variable, Relative),
Usage Page (Consumer), ; Consumer (0Ch)
Usage (AC Pan), ; AC pan (0238h, linear control)
Report Count (1),
Input (Variable, Relative),
End Collection,
Usage Page (FF00h), ; FF00h, vendor-defined
Usage (01h),
Logical Minimum (0),
Logical Maximum (255),
Report Size (8),
Report Count (7),
Feature (Variable),
End Collection,
Usage Page (F1F3h), ; F1F3h, reserved
Usage (F1F3h),
Collection (Application),
Report ID (2),
Usage (00h),
Report Count (1),
Report Size (8),
Logical Minimum (0),
Logical Maximum (255),
Input (Variable),
End Collection,
Usage Page (Consumer), ; Consumer (0Ch)
Usage (Consumer Control), ; Consumer control (01h, application collection)
Collection (Application),
Report ID (3),
Logical Minimum (0),
Logical Maximum (1023),
Usage Minimum (00h),
Usage Maximum (03FFh),
Report Size (16),
Report Count (3),
Input,
End Collection,
Usage Page (Desktop), ; Generic desktop controls (01h)
Usage (Sys Control), ; System control (80h, application collection)
Collection (Application),
Report ID (4),
Usage Page (Desktop), ; Generic desktop controls (01h)
Usage Minimum (Sys Power Down), ; System power down (81h, one-shot control)
Usage Maximum (Sys Wake Up), ; System wake up (83h, one-shot control)
Logical Minimum (0),
Logical Maximum (1),
Report Count (3),
Report Size (1),
Input (Variable, Relative),
Report Count (1),
Report Size (5),
Input (Constant),
End Collection,
Usage Page (FFBCh), ; FFBCh, vendor-defined
Usage (88h),
Collection (Application),
Report ID (5),
Usage Minimum (00h),
Usage Maximum (FFh),
Logical Minimum (0),
Logical Maximum (255),
Report Size (8),
Report Count (1),
Input,
End Collection
<小时/>
lnx#> sudo usbhid-dump -s 2:4 -es
Starting dumping interrupt transfer stream
with 1 minute timeout.
002:004:001:STREAM 1393615361.032412
01 00 01 FF 00 00
002:004:001:STREAM 1393615361.392401
01 00 FF 00 00 00
002:004:001:STREAM 1393615361.400380
01 00 FC 02 00 00
002:004:001:STREAM 1393615361.424382
01 00 FF 01 00 00
002:004:001:STREAM 1393615361.432377
01 00 FE 00 00 00
002:004:001:STREAM 1393615361.440378
01 00 FF 01 00 00
002:004:001:STREAM 1393615361.592374
01 00 FF 00 00 00
002:004:001:STREAM 1393615361.608392
01 00 FF 00 00 00
002:004:001:STREAM 1393615361.616373
01 00 FF 00 00 00
最佳答案
我使用以下代码成功读取了鼠标: orangecoat
关于bluetooth - 如何对 USB/HID/蓝牙适配器进行逆向工程。使用什么工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22104252/
我在一本名为 "USB in a NutShell" 的相当棒的书中找到了中断传输提供可靠的传输(通过错误检测和自动重试)。 但我想知道,这能保证有一天不会按顺序交换转移吗?至于总线是串行的,我的猜测
USB 2.0 specifies 4 种传输类型(在第 5.4 节传输类型中): 控制转移 同步传输 中断传输 批量转账 第 5.8 节说批量传输提供: Access to the USB on a
在我正在研究的 SoC 中,有 USB EHCI 兼容 Controller 。 所有 EHCI Controller 都可以作为主机或设备工作吗? EHCI Linux 驱动程序是否涵盖此类 Con
我有一个 USB 调制解调器,它经常掉线。发生这种情况时,我将其从 USB 端口拔出并重新插入,它会立即返回信号;我可以编写一个程序来执行此操作而无需物理断开调制解调器与端口的连接吗? 最佳答案 正如
我正在尝试使用 libusb 与 USB 设备通信,但我觉得自己在比赛的第一站被绊倒了。我确切地知道我需要与哪些端点交谈,等等,但我什至做不到那么远。本质上,我有: usb_device *dev =
是否有工具可以验证在枚举过程中读取的 USB 设备描述符?我遇到过这样的情况,我购买的设备(实验室设备)的 USB 设备描述符不是很有效,并且无法被操作系统正确识别为“加载设备描述符失败”。我知道这并
我正在从事一个需要将信号从外部世界传输到计算机的项目。我有一个生成模拟信号的源,这个信号需要通过 USB 在 PC 上传输。这是我的问题:什么是接口(interface)? 我从源头获得的模拟信号,是
我想知道降低/提高 USB 端口的输出功率在技术上是否可行? 我自己也持怀疑态度,但我要求确定。 最佳答案 如上所述,是的。要获得超过 500mA (USB 2.0) 的电流,请使用组合电缆并联两个或
我正在尝试制作一个 HID USB 设备。我搜索了一下,发现键盘的输出有 8 个字节。第一个字节是修饰符,第二个字节是保留字节,其余 6 个字节是关键代码。我认为在某些情况下,例如“prtsc”,需要
我们正在寻找一个虚拟 USB 链接模拟器;这个程序或服务应该 链接虚拟COM port到仅接受 USB 作为数据链路的应用程序。 virtual COM port是 VSPE来自 Eterlogic
我一直在尝试监视何时插入或移除 USB 设备,它似乎工作得很好。现在唯一困扰我的是,每次我插入或移除设备时,都会多次触发该事件。 我可以毫无问题地将事件分组,但我很好奇为什么它首先发生。 这是我正在使
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 6年前关闭。 Improve this questi
我正在为 USB 设备编写代码。假设 USB 主机开始控制读取传输以从设备读取一些数据,并且请求的数据量(设置数据包中的 wLength)是端点 0 最大数据包大小的倍数。那么在主机接收到所有数据后(
我们正在开发一个带有 arm7(current: LPC2368) 的发送器设备。 本设备采样一个 mv 信号,A/D,并需要将此信号数据发送到 PC。(连续) 同时,PC 需要向 arm7 发送命令
我希望能够使用通过 USB 连接到 PC 的 IR 远程传感器打开和关闭我的 PC。该传感器是使用 AVR 微处理器和 V-USB 软件 USB 实现实现的定制 PCB。 现在,用软件关掉电脑是没有问
我正在使用 STM32L151 与使用 USB CDC 的 PC 进行通信。我使用 STM32 HAL 库来创建我的项目。 我发现 USB 以 1 ms 的间隔发送数据,每次发送 64 个字节。那么,
我们有一个设备要求我们在插入之前安装驱动程序,否则我们需要删除 Windows 8 和 10 自动下载的驱动程序。 我们如何制作一个无论先插还是不插都能正确安装的USB驱动安装器? 最佳答案 在 Wi
我需要填充 USB 存储器,我希望其他人能够以简单的方式重复此操作。所以我不想写“找到一个填满内存的文件”,所以他们必须四处寻找这样的文件。 我想生成 X MB 的数据并将其写入一个文件,然后可以将其
我有一个 Android 平板电脑,它有一个迷你 USB 端口和一个 USB 端口,我想编写一个与 USB key 通信的应用程序。我写了一个demo来找出U盘,但是没有任何反应。 令我不安的是,如果
我正在尝试使用 Android USB Host API 读取我的 USB 游戏 Controller 数据,一旦我让它工作,我将连接其他设备进行测试。我的游戏 Controller 使用 OTG 线
我是一名优秀的程序员,十分优秀!