Catia动态图:串口数据动态图太滞后(data plot)

我正在从串行端口(传感器数据,y)读取,并希望将其与时间(x)进行比较。我使用系统时间来计算经过的时间。来自传感器的读数没有滞后。但是我绘制它的方式会引入几秒钟的滞后,因此它落后于传感器的实际状态(因此不能作为实时数据接受)。请帮助我学习如何在此处更好地绘制 x,y 数据。提前感谢!

import serial
import time
import matplotlib.pyplot as plt
start = time.time()
x = []
y = []
ser = serial.Serial('COM6', 2000000, timeout=0)
time.sleep(2)
fig = plt.figure()
plt.ion()  # turn on interactive mode
fig.canvas.draw()
plt.sw(block=False)
while True:
    line = ser.readline() # read a byte
    if line:
        string = line.decode() # convert the byte string to a unicode string
        #num = re.findall(r"[-+]?\d*\.\d+|\d+", string)
        num = float(string)
        end = time.time()
        y.append(num)
        time_elapsed= end - start
        x.append(time_elapsed)
        plt.cla()
        plt.plot(x, y, 'red')
        plt.pause(0.05) 
        plt.draw()
0

我对 pyserial 也有同样的问题。这是ser.readline缓慢。请尝试使用ser.read(ser.in_waiting)。以前的延迟大约是 20s,现在下降到 & lt;2s。Here是上一个问题的答案,以供参考

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(2)
Ten safe:一万个cron作业或循环一万次(ten thousand times ten thousand)
上一篇
快速算法:快速算法中的 ChunksOfCountCollection
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(43条)