我正在使用python从USB输入设备读取数据。我想知道是否有一种方法可以在MATLAB中实时交换模型。我现在该怎么做是将读取的数据保存在.mat文件中,然后让模型从那里读取它,这不是很直观。我用的代码如下:
#Import the needed libraries
import usb.core,usb.util,sys,time
import sys
from array import *
import scipy.io
#find our device
dev = usb.core.find(idVendor=0x046d, idProduct=0xc29a)
# was it found?
if dev is None:
raise ValueError('Device not found')
# set the active configuration. With no arguments, the first
# configuration will be the active one
try:
dev.set_configuration()
#In the event of an error
except usb.core.USBError as e:
print('Cannot set configuration the device: %s' %str(e))
sys.exit()
# get an endpoint instance
cfg = dev.get_active_configuration()
intf = cfg[(0,0)]
ep = usb.util.find_descriptor(
intf,
# match the first IN endpoint
custom_match = \
lambda e: \
usb.util.endpoint_direction(e.bEndpointAddress) == \
usb.util.ENDPOINT_IN)
#Initialising variables
#Databases for access in MATLAB
gas_pedal_data={}
brake_pedal_data={}
steering_wheel_bit5_data={}
steering_wheel_bit6_data={}
gas_pedal=[]
brake_pedal=[]
steering_wheel_bit5=[]
steering_wheel_bit6=[]
i=0
#Read data from the device as long as it is connected
while(dev!= None):
try:
#Read data
data = dev.read(ep.bEndpointAddress, ep.wMaxPacketSize,
timeout=1000)
gas_pedal.append(data[6])
gas_pedal_data['gas_pedal']=gas_pedal
scipy.io.savemat('test.mat',gas_pedal_data)
brake_pedal.append(data[7])
brake_pedal_data['brake_pedal']=brake_pedal
scipy.io.savemat('test.mat',brake_pedal_data)
steering_wheel_bit5.append(data[4])
steering_wheel_bit5_data['steering_wheel_bit5']=steering_wheel_bit5
scipy.io.savemat('test.mat',steering_wheel_bit5_data)
steering_wheel_bit6.append(data[5])
steering_wheel_bit6_data['steering_wheel_bit6']=steering_wheel_bit6
scipy.io.savemat('test.mat',steering_wheel_bit6_data)
except usb.core.USBError as e:
print("Error readin data: %s" %str(e))
time.sleep(5)
continue