2017-01-09 2 views
0

pywinusb를 사용하여 사용자 지정 HID 장치에서 데이터를 보내거나 가져옵니다. 성공적으로 데이터를 보낼 수는 있지만 가져올 수는 없습니다. 어떤 제안? Microsoft Message Analyzer를 사용하여 디버깅을 시도했으나 해당 데이터를 볼 수는 있지만 스크립트에는 표시되지 않습니다. 제품/공급 업체 ID, 보고서 ID 등이 정확합니다. 여기에 코드 pywinusb에서 입력 보고서 받기

,

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() 

답변

0

나는이 내 자신에 대한 전문가는 아니지만 그러나 나는 여기에 비슷한 소리 응용 프로그램이 내가 무엇을 가지고있다. 명시 적으로 입력 보고서를 작성하지 않고 입력 보고서 핸들러를 USB 수신 버퍼에 연결합니다.

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 

희망이 있습니다.