Я пытаюсь реализовать интерактивное меню через командную строку в python 3.X для вывода последовательных данных из arduino с помощью pyqtgraph.Я прочитал документацию по Qt, но я просто не могу заставить его работать.Цель состоит в том, что когда пользователь посылает «А», начинается печать, и, наконец, когда он нажимает «В», печать останавливается.Я пытался обернуть таймер в оператор 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_()