使用命令提示符

时间:2018-04-25 18:16:33

标签: python python-3.x pyserial pyqtgraph

我试图通过python 3.X中的命令提示符实现交互式菜单,以使用pyqtgraph绘制arduino的串行数据。我已经阅读了关于Qt的文档,但我无法让它工作。目的是当用户发送A'情节开始,最后当他按下' B'密谋停止。我已经尝试将计时器包装成if语句,但是不会这样做,它会弹出窗口并崩溃。任何帮助将是欣赏。

这里是代码:

from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
import pyqtgraph as pg
import threading, serial, time


def main():
    while True:
        flag=input('Press A to start plotting, Press B to close the plotting sequence')
        if flag is 'A':
            #Start my plotting sequence
        elif flag is 'B'
            #Close my plotting sequence


app = QtGui.QApplication([])


win = pg.GraphicsWindow()
win.setWindowTitle('Datos de Arduino')

p1 = win.addPlot()
p1.setYRange(0, 5, padding=0)
curva1  = p1.plot()
datos   = [0.0]
data    = [0.0]
fdatos1 = [0.0]
y1 = np.zeros(1000, dtype=float)
raw = serial.Serial('COM6', 9600)
raw.close()
raw.open()
m = 0

def update():
    global curva1, curva2, curva3, m, y1, fdatos1
    with serial_lock:
        datos1 = raw.readline().decode('utf-8')
    #datos1 = datos.split(',')
    fdatos1[0]= float(datos1)
    y1[m] = fdatos1[0]

    if m == 999:
        y1 = np.zeros(1000, dtype=float)
        m = 0
    else:
        m += 1
    curva1.setData(y1)
    app.processEvents()


timer = QtCore.QTimer()
timer.timeout.connect(update)
timer.start(0)

if __name__ == '__main__':
    import sys
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        QtGui.QApplication.instance().exec_()

0 个答案:

没有答案