我正在尝试使用PyWinUSB与一个非常简单的USB设备通信。该设备由两部分组成:一个无线收发器和一个设备本身,它有5个按钮、一个旋转拨号盘和一个dip开关。按下任何一个按钮(取决于拨号盘和开关的设置),一个值就会传输到收发器。在
该设备还可以接收各种用途的信号。在
使用PyWinUSB,我从设备接收输入没有问题。我遇到的问题来自于我试图向设备发送内容。这导致了一个我至今还无法破译的错误。即使是对简单的_发送.py示例程序使其爆炸。在
我想我遇到的问题是我不知道目标使用参数是什么。 我不能百分之百地确定这是怎么回事,但当我在找到它之后从设备上抓取报告时,我已经有了一些运气,但除此之外,我还不知道它为什么总是出错,以及我能做些什么来修复它。在
您可以找到错误本身here,以及我的简单版本_发送.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
最新版本包含一个用于探索设备功能的脚本,它被称为
show_hids.py
,它位于./example folder
(下载完整的源代码包)。在在命令行上运行它,将输出捕获到一个文件(
> output.txt
)以便于查看,然后查找output和featurecaps部分。在那里,您可以找到由您的设备报告描述符列出的所有用法(输入大写字母指向您可以接收的)。在相关问题 更多 >
编程相关推荐