gpt4 book ai didi

python-2.7 - 在 Python 中简单地从/向 USB HID 设备读取/写入?

转载 作者:行者123 更新时间:2023-12-04 05:29:27 24 4
gpt4 key购买 nike

我有一个相当简单的 USB HID 设备,我一直在尝试弄清楚如何使用 Python 进行读取和写入。我已经能够使用 PyWinUSB 读取它,但是当我尝试写入它时问题就出现了。尝试写入它会使事情爆炸。

例如:

device = hid.HidDeviceFilter(vendor_id = 0x0003, product_id = 0x1001).get_devices()[0]

这工作正常。然后读取原始数据,这就是我现在关心的全部(一旦我能弄清楚如何写入被诅咒的东西,我就会使用它):
def readData(data):
print(data)
return None

这工作得很好(事实上,当我看到它工作时非常令人兴奋)。所以我会像这样分配数据处理程序:
device.set_raw_data_handler(readData)

每次我按下一个按钮,它都很好。数据如您所料。这很棒!

当我想写入设备时出现问题。
按照示例 simple_send 文件作为模板(这可能不是最佳选择),我将执行以下操作:
report = device.find_output_reports()[0]

这将返回一个包含 4 个条目的字典的报告对象。那是正确的吗?您是否使用 output_reports 对象写入设备?尝试通过将报告值设置为 ANYTHING 来实现:
report[<key>] = "pneumonoultramicroscopicvolcanoconiosis"
report.send()

这将不断返回一些我无法解释的令人讨厌的错误:
    Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
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

我正在使用 Windows 7。我已经设法(最终)找到了 HID DLL 导出函数的引用,并且我不必(或者,就此而言,甚至真的想要)使用 PyWinUSB 库。我只是想让这项工作顺利进行,看起来并没有那么难,但确实如此。

有人能告诉我我在这里做错了什么吗?

谢谢。

此外,我尝试跟踪错误调用,并且在程序刚刚关闭之前就完成了,这有点令人沮丧。

最佳答案

我使它与这个一起工作

    buffer= [0xFF]*33 # 33 = report size + 1 byte (report id)
buffer[0]=0x0 # report id
buffer[1]=0xFE
buffer[2]=0x00
buffer[3]=0xFF
out_report.set_raw_data(buffer)
out_report.send()
dev.close()

关于python-2.7 - 在 Python 中简单地从/向 USB HID 设备读取/写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12802401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com