コード例 #1
0
 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_()
コード例 #2
0
ファイル: test_gui.py プロジェクト: zemcov/TIME_Software
 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_()
コード例 #3
0
ファイル: pyqtgui.py プロジェクト: yuntingcheng/TIME_Software
    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()
コード例 #4
0
    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()