Multithreading 通过pyserial读取2至4端口数据的多个串行端口数据

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

我试图读取多个端口的串行端口数据,传输的数据是陀螺仪的数据,陀螺仪给我2个方向的角度数据,例如一行中的数据是“X12XY34.3YX13XY35.6YX13.4X……”,“x”中的数字是x数据,“Y”中的数字是陀螺仪的Y数据,对于多个端口,这有延迟,请帮我解决这个问题

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