首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pywinusb中获取输入报告

在pywinusb中获取输入报告
EN

Stack Overflow用户
提问于 2017-01-10 05:52:41
回答 1查看 2.3K关注 0票数 0

我正在使用pywinusb从自定义HID设备发送/获取数据。我可以成功地发送数据,但无法获得它。有什么建议吗?我尝试使用Microsoft Message Analyzer进行调试,可以看到那里的数据,但看不到脚本中的数据。产品/供应商id、报告id等是否正确。

下面是代码,

代码语言:javascript
复制
from pywinusb import hid
from time import sleep

devicefilter = hid.HidDeviceFilter(vendor_id=0x0483, product_id=0x572A)

devices = devicefilter.get_devices()
print ("devices:", devices)

hid_device = devices[0]
print ("hid_device:", hid_device)

hid_device.open()
out_report = hid_device.find_output_reports()
in_report = hid_device.find_input_reports()
print("out_report:", out_report)
print("out_report[0]:",out_report[0])
print("in_report:", in_report)
print("in_report[0]:",in_report[0])

txBuffer = [0x55] * 64
txBuffer[0] = 0x01 # Report ID
rxBuffer = [0x00] * 64
rxBuffer[0] = 0x02 # Report ID
print(txBuffer)
print(rxBuffer)
out_report[0].set_raw_data(txBuffer)
in_report[0].set_raw_data(rxBuffer)
while 1:
    out_report[0].send()
    rxBuffer = in_report[0].get()
    print("rxBuffer:", rxBuffer)
    sleep(1)
hid_device.close()
EN

回答 1

Stack Overflow用户

发布于 2017-02-08 08:42:34

我自己并不是这方面的专家,但我有一个类似的声音应用程序,这就是我所做的。我没有显式地创建一个输入报告,而是将一个输入报告处理程序附加到usb接收缓冲区。

代码语言:javascript
复制
import pywinusb.hid as hid

# handler called when a report is received
def rx_handler(data):
    print 'recv: ', data

def scan_hiddevice():
    """ Scans for and returns the HID device. """
    devices = hid.HidDeviceFilter( vendor_id = vendor_id).get_devices()
    if not devices:
        print "scan_hiddevice: No device connected."
        return None
    else:
        device = devices[0]
        #print("scan_hiddevice: found %s", device )
        return device    
    return None

def setup_hiddevice():
    """Creates a new HID device, opens it and attaches a receive data handler"""
    hid_device = scan_hiddevice()
    hid_device.open()
    hid_device.set_raw_data_handler(rx_handler)
    return hid_device

def main(verbose=True):
    hid_device = setup_hiddevice()

    while (True):
        #wait for data

我希望这能对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41557601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档