From ac10ef452052713039fb5123c783c39a2bfc7e3a Mon Sep 17 00:00:00 2001
From: "paolo.cinquegrana@elettra.eu" <paolo.cinquegrana@elettra.eu>
Date: Thu, 13 Oct 2022 10:30:52 +0200
Subject: [PATCH] corretta gestione limiti allarme sdg e direzione spostamento
 sdg

---
 src/SluDelayCalculator.py | 60 ++++++++++++++++++++++++++++++---------
 1 file changed, 46 insertions(+), 14 deletions(-)

diff --git a/src/SluDelayCalculator.py b/src/SluDelayCalculator.py
index fcca9ff..c2ef38d 100644
--- a/src/SluDelayCalculator.py
+++ b/src/SluDelayCalculator.py
@@ -457,10 +457,10 @@ class MainWindow(QDialog):
             self.trls8calc = self.trls8pos + resto - 12.675074466
             self.trg_elite2calc = trg_e2_tmp + 12.675074466
         # valuto spostamento SDG
-        self.trg_S2calc = self.zero_trgS2 + int(self.zero_trls8 - self.trls8calc)
-        print(self.zero_trls8)
-        print(self.trls8calc)
-        print(self.trg_S2calc)
+        self.trg_S2calc = self.zero_trgS2 - int(self.zero_trls8/1000 - self.trls8calc)
+        print('zero trls8 ' + str(self.zero_trls8))
+        print('calc trls8 ' + str(self.trls8calc))
+        print('calc sdg ' + str(self.trg_S2calc))
         # popolo il pannello di numeri
         self.trls8_calcolato.setText(str(round(self.trls8calc*1000, 3)) + ' ps')
         self.trgE2_calcolato.setText(str(round(self.trg_elite2calc, 3)) + ' ns')
@@ -854,12 +854,25 @@ class MainWindow(QDialog):
                 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
+            try:
+                tmp = devprodic["triggerS2"].get_attribute_config_ex("Chan2Delay")
+                tmp[0].alarms.min_alarm = str(self.trg_S2calc - 1)
+                tmp[0].alarms.max_alarm = str(self.trg_S2calc + 1)
+                devprodic["triggerS2"].set_attribute_config(tmp)
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerS2"]) + ' while the script set alarm threshold [' + str(self.trg_S2calc - 1) + ', ' + str(self.trg_S2calc +1) + '] for attribute Chan2Delay'
+                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])  
+        tmp = devprodic["triggerS2"].get_attribute_config_ex('Chan2Delay')
+        tmp[0].alarms.min_alarm = str(self.trgS2_old - 1)
+        tmp[0].alarms.max_alarm = str(self.trgS2_old + 1)
+        devprodic["triggerS2"].set_attribute_config(tmp)
         self.trgS2_applica.show()
         self.trgS2_storna.hide()
 
@@ -912,15 +925,6 @@ class MainWindow(QDialog):
                 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])
@@ -930,9 +934,19 @@ class MainWindow(QDialog):
                 self.logbox.insertItem(0, voce)
                 self.comandifalliti = 1
             time.sleep(0.2)
+            try:
+                tmp = devprodic["triggerS2"].get_attribute_config_ex("Chan2Delay")
+                tmp[0].alarms.min_alarm = str(self.trg_S2calc - 1)
+                tmp[0].alarms.max_alarm = str(self.trg_S2calc + 1)
+                devprodic["triggerS2"].set_attribute_config(tmp)
+            except:
+                voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerS2"]) + ' while the script set alarm threshold [' + str(self.trg_S2calc - 1) + ', ' + str(self.trg_S2calc +1) + '] for attribute Chan2Delay'
+                self.logbox.insertItem(0, voce)
+                self.comandifalliti = 1
             print("trls8" + ' ' + "Position" + ' ' +  str(self.trls8calc*1000))
             esciciclo = 0
-            while devprodic["trls8"].Speed > -99 or esciciclo < 10:
+            while devprodic["trls8"].Speed < 99 and esciciclo < 10:
+                print(devprodic["trls8"].Speed)
                 esciciclo += 1
                 time.sleep(2)
                 voce = time.ctime()[11:19] + ' waiting trls8... '
@@ -983,6 +997,15 @@ class MainWindow(QDialog):
             self.logbox.insertItem(0, voce)
             self.comandifalliti = 1
         time.sleep(0.1)
+        try:
+            tmp = devprodic["triggerS2"].get_attribute_config_ex('Chan2Delay')
+            tmp[0].alarms.min_alarm = str(self.trgS2_old - 1)
+            tmp[0].alarms.max_alarm = str(self.trgS2_old + 1)
+            devprodic["triggerS2"].set_attribute_config(tmp)
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerS2"]) + ' while the script set alarm threshold [' + str(self.trgS2_old - 1) + ', ' + str(self.trgS2_old +1) + '] for attribute Chan2Delay'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
         try:
             devprodic["trls8"].write_attribute("Position", self.trls8_old)
             print("trls8 " + str(self.trls8_old))
@@ -1029,6 +1052,15 @@ class MainWindow(QDialog):
             self.logbox.insertItem(0, voce)
             self.comandifalliti = 1
         time.sleep(0.1)
+        try:
+            tmp = devprodic["triggerS2"].get_attribute_config_ex('Chan2Delay')
+            tmp[0].alarms.min_alarm = str(self.zero_trgS2 - 1)
+            tmp[0].alarms.max_alarm = str(self.zero_trgS2 + 1)
+            devprodic["triggerS2"].set_attribute_config(tmp)
+        except:
+            voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerS2"]) + ' while the script set alarm threshold [' + str(self.zero_trgS2 - 1) + ', ' + str(self.zero_trgS2 +1) + '] for attribute Chan2Delay'
+            self.logbox.insertItem(0, voce)
+            self.comandifalliti = 1
         try:
             devprodic["trls8"].write_attribute("Position", self.zero_trls8)
             print("trls8 " + str(self.zero_trls8))
-- 
GitLab