我正在尝试使用PyWinUSB与我拥有的相当简单的USB设备进行通信。该设备是两个组件;无线收发器和设备本身,有5个按钮,一个旋转拨号和一个拨码开关。按下任何按钮(取决于拨盘和开关的设置),一个值将传输到收发器。
设备还可以接收各种信号。
使用PyWinUSB,我从设备接收输入时没有任何问题。当我尝试向设备发送内容时,我遇到的问题就出现了。这导致了一个我无法破译的错误。即使对simple_send.py示例程序进行基本更改也会使其爆炸。
我认为我遇到的问题是我不知道目标使用参数是什么。 我不是百分之百确定这是做什么的,但是当我找到它之后我从设备上抓住了报告时我已经有了一些运气,但除此之外,我还没弄清楚为什么它一直有错误,我可以做些什么来解决它。
您可以找到错误本身here以及我的simple_send.py示例here。任何反馈都表示赞赏。
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
答案 0 :(得分:2)
最新版本包括一个用于探索设备功能的脚本show_hids.py
,它位于./example folder
(下载完整的源包)。
在命令行上运行它,将输出捕获到文件(> output.txt
)以便于查看,然后查找输出和功能上限部分。在那里,您将找到设备报告描述符列出的所有用法(输入上限指向您可以接收的那些)。