diff --git a/src/SluDelayCalculator.py b/src/SluDelayCalculator.py
new file mode 100644
index 0000000000000000000000000000000000000000..b1be9bfc8a60641832474606ce54b32bb8dd618f
--- /dev/null
+++ b/src/SluDelayCalculator.py
@@ -0,0 +1,1773 @@
+#!/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
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+import time
+import sys
+
+selettore = PyTango.DeviceProxy("srv-tango-srf-01:20000/sl/laser/calendar_sl.01").activityNum
+
+devprodic = {}
+devprodic["trls4"] = PyTango.DeviceProxy("srv-tango-srf-01:20000/sl/motor/trls_sl.04")
+devprodic["trls8"] = PyTango.DeviceProxy("srv-tango-srf-01:20000/sl/motor/trls_sl.08")
+devprodic["triggerEVR"] = PyTango.DeviceProxy("srv-tango-srf-01:20000/ec-sl-slpsr-01/evr/ff100000")
+devprodic["triggerS1"] = PyTango.DeviceProxy("srv-tango-srf-01:20000/sl/delay/dgq_slpsr.02")
+devprodic["triggerS2"] = PyTango.DeviceProxy("srv-tango-srf-01:20000/sl/delay/dgq_slpsr.01")
+devprodic["tmu"] = PyTango.DeviceProxy("srv-tango-srf-01:20000/sl/timing/tmu_sl.01")
+devprodic["minimizzatore_correlazione"] = PyTango.DeviceProxy("srv-tango-srf-01:20000/f/optimization/optimizer_sldelay_f.01")
+devprodic["feedbackelite1"] = PyTango.DeviceProxy("srv-tango-srf-01:20000/sl/feedback/rtltf_osc.02")
+devprodic["totemdelay"] = PyTango.DeviceProxy("srv-tango-srf-01:20000/slu/motor/trls_slu.05")
+devprodic["scope6"] = PyTango.DeviceProxy("srv-tango-srf-01:20000/sl/diagnostics/scope_sl.01")
+# imposto subito velocita` 100 per salvare tempo procedura
+devprodic["trls8"].write_attribute("Speed", [-100])
+devprodic["trls4"].write_attribute("Speed", [100])
+
+zero_Slu = 0
+zero_Fel1 = 0
+zero_Fel2 = 0
+zero_Eos1 = 0
+zero_Eos2 = 0
+trlsEOS2pos = 0
+trlsEOS1pos = 0
+trlsSLUpos = 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
+###Slu = TRLS4_78MHz + Trg_E2 + TRLS_Slu
+###TRLS4_78MHz = Fel1 - Slu + Fel1 - Trg_E2 + TRLS_Slu
+###TRLS8 = Slu - Fel1 - Trg_E1 - Trg_E2 - TRLS_Slu
+###Trg_SDG1
+###Trg_SDG2
+
+#### Fel2 Elite2, Slu + Eos2 + Eehg Elite1
+###Fel2 = TRLS4_78MHz + Trg_E2
+###Slu = TRLS4_78MHz + TRLS8 + Trg_E1 + TRLS_Slu
+###TRLS4_78MHz = Fel2 - Trg_E2
+###TRLS8 = Slu - Fel2 - Trls_Slu + Trg_E2 - Trg_E1
+###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)
+        self.funzionamento.setStyleSheet("background-color: rgb(0, 255, 0)")
+        self.selezione = QLineEdit("")
+        self.selezione.setReadOnly(1)
+        if selettore >= 1 and selettore <= 6:
+            self.selezione.setText('elite1 x fel, elite2 x slu')
+        elif selettore >= 7 and selettore <= 11:
+            self.selezione.setText('elite1 x slu, elite2 x fel')
+        else:
+            self.selezione.setText('not possible to decide what to move according sl calendar')
+        self.lanciasalvatrigger = QPushButton("Save Trigger")
+        self.lanciasalvatrigger.clicked.connect(self.pannellosalvatrigger)
+        self.gruppodeltat = QGroupBox("")
+        self.SLUdelta_t = QLineEdit("ns")
+        self.SLUcalcola = QPushButton("Calculate")
+        self.SLUcalcola.clicked.connect(self.calcola)
+        self.figura = QLabel()
+        pixmap = QPixmap('/home/lfo/tmp/verso_delay_slu.png')
+        self.figura.setPixmap(pixmap)
+        lo_delta = QGridLayout()
+        lo_delta.addWidget(self.figura, 0, 0, 1, 3)
+        lo_delta.addWidget(QLabel("SLU delta t"), 1, 0, 1, 1)
+        lo_delta.addWidget(self.SLUdelta_t, 1, 1, 1, 1)
+        lo_delta.addWidget(self.SLUcalcola, 1, 2, 1, 1)
+        self.gruppodeltat.setLayout(lo_delta)
+        #
+        self.gruppobottoni = QGroupBox("")
+        self.apriscope = QPushButton('Open scope-laser-06')
+        self.apriscope.clicked.connect(self.fapriscope)
+        self.apritrigger = QPushButton('Open Seed trigger panel')
+        self.apritrigger.clicked.connect(self.fapritrigger)
+        self.aprihdb = QPushButton('Open HDB')
+        self.aprihdb.clicked.connect(self.faprihdb)
+        self.minimcorr = QPushButton("Corr.min.Delay")
+        self.minimcorr.clicked.connect(self.switchdelayminimizer)
+        self.feedbackelite1 = QPushButton("fb Elite1 in")
+        lo_bottoni = QGridLayout()
+        lo_bottoni.addWidget(self.apriscope, 0, 0, 1, 3)
+        lo_bottoni.addWidget(self.apritrigger, 2, 0, 1, 3)
+        lo_bottoni.addWidget(self.aprihdb, 3, 0, 1, 3)
+        lo_bottoni.addWidget(self.minimcorr, 4, 0, 1, 3)
+        lo_bottoni.addWidget(self.feedbackelite1, 5, 0, 1, 3)
+        self.gruppobottoni.setLayout(lo_bottoni)
+        #
+        self.gruppocentrale = QGroupBox()
+        self.scritta1 = QLabel('0 state')
+        self.scritta2 = QLabel('present state')
+        self.scritta3 = QLabel('calculated')
+        self.scritta4 = QLabel('delta')
+        self.trls4_state = QPushButton("TRLS4")
+        self.trls4_state.clicked.connect(self.apritrls4)
+        self.trls8_state = QPushButton("TRLS8")
+        self.trls8_state.clicked.connect(self.apritrls8)
+        self.trgE1_state = QPushButton("TRG Elite1")
+        self.trgE1_state.clicked.connect(self.fapritrigger)
+        self.trgS1_state = QPushButton("TRG S1")
+        self.trgS1_state.clicked.connect(self.fapritrigger)
+        self.trgE2_state = QPushButton("TRG Elite2")
+        self.trgE2_state.clicked.connect(self.fapritrigger)
+        self.trgS2_state = QPushButton("TRG S2")
+        self.trgS2_state.clicked.connect(self.fapritrigger)
+        self.FundAlignment_state = QPushButton("TMU")
+        self.FundAlignment_state.clicked.connect(self.fapritmu)
+        self.trls4_iniziale = QLineEdit("")
+        self.trls4_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.trls4_iniziale.setReadOnly(1)
+        self.trls8_iniziale = QLineEdit("")
+        self.trls8_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.trls8_iniziale.setReadOnly(1)
+        self.trgE1_iniziale = QLineEdit("")
+        self.trgE1_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.trgE1_iniziale.setReadOnly(1)
+        self.trgS1_iniziale = QLineEdit("")
+        self.trgS1_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.trgS1_iniziale.setReadOnly(1)
+        self.trgE2_iniziale = QLineEdit("")
+        self.trgE2_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.trgE2_iniziale.setReadOnly(1)
+        self.trgS2_iniziale = QLineEdit("")
+        self.trgS2_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.trgS2_iniziale.setReadOnly(1)
+        self.FundAlignment_iniziale = QLineEdit("")
+        self.FundAlignment_iniziale.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.FundAlignment_iniziale.setReadOnly(1)
+        self.trls4_read = QLineEdit("")
+        self.trls4_read.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.trls4_read.setReadOnly(1)
+        self.trls8_read = QLineEdit("")
+        self.trls8_read.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.trls8_read.setReadOnly(1)
+        self.trgE1_read = QLineEdit("")
+        self.trgE1_read.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.trgE1_read.setReadOnly(1)
+        self.trgS1_read = QLineEdit("")
+        self.trgS1_read.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.trgS1_read.setReadOnly(1)
+        self.trgE2_read = QLineEdit("")
+        self.trgE2_read.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.trgE2_read.setReadOnly(1)
+        self.trgS2_read = QLineEdit("")
+        self.trgS2_read.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.trgS2_read.setReadOnly(1)
+        self.FundAlignment_read = QLineEdit("")
+        self.FundAlignment_read.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.FundAlignment_read.setReadOnly(1)
+        self.ddmeasure_seedpil_calcolato = QLineEdit("")
+        self.ddmeasure_slupil_calcolato = QLineEdit("")
+        self.ddmeasure_sluseed_calcolato = QLineEdit("")
+        self.trls4_calcolato = QLineEdit("")
+        self.trls8_calcolato = QLineEdit("")
+        self.trgE1_calcolato = QLineEdit("")
+        self.trgS1_calcolato = QLineEdit("")
+        self.trgE2_calcolato = QLineEdit("")
+        self.trgS2_calcolato = QLineEdit("")
+        self.FundAlignment_calcolato = QLineEdit("")
+        self.trls4_delta = QLineEdit("")
+        self.trls8_delta = QLineEdit("")
+        self.trgE1_delta = QLineEdit("")
+        self.trgS1_delta = QLineEdit("")
+        self.trgE2_delta = QLineEdit("")
+        self.trgS2_delta = QLineEdit("")
+        self.FundAlignment_delta = QLineEdit("")
+        self.trls4_applica = QPushButton('Apply')
+        self.trls4_applica.clicked.connect(self.disastro_solotrls4)
+        self.trls8_applica = QPushButton('Apply')
+        self.trls8_applica.clicked.connect(self.disastro_solotrls8)
+        self.trgE1_applica = QPushButton('Apply')
+        self.trgE1_applica.clicked.connect(self.disastro_soloE1trg)
+        self.trgS1_applica = QPushButton('Apply')
+        self.trgS1_applica.clicked.connect(self.disastro_soloS1trg)
+        self.trgE2_applica = QPushButton('Apply')
+        self.trgE2_applica.clicked.connect(self.disastro_soloE2trg)
+        self.trgS2_applica = QPushButton('Apply')
+        self.trgS2_applica.clicked.connect(self.disastro_soloS2trg)
+        self.FundAlignment_applica = QPushButton('Apply')
+        self.FundAlignment_applica.clicked.connect(self.disastro_solotmu)
+        self.trls4_storna = QPushButton('UNDO')
+        self.trls4_storna.clicked.connect(self.doppiodisastro_solotrls4)
+        self.trls8_storna = QPushButton('UNDO')
+        self.trls8_storna.clicked.connect(self.doppiodisastro_solotrls8)
+        self.trgE1_storna = QPushButton('UNDO')
+        self.trgE1_storna.clicked.connect(self.doppiodisastro_soloE1trg)
+        self.trgS1_storna = QPushButton('UNDO')
+        self.trgS1_storna.clicked.connect(self.doppiodisastro_soloS1trg)
+        self.trgE2_storna = QPushButton('UNDO')
+        self.trgE2_storna.clicked.connect(self.doppiodisastro_soloE2trg)
+        self.trgS2_storna = QPushButton('UNDO')
+        self.trgS2_storna.clicked.connect(self.doppiodisastro_soloS2trg)
+        self.FundAlignment_storna = QPushButton('UNDO')
+        self.FundAlignment_storna.clicked.connect(self.doppiodisastro_solotmu)
+        self.ripristina = QPushButton("Restore 0state")
+        self.ripristina.clicked.connect(self.ripristino)
+        self.applica = QPushButton("APPLY ALL")
+        self.applica.clicked.connect(self.disastro)
+        self.comenondetto = QPushButton("UNDO")
+        self.comenondetto.clicked.connect(self.doppiodisastro)
+        lo_centrale = QGridLayout()
+        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.scritta4, 0, 4)
+        lo_centrale.addWidget(self.trls4_state, 10, 0)
+        lo_centrale.addWidget(self.trls4_iniziale, 10, 1)
+        lo_centrale.addWidget(self.trls4_read, 10, 2)
+        lo_centrale.addWidget(self.trls4_calcolato, 10, 3)
+        lo_centrale.addWidget(self.trls4_delta, 10, 4)
+        lo_centrale.addWidget(self.trls4_applica, 10, 5)
+        lo_centrale.addWidget(self.trls4_storna, 10, 5)
+        lo_centrale.addWidget(self.trls8_state, 11, 0)
+        lo_centrale.addWidget(self.trls8_iniziale, 11, 1)
+        lo_centrale.addWidget(self.trls8_read, 11, 2)
+        lo_centrale.addWidget(self.trls8_calcolato, 11, 3)
+        lo_centrale.addWidget(self.trls8_delta, 11, 4)
+        lo_centrale.addWidget(self.trls8_applica, 11, 5)
+        lo_centrale.addWidget(self.trls8_storna, 11, 5)
+        lo_centrale.addWidget(self.trgE1_state, 12, 0)
+        lo_centrale.addWidget(self.trgE1_iniziale, 12, 1)
+        lo_centrale.addWidget(self.trgE1_read, 12, 2)
+        lo_centrale.addWidget(self.trgE1_calcolato, 12, 3)
+        lo_centrale.addWidget(self.trgE1_delta, 12, 4)
+        lo_centrale.addWidget(self.trgE1_applica, 12, 5)
+        lo_centrale.addWidget(self.trgE1_storna, 12, 5)
+        lo_centrale.addWidget(self.trgS1_state, 13, 0)
+        lo_centrale.addWidget(self.trgS1_iniziale, 13, 1)
+        lo_centrale.addWidget(self.trgS1_read, 13, 2)
+        lo_centrale.addWidget(self.trgS1_calcolato, 13, 3)
+        lo_centrale.addWidget(self.trgS1_delta, 13, 4)
+        lo_centrale.addWidget(self.trgS1_applica, 13, 5)
+        lo_centrale.addWidget(self.trgS1_storna, 13, 5)
+        lo_centrale.addWidget(self.trgE2_state, 14, 0)
+        lo_centrale.addWidget(self.trgE2_iniziale, 14, 1)
+        lo_centrale.addWidget(self.trgE2_read, 14, 2)
+        lo_centrale.addWidget(self.trgE2_calcolato, 14, 3)
+        lo_centrale.addWidget(self.trgE2_delta, 14, 4)
+        lo_centrale.addWidget(self.trgE2_applica, 14, 5)
+        lo_centrale.addWidget(self.trgE2_storna, 14, 5)
+        lo_centrale.addWidget(self.trgS2_state, 15, 0)
+        lo_centrale.addWidget(self.trgS2_iniziale, 15, 1)
+        lo_centrale.addWidget(self.trgS2_read, 15, 2)
+        lo_centrale.addWidget(self.trgS2_calcolato, 15, 3)
+        lo_centrale.addWidget(self.trgS2_delta, 15, 4)
+        lo_centrale.addWidget(self.trgS2_applica, 15, 5)
+        lo_centrale.addWidget(self.trgS2_storna, 15, 5)
+        lo_centrale.addWidget(self.FundAlignment_state, 16, 0)
+        lo_centrale.addWidget(self.FundAlignment_iniziale, 16, 1)
+        lo_centrale.addWidget(self.FundAlignment_read, 16, 2)
+        lo_centrale.addWidget(self.FundAlignment_calcolato, 16, 3)
+        lo_centrale.addWidget(self.FundAlignment_delta, 16, 4)
+        lo_centrale.addWidget(self.FundAlignment_applica, 16, 5)
+        lo_centrale.addWidget(self.FundAlignment_storna, 16, 5)
+        lo_centrale.addWidget(self.ripristina, 20, 1)
+        lo_centrale.addWidget(self.applica, 20, 3)
+        lo_centrale.addWidget(self.comenondetto, 20, 3)
+        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)
+        self.trls5_read = QLineEdit('')
+        self.trls5_read.setReadOnly(1)
+        self.trls5_read.setStyleSheet("background-color: rgb(220, 220, 220)")
+        self.trls5_goto = QPushButton('GoTo:')
+        self.trls5_goto.clicked.connect(self.delaytotemgoto)
+        self.trls5_set = QLineEdit('')
+        self.trls5_b = QPushButton('<')
+        self.trls5_b.clicked.connect(self.dalaytotemmeno)
+        self.trls5_rel = QLineEdit('')
+        self.trls5_f = QPushButton('>')
+        self.trls5_f.clicked.connect(self.dalaytotempiu)
+        lo_trls5 = QGridLayout()
+        lo_trls5.addWidget(self.trls5_tasto, 0, 0)
+        lo_trls5.addWidget(self.trls5_read, 0, 1)
+        lo_trls5.addWidget(self.trls5_goto, 0, 2)
+        lo_trls5.addWidget(self.trls5_set, 0, 3)
+        lo_trls5.addWidget(self.trls5_b, 0, 4)
+        lo_trls5.addWidget(self.trls5_rel, 0, 5)
+        lo_trls5.addWidget(self.trls5_f, 0, 6)
+        self.gruppotrls5.setLayout(lo_trls5)
+        #
+        self.logbox = QListWidget()
+        self.logbox.setMaximumHeight(80)
+        lo_pannello = QGridLayout()
+        lo_pannello.addWidget(self.funzionamento, 0, 0)
+        lo_pannello.addWidget(self.selezione, 0, 1)
+        lo_pannello.addWidget(self.lanciasalvatrigger, 0, 3)
+        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.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 LAZY DELAY V5")
+        self.trls4_storna.hide()
+        self.trls8_storna.hide()
+        self.trgE1_storna.hide()
+        self.trgS1_storna.hide()
+        self.trgE2_storna.hide()
+        self.trgS2_storna.hide()
+        self.FundAlignment_storna.hide()
+        #inizializzazione - lettura parametri
+        try:
+            self.zero_trls4 = devprodic["trls4"].Position[0]
+            self.trls4_iniziale.setText(str(round(self.zero_trls4, 3)))
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls4"]) + ' Position. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+        try:
+            self.zero_trls8 = devprodic["trls8"].Position[0]
+            self.trls8_iniziale.setText(str(round(self.zero_trls8, 3)))
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls8"]) + ' Position. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+        try:
+            self.zero_trgS2 = devprodic["triggerS2"].command_inout('GetDelay', 2)*1000000000
+            self.trgS2_iniziale.setText(str(round(self.zero_trgS2, 1)))
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerS2"]) + ' S2Delay. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+        try:
+            self.zero_trgS1 = devprodic["triggerS1"].command_inout('GetDelay', 2)*1000000000
+            self.trgS1_iniziale.setText(str(round(self.zero_trgS1, 1)))
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerS1"]) + ' S1Delay. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+        try:
+            self.zero_trgE2 = devprodic["triggerEVR"].Chan2Delay
+            self.trgE2_iniziale.setText(str(round(self.zero_trgE2, 1)))
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerEVR"]) + ' Chan2Delay. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+        try:
+            self.zero_trgE1 = devprodic["triggerEVR"].Chan1Delay
+            self.trgE1_iniziale.setText(str(round(self.zero_trgE1, 1)))
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerEVR"]) + ' Chan2Delay. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+        try:
+            self.zero_FundAlignment = devprodic["tmu"].PllFundAlignment
+            self.FundAlignment_iniziale.setText(str(self.zero_FundAlignment))
+            if self.zero_FundAlignment == 1:
+                self.zero_FundAlignment_corretto = 1
+            elif self.zero_FundAlignment == -1:
+                self.zero_FundAlignment_corretto = 0
+            else:
+                tmp = devprodic["tmu"].PllFundPhaseVolt
+                if tmp > 1:
+                    self.zero_FundAlignment_corretto = 1
+                else:
+                    self.zero_FundAlignment_corretto = 0
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            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)
+        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(1000, self)
+
+    def timerEvent(self, event):
+        tinizio = time.time()
+        try:
+            tmp = devprodic["trls4"].read_attributes(['State', 'Position'])
+            self.read_values_trls4_state = str(tmp[0].value)
+            self.read_values_trls4_position = tmp[1].value[0]
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls4"]) + ' State and Position. fix the problem and procede'
+            self.logbox.insertItem(0, voce)
+        try:
+            tmp = devprodic["trls8"].read_attributes(['State', 'Position'])
+            self.read_values_trls8_state = str(tmp[0].value)
+            self.read_values_trls8_position = tmp[1].value[0]
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls8"]) + ' State and Position. fix the problem and procede'
+            self.logbox.insertItem(0, voce)
+        try:
+            self.read_values_trg_S2_state = str(devprodic["triggerS2"].State())
+            self.read_values_trg_S2_delay = devprodic["triggerS2"].command_inout('GetDelay', 2)*1000000000
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerS2"]) + ' S2Delay. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+        try:
+            self.read_values_trg_S1_state = str(devprodic["triggerS1"].State())
+            self.read_values_trg_S1_delay = devprodic["triggerS1"].command_inout('GetDelay', 2)*1000000000
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerS1"]) + ' S1Delay. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+        try:
+            tmp = devprodic["triggerEVR"].read_attributes(['State', 'Chan1Delay', 'Chan2Delay'])
+            self.read_values_trg_state = str(tmp[0].value)
+            self.read_values_trg_E1_delay = tmp[1].value
+            self.read_values_trg_E2_delay = tmp[2].value
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerEVR"]) + ' State, Chan1Delay, Chan2Delay. fix the problem and procede'
+            self.logbox.insertItem(0, voce)
+        try:
+            tmp = devprodic["tmu"].read_attributes(['LockStatus', 'PllFundAlignment'])
+            self.read_values_locksta = tmp[0].value
+            self.read_values_FundAlignment = tmp[1].value
+            if self.read_values_FundAlignment == 1:
+                self.read_values_FundAlignment_corretto = 1
+            elif self.read_values_FundAlignment == -1:
+                self.read_values_FundAlignment_corretto = 0
+            else:
+                tmp = devprodic["tmu"].PllFundPhaseVolt
+                if tmp > 1:
+                    self.read_values_FundAlignment_corretto = 1
+                else:
+                    self.read_values_FundAlignment_corretto = 0
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["tmu"]) + ' LockStatus, PllFundAlignment. fix the problem and procede'
+            self.logbox.insertItem(0, voce)
+        try:
+            self.read_values_fbelite1 = str(devprodic["feedbackelite1"].command_inout('State'))
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["feedbackelite1"]) + ' State. fix the problem and procede'
+            self.logbox.insertItem(0, voce)
+        try:
+            self.read_values_corrmin = str(devprodic["minimizzatore_correlazione"].command_inout('State'))
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["minimizzatore_correlazione"]) + ' State. fix the problem and procede'
+            self.logbox.insertItem(0, voce)
+        ##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
+        try:
+            tmp = devprodic["totemdelay"].read_attributes(['State', 'Position'])
+            if str(tmp[0].value) == 'ON' or str(tmp[0].value) == 'RUNNING':
+                self.trls5_tasto.setStyleSheet("background-color: rgb(0, 255, 0)")
+            elif str(tmp[0].value) == 'MOVING':
+                self.trls5_tasto.setStyleSheet("background-color: rgb(0, 0, 255)")
+            elif str(tmp[0].value) == 'FAULT' or str(tmp[0].value) == 'ALARM':
+                self.trls5_tasto.setStyleSheet("background-color: rgb(255, 0, 0)")
+            else:
+                self.trls5_tasto.setStyleSheet("background-color: rgb(150, 150, 150)")
+            self.trls5_read.setText(str(round(tmp[1].value, 3)))
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            self.trls5_read.setText('#####')
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["totemdelay"]) + ' State and Position. fix the problem and procede'
+            self.logbox.insertItem(0, voce)
+        ###aggiornamento pannello###
+        if self.read_values_trls4_state == "ON" or self.read_values_trls4_state == "RUNNING":
+            self.trls4_state.setStyleSheet("background-color: rgb(0, 255, 0)")
+        elif self.read_values_trls4_state == "MOVING":
+            self.trls4_state.setStyleSheet("background-color: rgb(0, 0, 255)")
+        elif self.read_values_trls4_state == "FAULT" or self.read_values_trls4_state == "ALARM":
+            self.trls4_state.setStyleSheet("background-color: rgb(255, 0, 0)")
+        else:
+            self.trls4_state.setStyleSheet("background-color: rgb(150, 150, 150)")
+        if self.read_values_trls8_state == "ON" or self.read_values_trls8_state == "RUNNING":
+            self.trls8_state.setStyleSheet("background-color: rgb(0, 255, 0)")
+        elif self.read_values_trls8_state == "MOVING":
+            self.trls8_state.setStyleSheet("background-color: rgb(0, 0, 255)")
+        elif self.read_values_trls8_state == "FAULT" or self.read_values_trls8_state == "ALARM":
+            self.trls8_state.setStyleSheet("background-color: rgb(255, 0, 0)")
+        else:
+            self.trls8_state.setStyleSheet("background-color: rgb(150, 150, 150)")
+        if self.read_values_trg_S1_state == "ON" or self.read_values_trg_S1_state == "RUNNING":
+            self.trgS1_state.setStyleSheet("background-color: rgb(0, 255, 0)")
+            self.trgS1_state.setStyleSheet("background-color: rgb(0, 255, 0)")
+        elif self.read_values_trg_S1_state == "MOVING":
+            self.trgS1_state.setStyleSheet("background-color: rgb(0, 0, 255)")
+            self.trgS1_state.setStyleSheet("background-color: rgb(0, 0, 255)")
+        elif self.read_values_trg_S1_state == "FAULT" or self.read_values_trg_S1_state == "ALARM":
+            self.trgS1_state.setStyleSheet("background-color: rgb(255, 0, 0)")
+            self.trgS1_state.setStyleSheet("background-color: rgb(255, 0, 0)")
+        else:
+            self.trgS2_state.setStyleSheet("background-color: rgb(150, 150, 150)")
+            self.trgS2_state.setStyleSheet("background-color: rgb(150, 150, 150)")
+        if self.read_values_trg_S2_state == "ON" or self.read_values_trg_S2_state == "RUNNING":
+            self.trgS2_state.setStyleSheet("background-color: rgb(0, 255, 0)")
+            self.trgS2_state.setStyleSheet("background-color: rgb(0, 255, 0)")
+        elif self.read_values_trg_S2_state == "MOVING":
+            self.trgS2_state.setStyleSheet("background-color: rgb(0, 0, 255)")
+            self.trgS2_state.setStyleSheet("background-color: rgb(0, 0, 255)")
+        elif self.read_values_trg_S2_state == "FAULT" or self.read_values_trg_S2_state == "ALARM":
+            self.trgS2_state.setStyleSheet("background-color: rgb(255, 0, 0)")
+            self.trgS2_state.setStyleSheet("background-color: rgb(255, 0, 0)")
+        else:
+            self.trgS2_state.setStyleSheet("background-color: rgb(150, 150, 150)")
+            self.trgS2_state.setStyleSheet("background-color: rgb(150, 150, 150)")
+        if self.read_values_trg_state == "ON" or self.read_values_trg_state == "RUNNING":
+            self.trgE1_state.setStyleSheet("background-color: rgb(0, 255, 0)")
+            self.trgE2_state.setStyleSheet("background-color: rgb(0, 255, 0)")
+        elif self.read_values_trg_state == "MOVING":
+            self.trgE1_state.setStyleSheet("background-color: rgb(0, 0, 255)")
+            self.trgE2_state.setStyleSheet("background-color: rgb(0, 0, 255)")
+        elif self.read_values_trg_state == "FAULT" or self.read_values_trg_state == "ALARM":
+            self.trgE1_state.setStyleSheet("background-color: rgb(255, 0, 0)")
+            self.trgE2_state.setStyleSheet("background-color: rgb(255, 0, 0)")
+        else:
+            self.trgE1_state.setStyleSheet("background-color: rgb(150, 150, 150)")
+            self.trgE2_state.setStyleSheet("background-color: rgb(150, 150, 150)")
+        if self.read_values_corrmin == "ON":
+            self.minimcorr.setStyleSheet("background-color: rgb(0, 255, 0)")
+            self.minimcorr.setText('Delay:ON')
+        elif self.read_values_corrmin == "RUNNING":
+            self.minimcorr.setStyleSheet("background-color: rgb(0, 0, 255)")
+            self.minimcorr.setText('Delay:RUNNING')
+        elif self.read_values_corrmin == "MOVING":
+            self.minimcorr.setStyleSheet("background-color: rgb(0, 0, 255)")
+            self.minimcorr.setText('Delay:MOVING')
+        elif self.read_values_corrmin == "FAULT":
+            self.minimcorr.setStyleSheet("background-color: rgb(255, 0, 0)")
+            self.minimcorr.setText('Delay:FAULT')
+        elif self.read_values_corrmin == "ALARM":
+            self.minimcorr.setStyleSheet("background-color: rgb(255, 255, 0)")
+            self.minimcorr.setText('Delay:ALARM')
+        elif self.read_values_corrmin == "OFF":
+            self.minimcorr.setStyleSheet("background-color: rgb(255, 255, 255)")
+            self.minimcorr.setText('Delay:OFF')
+        else:
+            self.minimcorr.setStyleSheet("background-color: rgb(150, 150, 150)")
+            self.minimcorr.setText('Delay:???')
+        if self.read_values_fbelite1 == "ON" or self.read_values_fbelite1 == "RUNNING":
+            self.feedbackelite1.setStyleSheet("background-color: rgb(0, 255, 0)")
+        elif self.read_values_fbelite1 == "MOVING":
+            self.feedbackelite1.setStyleSheet("background-color: rgb(0, 0, 255)")
+        elif self.read_values_fbelite1 == "FAULT" or self.read_values_fbelite1 == "ALARM":
+            self.feedbackelite1.setStyleSheet("background-color: rgb(255, 0, 0)")
+        else:
+            self.feedbackelite1.setStyleSheet("background-color: rgb(150, 150, 150)")
+        if self.read_values_locksta == "Locked on Cross Correlator Signal":
+            self.FundAlignment_state.setStyleSheet("background-color: rgb(0, 255, 0)")
+        else:
+            self.FundAlignment_state.setStyleSheet("background-color: rgb(255, 0, 0)")
+        self.trls4_read.setText(str(round(self.read_values_trls4_position, 3)) + " ps")
+        self.trls8_read.setText(str(round(self.read_values_trls8_position, 3)) + " ps")
+        self.trgE1_read.setText(str(round(self.read_values_trg_E1_delay, 3)) + " ns")
+        self.trgE2_read.setText(str(round(self.read_values_trg_E2_delay, 3)) + " ns")
+        self.trgS1_read.setText(str(round(self.read_values_trg_S1_delay, 3)) + " ns")
+        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))
+#        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)")
+                self.ddmeasure_seedpil_read.setText(str(self.read_values_P1_avg) + ' ns, sigma ' + str(self.read_values_P1_sigma) + ' ns')
+            elif 0.2 < self.read_values_P1_sigma < 12:
+                self.ddmeasure_seedpil_read.setStyleSheet("background-color: rgb(255, 255, 0)")
+                self.ddmeasure_seedpil_read.setText(str(self.read_values_P1_avg) + ' ns, sigma ' + str(self.read_values_P1_sigma) + ' ns')
+            elif self.read_values_P1_sigma < 0.2:
+                self.ddmeasure_seedpil_read.setStyleSheet("background-color: rgb(0, 255, 0)")
+                self.ddmeasure_seedpil_read.setText(str(self.read_values_P1_avg) + ' ns')
+            [self.read_values_P2_avg, self.read_values_P2_sigma, self.read_values_P2_sweep] = self.lettura_oscilloscopio("P2")
+            if self.read_values_P2_sigma > 12 or self.read_values_P2_sigma == 0.0:
+                self.ddmeasure_slupil_read.setStyleSheet("background-color: rgb(255, 0, 0)")
+                self.ddmeasure_slupil_read.setText(str(self.read_values_P2_avg) + ' ns, sigma ' + str(self.read_values_P2_sigma) + ' ns')
+            elif 0.2 < self.read_values_P2_sigma < 12:
+                self.ddmeasure_slupil_read.setStyleSheet("background-color: rgb(255, 255, 0)")
+                self.ddmeasure_slupil_read.setText(str(self.read_values_P2_avg) + ' ns, sigma ' + str(self.read_values_P2_sigma) + ' ns')
+            elif self.read_values_P2_sigma < 0.2:
+                self.ddmeasure_slupil_read.setStyleSheet("background-color: rgb(0, 255, 0)")
+                self.ddmeasure_slupil_read.setText(str(self.read_values_P2_avg) + ' ns')
+            [self.read_values_P3_avg, self.read_values_P3_sigma, self.read_values_P3_sweep] = self.lettura_oscilloscopio("P3")
+            if self.read_values_P3_sigma > 12 or self.read_values_P3_sigma == 0.0:
+                self.ddmeasure_sluseed_read.setStyleSheet("background-color: rgb(255, 0, 0)")
+                self.ddmeasure_sluseed_read.setText(str(self.read_values_P3_avg) + ' ns, sigma ' + str(self.read_values_P3_sigma) + ' ns')
+            elif 0.2 < self.read_values_P3_sigma < 12:
+                self.ddmeasure_sluseed_read.setStyleSheet("background-color: rgb(255, 255, 0)")
+                self.ddmeasure_sluseed_read.setText(str(self.read_values_P3_avg) + ' ns, sigma ' + str(self.read_values_P3_sigma) + ' ns')
+            elif self.read_values_P3_sigma < 0.2:
+                self.ddmeasure_sluseed_read.setStyleSheet("background-color: rgb(0, 255, 0)")
+                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))
+                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.contaloop +=1
+            print(str(self.contaloop) + ', t: ' + str(time.time() - tinizio))
+        if self.trls4_calcolato.text() != '':
+            self.trls4_delta.setText(str(round(float(self.trls4_read.text().replace(' ps', '')) - float(self.trls4_calcolato.text().replace(' ps', '')), 3)) + ' ps')
+        if self.trls8_calcolato.text() != '':
+            self.trls8_delta.setText(str(round(float(self.trls8_read.text().replace(' ps', '')) - float(self.trls8_calcolato.text().replace(' ps', '')), 3)) + ' ps')
+        if self.trgE1_calcolato.text() != '':
+            self.trgE1_delta.setText(str(round(float(self.trgE1_read.text().replace(' ns', '')) - float(self.trgE1_calcolato.text().replace(' ns', '')), 3)) + ' ns')
+        if self.trgE2_calcolato.text() != '':
+            self.trgE2_delta.setText(str(round(float(self.trgE2_read.text().replace(' ns', '')) - float(self.trgE2_calcolato.text().replace(' ns', '')), 3)) + ' ns')
+        if self.trgS1_calcolato.text() != '':
+            self.trgS1_delta.setText(str(round(float(self.trgS1_read.text().replace(' ns', '')) - float(self.trgS1_calcolato.text().replace(' ns', '')), 3)) + ' ns')
+        if self.trgS2_calcolato.text() != '':
+            self.trgS2_delta.setText(str(round(float(self.trgS2_read.text().replace(' ns', '')) - float(self.trgS2_calcolato.text().replace(' ns', '')), 3)) + ' ns')
+        if self.FundAlignment_calcolato.text() != '':
+            self.FundAlignment_delta.setText(str(round(float(self.FundAlignment_read.text().replace(' ps', '')) - float(self.FundAlignment_calcolato.text().replace(' ps', '')), 3)) + ' au')
+
+
+    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 >>>>')
+        ###verifica validita input###
+        test = str(self.SLUdelta_t.text().replace(',','.').replace('.','').replace(' ','').replace('ns','').replace('-',''))
+        if test.isdigit(): #verifico se input corretto
+            delta_t = float(self.SLUdelta_t.text().replace(',','.').replace(' ','').replace('ns',''))
+            print('richiesta ' + str(delta_t))
+        else:
+            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 (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
+            trg_e2_tmp = self.read_values_trg_E2_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.trls4pos + resto >= -3.168768615 and self.trls4pos + resto <= 9.6:
+                print("caso 1: trls4 entro i limiti")
+                self.trls4calc = self.trls4pos + resto
+                self.trls8calc = self.trls8pos + (self.trls4pos - self.trls4calc)
+                self.trg_elite2calc = trg_e2_tmp
+                self.trg_elite1calc = self.read_values_trg_E1_delay
+            elif self.trls4pos + resto < -3.168768615:
+                print("caso 2: trls4 sotto i limiti")
+                self.trls4calc = self.trls4pos + resto + 12.675074466
+                self.trls8calc = self.trls8pos + (self.trls4pos - self.trls4calc)
+                self.trg_elite2calc = trg_e2_tmp - 12.675074466
+                self.trg_elite1calc = self.read_values_trg_E1_delay
+            elif self.trls4pos + resto > 9.6:
+                print("caso 3: trls4 sopra i limiti")
+                self.trls4calc = self.trls4pos + resto - 12.675074466
+                self.trls8calc = self.trls8pos + (self.trls4pos - self.trls4calc)
+                self.trg_elite2calc = trg_e2_tmp + 12.675074466
+                self.trg_elite1calc = self.read_values_trg_E1_delay
+            if self.trls8calc >= -6.6 and self.trls8calc <= 6.6:
+                print("caso 1: trls8 entro i limiti")
+                self.trls8calc = self.trls8calc
+            elif self.trls8calc < -6.6:
+                print("caso 2: trls8 sotto i limiti")
+                self.trls8calc = self.trls8calc + 12.675074466
+                self.trg_elite1calc = self.trg_elite1calc - 12.675074466
+            elif self.trls8calc > 6.6:
+                print("caso 3: trls8 sopra i limiti")
+                self.trls8calc = self.trls8calc - 12.675074466
+                self.trg_elite1calc = self.trg_elite1calc + 12.675074466
+            # ricalcolo i delay per controllo
+            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(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_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
+                print("caso 1: trls8 entro i limiti")
+                self.trg_elite1calc = trg_e1_tmp
+            elif self.trls8pos + resto < -6.6:
+                print("caso 2: trls8 sotto i limiti")
+                self.trls8calc = self.trls8pos + resto + 12.675074466
+                self.trg_elite1calc = trg_e1_tmp - 12.675074466
+            elif self.trls8pos + resto > 6.6:
+                print("caso 3: trls8 sopra i limiti")
+                self.trls8calc = self.trls8pos + resto - 12.675074466
+                self.trg_elite1calc = trg_e1_tmp + 12.675074466
+            self.trg_elite2calc = self.read_values_trg_E2_delay
+            self.trls4calc = self.trls4pos
+            # ricalcolo i delay per controllo
+            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(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'
+            self.slucal = 'ERROR'
+            self.trls4calc = 'ERROR'
+            self.trls8calc = 'ERROR'
+            self.trg_E1calc = 'ERROR'
+            self.trg_E2calc = 'ERROR'
+            self.trg_S1calc = 'ERROR'
+            self.trg_S2calc = 'ERROR'
+        # popolo il pannello di numeri
+        self.trls4_calcolato.setText(str(round(self.trls4calc*1000, 3)) + ' ps')
+        self.trls8_calcolato.setText(str(round(self.trls8calc*1000, 3)) + ' ps')
+        self.trgE1_calcolato.setText(str(round(self.trg_elite1calc, 3)) + ' ns')
+        self.trgE2_calcolato.setText(str(round(self.trg_elite2calc, 3)) + ' ns')
+        self.trgS1_calcolato.setText(str(round(self.trg_S1calc, 3)) + ' ns')
+        self.trgS2_calcolato.setText(str(round(self.trg_S2calc, 3)) + ' ns')
+        if self.trls4calc > 3.168768615 and self.read_values_FundAlignment_corretto == 1:
+            self.trls4calc = self.trls4calc - 6.33753723
+            self.FundAlignment_calc = 1
+            self.trls4_calcolato.setText(str(round(self.trls4calc*1000, 3)) + ' ps')
+#            self.FundAlignment_calcolato.setStyleSheet("background-color: rgb(0, 255, 0)")
+            self.FundAlignment_calcolato.setText(str(self.FundAlignment_calc))
+            self.FundAlignment_shift = False
+        elif self.trls4calc > 3.168768615 and self.read_values_FundAlignment_corretto == 0:
+            self.trls4calc = self.trls4calc - 6.33753723
+            self.FundAlignment_calc = 1
+            self.trls4_calcolato.setText(str(round(self.trls4calc*1000, 3)) + ' ps')
+            self.FundAlignment_calcolato.setStyleSheet("background-color: rgb(230, 230, 0)")
+            self.FundAlignment_calcolato.setText(str(self.FundAlignment_calc))
+            self.FundAlignment_shift = True
+        elif self.trls4calc < 3.168768615 and self.read_values_FundAlignment_corretto == 1:
+            self.FundAlignment_calc = -1
+            self.FundAlignment_calcolato.setStyleSheet("background-color: rgb(230, 230, 0)")
+            self.FundAlignment_calcolato.setText(str(self.FundAlignment_calc))
+            self.FundAlignment_shift = True
+        elif self.trls4calc < 3.168768615 and self.read_values_FundAlignment_corretto == 0:
+            self.FundAlignment_calc = -1
+#            self.FundAlignment_calcolato.setStyleSheet("background-color: rgb(0, 255, 0)")
+            self.FundAlignment_calcolato.setText(str(self.FundAlignment_calc))
+            self.FundAlignment_shift = False
+        else:
+            self.FundAlignment_calcolato.setStyleSheet("background-color: rgb(180, 180, 180)")
+            self.FundAlignment_calcolato.setText('####')
+            self.FundAlignment_shift = False
+        if self.trls4calc*1000 < -3300 or self.trls4calc*1000 > 3300:
+            self.trls4_calcolato.setStyleSheet("background-color: rgb(255, 0, 0)")
+        else: 
+            self.trls4_calcolato.setStyleSheet("background-color: rgb(255, 255, 255)")
+        if self.trls8calc*1000 < -6600 or self.trls8calc*1000 > 6600:
+            self.trls8_calcolato.setStyleSheet("background-color: rgb(255, 0, 0)")
+        else: 
+            self.trls8_calcolato.setStyleSheet("background-color: rgb(255, 255, 255)")
+        self.applica.show()
+        self.trls4_applica.show()
+        self.trls8_applica.show()
+        self.trgE1_applica.show()
+        self.trgS1_applica.show()
+        self.trgE2_applica.show()
+        self.trgS2_applica.show()
+        self.FundAlignment_applica.show()
+        self.comenondetto.hide()
+        self.trls4_storna.hide()
+        self.trls8_storna.hide()
+        self.trgE1_storna.hide()
+        self.trgS1_storna.hide()
+        self.trgE2_storna.hide()
+        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]
+            procedi = True
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls4"]) + ' Position.'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        if procedi:
+            self.comandifalliti = 0
+            try:
+                devprodic["trls4"].write_attribute("Position", [float(self.trls4calc*1000)])
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls4"]) + ' while write_attribute("Position", [' + str(self.trls4calc*1000) + '])'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+        if self.comandifalliti < 1:
+            self.trls4_applica.hide()
+            self.trls4_storna.show()
+
+    def doppiodisastro_solotrls4(self):
+        devprodic["trls4"].write_attribute("Position", [self.trls4_old])
+        self.trls4_applica.show()
+        self.trls4_storna.hide()
+
+    def disastro_solotrls8(self):
+        try:
+            self.trls8_old = devprodic["trls8"].Position[0]
+            procedi = True
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls8"]) + ' Position.'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        if procedi:
+            self.comandifalliti = 0
+            try:
+                devprodic["trls8"].write_attribute("Position", [float(self.trls8calc*1000)])
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls8"]) + ' while write_attribute("Position", [' + str(self.trls8calc*1000) + '])'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+        if self.comandifalliti < 1:
+            self.trls8_applica.hide()
+            self.trls8_storna.show()
+
+    def doppiodisastro_solotrls8(self):
+        devprodic["trls8"].write_attribute("Position", [self.trls8_old])
+        self.trls8_applica.show()
+        self.trls8_storna.hide()
+        
+    def disastro_solotmu(self):
+        try:
+            self.FundAlignment_old = devprodic["tmu"].PllFundAlignment
+            procedi = True
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["tmu"]) + ' PllFundAlignment.'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        if procedi:
+            self.comandifalliti = 0
+            if self.FundAlignment_shift and self.FundAlignment_calc >= 1:
+                try:
+                    devprodic["tmu"].write_attribute("PllFundAlignment", 1)
+                except:
+                    voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while write_attribute("PllFundAlignment", 1)'
+                    self.logbox.insertItem(0, voce)
+                    self.comandifalliti = 1
+                self.faseperallarmi = 1.5
+                try:
+                    tmp = devprodic["tmu"].get_attribute_config_ex("PllFundPhaseVolt")
+                    tmp[0].alarms.min_alarm = str(self.faseperallarmi - 0.5)
+                    tmp[0].alarms.max_alarm = str(self.faseperallarmi + 0.5)
+                    devprodic["tmu"].set_attribute_config(tmp)
+                except:
+                    voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [1.0, 2.0] for attribute PllFundPhaseVolt'
+                    self.logbox.insertItem(0, voce)
+                    self.comandifalliti = 1
+            elif self.FundAlignment_shift and self.FundAlignment_calc < 1:
+                try:
+                    devprodic["tmu"].write_attribute("PllFundAlignment", -1)
+                except:
+                    voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while write_attribute("PllFundAlignment", -1)'
+                    self.logbox.insertItem(0, voce)
+                    self.comandifalliti = 1
+                self.faseperallarmi = 0.5
+                try:
+                    tmp = devprodic["tmu"].get_attribute_config_ex('PllFundPhaseVolt')
+                    tmp[0].alarms.min_alarm = str(self.faseperallarmi - 0.5)
+                    tmp[0].alarms.max_alarm = str(self.faseperallarmi + 0.5)
+                    devprodic["tmu"].set_attribute_config(tmp)
+                except:
+                    voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [0.0, 1.0] for attribute PllFundPhaseVolt'
+                    self.logbox.insertItem(0, voce)
+                    self.comandifalliti = 1
+            else:
+                print('FundAlignment no shift')
+        if self.comandifalliti < 1:
+            self.FundAlignment_applica.hide()
+            self.FundAlignment_storna.show()
+
+    def doppiodisastro_solotmu(self):
+        devprodic["tmu"].write_attribute("PllFundAlignment", self.FundAlignment_old)
+        tmp = devprodic["tmu"].get_attribute_config_ex('PllFundPhaseVolt')
+        if self.FundAlignment_old > 0:
+            tmp[0].alarms.min_alarm = str(1.0)
+            tmp[0].alarms.max_alarm = str(2.0)
+        else:
+            tmp[0].alarms.min_alarm = str(0.0)
+            tmp[0].alarms.max_alarm = str(1.0)
+        devprodic["tmu"].set_attribute_config(tmp)
+        self.FundAlignment_applica.show()
+        self.FundAlignment_storna.hide()
+
+    def disastro_soloE1trg(self):
+        try:
+            self.trgE1_old = devprodic["triggerEVR"].Chan1Delay
+            procedi = True
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerEVR"]) + ' Chan1Delay.'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        if procedi:
+            self.comandifalliti = 0
+            try:
+                devprodic["triggerEVR"].write_attribute("Chan1Delay", float(self.trg_elite1calc))
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan1Delay", ' + str(self.trg_elite1calc) + ')'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+            time.sleep(0.2)
+            try:
+                tmp = devprodic["triggerEVR"].get_attribute_config_ex("Chan1Delay")
+                tmp[0].alarms.min_alarm = str(self.trg_elite1calc - 1)
+                tmp[0].alarms.max_alarm = str(self.trg_elite1calc + 1)
+                devprodic["triggerEVR"].set_attribute_config(tmp)
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.trg_elite1calc - 1) + ', ' + str(self.trg_elite1calc +1) + '] for attribute Chan1Delay'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+        if self.comandifalliti < 1:
+            self.trgE1_applica.hide()
+            self.trgE1_storna.show()
+
+    def doppiodisastro_soloE1trg(self):
+        devprodic["triggerEVR"].write_attribute('Chan1Delay', self.trgE1_old)
+        tmp = devprodic["triggerEVR"].get_attribute_config_ex('Chan1Delay')
+        tmp[0].alarms.min_alarm = str(self.trgE1_old - 1)
+        tmp[0].alarms.max_alarm = str(self.trgE1_old + 1)
+        devprodic["triggerEVR"].set_attribute_config(tmp)
+        self.trgE1_applica.show()
+        self.trgE1_storna.hide()
+
+    def disastro_soloS1trg(self):
+        try:
+            self.trgS1_old = devprodic["triggerS1"].command_inout('GetDelay', 2)*1000000000
+            procedi = True
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerS1"]) + ' S1Delay. The script will not chage any value. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        if procedi:
+            self.comandifalliti = 0
+            try:
+                devprodic["triggerS1"].command_inout('SetDelay', [2,  float(self.trg_S1calc)/1000000000])
+                print('S1Delay ' + str(self.trg_S1calc))
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerS1"]) + ' while command_inout("SetDelay", [2,' + str(float(self.trg_S1calc)/1000000000) + '])'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+        if self.comandifalliti < 1:
+            self.trgS1_applica.hide()
+            self.trgS1_storna.show()
+
+    def doppiodisastro_soloS1trg(self):
+        devprodic["triggerS1"].command_inout('SetDelay', [2,  float(self.trgS1_old)/1000000000])
+        self.trgS1_applica.show()
+        self.trgS1_storna.hide()
+
+    def disastro_soloE2trg(self):
+        try:
+            self.trgE2_old = devprodic["triggerEVR"].Chan2Delay
+            procedi = True
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerEVR"]) + ' Chan2Delay.'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        if procedi:
+            self.comandifalliti = 0
+            try:
+                devprodic["triggerEVR"].write_attribute("Chan2Delay", float(self.trg_elite2calc))
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan2Delay", ' + str(self.trg_elite2calc) + ')'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+            time.sleep(0.2)
+            try:
+                tmp = devprodic["triggerEVR"].get_attribute_config_ex("Chan2Delay")
+                tmp[0].alarms.min_alarm = str(self.trg_elite2calc - 1)
+                tmp[0].alarms.max_alarm = str(self.trg_elite2calc + 1)
+                devprodic["triggerEVR"].set_attribute_config(tmp)
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.trg_elite2calc - 1) + ', ' + str(self.trg_elite2calc +1) + '] for attribute Chan2Delay'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+        if self.comandifalliti < 1:
+            self.trgE2_applica.hide()
+            self.trgE2_storna.show()
+
+    def doppiodisastro_soloE2trg(self):
+        devprodic["triggerEVR"].write_attribute('Chan2Delay', self.trgE2_old)
+        tmp = devprodic["triggerEVR"].get_attribute_config_ex('Chan2Delay')
+        tmp[0].alarms.min_alarm = str(self.trgE2_old - 1)
+        tmp[0].alarms.max_alarm = str(self.trgE2_old + 1)
+        devprodic["triggerEVR"].set_attribute_config(tmp)
+        self.trgE2_applica.show()
+        self.trgE2_storna.hide()
+
+    def disastro_soloS2trg(self):
+        try:
+            self.trgS2_old = devprodic["triggerS2"].command_inout('GetDelay', 2)*1000000000
+            procedi = True
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerS2"]) + ' S2Delay.'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        if procedi:
+            self.comandifalliti = 0
+            try:
+                devprodic["triggerS2"].command_inout('SetDelay', [2,  float(self.trg_S2calc)/1000000000])
+                print('S2Delay ' + str(self.trg_S2calc))
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerS2"]) + ' while command_inout("SetDelay", [2,' + str(float(self.trg_S2calc)/1000000000) + '])'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+        if self.comandifalliti < 1:
+            self.trgS2_applica.hide()
+            self.trgS2_storna.show()
+
+    def doppiodisastro_soloS2trg(self):
+        devprodic["triggerS2"].command_inout('SetDelay', [2,  float(self.trgS2_old)/1000000000])  
+        self.trgS2_applica.show()
+        self.trgS2_storna.hide()
+
+    def disastro(self):
+        ######## finesta avviso sala controllo
+        print('salvo stato')
+        procedi = True
+        self.comandifalliti = 0
+        ###salvo vecchi valori###
+        try:
+            self.trls4_old = devprodic["trls4"].Position[0]
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls4"]) + ' Position. The script will not chage any value. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        try:
+            self.trls8_old = devprodic["trls8"].Position[0]
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls8"]) + ' Position. The script will not chage any value. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        try:
+            self.trgE1_old = devprodic["triggerEVR"].Chan1Delay
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerEVR"]) + ' Chan1Delay. The script will not chage any value. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        try:
+            self.trgE2_old = devprodic["triggerEVR"].Chan2Delay
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerEVR"]) + ' Chan2Delay. The script will not chage any value. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        try:
+            self.trgS1_old = devprodic["triggerS1"].command_inout('GetDelay', 2)*1000000000
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerS1"]) + ' S1Delay. The script will not chage any value. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        try:
+            self.trgS2_old = devprodic["triggerS2"].command_inout('GetDelay', 2)*1000000000
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerS2"]) + ' S2Delay. The script will not chage any value. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        try:
+            self.FundAlignment_old = devprodic["tmu"].PllFundAlignment
+        except:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["tmu"]) + ' PllFundAlignment. The script will not chage any value. check with atomic panel and launch this program again'
+            self.logbox.insertItem(0, voce)
+            procedi = False
+        if procedi == True:
+            print('applico valori')
+            if self.FundAlignment_shift and self.FundAlignment_calc >= 1:
+                print('FundAlignment ' + str(self.FundAlignment_calc))
+                print("tmu" + ' ' + "PllFundAlignment" + ' ' +  str(1))
+                try:
+                    devprodic["tmu"].write_attribute("PllFundAlignment", 1)
+                except:
+                    voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while write_attribute("PllFundAlignment", 1)'
+                    self.logbox.insertItem(0, voce)
+                    self.comandifalliti = 1
+                self.faseperallarmi = 1.5
+                try:
+                    tmp = devprodic["tmu"].get_attribute_config_ex("PllFundPhaseVolt")
+                    tmp[0].alarms.min_alarm = str(self.faseperallarmi - 0.5)
+                    tmp[0].alarms.max_alarm = str(self.faseperallarmi + 0.5)
+                    devprodic["tmu"].set_attribute_config(tmp)
+                except:
+                    voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [1.0, 2.0] for attribute PllFundPhaseVolt'
+                    self.logbox.insertItem(0, voce)
+                    self.comandifalliti = 1
+            elif self.FundAlignment_shift and self.FundAlignment_calc < 1:
+                print('FundAlignment ' + str(self.FundAlignment_calc))
+                print("tmu" + ' ' + "PllFundAlignment" + ' ' +  str(-1))
+                try:
+                    devprodic["tmu"].write_attribute("PllFundAlignment", -1)
+                except:
+                    voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while write_attribute("PllFundAlignment", -1)'
+                    self.logbox.insertItem(0, voce)
+                    self.comandifalliti = 1
+                self.faseperallarmi = 0.5
+                try:
+                    tmp = devprodic["tmu"].get_attribute_config_ex('PllFundPhaseVolt')
+                    tmp[0].alarms.min_alarm = str(self.faseperallarmi - 0.5)
+                    tmp[0].alarms.max_alarm = str(self.faseperallarmi + 0.5)
+                    devprodic["tmu"].set_attribute_config(tmp)
+                except:
+                    voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [0.0, 1.0] for attribute PllFundPhaseVolt'
+                    self.logbox.insertItem(0, voce)
+                    self.comandifalliti = 1
+            else:
+                print('FundAlignment no shift')
+            time.sleep(3)
+            print("triggerEVR" + ' ' + "Chan1Delay" + ' ' +  str(self.trg_elite1calc))
+            try:
+                devprodic["triggerEVR"].write_attribute("Chan1Delay", float(self.trg_elite1calc))
+                print('Chan1Delay ' + str(self.trg_elite1calc))
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan1Delay", ' + str(self.trg_elite1calc) + ')'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+            time.sleep(0.2)
+            try:
+                tmp = devprodic["triggerEVR"].get_attribute_config_ex("Chan1Delay")
+                tmp[0].alarms.min_alarm = str(self.trg_elite1calc - 1)
+                tmp[0].alarms.max_alarm = str(self.trg_elite1calc + 1)
+                devprodic["triggerEVR"].set_attribute_config(tmp)
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.trg_elite1calc - 1) + ', ' + str(self.trg_elite1calc +1) + '] for attribute Chan1Delay'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+            print("triggerEVR" + ' ' + "Chan2Delay" + ' ' +  str(self.trg_elite2calc))
+            try:
+                devprodic["triggerEVR"].write_attribute("Chan2Delay", float(self.trg_elite2calc))
+                print('Chan2Delay ' + str(self.trg_elite2calc))
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan2Delay", ' + str(self.trg_elite2calc) + ')'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+            time.sleep(0.2)
+            try:
+                tmp = devprodic["triggerEVR"].get_attribute_config_ex("Chan2Delay")
+                tmp[0].alarms.min_alarm = str(self.trg_elite2calc - 1)
+                tmp[0].alarms.max_alarm = str(self.trg_elite2calc + 1)
+                devprodic["triggerEVR"].set_attribute_config(tmp)
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.trg_elite2calc - 1) + ', ' + str(self.trg_elite2calc +1) + '] for attribute Chan2Delay'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+            print("triggerS1" + ' ' + "SetDelay 2" + ' ' +  str(self.trg_S1calc))
+            try:
+                devprodic["triggerS1"].command_inout('SetDelay', [2,  float(self.trg_S1calc)/1000000000])
+                print('S1Delay ' + str(self.trg_S1calc))
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerS1"]) + ' while command_inout("SetDelay", [2,' + str(float(self.trg_S1calc)/1000000000) + '])'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+            time.sleep(0.2)
+            print("triggerS2" + ' ' + "SetDelay 2" + ' ' +  str(self.trg_S2calc))
+            try:
+                devprodic["triggerS2"].command_inout('SetDelay', [2,  float(self.trg_S2calc)/1000000000])
+                print('S2Delay ' + str(self.trg_S2calc))
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerS2"]) + ' while command_inout("SetDelay", [2,' + str(float(self.trg_S2calc)/1000000000) + '])'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+            time.sleep(0.2)
+            print("trls4" + ' ' + "Position" + ' ' +  str(self.trls4calc*1000))
+            esciciclo = 0
+            while devprodic["trls4"].Speed[0] < 99 or esciciclo < 10:
+                esciciclo += 1
+                time.sleep(2)
+                voce = time.ctime()[11:19] + ' waiting trls4... '
+                self.logbox.insertItem(0, voce)
+            try:
+                devprodic["trls4"].write_attribute("Position", [float(self.trls4calc*1000)])
+                print("trls4 " + str(float(self.trls4calc*1000)))
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls4"]) + ' while write_attribute("Position", [' + str(self.trls4calc*1000) + '])'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+            print("trls8" + ' ' + "Position" + ' ' +  str(self.trls8calc*1000))
+            esciciclo = 0
+            while devprodic["trls8"].Speed[0] > -99 or esciciclo < 10:
+                esciciclo += 1
+                time.sleep(2)
+                voce = time.ctime()[11:19] + ' waiting trls8... '
+                self.logbox.insertItem(0, voce)
+            try:
+                devprodic["trls8"].write_attribute("Position", [float(self.trls8calc*1000)])
+                print("trls8 " + str(self.trls8calc*1000))
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls8"]) + ' while write_attribute("Position", [' + str(self.trls8calc*1000) + '])'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+            print("done")
+            time.sleep(2)
+            self.applica.hide()
+            self.comenondetto.show()
+            self.lanciasalvatrigger.setStyleSheet("background-color: rgb(200, 200, 200)")
+            if self.comandifalliti == 1:
+                self.funzionamento.setText('!! FAULT !!')
+                self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+            else:
+                self.funzionamento.setText('No errors')
+                self.funzionamento.setStyleSheet("background-color: rgb(0, 255, 0)")
+
+    def doppiodisastro(self):
+        self.comandifalliti = 0
+        try:
+            devprodic["tmu"].write_attribute("PllFundAlignment", self.FundAlignment_old)
+            print("tmu " + str(self.FundAlignment_old))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while write_attribute("PllFundAlignment", ' + str(self.FundAlignment_old) + ')'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        try:
+            tmp = devprodic["tmu"].get_attribute_config_ex('PllFundPhaseVolt')
+            if self.FundAlignment_old > 0:
+                tmp[0].alarms.min_alarm = str(1.0)
+                tmp[0].alarms.max_alarm = str(2.0)
+            else:
+                tmp[0].alarms.min_alarm = str(0.0)
+                tmp[0].alarms.max_alarm = str(1.0)
+            devprodic["tmu"].set_attribute_config(tmp)
+        except:
+            if self.FundAlignment_old > 0:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [1.0, 2.0] for attribute PllFundPhaseVolt'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+            else:
+                self.comandifalliti = 1
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [0.0, 1.0] for attribute PllFundPhaseVolt'
+                self.logbox.insertItem(0, voce)
+        time.sleep(3)
+        try:
+            devprodic["triggerEVR"].write_attribute('Chan1Delay', self.trgE1_old)
+            print('Chan1Delay ' + str(self.trgE1_old))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan1Delay", ' + str(self.trgE1_old) + ')'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        time.sleep(0.1)
+        try:
+            tmp = devprodic["triggerEVR"].get_attribute_config_ex('Chan1Delay')
+            tmp[0].alarms.min_alarm = str(self.trgE1_old - 1)
+            tmp[0].alarms.max_alarm = str(self.trgE1_old + 1)
+            devprodic["triggerEVR"].set_attribute_config(tmp)
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.trgE1_old - 1) + ', ' + str(self.trgE1_old +1) + '] for attribute Chan1Delay'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        try:
+            devprodic["triggerEVR"].write_attribute('Chan2Delay', self.trgE2_old)
+            print('Chan2Delay ' + str(self.trgE2_old))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan2Delay", ' + str(self.trgE2_old) + ')'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        time.sleep(0.1)
+        try:
+            tmp = devprodic["triggerEVR"].get_attribute_config_ex('Chan2Delay')
+            tmp[0].alarms.min_alarm = str(self.trgE2_old - 1)
+            tmp[0].alarms.max_alarm = str(self.trgE2_old + 1)
+            devprodic["triggerEVR"].set_attribute_config(tmp)
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.trgE2_old - 1) + ', ' + str(self.trgE2_old +1) + '] for attribute Chan2Delay'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        try:
+            devprodic["triggerS1"].command_inout('SetDelay', [2,  float(self.trgS1_old)/1000000000])
+            print('S1Delay ' + str(self.trgS1_old))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerS1"]) + ' while command_inout("SetDelay", [2,' + str(float(self.trgS1_old)/1000000000) + '])'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        time.sleep(0.1)
+        try:
+            devprodic["triggerS2"].command_inout('SetDelay', [2,  float(self.trgS2_old)/1000000000])
+            print('S2Delay ' + str(self.trgS2_old))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerS2"]) + ' while command_inout("SetDelay", [2,' + str(float(self.trgS2_old)/1000000000) + '])'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        time.sleep(0.1)
+        try:
+            devprodic["trls4"].write_attribute("Position", [self.trls4_old])
+            print("trls4 " + str(self.trls4_old))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls4"]) + ' while write_attribute("Position", ' + str([self.trls4_old]) + ')'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        try:
+            devprodic["trls8"].write_attribute("Position", [self.trls8_old])
+            print("trls8 " + str(self.trls8_old))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls8"]) + ' while write_attribute("Position", ' + str([self.trls8_old]) + ')'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        print("done")
+        time.sleep(1)
+        self.applica.show()
+        self.comenondetto.hide()
+        self.lanciasalvatrigger.setStyleSheet("background-color: rgb(200, 200, 200)")
+        if self.comandifalliti == 1:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+        else:
+            self.funzionamento.setText('No errors')
+            self.funzionamento.setStyleSheet("background-color: rgb(0, 255, 0)")
+
+    def ripristino(self):
+        self.comandifalliti = 0
+        try:
+            devprodic["tmu"].write_attribute("PllFundAlignment", self.zero_FundAlignment)
+            print("tmu " + str(self.zero_FundAlignment))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while write_attribute("PllFundAlignment", ' + str(self.zero_FundAlignment) + ')'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        try:
+            tmp = devprodic["tmu"].get_attribute_config_ex('PllFundPhaseVolt')
+            if self.zero_FundAlignment > 0:
+                tmp[0].alarms.min_alarm = str(1.0)
+                tmp[0].alarms.max_alarm = str(2.0)
+            else:
+                tmp[0].alarms.min_alarm = str(0.0)
+                tmp[0].alarms.max_alarm = str(1.0)
+            devprodic["tmu"].set_attribute_config(tmp)
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script load and set new threshold on attribute PllFundPhaseVolt'
+            self.logbox.insertItem(0, voce)
+            if self.zero_FundAlignment > 0:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [1.0, 2.0] for attribute PllFundPhaseVolt'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
+            else:
+                self.comandifalliti = 1
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [0.0, 1.0] for attribute PllFundPhaseVolt'
+                self.logbox.insertItem(0, voce)
+        time.sleep(3)
+        try:
+            devprodic["triggerEVR"].write_attribute('Chan1Delay', self.zero_trgE1)
+            print('Chan1Delay ' + str(self.zero_trgE1))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan1Delay", ' + str(self.zero_trgE1) + ')'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        time.sleep(0.1)
+        try:
+            tmp = devprodic["triggerEVR"].get_attribute_config_ex('Chan1Delay')
+            tmp[0].alarms.min_alarm = str(self.zero_trgE1 - 1)
+            tmp[0].alarms.max_alarm = str(self.zero_trgE1 + 1)
+            devprodic["triggerEVR"].set_attribute_config(tmp)
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.zero_trgE1 - 1) + ', ' + str(self.zero_trgE1 +1) + '] for attribute Chan1Delay'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        try:
+            devprodic["triggerEVR"].write_attribute('Chan2Delay', self.zero_trgE2)
+            print('Chan2Delay ' + str(self.zero_trgE2))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan2Delay", ' + str(self.zero_trgE2) + ')'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        time.sleep(0.1)
+        try:
+            tmp = devprodic["triggerEVR"].get_attribute_config_ex('Chan2Delay')
+            tmp[0].alarms.min_alarm = str(self.zero_trgE2 - 1)
+            tmp[0].alarms.max_alarm = str(self.zero_trgE2 + 1)
+            devprodic["triggerEVR"].set_attribute_config(tmp)
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.zero_trgE2 - 1) + ', ' + str(self.zero_trgE2 +1) + '] for attribute Chan2Delay'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        try:
+            devprodic["triggerS1"].command_inout('SetDelay', [2,  float(self.zero_trgS1)/1000000000])
+            print('S1Delay ' + str(self.zero_trgS1))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerS1"]) + ' while command_inout("SetDelay", [2,' + str(float(self.zero_trgS1)/1000000000) + '])'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        time.sleep(0.1)
+        try:
+            devprodic["triggerS2"].command_inout('SetDelay', [2,  float(self.zero_trgS2)/1000000000])
+            print('S2Delay ' + str(self.zero_trgS2))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerS2"]) + ' while command_inout("SetDelay", [2,' + str(float(self.zero_trgS2)/1000000000) + '])'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        time.sleep(0.1)
+        try:
+            devprodic["trls4"].write_attribute("Position", [self.zero_trls4])
+            print("trls4 " + str(self.zero_trls4))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls4"]) + ' while write_attribute("Position", ' + str([self.zero_trls4]) + ')'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        try:
+            devprodic["trls8"].write_attribute("Position", [self.zero_trls8])
+            print("trls8 " + str(self.zero_trls8))
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls8"]) + ' while write_attribute("Position", ' + str([self.zero_trls8]) + ')'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
+        print("done")
+        time.sleep(1)
+        self.applica.show()
+        self.comenondetto.hide()
+        self.lanciasalvatrigger.setStyleSheet("background-color: rgb(200, 200, 200)")
+        if self.comandifalliti == 1:
+            self.funzionamento.setText('!! FAULT !!')
+            self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)")
+        else:
+            self.funzionamento.setText('No errors')
+            self.funzionamento.setStyleSheet("background-color: rgb(0, 255, 0)")
+
+
+if __name__ == '__main__':
+    app = QApplication([])
+    try:
+        tmpdim = sys.argv[1]
+        tmpdim = tmpdim.split('x')
+        dimensione = [float(tmpdim[0]), float(tmpdim[1])]
+    except:
+        screen = QDesktopWidget().screenGeometry()
+        dimensione = [screen.width()*0.7, screen.height()*0.7]
+    font_pannello = QFont("Arial", round(dimensione[0]/160.0), -1, False)
+    app.setFont(font_pannello)
+    window = MainWindow()
+    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