Multithreading 通过pyserial读取2至4端口数据的多个串行端口数据
我试图读取多个端口的串行端口数据,传输的数据是陀螺仪的数据,陀螺仪给我2个方向的角度数据,例如一行中的数据是“X12XY34.3YX13XY35.6YX13.4X……”,“x”中的数字是x数据,“Y”中的数字是陀螺仪的Y数据,对于多个端口,这有延迟,请帮我解决这个问题Multithreading 通过pyserial读取2至4端口数据的多个串行端口数据,multithreading,multiprocessing,serial-port,pyserial,Multithreading,Multiprocessing,Serial Port,Pyserial,我试图读取多个端口的串行端口数据,传输的数据是陀螺仪的数据,陀螺仪给我2个方向的角度数据,例如一行中的数据是“X12XY34.3YX13XY35.6YX13.4X……”,“x”中的数字是x数据,“Y”中的数字是陀螺仪的Y数据,对于多个端口,这有延迟,请帮我解决这个问题 import concurrent.futures from matplotlib import pyplot import serial port_serial1=serial.Serial('COM9',57600,timeo
import concurrent.futures
from matplotlib import pyplot
import serial
port_serial1=serial.Serial('COM9',57600,timeout=0.1,parity='N',bytesize=8)
port_serial2=serial.Serial('COM10',57600,timeout=0.1,parity='N',bytesize=8)
s=[port_serial1,port_serial2]
z=[0]
q=[0]
def do_something(seconds):
for _ in range(200):
line=s[seconds].read(20)
b=line.decode("utf-8")
b1=b.find('YX')
w=b[b1+2:b.find('XY',b1+2)]
if (seconds==0):
print(seconds,'x :',float(w))
z.append(float(w))
file.write(b)
if (seconds==1):
## print(seconds,'x :',float(w))
q.append(float(w))
b1=b.find('XY')
w=b[b1+2:b.find('YX',b1+2)]
## if (seconds==0):
## print(seconds,'y :',float(w))
file.close()
return z
with concurrent.futures.ProcessPoolExecutor() as executor:
secs=[0,1]
results=[executor. submit(do_something,sec) for sec in secs]
for f in concurrent.futures.as_completed(results):
print(f.result())
pyplot.plot(z)
pyplot.plot(q)
pyplot.show()