diff --git a/src/SluSourceMonitor.py b/src/SluSourceMonitor.py index 24804cdb6858aac6f2675dbcb3816c51214540f1..9994b5c37d1774f4d8e12acf2721beb0c0e7ea73 100644 --- a/src/SluSourceMonitor.py +++ b/src/SluSourceMonitor.py @@ -52,6 +52,7 @@ try: sacco['decima3'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/f/timing/rttrigger_sl.03') sacco['decimacheck'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/ec-sl-slpsr-01/rtevr/ff100000') sacco['frequenza'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/f/timing/bunchnumber_f') + sacco['trls4_delay'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/motor/trls_sl.04') sacco['trls8_delay'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/motor/trls_sl.08') sacco['triggerSL'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/ec-sl-slpsr-01/evr/ff100000') sacco['triggerSL2'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/ec-sl-slpsr-01/evr/ff200000') @@ -60,6 +61,7 @@ try: sacco['triggerDGQ2'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/delay/dgq_slpsr.02') sacco['triggerSDG1'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/delay/sdg_slr.01') sacco['triggerSDG2'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/delay/sdg_slr.02') + sacco['tmu'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/timing/tmu_sl.01') sacco['watchdogSDG'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/sequence/delay_sdgslu_sl.01') sacco['pompe'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/pumps') sacco['valvolaUH1'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/uh/vacuum/vlvp_uh.01') @@ -3326,11 +3328,15 @@ class MainWindow(QDialog): def calcoladelayslu(self): delta_t = float(self.delaycalcS.text()) sacco['trls8_delay'].write_attribute('Speed', 100) + SDG_zero = 202980 #salvo i valori attuali self.memoDevrch2 = sacco['triggerSL'].Chan2Delay self.memoDdgqch2 = sacco['triggerDGQ1'].Chan2Delay + self.memoDtrls4 = sacco['trls4_delay'].position self.memoDtrls8 = sacco['trls8_delay'].position self.memoDtrls8_ns = self.memoDtrls8/1000 + mapping = {-1: 0, 1: 6.3375} + self.memoDtmu= mapping.get(sacco['tmu'].PllFundAlignment, None) #calcolo resto = (delta_t/12.675074466 - int(delta_t/12.675074466))*12.675074466 #ns, avanzo da dare in pasto ai traslatori print('resto ' + str(resto)) @@ -3338,22 +3344,22 @@ class MainWindow(QDialog): print('trg_e2_tmp ' + str(trg_e2_tmp)) # valuto corsa disponibile sulla slitta, se delta_t oltre i limiti agisco ancora sul trigger print('self.memoDtrls8_ns + resto ' + str(self.memoDtrls8_ns + resto)) - if self.memoDtrls8_ns + resto >= -6.6 and self.memoDtrls8_ns + resto <= 6.6: + if self.memoDtrls8_ns + resto >= -6.6 and self.memoDtrls8_ns + resto <= 6.6: #caso 1: trls8 entro i limiti self.trls8calc = (self.memoDtrls8_ns + resto)*1000 print("caso 1: trls8 entro i limiti") self.trg_elite2calc = trg_e2_tmp - elif self.memoDtrls8_ns + resto < -6.6: + elif self.memoDtrls8_ns + resto < -6.6: #caso 2: trls8 sotto i limiti print("caso 2: trls8 sotto i limiti") self.trls8calc = (self.memoDtrls8_ns + resto + 12.675074466)*1000 self.trg_elite2calc = trg_e2_tmp - 12.675074466 - elif self.memoDtrls8_ns + resto > 6.6: + elif self.memoDtrls8_ns + resto > 6.6: #caso 3: trls8 sopra i limiti print("caso 3: trls8 sopra i limiti") self.trls8calc = (self.memoDtrls8_ns + resto - 12.675074466)*1000 self.trg_elite2calc = trg_e2_tmp + 12.675074466 print(self.trls8calc) print(self.trg_elite2calc) # valuto spostamento SDG - self.trg_S2calc = self.memoDdgqch2 - int(self.memoDtrls8_ns - self.trls8calc/1000) + self.trg_S2calc = round(SDG_zero + (self.memoDtrls4 + self.trls8calc)/1000 + self.memoDtmu)#SDG print('trls8 form ' + str(self.memoDtrls8) + ' to ' + str(self.trls8calc)) print('evr ch2 from ' + str(self.memoDevrch2) + ' to ' + str(self.trg_elite2calc)) print('sdg from ' + str(self.memoDdgqch2) + ' to ' + str(self.trg_S2calc))