0

我正在尝试使用 PyWinUSB 与我拥有的一个非常简单的 USB 设备进行通信。该装置是两个组件;一个无线收发器和设备本身,它有 5 个按钮、一个旋转拨盘和一个 DIP 开关。按下任何按钮(取决于拨盘和开关的设置)时,都会向收发器传输一个值。

该设备还可以接收用于各种目的的信号。

使用 PyWinUSB,我从设备接收输入没有问题。我遇到的问题来自我尝试向设备发送内容时。这会导致我至今无法破译的错误。即使对 simple_send.py 示例程序进行基本的更改也会使其爆炸。

我认为我遇到的问题是我不知道目标使用参数是什么。我不是 100% 确定这是做什么的,但是当我在找到它之后从设备中获取报告时,我有一些运气,但除此之外,我无法弄清楚为什么它一直有错误以及我可以做些什么来解决它。

您可以在此处找到错误本身,并在此处找到我的 simple_send.py 示例版本。任何反馈表示赞赏。

Traceback (most recent call last):
  File "C:\2.7.x\pywinusb-0.3.1 2.7\examples\simple_send.py", line 45, in <module>
    click_signal(target_usage, target_vendor_id)
  File "C:\2.7.x\pywinusb-0.3.1 2.7\examples\simple_send.py", line 32, in click_signal
    report.send()
  File "C:\Python27\lib\site-packages\pywinusb-0.3.1-py2.7.egg\pywinusb\hid\core.py", line 1446, in send
    self.__prepare_raw_data()
  File "C:\Python27\lib\site-packages\pywinusb-0.3.1-py2.7.egg\pywinusb\hid\core.py", line 1401, in __prepare_raw_data
    byref(self.__raw_data), self.__raw_report_size) )
  File "C:\Python27\lib\site-packages\pywinusb-0.3.1-py2.7.egg\pywinusb\hid\winapi.py", line 382, in __init__
    raise helpers.HIDError("hidP error: %s" % self.error_message_dict[error_code])
HIDError: hidP error: data index not found
4

1 回答 1

2

最新版本包括一个用于探索设备功能的脚本show_hids.py,它位于./example folder(下载完整源代码包)中。

在命令行上运行它,将输出捕获到文件 ( > output.txt) 以便于查看它,然后查找输出和功能上限部分。在那里,您将找到设备报告描述符列出的所有用法(输入大写指向您可以接收的那些)。

于 2012-12-06T20:05:26.353 回答