diff --git a/src/slu-delay-calculator.py b/src/slu-delay-calculator.py index 64f4897c6593aee3d4c8c5e6eb5122af6c5d8e76..71a0f23ec7af27f6009e8d27ae35d9c1f33643a0 100644 --- a/src/slu-delay-calculator.py +++ b/src/slu-delay-calculator.py @@ -1,6 +1,25 @@ #!/usr/bin/python3 +# self.thread1 = spostatore() +# self.connect(self.thread1, SIGNAL("passala"), self.gestiscioutput) +# self.connect(self.thread1, SIGNAL("segnalazione_errore"), self.lista_errori) +# +# self.thread1.muoviimpulsi(in1, in2, in3, in4, in5, in6, in7, in8, in9) #avvia +# +###################### +#class spostatore(QThread): +# +# passala = pyqtSignal(str) +# segnalazione_errore = pyqtSignal(str) +# +# def __init__(self, parent = None): +# QThread.__init__(self, parent) +# if paroliere: +# print('spostatore.__init__') + +############################################################################## + import PyTango import os import numpy as np @@ -34,10 +53,13 @@ zero_Eos2 = 0 trlsEOS2pos = 0 trlsEOS1pos = 0 trlsSLUpos = 0 -deltaS1 = 203808.0 #203810.0 -deltaS2 = 203800.0 #202954.0 +zeroS1_fel1 = 203806.0 #????????????con tmufundalignment -1, trls 0, trls8 0 +zeroS2_fel1 = 202949.0 #????????????con tmufundalignment -1, trls 0, trls8 0 +zeroS1_fel2 = 203814.0 #con tmufundalignment -1, trls 0, trls8 0 +zeroS2_fel2 = 202939.0 #con tmufundalignment -1, trls 0, trls8 0 ####ns12 = 12.675074466 +####ns6 = 6.337537233 #### Fel1 Elite1, Slu Elite 2 ###Fel1 = TRLS4_78MHz + TRLS8 + Trg_E1 @@ -55,9 +77,12 @@ deltaS2 = 203800.0 #202954.0 ###Trg_SDG1 ###Trg_SDG2 + class MainWindow(QDialog): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) + self.contaloop = 0 + self.abilitazioscope6 = 1 #meglio scrivere per chi faccio i conti self.funzionamento = QLineEdit("No errors") self.funzionamento.setReadOnly(1) @@ -108,11 +133,6 @@ class MainWindow(QDialog): self.scritta1 = QLabel('0 state') self.scritta2 = QLabel('present state') self.scritta3 = QLabel('calculated') - self.enable_scope_measurament = QPushButton('Enable scope operation') - self.enable_scope_measurament.clicked.connect(self.dajediscope) - self.ddmeasure_seedpil_text = QLabel('Seed-Pil') - self.ddmeasure_slupil_text = QLabel('Slu-Pil') - self.ddmeasure_sluseed_text = QLabel('Slu-Seed') self.trls4_state = QPushButton("TRLS4") self.trls4_state.clicked.connect(self.apritrls4) self.trls8_state = QPushButton("TRLS8") @@ -127,13 +147,6 @@ class MainWindow(QDialog): self.trgS2_state.clicked.connect(self.fapritrigger) self.FundAlignment_state = QPushButton("TMU") self.FundAlignment_state.clicked.connect(self.fapritmu) - - self.ddmeasure_seedpil_iniziale = QLineEdit("") - self.ddmeasure_seedpil_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)") - self.ddmeasure_slupil_iniziale = QLineEdit("") - self.ddmeasure_slupil_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)") - self.ddmeasure_sluseed_iniziale = QLineEdit("") - self.ddmeasure_sluseed_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)") self.trls4_iniziale = QLineEdit("") self.trls4_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)") self.trls4_iniziale.setReadOnly(1) @@ -155,13 +168,6 @@ class MainWindow(QDialog): self.FundAlignment_iniziale = QLineEdit("") self.FundAlignment_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)") self.FundAlignment_iniziale.setReadOnly(1) - - self.ddmeasure_seedpil_read = QLineEdit("") - self.ddmeasure_seedpil_read.setStyleSheet("background-color: rgb(220, 220, 220)") - self.ddmeasure_slupil_read = QLineEdit("") - self.ddmeasure_slupil_read.setStyleSheet("background-color: rgb(220, 220, 220)") - self.ddmeasure_sluseed_read = QLineEdit("") - self.ddmeasure_sluseed_read.setStyleSheet("background-color: rgb(220, 220, 220)") self.trls4_read = QLineEdit("") self.trls4_read.setStyleSheet("background-color: rgb(220, 220, 220)") self.trls4_read.setReadOnly(1) @@ -193,9 +199,6 @@ class MainWindow(QDialog): self.trgE2_calcolato = QLineEdit("") self.trgS2_calcolato = QLineEdit("") self.FundAlignment_calcolato = QLineEdit("") - - self.scope6clearswaps = QPushButton('ClearSweeps') - self.scope6clearswaps.clicked.connect(self.pulisci_oscilloscopio) self.trls4_applica = QPushButton('Apply') self.trls4_applica.clicked.connect(self.disastro_solotrls4) self.trls8_applica = QPushButton('Apply') @@ -234,20 +237,6 @@ class MainWindow(QDialog): lo_centrale.addWidget(self.scritta1, 0, 1) lo_centrale.addWidget(self.scritta2, 0, 2) lo_centrale.addWidget(self.scritta3, 0, 3) - lo_centrale.addWidget(self.enable_scope_measurament, 1, 0) - lo_centrale.addWidget(self.ddmeasure_seedpil_text, 2, 0) - lo_centrale.addWidget(self.ddmeasure_seedpil_iniziale, 2, 1) - lo_centrale.addWidget(self.ddmeasure_seedpil_read, 2, 2) - lo_centrale.addWidget(self.ddmeasure_seedpil_calcolato, 2, 3) - lo_centrale.addWidget(self.ddmeasure_slupil_text, 3, 0) - lo_centrale.addWidget(self.ddmeasure_slupil_iniziale, 3, 1) - lo_centrale.addWidget(self.ddmeasure_slupil_read, 3, 2) - lo_centrale.addWidget(self.ddmeasure_slupil_calcolato, 3, 3) - lo_centrale.addWidget(self.ddmeasure_sluseed_text, 4, 0) - lo_centrale.addWidget(self.ddmeasure_sluseed_iniziale, 4, 1) - lo_centrale.addWidget(self.ddmeasure_sluseed_read, 4, 2) - lo_centrale.addWidget(self.ddmeasure_sluseed_calcolato, 4, 3) - lo_centrale.addWidget(self.scope6clearswaps, 2, 4, 3, 1) lo_centrale.addWidget(self.trls4_state, 10, 0) lo_centrale.addWidget(self.trls4_iniziale, 10, 1) lo_centrale.addWidget(self.trls4_read, 10, 2) @@ -295,6 +284,43 @@ class MainWindow(QDialog): self.comenondetto.hide() self.gruppocentrale.setLayout(lo_centrale) # + self.grupposcope6 = QGroupBox("scope-laser-06") + self.enable_scope_measurament = QPushButton('Disable scope operation') + self.enable_scope_measurament.clicked.connect(self.abilitascope6) + self.ddmeasure_seedpil_text = QLabel('Seed-Pil') + self.ddmeasure_slupil_text = QLabel('Slu-Pil') + self.ddmeasure_sluseed_text = QLabel('Slu-Seed') + self.ddmeasure_seedpil_iniziale = QLineEdit("") + self.ddmeasure_seedpil_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)") + self.ddmeasure_slupil_iniziale = QLineEdit("") + self.ddmeasure_slupil_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)") + self.ddmeasure_sluseed_iniziale = QLineEdit("") + self.ddmeasure_sluseed_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)") + self.ddmeasure_seedpil_read = QLineEdit("") + self.ddmeasure_seedpil_read.setStyleSheet("background-color: rgb(220, 220, 220)") + self.ddmeasure_slupil_read = QLineEdit("") + self.ddmeasure_slupil_read.setStyleSheet("background-color: rgb(220, 220, 220)") + self.ddmeasure_sluseed_read = QLineEdit("") + self.ddmeasure_sluseed_read.setStyleSheet("background-color: rgb(220, 220, 220)") + self.scope6clearswaps = QPushButton('ClearSweeps') + self.scope6clearswaps.clicked.connect(self.pulisci_oscilloscopio) + lo_scope6 = QGridLayout() + lo_scope6.addWidget(self.enable_scope_measurament, 1, 0) + lo_scope6.addWidget(self.ddmeasure_seedpil_text, 2, 0) + lo_scope6.addWidget(self.ddmeasure_seedpil_iniziale, 2, 1) + lo_scope6.addWidget(self.ddmeasure_seedpil_read, 2, 2) + lo_scope6.addWidget(self.ddmeasure_seedpil_calcolato, 2, 3) + lo_scope6.addWidget(self.ddmeasure_slupil_text, 3, 0) + lo_scope6.addWidget(self.ddmeasure_slupil_iniziale, 3, 1) + lo_scope6.addWidget(self.ddmeasure_slupil_read, 3, 2) + lo_scope6.addWidget(self.ddmeasure_slupil_calcolato, 3, 3) + lo_scope6.addWidget(self.ddmeasure_sluseed_text, 4, 0) + lo_scope6.addWidget(self.ddmeasure_sluseed_iniziale, 4, 1) + lo_scope6.addWidget(self.ddmeasure_sluseed_read, 4, 2) + lo_scope6.addWidget(self.ddmeasure_sluseed_calcolato, 4, 3) + lo_scope6.addWidget(self.scope6clearswaps, 2, 4, 3, 1) + self.grupposcope6.setLayout(lo_scope6) + # self.gruppotrls5 = QGroupBox("Totem delay line") self.trls5_tasto = QPushButton('panel') self.trls5_tasto.clicked.connect(self.delaytotemapri) @@ -328,11 +354,12 @@ class MainWindow(QDialog): lo_pannello.addWidget(self.gruppodeltat, 1, 0, 1, 3) lo_pannello.addWidget(self.gruppobottoni, 1, 3) lo_pannello.addWidget(self.gruppocentrale, 2, 0, 1, 4) - lo_pannello.addWidget(self.gruppotrls5, 3, 0, 1, 4) - lo_pannello.addWidget(self.logbox, 4, 0, 1, 4) + lo_pannello.addWidget(self.grupposcope6, 3, 0, 1, 4) + lo_pannello.addWidget(self.gruppotrls5, 4, 0, 1, 4) + lo_pannello.addWidget(self.logbox, 5, 0, 1, 4) self.setLayout(lo_pannello) self.show() - self.setWindowTitle("SLU EASY DELAY V4") + self.setWindowTitle("SLU LAZY DELAY V5") self.trls4_storna.hide() self.trls8_storna.hide() self.trgE1_storna.hide() @@ -341,7 +368,6 @@ class MainWindow(QDialog): self.trgS2_storna.hide() self.FundAlignment_storna.hide() #inizializzazione - lettura parametri - self.oscilloscopioattivo = False try: self.zero_trls4 = devprodic["trls4"].Position[0] self.trls4_iniziale.setText(str(round(self.zero_trls4, 3))) @@ -408,52 +434,58 @@ class MainWindow(QDialog): self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["tmu"]) + ' PllFundAlignment. check with atomic panel and launch this program again' self.logbox.insertItem(0, voce) -# # inizializzazione calcolo delay totale fel e slu -# if (selettore >= 1 and selettore <= 4) or (selettore >= 5 and selettore <= 6): # elite1 x fel, elite2 x slu -# self.FEL_tot = self.zero_trls4/1000 + int(self.zero_FundAlignment_corretto)*6.33753723 + self.zero_trls8/1000 + self.zero_trgE1 - zero_Fel1 -# self.SLU_tot = self.zero_trls4/1000 + int(self.zero_FundAlignment_corretto)*6.33753723 + self.zero_trgE2 + trlsSLUpos - zero_Slu -# elif selettore >= 7 and selettore <= 11: # elite1 x slu, elite2 x fel -# self.FEL_tot = self.zero_trls4/1000 + int(self.zero_FundAlignment_corretto)*6.33753723 + self.zero_trgE2 - zero_Fel2 -# self.SLU_tot = self.zero_trls4/1000 + int(self.zero_FundAlignment_corretto)*6.33753723 + self.zero_trls8/1000 + self.zero_trgE1 + trlsSLUpos - zero_Slu -# else: # altro -# if selettore < 1 or selettore > 11: -# ret = QMessageBox.warning(None, 'UNKNOWN ACTIVITY', 'The calendar for SEED Laser has UNKONWN activity, correct the calendar and launch the program again') -# self.FEL_tot = '#####' -# self.SLU_tot = '#####' + try: + tmp = self.lettura_oscilloscopio("P1") + if tmp[1] > 12 or tmp[1] == 0: + self.ddmeasure_seedpil_iniziale.setStyleSheet("background-color: rgb(255, 0, 0)") + self.ddmeasure_seedpil_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') + elif 0.2 < tmp[1] < 12: + self.ddmeasure_seedpil_iniziale.setStyleSheet("background-color: rgb(255, 255, 0)") + self.ddmeasure_seedpil_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') + elif tmp[1] < 0.2: + self.ddmeasure_seedpil_iniziale.setStyleSheet("background-color: rgb(0, 255, 0)") + self.ddmeasure_seedpil_iniziale.setText(str(tmp[0]) + ' ns') + tmp = self.lettura_oscilloscopio("P2") + if tmp[1] > 12 or tmp[1] == 0: + self.ddmeasure_slupil_iniziale.setStyleSheet("background-color: rgb(255, 0, 0)") + self.ddmeasure_slupil_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') + elif 0.2 < tmp[1] < 12: + self.ddmeasure_slupil_iniziale.setStyleSheet("background-color: rgb(255, 255, 0)") + self.ddmeasure_slupil_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') + elif tmp[1] < 0.2: + self.ddmeasure_slupil_iniziale.setStyleSheet("background-color: rgb(0, 255, 0)") + self.ddmeasure_slupil_iniziale.setText(str(tmp[0]) + ' ns') + tmp = self.lettura_oscilloscopio("P3") + if tmp[1] > 12 or tmp[1] == 0: + self.ddmeasure_sluseed_iniziale.setStyleSheet("background-color: rgb(255, 0, 0)") + self.ddmeasure_sluseed_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') + elif 0.2 < tmp[1] < 12: + self.ddmeasure_sluseed_iniziale.setStyleSheet("background-color: rgb(255, 255, 0)") + self.ddmeasure_sluseed_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') + elif tmp[1] < 0.2: + self.ddmeasure_sluseed_iniziale.setStyleSheet("background-color: rgb(0, 255, 0)") + self.ddmeasure_sluseed_iniziale.setText(str(tmp[0]) + ' ns') + except: + self.ddmeasure_seedpil_read.setStyleSheet("background-color: rgb(200, 200, 200)") + self.ddmeasure_seedpil_read.setText('') + self.ddmeasure_slupil_read.setStyleSheet("background-color: rgb(200, 200, 200)") + self.ddmeasure_slupil_read.setText('') + self.ddmeasure_sluseed_read.setStyleSheet("background-color: rgb(200, 200, 200)") + self.ddmeasure_sluseed_read.setText('') + self.ddmeasure_seedpil_iniziale.setStyleSheet("background-color: rgb(200, 200, 200)") + self.ddmeasure_seedpil_iniziale.setText('') + self.ddmeasure_slupil_iniziale.setStyleSheet("background-color: rgb(200, 200, 200)") + self.ddmeasure_slupil_iniziale.setText('') + self.ddmeasure_sluseed_iniziale.setStyleSheet("background-color: rgb(200, 200, 200)") + self.ddmeasure_sluseed_iniziale.setText('') + self.scope6clearswaps.setStyleSheet("background-color: rgb(200, 200, 200)") ret = QMessageBox.warning(None, 'Speak with them, please', 'You are going to move the laser delay, please notify to control room.') #timer self.timer = QBasicTimer() - self.timer.start(1500, self) - pass + self.timer.start(1000, self) def timerEvent(self, event): - self.update() - - def closeEvent(self, event): - devprodic["trls8"].write_attribute("Speed", [-1]) - devprodic["trls4"].write_attribute("Speed", [1]) - self.timer.stop() - ret = QMessageBox.warning(None, 'Trigger reference file', 'Do not forget to save the new trigger reference file!') - - def update(self): tinizio = time.time() - ###simulazione### - #self.read_values_trls4_state = "ON" - #self.read_values_trls4_position = -175.5 - #self.read_values_trls8_state = "ON" - #self.read_values_trls8_position = 1099.72 - #self.read_values_trg_state = "ON" - #self.read_values_trg_E1 = 365136 - #self.read_values_trg_E2 = 365819 - #self.read_values_trg_SDG1 = 3757 - #self.read_values_trg_SDG2 = 3027 - #self.locksta = "Locked on CrossCorrelator Signal" - #self.tmu79 = 0.8 - #self.read_values_fbelite1 = "ON" - #self.read_values_corrmin = "ON" - ###letture### - #self.funzionamento.setText('No errors') - #self.funzionamento.setStyleSheet("background-color: rgb(0, 255, 0)") try: tmp = devprodic["trls4"].read_attributes(['State', 'Position']) self.read_values_trls4_state = str(tmp[0].value) @@ -534,15 +566,6 @@ class MainWindow(QDialog): ##calcolo delay cumulativi### self.trls4pos = self.read_values_trls4_position/1000 + int(self.read_values_FundAlignment_corretto)*6.33753723 self.trls8pos = self.read_values_trls8_position/1000 -# if (selettore >= 1 and selettore <= 4) or (selettore >= 5 and selettore <= 6): # elite1 x fel, elite2 x slu -# self.FEL_tot = self.trls4pos + self.trls8pos + self.read_values_trg_E1 - zero_Fel1 -# self.SLU_tot = self.trls4pos + self.read_values_trg_E2 + trlsSLUpos - zero_Slu -# elif selettore >= 7 and selettore <= 11: # elite1 x slu, elite2 x fel -# self.FEL_tot = self.trls4pos + self.read_values_trg_E2 - zero_Fel2 -# self.SLU_tot = self.trls4pos + self.trls8pos + self.read_values_trg_E1 + trlsSLUpos - zero_Slu -# else: # altro -# self.FEL_tot = '#####' -# self.SLU_tot = '#####' try: tmp = devprodic["totemdelay"].read_attributes(['State', 'Position']) if str(tmp[0].value) == 'ON' or str(tmp[0].value) == 'RUNNING': @@ -654,7 +677,8 @@ class MainWindow(QDialog): self.trgS2_read.setText(str(round(self.read_values_trg_S2_delay, 3)) + " ns") self.FundAlignment_read.setText(str(self.read_values_FundAlignment)) # print('parziale ' + str(time.time() - tinizio)) - if self.oscilloscopioattivo: +# print('finale ' + str(time.time() - tinizio)) + if self.contaloop > 4 and self.abilitazioscope6: [self.read_values_P1_avg, self.read_values_P1_sigma, self.read_values_P1_sweep] = self.lettura_oscilloscopio("P1") if self.read_values_P1_sigma > 12 or self.read_values_P1_sigma == 0.0: self.ddmeasure_seedpil_read.setStyleSheet("background-color: rgb(255, 0, 0)") @@ -687,27 +711,20 @@ class MainWindow(QDialog): self.ddmeasure_sluseed_read.setText(str(self.read_values_P3_avg) + ' ns') if self.read_values_P1_sigma > 1 or self.read_values_P2_sigma > 1 or self.read_values_P3_sigma > 1: epilessia1 = (150 + np.random.random_integers(100), 150 + np.random.random_integers(100), 150 + np.random.random_integers(100)) - epilessia2 = (150 + np.random.random_integers(100), 150 + np.random.random_integers(100), 150 + np.random.random_integers(100)) - epilessia3 = (150 + np.random.random_integers(100), 150 + np.random.random_integers(100), 150 + np.random.random_integers(100)) self.scope6clearswaps.setStyleSheet("background-color: rgb" + str(epilessia1) + "") else: self.scope6clearswaps.setStyleSheet("background-color: rgb(200, 200, 200)") + print('read scope6, t: ' + str(time.time() - tinizio)) + self.contaloop = 0 else: - self.ddmeasure_seedpil_read.setStyleSheet("background-color: rgb(200, 200, 200)") - self.ddmeasure_seedpil_read.setText('') - self.ddmeasure_slupil_read.setStyleSheet("background-color: rgb(200, 200, 200)") - self.ddmeasure_slupil_read.setText('') - self.ddmeasure_sluseed_read.setStyleSheet("background-color: rgb(200, 200, 200)") - self.ddmeasure_sluseed_read.setText('') - self.ddmeasure_seedpil_iniziale.setStyleSheet("background-color: rgb(200, 200, 200)") - self.ddmeasure_seedpil_iniziale.setText('') - self.ddmeasure_slupil_iniziale.setStyleSheet("background-color: rgb(200, 200, 200)") - self.ddmeasure_slupil_iniziale.setText('') - self.ddmeasure_sluseed_iniziale.setStyleSheet("background-color: rgb(200, 200, 200)") - self.ddmeasure_sluseed_iniziale.setText('') - self.scope6clearswaps.setStyleSheet("background-color: rgb(200, 200, 200)") -# print('finale ' + str(time.time() - tinizio)) - pass + self.contaloop +=1 + print(str(self.contaloop) + ', t: ' + str(time.time() - tinizio)) + + def closeEvent(self, event): + devprodic["trls8"].write_attribute("Speed", [-1]) + devprodic["trls4"].write_attribute("Speed", [1]) + self.timer.stop() + ret = QMessageBox.warning(None, 'Trigger reference file', 'Do not forget to save the new trigger reference file!') def calcola(self): # muovi SLU print('>>>> SLU >>>>') @@ -720,10 +737,10 @@ class MainWindow(QDialog): print('SLU delay not a number') return ###calcolo### - if self.oscilloscopioattivo: - self.ddmeasure_seedpil_calcolato.setText(str(self.read_values_P1_avg)) - self.ddmeasure_slupil_calcolato.setText(str(self.read_values_P2_avg - delta_t)) - self.ddmeasure_sluseed_calcolato.setText(str(self.read_values_P3_avg - delta_t)) +# if self.oscilloscopioattivo: +# self.ddmeasure_seedpil_calcolato.setText(str(self.read_values_P1_avg)) +# self.ddmeasure_slupil_calcolato.setText(str(self.read_values_P2_avg - delta_t)) +# self.ddmeasure_sluseed_calcolato.setText(str(self.read_values_P3_avg - delta_t)) if (selettore >= 1 and selettore <= 4) or (selettore >= 5 and selettore <= 6): # elite1 x fel, elite2 x slu print('elite1 x fel, elite2 x slu') resto = (delta_t/12.675074466 - int(delta_t/12.675074466))*12.675074466 #ns, avanzo da dare in pasto ai traslatori @@ -762,16 +779,16 @@ class MainWindow(QDialog): self.slfelcal = self.trls4calc + self.trls8calc + self.trg_elite1calc - zero_Fel1 self.slucal = self.trls4calc + self.trg_elite2calc + trlsSLUpos - zero_Slu # valuto spostamento SDG - discriminante_ampli1 = int(3.3 + self.trls4calc + 6.6 + self.trls8calc) - print('discriminante_ampli1 = int(3.3 + ' + str(self.trls4calc) + ' + 6.6 + ' + str(self.trls8calc) + ') = ' + str(discriminante_ampli1)) - discriminante_ampli2 = int(3.3 + self.trls4calc) - print('discriminante_ampli1 = int(3.3 + ' + str(self.trls4calc) + ') = ' + str(discriminante_ampli2)) - self.trg_S1calc = deltaS1 + discriminante_ampli1 - self.trg_S2calc = deltaS2 + discriminante_ampli2 + discriminante_ampli1 = int(self.trls4calc + self.trls8calc) + print('discriminante_ampli1 = int(' + str(self.trls4calc) + ' + ' + str(self.trls8calc) + ') = ' + str(discriminante_ampli1)) + discriminante_ampli2 = int(self.trls4calc) + print('discriminante_ampli1 = int(' + str(self.trls4calc) + ') = ' + str(discriminante_ampli2)) + self.trg_S1calc = zeroS1_fel1 + discriminante_ampli1 + self.trg_S2calc = zeroS2_fel1 + discriminante_ampli2 elif selettore >= 7 and selettore <= 11: # elite1 x slu, elite2 x fel print('elite1 x slu, elite2 x fel') resto = (delta_t/12.675074466 - int(delta_t/12.675074466))*12.675074466 #ns, avanzo da dare in pasto ai traslatori - trg_e1_tmp = self.read_values_trg_E1 + int(delta_t/12.675074466)*12.675074466 #valore tmp, perche potrebbe cambiare di 1 cilclo per via dei traslatori + trg_e1_tmp = self.read_values_trg_E1_delay + int(delta_t/12.675074466)*12.675074466 #valore tmp, perche potrebbe cambiare di 1 cilclo per via dei traslatori # valuto corsa disponibile sulla slitta, se delta_t oltre i limiti agisco ancora sul trigger if self.trls8pos + resto >= -6.6 and self.trls8pos + resto <= 6.6: self.trls8calc = self.trls8pos + resto @@ -791,12 +808,12 @@ class MainWindow(QDialog): self.slfelcal = self.trls4calc + self.trg_elite2calc - zero_Fel2 self.slucal = self.trls4calc + self.trls8calc + self.trg_elite1calc + trlsSLUpos - zero_Slu # valuto spostamento SDG - discriminante_ampli1 = int(3.3 + self.trls4calc + 6.6 + self.trls8calc) - print('discriminante_ampli1 = int(3.3 + ' + str(self.trls4calc) + ' + 6.6 + ' + str(self.trls8calc) + ') = ' + str(discriminante_ampli1)) - discriminante_ampli2 = int(3.3 + self.trls4calc) - print('discriminante_ampli1 = int(3.3 + ' + str(self.trls4calc) + ') = ' + str(discriminante_ampli2)) - self.trg_S1calc = deltaS1 + discriminante_ampli1 - self.trg_S2calc = deltaS2 + discriminante_ampli2 + discriminante_ampli1 = int(self.trls4calc + self.trls8calc) + print('discriminante_ampli1 = int(' + str(self.trls4calc) + ' + ' + str(self.trls8calc) + ') = ' + str(discriminante_ampli1)) + discriminante_ampli2 = int(self.trls4calc) + print('discriminante_ampli1 = int(' + str(self.trls4calc) + ') = ' + str(discriminante_ampli2)) + self.trg_S1calc = zeroS1_fel2 + discriminante_ampli1 + self.trg_S2calc = zeroS2_fel2 + discriminante_ampli2 else: # altro print('no') self.slfelcal = 'ERROR' @@ -867,6 +884,132 @@ class MainWindow(QDialog): self.trgS2_storna.hide() self.FundAlignment_storna.hide() + def pannellosalvatrigger(self): + os.chdir('/home/lfo/data/salvatutto/SEED_trigger/') + sonoin = os.path.abspath('') + indice = 0 + for file in os.listdir(sonoin): + if file.endswith(".csv"): + indice = indice +1 + os.system('python /home/lfo/runtime/panels/bin/slsavetrigger.py &') + time.sleep(5) + indice1 = 0 + for file in os.listdir(sonoin): + if file.endswith(".csv"): + indice1 = indice1 +1 + if indice1 > indice: + self.lanciasalvatrigger.setStyleSheet("background-color: rgb(0, 255, 0)") + else: + self.lanciasalvatrigger.setStyleSheet("background-color: rgb(255, 0, 0)") + + def switchdelayminimizer(self): + stato = str(devprodic["minimizzatore_correlazione"].command_inout('State')) + print(stato) + if stato == "OFF": + devprodic["minimizzatore_correlazione"].command_inout("On",[0]) + else: + devprodic["minimizzatore_correlazione"].command_inout('Off') + + def faprihdb(self): + os.system('firefox http://fcsproxy.elettra.trieste.it/docs/egiga2m/egiga2m.html?conf=fermi_hdbpp &') + + def apritrls4(self): + os.system('/runtime/bin/xps sl/motor/trls_sl.04 -title SL_XPS_delay_line_"trls_sl.04" &') + + def apritrls8(self): + os.system('/runtime/bin/xps sl/motor/trls_sl.08 -title SL_XPS_Elite1_line_"trls_sl.08" &') + + def fapriscope(self): + os.system('/usr/bin/vncviewer scope-laser-06 &') + + def fapritrigger(self): + os.system('/runtime/bin/sl-trigger-gui &') + + def fapritmu(self): + os.system('atkpanel sl/timing/tmu_sl.01 &') + + def delaytotemapri(self): + os.system('/runtime/bin/motion_controller slu/motor/trls_slu.05 -title SLU_TOTEM_DELAY_LINE &') + + def delaytotemgoto(self): + gol = float(self.trls5_set.text()) + devprodic["totemdelay"].write_attribute('Position', gol) + + def dalaytotempiu(self): + gol = devprodic["totemdelay"].Position + float(self.trls5_rel.text()) + devprodic["totemdelay"].write_attribute('Position', gol) + + def dalaytotemmeno(self): + gol = devprodic["totemdelay"].Position - float(self.trls5_rel.text()) + devprodic["totemdelay"].write_attribute('Position', gol) + + def lettura_oscilloscopio(self, canale): + try: + testo = devprodic["scope6"].command_inout("GetParameter", canale) + testo1 = testo.split(',') + for sicurezza in range(len(testo1)): + if testo1[sicurezza] == 'AVG': + tmp_AVG = round(float(testo1[sicurezza + 1].replace('S','')) * 10E+8, 1) + if testo1[sicurezza] == 'SIGMA': + tmp_SIGMA = round(float(testo1[sicurezza + 1].replace('S','')) * 10E+8, 3) + if testo1[sicurezza] == 'SWEEPS': + tmp_SWEEPS = round(float(testo1[sicurezza + 1].replace('S','')), 1) + except: + tmp_AVG = 0 + tmp_SIGMA = 0 + tmp_SWEEPS = 0 + return tmp_AVG, tmp_SIGMA, tmp_SWEEPS + + def pulisci_oscilloscopio(self): + devprodic["scope6"].command_inout("ClearSweeps") + + def dajediscope_inizio(self): + tmp = self.lettura_oscilloscopio("P1") + if tmp[1] > 12 or tmp[1] == 0: + self.ddmeasure_seedpil_iniziale.setStyleSheet("background-color: rgb(255, 0, 0)") + self.ddmeasure_seedpil_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') + elif 0.2 < tmp[1] < 12: + self.ddmeasure_seedpil_iniziale.setStyleSheet("background-color: rgb(255, 255, 0)") + self.ddmeasure_seedpil_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') + elif tmp[1] < 0.2: + self.ddmeasure_seedpil_iniziale.setStyleSheet("background-color: rgb(0, 255, 0)") + self.ddmeasure_seedpil_iniziale.setText(str(tmp[0]) + ' ns') + tmp = self.lettura_oscilloscopio("P2") + if tmp[1] > 12 or tmp[1] == 0: + self.ddmeasure_slupil_iniziale.setStyleSheet("background-color: rgb(255, 0, 0)") + self.ddmeasure_slupil_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') + elif 0.2 < tmp[1] < 12: + self.ddmeasure_slupil_iniziale.setStyleSheet("background-color: rgb(255, 255, 0)") + self.ddmeasure_slupil_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') + elif tmp[1] < 0.2: + self.ddmeasure_slupil_iniziale.setStyleSheet("background-color: rgb(0, 255, 0)") + self.ddmeasure_slupil_iniziale.setText(str(tmp[0]) + ' ns') + tmp = self.lettura_oscilloscopio("P3") + if tmp[1] > 12 or tmp[1] == 0: + self.ddmeasure_sluseed_iniziale.setStyleSheet("background-color: rgb(255, 0, 0)") + self.ddmeasure_sluseed_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') + elif 0.2 < tmp[1] < 12: + self.ddmeasure_sluseed_iniziale.setStyleSheet("background-color: rgb(255, 255, 0)") + self.ddmeasure_sluseed_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') + elif tmp[1] < 0.2: + self.ddmeasure_sluseed_iniziale.setStyleSheet("background-color: rgb(0, 255, 0)") + self.ddmeasure_sluseed_iniziale.setText(str(tmp[0]) + ' ns') + + def abilitascope6(self): + if self.abilitazioscope6 == 1: + self.abilitazioscope6 = 0 + self.enable_scope_measurament.setText('Enable scope operation') + self.ddmeasure_seedpil_read.setText("") + self.ddmeasure_seedpil_read.setStyleSheet("background-color: rgb(220, 220, 220)") + self.ddmeasure_slupil_read.setText("") + self.ddmeasure_slupil_read.setStyleSheet("background-color: rgb(220, 220, 220)") + self.ddmeasure_sluseed_read.setText("") + self.ddmeasure_sluseed_read.setStyleSheet("background-color: rgb(220, 220, 220)") + elif self.abilitazioscope6 == 0: + self.abilitazioscope6 = 1 + self.enable_scope_measurament.setText('Disable scope operation') + + def disastro_solotrls4(self): try: self.trls4_old = devprodic["trls4"].Position[0] @@ -1533,129 +1676,6 @@ class MainWindow(QDialog): self.funzionamento.setText('No errors') self.funzionamento.setStyleSheet("background-color: rgb(0, 255, 0)") - def switchdelayminimizer(self): - stato = str(devprodic["minimizzatore_correlazione"].command_inout('State')) - print(stato) - if stato == "OFF": - devprodic["minimizzatore_correlazione"].command_inout("On",[0]) - else: - devprodic["minimizzatore_correlazione"].command_inout('Off') - - def pannellosalvatrigger(self): - os.chdir('/home/lfo/data/salvatutto/SEED_trigger/') - sonoin = os.path.abspath('') - indice = 0 - for file in os.listdir(sonoin): - if file.endswith(".csv"): - indice = indice +1 - os.system('python /home/lfo/runtime/panels/bin/slsavetrigger.py &') - time.sleep(5) - indice1 = 0 - for file in os.listdir(sonoin): - if file.endswith(".csv"): - indice1 = indice1 +1 - if indice1 > indice: - self.lanciasalvatrigger.setStyleSheet("background-color: rgb(0, 255, 0)") - else: - self.lanciasalvatrigger.setStyleSheet("background-color: rgb(255, 0, 0)") - - def faprihdb(self): - os.system('firefox http://fcsproxy.elettra.trieste.it/docs/egiga2m/egiga2m.html?conf=fermi_hdbpp &') - pass - - def apritrls4(self): - os.system('/runtime/bin/xps sl/motor/trls_sl.04 -title SL_XPS_delay_line_"trls_sl.04" &') - pass - - def apritrls8(self): - os.system('/runtime/bin/xps sl/motor/trls_sl.08 -title SL_XPS_Elite1_line_"trls_sl.08" &') - pass - - def fapriscope(self): - os.system('/usr/bin/vncviewer scope-laser-06 &') - pass - - def fapritrigger(self): - os.system('/runtime/bin/sl-trigger-gui &') - pass - - def fapritmu(self): - os.system('atkpanel sl/timing/tmu_sl.01 &') - - def delaytotemapri(self): - os.system('/runtime/bin/motion_controller slu/motor/trls_slu.05 -title SLU_TOTEM_DELAY_LINE &') - - def delaytotemgoto(self): - gol = float(self.trls5_set.text()) - devprodic["totemdelay"].write_attribute('Position', gol) - - def dalaytotempiu(self): - gol = devprodic["totemdelay"].Position + float(self.trls5_rel.text()) - devprodic["totemdelay"].write_attribute('Position', gol) - - def dalaytotemmeno(self): - gol = devprodic["totemdelay"].Position - float(self.trls5_rel.text()) - devprodic["totemdelay"].write_attribute('Position', gol) - - def lettura_oscilloscopio(self, canale): - try: - testo = devprodic["scope6"].command_inout("GetParameter", canale) - testo1 = testo.split(',') - for sicurezza in range(len(testo1)): - if testo1[sicurezza] == 'AVG': - tmp_AVG = round(float(testo1[sicurezza + 1].replace('S','')) * 10E+8, 1) - if testo1[sicurezza] == 'SIGMA': - tmp_SIGMA = round(float(testo1[sicurezza + 1].replace('S','')) * 10E+8, 3) - if testo1[sicurezza] == 'SWEEPS': - tmp_SWEEPS = round(float(testo1[sicurezza + 1].replace('S','')), 1) - except: - tmp_AVG = 0 - tmp_SIGMA = 0 - tmp_SWEEPS = 0 - return tmp_AVG, tmp_SIGMA, tmp_SWEEPS - - def pulisci_oscilloscopio(self): - devprodic["scope6"].command_inout("ClearSweeps") - - def dajediscope(self): - if self.oscilloscopioattivo == False: - self.enable_scope_measurament.setText('Disable scope operation') - self.oscilloscopioattivo = True - self.timer.start(3200, self) - tmp = self.lettura_oscilloscopio("P1") - if tmp[1] > 12 or tmp[1] == 0: - self.ddmeasure_seedpil_iniziale.setStyleSheet("background-color: rgb(255, 0, 0)") - self.ddmeasure_seedpil_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') - elif 0.2 < tmp[1] < 12: - self.ddmeasure_seedpil_iniziale.setStyleSheet("background-color: rgb(255, 255, 0)") - self.ddmeasure_seedpil_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') - elif tmp[1] < 0.2: - self.ddmeasure_seedpil_iniziale.setStyleSheet("background-color: rgb(0, 255, 0)") - self.ddmeasure_seedpil_iniziale.setText(str(tmp[0]) + ' ns') - tmp = self.lettura_oscilloscopio("P2") - if tmp[1] > 12 or tmp[1] == 0: - self.ddmeasure_slupil_iniziale.setStyleSheet("background-color: rgb(255, 0, 0)") - self.ddmeasure_slupil_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') - elif 0.2 < tmp[1] < 12: - self.ddmeasure_slupil_iniziale.setStyleSheet("background-color: rgb(255, 255, 0)") - self.ddmeasure_slupil_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') - elif tmp[1] < 0.2: - self.ddmeasure_slupil_iniziale.setStyleSheet("background-color: rgb(0, 255, 0)") - self.ddmeasure_slupil_iniziale.setText(str(tmp[0]) + ' ns') - tmp = self.lettura_oscilloscopio("P3") - if tmp[1] > 12 or tmp[1] == 0: - self.ddmeasure_sluseed_iniziale.setStyleSheet("background-color: rgb(255, 0, 0)") - self.ddmeasure_sluseed_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') - elif 0.2 < tmp[1] < 12: - self.ddmeasure_sluseed_iniziale.setStyleSheet("background-color: rgb(255, 255, 0)") - self.ddmeasure_sluseed_iniziale.setText(str(tmp[0]) + ' ns, sigma ' + str(tmp[1]) + ' ns') - elif tmp[1] < 0.2: - self.ddmeasure_sluseed_iniziale.setStyleSheet("background-color: rgb(0, 255, 0)") - self.ddmeasure_sluseed_iniziale.setText(str(tmp[0]) + ' ns') - elif self.oscilloscopioattivo == True: - self.oscilloscopioattivo = False - self.enable_scope_measurament.setText('Enable scope operation') - self.timer.start(1000, self) if __name__ == '__main__': app = QApplication([]) @@ -1669,6 +1689,53 @@ if __name__ == '__main__': font_pannello = QFont("Arial", round(dimensione[0]/160.0), -1, False) app.setFont(font_pannello) window = MainWindow() - #window.resize(dimensione[0], dimensione[1]) window.show() app.exec_() + + + +#FEL2 +#trls4, trls8, tmu, sdg1, sdg2 +#0, 0, 1, 203820, 202945 +#0, 0, -1, 203814, 202939 +# +#0, 5675, 203826, 202945 +#0, -6000, 203814, 202945 +#0, -5000, 203815, 202945 +#0, -4000, 203816, 202945 +#0, -3000, 203817, 202945 +#0, -2000, 203818, 202945 +#0, -1000, 203819, 202945 +#0, 0, 203820, 202945 +#0, 1000, 203821, 202945 +#0, 2000, 203822, 202945 +#0, 3000, 203823, 202945 +#0, 4000, 203824, 202945 +#0, 5000, 203825, 202945 +#0, 6000, 203826, 202945 +#0, -5675, 203814, 202945 +#0, -4675, 203815, 202945 +#0, -3675, 203816, 202945 +#0, -2675, 203817, 202945 +#0, -1675, 203818, 202945 +#0, -0675, 203819, 202945 +#0, 325, 203820, 202945 +#0, 1325, 203821, 202945 +#0, 2325, 203822, 202945 +#0, 3325, 203823, 202945 +#0, 4325, 203824, 202945 +#0, 5325, 203825, 202945 +#0, 6325, 203826, 202945 +#0, 5350, 203814, 202945 +#1000, 0, 203821, 202946 +#2000, 0, 203822, 202947 +#2000, 1000, 203823, 202947 +#2000, -4675, 203817, 202947 +#-2000, 0, 203818, 202943 +#-2000, 2000, 203820, 202943 +#-2000, -4675, 203814, 202943 +#-2000, -1325, 203817, 202943 +# +# +#FEL1 +#trls4, trls8, tmu, sdg1, sdg2