From 9631be66e47317c4b57306ceaeb6ddb19056d98a Mon Sep 17 00:00:00 2001
From: "paolo.cinquegrana@elettra.eu" <paolo.cinquegrana@elettra.eu>
Date: Mon, 10 Mar 2025 11:47:14 +0100
Subject: [PATCH] cambiato calcolo delay slu

---
 src/SluSourceMonitor.py | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/SluSourceMonitor.py b/src/SluSourceMonitor.py
index 24804cd..9994b5c 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))
-- 
GitLab