检查串行端口数据,直到完成

时间:2018-12-21 08:16:33

标签: python-3.x matplotlib serial-port

我正在使用串行数据创建多个图形。我正在使用split()函数分离串行数据,并使用此代码将每个数据分配给不同的变量。它可以正常工作。但是,有时在程序启动时从串行端口接收的数据数量较少。它会产生索引错误。我如何告诉我的代码等待所有串行端口数据。例如,从串行端口发送的数据数量为六。等到所有六个数据都收到为止,然后使用这些数据在一个循环中绘制不同的图。我需要将每个图保存为不同的名称。

am使用python 3.5,为graph.i使用matplotlib试图保存单个图。

import matplotlib.pyplot as plt
import numpy as np
import time
import serial

plt.ion()
s = serial.Serial('/dev/ttyACM0', 9600)


def graph():
    ser = s.readline()
    i = ser.split()
    q = (int(i[0]))
    w = (int(i[1]))
    e = (int(i[2]))
    r = (int(i[3]))
    t = (int(i[4]))
    u = (int(i[5]))
    print(q,w,e,r,t,u)
    print(i)
    y =(q,w,e,r,t,u)
    x=(1,2,3,4,5,6)
    plt.ylabel("pressure(psi)")
    plt.xlabel('Number of Sensors')
    plt.plot(x,y)
    plt.draw()
    plt.savefig('books_read.png')
    plt.pause(1)
    plt.clf()
while True:
    graph()

我希望程序在第一时间等待所有数据,并保存每个图形。

0 个答案:

没有答案