我无法在python中使用pywinusb读取隐藏数据。
我提到了此页面(https://www.reddit.com/r/learnpython/comments/3z346p/reading_a_usb_data_stream_on_windows/)
我有问题。
def sample_handler(数据): print(“原始数据:{0}”。格式(数据))
sample_handler函数需要数据。
但是
device.set_raw_data_handler(sample_handler)
此代码不将数据提供给sample_handler。不是错误吗?
和下面是我的代码。 我的代码没有抓住read_handler函数。 我该如何解决。你能帮我吗?
from pywinusb import hid
import time
class PIC18f:
def __init__(self, VID = 0x04D8, PID=0x003f):
filter = hid.HidDeviceFilter(vender_id = VID, product_id = PID)
self.devices = filter.get_devices()
self.device = self.devices[0]
self.device.open()
def write(self, args):
out_report = self.device.find_output_reports()
out_report[0].set_raw_data(args)
out_report[0].send()
time.sleep(1)
def read_handler(self, data):
print("Raw data: {0}".format(data))
print("done")
def I2C_Init(self):
buf = [0x00]
buf = buf + [0 for i in range(65-len(buf))]
buf[1] = 0xF1
buf[2] = 0x1D
self.write(buf)
self.device.set_raw_data_handler(read_handler)
test = PIC18f()
test.I2C_Init()
这是错误。
回溯(最近通话最近): 在第35行中输入文件“ d:/ 1。Siliconmitus / python / test2.py” test.I2C_Init() I2C_Init中的文件“ d:/ 1。Siliconmitus / python / test2.py”,第32行 self.device.set_raw_data_handler(read_handler) NameError:名称“ read_handler”未定义
答案 0 :(得分:1)
read_handler未定义,因为应该在I2C_Init内部定义“ read_handler”。
以下是示例:
from pywinusb import hid
filter = hid.HidDeviceFilter(vendor_id = 0x0001, product_id = 0x0002)
devices = filter.get_devices()
device = devices[0]
def readData(data):
print(data)
return None
device.set_raw_data_handler(readData)
device.open()