2012-10-16 51 views
0

我试图使用PyWinUSB与我有一个非常简单的USB设备进行通信。该设备是两个组件;无线收发器和设备本身有5个按钮,一个旋转拨号盘和一个拨码开关。一旦按下任何按钮(取决于拨号和开关的设置),就会向收发器发送一个值。PyWinUSB难懂的错误消息

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

使用PyWinUSB,我已经受够了从设备接收输入没有问题。我遇到的问题来自于我尝试向设备发送内容时发生的问题。这会导致我迄今尚未解密的错误。即使对simple_send.py示例程序进行基本修改也会使其爆炸。

我认为我有问题,我不知道是什么目标使用参数。 我不是100%确定这是干什么的,但是当我找到设备后从设备上获取报告时,我已经有了一些运气,但除此之外,我还没有能够为什么它会一直存在错误以及我能做些什么来解决它。

你可以找到错误本身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

所以,你必须在引发异常文件和行号(C':\ Python27 ... \ HID \ winapi.py线38')......什么样的代码路径填写'error_code'和行结束38? – Useless

回答

2

最新版本包括一个脚本来探索设备的能力它被称为show_hids.py,它是在./example folder(下载完整的源代码包)。

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

+0

我前段时间已经从这里转移了。我有时间看看。如果其他人有类似的头痛,我会留在这里以备将来参考。 – Will