diff --git a/mcpha.py b/mcpha.py index 59263ca4e96f2382adab1b53a748c6b990387201..83ab2a9aa1ad65cd67c71242bb15751edbd79f69 100755 --- a/mcpha.py +++ b/mcpha.py @@ -258,7 +258,6 @@ class MCPHA(QMainWindow, Ui_MCPHA): #else: # return - def reset_hst(self, number): if self.syncCheck.isChecked(): self.reset |= 3 @@ -1037,9 +1036,14 @@ class GenDisplay(QWidget, Ui_GenDisplay): self.log.print("error: %s" % sys.exc_info()[1]) -app = QApplication(sys.argv) -dpi = app.primaryScreen().logicalDotsPerInch() -matplotlib.rcParams["figure.dpi"] = dpi -window = MCPHA() -window.show() -sys.exit(app.exec_()) +def runQt(): + app = QApplication(sys.argv) + dpi = app.primaryScreen().logicalDotsPerInch() + matplotlib.rcParams["figure.dpi"] = dpi + window = MCPHA() + window.show() + sys.exit(app.exec_()) + +if __name__ == '__main__': # --------------------------------------------- + + runQt() diff --git a/rpOsci.py b/rpOsci.py index 7d3926dbc329ccdb7da007aaa1189aa483db4bdf..4be4c0a0aa8c1e0f5c63b737389e58da19ddb248 100755 --- a/rpOsci.py +++ b/rpOsci.py @@ -219,6 +219,8 @@ class rpControl(QMainWindow, Ui_MCPHA): # initialize variables for readout self.idle = False self.osc_waiting = False + self.osc_reset = False + self.osc_start = False self.state = 0 self.set_rate(self.rateValue.currentIndex()) self.set_negator(0, self.neg1Check.isChecked()) @@ -244,6 +246,10 @@ class rpControl(QMainWindow, Ui_MCPHA): def read_osci(self): """data transfer from RP, triggered by QTimer readTimer """ + if self.osc_reset: + self.reset_osc() + if self.osc_start: + self.start_osc() # check status self.read_status() if not self.read_data(self.status): @@ -253,18 +259,26 @@ class rpControl(QMainWindow, Ui_MCPHA): self.command(20, 0, 0) if self.read_data(self.osc.buffer): self.osc.update() - self.reset_osc() - self.start_osc() + self.mark_reset_osc() + self.mark_start_osc() else: self.log.print("failed to read oscilloscope data") return + def mark_start_osc(self): + self.osc_start = True + self.osc_waiting = True + + def mark_reset_osc(self): + self.osc_reset = True + def reset_osc(self): self.command(2, 0, 0) + self.osc_reset=False def start_osc(self): self.command(19, 0, 0) - self.osc_waiting = True + self.osc_start = False def read_status(self): self.command(11, 0, 0) @@ -443,15 +457,15 @@ class OscDisplay(QWidget, Ui_OscDisplay): self.trg_source = int(self.ch2Button.isChecked()) self.trg_slope = int(self.fallingButton.isChecked()) self.trg_level = self.levelValue.value() - self.rpControl.set_trg_mode(self.trg_mode) self.rpControl.set_trg_source(self.trg_source) self.rpControl.set_trg_slope(self.trg_slope) self.rpControl.set_trg_level(self.trg_level) self.rpControl.set_osc_pre(self.pre) self.rpControl.set_osc_tot(self.tot) - self.rpControl.reset_osc() - self.rpControl.start_osc() + self.rpControl.mark_reset_osc() + self.rpControl.mark_start_osc() + self.rpControl.osc_waiting = True self.log.print("oscilloscope started") # toggle startButton: turn to 'Stop' self.startButton.setText("Stop") @@ -634,10 +648,15 @@ class GenDisplay(QWidget, Ui_GenDisplay): except: self.log.print("error: %s" % sys.exc_info()[1]) +def runQt(): + app = QApplication(sys.argv) + dpi = app.primaryScreen().logicalDotsPerInch() + matplotlib.rcParams["figure.dpi"] = dpi + window = rpControl() + window.show() + sys.exit(app.exec_()) + +if __name__ == '__main__': -app = QApplication(sys.argv) -dpi = app.primaryScreen().logicalDotsPerInch() -matplotlib.rcParams["figure.dpi"] = dpi -window = rpControl() -window.show() -sys.exit(app.exec_()) + # run the application with Qt5 interface + runQt()