def warningbox(self,message): if message == 'KMS' : self.kmswarning = QtGui.QMessageBox() self.kmswarning.setIcon(QtGui.QMessageBox.Warning) self.kmswarning.setText('System has halted due to Kmirror E-Stop. Please standby for user reset...') self.kmswarning.setStandardButtons(QtGui.QMessageBox.Ok) self.kmswarning.setWindowTitle('KMirror System Emergency Stopped!') #self.kmswarning.buttonClicked.connect(self.on_warningbutton_clicked) self.kmswarning.exec_() elif message == 'tel' : self.telwarning = QtGui.QMessageBox() self.telwarning.setIcon(QtGui.QMessageBox.Warning) self.telwarning.setText('The telescope has unexpectedly halted normal operations. Software must be reset by user.') self.telwarning.setStandardButtons(QtGui.QMessageBox.Ok) self.telwarning.setWindowTitle('Telescope Emergency Stop') #self.telwarning.buttonClicked.connect(self.on_warningbutton_clicked) self.telwarning.exec_() elif message == 'hk' : self.hkwarning = QtGui.QMessageBox() self.hkwarning.setIcon(QtGui.QMessageBox.Warning) self.hkwarning.setText('Housekeeping as reported an error. No files are being created.') self.hkwarning.setStandardButtons(QtGui.QMessageBox.Ok) self.hkwarning.setWindowTitle('Housekeeping Error') #self.hkwarning.buttonClicked.connect(self.on_warningbutton_clicked) self.hkwarning.exec_()
def warningbox(self,message): # message is a tuple if message[0] == 'gui' : parameterwarning = QtGui.QMessageBox() parameterwarning.setIcon(QtGui.QMessageBox.Warning) parameterwarning.setText('Error %s: One or more parameters not entered correctly!' %(message[1])) parameterwarning.setStandardButtons(QtGui.QMessageBox.Ok) parameterwarning.setWindowTitle('Parameter Warning') parameterwarning.buttonClicked.connect(self.on_warningbutton_clicked) parameterwarning.exec_() if message[0] == 'kms' : kmswarning = QtGui.QMessageBox() kmswatning.setStyleSheet("background-color: rgb(255,0,0); color: rgb(0,0,0)") kmswarning.setIcon(QtGui.QMessageBox.Critical) kmswarning.setText('Error %s: System has halted due to Kmirror E-Stop. Please standby for user reset...' %(message[1])) kmswarning.setStandardButtons(QtGui.QMessageBox.Abort) kmswarning.setWindowTitle('KMirror System Emergency Stop!') kmswarning.buttonClicked.connect(self.on_warningbutton_clicked) kmswarning.exec_() elif message[0] == 'tel' : telwarning = QtGui.QMessageBox() telwarning.setStyleSheet("background-color: rgb(255,0,0); color: rgb(0,0,0)") telwarning.setIcon(QtGui.QMessageBox.Critical) telwarning.setText('Error %s : The telescope has unexpectedly halted normal operations. Software must be reset by user.' %(message[1])) telwarning.setStandardButtons(QtGui.QMessageBox.Abort) telwarning.setWindowTitle('Telescope Emergency Stop') telwarning.buttonClicked.connect(self.on_warningbutton_clicked) telwarning.exec_() elif message[0] == 'hk' : hkwarning = QtGui.QMessageBox() hkwarning.setStyleSheet("background-color: rgb(255,0,0); color: rgb(0,0,0)") hkwarning.setIcon(QtGui.QMessageBox.Critical) hkwarning.setText('Error %s: Housekeeping as reported an error. No files are being created.' %(message[1])) hkwarning.setStandardButtons(QtGui.QMessageBox.Abort) hkwarning.setWindowTitle('Housekeeping Error') hkwarning.buttonClicked.connect(self.on_warningbutton_clicked) hkwarning.exec_()
def on_submitbutton_clicked(self): #set variables to user input self.observer = self.enterobserver.text() self.datamode = self.enterdatamode.currentText() if self.datamode == 'Error': self.datamode = 0 elif self.datamode == 'Raw': self.datamode = 12 elif self.datamode == 'Low Pass Filtered': self.datamode = 2 elif self.datamode == 'Mixed Mode': self.datamode = 10 elif self.datamode == 'SQ1 Feedback': self.datamode = 1 self.readoutcard = self.enterreadoutcard.currentIndex() + 1 if self.readoutcard == 9: self.readoutcard = 'All' self.currentreadoutcard = 2 self.currentreadoutcarddisplay = 'MCE 1 RC 2' self.framenumber = self.enterframenumber.text() self.datarate = self.enterdatarate.text() self.timeinterval = self.entertimeinterval.text() self.channeldelete = self.enterchanneldelete.currentText() self.showmcedata = self.entershowmcedata.currentText() self.timestarted = datetime.datetime.utcnow() self.timestarted = self.timestarted.isoformat() #check if parameters are valid - will create warning box if invalid if self.observer == '' or self.framenumber == '' or self.framenumber == '0'\ or self.datarate == '0' or self.datarate == '' or self.timeinterval == ''\ or self.timeinterval == '0': self.parameterwarning = QtGui.QMessageBox() self.parameterwarning.setIcon(QtGui.QMessageBox.Warning) self.parameterwarning.setText('One or more parameters not entered correctly!') self.parameterwarning.setStandardButtons(QtGui.QMessageBox.Ok) self.parameterwarning.setWindowTitle('Parameter Warning') self.parameterwarning.buttonClicked.connect(self.on_warningbutton_clicked) self.parameterwarning.exec_() elif self.showmcedata == 'No': self.submitbutton.setEnabled(False) self.inittelescope() else: parafile = open('tempfiles/tempparameters.txt', 'w') parafile.write(self.observer+' ') parafile.write(str(self.datamode)+' ') parafile.write(str(self.readoutcard)+' ') parafile.write(self.framenumber+' ') parafile.write(self.datarate+' ') parafile.write(self.timeinterval+' ') parafile.write(self.channeldelete+' ') parafile.write(self.timestarted+' ') parafile.close() #editdatarate = ['mce_cmd -x wb cc data_rate %s' % (self.datarate)] editdatarate = ['./mce1_cdr.sh %s' %(self.datarate)] a = subprocess.call(editdatarate, shell=True) parameteroutput = QtGui.QVBoxLayout() self.observertext = QtGui.QLabel() self.datamodetext = QtGui.QLabel() self.readoutcardtext = QtGui.QLabel() self.framenumbertext = QtGui.QLabel() self.dataratetext = QtGui.QLabel() self.timeintervaltext = QtGui.QLabel() self.channeldeletetext = QtGui.QLabel() self.timestartedtext = QtGui.QLabel() self.observertext.setText('Observer: %s' % (self.observer)) self.datamodetext.setText('Datamode: %s' % (self.datamode)) self.readoutcardtext.setText('Readout Card: %s' % (self.readoutcard)) self.framenumbertext.setText('Frame Number: %s' % (self.framenumber)) self.dataratetext.setText('Data Rate: %s' % (self.datarate)) self.timeintervaltext.setText('Time Interval: %s' % (self.timeinterval)) self.channeldeletetext.setText('Delete Old Columns: %s' % (self.channeldelete)) self.timestartedtext.setText('Time Started: %s' % (self.timestarted)) parameteroutput.addWidget(self.observertext) parameteroutput.addWidget(self.datamodetext) parameteroutput.addWidget(self.readoutcardtext) if self.readoutcard == 'All': self.currentreadoutcardtext = QtGui.QLabel() self.currentreadoutcardtext.setText('Current Readout Card: %s' % (self.currentreadoutcarddisplay)) parameteroutput.addWidget(self.currentreadoutcardtext) parameteroutput.addWidget(self.framenumbertext) parameteroutput.addWidget(self.dataratetext) parameteroutput.addWidget(self.timeintervaltext) parameteroutput.addWidget(self.channeldeletetext) parameteroutput.addWidget(self.timestartedtext) self.grid.addLayout(parameteroutput, 2, 1, 1, 1) self.channelselection() # print('Observer: %s' % (self.observer)) # print('Datamode: %s' % (self.datamode)) # print('Readout Card: %s' % (self.readoutcard)) # print('Frame Number: %s' % (self.framenumber)) # print('Data Rate: %s' % (self.datarate)) # print('Time Interval: %s' % (self.timeinterval)) # print('Delete Old Columns: %s' % (self.channeldelete)) print('Time Started: %s' % (self.timestarted)) self.frameperfile = int((50 * 10 ** 6) / (33 * 90 * int(self.datarate))) print('Frame per file: %s' % (self.frameperfile)) self.submitbutton.setEnabled(False) self.initplot()
def on_submitbutton_clicked(self): #set variables to user input # observer --------------------------------------- self.observer = self.enterobserver.text() # data mode -------------------------------------- self.datamode = self.enterdatamode.currentText() if self.datamode == 'Error': self.datamode = 0 elif self.datamode == 'Raw': self.datamode = 12 elif self.datamode == 'Low Pass Filtered': self.datamode = 2 elif self.datamode == 'Mixed Mode': self.datamode = 10 elif self.datamode == 'SQ1 Feedback': self.datamode = 1 # readout card --------------------------------------------- self.readoutcard = self.enterreadoutcard.currentIndex() + 1 if self.readoutcard == 9: self.readoutcard = 'All' self.currentreadoutcard = 2 self.currentreadoutcarddisplay = 'MCE 1 RC 2' # frame number ---------------------------------------------- self.framenumber = self.enterframenumber.text() # data rate ------------------------------------------------- self.datarate = self.enterdatarate.text() # how much data to view on screen at once ------------------- self.timeinterval = self.entertimeinterval.text() # keep old channel data on graph ---------------------------- self.channeldelete = self.enterchanneldelete.currentText() # keep mce data on screen ----------------------------------- self.showmcedata = self.entershowmcedata.currentText() # time keepers ---------------------------------------------- self.timestarted = datetime.datetime.utcnow() self.timestarted = self.timestarted.isoformat() #check if parameters are valid - will create warning box if invalid if self.observer == '' or self.framenumber == '' or self.framenumber == '0'\ or self.datarate == '0' or self.datarate == '' or self.timeinterval == ''\ or self.timeinterval == '0': self.parameterwarning = QtGui.QMessageBox() self.parameterwarning.setIcon(QtGui.QMessageBox.Warning) self.parameterwarning.setText('One or more parameters not entered correctly!') self.parameterwarning.setStandardButtons(QtGui.QMessageBox.Ok) self.parameterwarning.setWindowTitle('Parameter Warning') self.parameterwarning.buttonClicked.connect(self.on_warningbutton_clicked) self.parameterwarning.exec_() elif self.showmcedata == 'No': self.submitbutton.setEnabled(False) else: parafile = open('tempfiles/tempparameters.txt', 'w') parafile.write(self.observer+' ') parafile.write(str(self.datamode)+' ') parafile.write(str(self.readoutcard)+' ') parafile.write(self.framenumber+' ') parafile.write(self.datarate+' ') parafile.write(self.timeinterval+' ') parafile.write(self.channeldelete+' ') parafile.write(self.timestarted+' ') parafile.close() self.channelselection() print(colored('Time Started: %s' % (self.timestarted),'magenta')) self.p = int((50 * 10 ** 6) / (33 * 90 * int(self.datarate))) #calculation taken from UBC MCE Wiki print(colored('Frame per file: %s' % (self.frameperfile),'magenta')) # prevents user from re-activating everything self.submitbutton.setEnabled(False) print(colored('Readout Card : %s' %(self.readoutcard),'magenta')) #start other plot making processes self.initplot()