From 1f89eda5f86ae5812777a2a9ad00567221770e55 Mon Sep 17 00:00:00 2001 From: "paolo.cinquegrana@elettra.eu" <paolo.cinquegrana@elettra.eu> Date: Wed, 8 Jan 2025 15:47:31 +0100 Subject: [PATCH] aggiunto watchdog SDG SLU e sue funzioni --- src/SluSourceMonitor.py | 57 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 6 deletions(-) diff --git a/src/SluSourceMonitor.py b/src/SluSourceMonitor.py index 7c61d47..24804cd 100644 --- a/src/SluSourceMonitor.py +++ b/src/SluSourceMonitor.py @@ -47,10 +47,6 @@ try: sacco['kom5'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/motor/kom_slu.04') sacco['kom6'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/motor/kom_slu.03') sacco['rots2'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/motor/rots_slu.02') - sacco['vuoto1'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_utdr.01') - sacco['vuoto2'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_uh.03') - sacco['vuoto3'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_ehf.01') - sacco['vuoto4'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_ehf.03') sacco['decima1'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/f/timing/rttrigger_sl.01') sacco['decima2'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/f/timing/rttrigger_sl.02') sacco['decima3'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/f/timing/rttrigger_sl.03') @@ -64,6 +60,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['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') sacco['valvolaUH2'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/uh/vacuum/vlvp_uh.02') @@ -226,6 +223,8 @@ class MainWindow(QDialog): self.monitor_tempera= LineEditRO() self.monitor_loglabel = QLabel("Log") self.monitor_log = LineEditRO() + self.monitor_delaylabel = QLabel("Delay") + self.monitor_delay = LineEditRO() self.monitor_letturashutterlaser = LineEditRO() self.monitor_letturashutterbeamline = LineEditRO() self.monitor_abilitatoshutterlaser = LineEditRO() @@ -247,7 +246,9 @@ class MainWindow(QDialog): lot1.addWidget(self.monitor_tempera, 4, 1) lot1.addWidget(self.monitor_loglabel, 5, 0) lot1.addWidget(self.monitor_log, 5, 1) - lot1.addWidget(QVLine(), 0, 2, 6, 1) + lot1.addWidget(self.monitor_delaylabel, 6, 0) + lot1.addWidget(self.monitor_delay, 6, 1) + lot1.addWidget(QVLine(), 0, 2, 7, 1) lot1.addWidget(QLabel("Main Shutter:"), 0, 3) lot1.addWidget(self.monitor_letturashutterlaser, 0, 4) lot1.addWidget(self.monitor_abilitatoshutterlaser, 0, 5) @@ -614,6 +615,17 @@ class MainWindow(QDialog): self.memo_mag_W.clicked.connect(self.memoriaMAGw) self.salvatrigger = QPushButton('Save trigger') self.salvatrigger.clicked.connect(self.funzionesalvatrigger) + self.sdg_watchdog = QPushButton('SDG watchdog') + self.sdg_watchdog.clicked.connect(self.apriwdsdg) + self.sdg_watchdogR = LineEditRO() + self.sdg_watchdogON = QPushButton('ON') + self.sdg_watchdogON.clicked.connect(self.ONwdsdg) + self.sdg_watchdogOFF = QPushButton('OFF') + self.sdg_watchdogOFF.clicked.connect(self.OFFwdsdg) + self.sdg_watchdogINIT = QPushButton('OFF/INIT') + self.sdg_watchdogINIT.clicked.connect(self.INITwdsdg) + self.sdg_watchdogACK = QPushButton('Reset fault') + self.sdg_watchdogACK.clicked.connect(self.ACKwdsdg) riga = 0 lot5.addWidget(QLabel('SLU delay calculator'), riga, 2, 1, 2) lot5.addWidget(self.scope6apri, riga, 5, 1, 3) @@ -659,6 +671,12 @@ class MainWindow(QDialog): lot5.addWidget(self.triggerDGQ1RELm, riga, 5) lot5.addWidget(self.triggerDGQ1RELp, riga, 7) riga += 1 + lot5.addWidget(self.sdg_watchdog, riga, 0) + lot5.addWidget(self.sdg_watchdogR, riga, 1) + lot5.addWidget(self.sdg_watchdogON, riga, 2) + lot5.addWidget(self.sdg_watchdogACK, riga, 3) + lot5.addWidget(self.sdg_watchdogINIT, riga, 4) + riga += 1 lot5.addWidget(self.delay8, riga, 0) lot5.addWidget(self.delay8R, riga, 1) lot5.addWidget(self.delay8ABS, riga, 2) @@ -2081,6 +2099,18 @@ class MainWindow(QDialog): risposta_trgsdg = -1 self.triggerDGQ1R.setText(str(round(risposta_trgsdg, 3)) + ' ns') self.triggerDGQ1R.setStyleSheet("background-color: #ff0000") + try: + tmp = str(sacco['watchdogSDG'].State()) + except: + tmp = 'unknown' + self.monitor_delay.setText('Watchdog ' + tmp) + self.sdg_watchdogR.setText(tmp) + if tmp == 'RUNNING': + self.monitor_delay.setStyleSheet("background-color: #00ff00") + self.sdg_watchdogR.setStyleSheet("background-color: #00ff00") + else: + self.monitor_delay.setStyleSheet("background-color: #ff0000") + self.sdg_watchdogR.setStyleSheet("background-color: #ff0000") ####6 vuoto pompaccesa = 0 valvolaperta = 0 @@ -3108,7 +3138,7 @@ class MainWindow(QDialog): os.system("/runtime/bin/sl-decimators-gui &") def apriscope6(self): - os.system('/usr/bin/vncviewer scope-laser-03 &') + os.system('/usr/bin/vncviewer scope-laser-06 &') def accendidecimatore(self, chi, metodo): if metodo == 'random': @@ -3278,6 +3308,21 @@ class MainWindow(QDialog): gol = sacco['triggerDGQ1'].Chan2Delay + tmp sacco['triggerDGQ1'].write_attribute('Chan2Delay', gol) + def apriwdsdg(self): + os.system('/usr/local/tango-9.3.3/bin/atkpanel sl/sequence/delay_sdgslu_sl.01 &') + + def ONwdsdg(self): + sacco['watchdogSDG'].Start() + + def OFFwdsdg(self): + sacco['watchdogSDG'].Stop() + + def INITwdsdg(self): + sacco['watchdogSDG'].Init() + + def ACKwdsdg(self): + sacco['watchdogSDG'].Acknowledge() + def calcoladelayslu(self): delta_t = float(self.delaycalcS.text()) sacco['trls8_delay'].write_attribute('Speed', 100) -- GitLab