From da8948a166740050d52313867012872c50ef2662 Mon Sep 17 00:00:00 2001 From: topquark12 Date: Thu, 2 Jun 2022 20:08:18 +0800 Subject: [PATCH] add more graphs in 2x2 grid --- pytec/tecQT.py | 47 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/pytec/tecQT.py b/pytec/tecQT.py index cf33439..aa12fb3 100644 --- a/pytec/tecQT.py +++ b/pytec/tecQT.py @@ -19,7 +19,6 @@ channel_data = [{ 'tec_i': np.zeros(rec_len), 'tec_u_meas': np.zeros(rec_len), 'interval': np.zeros(rec_len), - 'temp_set': np.zeros(rec_len), } for _ in range(2)] tec = Client() @@ -31,22 +30,38 @@ mw.resize(800,800) cw = QtGui.QWidget() mw.setCentralWidget(cw) l = QtGui.QVBoxLayout() +layout = pg.LayoutWidget() +l.addWidget(layout) cw.setLayout(l) pg.setConfigOptions(antialias=True) -pw0= pg.PlotWidget(name='Channel 0') -l.addWidget(pw0) -pw1 = pg.PlotWidget(name='Channel 1') -l.addWidget(pw1) +temp0plot= pg.PlotWidget(title='Channel 0 Temperature') +layout.addWidget(temp0plot, 1, 1) +temp1plot = pg.PlotWidget(title='Channel 1 Temperature') +layout.addWidget(temp1plot, 2, 1) +current0plot = pg.PlotWidget(title='Channel 0 Current') +layout.addWidget(current0plot, 1, 2) +current1plot = pg.PlotWidget(title='Channel 1 Current') +layout.addWidget(current1plot, 2, 2) + +temp0curve = pg.PlotCurveItem(pen=({'color': 'r', 'width': 1})) +temp1curve = pg.PlotCurveItem(pen=({'color': 'r', 'width': 1})) +tecI0curve = pg.PlotCurveItem(pen=({'color': 'r', 'width': 1})) +tecI1curve = pg.PlotCurveItem(pen=({'color': 'r', 'width': 1})) +Iset0curve = pg.PlotCurveItem(pen=({'color': 'g', 'width': 1})) +Iset1curve = pg.PlotCurveItem(pen=({'color': 'g', 'width': 1})) +temp0plot.addItem(temp0curve) +temp1plot.addItem(temp1curve) +current0plot.addItem(tecI0curve) +current0plot.addItem(Iset0curve) +current1plot.addItem(tecI1curve) +current1plot.addItem(Iset1curve) -curve0 = pw0.plot() -curve1 = pw1.plot() cnt = 0 time_stamp = np.zeros(rec_len) def update(n): - global cnt for data in tec.report_mode(): ch = data[n] for tag, seq in channel_data[n].items(): @@ -56,7 +71,7 @@ def update(n): if cnt == 0: np.copyto(seq, np.full(rec_len, v)) else: - seq[:-1] = seq[1:] + seq[:-1] = seq[1:] seq[-1] = v if quit: break @@ -69,10 +84,16 @@ def updateData(): cnt += 1 time_stamp[:-1] = time_stamp[1:] time_stamp[-1] = cnt * refresh_period / 1000 - pw0.setRange(xRange=[cnt * refresh_period / 1000 - 20.0, cnt * refresh_period / 1000]) - pw1.setRange(xRange=[cnt * refresh_period / 1000 - 20.0, cnt * refresh_period / 1000]) - curve0.setData(x = time_stamp, y = channel_data[0]['temperature']) - curve1.setData(x = time_stamp, y = channel_data[1]['temperature']) + temp0plot.setRange(xRange=[(cnt - rec_len) * refresh_period / 1000, cnt * refresh_period / 1000]) + temp1plot.setRange(xRange=[(cnt - rec_len) * refresh_period / 1000, cnt * refresh_period / 1000]) + current0plot.setRange(xRange=[(cnt - rec_len) * refresh_period / 1000, cnt * refresh_period / 1000]) + current1plot.setRange(xRange=[(cnt - rec_len) * refresh_period / 1000, cnt * refresh_period / 1000]) + temp0curve.setData(x = time_stamp, y = channel_data[0]['temperature']) + temp1curve.setData(x = time_stamp, y = channel_data[1]['temperature']) + tecI0curve.setData(x = time_stamp, y = channel_data[0]['tec_i']) + tecI1curve.setData(x = time_stamp, y = channel_data[1]['tec_i']) + Iset0curve.setData(x = time_stamp, y = channel_data[0]['i_set']) + Iset1curve.setData(x = time_stamp, y = channel_data[1]['i_set']) ## Start a timer to rapidly update the plot in pw