From f7d926b68356023a4d962e9e39cd641252b39c8f Mon Sep 17 00:00:00 2001 From: "paolo.cinquegrana@elettra.eu" <paolo.cinquegrana@elettra.eu> Date: Sun, 23 Apr 2023 20:04:07 +0200 Subject: [PATCH] nuova versione --- src/SluSourceMonitor.py | 3310 +++++++++++++++++++++++++++++++-------- 1 file changed, 2677 insertions(+), 633 deletions(-) diff --git a/src/SluSourceMonitor.py b/src/SluSourceMonitor.py index 1643968..b946c9c 100644 --- a/src/SluSourceMonitor.py +++ b/src/SluSourceMonitor.py @@ -1,21 +1,34 @@ #!/usr/bin/python3 # carico moduli -from __future__ import division import numpy as np import PyTango -from PyQt4.QtCore import * -from PyQt4.QtGui import * import os -import sys +import csv import time +from PyQt5.QtWidgets import QGroupBox, QApplication, QWidget, QHBoxLayout, QGridLayout, QPushButton, QLineEdit, QProgressBar, QLabel, QTabWidget, QFrame, QComboBox, QDialog, QCheckBox +from PyQt5.QtCore import QBasicTimer +from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas +import matplotlib.pyplot as plt # variabili globali -listacoperchi = ['CVR1_LSU_UH_CLD', 'CVR_MBX1_MBX2_EOS2_CLD', 'CVR2_LSU_UH_CLD', 'CVR_M21_M22_M23_EOS2_CLD', 'CVR_LSU_EH_1_CLD', 'CVR_LSU_EH_2_CLD', 'BRD_CVR_CLD', 'BRD_SCREEN_CLD'] -listaporte = ['DR_LSU_EH_01_CLD', 'DR_LSU_EH_02_CLD', 'DR_LSU_EH_03_CLD', 'DR_LSU_EH_04_CLD', 'DR_LSU_EH_05_CLD', 'DR_LSU_EH_06_CLD', 'DR_LSU_EH_07_CLD', 'DR_LSU_EH_08_CLD'] +listamonitor_coperchi = ['CVR1_LSU_UH_CLD', 'CVR_MBX1_MBX2_EOS2_CLD', 'CVR2_LSU_UH_CLD', 'CVR_M21_M22_M23_EOS2_CLD', 'CVR_LSU_EH_1_CLD', 'CVR_LSU_EH_2_CLD', 'BRD_CVR_CLD', 'BRD_SCREEN_CLD'] +listamonitor_porte = ['DR_LSU_EH_01_CLD', 'DR_LSU_EH_02_CLD', 'DR_LSU_EH_03_CLD', 'DR_LSU_EH_04_CLD', 'DR_LSU_EH_05_CLD', 'DR_LSU_EH_06_CLD', 'DR_LSU_EH_07_CLD', 'DR_LSU_EH_08_CLD'] sacco = {} try: sacco['calendario'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/laser/calendar_slu.01') + sacco['archiviatore'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/archiving/hdb++archiver/slu') + sacco['costanti'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/misc/ranges') + sacco['interlock'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/interlock/laser_pss') + + sacco['revolution'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/laser/evops_sl.03') + sacco['SLtemperature'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/cooling/dmm_sl.01') + sacco['ems3'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/energy_meter/ems_sl.03') + sacco['ems8'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/energy_meter/ems_sl.08') + sacco['slelitefbin'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/feedback/rtltf_osc.01') + sacco['slelitefbtime'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/feedback/fbdelay_sl.02') + sacco['attenuator'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/motor/rots_sl.09') + sacco['piezo0'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/piezo/tiptilt_slu.04') sacco['piezo1'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/piezo/tiptilt_slu.01') sacco['piezo2'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/piezo/tiptilt_slu.02') @@ -25,31 +38,56 @@ try: sacco['ccd1'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/diagnostics/ccd_slu.03') sacco['ccd2'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/diagnostics/ccd_slu.04') sacco['ccd3'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/diagnostics/ccd_slu.08') + sacco['ccd4'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/diagnostics/ccd_slu.08') 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['interlock'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/interlock/laser_pss') - sacco['pumptemperature'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/cooling/dmm_sl.01') - sacco['trigger'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/ec-sl-slpsr-01/evr/ff100000') + + 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') + 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['scope6'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/diagnostics/scope_sl.01') + sacco['trls8_delay'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/motor/trls_sl.08') sacco['totem_delay'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/motor/trls_slu.05') - sacco['costanti'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/misc/ranges') - sacco['emslr'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/energy_meter/ems_sl.03') - sacco['pump'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/laser/evops_sl.03') - sacco['slelitefbin'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/feedback/rtltf_osc.01') - sacco['slelitefbtime'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/feedback/fbdelay_sl.02') - sorgente = 2 - sensoretemperatura = 'Pt100_CHLRREVO_01' - triggerdelays = 'Chan2Delay' + 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') + sacco['triggerSLU'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/ec-slu-ehf-01/evr/ff100000') + sacco['triggerDGQ1'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sl/delay/dgq_slpsr.01') + 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['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') + sacco['valvolaUH3'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/uh/vacuum/vlvp_uh.03') + sacco['valvolaSH1'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/sh/vacuum/vlvp_sh.01') + sacco['valvolaEHF1'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/ehf/vacuum/vlvp_ehf.01') + sacco['valvolaEHF2'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/ehf/vacuum/vlvp_ehf.02') + sacco['sensoreUH1'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_uh.01') + sacco['sensoreUH2'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_uh.02') + sacco['sensoreUH3'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_uh.03') + sacco['sensoreUH4'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_uh.04') + sacco['sensoreSH1'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_sh.01') + sacco['sensoreUTDR'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_utdr.01') + sacco['sensoreEHF1'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_ehf.01') + sacco['sensoreEHF2'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_ehf.02') + sacco['sensoreEHF3'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_ehf.03') + sacco['sensoreEHF4'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_ehf.04') + + sacco['SLUtemperature'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/cooling/dmm_slu.01') + + + except PyTango.DevFailed: print('error defining sacco DeviceProxys') -try: - selettore = sacco['calendario'].activityNum -except PyTango.DevFailed: - selettore = -1 -#parte bl +##parte bl try: sacco['totfeedback'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/feedback/mimofb_totem_slu.01') sacco['tmrfeedback'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/feedback/mimofb_tmr_slu.01') @@ -67,39 +105,31 @@ try: sacco['magfeedback'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/feedback/mimofb_mag_slu.01') sacco['magfbsequencer'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/seq/recover/fb_weights_mag_slu.01') sacco['magccd4'] = PyTango.DeviceProxy('srv-tango-srf-01:20000/slu/diagnostics/ccd_slu.10') + + sacco['ldm_kom1'] = PyTango.DeviceProxy('srv-tango-ldm-01:20000/ldm/motor/kom_slu_ldm.01') + sacco['ldm_kom2'] = PyTango.DeviceProxy('srv-tango-ldm-01:20000/ldm/motor/kom_slu_ldm.02') + sacco['ldm_rots1'] = PyTango.DeviceProxy('srv-tango-ldm-01:20000/ldm/motor/rots_slu_ldm.01') + sacco['ldm_rots2'] = PyTango.DeviceProxy('srv-tango-ldm-01:20000/ldm/motor/rots_slu_ldm.02') + sacco['ldm_rots3'] = PyTango.DeviceProxy('srv-tango-ldm-01:20000/ldm/motor/rots_slu_ldm.03') + sacco['ldm_trls2'] = PyTango.DeviceProxy('srv-tango-ldm-01:20000/ldm/motor/trls_slu_ldm.02') + sacco['ldm_gentec1'] = PyTango.DeviceProxy('srv-tango-ldm-01:20000/ldm/energy_meter/ems_slu_ldm.01') + sacco['ldm_gentec2'] = PyTango.DeviceProxy('srv-tango-ldm-01:20000/ldm/energy_meter/ems_slu_ldm.02') + sacco['ldm_fb1'] = PyTango.DeviceProxy('srv-tango-ldm-01:20000/ldm/feedback/rtltf_ldm.01') + sacco['ldm_fb2'] = PyTango.DeviceProxy('srv-tango-ldm-01:20000/ldm/feedback/rtltf_ldm.02') + except PyTango.DevFailed: print('error defining sacco DeviceProxys') -if selettore < 2: #unknown, shutdown - linea = None -elif selettore == 2: #TOTEM - linea = 'TOTEM' -elif selettore == 3: #TIMER - linea = 'TIMER' -elif selettore == 4: #TIMEX - linea = 'TIMEX' -elif selettore == 5: #DIPRI - linea = 'DIPROI' -elif selettore == 6: #LDM - linea = 'LDM' -elif selettore == 7: #MAGNEDYN - linea = 'MAGNEDYN' - class MainWindow(QDialog): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) - self.sorgente = sorgente - self.linea = linea - ### beamline - self.gruppobeamline = QGroupBox() - self.STATOSLU = QLineEdit("") - self.STATOSLU.setReadOnly(1) - self.STATOSLU.setToolTip('Experimental hall LASER State') - self.beamlineattiva = QLineEdit("") - self.beamlineattiva.setReadOnly(1) - self.beamlineattiva.setStyleSheet("background-color: rgb(200, 200, 200)") - self.menubeamline = QComboBox() + self.autodeterminazionedeipupoli = 0 + # top + self.gruppobeamline = QFrame() + self.STATOSLU = LineEditRO() + self.beamlineattiva = LineEditRO() + self.menubeamline = QComboBox() self.menubeamline.addItem("None") self.menubeamline.addItem("TIMER") self.menubeamline.addItem("TIMEX") @@ -113,125 +143,170 @@ class MainWindow(QDialog): self.paginawiki = QPushButton("?") self.paginawiki.clicked.connect(self.lanciailwiki) lobeamline = QGridLayout() - lobeamline.addWidget(self.paginawiki, 0, 0) - lobeamline.addWidget(QLabel("SLU state:"), 0, 1) - lobeamline.addWidget(self.STATOSLU, 0, 2) - lobeamline.addWidget(QLabel("Active beamline:"), 0, 3) - lobeamline.addWidget(self.beamlineattiva, 0, 4) - lobeamline.addWidget(QLabel("|"), 0, 5) - lobeamline.addWidget(QLabel("switch to:"), 0, 6) - lobeamline.addWidget(self.menubeamline, 0, 7) - lobeamline.addWidget(self.calendar, 0, 8) + lobeamline.addWidget(QLabel("SLU state:"), 0, 0) + lobeamline.addWidget(self.STATOSLU, 0, 1) + lobeamline.addWidget(QLabel("Active beamline:"), 0, 2) + lobeamline.addWidget(self.beamlineattiva, 0, 3) + lobeamline.addWidget(QLabel("|"), 0, 4) + lobeamline.addWidget(QLabel("switch to:"), 0, 5) + lobeamline.addWidget(self.menubeamline, 0, 6) + lobeamline.addWidget(self.calendar, 0, 7) + lobeamline.addWidget(self.paginawiki, 0, 8) self.gruppobeamline.setLayout(lobeamline) - ### amplifier - self.grupposorgente = QGroupBox() - self.energiaslr_letturaL = QLabel("Source energy") - self.energiaslr_letturaL.setAlignment(Qt.AlignCenter) - self.energiaslr_lettura = QLineEdit("") - self.energiaslr_lettura.setToolTip('IR energy BEFORE beam transport') - self.energiaslr_lettura.setReadOnly(1) - self.globale_amplificatoreL = QLabel("Amplifier") - self.globale_amplificatoreL.setAlignment(Qt.AlignCenter) - self.globale_amplificatore = QLineEdit("") - self.globale_amplificatore.setReadOnly(1) - self.globale_amplificatore.setToolTip('Global indicator for Pump temperature, Amplifier current and triggers. If not green call Reperibile Laser') - self.statoinputL = QLabel("Input fb") - self.statoinputL.setAlignment(Qt.AlignCenter) - self.statoinput = QLineEdit("") - self.statoinput.setReadOnly(1) - self.statoinput.setToolTip('Input feedback of the amplifier dedicated to SLU. If not green call Reperibile Laser') - self.statooutputL = QLabel("Output fb") - self.statooutputL.setAlignment(Qt.AlignCenter) - self.statooutput = QLineEdit("") - self.statooutput.setReadOnly(1) - self.statooutput.setToolTip('Output feedback of the amplifier dedicated to SLU. If not green call Reperibile Laser') - self.statotimeL = QLabel("Timing fb") - self.statotimeL.setAlignment(Qt.AlignCenter) - self.statotime = QLineEdit("") - self.statotime.setReadOnly(1) - self.statotime.setToolTip('Timing feedback of the amplifier dedicated to SLU. If not green call Reperibile Laser') - self.vuotoutdrL = QLabel("Vacuum UTDR") - self.vuotoutdrL.setAlignment(Qt.AlignCenter) - self.vuotoutdr = QLineEdit("") - self.vuotoutdr.setToolTip('Vacuum reading of UTDR section of the beam transport. If not green call Reperibile Laser') - self.vuotoutdr.setReadOnly(1) - self.vuotouhL = QLabel("Vacuum UH") - self.vuotouhL.setAlignment(Qt.AlignCenter) - self.vuotouh = QLineEdit("") - self.vuotouh.setToolTip('Vacuum reading of UH section of the beam transport. If not green call Reperibile Laser') - self.vuotouh.setReadOnly(1) - self.vuotouhtotemL = QLabel("Vacuum UH-Totem") - self.vuotouhtotemL.setAlignment(Qt.AlignCenter) - self.vuotouhtotem = QLineEdit("") - self.vuotouhtotem.setToolTip('Vacuum reading of UH-TOTEM section of the beam transport. If not green call Reperibile Laser') - self.vuotouhtotem.setReadOnly(1) - self.vuotototembeamlineL = QLabel("Vacuum Totem-BL") - self.vuotototembeamlineL.setAlignment(Qt.AlignCenter) - self.vuotototembeamline = QLineEdit("") - self.vuotototembeamline.setToolTip('Vacuum reading of TOTEM-BEAMLINE section of the beam transport. If not green call Reperibile Laser') - self.vuotototembeamline.setReadOnly(1) - losorgente = QGridLayout() - losorgente.addWidget(self.energiaslr_letturaL, 0, 0) - losorgente.addWidget(self.energiaslr_lettura, 1, 0) - losorgente.addWidget(self.globale_amplificatoreL, 0, 1) - losorgente.addWidget(self.globale_amplificatore, 1, 1) - losorgente.addWidget(self.statoinputL, 0, 2) - losorgente.addWidget(self.statoinput, 1, 2) - losorgente.addWidget(self.statooutputL, 0, 3) - losorgente.addWidget(self.statooutput, 1, 3) - losorgente.addWidget(self.statotimeL, 0, 4) - losorgente.addWidget(self.statotime, 1, 4) - losorgente.addWidget(self.vuotoutdrL, 0, 5) - losorgente.addWidget(self.vuotoutdr, 1, 5) - losorgente.addWidget(self.vuotouhL, 0, 6) - losorgente.addWidget(self.vuotouh, 1, 6) - losorgente.addWidget(self.vuotouhtotemL, 0, 7) - losorgente.addWidget(self.vuotouhtotem, 1, 7) - losorgente.addWidget(self.vuotototembeamlineL, 0, 8) - losorgente.addWidget(self.vuotototembeamline, 1, 8) - self.grupposorgente.setLayout(losorgente) - ### shutter - self.grupposhutter = QGroupBox() - self.letturashutterlaser = QLineEdit("") - self.letturashutterlaser.setReadOnly(1) - self.letturashutterbeamline = QLineEdit("") - self.letturashutterbeamline.setReadOnly(1) - self.abilitatoshutterlaser = QLineEdit("") - self.abilitatoshutterlaser.setReadOnly(1) - self.abilitatoshutterbeamline = QLineEdit("") - self.abilitatoshutterbeamline.setReadOnly(1) - self.aprilaserpss = QPushButton("Laser PSS") - self.aprilaserpss.clicked.connect(self.apripss) - self.porteL = QLabel("Doors:") - self.porte = QLineEdit("") - self.porte.setReadOnly(1) - self.coperchiL = QLabel("Cover:") - self.coperchi = QLineEdit("") - self.coperchi.setReadOnly(1) - self.piellecciL = QLabel("PLC:") - self.piellecci = QLineEdit("") - self.piellecci.setReadOnly(1) - loshutter = QGridLayout() - loshutter.addWidget(self.aprilaserpss, 0, 0) - loshutter.addWidget(QLabel("Main Shutter:"), 0, 1) - loshutter.addWidget(self.letturashutterlaser, 0, 2) - loshutter.addWidget(self.abilitatoshutterlaser, 0, 3) - loshutter.addWidget(QLabel("Beamline Shutter:"), 0, 4) - loshutter.addWidget(self.letturashutterbeamline, 0, 5) - loshutter.addWidget(self.abilitatoshutterbeamline, 0, 6) - loshutter.addWidget(self.porteL, 0, 7) - loshutter.addWidget(self.porte, 0, 8) - loshutter.addWidget(self.coperchiL, 0, 9) - loshutter.addWidget(self.coperchi, 0, 10) - loshutter.addWidget(self.piellecciL, 0, 11) - loshutter.addWidget(self.piellecci, 0, 12) - self.grupposhutter.setLayout(loshutter) - ### feedback - self.gruppofeedback = QGroupBox() + #tab + self.contienitab = QTabWidget() + self.tab1 = QWidget() + self.tab2 = QWidget() + self.tab3 = QWidget() + self.tab4 = QWidget() + self.tab5 = QWidget() + self.tab6 = QWidget() + self.tab7 = QWidget() + self.tab8 = QWidget() + self.tab9 = QWidget() + self.tab10 = QWidget() + self.tab11 = QWidget() + self.tab12 = QWidget() + self.tab13 = QWidget() + self.tab14 = QWidget() + self.contienitab.addTab(self.tab1, "Monitor") + self.contienitab.addTab(self.tab2, "Source") + self.contienitab.addTab(self.tab3, "Pointing FB") + self.contienitab.addTab(self.tab4, "Decimation") + self.contienitab.addTab(self.tab6, "Vacuum") + self.contienitab.addTab(self.tab7, "Temperature") + self.contienitab.addTab(self.tab8, "Log") + self.contienitab.addTab(self.tab5, "Delay") +# self.contienitab.addTab(self.tab9, "Timer") +# self.contienitab.addTab(self.tab10, "Timex") +# self.contienitab.addTab(self.tab11, "DiProi") + self.contienitab.addTab(self.tab12, "LDM") +# self.contienitab.addTab(self.tab13, "MagneDyn") +# self.contienitab.addTab(self.tab14, "Alarms") + lot1 = QGridLayout() + lot2 = QGridLayout() + lot3 = QGridLayout() + lot4 = QGridLayout() + lot5 = QGridLayout() + lot6 = QGridLayout() + lot7 = QGridLayout() + lot8 = QGridLayout() + lot9 = QGridLayout() + lot10 = QGridLayout() + lot11 = QGridLayout() + lot12 = QGridLayout() + lot13 = QGridLayout() + lot14 = QGridLayout() + self.tab1.setLayout(lot1) + self.tab2.setLayout(lot2) + self.tab3.setLayout(lot3) + self.tab4.setLayout(lot4) + self.tab5.setLayout(lot5) + self.tab6.setLayout(lot6) + self.tab7.setLayout(lot7) + self.tab8.setLayout(lot8) + self.tab9.setLayout(lot9) + self.tab10.setLayout(lot10) + self.tab11.setLayout(lot11) + self.tab12.setLayout(lot12) + self.tab13.setLayout(lot13) + self.tab14.setLayout(lot14) + #1 monitor + self.monitor_amplilabel = QLabel("Source") + self.monitor_ampli = LineEditRO() + self.monitor_pointinglabel = QLabel("Pointing FB") + self.monitor_pointing = LineEditRO() + self.monitor_decimationlabel = QLabel("Decimation") + self.monitor_decimation = LineEditRO() + self.monitor_vacuumlabel = QLabel("Vacuum") + self.monitor_vacuum = LineEditRO() + self.monitor_temperalabel = QLabel("Temperature") + self.monitor_tempera= LineEditRO() + self.monitor_loglabel = QLabel("Log") + self.monitor_log = LineEditRO() + self.monitor_letturashutterlaser = LineEditRO() + self.monitor_letturashutterbeamline = LineEditRO() + self.monitor_abilitatoshutterlaser = LineEditRO() + self.monitor_abilitatoshutterbeamline = LineEditRO() + self.monitor_aprilaserpss = QPushButton("Laser PSS") + self.monitor_aprilaserpss.clicked.connect(self.apripss) + self.monitor_porte = LineEditRO() + self.monitor_coperchi = LineEditRO() + self.monitor_piellecci =LineEditRO() + lot1.addWidget(self.monitor_amplilabel, 0, 0) + lot1.addWidget(self.monitor_ampli, 0, 1) + lot1.addWidget(self.monitor_pointinglabel,1, 0) + lot1.addWidget(self.monitor_pointing, 1, 1) + lot1.addWidget(self.monitor_decimationlabel, 2, 0) + lot1.addWidget(self.monitor_decimation, 2, 1) + lot1.addWidget(self.monitor_vacuumlabel, 3, 0) + lot1.addWidget(self.monitor_vacuum, 3, 1) + lot1.addWidget(self.monitor_temperalabel, 4, 0) + 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(QLabel("Main Shutter:"), 0, 3) + lot1.addWidget(self.monitor_letturashutterlaser, 0, 4) + lot1.addWidget(self.monitor_abilitatoshutterlaser, 0, 5) + lot1.addWidget(QLabel("Beamline Shutter:"), 1, 3) + lot1.addWidget(self.monitor_letturashutterbeamline, 1, 4) + lot1.addWidget(self.monitor_abilitatoshutterbeamline, 1, 5) + lot1.addWidget(QLabel("Doors:"), 2, 3) + lot1.addWidget(self.monitor_porte, 2, 4) + lot1.addWidget(QLabel("Cover:"), 3, 3) + lot1.addWidget(self.monitor_coperchi, 3, 4) + lot1.addWidget(QLabel("PLC:"), 4, 3) + lot1.addWidget(self.monitor_piellecci, 4, 4) + lot1.addWidget(self.monitor_aprilaserpss, 5, 3, 1, 3) + #2 source + self.source_amplistate = LineEditRO() + self.source_amplicurrent = LineEditRO() + self.source_amplienergy = LineEditRO() + self.source_amplipumptemperature = LineEditRO() + self.source_amplitemperature = LineEditRO() + self.source_ampliFBin = LineEditRO() + self.source_ampliFBtime = LineEditRO() + self.source_launchenergy = LineEditRO() + self.source_attenuator = LineEditRO() + self.source_attenuatorcontrol = movimentirelativi() + self.source_attenuatorcontrol.muoviM.clicked.connect(self.attenuatoregiu) + self.source_attenuatorcontrol.muoviP.clicked.connect(self.attenuatoresu) + riga = 0 + colonna = 0 + lot2.addWidget(QLabel("Amplifier State"), riga, colonna) + lot2.addWidget(self.source_amplistate, riga, colonna+1) + riga +=1 + lot2.addWidget(QLabel("Amplifier Current"), riga, colonna) + lot2.addWidget(self.source_amplicurrent, riga, colonna+1) + riga +=1 + lot2.addWidget(QLabel("Amplifier Energy"), riga, colonna) + lot2.addWidget(self.source_amplienergy, riga, colonna+1) + riga +=1 + lot2.addWidget(QLabel("Pump laser Temperature"), riga, colonna) + lot2.addWidget(self.source_amplipumptemperature, riga, colonna+1) + riga +=1 + lot2.addWidget(QLabel("Amplifier Temperature"), riga, colonna) + lot2.addWidget(self.source_amplitemperature, riga, colonna+1) + riga +=1 + lot2.addWidget(QLabel("Amplifier input FB"), riga, colonna) + lot2.addWidget(self.source_ampliFBin, riga, colonna+1) + riga +=1 + lot2.addWidget(QLabel("Amplifier time FB"), riga, colonna) + lot2.addWidget(self.source_ampliFBtime, riga, colonna+1) + colonna +=2 + riga = 0 + lot2.addWidget(QLabel("Launch Energy"), riga, colonna) + lot2.addWidget(self.source_launchenergy, riga, colonna+1) + riga +=1 + lot2.addWidget(QLabel("T2 attenuator"), riga, colonna) + lot2.addWidget(self.source_attenuator, riga, colonna+1) + riga +=1 + lot2.addWidget(self.source_attenuatorcontrol, riga, colonna+1) + #3 feedback self.feedbackpannello = QPushButton("Transport feedback") self.feedbackpannello.clicked.connect(self.aprifeedback) - self.feedbackstato = QLineEdit("") - self.feedbackstato.setReadOnly(1) + self.feedbackstato = LineEditRO() self.feedbackon = QPushButton("ON") self.feedbackon.clicked.connect(self.accendiilfeedback) self.feedbacksmarton = QPushButton("Start 1by1") @@ -247,7 +322,7 @@ class MainWindow(QDialog): self.feedbackstopothers.setDisabled(1) self.feedbackautolabel = QPushButton('Auto-weights') self.feedbackautolabel.clicked.connect(self.apriSEQpesi) - self.feedbackautoread = QLineEdit('') + self.feedbackautoread = LineEditRO() self.feedbackautoonoffreset = QPushButton('On') self.feedbackautoonoffreset.clicked.connect(self.comandipersequencer) self.feedbackstopothersauto = QPushButton('Stop other BL sequencer') @@ -260,173 +335,818 @@ class MainWindow(QDialog): self.feedbacksalvapiezi.clicked.connect(self.scrivitensioni) self.feedbackripristinapiezi = QPushButton('Restore pzt voltage') self.feedbackripristinapiezi.clicked.connect(self.riapplicatensioni) - self.feedback0L = QLabel("SLR Table1 -> Table2") - self.feedback0L.setAlignment(Qt.AlignCenter) - self.feedback0x = QProgressBar() - self.feedback0x.setRange(0, 100) - self.feedback0x.setValue(0) - self.feedback0x.setToolTip('Horizontal') - self.feedback0x.setAlignment(Qt.AlignCenter) - self.feedback0y = QProgressBar() - self.feedback0y.setRange(0, 100) - self.feedback0y.setValue(0) - self.feedback0y.setToolTip('Vertical') - self.feedback0y.setAlignment(Qt.AlignCenter) - self.feedback0corrector = QPushButton("tiptilt") - self.feedback0corrector.clicked.connect(self.apritiptilt0) - self.feedback0monitor = QPushButton("CCD") - self.feedback0monitor.clicked.connect(self.apriccd0) -# if not(selettore >= 1 and selettore <= 6): -# self.feedback0L.setDisabled(1) -# self.feedback0x.setDisabled(1) -# self.feedback0y.setDisabled(1) -# self.feedback0corrector.setDisabled(1) -# self.feedback0monitor.setDisabled(1) - self.feedback1L = QLabel("SLR -> UH") - self.feedback1L.setAlignment(Qt.AlignCenter) - self.feedback1x = QProgressBar() - self.feedback1x.setRange(0, 100) - self.feedback1x.setValue(0) - self.feedback1x.setToolTip('Horizontal') - self.feedback1x.setAlignment(Qt.AlignCenter) - self.feedback1y = QProgressBar() - self.feedback1y.setRange(0, 100) - self.feedback1y.setValue(0) - self.feedback1y.setToolTip('Vertical') - self.feedback1y.setAlignment(Qt.AlignCenter) - self.feedback1corrector = QPushButton("tiptilt") - self.feedback1corrector.clicked.connect(self.apritiptilt1) - self.feedback1monitor = QPushButton("CCD") - self.feedback1monitor.clicked.connect(self.apriccd1) - self.feedback2L = QLabel("UH -> Totem") - self.feedback2L.setAlignment(Qt.AlignCenter) - self.feedback2x = QProgressBar() - self.feedback2x.setRange(0, 100) - self.feedback2x.setValue(0) - self.feedback2x.setToolTip('Horizontal') - self.feedback2x.setAlignment(Qt.AlignCenter) - self.feedback2y = QProgressBar() - self.feedback2y.setRange(0, 100) - self.feedback2y.setValue(0) - self.feedback2y.setToolTip('Vertical') - self.feedback2y.setAlignment(Qt.AlignCenter) - self.feedback2corrector = QPushButton("tiptilt") - self.feedback2corrector.clicked.connect(self.apritiptilt2) - self.feedback2monitor = QPushButton("CCD") - self.feedback2monitor.clicked.connect(self.apriccd2) - self.feedback3L = QLabel("Totem up -> down") - self.feedback3L.setAlignment(Qt.AlignCenter) - self.feedback3x = QProgressBar() - self.feedback3x.setRange(0, 100) - self.feedback3x.setValue(0) - self.feedback3x.setToolTip('Horizontal') - self.feedback3x.setAlignment(Qt.AlignCenter) - self.feedback3y = QProgressBar() - self.feedback3y.setRange(0, 100) - self.feedback3y.setValue(0) - self.feedback3y.setToolTip('Vertical') - self.feedback3y.setAlignment(Qt.AlignCenter) - self.feedback3corrector = QPushButton("tiptilt") - self.feedback3corrector.clicked.connect(self.apritiptilt3) - self.feedback3monitor = QPushButton("CCD") - self.feedback3monitor.clicked.connect(self.apriccd3) - self.feedback4L = QLabel("Totem -> Beamline") - self.feedback4L.setAlignment(Qt.AlignCenter) - self.feedback4x = QProgressBar() - self.feedback4x.setRange(0, 100) - self.feedback4x.setValue(0) - self.feedback4x.setToolTip('Horizontal') - self.feedback4x.setAlignment(Qt.AlignCenter) - self.feedback4y = QProgressBar() - self.feedback4y.setRange(0, 100) - self.feedback4y.setValue(0) - self.feedback4y.setToolTip('Vertical') - self.feedback4y.setAlignment(Qt.AlignCenter) - self.feedback4corrector = QPushButton("tiptilt") - self.feedback4corrector.clicked.connect(self.apritiptilt4) - self.feedback4monitor = QPushButton("CCD") - self.feedback4monitor.clicked.connect(self.apriccd4) - lofeedback = QGridLayout() - lofeedback.addWidget(self.feedbackpannello, 0, 0) - lofeedback.addWidget(self.feedbackstato, 0, 1) - lofeedback.addWidget(self.feedbackon, 0, 2) - lofeedback.addWidget(self.feedbacksb, 0, 3) - lofeedback.addWidget(self.feedbackconfig, 0, 4) - lofeedback.addWidget(self.feedbacksmarton, 0, 5) - lofeedback.addWidget(self.feedbackreset, 0, 6) - lofeedback.addWidget(self.feedbacksalvapiezi, 0, 7) - lofeedback.addWidget(self.feedbackripristinapiezi, 0, 8, 1, 2) - lofeedback.addWidget(self.feedbackautolabel, 1, 0) - lofeedback.addWidget(self.feedbackautoread, 1, 1) - lofeedback.addWidget(self.feedbackautoonoffreset, 1, 2) - lofeedback.addWidget(self.feedbackstopothersauto, 1, 3) - lofeedback.addWidget(self.feedbackstopothersccds, 1, 4) - lofeedback.addWidget(self.feedbackstopothers, 1, 5) - lofeedback.addWidget(self.feedback0L, 2, 0, 1, 2) - lofeedback.addWidget(self.feedback0monitor, 3, 0, 1, 2) - lofeedback.addWidget(self.feedback0corrector, 4, 0, 1, 2) - lofeedback.addWidget(self.feedback0x, 5, 0) - lofeedback.addWidget(self.feedback0y, 5, 1) - lofeedback.addWidget(self.feedback1L, 2, 2, 1, 2) - lofeedback.addWidget(self.feedback1monitor, 3, 2, 1, 2) - lofeedback.addWidget(self.feedback1corrector, 4, 2, 1, 2) - lofeedback.addWidget(self.feedback1x, 5, 2) - lofeedback.addWidget(self.feedback1y, 5, 3) - lofeedback.addWidget(self.feedback2L, 2, 4, 1, 2) - lofeedback.addWidget(self.feedback2monitor, 3, 4, 1, 2) - lofeedback.addWidget(self.feedback2corrector, 4, 4, 1, 2) - lofeedback.addWidget(self.feedback2x, 5, 4) - lofeedback.addWidget(self.feedback2y, 5, 5) - lofeedback.addWidget(self.feedback3L, 2, 6, 1, 2) - lofeedback.addWidget(self.feedback3monitor, 3, 6, 1, 2) - lofeedback.addWidget(self.feedback3corrector, 4, 6, 1, 2) - lofeedback.addWidget(self.feedback3x, 5, 6) - lofeedback.addWidget(self.feedback3y, 5, 7) - lofeedback.addWidget(self.feedback4L, 2, 8, 1, 2) - lofeedback.addWidget(self.feedback4monitor, 3, 8, 1, 2) - lofeedback.addWidget(self.feedback4corrector, 4, 8, 1, 2) - lofeedback.addWidget(self.feedback4x, 5, 8) - lofeedback.addWidget(self.feedback4y, 5, 9) - self.gruppofeedback.setLayout(lofeedback) - ### delay - self.gruppodelay = QGroupBox() + self.feedback0 = transport_fb_element("SLR Table2 -> Table1", sacco['ccd0'].name(), sacco['piezo0'].name()) + self.feedback1 = transport_fb_element("SLR -> UH", sacco['ccd1'].name(), sacco['piezo1'].name()) + self.feedback2 = transport_fb_element("UH -> Totem", sacco['ccd2'].name(), sacco['piezo2'].name()) + self.feedback3 = transport_fb_element("Totem up -> down", sacco['ccd3'].name(), sacco['piezo3'].name()) + self.feedback4 = transport_fb_element("Totem -> Beamline", 'boh', sacco['piezo4'].name()) + self.feedback4.tasto_ccd.clicked.connect(self.apriccd4) + self.feedback_motori_label = QLabel('some motors here') + riga = 0 + lot3.addWidget(self.feedbackstopothersauto, riga, 0, 1, 2) + lot3.addWidget(self.feedbackstopothersccds, riga, 2, 1, 2) + lot3.addWidget(self.feedbackstopothers, riga, 4, 1, 2) + riga += 1 + lot3.addWidget(self.feedbackpannello, riga, 0) + lot3.addWidget(self.feedbackstato, riga, 1) + lot3.addWidget(self.feedbackon, riga, 2) + lot3.addWidget(self.feedbacksb, riga, 3) + lot3.addWidget(self.feedbacksmarton, riga, 4) + lot3.addWidget(self.feedbackconfig, riga, 5) + riga += 1 + lot3.addWidget(self.feedbackreset, riga, 0) + lot3.addWidget(self.feedbacksalvapiezi, riga, 1) + lot3.addWidget(self.feedbackripristinapiezi, riga, 2) + lot3.addWidget(self.feedbackautolabel, riga, 3) + lot3.addWidget(self.feedbackautoread, riga, 4) + lot3.addWidget(self.feedbackautoonoffreset, riga, 5) + riga += 1 + lot3.addWidget(self.feedback0, riga, 0) + lot3.addWidget(self.feedback1, riga, 1) + lot3.addWidget(self.feedback2, riga, 2) + lot3.addWidget(self.feedback3, riga, 3) + lot3.addWidget(self.feedback4, riga, 4) + riga += 1 + lot3.addWidget(QHLine(), riga, 0, 1, 6) + riga += 1 + lot3.addWidget(self.feedback_motori_label, riga, 0) + #4 decimation + self.decimators = QPushButton('Open decimation panel') + self.decimators.clicked.connect(self.apridecimatori) + self.scope6 = QPushButton('Open scope-laser-06') + self.scope6.clicked.connect(self.apriscope6) + self.deci1L = QLabel('Global SEED+SLU') + self.deci1R = LineEditRO() + self.deci1on = QPushButton('ON (random)') + self.deci1on.clicked.connect(lambda: self.accendidecimatore('decima1', 'random')) + self.deci1on1 = QPushButton('ON (odd)') + self.deci1on1.clicked.connect(lambda: self.accendidecimatore('decima1', 'odd')) + self.deci1on2 = QPushButton('ON (even)') + self.deci1on2.clicked.connect(lambda: self.accendidecimatore('decima1', 'even')) + self.deci1off = QPushButton('OFF') + self.deci1off.clicked.connect(lambda: self.spegnidecimazione('decima1')) + self.deci1delay = QPushButton('Set DELAY') + self.deci1delay.clicked.connect(lambda: self.decimadelay('decima1')) + self.deci1status = QPushButton('Set STATUS') + self.deci1status.clicked.connect(lambda: self.decimastatus('decima1')) + self.deci1sequence_R = LineEditRO() + self.deci1sequence_W = QLineEdit() + self.deci1sequence = QPushButton('Change sequence') + self.deci1sequence.clicked.connect(lambda: self.decimasequenza('decima1')) + self.deci2L = QLabel('SEED / FEL') + self.deci2R = LineEditRO() + self.deci2on = QPushButton('ON (random)') + self.deci2on.clicked.connect(lambda: self.accendidecimatore('decima2', 'random')) + self.deci2on1 = QPushButton('ON (odd)') + self.deci2on1.clicked.connect(lambda: self.accendidecimatore('decima2', 'odd')) + self.deci2on2 = QPushButton('ON (even)') + self.deci2on2.clicked.connect(lambda: self.accendidecimatore('decima2', 'even')) + self.deci2off = QPushButton('OFF') + self.deci2off.clicked.connect(lambda: self.spegnidecimazione('decima2')) + self.deci2delay = QPushButton('Set DELAY') + self.deci2delay.clicked.connect(lambda: self.decimadelay('decima2')) + self.deci2status = QPushButton('Set STATUS') + self.deci2status.clicked.connect(lambda: self.decimastatus('decima2')) + self.deci2sequence_R = LineEditRO() + self.deci2sequence_W = QLineEdit() + self.deci2sequence = QPushButton('Change sequence') + self.deci2sequence.clicked.connect(lambda: self.decimasequenza('decima2')) + self.deci3L = QLabel('SLU') + self.deci3R = LineEditRO() + self.deci3on = QPushButton('ON (random)') + self.deci3on.clicked.connect(lambda: self.accendidecimatore('decima3', 'random')) + self.deci3on1 = QPushButton('ON (odd)') + self.deci3on1.clicked.connect(lambda: self.accendidecimatore('decima3', 'odd')) + self.deci3on2 = QPushButton('ON (even)') + self.deci3on2.clicked.connect(lambda: self.accendidecimatore('decima3', 'even')) + self.deci3off = QPushButton('OFF') + self.deci3off.clicked.connect(lambda: self.spegnidecimazione('decima3')) + self.deci3delay = QPushButton('Set DELAY') + self.deci3delay.clicked.connect(lambda: self.decimadelay('decima3')) + self.deci3status = QPushButton('Set STATUS') + self.deci3status.clicked.connect(lambda: self.decimastatus('decima3')) + self.deci3sequence_R = LineEditRO() + self.deci3sequence_W = QLineEdit() + self.deci3sequence = QPushButton('Change sequence') + self.deci3sequence.clicked.connect(lambda: self.decimasequenza('decima3')) + self.deciripristino = QPushButton('STOP ALL AND RESTORE CORRECT DELAYS') + self.deciripristino.clicked.connect(self.decimafermatutto) + lot4.addWidget(self.decimators, 0, 0, 1, 10) + lot4.addWidget(self.scope6, 0, 10, 1, 10) + lot4.addWidget(self.deci1L, 11, 0) + lot4.addWidget(self.deci1R, 11, 1, 1, 5) + lot4.addWidget(self.deci1on, 12, 0, 1, 2) + lot4.addWidget(self.deci1on1, 12, 2, 1, 2) + lot4.addWidget(self.deci1on2, 12, 4, 1, 2) + lot4.addWidget(self.deci1off, 13, 0, 1, 6) + lot4.addWidget(self.deci1delay, 14, 0, 1, 3) + lot4.addWidget(self.deci1status, 14, 3, 1, 3) + lot4.addWidget(QLabel('Sequence'), 15, 0) + lot4.addWidget(self.deci1sequence_R, 15, 1, 1, 5) + lot4.addWidget(self.deci1sequence_W, 16, 0, 1, 5) + lot4.addWidget(self.deci1sequence, 16, 5) + lot4.addWidget(QVLine(), 11, 6, 6, 1) + lot4.addWidget(self.deci2L, 11, 7) + lot4.addWidget(self.deci2R, 11, 8, 1, 5) + lot4.addWidget(self.deci2on, 12, 7, 1, 2) + lot4.addWidget(self.deci2on1, 12, 9, 1, 2) + lot4.addWidget(self.deci2on2, 12, 11, 1, 2) + lot4.addWidget(self.deci2off, 13, 7, 1, 6) + lot4.addWidget(self.deci2delay, 14, 7, 1, 3) + lot4.addWidget(self.deci2status, 14, 10, 1, 3) + lot4.addWidget(QLabel('Sequence'), 15, 7) + lot4.addWidget(self.deci2sequence_R, 15, 8, 1, 5) + lot4.addWidget(self.deci2sequence_W, 16, 7, 1, 5) + lot4.addWidget(self.deci2sequence, 16, 12) + lot4.addWidget(QVLine(), 11, 13, 6, 1) + lot4.addWidget(self.deci3L, 11, 14) + lot4.addWidget(self.deci3R, 11, 15, 1, 5) + lot4.addWidget(self.deci3on, 12, 14, 1, 2) + lot4.addWidget(self.deci3on1, 12, 16, 1, 2) + lot4.addWidget(self.deci3on2, 12, 18, 1, 2) + lot4.addWidget(self.deci3off, 13, 14, 1, 6) + lot4.addWidget(self.deci3delay, 14, 14, 1, 3) + lot4.addWidget(self.deci3status, 14, 17, 1, 3) + lot4.addWidget(QLabel('Sequence'), 15, 14) + lot4.addWidget(self.deci3sequence_R, 15, 15, 1, 5) + lot4.addWidget(self.deci3sequence_W, 16, 14, 1, 5) + lot4.addWidget(self.deci3sequence, 16, 19) + lot4.addWidget(self.deciripristino, 20, 0, 1, 20) + #5 delay + self.vergogna_figura = plt.figure() + self.vergogna_canvas = FigureCanvas(self.vergogna_figura) + self.wavelength_subp1 = self.vergogna_figura.add_subplot(121) + self.wavelength_subp2 = self.vergogna_figura.add_subplot(122) + x = np.arange(-5,5,.01) + f1 = 1.5*np.exp(-np.square(x-0)/2*np.square(2.5))/(np.sqrt(2*np.pi*np.square(2.5))) + f2 = np.exp(-np.square(x-1.5)/2*np.square(2))/(np.sqrt(2*np.pi*np.square(2))) + f3 = np.exp(-np.square(x+1.5)/2*np.square(2))/(np.sqrt(2*np.pi*np.square(2))) + self.wavelength_subp1.plot(x, f1) + self.wavelength_subp1.plot(x, f2) + self.wavelength_subp2.plot(x, f1) + self.wavelength_subp2.plot(x, f3) + self.wavelength_subp1.axes.get_xaxis().set_visible(False) + self.wavelength_subp1.axes.get_yaxis().set_visible(False) + self.wavelength_subp1.text(-4, 0.1, '-', fontsize='xx-large') + self.wavelength_subp1.text(4, 0.16, 'fel', color='blue') + self.wavelength_subp1.text(4, 0.12, 'slu', color='orange') + self.wavelength_subp2.axes.get_xaxis().set_visible(False) + self.wavelength_subp2.axes.get_yaxis().set_visible(False) + self.wavelength_subp2.text(-4, 0.1, '+', fontsize='xx-large') + self.wavelength_subp2.text(4, 0.16, 'fel', color='blue') + self.wavelength_subp2.text(4, 0.12, 'slu', color='orange') + self.vergogna_canvas.draw() self.delaytotem = QPushButton('Totem delay line') self.delaytotem.clicked.connect(self.apridalaytotem) - self.delaytotemR = QLineEdit('') - self.delaytotemR.setReadOnly(1) + self.delaytotemR = LineEditRO() self.delaytotemW = QLineEdit('') - self.delaytotemABS = QPushButton('GO TO:') + self.delaytotemABS = QPushButton('GO TO (ps):') self.delaytotemABS.clicked.connect(self.delaytotemgoto) self.delaytotemRELm = QPushButton('<') self.delaytotemRELm.clicked.connect(self.delaytotemmeno) self.delaytotemRELstep = QLineEdit('') self.delaytotemRELp = QPushButton('>') self.delaytotemRELp.clicked.connect(self.delaytotempiu) - self.decimators = QPushButton('Decimator panel') - self.decimators.clicked.connect(self.apridecimatori) - self.delaycalc = QPushButton('Delay caluculator panel') + self.delay8 = QPushButton('TRLS8 delay line') + self.delay8.clicked.connect(self.apridalay8) + self.delay8R = LineEditRO() + self.delay8W = QLineEdit('') + self.delay8ABS = QPushButton('GO TO (ps):') + self.delay8ABS.clicked.connect(self.delay8goto) + self.delay8RELm = QPushButton('<') + self.delay8RELm.clicked.connect(self.delay8meno) + self.delay8RELstep = QLineEdit('') + self.delay8RELp = QPushButton('>') + self.delay8RELp.clicked.connect(self.delay8piu) + self.triggermain = QPushButton('Main Trigger') + self.triggermain.clicked.connect(self.apritrg) + self.triggermainR = LineEditRO() + self.triggermainW = QLineEdit('') + self.triggermainABS = QPushButton('GO TO (ns):') + self.triggermainABS.clicked.connect(self.trggoto) + self.triggermainRELm = QPushButton('-12ns') + self.triggermainRELm.clicked.connect(self.trgmeno) + self.triggermainRELp = QPushButton('+12ns') + self.triggermainRELp.clicked.connect(self.trgpiu) + self.triggerDGQ1 = QPushButton('SDG Trigger') + self.triggerDGQ1.clicked.connect(self.apritrg) + self.triggerDGQ1R = LineEditRO() + self.triggerDGQ1W = QLineEdit('') + self.triggerDGQ1ABS = QPushButton('GO TO (ns):') + self.triggerDGQ1ABS.clicked.connect(self.sdggoto) + self.triggerDGQ1RELm = QPushButton('-1ns') + self.triggerDGQ1RELm.clicked.connect(self.sdgmeno) + self.triggerDGQ1RELp = QPushButton('+1ns') + self.triggerDGQ1RELp.clicked.connect(self.sdgmpiu) + self.delaycalc = QPushButton('Delay calculator') self.delaycalc.clicked.connect(self.apridelaycalc) - lodelay = QGridLayout() - lodelay.addWidget(self.delaytotem, 0, 0) - lodelay.addWidget(self.delaytotemR, 0, 1) - lodelay.addWidget(QLabel("|"), 0, 2) - lodelay.addWidget(self.delaytotemABS, 0, 3) - lodelay.addWidget(self.delaytotemW, 0, 4) - lodelay.addWidget(QLabel('Move by:'), 0, 5) - lodelay.addWidget(self.delaytotemRELm, 0, 6) - lodelay.addWidget(self.delaytotemRELstep, 0, 7) - lodelay.addWidget(self.delaytotemRELp, 0, 8) - lodelay.addWidget(QLabel("|"), 0, 9) - lodelay.addWidget(self.decimators, 0, 10) - lodelay.addWidget(self.delaycalc, 0, 11) - self.gruppodelay.setLayout(lodelay) + self.delaycalcL = QLabel('Move by (ns)') + self.delaycalcS = QLineEdit() + self.delaycalcA = QPushButton('Apply') + self.delaycalcA.clicked.connect(self.muovidelayslu) + self.delaycalcU = QPushButton('Undo') + self.delaycalcU.clicked.connect(self.ripristinamemoD) + self.scope6M1L = QLabel('Seed-Pil') + self.scope6M1R1 = LineEditRO() + self.scope6M1R2 = LineEditRO() + self.scope6M2L = QLabel('SLU-Pil') + self.scope6M2R1 = LineEditRO() + self.scope6M2R2 = LineEditRO() + self.scope6M3L = QLabel('SLU-Seed') + self.scope6M3R1 = LineEditRO() + self.scope6M3R2 = LineEditRO() + self.scope6M4L = QLabel('Pil-Trg') + self.scope6M4R1 = LineEditRO() + self.scope6M4R2 = LineEditRO() + self.scope6M5L = QLabel('Seed-Trg') + self.scope6M5R1 = LineEditRO() + self.scope6M5R2 = LineEditRO() + self.scope6M6L = QLabel('SLU-trg') + self.scope6M6R1 = LineEditRO() + self.scope6M6R2 = LineEditRO() + self.scope6reset = QPushButton('Clear swap') + self.scope6reset.clicked.connect(self.scope6CW) + self.scope6apri = QPushButton('open scope6') + self.scope6apri.clicked.connect(self.apriscope6) + self.memo_tmr_R = QPushButton('Recall TMR memory') + self.memo_tmr_R.clicked.connect(self.memoriaTMRr) + self.memo_tmr_W = QPushButton('Save TMR memory') + self.memo_tmr_W.clicked.connect(self.memoriaTMRw) + self.memo_tmx_R = QPushButton('Recall TMX memory') + self.memo_tmx_R.clicked.connect(self.memoriaTMXr) + self.memo_tmx_W = QPushButton('Save TMX memory') + self.memo_tmx_W.clicked.connect(self.memoriaTMXw) + self.memo_dpi_R = QPushButton('Recall DPI memory') + self.memo_dpi_R.clicked.connect(self.memoriaDPIr) + self.memo_dpi_W = QPushButton('Save DPI memory') + self.memo_dpi_W.clicked.connect(self.memoriaDPIw) + self.memo_ldm_R = QPushButton('Recall LDM memory') + self.memo_ldm_R.clicked.connect(self.memoriaLDMr) + self.memo_ldm_W = QPushButton('Save LDM memory') + self.memo_ldm_W.clicked.connect(self.memoriaLDMw) + self.memo_mag_R = QPushButton('Recall MAG memory') + self.memo_mag_R.clicked.connect(self.memoriaMAGr) + self.memo_mag_W = QPushButton('Save MAG memory') + self.memo_mag_W.clicked.connect(self.memoriaMAGw) + self.salvatrigger = QPushButton('Save trigger') + self.salvatrigger.clicked.connect(self.funzionesalvatrigger) + riga = 0 + lot5.addWidget(QLabel('Measurament from scope-laser-06'), riga, 2, 1, 2) + riga += 1 + lot5.addWidget(self.scope6M1L, riga, 0) + lot5.addWidget(self.scope6M2L, riga, 1) + lot5.addWidget(self.scope6M3L, riga, 2) + lot5.addWidget(self.scope6M4L, riga, 3) + lot5.addWidget(self.scope6M5L, riga, 4) + lot5.addWidget(self.scope6M6L, riga, 5) + riga += 1 + lot5.addWidget(self.scope6M1R1, riga, 0) + lot5.addWidget(self.scope6M2R1, riga, 1) + lot5.addWidget(self.scope6M3R1, riga, 2) + lot5.addWidget(self.scope6M4R1, riga, 3) + lot5.addWidget(self.scope6M5R1, riga, 4) + lot5.addWidget(self.scope6M6R1, riga, 5) + lot5.addWidget(self.scope6apri, riga, 6) + lot5.addWidget(self.scope6reset, riga, 7) + riga += 1 + lot5.addWidget(self.scope6M1R2, riga, 0) + lot5.addWidget(self.scope6M2R2, riga, 1) + lot5.addWidget(self.scope6M3R2, riga, 2) + lot5.addWidget(self.scope6M4R2, riga, 3) + lot5.addWidget(self.scope6M5R2, riga, 4) + lot5.addWidget(self.scope6M6R2, riga, 5) + riga += 1 + lot5.addWidget(QHLine(), riga, 0, 1, 8) + riga += 1 + lot5.addWidget(QLabel('SLU delay calculator'), riga, 2, 1, 2) + riga += 1 + lot5.addWidget(self.vergogna_canvas, riga, 0, 4, 3) + lot5.addWidget(self.delaycalcL, riga, 3) + lot5.addWidget(self.delaycalcS, riga, 4) + lot5.addWidget(self.delaycalcA, riga, 5) + lot5.addWidget(self.delaycalcU, riga, 6) + lot5.addWidget(self.salvatrigger, riga, 7) + riga += 1 + lot5.addWidget(QHLine(), riga, 3, 1, 5) + riga += 1 + lot5.addWidget(self.memo_tmr_R, riga, 3) + lot5.addWidget(self.memo_tmx_R, riga, 4) + lot5.addWidget(self.memo_dpi_R, riga, 5) + lot5.addWidget(self.memo_ldm_R, riga, 6) + lot5.addWidget(self.memo_mag_R, riga, 7) + riga += 1 + lot5.addWidget(self.memo_tmr_W, riga, 3) + lot5.addWidget(self.memo_tmx_W, riga, 4) + lot5.addWidget(self.memo_dpi_W, riga, 5) + lot5.addWidget(self.memo_ldm_W, riga, 6) + lot5.addWidget(self.memo_mag_W, riga, 7) + riga += 1 + lot5.addWidget(QHLine(), riga, 0, 1, 8) + riga += 1 + lot5.addWidget(QLabel('Devices'), riga, 2, 1, 2) + riga += 1 + lot5.addWidget(self.triggermain, riga, 0) + lot5.addWidget(self.triggermainR, riga, 1) + lot5.addWidget(self.triggermainABS, riga, 2) + lot5.addWidget(self.triggermainW, riga, 3) + lot5.addWidget(QLabel('Move by:'), riga, 4) + lot5.addWidget(self.triggermainRELm, riga, 5) + lot5.addWidget(self.triggermainRELp, riga, 7) + riga += 1 + lot5.addWidget(self.triggerDGQ1, riga, 0) + lot5.addWidget(self.triggerDGQ1R, riga, 1) + lot5.addWidget(self.triggerDGQ1ABS, riga, 2) + lot5.addWidget(self.triggerDGQ1W, riga, 3) + lot5.addWidget(QLabel('Move by:'), riga, 4) + lot5.addWidget(self.triggerDGQ1RELm, riga, 5) + lot5.addWidget(self.triggerDGQ1RELp, riga, 7) + riga += 1 + lot5.addWidget(self.delay8, riga, 0) + lot5.addWidget(self.delay8R, riga, 1) + lot5.addWidget(self.delay8ABS, riga, 2) + lot5.addWidget(self.delay8W, riga, 3) + lot5.addWidget(QLabel('Move by:'), riga, 4) + lot5.addWidget(self.delay8RELm, riga, 5) + lot5.addWidget(self.delay8RELstep, riga, 6) + lot5.addWidget(self.delay8RELp, riga, 7) + riga += 1 + lot5.addWidget(self.delaytotem, riga, 0) + lot5.addWidget(self.delaytotemR, riga, 1) + lot5.addWidget(self.delaytotemABS, riga, 2) + lot5.addWidget(self.delaytotemW, riga, 3) + lot5.addWidget(QLabel('Move by:'), riga, 4) + lot5.addWidget(self.delaytotemRELm, riga, 5) + lot5.addWidget(self.delaytotemRELstep, riga, 6) + lot5.addWidget(self.delaytotemRELp, riga, 7) + #6 vacuum + self.gruppoUTDR = QGroupBox("UTDR") + self.gruppoUH = QGroupBox("UH") + self.gruppoEH1 = QGroupBox("EH1") + self.gruppoEH2 = QGroupBox("EH2") + self.valvolaUH1 = QPushButton("vlvp_uh.01") + self.valvolaUH1.clicked.connect(self.pannello_valvolaUH1) + self.valvolaUH1_read = LineEditRO() + self.valvolaUH1_set = QPushButton("OPEN") + self.valvolaUH1_set.clicked.connect(self.smanette_valvolaUH1) + self.valvolaUH2 = QPushButton("vlvp_uh.02") + self.valvolaUH2.clicked.connect(self.pannello_valvolaUH2) + self.valvolaUH2_read = LineEditRO() + self.valvolaUH2_set = QPushButton("OPEN") + self.valvolaUH2_set.clicked.connect(self.smanette_valvolaUH2) + self.valvolaUH3 = QPushButton("vlvp_uh.03") + self.valvolaUH3.clicked.connect(self.pannello_valvolaUH3) + self.valvolaUH3_read = LineEditRO() + self.valvolaUH3_set = QPushButton("OPEN") + self.valvolaUH3_set.clicked.connect(self.smanette_valvolaUH3) + self.valvolaSH1 = QPushButton("vlvp_sh.01") + self.valvolaSH1.clicked.connect(self.pannello_valvolaSH1) + self.valvolaSH1_read = LineEditRO() + self.valvolaSH1_set = QPushButton("OPEN") + self.valvolaSH1_set.clicked.connect(self.smanette_valvolaSH1) + self.valvolaEHF1 = QPushButton("vlvp_ehf.01") + self.valvolaEHF1.clicked.connect(self.pannello_valvolaEHF1) + self.valvolaEHF1_read = LineEditRO() + self.valvolaEHF1_set = QPushButton("OPEN") + self.valvolaEHF1_set.clicked.connect(self.smanette_valvolaEHF1) + self.valvolaEHF2 = QPushButton("vlvp_ehf.02") + self.valvolaEHF2.clicked.connect(self.pannello_valvolaEHF2) + self.valvolaEHF2_read = LineEditRO() + self.valvolaEHF2_set = QPushButton("OPEN") + self.valvolaEHF2_set.clicked.connect(self.smanette_valvolaEHF2) + self.pompaUH1 = QPushButton("pmp_uh_01") + self.pompaUH1.clicked.connect(self.pannello_pompe) + self.pompaUH1_read = LineEditRO() + self.pompaUH1_set = QPushButton("ON") + self.pompaUH1_set.clicked.connect(self.smanetta_pompe1) + self.pompaUH2 = QPushButton("pmp_uh_02") + self.pompaUH2.clicked.connect(self.pannello_pompe) + self.pompaUH2_read = LineEditRO() + self.pompaUH2_set = QPushButton("ON") + self.pompaUH2_set.clicked.connect(self.smanetta_pompe2) + self.pompaUH3 = QPushButton("pmp_uh_03") + self.pompaUH3.clicked.connect(self.pannello_pompe) + self.pompaUH3_read = LineEditRO() + self.pompaUH3_set = QPushButton("ON") + self.pompaUH3_set.clicked.connect(self.smanetta_pompe3) + self.pompaSH1 = QPushButton("pmp_sh_01") + self.pompaSH1.clicked.connect(self.pannello_pompe) + self.pompaSH1_read = LineEditRO() + self.pompaSH1_set = QPushButton("ON") + self.pompaSH1_set.clicked.connect(self.smanetta_pompe4) + self.pompaEH1 = QPushButton("pmp_eh_01") + self.pompaEH1.clicked.connect(self.pannello_pompe) + self.pompaEH1_read = LineEditRO() + self.pompaEH1_set = QPushButton("ON") + self.pompaEH1_set.clicked.connect(self.smanetta_pompe5) + self.pompaEH2 = QPushButton("pmp_eh_02") + self.pompaEH2.clicked.connect(self.pannello_pompe) + self.pompaEH2_read = LineEditRO() + self.pompaEH2_set = QPushButton("ON") + self.pompaEH2_set.clicked.connect(self.smanetta_pompe6) + self.sensoreUTDR = QPushButton("vgpi_slu_utdr.01") + self.sensoreUTDR.clicked.connect(self.pannello_sensore_UTDR) + self.sensoreUTDR_read = LineEditRO() + self.sensoreUH1 = QPushButton("vgpi_slu_uh.01") + self.sensoreUH1.clicked.connect(self.pannello_sensore_UH1) + self.sensoreUH1_read = LineEditRO() + self.sensoreUH2 = QPushButton("vgpi_slu_uh.02") + self.sensoreUH2.clicked.connect(self.pannello_sensore_UH2) + self.sensoreUH2_read = LineEditRO() + self.sensoreUH3 = QPushButton("vgpi_slu_uh.03") + self.sensoreUH3.clicked.connect(self.pannello_sensore_UH3) + self.sensoreUH3_read = LineEditRO() + self.sensoreUH4 = QPushButton("vgpi_slu_uh.04") + self.sensoreUH4.clicked.connect(self.pannello_sensore_UH4) + self.sensoreUH4_read = LineEditRO() + self.sensoreSH1 = QPushButton("vgpi_slu_sh.01") + self.sensoreSH1.clicked.connect(self.pannello_sensore_SH1) + self.sensoreSH1_read = LineEditRO() + self.sensoreEHF1 = QPushButton("vgpi_slu_ehf.01") + self.sensoreEHF1.clicked.connect(self.pannello_sensore_EHF1) + self.sensoreEHF1_read = LineEditRO() + self.sensoreEHF2 = QPushButton("vgpi_slu_ehf.02") + self.sensoreEHF2.clicked.connect(self.pannello_sensore_EHF2) + self.sensoreEHF2_read = LineEditRO() + self.sensoreEHF3 = QPushButton("vgpi_slu_ehf.03") + self.sensoreEHF3.clicked.connect(self.pannello_sensore_EHF3) + self.sensoreEHF3_read = LineEditRO() + self.sensoreEHF4 = QPushButton("vgpi_slu_ehf.04") + self.sensoreEHF4.clicked.connect(self.pannello_sensore_EHF4) + self.sensoreEHF4_read = LineEditRO() + self.cumulativoUH = QPushButton("Start all pumps and Open all valves") + self.cumulativoUH.clicked.connect(self.cumulativo_UH) + self.cumulativoEHF1 = QPushButton("Start all pumps and Open all valves") + self.cumulativoEHF1.clicked.connect(self.cumulativo_EH1) + self.cumulativoEHF2 = QPushButton("Start all pumps and Open all valves") + self.cumulativoEHF2.clicked.connect(self.cumulativo_EH2) + lo_UTDR = QGridLayout() + lo_UTDR.addWidget(self.sensoreUTDR, 0, 0) + lo_UTDR.addWidget(self.sensoreUTDR_read, 1, 0) + self.gruppoUTDR.setLayout(lo_UTDR) + lo_UH = QGridLayout() + lo_UH.addWidget(self.sensoreUH3, 0, 0, 1, 9) + lo_UH.addWidget(self.sensoreUH3_read, 0, 9, 1, 9) + lo_UH.addWidget(self.sensoreUH1, 2, 0, 1, 3) + lo_UH.addWidget(self.sensoreUH1_read, 2, 3, 1, 3) + lo_UH.addWidget(self.valvolaUH1, 3, 0, 1, 2) + lo_UH.addWidget(self.valvolaUH1_read, 3, 2, 1, 2) + lo_UH.addWidget(self.valvolaUH1_set, 3, 4, 1, 2) + lo_UH.addWidget(self.pompaUH1, 4, 0, 1, 2) + lo_UH.addWidget(self.pompaUH1_read, 4, 2, 1, 2) + lo_UH.addWidget(self.pompaUH1_set, 4, 4, 1, 2) + lo_UH.addWidget(self.sensoreUH2, 2, 6, 1, 3) + lo_UH.addWidget(self.sensoreUH2_read, 2, 9, 1, 3) + lo_UH.addWidget(self.valvolaUH2, 3, 6, 1, 2) + lo_UH.addWidget(self.valvolaUH2_read, 3, 8, 1, 2) + lo_UH.addWidget(self.valvolaUH2_set, 3, 10, 1, 2) + lo_UH.addWidget(self.pompaUH2, 4, 6, 1, 2) + lo_UH.addWidget(self.pompaUH2_read, 4, 8, 1, 2) + lo_UH.addWidget(self.pompaUH2_set, 4, 10, 1, 2) + lo_UH.addWidget(self.sensoreUH4, 2, 12, 1, 3) + lo_UH.addWidget(self.sensoreUH4_read, 2, 15, 1, 3) + lo_UH.addWidget(self.valvolaUH3, 3, 12, 1, 2) + lo_UH.addWidget(self.valvolaUH3_read, 3, 14, 1, 2) + lo_UH.addWidget(self.valvolaUH3_set, 3, 16, 1, 2) + lo_UH.addWidget(self.pompaUH3, 4, 12, 1, 2) + lo_UH.addWidget(self.pompaUH3_read, 4, 14, 1, 2) + lo_UH.addWidget(self.pompaUH3_set, 4, 16, 1, 2) + lo_UH.addWidget(self.cumulativoUH, 5, 0, 1, 18) + self.gruppoUH.setLayout(lo_UH) + lo_EH1 = QGridLayout() + lo_EH1.addWidget(self.sensoreEHF1, 0, 0, 1, 6) + lo_EH1.addWidget(self.sensoreEHF1_read, 0, 6, 1, 6) + lo_EH1.addWidget(self.sensoreSH1, 2, 0, 1, 3) + lo_EH1.addWidget(self.sensoreSH1_read, 2, 3, 1, 3) + lo_EH1.addWidget(self.valvolaSH1, 3, 0, 1, 2) + lo_EH1.addWidget(self.valvolaSH1_read, 3, 2, 1, 2) + lo_EH1.addWidget(self.valvolaSH1_set, 3, 4, 1, 2) + lo_EH1.addWidget(self.pompaSH1, 4, 0, 1, 2) + lo_EH1.addWidget(self.pompaSH1_read, 4, 2, 1, 2) + lo_EH1.addWidget(self.pompaSH1_set, 4, 4, 1, 2) + lo_EH1.addWidget(self.sensoreEHF2, 2, 6, 1, 3) + lo_EH1.addWidget(self.sensoreEHF2_read, 2, 9, 1, 3) + lo_EH1.addWidget(self.valvolaEHF1, 3, 6, 1, 2) + lo_EH1.addWidget(self.valvolaEHF1_read, 3, 8, 1, 2) + lo_EH1.addWidget(self.valvolaEHF1_set, 3, 10, 1, 2) + lo_EH1.addWidget(self.pompaEH1, 4, 6, 1, 2) + lo_EH1.addWidget(self.pompaEH1_read, 4, 8, 1, 2) + lo_EH1.addWidget(self.pompaEH1_set, 4, 10, 1, 2) + lo_EH1.addWidget(self.cumulativoEHF1, 5, 0, 1, 12) + self.gruppoEH1.setLayout(lo_EH1) + lo_EH2 = QGridLayout() + lo_EH2.addWidget(self.sensoreEHF3, 0, 0, 1, 3) + lo_EH2.addWidget(self.sensoreEHF3_read, 0, 3, 1, 3) + lo_EH2.addWidget(self.sensoreEHF4, 2, 0, 1, 3) + lo_EH2.addWidget(self.sensoreEHF4_read, 2, 3, 1, 3) + lo_EH2.addWidget(self.valvolaEHF2, 3, 0, 1, 2) + lo_EH2.addWidget(self.valvolaEHF2_read, 3, 2, 1, 2) + lo_EH2.addWidget(self.valvolaEHF2_set, 3, 4, 1, 2) + lo_EH2.addWidget(self.pompaEH2, 4, 0, 1, 2) + lo_EH2.addWidget(self.pompaEH2_read, 4, 2, 1, 2) + lo_EH2.addWidget(self.pompaEH2_set, 4, 4, 1, 2) + lo_EH2.addWidget(self.cumulativoEHF2, 5, 0, 1, 6) + self.gruppoEH2.setLayout(lo_EH2) + lot6.addWidget(self.gruppoUTDR, 0, 0) + lot6.addWidget(self.gruppoUH, 0, 1, 1, 4) + lot6.addWidget(self.gruppoEH1, 1, 0, 2, 3) + lot6.addWidget(self.gruppoEH2, 1, 3, 2, 2) + #7 temperatures + self.tem_revo_l = QLabel('Pump laser') + self.tem_revo_r = LineEditRO() + self.tem_elite_l = QLabel('Amplifier') + self.tem_elite_r = LineEditRO() + self.tem_table2_l = QLabel('SLR Table2') + self.tem_table2_r = LineEditRO() + self.tem_table1_l = QLabel('SLR Table1') + self.tem_table1_r = LineEditRO() + self.tem_utdr_l = QLabel('UTDR') + self.tem_utdr_r = LineEditRO() + self.tem_uhbb1_l = QLabel('UH BB1') + self.tem_uhbb1_r = LineEditRO() + self.tem_uhbb2_l = QLabel('UH BB2') + self.tem_uhbb2_r = LineEditRO() + self.tem_totemup_l = QLabel('TOTEM UP') + self.tem_totemup_r = LineEditRO() + self.tem_totemdown_l = QLabel('TOTEM DOWN') + self.tem_totemdown_r = LineEditRO() + self.tem_totemair_l = QLabel('TOTEM AIR') + self.tem_totemair_r = LineEditRO() + self.tem_tmr_l = QLabel('Timer IB') + self.tem_tmr_r = LineEditRO() + self.tem_tmx_l = QLabel('Timex IB') + self.tem_tmx_r = LineEditRO() + self.tem_dpi_l = QLabel('Diproi IB') + self.tem_dpi_r = LineEditRO() + self.tem_ldm_l = QLabel('LDM IB') + self.tem_ldm_r = LineEditRO() + self.tem_mag_l = QLabel('Magnedyn IB') + self.tem_mag_r = LineEditRO() + self.apri_hdb = QPushButton('view trend on HDB') + self.apri_hdb.clicked.connect(self.lanciahdb) + lot7.addWidget(self.tem_revo_l, 0, 0) + lot7.addWidget(self.tem_revo_r, 0, 1) + lot7.addWidget(self.tem_elite_l, 1, 0) + lot7.addWidget(self.tem_elite_r, 1, 1) + lot7.addWidget(self.tem_table2_l, 2, 0) + lot7.addWidget(self.tem_table2_r, 2, 1) + lot7.addWidget(self.tem_table1_l, 3, 0) + lot7.addWidget(self.tem_table1_r, 3, 1) + lot7.addWidget(self.tem_utdr_l, 4, 0) + lot7.addWidget(self.tem_utdr_r, 4, 1) + lot7.addWidget(self.tem_uhbb1_l, 5, 0) + lot7.addWidget(self.tem_uhbb1_r, 5, 1) + lot7.addWidget(self.tem_uhbb2_l, 6, 0) + lot7.addWidget(self.tem_uhbb2_r, 6, 1) + lot7.addWidget(self.tem_totemup_l, 0, 2) + lot7.addWidget(self.tem_totemup_r, 0, 3) + lot7.addWidget(self.tem_totemdown_l, 1, 2) + lot7.addWidget(self.tem_totemdown_r, 1, 3) + lot7.addWidget(self.tem_totemair_l, 2, 2) + lot7.addWidget(self.tem_totemair_r, 2, 3) + lot7.addWidget(self.tem_tmr_l, 3, 2) + lot7.addWidget(self.tem_tmr_r, 3, 3) + lot7.addWidget(self.tem_tmx_l, 4, 2) + lot7.addWidget(self.tem_tmx_r, 4, 3) + lot7.addWidget(self.tem_dpi_l, 5, 2) + lot7.addWidget(self.tem_dpi_r, 5, 3) + lot7.addWidget(self.tem_ldm_l, 6, 2) + lot7.addWidget(self.tem_ldm_r, 6, 3) + lot7.addWidget(self.tem_mag_l, 7, 2) + lot7.addWidget(self.tem_mag_r, 7, 3) + lot7.addWidget(self.apri_hdb, 7, 0, 1, 2) + #8 log/calendar + self.contesto_l = QLabel('Archiver for HDB log context') + self.contesto_r = LineEditRO() + self.contesto_switch = QComboBox() + self.contesto_switch.addItem("None") + self.contesto_switch.addItem("SHUTDOWN") + self.contesto_switch.addItem("TOTEM") + self.contesto_switch.addItem("TIMER") + self.contesto_switch.addItem("TIMEX") + self.contesto_switch.addItem("DIPROI") + self.contesto_switch.addItem("LDM") + self.contesto_switch.addItem("MAGNEDYN") + self.contesto_switch.addItem("ALL") + self.contesto_a = QPushButton('Apply') + self.contesto_a.clicked.connect(self.cambiacontestolog) + lot8.addWidget(self.contesto_l, 1, 0) + lot8.addWidget(self.contesto_r, 1, 1) + lot8.addWidget(self.contesto_switch, 1, 2) + lot8.addWidget(self.contesto_a, 1, 3) + lot8.addWidget(QLabel(' '), 2, 3, 8, 1) + #12 LDM + self.LDM_label_CCD = QLabel('CCD') + self.LDM_bottone_CCD0 = QPushButton('CCD SLU 7') + self.LDM_bottone_CCD0.clicked.connect(self.ldm_lancia_ccd0) + self.LDM_bottone_CCD3 = QPushButton('CCD 3 Autocorrelator') + self.LDM_bottone_CCD3.clicked.connect(self.ldm_lancia_ccd3) + self.LDM_bottone_CCD4 = QPushButton('CCD 4 Input LDM box') + self.LDM_bottone_CCD4.clicked.connect(self.ldm_lancia_ccd4) + self.LDM_bottone_CCD6 = QPushButton('CCD 6 Recombination mirror') + self.LDM_bottone_CCD6.clicked.connect(self.ldm_lancia_ccd6) + self.LDM_bottone_CCD7 = QPushButton('CCD 7 Third Harmonic') + self.LDM_bottone_CCD7.clicked.connect(self.ldm_lancia_ccd7) + self.LDM_bottone_CCD9 = QPushButton('CCD 9 Virtual sample') + self.LDM_bottone_CCD9.clicked.connect(self.ldm_lancia_ccd9) + self.LDM_label_EM = QLabel('Energy Meter') + self.LDM_bottone_EM1 = QPushButton('Gentec ch1') + self.LDM_bottone_EM1.clicked.connect(self.ldm_lancia_em1) + self.LDM_bottone_EM1bis = QPushButton('Stop and Configure') + self.LDM_bottone_EM1bis.clicked.connect(self.ldm_configura_em1) + self.LDM_bottone_EM2 = QPushButton('Gentec ch2') + self.LDM_bottone_EM2.clicked.connect(self.ldm_lancia_em2) + self.LDM_bottone_EM2bis = QPushButton('Stop and Configure') + self.LDM_bottone_EM2bis.clicked.connect(self.ldm_configura_em2) + self.LDM_label_SPCTM = QLabel('Spectrometers') + self.LDM_bottone_SPCTM1 = QPushButton('Avantes 178-1300') + self.LDM_bottone_SPCTM1.clicked.connect(self.ldm_lancia_spctm1) + self.LDM_bottone_SPCTM2 = QPushButton('Avantes 212-285') + self.LDM_bottone_SPCTM2.clicked.connect(self.ldm_lancia_spctm2) + self.LDM_label_MOTOR = QLabel('Motors') + self.LDM_rots1_b = QPushButton('ROTS 1') + self.LDM_rots1_b.clicked.connect(self.ldm_lancia_rots) + self.LDM_rots1_r = LineEditRO() + self.LDM_rots1_w = QLineEdit() + self.LDM_rots1_a = QPushButton('Apply') + self.LDM_rots1_a.clicked.connect(self.ldm_rots1_applica) + self.LDM_rots1_relative = movimentirelativi() + self.LDM_rots1_relative.muoviM.clicked.connect(self.ldm_rots1_rm) + self.LDM_rots1_relative.muoviP.clicked.connect(self.ldm_rots1_rp) + self.LDM_rots2_b = QPushButton('ROTS 2') + self.LDM_rots2_b.clicked.connect(self.ldm_lancia_rots) + self.LDM_rots2_r = LineEditRO() + self.LDM_rots2_w = QLineEdit() + self.LDM_rots2_a = QPushButton('Apply') + self.LDM_rots2_a.clicked.connect(self.ldm_rots2_applica) + self.LDM_rots2_relative = movimentirelativi() + self.LDM_rots2_relative.muoviM.clicked.connect(self.ldm_rots2_rm) + self.LDM_rots2_relative.muoviP.clicked.connect(self.ldm_rots2_rp) + self.LDM_rots3_b = QPushButton('ROTS 3') + self.LDM_rots3_b.clicked.connect(self.ldm_lancia_rots) + self.LDM_rots3_r = LineEditRO() + self.LDM_rots3_w = QLineEdit() + self.LDM_rots3_a = QPushButton('Apply') + self.LDM_rots3_a.clicked.connect(self.ldm_rots3_applica) + self.LDM_rots3_relative = movimentirelativi() + self.LDM_rots3_relative.muoviM.clicked.connect(self.ldm_rots3_rm) + self.LDM_rots3_relative.muoviP.clicked.connect(self.ldm_rots3_rp) + self.LDM_trls2_b = QPushButton('Focus') + self.LDM_trls2_b.clicked.connect(self.ldm_lancia_trls2) + self.LDM_trls2_r = LineEditRO() + self.LDM_trls2_w = QLineEdit() + self.LDM_trls2_a = QPushButton('Apply') + self.LDM_trls2_a.clicked.connect(self.ldm_trls2_applica) + self.LDM_trls2_relative = movimentirelativi() + self.LDM_trls2_relative.muoviM.clicked.connect(self.ldm_trls2_rm) + self.LDM_trls2_relative.muoviP.clicked.connect(self.ldm_trls2_rp) + self.LDM_kom1_b = QPushButton('KOM1') + self.LDM_kom1_b.clicked.connect(self.ldm_lancia_kom1) + self.LDM_kom1_rx = LineEditRO() + self.LDM_kom1_ry = LineEditRO() + self.LDM_kom1_rel = movimentiacroce() + self.LDM_kom1_rel.muoviSU.clicked.connect(self.ldm_kom1_yp) + self.LDM_kom1_rel.muoviGIU.clicked.connect(self.ldm_kom1_ym) + self.LDM_kom1_rel.muoviDX.clicked.connect(self.ldm_kom1_xp) + self.LDM_kom1_rel.muoviSX.clicked.connect(self.ldm_kom1_xm) + self.LDM_kom2_b = QPushButton('KOM2') + self.LDM_kom2_b.clicked.connect(self.ldm_lancia_kom2) + self.LDM_kom2_rx = LineEditRO() + self.LDM_kom2_ry = LineEditRO() + self.LDM_kom2_rel = movimentiacroce() + self.LDM_kom2_rel.muoviSU.clicked.connect(self.ldm_kom2_ym) + self.LDM_kom2_rel.muoviGIU.clicked.connect(self.ldm_kom2_yp) + self.LDM_kom2_rel.muoviDX.clicked.connect(self.ldm_kom2_xp) + self.LDM_kom2_rel.muoviSX.clicked.connect(self.ldm_kom2_xm) + self.LDM_feedback1 = QPushButton('pointing Harmonics') + self.LDM_feedback1_state = LineEditRO() + self.LDM_feedback2 = QPushButton('pointing Fundamental') + self.LDM_feedback2_state = LineEditRO() + lo_bottoni = QGridLayout() + lo_bottoni.addWidget(self.LDM_label_CCD, 0, 0) + lo_bottoni.addWidget(self.LDM_bottone_CCD0, 1, 0) + lo_bottoni.addWidget(self.LDM_bottone_CCD3, 1, 1) + lo_bottoni.addWidget(self.LDM_bottone_CCD4, 2, 0) + lo_bottoni.addWidget(self.LDM_bottone_CCD6, 2, 1) + lo_bottoni.addWidget(self.LDM_bottone_CCD7, 3, 0) + lo_bottoni.addWidget(self.LDM_bottone_CCD9, 3, 1) + lo_bottoni.addWidget(QHLine(), 4, 0, 1, 2) + lo_bottoni.addWidget(self.LDM_label_EM, 5, 0) + lo_bottoni.addWidget(self.LDM_bottone_EM1, 6, 0) + lo_bottoni.addWidget(self.LDM_bottone_EM1bis, 6, 1) + lo_bottoni.addWidget(self.LDM_bottone_EM2, 7, 0) + lo_bottoni.addWidget(self.LDM_bottone_EM2bis, 7,1) + lo_bottoni.addWidget(QHLine(), 8, 0, 1, 2) + lo_bottoni.addWidget(self.LDM_label_SPCTM, 9, 0) + lo_bottoni.addWidget(self.LDM_bottone_SPCTM1, 10, 0) + lo_bottoni.addWidget(self.LDM_bottone_SPCTM2, 10, 1) + lo_bottoni.addWidget(QHLine(), 11, 0, 1, 2) + lo_bottoni.addWidget(QLabel('Feedbacks'), 12, 0) + lo_bottoni.addWidget(self.LDM_feedback1, 13, 0) + lo_bottoni.addWidget(self.LDM_feedback1_state, 13, 1) + lo_bottoni.addWidget(self.LDM_feedback2, 14, 0) + lo_bottoni.addWidget(self.LDM_feedback2_state, 14, 1) + lot12.addLayout(lo_bottoni, 0, 0, 11, 2) + lot12.addWidget(QVLine(), 0, 2, 11, 1) + riga = 0 + + lot12.addWidget(self.LDM_label_MOTOR, riga, 3) + riga +=1 + lot12.addWidget(self.LDM_rots1_b, riga, 3) + lot12.addWidget(self.LDM_rots1_r, riga, 4) + lot12.addWidget(self.LDM_rots1_w, riga, 5) + lot12.addWidget(self.LDM_rots1_a, riga, 6) + lot12.addWidget(self.LDM_rots1_relative, riga, 7, 1, 2) + riga +=1 + lot12.addWidget(self.LDM_rots2_b, riga, 3) + lot12.addWidget(self.LDM_rots2_r, riga, 4) + lot12.addWidget(self.LDM_rots2_w, riga, 5) + lot12.addWidget(self.LDM_rots2_a, riga, 6) + lot12.addWidget(self.LDM_rots2_relative, riga, 7, 1, 2) + riga +=1 + lot12.addWidget(self.LDM_rots3_b, riga, 3) + lot12.addWidget(self.LDM_rots3_r, riga, 4) + lot12.addWidget(self.LDM_rots3_w, riga, 5) + lot12.addWidget(self.LDM_rots3_a, riga, 6) + lot12.addWidget(self.LDM_rots3_relative, riga, 7, 1, 2) + riga +=1 + lot12.addWidget(self.LDM_trls2_b, riga, 3) + lot12.addWidget(self.LDM_trls2_r, riga, 4) + lot12.addWidget(self.LDM_trls2_w, riga, 5) + lot12.addWidget(self.LDM_trls2_a, riga, 6) + lot12.addWidget(self.LDM_trls2_relative, riga, 7, 1, 2) + riga +=1 + lot12.addWidget(self.LDM_kom1_b, riga, 3) + lot12.addWidget(self.LDM_kom2_b, riga, 6) +# riga +=1 + lot12.addWidget(self.LDM_kom1_rx, riga, 4) + lot12.addWidget(self.LDM_kom2_rx, riga, 7) +# riga +=1 + lot12.addWidget(self.LDM_kom1_ry, riga, 5) + lot12.addWidget(self.LDM_kom2_ry, riga, 8) + riga +=1 + lot12.addWidget(self.LDM_kom1_rel, riga, 3, 5, 3) + lot12.addWidget(self.LDM_kom2_rel, riga, 6, 5, 3) + #9 timer + #10 timex + #11 diproi + #12 ldm + #13 magnedyn + #14 alarm + self.allarme_enablebeep = QCheckBox('Beep ON') + self.allarme_test = QPushButton('Test') + self.allarme_test.clicked.connect(self.provailbeep) + self.allarme_source_amplifier_current = Riga_allarmi('Numero source_amplifier_current') + self.allarme_source_amplifier_temperature = Riga_allarmi('Numero source_amplifier_temperature') + self.allarme_source_amplifier_inputfb = Riga_allarmi('Numero source_amplifier_inputfb') + self.allarme_source_amplifier_timefb = Riga_allarmi('Numero source_amplifier_timefb') + self.allarme_source_launchenergy = Riga_allarmi('Numero source_launch_energy') #o amplifier energy? + self.allarme_pointingfb = Riga_allarmi('Stato pointing_feedback') + self.allarme_pointingtt1 = Riga_allarmi('Numero pointing_tt1') + self.allarme_pointingtt2 = Riga_allarmi('Numero pointing_tt2') + self.allarme_pointingtt3 = Riga_allarmi('Numero pointing_tt3') + self.allarme_pointingtt4 = Riga_allarmi('Numero pointing_tt4') + self.allarme_pointingtt5 = Riga_allarmi('Numero pointing_tt5') + self.allarme_vacuumUH = Riga_allarmi('Numero vacuum_uh') + self.allarme_vacuumtotem = Riga_allarmi('Numero vacuum_totem') + self.allarme_vacuumbl = Riga_allarmi('Numero vacuum_bl') + self.allarme_tempuhbb1 = Riga_allarmi('Numero temperature_uh_bb1') + self.allarme_tempuhbb2 = Riga_allarmi('Numero temperature_uh_bb2') + self.allarme_temptotemup = Riga_allarmi('Numero temperature_totem_up') + self.allarme_temptotemdown = Riga_allarmi('Numero temperature_totem_down') + self.allarme_tempibtmx = Riga_allarmi('Numero temperature_ib_tmx') + self.allarme_tempibtmr = Riga_allarmi('Numero temperature_ib_tmr') + self.allarme_tempibdpi = Riga_allarmi('Numero temperature_ib_dpi') + self.allarme_tempibldm = Riga_allarmi('Numero temperature_ib_ldm') + self.allarme_tempibmag = Riga_allarmi('Numero temperature_ib_mag') + lot14.addWidget(self.allarme_enablebeep, 0, 0) + lot14.addWidget(self.allarme_test, 0, 1) + lot14.addWidget(self.allarme_source_amplifier_current, 10, 0) + lot14.addWidget(self.allarme_source_amplifier_temperature, 11, 0) + lot14.addWidget(self.allarme_source_amplifier_inputfb, 12, 0) + lot14.addWidget(self.allarme_source_amplifier_timefb, 13, 0) + lot14.addWidget(self.allarme_source_launchenergy, 14, 0) + lot14.addWidget(self.allarme_pointingfb, 15, 0) + lot14.addWidget(self.allarme_pointingtt1, 16, 0) + lot14.addWidget(self.allarme_pointingtt2, 17, 0) + lot14.addWidget(self.allarme_pointingtt3, 18, 0) + lot14.addWidget(self.allarme_pointingtt4, 10, 1) + lot14.addWidget(self.allarme_pointingtt5, 11, 1) + lot14.addWidget(self.allarme_vacuumUH, 12, 1) + lot14.addWidget(self.allarme_vacuumtotem, 13, 1) + lot14.addWidget(self.allarme_vacuumbl, 14, 1) + lot14.addWidget(self.allarme_tempuhbb1, 15, 1) + lot14.addWidget(self.allarme_tempuhbb2, 16, 1) + lot14.addWidget(self.allarme_temptotemup, 17, 1) + lot14.addWidget(self.allarme_temptotemdown, 18, 1) + lot14.addWidget(self.allarme_tempibtmx, 10, 2) + lot14.addWidget(self.allarme_tempibtmr, 11, 2) + lot14.addWidget(self.allarme_tempibdpi, 12, 2) + lot14.addWidget(self.allarme_tempibldm, 13, 2) + lot14.addWidget(self.allarme_tempibmag, 14, 2) ### generale loglobale = QGridLayout() loglobale.addWidget(self.gruppobeamline, 0, 0) - loglobale.addWidget(self.grupposorgente, 1, 0) - loglobale.addWidget(self.grupposhutter, 2, 0) - loglobale.addWidget(self.gruppofeedback, 3, 0) - loglobale.addWidget(self.gruppodelay, 4, 0) + loglobale.addWidget(self.contienitab, 1, 0) self.setLayout(loglobale) self.setStyleSheet("QDialog {background-color: rgb(160, 220, 160)}" + "QGroupBox {background-color: rgb(200, 255, 200)}") self.setWindowTitle("SLU Source monitor") @@ -438,8 +1158,27 @@ class MainWindow(QDialog): self.update() def update(self): - self.beamlineattiva.setText(str(self.linea)) - #stato SLU e interlock + t0 = time.time() + #calendario + if self.autodeterminazionedeipupoli == 0: + try: + risposta_calendario = sacco['calendario'].activity + except: + risposta_calendario = '' + self.beamlineattiva.setText(risposta_calendario) + self.linea = risposta_calendario +####8 log + try: + risposta_archiviatore = sacco['archiviatore'].context + except: + risposta_archiviatore = '' + self.monitor_log.setText(risposta_archiviatore) + self.contesto_r.setText(risposta_archiviatore) + if risposta_archiviatore in self.linea: + self.monitor_log.setStyleSheet("background-color: rgb(0, 255, 0)") + else: + self.monitor_log.setStyleSheet("background-color: rgb(255, 0, 0)") +####1 stato SLU e interlock try: tmp = sacco['interlock'].read_attributes(['BSH', 'BSH_Abi', 'Cover', 'Door', 'Plc_status', 'Key']) if tmp[5].value[10]: #laser OFF @@ -456,261 +1195,330 @@ class MainWindow(QDialog): self.STATOSLU.setStyleSheet("background-color: rgb(255, 0, 0)") #valvolevuoto e shutter if tmp[0].value[0] or tmp[0].value[2]: #shutter slr e valvola vuoto - self.letturashutterlaser.setText('CLOSED') - self.letturashutterlaser.setStyleSheet("background-color: rgb(255, 255, 255)") + self.monitor_letturashutterlaser.setText('CLOSED') + self.monitor_letturashutterlaser.setStyleSheet("background-color: rgb(255, 255, 255)") if tmp[0].value[1] and tmp[0].value[3]: #shutter slr e valvola vuoto - self.letturashutterlaser.setText('OPENED') - self.letturashutterlaser.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_letturashutterlaser.setText('OPENED') + self.monitor_letturashutterlaser.setStyleSheet("background-color: rgb(0, 255, 0)") if self.linea == 'TIMEX' and tmp[0].value[5]: - self.letturashutterbeamline.setText('CLOSED') #timex - self.letturashutterbeamline.setStyleSheet("background-color: rgb(255, 255, 255)") + self.monitor_letturashutterbeamline.setText('CLOSED') #timex + self.monitor_letturashutterbeamline.setStyleSheet("background-color: rgb(255, 255, 255)") if self.linea == 'TIMEX' and tmp[0].value[7]: - self.letturashutterbeamline.setText('OPENED') #timex - self.letturashutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_letturashutterbeamline.setText('OPENED') #timex + self.monitor_letturashutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") if self.linea == 'DIPROI' and tmp[0].value[8]: - self.letturashutterbeamline.setText('CLOSED') #diproi - self.letturashutterbeamline.setStyleSheet("background-color: rgb(255, 255, 255)") + self.monitor_letturashutterbeamline.setText('CLOSED') #diproi + self.monitor_letturashutterbeamline.setStyleSheet("background-color: rgb(255, 255, 255)") if self.linea == 'DIPROI' and tmp[0].value[10]: - self.letturashutterbeamline.setText('OPENED') #diproi - self.letturashutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_letturashutterbeamline.setText('OPENED') #diproi + self.monitor_letturashutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") if self.linea == 'LDM' and tmp[0].value[11]: - self.letturashutterbeamline.setText('CLOSED') #ldm - self.letturashutterbeamline.setStyleSheet("background-color: rgb(255, 255, 255)") + self.monitor_letturashutterbeamline.setText('CLOSED') #ldm + self.monitor_letturashutterbeamline.setStyleSheet("background-color: rgb(255, 255, 255)") if self.linea == 'LDM' and tmp[0].value[13]: - self.letturashutterbeamline.setText('OPENED') #ldm - self.letturashutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_letturashutterbeamline.setText('OPENED') #ldm + self.monitor_letturashutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") if self.linea == 'TIMER' and tmp[0].value[14]: - self.letturashutterbeamline.setText('CLOSED') #timer - self.letturashutterbeamline.setStyleSheet("background-color: rgb(255, 255, 255)") + self.monitor_letturashutterbeamline.setText('CLOSED') #timer + self.monitor_letturashutterbeamline.setStyleSheet("background-color: rgb(255, 255, 255)") if self.linea == 'TIMER' and tmp[0].value[16]: - self.letturashutterbeamline.setText('OPENED') #timer - self.letturashutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_letturashutterbeamline.setText('OPENED') #timer + self.monitor_letturashutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") if self.linea == 'MAGNEDYN' and tmp[0].value[19]: - self.letturashutterbeamline.setText('CLOSED') #magnedyn - self.letturashutterbeamline.setStyleSheet("background-color: rgb(255, 255, 255)") + self.monitor_letturashutterbeamline.setText('CLOSED') #magnedyn + self.monitor_letturashutterbeamline.setStyleSheet("background-color: rgb(255, 255, 255)") if self.linea == 'MAGNEDYN' and tmp[0].value[21]: - self.letturashutterbeamline.setText('OPENED') #magnedyn - self.letturashutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_letturashutterbeamline.setText('OPENED') #magnedyn + self.monitor_letturashutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") #abilitazioni if tmp[1].value[0] and tmp[1].value[10]: - self.abilitatoshutterlaser.setText('ENABLED') - self.abilitatoshutterlaser.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_abilitatoshutterlaser.setText('ENABLED') + self.monitor_abilitatoshutterlaser.setStyleSheet("background-color: rgb(0, 255, 0)") else: - self.abilitatoshutterlaser.setText('DISABLED') - self.abilitatoshutterlaser.setStyleSheet("background-color: rgb(255, 0, 0)") + self.monitor_abilitatoshutterlaser.setText('DISABLED') + self.monitor_abilitatoshutterlaser.setStyleSheet("background-color: rgb(255, 0, 0)") if self.linea == 'TIMEX' and tmp[1].value[1]: - self.abilitatoshutterbeamline.setText('ENABLED') #timex - self.abilitatoshutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_abilitatoshutterbeamline.setText('ENABLED') #timex + self.monitor_abilitatoshutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") elif self.linea == 'TIMEX' and tmp[1].value[1] != True: - self.abilitatoshutterbeamline.setText('DISABLED') #timex - self.abilitatoshutterbeamline.setStyleSheet("background-color: rgb(255, 0, 0)") + self.monitor_abilitatoshutterbeamline.setText('DISABLED') #timex + self.monitor_abilitatoshutterbeamline.setStyleSheet("background-color: rgb(255, 0, 0)") elif self.linea == 'DIPROI' and tmp[1].value[2]: - self.abilitatoshutterbeamline.setText('ENABLED') #diproi - self.abilitatoshutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_abilitatoshutterbeamline.setText('ENABLED') #diproi + self.monitor_abilitatoshutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") elif self.linea == 'DIPROI' and tmp[1].value[2] != True: - self.abilitatoshutterbeamline.setText('DISABLED') #diproi - self.abilitatoshutterbeamline.setStyleSheet("background-color: rgb(255, 0, 0)") + self.monitor_abilitatoshutterbeamline.setText('DISABLED') #diproi + self.monitor_abilitatoshutterbeamline.setStyleSheet("background-color: rgb(255, 0, 0)") elif self.linea == 'LDM' and tmp[1].value[3]: - self.abilitatoshutterbeamline.setText('ENABLED') #ldm - self.abilitatoshutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_abilitatoshutterbeamline.setText('ENABLED') #ldm + self.monitor_abilitatoshutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") elif self.linea == 'LDM' and tmp[1].value[3] != True: - self.abilitatoshutterbeamline.setText('DISABLED') #ldm - self.abilitatoshutterbeamline.setStyleSheet("background-color: rgb(255, 0, 0)") + self.monitor_abilitatoshutterbeamline.setText('DISABLED') #ldm + self.monitor_abilitatoshutterbeamline.setStyleSheet("background-color: rgb(255, 0, 0)") elif self.linea == 'TIMER' and tmp[1].value[4]: - self.abilitatoshutterbeamline.setText('ENABLED') #timer - self.abilitatoshutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_abilitatoshutterbeamline.setText('ENABLED') #timer + self.monitor_abilitatoshutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") elif self.linea == 'TIMER' and tmp[1].value[4] != True: - self.abilitatoshutterbeamline.setText('DISABLED') #timer - self.abilitatoshutterbeamline.setStyleSheet("background-color: rgb(255, 0, 0)") + self.monitor_abilitatoshutterbeamline.setText('DISABLED') #timer + self.monitor_abilitatoshutterbeamline.setStyleSheet("background-color: rgb(255, 0, 0)") elif self.linea == 'MAGNEDYN' and tmp[1].value[12]: - self.abilitatoshutterbeamline.setText('ENABLED') #magnedyn - self.abilitatoshutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_abilitatoshutterbeamline.setText('ENABLED') #magnedyn + self.monitor_abilitatoshutterbeamline.setStyleSheet("background-color: rgb(0, 255, 0)") elif self.linea == 'MAGNEDYN' and tmp[1].value[12] != True: - self.abilitatoshutterbeamline.setText('DISABLED') #magnedyn - self.abilitatoshutterbeamline.setStyleSheet("background-color: rgb(255, 0, 0)") + self.monitor_abilitatoshutterbeamline.setText('DISABLED') #magnedyn + self.monitor_abilitatoshutterbeamline.setStyleSheet("background-color: rgb(255, 0, 0)") else: - self.abilitatoshutterbeamline.setText('Unknown') #? - self.abilitatoshutterbeamline.setStyleSheet("background-color: rgb(255, 0, 0)") - #porte, coperchi e plc + self.monitor_abilitatoshutterbeamline.setText('Unknown') #? + self.monitor_abilitatoshutterbeamline.setStyleSheet("background-color: rgb(255, 0, 0)") + #monitor_porte, monitor_coperchi e plc if False in tmp[2].value[0:5]: - self.coperchi.setText('Cover open') - self.coperchi.setStyleSheet("background-color: rgb(255, 0, 0)") + self.monitor_coperchi.setText('Cover open') + self.monitor_coperchi.setStyleSheet("background-color: rgb(255, 0, 0)") else: - self.coperchi.setText('All OK') - self.coperchi.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_coperchi.setText('All OK') + self.monitor_coperchi.setStyleSheet("background-color: rgb(0, 255, 0)") if self.linea == 'MAGNEDYN': if tmp[3].value[8] == False or tmp[3].value[9] == False: - self.porte.setText('Doors open') - self.porte.setStyleSheet("background-color: rgb(255, 0, 0)") + self.monitor_porte.setText('Doors open') + self.monitor_porte.setStyleSheet("background-color: rgb(255, 0, 0)") else: - self.porte.setText('All OK') - self.porte.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_porte.setText('All OK') + self.monitor_porte.setStyleSheet("background-color: rgb(0, 255, 0)") else: if tmp[3].value[13] == False: - self.porte.setText('Doors open') - self.porte.setStyleSheet("background-color: rgb(255, 0, 0)") + self.monitor_porte.setText('Doors open') + self.monitor_porte.setStyleSheet("background-color: rgb(255, 0, 0)") else: - self.porte.setText('All OK') - self.porte.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_porte.setText('All OK') + self.monitor_porte.setStyleSheet("background-color: rgb(0, 255, 0)") if tmp[4].value == False: - self.piellecci.setText('PLC state') - self.piellecci.setStyleSheet("background-color: rgb(255, 0, 0)") + self.monitor_piellecci.setText('PLC state') + self.monitor_piellecci.setStyleSheet("background-color: rgb(255, 0, 0)") else: - self.piellecci.setText('All OK') - self.piellecci.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_piellecci.setText('All OK') + self.monitor_piellecci.setStyleSheet("background-color: rgb(0, 255, 0)") except: self.STATOSLU.setText('Unknown') self.STATOSLU.setStyleSheet("background-color: rgb(150, 150, 150)") - self.letturashutterlaser.setText('Unknown') - self.letturashutterlaser.setStyleSheet("background-color: rgb(150, 150, 150)") - self.letturashutterbeamline.setText('Unknown') - self.letturashutterbeamline.setStyleSheet("background-color: rgb(150, 150, 150)") - self.abilitatoshutterlaser.setText('Unknown') - self.abilitatoshutterlaser.setStyleSheet("background-color: rgb(150, 150, 150)") - self.abilitatoshutterbeamline.setText('Unknown') - self.abilitatoshutterbeamline.setStyleSheet("background-color: rgb(150, 150, 150)") - self.porte.setText('Unknown') - self.porte.setStyleSheet("background-color: rgb(150, 150, 150)") - self.coperchi.setText('Unknown') - self.coperchi.setStyleSheet("background-color: rgb(150, 150, 150)") - #vuoto + self.monitor_letturashutterlaser.setText('Unknown') + self.monitor_letturashutterlaser.setStyleSheet("background-color: rgb(150, 150, 150)") + self.monitor_letturashutterbeamline.setText('Unknown') + self.monitor_letturashutterbeamline.setStyleSheet("background-color: rgb(150, 150, 150)") + self.monitor_abilitatoshutterlaser.setText('Unknown') + self.monitor_abilitatoshutterlaser.setStyleSheet("background-color: rgb(150, 150, 150)") + self.monitor_abilitatoshutterbeamline.setText('Unknown') + self.monitor_abilitatoshutterbeamline.setStyleSheet("background-color: rgb(150, 150, 150)") + self.monitor_porte.setText('Unknown') + self.monitor_porte.setStyleSheet("background-color: rgb(150, 150, 150)") + self.monitor_coperchi.setText('Unknown') + self.monitor_coperchi.setStyleSheet("background-color: rgb(150, 150, 150)") +####2+7 SOURCE + condizione_source = 0 + testo_source = '' + #revolution try: - READ_vuotoutdr = sacco['vuoto1'].read_attribute('Pressure') - self.vuotoutdr.setText(str(round(READ_vuotoutdr.value, 1)) + ' mBar') - if str(READ_vuotoutdr.quality) == 'ATTR_VALID': - self.vuotoutdr.setStyleSheet("background-color: rgb(0, 255, 0)") - elif str(READ_vuotoutdr.quality) == 'ATTR_ALARM': - self.vuotoutdr.setStyleSheet("background-color: rgb(255, 0, 0)") - elif str(READ_vuotoutdr.quality) == 'ATTR_WARNING': - self.vuotoutdr.setStyleSheet("background-color: rgb(255, 255, 0)") + tmp = sacco['revolution'].read_attributes(['State', 'Current']) + risposta_statoampli = str(tmp[0].value) + risposta_correnteampli = tmp[1].value + if str(tmp[1].quality) != 'ATTR_VALID': + self.source_amplicurrent.setStyleSheet("background-color: rgb(255, 0, 0)") else: - self.vuotoutdr.setStyleSheet("background-color: rgb(150, 150, 150)") + condizione_source += 1 + self.source_amplicurrent.setStyleSheet("background-color: rgb(0, 255, 0)") except: - self.vuotoutdr.setText('Unknown') - self.vuotoutdr.setStyleSheet("background-color: rgb(150, 150, 150)") + risposta_statoampli = '' + risposta_correnteampli = -1 +# self.monitor_ampli.setText(risposta_statoampli + ', ' + str(round(risposta_correnteampli,1)) + ' A') + self.source_amplistate.setText(risposta_statoampli) + self.source_amplicurrent.setText(str(round(risposta_correnteampli, 1)) + ' A') + if risposta_statoampli != 'RUNNING': + self.source_amplistate.setStyleSheet("background-color: rgb(255, 0, 0)") + else: + condizione_source += 1 + self.source_amplistate.setStyleSheet("background-color: rgb(0, 255, 0)") + #attenuatore try: - READ_vuotouh = sacco['vuoto2'].read_attribute('Pressure') - self.vuotouh.setText(str(round(READ_vuotouh.value, 1)) + ' mBar') - if str(READ_vuotouh.quality) == 'ATTR_VALID': - self.vuotouh.setStyleSheet("background-color: rgb(0, 255, 0)") - elif str(READ_vuotouh.quality) == 'ATTR_ALARM': - self.vuotouh.setStyleSheet("background-color: rgb(255, 0, 0)") - elif str(READ_vuotouh.quality) == 'ATTR_WARNING': - self.vuotouh.setStyleSheet("background-color: rgb(255, 255, 0)") - else: - self.vuotouh.setStyleSheet("background-color: rgb(150, 150, 150)") + tmp = sacco['attenuator'].Position except: - self.vuotouh.setText('Unknown') - self.vuotouh.setStyleSheet("background-color: rgb(150, 150, 150)") + tmp = -1 + self.source_attenuator.setText(str(round(tmp, 2)) + ' deg') + #temperature + temperaturefuori = 0 try: - READ_vuotouhtotem = sacco['vuoto3'].read_attribute('Pressure') - self.vuotouhtotem.setText(str(round(READ_vuotouhtotem.value, 1)) + ' mBar') - if str(READ_vuotouhtotem.quality) == 'ATTR_VALID': - self.vuotouhtotem.setStyleSheet("background-color: rgb(0, 255, 0)") - elif str(READ_vuotouhtotem.quality) == 'ATTR_ALARM': - self.vuotouhtotem.setStyleSheet("background-color: rgb(255, 0, 0)") - elif str(READ_vuotouhtotem.quality) == 'ATTR_WARNING': - self.vuotouhtotem.setStyleSheet("background-color: rgb(255, 255, 0)") + tmp = sacco['SLtemperature'].read_attributes(['Pt100_CHLRREVO_01', 'Pt100_Elite_2', 'Pt100_Table2_SLR', 'Pt100_Table1_SLR', 'Pt100_SLU_BB1', 'Pt100_SLU_BB2', 'Pt100_SLU_UTDR']) + risposta_trevo = round(tmp[0].value, 1) + risposta_telite = round(tmp[1].value, 1) + risposta_tslrt2 = round(tmp[2].value, 1) + risposta_tslrt1 = round(tmp[3].value, 1) + risposta_tuh1 = round(tmp[4].value, 1) + risposta_tuh2 = round(tmp[5].value, 1) + risposta_tutdr = round(tmp[6].value, 1) + if str(tmp[0].quality) != 'ATTR_VALID': + self.source_amplipumptemperature.setStyleSheet("background-color: rgb(255, 0, 0)") + self.tem_revo_r.setStyleSheet("background-color: rgb(255, 0, 0)") + temperaturefuori += 1 else: - self.vuotouhtotem.setStyleSheet("background-color: rgb(150, 150, 150)") - except: - self.vuotouhtotem.setText('Unknown') - self.vuotouhtotem.setStyleSheet("background-color: rgb(150, 150, 150)") - try: - READ_vuotototembeamline = sacco['vuoto4'].read_attribute('Pressure') - self.vuotototembeamline.setText(str(round(READ_vuotototembeamline.value, 1)) + ' mBar') - if str(READ_vuotototembeamline.quality) == 'ATTR_VALID': - self.vuotototembeamline.setStyleSheet("background-color: rgb(0, 255, 0)") - elif str(READ_vuotototembeamline.quality) == 'ATTR_ALARM': - self.vuotototembeamline.setStyleSheet("background-color: rgb(255, 0, 0)") - elif str(READ_vuotototembeamline.quality) == 'ATTR_WARNING': - self.vuotototembeamline.setStyleSheet("background-color: rgb(255, 255, 0)") + condizione_source += 1 + self.source_amplipumptemperature.setStyleSheet("background-color: rgb(0, 255, 0)") + self.tem_revo_r.setStyleSheet("background-color: rgb(0, 255, 0)") + if str(tmp[1].quality) != 'ATTR_VALID': + self.source_amplitemperature.setStyleSheet("background-color: rgb(255, 0, 0)") + self.tem_elite_r.setStyleSheet("background-color: rgb(255, 0, 0)") + temperaturefuori += 1 else: - self.vuotototembeamline.setStyleSheet("background-color: rgb(150, 150, 150)") - except: - self.vuotouhtotem.setText('Unknown') - self.vuotouhtotem.setStyleSheet("background-color: rgb(150, 150, 150)") - #sourcefb - stato_globale_amplificatore = 0 - try: - sourcecurrent = sacco['pump'].read_attribute('Current') - if str(sourcecurrent.quality) == 'ATTR_VALID': - stato_globale_amplificatore +=1 - except: - print('Errore lettura corrente in update/#sourcefb') - try: - sourcetemperature = sacco['pumptemperature'].read_attribute(sensoretemperatura) - if str(sourcetemperature.quality) == 'ATTR_VALID': - stato_globale_amplificatore +=1 + condizione_source += 1 + self.source_amplitemperature.setStyleSheet("background-color: rgb(0, 255, 0)") + self.tem_elite_r.setStyleSheet("background-color: rgb(0, 255, 0)") + if str(tmp[2].quality) != 'ATTR_VALID': + self.tem_table2_r.setStyleSheet("background-color: rgb(255, 0, 0)") + temperaturefuori += 1 + else: + self.tem_table2_r.setStyleSheet("background-color: rgb(0, 255, 0)") + if str(tmp[3].quality) != 'ATTR_VALID': + self.tem_table1_r.setStyleSheet("background-color: rgb(255, 0, 0)") + temperaturefuori += 1 + else: + self.tem_table1_r.setStyleSheet("background-color: rgb(0, 255, 0)") + if str(tmp[6].quality) != 'ATTR_VALID': + self.tem_utdr_r.setStyleSheet("background-color: rgb(255, 0, 0)") + temperaturefuori += 1 + else: + self.tem_utdr_r.setStyleSheet("background-color: rgb(0, 255, 0)") + if str(tmp[4].quality) != 'ATTR_VALID': + self.tem_uhbb1_r.setStyleSheet("background-color: rgb(255, 0, 0)") + temperaturefuori += 1 + else: + self.tem_uhbb1_r.setStyleSheet("background-color: rgb(0, 255, 0)") + if str(tmp[5].quality) != 'ATTR_VALID': + self.tem_uhbb2_r.setStyleSheet("background-color: rgb(255, 0, 0)") + temperaturefuori += 1 + else: + self.tem_uhbb2_r.setStyleSheet("background-color: rgb(0, 255, 0)") except: - print('Errore lettura temperatura in update/#sourcefb') + risposta_trevo = -1 + risposta_telite = -1 + risposta_tutdr = -1 + risposta_tuh1 = -1 + risposta_tuh2 = -1 + risposta_tslrt2 = -1 + risposta_tslrt1 = -1 try: - sourcetrigger = sacco['trigger'].read_attribute(triggerdelays) - if str(sourcetrigger.quality) == 'ATTR_VALID': - stato_globale_amplificatore +=1 + tmp = sacco['SLUtemperature'].read_attributes(['Temp_Pt100_TotemAIR', 'Temp_Pt100_TotemDOWN', 'Temp_Pt100_TotemUP', 'Temp_Pt100_BL']) + risposta_tta = round(tmp[0].value, 1) + risposta_ttu = round(tmp[1].value, 1) + risposta_ttd = round(tmp[2].value, 1) + risposta_tldm = round(tmp[3].value, 1) + if str(tmp[0].quality) != 'ATTR_VALID': + self.tem_totemair_r.setStyleSheet("background-color: rgb(255, 0, 0)") + temperaturefuori += 1 + else: + self.tem_totemair_r.setStyleSheet("background-color: rgb(0, 255, 0)") + if str(tmp[1].quality) != 'ATTR_VALID': + self.tem_totemdown_r.setStyleSheet("background-color: rgb(255, 0, 0)") + temperaturefuori += 1 + else: + self.tem_totemdown_r.setStyleSheet("background-color: rgb(0, 255, 0)") + if str(tmp[2].quality) != 'ATTR_VALID': + self.tem_totemup_r.setStyleSheet("background-color: rgb(255, 0, 0)") + temperaturefuori += 1 + else: + self.tem_totemup_r.setStyleSheet("background-color: rgb(0, 255, 0)") + if str(tmp[3].quality) != 'ATTR_VALID': + self.tem_ldm_r.setStyleSheet("background-color: rgb(255, 0, 0)") + temperaturefuori += 1 + else: + self.tem_ldm_r.setStyleSheet("background-color: rgb(0, 255, 0)") except: - print('Errore lettura trigger in update/#sourcefb') - if stato_globale_amplificatore == 3: - self.globale_amplificatore.setText('Elite' + str(sorgente)) - self.globale_amplificatore.setStyleSheet("background-color: rgb(0, 255, 0)") - elif stato_globale_amplificatore >0 and stato_globale_amplificatore <3: - self.globale_amplificatore.setText('Elite' + str(sorgente)) - self.globale_amplificatore.setStyleSheet("background-color: rgb(255, 255, 0)") + risposta_tta = -1 + risposta_ttu = -1 + risposta_ttd = -1 + risposta_tldm = -1 + self.source_amplipumptemperature.setText(str(risposta_trevo) + ' C') + self.source_amplitemperature.setText(str(risposta_telite) + ' C') + self.tem_revo_r.setText(str(risposta_trevo) + ' C. attribute sl/cooling/dmm_sl.01/Pt100_CHLRREVO_01') + self.tem_elite_r.setText(str(risposta_telite) + ' C. attribute sl/cooling/dmm_sl.01/Pt100_Elite_2') + self.tem_table2_r.setText(str(risposta_tslrt2) + ' C. attribute sl/cooling/dmm_sl.01/Pt100_Table2_SLR') + self.tem_table1_r.setText(str(risposta_tslrt1) + ' C. attribute sl/cooling/dmm_sl.01/Pt100_Table1_SLR') + self.tem_utdr_r.setText(str(risposta_tutdr) + ' C. attribute sl/cooling/dmm_sl.01/Pt100_SLU_UTDR') + self.tem_uhbb1_r.setText(str(risposta_tuh1) + ' C. attribute sl/cooling/dmm_sl.01/Pt100_SLU_BB1') + self.tem_uhbb2_r.setText(str(risposta_tuh2) + ' C. attribute sl/cooling/dmm_sl.01/Pt100_SLU_BB2') + self.tem_totemup_r.setText(str(risposta_ttu) + ' C. attribute slu/cooling/dmm_slu.01/Temp_Pt100_TotemUP') + self.tem_totemdown_r.setText(str(risposta_ttd) + ' C. attribute slu/cooling/dmm_slu.01/Temp_Pt100_TotemDOWN') + self.tem_totemair_r.setText(str(risposta_tta) + ' C. attribute slu/cooling/dmm_slu.01/Temp_Pt100_TotemAIR') +# self.tem_tmr_r.setText(str() + ' C. attribute slu/cooling/dmm_slu.01/') +# self.tem_tmx_r.setText(str() + ' C. attribute slu/cooling/dmm_slu.01/') +# self.tem_dpi_r.setText(str() + ' C. attribute slu/cooling/dmm_slu.01/') + self.tem_ldm_r.setText(str(risposta_tldm) + ' C. attribute slu/cooling/dmm_slu.01/Temp_Pt100_BL') +# self.tem_mag_r.setText(str() + ' C. attribute slu/cooling/dmm_slu.01/') + if temperaturefuori > 0: + self.monitor_tempera.setStyleSheet("background-color: rgb(255, 0, 0)") + self.monitor_tempera.setText('check tab Temperature') + self.contienitab.setTabText(5, "!! Temperature !!") else: - self.globale_amplificatore.setText('Elite' + str(sorgente)) - self.globale_amplificatore.setStyleSheet("background-color: rgb(255, 0, 0)") + self.monitor_tempera.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_tempera.setText('all OK') + #source feedback + risultatofeedback = '' try: statofbin = str(sacco['slelitefbin'].State()) - self.statoinput.setText(statofbin) - if statofbin == 'ON': - self.statoinput.setStyleSheet("background-color: rgb(0, 255, 0)") - elif statofbin == 'STANDBY' or statofbin == 'WARNING': - self.statoinput.setStyleSheet("background-color: rgb(255, 255, 0)") - elif statofbin == 'OFF' or statofbin == 'ALARM': - self.statoinput.setStyleSheet("background-color: rgb(255, 0, 0)") + self.source_ampliFBin.setText(statofbin) + if statofbin != 'ON': + self.source_ampliFBin.setStyleSheet("background-color: rgb(255, 0, 0)") + risultatofeedback = 'NOK' else: - self.statoinput.setStyleSheet("background-color: rgb(150, 150, 150)") + self.source_ampliFBin.setStyleSheet("background-color: rgb(0, 255, 0)") + condizione_source += 1 + risultatofeedback = 'ok' except: - self.statoinput.setText('unknown') - self.statoinput.setStyleSheet("background-color: rgb(150, 150, 150)") + self.source_ampliFBin.setText('unknown') + self.source_ampliFBin.setStyleSheet("background-color: rgb(255, 0, 0)") + risultatofeedback = 'NOK' try: - statofbout = str(sacco['slelitefbout'].State()) - self.statooutput.setText(statofbout) - if statofbout == 'ON': - self.statooutput.setStyleSheet("background-color: rgb(0, 255, 0)") - elif statofbout == 'STANDBY' or statofbout == 'WARNING': - self.statooutput.setStyleSheet("background-color: rgb(255, 255, 0)") - elif statofbout == 'OFF' or statofbout == 'ALARM': - self.statooutput.setStyleSheet("background-color: rgb(255, 0, 0)") + statofbtime = str(sacco['slelitefbtime'].State()) + self.source_ampliFBtime.setText(statofbtime) + if statofbtime != 'ON': + self.source_ampliFBtime.setStyleSheet("background-color: rgb(255, 0, 0)") + risultatofeedback = 'NOK' else: - self.statooutput.setStyleSheet("background-color: rgb(150, 150, 150)") + self.source_ampliFBtime.setStyleSheet("background-color: rgb(0, 255, 0)") + condizione_source += 1 + risultatofeedback = 'ok' except: - self.statooutput.setText('unknown') - self.statooutput.setStyleSheet("background-color: rgb(150, 150, 150)") + self.source_ampliFBtime.setText('unknown') + self.source_ampliFBtime.setStyleSheet("background-color: rgb(255, 0, 0)") + risultatofeedback = 'NOK' + #energy try: - statofbtime = str(sacco['slelitefbtime'].State()) - self.statotime.setText(statofbtime) - if statofbtime == 'ON': - self.statotime.setStyleSheet("background-color: rgb(0, 255, 0)") - elif statofbtime == 'STANDBY' or statofbtime == 'WARNING': - self.statotime.setStyleSheet("background-color: rgb(255, 255, 0)") - elif statofbtime == 'OFF' or statofbtime == 'ALARM' or statofbtime == 'MOVING': - self.statotime.setStyleSheet("background-color: rgb(255, 0, 0)") + tmp = sacco['ems8'].read_attribute('Corrected_energy') + risposta_ems8 = tmp.value + if str(tmp.quality) != 'ATTR_VALID': + self.source_launchenergy.setStyleSheet("background-color: rgb(255, 0, 0)") else: - self.statotime.setStyleSheet("background-color: rgb(150, 150, 150)") + self.source_launchenergy.setStyleSheet("background-color: rgb(0, 255, 0)") except: - self.statotime.setText('unknown') - self.statotime.setStyleSheet("background-color: rgb(150, 150, 150)") - #energy + risposta_ems8 = -1 + self.source_launchenergy.setText(str(round(risposta_ems8, 3)) + ' mJ') try: - tmp = sacco['emslr'].Corrected_Energy - self.energiaslr_lettura.setText(str(round(tmp, 3)) + ' mJ') + tmp = sacco['ems3'].read_attribute('Corrected_energy') + risposta_ems3 = tmp.value + if str(tmp.quality) != 'ATTR_VALID': + self.source_amplienergy.setStyleSheet("background-color: rgb(255, 0, 0)") + else: + self.source_amplienergy.setStyleSheet("background-color: rgb(0, 255, 0)") + condizione_source += 1 except: - self.energiaslr_lettura.setText('Unknown') - #transport feedback + risposta_ems3 = -1 + self.source_amplienergy.setText(str(round(risposta_ems3, 3)) + ' mJ') + if condizione_source < 7: + self.monitor_ampli.setStyleSheet("background-color: rgb(255, 0, 0)") + else: + self.monitor_ampli.setStyleSheet("background-color: rgb(0, 255, 0)") + self.monitor_ampli.setText(risposta_statoampli + ', ' + str(round(risposta_correnteampli,1)) + ' A, fb ' + risultatofeedback + '. Launch energy ' + str(round(risposta_ems8, 2)) + ' mJ') +####3 transport feedback altrifeedback = [] if self.linea == 'TOTEM': READ_statofeedback = str(sacco['totfeedback'].State()) + READ_pesofeedback = np.sum(sacco['totfeedback'].sensorweights)/2.0 altrifeedback.append(str(sacco['tmrfeedback'].State())) altrifeedback.append(str(sacco['tmxfeedback'].State())) altrifeedback.append(str(sacco['dpifeedback'].State())) @@ -718,6 +1526,7 @@ class MainWindow(QDialog): altrifeedback.append(str(sacco['magfeedback'].State())) elif self.linea == 'TIMER': READ_statofeedback = str(sacco['tmrfeedback'].State()) + READ_pesofeedback = np.sum(sacco['tmrfeedback'].sensorweights)/2.0 # altrifeedback.append(str(sacco['totfeedback'].State())) altrifeedback.append(str(sacco['tmxfeedback'].State())) altrifeedback.append(str(sacco['dpifeedback'].State())) @@ -725,6 +1534,7 @@ class MainWindow(QDialog): altrifeedback.append(str(sacco['magfeedback'].State())) elif self.linea == 'TIMEX': READ_statofeedback = str(sacco['tmxfeedback'].State()) + READ_pesofeedback = np.sum(sacco['tmxfeedback'].sensorweights)/2.0 altrifeedback.append(str(sacco['tmrfeedback'].State())) # altrifeedback.append(str(sacco['totfeedback'].State())) altrifeedback.append(str(sacco['dpifeedback'].State())) @@ -732,6 +1542,7 @@ class MainWindow(QDialog): altrifeedback.append(str(sacco['magfeedback'].State())) elif self.linea == 'DIPROI': READ_statofeedback = str(sacco['dpifeedback'].State()) + READ_pesofeedback = np.sum(sacco['dpifeedback'].sensorweights)/2.0 altrifeedback.append(str(sacco['tmrfeedback'].State())) altrifeedback.append(str(sacco['tmxfeedback'].State())) # altrifeedback.append(str(sacco['totfeedback'].State())) @@ -739,6 +1550,7 @@ class MainWindow(QDialog): altrifeedback.append(str(sacco['magfeedback'].State())) elif self.linea == 'LDM': READ_statofeedback = str(sacco['ldmfeedback'].State()) + READ_pesofeedback = np.sum(sacco['ldmfeedback'].sensorweights)/2.0 altrifeedback.append(str(sacco['tmrfeedback'].State())) altrifeedback.append(str(sacco['tmxfeedback'].State())) altrifeedback.append(str(sacco['dpifeedback'].State())) @@ -746,18 +1558,28 @@ class MainWindow(QDialog): altrifeedback.append(str(sacco['magfeedback'].State())) elif self.linea == 'MAGNEDYN': READ_statofeedback = str(sacco['magfeedback'].State()) + READ_pesofeedback = np.sum(sacco['magfeedback'].sensorweights)/2.0 altrifeedback.append(str(sacco['tmrfeedback'].State())) altrifeedback.append(str(sacco['tmxfeedback'].State())) altrifeedback.append(str(sacco['dpifeedback'].State())) altrifeedback.append(str(sacco['ldmfeedback'].State())) # altrifeedback.append(str(sacco['totfeedback'].State())) self.feedbackstato.setText(READ_statofeedback) + self.monitor_pointing.setText('Feedback ' + READ_statofeedback + ', sensors(ccd) ' + str(READ_pesofeedback) + '/5') + if READ_pesofeedback < 4: + self.monitor_pointing.setStyleSheet("background-color: rgb(255, 0, 0)") + elif READ_pesofeedback < 5: + self.monitor_pointing.setStyleSheet("background-color: rgb(255, 255, 0)") + elif READ_pesofeedback == 5: + self.monitor_pointing.setStyleSheet("background-color: rgb(0, 255, 0)") if READ_statofeedback == 'ON': self.feedbackstato.setStyleSheet("background-color: rgb(0, 255, 0)") elif READ_statofeedback == 'STANDBY' or READ_statofeedback == 'WARNING': self.feedbackstato.setStyleSheet("background-color: rgb(255, 255, 0)") + self.monitor_pointing.setStyleSheet("background-color: rgb(0, 255, 0)") elif READ_statofeedback == 'OFF' or READ_statofeedback == 'ALARM': self.feedbackstato.setStyleSheet("background-color: rgb(255, 0, 0)") + self.monitor_pointing.setStyleSheet("background-color: rgb(0, 255, 0)") else: self.feedbackstato.setStyleSheet("background-color: rgb(150, 150, 150)") if 'ON' in altrifeedback: @@ -780,24 +1602,24 @@ class MainWindow(QDialog): READ_stato_tiptilt = eval("str(sacco['piezo" + str(kkkk) + "'].State())") perc_y = eval("np.abs(sacco['piezo" + str(kkkk) + "'].VoltageVer - 131000)/1310") perc_x = eval("np.abs(sacco['piezo" + str(kkkk) + "'].VoltageHor - 131000)/1310") - eval("self.feedback" + str(kkkk) + "y.setValue(perc_y)") - eval("self.feedback" + str(kkkk) + "y.setTextVisible(1)") - eval("self.feedback" + str(kkkk) + "x.setValue(perc_x)") - eval("self.feedback" + str(kkkk) + "x.setTextVisible(1)") + eval("self.feedback" + str(kkkk) + ".barra_v.setValue(perc_y)") + eval("self.feedback" + str(kkkk) + ".barra_v.setTextVisible(1)") + eval("self.feedback" + str(kkkk) + ".barra_h.setValue(perc_x)") + eval("self.feedback" + str(kkkk) + ".barra_h.setTextVisible(1)") if perc_y > 80: - eval("self.feedback" + str(kkkk) + "y.setStyleSheet('background-color: rgb(255, 0, 0)')") + eval("self.feedback" + str(kkkk) + ".barra_v.setStyleSheet('background-color: rgb(255, 0, 0)')") else: - eval("self.feedback" + str(kkkk) + "y.setStyleSheet('background-color: rgb(0, 255, 0)')") + eval("self.feedback" + str(kkkk) + ".barra_v.setStyleSheet('background-color: rgb(0, 255, 0)')") if perc_x > 80: - eval("self.feedback" + str(kkkk) + "x.setStyleSheet('background-color: rgb(255, 0, 0)')") + eval("self.feedback" + str(kkkk) + ".barra_h.setStyleSheet('background-color: rgb(255, 0, 0)')") else: - eval("self.feedback" + str(kkkk) + "x.setStyleSheet('background-color: rgb(0, 255, 0)')") + eval("self.feedback" + str(kkkk) + ".barra_h.setStyleSheet('background-color: rgb(0, 255, 0)')") except: READ_stato_tiptilt = '#####' - eval("self.feedback" + str(kkkk) + "y.setValue(0)") - eval("self.feedback" + str(kkkk) + "y.setTextVisible(0)") - eval("self.feedback" + str(kkkk) + "x.setValue(0)") - eval("self.feedback" + str(kkkk) + "x.setTextVisible(0)") + eval("self.feedback" + str(kkkk) + ".barra_v.setValue(0)") + eval("self.feedback" + str(kkkk) + ".barra_v.setTextVisible(0)") + eval("self.feedback" + str(kkkk) + ".barra_h.setValue(0)") + eval("self.feedback" + str(kkkk) + ".barra_h.setTextVisible(0)") self.convertistatotiptilt(kkkk, READ_stato_tiptilt) tmp = sacco['costanti'].read_attribute('voltage_tiptilt_slu01_H') tmpt = tmp.time.todatetime() @@ -851,23 +1673,23 @@ class MainWindow(QDialog): READ_stato_ccd4 = '#####' ccd4pausa = False if READ_stato_ccd4 == 'ON' and not ccd4pausa: - self.feedback4monitor.setStyleSheet("background-color: #00ff00") + self.feedback4.tasto_ccd.setStyleSheet("background-color: #00ff00") elif READ_stato_ccd4 == 'OFF': - self.feedback4monitor.setStyleSheet("background-color: #ffffff") + self.feedback4.tasto_ccd.setStyleSheet("background-color: #ffffff") elif READ_stato_ccd4 == 'FAULT': - self.feedback4monitor.setStyleSheet("background-color: #ff0000") + self.feedback4.tasto_ccd.setStyleSheet("background-color: #ff0000") elif READ_stato_ccd4 == 'STANDBY' or ccd4pausa: - self.feedback4monitor.setStyleSheet("background-color: #ffff00") + self.feedback4.tasto_ccd.setStyleSheet("background-color: #ffff00") elif READ_stato_ccd4 == 'ALARM': - self.feedback4monitor.setStyleSheet("background-color: #ff9900") + self.feedback4.tasto_ccd.setStyleSheet("background-color: #ff9900") elif READ_stato_ccd4 == 'DISABLE': - self.feedback4monitor.setStyleSheet("background-color: #ff00ff") + self.feedback4.tasto_ccd.setStyleSheet("background-color: #ff00ff") elif READ_stato_ccd4 == 'INIT': - self.feedback4monitor.setStyleSheet("background-color: #dddd88") + self.feedback4.tasto_ccd.setStyleSheet("background-color: #dddd88") elif READ_stato_ccd4 == 'UNKNOWN': - self.feedback4monitor.setStyleSheet("background-color: #888888") + self.feedback4.tasto_ccd.setStyleSheet("background-color: #888888") else: - self.feedback4monitor.setStyleSheet("background-color: #888888") + self.feedback4.tasto_ccd.setStyleSheet("background-color: #888888") if 'ON' in altreccd or 'ALARM' in altreccd: self.feedbackstopothersccds.setDisabled(0) self.feedbackstopothersccds.setStyleSheet("background-color: #ff0000") @@ -926,52 +1748,574 @@ class MainWindow(QDialog): else: self.feedbackstopothersauto.setDisabled(1) self.feedbackstopothersauto.setStyleSheet("background-color: lightgray") - # delay +####4 decimation + try: + tmp = sacco['decima1'].read_attributes(['DelayMode', 'StatusMode', 'Sequence']) + self.deci1sequence_R.setText(str(tmp[2].value).replace('[', '').replace(']','').replace(' ', ', ')) + if tmp[0].value and not tmp[1].value: + mod1 = 'Delay' + elif not tmp[0].value and tmp[1].value: + mod1 = 'Status' + else: + mod1 = 'unknown' + except: + mod1 = 'unknown' + try: + tmp = sacco['decima2'].read_attributes(['DelayMode', 'StatusMode', 'Sequence']) + self.deci2sequence_R.setText(str(tmp[2].value).replace('[', '').replace(']','').replace(' ', ', ')) + if tmp[0].value and not tmp[1].value: + mod2 = 'Delay' + elif not tmp[0].value and tmp[1].value: + mod2 = 'Status' + else: + mod2 = 'unknown' + except: + mod2 = 'unknown' try: - delaytotemps = str(round(sacco['totem_delay'].Position, 3)) + ' ps' + tmp = sacco['decima3'].read_attributes(['DelayMode', 'StatusMode', 'Sequence']) + self.deci3sequence_R.setText(str(tmp[2].value).replace('[', '').replace(']','').replace(' ', ', ')) + if tmp[0].value and not tmp[1].value: + mod3 = 'Delay' + elif not tmp[0].value and tmp[1].value: + mod3 = 'Status' + else: + mod3 = 'unknown' + except: + mod3 = 'unknown' + try: + tmp = sacco['decimacheck'].read_attribute('ChannelsState') + if tmp.value[1] == 10 and tmp.value[2] == 10: + self.deci1R.setText('Decimation ON - ' + mod1) + self.deci1R.setStyleSheet("background-color: #00ff00") + self.deci2R.setText('Decimation ON - ' + mod1) + self.deci2R.setStyleSheet("background-color: #00ff00") + self.deci3R.setText('Decimation ON - ' + mod1) + self.deci3R.setStyleSheet("background-color: #00ff00") + self.monitor_decimation.setText('Global SEED+SLU ON - ' + mod1) + self.monitor_decimation.setStyleSheet("background-color: #7777ff") + if tmp.value[1] == 10 and tmp.value[2] == 1 and tmp.value[10] == 10: + self.deci1R.setText('Off - ' + mod1) + self.deci1R.setStyleSheet("background-color: #ffffff") + self.deci2R.setText('Decimation ON - ' + mod2) + self.deci2R.setStyleSheet("background-color: #00ff00") + self.deci3R.setText('Off - ' + mod3) + self.deci3R.setStyleSheet("background-color: #ffffff") + self.monitor_decimation.setText('SEED/FEL ON - ' + mod2) + self.monitor_decimation.setStyleSheet("background-color: #7777ff") + if tmp.value[1] == 1 and tmp.value[2] == 10 and tmp.value[11] == 10: + self.deci1R.setText('Off - ' + mod1) + self.deci1R.setStyleSheet("background-color: #ffffff") + self.deci2R.setText('Off - ' + mod2) + self.deci2R.setStyleSheet("background-color: #ffffff") + self.deci3R.setText('Decimation ON - ' + mod3) + self.deci3R.setStyleSheet("background-color: #00ff00") + self.monitor_decimation.setText('SLU ON - ' + mod3) + self.monitor_decimation.setStyleSheet("background-color: #7777ff") + if tmp.value[1] == 1 and tmp.value[2] == 1 and tmp.value[11] == 1: + self.deci1R.setText('Off - ' + mod1) + self.deci1R.setStyleSheet("background-color: #ffffff") + self.deci2R.setText('Off - ' + mod2) + self.deci2R.setStyleSheet("background-color: #ffffff") + self.deci3R.setText('Off - ' + mod3) + self.deci3R.setStyleSheet("background-color: #ffffff") + self.monitor_decimation.setText('No decimation') + self.monitor_decimation.setStyleSheet("background-color: #00ff00") + except: + self.deci1R.setText('unknown') + self.deci2R.setText('unknown') + self.deci3R.setText('unknown') + self.monitor_decimation.setText('unknown') + self.monitor_decimation.setStyleSheet("background-color: #ff0000") +####5 delay + if self.contienitab.currentIndex() == 7: + try: + tmp = sacco['scope6'].read_attributes(['P1AVG', 'P1Sigma', 'P2AVG', 'P2Sigma', 'P3AVG', 'P3Sigma', 'P4AVG', 'P4Sigma', 'P5AVG', 'P5Sigma', 'P6AVG', 'P6Sigma']) + self.scope6M1R1.setText('avg ' + str(round(tmp[0].value * 10**9, 3)) + ' ns') + self.scope6M2R1.setText('avg ' + str(round(tmp[2].value * 10**9, 3)) + ' ns') + self.scope6M3R1.setText('avg ' + str(round(tmp[4].value * 10**9, 3)) + ' ns') + self.scope6M4R1.setText('avg ' + str(round(tmp[6].value * 10**9, 3)) + ' ns') + self.scope6M5R1.setText('avg ' + str(round(tmp[8].value * 10**9, 3)) + ' ns') + self.scope6M6R1.setText('avg ' + str(round(tmp[10].value * 10**9, 3)) + ' ns') + self.scope6M1R2.setText('std ' + str(round(tmp[1].value * 10**9, 1)) + ' ns') + self.scope6M2R2.setText('std ' + str(round(tmp[3].value * 10**9, 1)) + ' ns') + self.scope6M3R2.setText('std ' + str(round(tmp[5].value * 10**9, 1)) + ' ns') + self.scope6M4R2.setText('std ' + str(round(tmp[7].value * 10**9, 1)) + ' ns') + self.scope6M5R2.setText('std ' + str(round(tmp[9].value * 10**9, 1)) + ' ns') + self.scope6M6R2.setText('std ' + str(round(tmp[11].value * 10**9, 1)) + ' ns') + except: + self.scope6M1R1.setText('avg ... ns') + self.scope6M2R1.setText('avg ... ns') + self.scope6M3R1.setText('avg ... ns') + self.scope6M4R1.setText('avg ... ns') + self.scope6M5R1.setText('avg ... ns') + self.scope6M6R1.setText('avg ... ns') + self.scope6M1R2.setText('std ... ns') + self.scope6M2R2.setText('std ... ns') + self.scope6M3R2.setText('std ... ns') + self.scope6M4R2.setText('std ... ns') + self.scope6M5R2.setText('std ... ns') + self.scope6M6R2.setText('std ... ns') + else: + self.scope6M1R1.setText('avg ' + str(round(-1, 3))) + self.scope6M2R1.setText('avg ' + str(round(-1, 3))) + self.scope6M3R1.setText('avg ' + str(round(-1, 3))) + self.scope6M4R1.setText('avg ' + str(round(-1, 3))) + self.scope6M5R1.setText('avg ' + str(round(-1, 3))) + self.scope6M6R1.setText('avg ' + str(round(-1, 3))) + self.scope6M1R2.setText('std ' + str(round(-1, 1))) + self.scope6M2R2.setText('std ' + str(round(-1, 1))) + self.scope6M3R2.setText('std ' + str(round(-1, 1))) + self.scope6M4R2.setText('std ' + str(round(-1, 1))) + self.scope6M5R2.setText('std ' + str(round(-1, 1))) + self.scope6M6R2.setText('std ' + str(round(-1, 1))) + try: + tmp = sacco['totem_delay'].read_attributes(['State', 'Position']) + delaytotemps = str(round(tmp[1].value, 3)) + ' ps' except: delaytotemps = '##### ps' self.delaytotemR.setText(delaytotemps) + if str(tmp[0].value) == 'ON': + self.delaytotemR.setStyleSheet("background-color: #00ff00") + elif str(tmp[0].value) == 'MOVING': + self.delaytotemR.setStyleSheet("background-color: #7777ff") + else: + self.delaytotemR.setStyleSheet("background-color: #ff0000") + try: + tmp = sacco['trls8_delay'].read_attributes(['State', 'Position']) + delay8ps = str(round(tmp[1].value, 3)) + ' ps' + except: + delay8ps = '##### ps' + self.delay8R.setText(delay8ps) + if str(tmp[0].value) == 'ON': + self.delay8R.setStyleSheet("background-color: #00ff00") + elif str(tmp[0].value) == 'MOVING': + self.delay8R.setStyleSheet("background-color: #7777ff") + else: + self.delay8R.setStyleSheet("background-color: #ff0000") + try: + tmp = sacco['triggerSL'].read_attribute('Chan2Delay') + risposta_trgmain = tmp.value + self.triggermainR.setText(str(round(risposta_trgmain, 3))) + if str(tmp.quality) != 'ATTR_VALID': + self.triggermainR.setStyleSheet("background-color: #ff0000") + else: + self.triggermainR.setStyleSheet("background-color: #00ff00") + except: + risposta_trgmain = -1 + self.triggermainR.setText(str(round(risposta_trgmain, 3))) + self.triggermainR.setStyleSheet("background-color: #ff0000") + try: + tmp = sacco['triggerDGQ1'].read_attribute('Chan2Delay') + risposta_trgsdg = tmp.value + self.triggerDGQ1R.setText(str(round(risposta_trgsdg, 3)) + ' ns') + if str(tmp.quality) != 'ATTR_VALID': + self.triggerDGQ1R.setStyleSheet("background-color: #ff0000") + else: + self.triggerDGQ1R.setStyleSheet("background-color: #00ff00") + except: + risposta_trgsdg = -1 + self.triggerDGQ1R.setText(str(round(risposta_trgsdg, 3)) + ' ns') + self.triggerDGQ1R.setStyleSheet("background-color: #ff0000") +####6 vuoto + pompaccesa = 0 + valvolaperta = 0 + rosso_pressione = 0 + try: + leggi_pompe = sacco['pompe'].read_attributes(['PMP_UH_01','PMP_UH_02','PMP_UH_03','PMP_SH_01','PMP_EH_01','PMP_EH_02']) + stato_pompa_UH1 = leggi_pompe[0].value + stato_pompa_UH2 = leggi_pompe[1].value + stato_pompa_UH3 = leggi_pompe[2].value + stato_pompa_SH1 = leggi_pompe[3].value + stato_pompa_EH1 = leggi_pompe[4].value + stato_pompa_EH2 = leggi_pompe[5].value + except: + stato_pompa_UH1 = -1 + stato_pompa_UH2 = -1 + stato_pompa_UH3 = -1 + stato_pompa_SH1 = -1 + stato_pompa_EH1 = -1 + stato_pompa_EH2 = -1 + if stato_pompa_UH1 == True: + self.pompaUH1_read.setText('ON') + self.pompaUH1_read.setStyleSheet("background-color: rgb(0, 255, 0)") + self.pompaUH1_set.setText('OFF') + pompaccesa += 1 + elif stato_pompa_UH1 == False: + self.pompaUH1_read.setText('OFF') + self.pompaUH1_read.setStyleSheet("background-color: rgb(255, 255, 255)") + self.pompaUH1_set.setText('ON') + else: + self.pompaUH1_read.setText('#####') + self.pompaUH1_read.setStyleSheet("background-color: rgb(255, 0, 0)") + self.pompaUH1_set.setText('#####') + if stato_pompa_UH2 == True: + self.pompaUH2_read.setText('ON') + self.pompaUH2_read.setStyleSheet("background-color: rgb(0, 255, 0)") + self.pompaUH2_set.setText('OFF') + pompaccesa += 1 + elif stato_pompa_UH2 == False: + self.pompaUH2_read.setText('OFF') + self.pompaUH2_read.setStyleSheet("background-color: rgb(255, 255, 255)") + self.pompaUH2_set.setText('ON') + else: + self.pompaUH2_read.setText('#####') + self.pompaUH2_read.setStyleSheet("background-color: rgb(255, 0, 0)") + self.pompaUH2_set.setText('#####') + if stato_pompa_UH3 == True: + self.pompaUH3_read.setText('ON') + self.pompaUH3_read.setStyleSheet("background-color: rgb(0, 255, 0)") + self.pompaUH3_set.setText('OFF') + pompaccesa += 1 + elif stato_pompa_UH3 == False: + self.pompaUH3_read.setText('OFF') + self.pompaUH3_read.setStyleSheet("background-color: rgb(255, 255, 255)") + self.pompaUH3_set.setText('ON') + else: + self.pompaUH3_read.setText('#####') + self.pompaUH3_read.setStyleSheet("background-color: rgb(255, 0, 0)") + self.pompaUH3_set.setText('#####') + if stato_pompa_SH1 == True: + self.pompaSH1_read.setText('ON') + self.pompaSH1_read.setStyleSheet("background-color: rgb(0, 255, 0)") + self.pompaSH1_set.setText('OFF') + pompaccesa += 1 + elif stato_pompa_SH1 == False: + self.pompaSH1_read.setText('OFF') + self.pompaSH1_read.setStyleSheet("background-color: rgb(255, 255, 255)") + self.pompaSH1_set.setText('ON') + else: + self.pompaSH1_read.setText('#####') + self.pompaSH1_read.setStyleSheet("background-color: rgb(255, 0, 0)") + self.pompaSH1_set.setText('#####') + if stato_pompa_EH1 == True: + self.pompaEH1_read.setText('ON') + self.pompaEH1_read.setStyleSheet("background-color: rgb(0, 255, 0)") + self.pompaEH1_set.setText('OFF') + pompaccesa += 1 + elif stato_pompa_EH1 == False: + self.pompaEH1_read.setText('OFF') + self.pompaEH1_read.setStyleSheet("background-color: rgb(255, 255, 255)") + self.pompaEH1_set.setText('ON') + else: + self.pompaEH1_read.setText('#####') + self.pompaEH1_read.setStyleSheet("background-color: rgb(255, 0, 0)") + self.pompaEH1_set.setText('#####') + if stato_pompa_EH2 == True: + self.pompaEH2_read.setText('ON') + self.pompaEH2_read.setStyleSheet("background-color: rgb(0, 255, 0)") + self.pompaEH2_set.setText('OFF') + pompaccesa += 1 + elif stato_pompa_EH2 == False: + self.pompaEH2_read.setText('OFF') + self.pompaEH2_read.setStyleSheet("background-color: rgb(255, 255, 255)") + self.pompaEH2_set.setText('ON') + else: + self.pompaEH2_read.setText('#####') + self.pompaEH2_read.setStyleSheet("background-color: rgb(0, 255, 0)") + self.pompaEH2_set.setText('#####') + try: + stato_valvola_UH1 = str(sacco['valvolaUH1'].command_inout('State')) + except: + stato_valvola_UH1 = '' + if stato_valvola_UH1 == 'CLOSE': + self.valvolaUH1_read.setText('close') + self.valvolaUH1_read.setStyleSheet("background-color: rgb(255, 255, 255)") + self.valvolaUH1_set.setText('OPEN') + elif stato_valvola_UH1 == 'OPEN': + self.valvolaUH1_read.setText('open') + self.valvolaUH1_read.setStyleSheet("background-color: rgb(255, 255, 0)") + self.valvolaUH1_set.setText('CLOSE') + valvolaperta += 1 + else: + self.valvolaUH1_read.setText('#####') + self.valvolaUH1_read.setStyleSheet("background-color: rgb(255, 0, 0)") + self.valvolaUH1_set.setText('#####') + try: + stato_valvola_UH2 = str(sacco['valvolaUH2'].command_inout('State')) + except: + stato_valvola_UH2 = '' + if stato_valvola_UH2 == 'CLOSE': + self.valvolaUH2_read.setText('close') + self.valvolaUH2_read.setStyleSheet("background-color: rgb(255, 255, 255)") + self.valvolaUH2_set.setText('OPEN') + elif stato_valvola_UH2 == 'OPEN': + self.valvolaUH2_read.setText('open') + self.valvolaUH2_read.setStyleSheet("background-color: rgb(255, 255, 0)") + self.valvolaUH2_set.setText('CLOSE') + valvolaperta += 1 + else: + self.valvolaUH2_read.setText('#####') + self.valvolaUH2_read.setStyleSheet("background-color: rgb(255, 0, 0)") + self.valvolaUH2_set.setText('#####') + try: + stato_valvola_UH3 = str(sacco['valvolaUH3'].command_inout('State')) + except: + stato_valvola_UH3 = '' + if stato_valvola_UH3 == 'CLOSE': + self.valvolaUH3_read.setText('close') + self.valvolaUH3_read.setStyleSheet("background-color: rgb(255, 255, 255)") + self.valvolaUH3_set.setText('OPEN') + elif stato_valvola_UH3 == 'OPEN': + self.valvolaUH3_read.setText('open') + self.valvolaUH3_read.setStyleSheet("background-color: rgb(255, 255, 0)") + self.valvolaUH3_set.setText('CLOSE') + valvolaperta += 1 + else: + self.valvolaUH3_read.setText('#####') + self.valvolaUH3_read.setStyleSheet("background-color: rgb(255, 0, 0)") + self.valvolaUH3_set.setText('#####') + try: + stato_valvola_SH1 = str(sacco['valvolaSH1'].command_inout('State')) + except: + stato_valvola_SH1 = '' + if stato_valvola_SH1 == 'CLOSE': + self.valvolaSH1_read.setText('close') + self.valvolaSH1_read.setStyleSheet("background-color: rgb(255, 255, 255)") + self.valvolaSH1_set.setText('OPEN') + elif stato_valvola_SH1 == 'OPEN': + self.valvolaSH1_read.setText('open') + self.valvolaSH1_read.setStyleSheet("background-color: rgb(255, 255, 0)") + self.valvolaSH1_set.setText('CLOSE') + valvolaperta += 1 + else: + self.valvolaSH1_read.setText('#####') + self.valvolaSH1_read.setStyleSheet("background-color: rgb(255, 0, 0)") + self.valvolaSH1_set.setText('#####') + try: + stato_valvola_EHF1 = str(sacco['valvolaEHF1'].command_inout('State')) + except: + stato_valvola_EHF1 = '' + if stato_valvola_EHF1 == 'CLOSE': + self.valvolaEHF1_read.setText('close') + self.valvolaEHF1_read.setStyleSheet("background-color: rgb(255, 255, 255)") + self.valvolaEHF1_set.setText('OPEN') + elif stato_valvola_EHF1 == 'OPEN': + self.valvolaEHF1_read.setText('open') + self.valvolaEHF1_read.setStyleSheet("background-color: rgb(255, 255, 0)") + self.valvolaEHF1_set.setText('CLOSE') + valvolaperta += 1 + else: + self.valvolaEHF1_read.setText('#####') + self.valvolaEHF1_read.setStyleSheet("background-color: rgb(255, 0, 0)") + self.valvolaEHF1_set.setText('#####') + try: + stato_valvola_EHF2 = str(sacco['valvolaEHF2'].command_inout('State')) + except: + stato_valvola_EHF2 = '' + if stato_valvola_EHF2 == 'CLOSE': + self.valvolaEHF2_read.setText('close') + self.valvolaEHF2_read.setStyleSheet("background-color: rgb(255, 255, 255)") + self.valvolaEHF2_set.setText('OPEN') + elif stato_valvola_EHF2 == 'OPEN': + self.valvolaEHF2_read.setText('open') + self.valvolaEHF2_read.setStyleSheet("background-color: rgb(255, 255, 0)") + self.valvolaEHF2_set.setText('CLOSE') + valvolaperta += 1 + else: + self.valvolaEHF2_read.setText('#####') + self.valvolaEHF2_read.setStyleSheet("background-color: rgb(255, 0, 0)") + self.valvolaEHF2_set.setText('#####') + try: + tmp = sacco['sensoreUTDR'].read_attribute('Pressure') + pressione__UTDR = str(tmp.value) + self.sensoreUTDR_read.setText(pressione__UTDR + ' mbar') + if str(tmp.quality) != 'ATTR_VALID': + rosso_pressione += 1 + except: + pressione__UTDR = '-1' + self.sensoreUTDR_read.setText(pressione__UTDR + ' mbar') + rosso_pressione += 1 + try: + tmp = sacco['sensoreUH1'].read_attribute('Pressure') + pressione__UH1 = str(tmp.value) + self.sensoreUH1_read.setText(pressione__UH1 + ' mbar') + except: + self.sensoreUH1_read.setText('-1 mbar') + try: + tmp = sacco['sensoreUH2'].read_attribute('Pressure') + pressione__UH2 = str(tmp.value) + self.sensoreUH2_read.setText(pressione__UH2 + ' mbar') + except: + self.sensoreUH2_read.setText('-1 mbar') + try: + tmp = sacco['sensoreUH3'].read_attribute('Pressure') + pressione__UH3 = str(tmp.value) + self.sensoreUH3_read.setText(pressione__UH3 + ' mbar') + if str(tmp.quality) != 'ATTR_VALID': + rosso_pressione += 1 + except: + pressione__UH3 = '-1' + self.sensoreUH3_read.setText(pressione__UH3 + ' mbar') + rosso_pressione += 1 + try: + tmp = sacco['sensoreUH4'].read_attribute('Pressure') + pressione__UH4 = str(tmp.value) + self.sensoreUH4_read.setText(pressione__UH4 + ' mbar') + except: + self.sensoreUH4_read.setText('-1 mbar') + try: + tmp = sacco['sensoreSH1'].read_attribute('Pressure') + pressione__SH1 = str(tmp.value) + self.sensoreSH1_read.setText(pressione__SH1 + ' mbar') + except: + self.sensoreSH1_read.setText('-1 mbar') + try: + tmp = sacco['sensoreEHF1'].read_attribute('Pressure') + pressione__EHF1 = str(tmp.value) + self.sensoreEHF1_read.setText(pressione__EHF1 + ' mbar') + if str(tmp.quality) != 'ATTR_VALID': + rosso_pressione += 1 + except: + pressione__EHF1 = '-1' + self.sensoreEHF1_read.setText(pressione__EHF1 + ' mbar') + rosso_pressione += 1 + try: + tmp = sacco['sensoreEHF2'].read_attribute('Pressure') + pressione__EHF2 = str(tmp.value) + self.sensoreEHF2_read.setText(pressione__EHF2 + ' mbar') + except: + self.sensoreEHF2_read.setText('-1 mbar') + try: + tmp = sacco['sensoreEHF3'].read_attribute('Pressure') + pressione__EHF3 = str(tmp.value) + self.sensoreEHF3_read.setText(pressione__EHF3 + ' mbar') + if str(tmp.quality) != 'ATTR_VALID': + rosso_pressione += 1 + except: + pressione__EHF3 = '-1' + self.sensoreEHF3_read.setText(pressione__EHF3 + ' mbar') + rosso_pressione += 1 + try: + tmp = sacco['sensoreEHF4'].read_attribute('Pressure') + pressione__EHF4 = str(tmp.value) + self.sensoreEHF4_read.setText(pressione__EHF4 + ' mbar') + except: + self.sensoreEHF4_read.setText('-1 mbar') + if pompaccesa == 0 and valvolaperta == 0: + pmpvlv = 'Pumps&Valves OK' + elif valvolaperta > 0 and valvolaperta == 0: + pmpvlv = 'Pumps ON, Valves OK' + rosso_pressione += 1 + elif valvolaperta == 0 and valvolaperta > 0: + pmpvlv = 'Pumps OK, Valves OPENED' + rosso_pressione += 1 + elif valvolaperta > 0 and valvolaperta > 0: + pmpvlv = 'Pumps ON, Valves OPENED' + rosso_pressione += 1 + self.monitor_vacuum.setText('UH: ' + str(pressione__UH3) + ', EHF1: ' + str(pressione__EHF1) + ', EHF2: ' + str(pressione__EHF3) + ', ' + pmpvlv) + if rosso_pressione > 0: + self.monitor_vacuum.setStyleSheet("background-color: rgb(255, 0, 0)") + else: + self.monitor_vacuum.setStyleSheet("background-color: rgb(0, 255, 0)") +####12 ldm + if self.contienitab.currentIndex() == 8: + try: + tmp = sacco['ldm_kom1'].read_attributes(['Position_X', 'Position_Y']) + self.LDM_kom1_rx.setText(str(round(tmp[0].value, 4))) + self.LDM_kom1_ry.setText(str(round(tmp[1].value, 4))) + except: + self.LDM_kom1_rx.setText('#####') + self.LDM_kom1_ry.setText('#####') + try: + tmp = sacco['ldm_kom2'].read_attributes(['Position_X', 'Position_Y']) + self.LDM_kom2_rx.setText(str(round(tmp[0].value, 4))) + except: + self.LDM_kom2_rx.setText('#####') + self.LDM_kom2_ry.setText('#####') + try: + self.LDM_rots1_r.setText(str(round(sacco['ldm_rots1'].UserPosition, 3))) + except: + self.LDM_rots1_r.setText('#####') + try: + self.LDM_rots2_r.setText(str(round(sacco['ldm_rots2'].UserPosition, 3))) + except: + self.LDM_rots2_r.setText('#####') + try: + self.LDM_rots3_r.setText(str(round(sacco['ldm_rots3'].UserPosition, 3))) + except: + self.LDM_rots3_r.setText('#####') + try: + self.LDM_trls2_r.setText(str(round(sacco['ldm_trls2'].UserPosition, 3))) + except: + self.LDM_trls2_r.setText('#####') + try: + self.LDM_feedback1_state.setText(str(sacco['ldm_fb1'].State())) + except: + self.LDM_feedback1_state.setText('#####') + try: + self.LDM_feedback2_state.setText(str(sacco['ldm_fb2'].State())) + except: + self.LDM_feedback2_state.setText('#####') +# print(str(time.time()-t0)) + + + + def forcepanel(self): + nuovalinea = self.menubeamline.currentText() + self.linea = nuovalinea + self.beamlineattiva.setText(str(self.linea)) + self.autodeterminazionedeipupoli = 1 + + def apripss(self): + os.system('/runtime/bin/laserpss -title Laser_safety_system &') + + def lanciailwiki(self): + os.system('firefox http://acswww.elettra.trieste.it/Fermi/Procedures/Lasers/monitorpanel &') + + def lanciahdb(self): + os.system('firefox http://fcs-proxy-01.elettra.eu/egiga2m/egiga2m.html?conf=fermi &') + + def apricalendario(self): + os.system("python /home/lfo/runtime/panels/bin/slucalendarpanel.py &") + + def attenuatoresu(self): + gol = sacco['attenuator'].Position + float(self.source_attenuatorcontrol.muoviS.text()) + sacco['attenuator'].write_attribute('Position', gol) + + def attenuatoregiu(self): + gol = sacco['attenuator'].Position - float(self.source_attenuatorcontrol.muoviS.text()) + sacco['attenuator'].write_attribute('Position', gol) +#pointing def convertistatoccd(self, uno, due, tre): if due == 'ON' and not tre: - eval("self.feedback" + str(uno) + "monitor.setStyleSheet('background-color: #00ff00')") + eval("self.feedback" + str(uno) + ".tasto_ccd.setStyleSheet('background-color: #00ff00')") elif due == 'OFF': - eval("self.feedback" + str(uno) + "monitor.setStyleSheet('background-color: #ffffff')") + eval("self.feedback" + str(uno) + ".tasto_ccd.setStyleSheet('background-color: #ffffff')") elif due == 'FAULT': - eval("self.feedback" + str(uno) + "monitor.setStyleSheet('background-color: #ff0000')") + eval("self.feedback" + str(uno) + ".tasto_ccd.setStyleSheet('background-color: #ff0000')") elif due == 'STANDBY' or tre: - eval("self.feedback" + str(uno) + "monitor.setStyleSheet('background-color: #ffff00')") + eval("self.feedback" + str(uno) + ".tasto_ccd.setStyleSheet('background-color: #ffff00')") elif due == 'ALARM': - eval("self.feedback" + str(uno) + "monitor.setStyleSheet('background-color: #ff9900')") + eval("self.feedback" + str(uno) + ".tasto_ccd.setStyleSheet('background-color: #ff9900')") elif due == 'DISABLE': - eval("self.feedback" + str(uno) + "monitor.setStyleSheet('background-color: #ff00ff')") + eval("self.feedback" + str(uno) + ".tasto_ccd.setStyleSheet('background-color: #ff00ff')") elif due == 'INIT': - eval("self.feedback" + str(uno) + "monitor.setStyleSheet('background-color: #dddd88')") + eval("self.feedback" + str(uno) + ".tasto_ccd.setStyleSheet('background-color: #dddd88')") elif due == 'UNKNOWN': - eval("self.feedback" + str(uno) + "monitor.setStyleSheet('background-color: #888888')") + eval("self.feedback" + str(uno) + ".tasto_ccd.setStyleSheet('background-color: #888888')") else: - eval("self.feedback" + str(uno) + "monitor.setStyleSheet('background-color: #888888')") + eval("self.feedback" + str(uno) + ".tasto_ccd.setStyleSheet('background-color: #888888')") def convertistatotiptilt(self, uno, due): if due == 'ON': - eval("self.feedback" + str(uno) + "corrector.setStyleSheet('background-color: #00ff00')") + eval("self.feedback" + str(uno) + ".tasto_tip.setStyleSheet('background-color: #00ff00')") elif due == 'OFF': - eval("self.feedback" + str(uno) + "corrector.setStyleSheet('background-color: #ffffff')") + eval("self.feedback" + str(uno) + ".tasto_tip.setStyleSheet('background-color: #ffffff')") elif due == 'FAULT': - eval("self.feedback" + str(uno) + "corrector.setStyleSheet('background-color: #ff0000')") + eval("self.feedback" + str(uno) + ".tasto_tip.setStyleSheet('background-color: #ff0000')") elif due == 'STANDBY': - eval("self.feedback" + str(uno) + "corrector.setStyleSheet('background-color: #ffff00')") + eval("self.feedback" + str(uno) + ".tasto_tip.setStyleSheet('background-color: #ffff00')") elif due == 'ALARM': - eval("self.feedback" + str(uno) + "corrector.setStyleSheet('background-color: #ff9900')") + eval("self.feedback" + str(uno) + ".tasto_tip.setStyleSheet('background-color: #ff9900')") elif due == 'DISABLE': - eval("self.feedback" + str(uno) + "corrector.setStyleSheet('background-color: #ff00ff')") + eval("self.feedback" + str(uno) + ".tasto_tip.setStyleSheet('background-color: #ff00ff')") elif due == 'INIT': - eval("self.feedback" + str(uno) + "corrector.setStyleSheet('background-color: #dddd88')") + eval("self.feedback" + str(uno) + ".tasto_tip.setStyleSheet('background-color: #dddd88')") elif due == 'UNKNOWN': - eval("self.feedback" + str(uno) + "corrector.setStyleSheet('background-color: #888888')") + eval("self.feedback" + str(uno) + ".tasto_tip.setStyleSheet('background-color: #888888')") else: - eval("self.feedback" + str(uno) + "corrector.setStyleSheet('background-color: #888888')") + eval("self.feedback" + str(uno) + ".tasto_tip.setStyleSheet('background-color: #888888')") def neresterasoltantounoFB(self): if self.linea == 'TOTEM': @@ -1321,26 +2665,15 @@ class MainWindow(QDialog): def apriSEQpesi(self): if self.linea == 'TIMER': - os.system('/usr/local/tango-9.3.3/bin/atkpanel ' + sacco['tmrfbsequencer'].name() + ' &') + os.system('atkpanel ' + sacco['tmrfbsequencer'].name() + ' &') elif self.linea == 'TIMEX': - os.system('/usr/local/tango-9.3.3/bin/atkpanel ' + sacco['tmxfbsequencer'].name() + ' &') + os.system('atkpanel ' + sacco['tmxfbsequencer'].name() + ' &') elif self.linea == 'DIPROI': - os.system('/usr/local/tango-9.3.3/bin/atkpanel ' + sacco['dpifbsequencer'].name() + ' &') + os.system('atkpanel ' + sacco['dpifbsequencer'].name() + ' &') elif self.linea == 'LDM': - os.system('/usr/local/tango-9.3.3/bin/atkpanel ' + sacco['ldmfbsequencer'].name() + ' &') + os.system('atkpanel ' + sacco['ldmfbsequencer'].name() + ' &') elif self.linea == 'MAGNEDYN': - os.system('/usr/local/tango-9.3.3/bin/atkpanel ' + sacco['magfbsequencer'].name() + ' &') - - def forcepanel(self): - nuovalinea = self.menubeamline.currentText() - self.linea = nuovalinea - self.beamlineattiva.setText('Elite' + str(self.sorgente) + ' to ' + str(self.linea)) - - def apripss(self): - os.system('/runtime/bin/laserpss -title Laser_safety_system &') - - def lanciailwiki(self): - os.system('firefox http://acswww.elettra.trieste.it/Fermi/Procedures/Lasers/monitorpanel &') + os.system('atkpanel ' + sacco['magfbsequencer'].name() + ' &') def accendiilfeedback(self): if self.linea == 'TIMER': @@ -1424,42 +2757,6 @@ class MainWindow(QDialog): nome = sacco['magfeedback'].dev_name() eval("os.system('/runtime/bin/mimo-fb-gui " + nome + " &')") - def apritiptilt0(self): - nome = sacco['piezo0'].dev_name() - eval("os.system('/runtime/bin/slutiptilt " + nome + " &')") - - def apriccd0(self): - nome = sacco['ccd0'].dev_name() - eval("os.system('/runtime/bin/gigecam-gui " + nome + " --refresh=200 &')") - - def apritiptilt1(self): - nome = sacco['piezo1'].dev_name() - eval("os.system('/runtime/bin/slutiptilt " + nome + " &')") - - def apriccd1(self): - nome = sacco['ccd1'].dev_name() - eval("os.system('/runtime/bin/gigecam-gui " + nome + " --refresh=200 &')") - - def apritiptilt2(self): - nome = sacco['piezo2'].dev_name() - eval("os.system('/runtime/bin/slutiptilt " + nome + " &')") - - def apriccd2(self): - nome = sacco['ccd2'].dev_name() - eval("os.system('/runtime/bin/gigecam-gui " + nome + " --refresh=200 &')") - - def apritiptilt3(self): - nome = sacco['piezo3'].dev_name() - eval("os.system('/runtime/bin/slutiptilt " + nome + " &')") - - def apriccd3(self): - nome = sacco['ccd3'].dev_name() - eval("os.system('/runtime/bin/gigecam-gui " + nome + " --refresh=200 &')") - - def apritiptilt4(self): - nome = sacco['piezo4'].dev_name() - eval("os.system('/runtime/bin/slutiptilt " + nome + " &')") - def apriccd4(self): if self.linea == 'TIMER': nome = sacco['tmrccd4'].dev_name() @@ -1473,12 +2770,6 @@ class MainWindow(QDialog): nome = sacco['magccd4'].dev_name() eval("os.system('/runtime/bin/gigecam-gui " + nome + " --refresh=200 &')") - def apridalaytotem(self): - os.system('/runtime/bin/motion_controller slu/motor/trls_slu.05 -title SLU_TOTEM_DELAY_LINE &') - - def apricalendario(self): - os.system("python /home/lfo/runtime/panels/bin/slucalendarpanel.py &") - def aprifeedbackconf(self): if self.linea == 'TIMER': nome = sacco['tmrfeedback'].dev_name() @@ -1512,29 +2803,6 @@ class MainWindow(QDialog): elif str(self.feedbackautoonoffreset.text()) == '#####': print('popup resetta server') - def delaytotemgoto(self): - gol = float(self.delaytotemW.text()) - sacco['totem_delay'].write_attribute('Position', gol) - - def delaytotemmeno(self): - tmp = float(self.delaytotemRELstep.text()) - gol = sacco['totem_delay'].position - tmp - sacco['totem_delay'].write_attribute('Position', gol) - - def delaytotempiu(self): - tmp = float(self.delaytotemRELstep.text()) - gol = sacco['totem_delay'].position + tmp - sacco['totem_delay'].write_attribute('Position', gol) - - def apridecimatori(self): - os.system("/runtime/bin/sl-decimators-gui &") - - def apridelaycalc(self): - os.system("/runtime/bin/slu-delay-calculator-gui &") - - def FUNZIONEVUOTA(self): - print('FUNZIONEVUOTA') - def smart_feedback_on(self): if self.linea == 'TIMER': dasitemare1 = sacco['tmrfeedback'] @@ -1599,6 +2867,782 @@ class MainWindow(QDialog): print('fine') + def apridecimatori(self): + os.system("/runtime/bin/sl-decimators-gui &") + + def apriscope6(self): + os.system('/usr/bin/vncviewer scope-laser-06 &') + + def accendidecimatore(self, chi, metodo): + if metodo == 'random': + sacco[chi].command_inout('Start', 0) + elif metodo == 'odd': + BunchNumberStart_new = sacco['frequenza'].BunchNumber + if BunchNumberStart_new % 2 > 0: + BunchNumberStart_new = BunchNumberStart_new + 50 + else: + BunchNumberStart_new = BunchNumberStart_new + 51 + sacco[chi].write_attribute('BunchNumberStart', BunchNumberStart_new) + sacco[chi].command_inout('Start', 1) + elif metodo == 'even': + BunchNumberStart_new = sacco['frequenza'].BunchNumber + if BunchNumberStart_new % 2 > 0: + BunchNumberStart_new = BunchNumberStart_new + 51 + else: + BunchNumberStart_new = BunchNumberStart_new + 50 + sacco[chi].write_attribute('BunchNumberStart', BunchNumberStart_new) + sacco[chi].command_inout('Start', 1) + + def spegnidecimazione(self, chi): + sacco[chi].command_inout('Stop') + if sacco[chi].EnableStaticTriggerShift: + sacco[chi].write_attribute('EnableStaticTriggerShift', 0) + + def decimadelay(self, chi): + tmp = sacco[chi].InfiniteCycle + sacco[chi].write_attribute('StatusMode', 0) + sacco[chi].write_attribute('DelayMode', 1) + sacco[chi].write_attribute('InfiniteCycle', 0) + sacco[chi].write_attribute('InfiniteCycle', 1) + sacco[chi].write_attribute('InfiniteCycle', tmp) + + def decimastatus(self, chi): + tmp = sacco[chi].InfiniteCycle + sacco[chi].write_attribute('DelayMode', 0) + sacco[chi].write_attribute('StatusMode', 1) + sacco[chi].write_attribute('InfiniteCycle', 0) + sacco[chi].write_attribute('InfiniteCycle', 1) + sacco[chi].write_attribute('InfiniteCycle', tmp) + + def decimasequenza(self, chi): + if chi == 'decima1': + cosa = self.deci1sequence_W.text() + elif chi == 'decima2': + cosa = self.deci2sequence_W.text() + elif chi == 'decima3': + cosa = self.deci3sequence_W.text() + try: + frequenza1050 = sacco['frequenza'].BunchNumberFrequency + except: + frequenza1050 = -1 + try: + tmp = str(cosa).replace('[', '').replace(']','') + if sacco[chi].StatusMode and tmp.count('0') > 4: + self.msgBox = QMessageBox() + self.msgBox.setIcon(QMessageBox.Question) + self.msgBox.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel) + self.msgBox.setText("Decimation is too strong, if the frequency of the laser is below " + str(int(frequenza1050/5)) + "Hz thermal effects might degradate beam quality. Are you sure you want to proceed?") + risp = self.msgBox.exec_() + if risp == 1024: + Sequence_new = [int(aa) for aa in tmp.split(',')] + sacco[chi].write_attribute('Sequence', Sequence_new) + else: + return + else: + Sequence_new = [int(aa) for aa in tmp.split(',')] + sacco[chi].write_attribute('Sequence', Sequence_new) + except: + print('error ' + str(cosa)) + + def decimafermatutto(self): + sacco['decima1'].command_inout('Stop') + if sacco['decima1'].EnableStaticTriggerShift: + sacco['decima1'].write_attribute('EnableStaticTriggerShift', 0) + sacco['decima2'].command_inout('Stop') + if sacco['decima2'].EnableStaticTriggerShift: + sacco['decima2'].write_attribute('EnableStaticTriggerShift', 0) + sacco['decima3'].command_inout('Stop') + if sacco['decima3'].EnableStaticTriggerShift: + sacco['decima3'].write_attribute('EnableStaticTriggerShift', 0) + #ripristinodelay + files = os.listdir('/home/lfo/data/salvatutto/SEED_trigger/') + files = ['/home/lfo/data/salvatutto/SEED_trigger/' + aa for aa in files] + ultimo = max(files, key = os.path.getctime) + with open(ultimo) as csvfile: + spamreader = csv.reader(csvfile, delimiter=',') + for row in spamreader: + if 'EVR1 ' in row[0]: + print(row[0].replace('EVR1 ', 'Chan') + 'Delay ' + row[1]) + attribrutto = row[0].replace('EVR1 ', 'Chan') + 'Delay' + valore = round(float(row[1]), 3) + sacco['triggerSL'].write_attribute(attribrutto, valore) + csvfile.close() + + def apridelaycalc(self): + os.system("/runtime/bin/slu-delay-calculator-gui &") + + def apridalaytotem(self): + os.system('/runtime/bin/motion_controller slu/motor/trls_slu.05 -title SLU_TOTEM_DELAY_LINE &') + + def delaytotemgoto(self): + gol = float(self.delaytotemW.text()) + sacco['totem_delay'].write_attribute('Position', gol) + + def delaytotemmeno(self): + tmp = float(self.delaytotemRELstep.text()) + gol = sacco['totem_delay'].position - tmp + sacco['totem_delay'].write_attribute('Position', gol) + + def delaytotempiu(self): + tmp = float(self.delaytotemRELstep.text()) + gol = sacco['totem_delay'].position + tmp + sacco['totem_delay'].write_attribute('Position', gol) + + def apridalay8(self): + os.system('/runtime/bin/xps-gui sl/motor/trls_sl.08 -title SL_SLU_delay_line &') + + def delay8goto(self): + gol = float(self.delay8W.text()) + sacco['trls8_delay'].write_attribute('Position', gol) + + def delay8meno(self): + tmp = float(self.delay8RELstep.text()) + gol = sacco['trls8_delay'].position - tmp + sacco['trls8_delay'].write_attribute('Position', gol) + + def delay8piu(self): + tmp = float(self.delay8RELstep.text()) + gol = sacco['trls8_delay'].position + tmp + sacco['trls8_delay'].write_attribute('Position', gol) + + def apritrg(self): + os.system('/runtime/bin/sl-trigger-gui &') + + def trggoto(self): + gol = float(self.triggermainW.text()) + sacco['triggerSL'].write_attribute('Chan2Delay', gol) + + def trgmeno(self): + tmp = 12.67507 + gol = sacco['triggerSL'].Chan2Delay - tmp + sacco['triggerSL'].write_attribute('Chan2Delay', gol) + + def trgpiu(self): + tmp = 12.67507 + gol = sacco['triggerSL'].Chan2Delay + tmp + sacco['triggerSL'].write_attribute('Chan2Delay', gol) + + def sdggoto(self): + gol = float(self.triggerDGQ1W.text()) + sacco['triggerDGQ1'].write_attribute('Chan2Delay', gol) + + def sdgmeno(self): + tmp = 1.0 + gol = sacco['triggerDGQ1'].Chan2Delay - tmp + sacco['triggerDGQ1'].write_attribute('Chan2Delay', gol) + + def sdgmpiu(self): + tmp = 1.0 + gol = sacco['triggerDGQ1'].Chan2Delay + tmp + sacco['triggerDGQ1'].write_attribute('Chan2Delay', gol) + + def muovidelayslu(self): + delta_t = float(self.delaycalcS.text()) + sacco['trls8_delay'].write_attribute('Speed', 100) + #salvo i valori attuali + self.memoDevrch2 = sacco['triggerSL'].Chan2Delay + self.memoDdgqch2 = sacco['triggerDGQ1'].Chan2Delay + self.memoDtrls8 = sacco['trls8_delay'].position + self.memoDtrls8_ns = self.memoDtrls8/1000 + #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)) + trg_e2_tmp = self.memoDevrch2 + int(delta_t/12.675074466)*12.675074466 #valore tmp, perche potrebbe cambiare di 1 cilclo per via dei traslatori + 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: + 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: + 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: + 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) + 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)) + sacco['triggerSL'].write_attribute('Chan2Delay', self.trg_elite2calc) + sacco['triggerDGQ1'].write_attribute('Chan2Delay', self.trg_S2calc) + sacco['trls8_delay'].write_attribute('Position', self.trls8calc) + + def ripristinamemoD(self): + sacco['triggerSL'].write_attribute('Chan2Delay', self.memoDevrch2) + sacco['triggerDGQ1'].write_attribute('Chan2Delay', self.memoDdgqch2) + sacco['trls8_delay'].write_attribute('Position', self.memoDtrls8) + + def scope6CW(self): + sacco['scope6'].command_inout('ClearSweeps') + + def memoriaTMRr(self): + sacco['trls8_delay'].write_attribute('Position', sacco['costanti'].memo_delay_tmr1) + sacco['triggerSL'].write_attribute('Chan2Delay', sacco['costanti'].memo_delay_tmr2) + sacco['triggerDGQ1'].write_attribute('Chan2Delay', sacco['costanti'].memo_delay_tmr3) + sacco['totem_delay'].write_attribute('Position', sacco['costanti'].memo_delay_tmr4) + + def memoriaTMRw(self): + sacco['costanti'].write_attribute('memo_delay_tmr1', sacco['trls8_delay'].Position) + sacco['costanti'].write_attribute('memo_delay_tmr2', sacco['triggerSL'].Chan2Delay) + sacco['costanti'].write_attribute('memo_delay_tmr3', sacco['triggerDGQ1'].Chan2Delay) + sacco['costanti'].write_attribute('memo_delay_tmr4', sacco['totem_delay'].Position) + + def memoriaTMXr(self): + sacco['trls8_delay'].write_attribute('Position', sacco['costanti'].memo_delay_tmx1) + sacco['triggerSL'].write_attribute('Chan2Delay', sacco['costanti'].memo_delay_tmx2) + sacco['triggerDGQ1'].write_attribute('Chan2Delay', sacco['costanti'].memo_delay_tmx3) + sacco['totem_delay'].write_attribute('Position', sacco['costanti'].memo_delay_tmx4) + + def memoriaTMXw(self): + sacco['costanti'].write_attribute('memo_delay_tmx1', sacco['trls8_delay'].Position) + sacco['costanti'].write_attribute('memo_delay_tmx2', sacco['triggerSL'].Chan2Delay) + sacco['costanti'].write_attribute('memo_delay_tmx3', sacco['triggerDGQ1'].Chan2Delay) + sacco['costanti'].write_attribute('memo_delay_tmx4', sacco['totem_delay'].Position) + + def memoriaDPIr(self): + sacco['trls8_delay'].write_attribute('Position', sacco['costanti'].memo_delay_dpi1) + sacco['triggerSL'].write_attribute('Chan2Delay', sacco['costanti'].memo_delay_dpi2) + sacco['triggerDGQ1'].write_attribute('Chan2Delay', sacco['costanti'].memo_delay_dpi3) + sacco['totem_delay'].write_attribute('Position', sacco['costanti'].memo_delay_dpi4) + + def memoriaDPIw(self): + sacco['costanti'].write_attribute('memo_delay_dpi1', sacco['trls8_delay'].Position) + sacco['costanti'].write_attribute('memo_delay_dpi2', sacco['triggerSL'].Chan2Delay) + sacco['costanti'].write_attribute('memo_delay_dpi3', sacco['triggerDGQ1'].Chan2Delay) + sacco['costanti'].write_attribute('memo_delay_dpi4', sacco['totem_delay'].Position) + + def memoriaLDMr(self): + sacco['trls8_delay'].write_attribute('Position', sacco['costanti'].memo_delay_ldm1) + sacco['triggerSL'].write_attribute('Chan2Delay', sacco['costanti'].memo_delay_ldm2) + sacco['triggerDGQ1'].write_attribute('Chan2Delay', sacco['costanti'].memo_delay_ldm3) + sacco['totem_delay'].write_attribute('Position', sacco['costanti'].memo_delay_ldm4) + + def memoriaLDMw(self): + sacco['costanti'].write_attribute('memo_delay_ldm1', sacco['trls8_delay'].Position) + sacco['costanti'].write_attribute('memo_delay_ldm2', sacco['triggerSL'].Chan2Delay) + sacco['costanti'].write_attribute('memo_delay_ldm3', sacco['triggerDGQ1'].Chan2Delay) + sacco['costanti'].write_attribute('memo_delay_ldm4', sacco['totem_delay'].Position) + + def memoriaMAGr(self): + sacco['trls8_delay'].write_attribute('Position', sacco['costanti'].memo_delay_mag1) + sacco['triggerSL'].write_attribute('Chan2Delay', sacco['costanti'].memo_delay_mag2) + sacco['triggerDGQ1'].write_attribute('Chan2Delay', sacco['costanti'].memo_delay_mag3) + sacco['totem_delay'].write_attribute('Position', sacco['costanti'].memo_delay_mag4) + + def memoriaMAGw(self): + sacco['costanti'].write_attribute('memo_delay_mag1', sacco['trls8_delay'].Position) + sacco['costanti'].write_attribute('memo_delay_mag2', sacco['triggerSL'].Chan2Delay) + sacco['costanti'].write_attribute('memo_delay_mag3', sacco['triggerDGQ1'].Chan2Delay) + sacco['costanti'].write_attribute('memo_delay_mag4', sacco['totem_delay'].Position) + + def funzionesalvatrigger(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 + nomefile = '/home/lfo/data/salvatutto/SEED_trigger/' + str(indice+1) + '.csv' + listaEVR1 = [0, 1, 2, 3, 8, 9, 10, 11, 12, 13] + listaDGQ1 = [1, 2, 3, 4, 5, 6, 7, 8] + listaSDG1 = [1, 2] + listaEVR2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] + listaDGQ2 = [1, 2, 3, 4, 5, 6, 7, 8] + listaSDG2 = [1, 2] + datidasalvare = [] + nomidasalvare = [] + for kkk in range(len(listaEVR1)): + stringattributo = 'Chan' + str(listaEVR1[kkk]) + 'Delay' + tmp = sacco["triggerSL"].read_attribute(stringattributo) + datidasalvare.append(str(tmp.value)) + nomidasalvare.append("EVR1 " + str(kkk)) + if tmp.quality != 'ATTR_VALID': + altro = eval('sacco["triggerSL"].get_attribute_config_ex(stringattributo)') + if altro[0].alarms.min_alarm != str(float(tmp.value) - 1.0): + altro[0].alarms.min_alarm = str(float(tmp.value) - 1.0) + if altro[0].alarms.max_alarm != str(float(tmp.value) + 1.0): + altro[0].alarms.max_alarm = str(float(tmp.value) + 1.0) + sacco["triggerSL"].set_attribute_config(altro) + print(stringattributo + ' ' + str(tmp.quality)) + for kkk in range(len(listaDGQ1)): + stringattributo = 'Chan' + str(listaDGQ1[kkk]) + 'Delay' + tmp = sacco["triggerDGQ1"].read_attribute(stringattributo) + datidasalvare.append(str(tmp.value)) + nomidasalvare.append("DGQ1 " + str(kkk+1)) + if tmp.quality != 'ATTR_VALID': + altro = eval('sacco["triggerDGQ1"].get_attribute_config_ex(stringattributo)') + if altro[0].alarms.min_alarm != str(float(tmp.value) - 1.0): + altro[0].alarms.min_alarm = str(float(tmp.value) - 1.0) + if altro[0].alarms.max_alarm != str(float(tmp.value) + 1.0): + altro[0].alarms.max_alarm = str(float(tmp.value) + 1.0) + sacco["triggerDGQ1"].set_attribute_config(altro) + for kkk in range(len(listaSDG1)): + stringattributo = 'Channel' + str(listaSDG1[kkk]) + 'Delay' + tmp = sacco["triggerSDG1"].read_attribute(stringattributo) + datidasalvare.append(str(tmp.value)) + nomidasalvare.append("SDG1 " + str(kkk+1)) + if tmp.quality != 'ATTR_VALID': + altro = eval('sacco["triggerSDG1"].get_attribute_config_ex(stringattributo)') + if altro[0].alarms.min_alarm != str(float(tmp.value) - 1.0): + altro[0].alarms.min_alarm = str(float(tmp.value) - 1.0) + if altro[0].alarms.max_alarm != str(float(tmp.value) + 1.0): + altro[0].alarms.max_alarm = str(float(tmp.value) + 1.0) + sacco["triggerSDG1"].set_attribute_config(altro) + for kkk in range(len(listaEVR2)): + stringattributo = 'Chan' + str(listaEVR2[kkk]) + 'Delay' + tmp = sacco["triggerSL2"].read_attribute(stringattributo) + datidasalvare.append(str(tmp.value)) + nomidasalvare.append("EVR2 " + str(kkk)) + if tmp.quality != 'ATTR_VALID': + altro = eval('sacco["triggerSL2"].get_attribute_config_ex(stringattributo)') + if altro[0].alarms.min_alarm != str(float(tmp.value) - 1.0): + altro[0].alarms.min_alarm = str(float(tmp.value) - 1.0) + if altro[0].alarms.max_alarm != str(float(tmp.value) + 1.0): + altro[0].alarms.max_alarm = str(float(tmp.value) + 1.0) + sacco["triggerSL2"].set_attribute_config(altro) + for kkk in range(len(listaDGQ2)): + stringattributo = 'Chan' + str(listaDGQ2[kkk]) + 'Delay' + tmp = sacco["triggerDGQ2"].read_attribute(stringattributo) + datidasalvare.append(str(tmp.value)) + nomidasalvare.append("DGQ2 " + str(kkk+1)) + if tmp.quality != 'ATTR_VALID': + altro = eval('sacco["triggerDGQ2"].get_attribute_config_ex(stringattributo)') + if altro[0].alarms.min_alarm != str(float(tmp.value) - 1.0): + altro[0].alarms.min_alarm = str(float(tmp.value) - 1.0) + if altro[0].alarms.max_alarm != str(float(tmp.value) + 1.0): + altro[0].alarms.max_alarm = str(float(tmp.value) + 1.0) + sacco["triggerDGQ2"].set_attribute_config(altro) + for kkk in range(len(listaSDG2)): + stringattributo = 'Channel' + str(listaSDG2[kkk]) + 'Delay' + tmp = sacco["triggerSDG2"].read_attribute(stringattributo) + datidasalvare.append(str(tmp.value)) + nomidasalvare.append("SDG2 " + str(kkk+1)) + if tmp.quality != 'ATTR_VALID': + altro = eval('sacco["triggerSDG2"].get_attribute_config_ex(stringattributo)') + if altro[0].alarms.min_alarm != str(float(tmp.value) - 1.0): + altro[0].alarms.min_alarm = str(float(tmp.value) - 1.0) + if altro[0].alarms.max_alarm != str(float(tmp.value) + 1.0): + altro[0].alarms.max_alarm = str(float(tmp.value) + 1.0) + sacco["triggerSDG2"].set_attribute_config(altro) + with open(nomefile, 'w', newline='') as csvfile: + spamwriter = csv.writer(csvfile) + for ind in range(len(datidasalvare)): + riga = [nomidasalvare[ind], str(datidasalvare[ind])] + spamwriter.writerow(riga) + csvfile.close() +# QMessageBox.warning(None, 'Save SEED trigger', 'file saved: ' + nomefile) + + + def pannello_valvolaUH1(self): + os.system('/runtime/bin/valve uh/vacuum/vlvp_uh.01 -title UH_to_SH_valve_for_1st_pump_"vlvp_uh.01" &') + + def pannello_valvolaUH2(self): + os.system('/runtime/bin/valve uh/vacuum/vlvp_uh.02 -title UH_to_SH_valve_for_2nd_pump_"vlvp_uh.02" &') + + def pannello_valvolaUH3(self): + os.system('/runtime/bin/valve uh/vacuum/vlvp_uh.03 -title UH_to_SH_valve_3rd_pump_"vlvp_uh.03" &') + + def pannello_valvolaSH1(self): + os.system('/runtime/bin/valve sh/vacuum/vlvp_sh.01 -title SH_to_TOTEM_valve_1st_pump_"vlvp_sh.01" &') + + def pannello_valvolaEHF1(self): + os.system('/runtime/bin/valve ehf/vacuum/vlvp_ehf.01 -title SH_to_TOTEM_valve_2nd_pump_"vlvp_ehf.01" &') + + def pannello_valvolaEHF2(self): + os.system('/runtime/bin/valve ehf/vacuum/vlvp_ehf.02 -title TOTEM_to_Beamlines_valve_1st_pump_"vlvp_ehf.02" &') + + def pannello_pompe(self): + os.system('/usr/local/tango-9.3.3/bin/atkpanel srv-tango-srf-01:20000/slu/vacuum/pumps &') + + def pannello_sensore_UTDR(self): + os.system('/runtime/bin/vg srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_utdr.01 -title Vacuum_meter_UTDR_"vgpi_slu_utdr.01" &') + + def pannello_sensore_UH1(self): + os.system('/runtime/bin/vg srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_uh.01 -title Vacuum_meter_UH_to_SH_1st_pump_"vgpi_slu_uh.01" &') + + def pannello_sensore_UH2(self): + os.system('/runtime/bin/vg srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_uh.02 -title Vacuum_meter_UH_to_SH_2nd_pump_"vgpi_slu_uh.02" &') + + def pannello_sensore_UH3(self): + os.system('/runtime/bin/vg srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_uh.03 -title UH_Vacuum_meter_"vgpi_slu_uh.03" &') + + def pannello_sensore_UH4(self): + os.system('/runtime/bin/vg srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_uh.04 -title Vacuum_meter_UH_to_SH_3rd_pump_"vgpi_slu_uh.04" &') + + def pannello_sensore_SH1(self): + os.system('/runtime/bin/vg srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_sh.01 -title Vacuum_meter_SH_to_TOTEM_1st_pump_"vgpi_slu_sh.01" &') + + def pannello_sensore_EHF1(self): + os.system('/runtime/bin/vg srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_ehf.01 -title SH_to_TOTEM_Vacuum_meter_"vgpi_slu_ehf.01" &') + + def pannello_sensore_EHF2(self): + os.system('/runtime/bin/vg srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_ehf.02 -title Vacuum_meter_SH_to_TOTEM_2nd_pump_"vgpi_slu_ehf.02" &') + + def pannello_sensore_EHF3(self): + os.system('/runtime/bin/vg srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_ehf.03 -title TOTEM_to_BL_Vacuum_meter_"vgpi_slu_ehf.03" &') + + def pannello_sensore_EHF4(self): + os.system('/runtime/bin/vg srv-tango-srf-01:20000/slu/vacuum/vgpi_slu_ehf.04 -title Vacuum_meter_TOTEM_to_BL_1st_pump_"vgpi_slu_ehf.04" &') + + def smanette_valvolaUH1(self): + lettura = sacco['valvolaUH1'].command_inout('State') + if str(lettura) == 'CLOSE': + sacco['valvolaUH1'].command_inout('open') + elif str(lettura) == 'OPEN': + sacco['valvolaUH1'].command_inout('close') + + def smanette_valvolaUH2(self): + lettura = sacco['valvolaUH2'].command_inout('State') + if str(lettura) == 'CLOSE': + sacco['valvolaUH2'].command_inout('open') + elif str(lettura) == 'OPEN': + sacco['valvolaUH2'].command_inout('close') + + def smanette_valvolaUH3(self): + lettura = sacco['valvolaUH3'].command_inout('State') + if str(lettura) == 'CLOSE': + sacco['valvolaUH3'].command_inout('open') + elif str(lettura) == 'OPEN': + sacco['valvolaUH3'].command_inout('close') + + def smanette_valvolaSH1(self): + lettura = sacco['valvolaSH1'].command_inout('State') + if str(lettura) == 'CLOSE': + sacco['valvolaSH1'].command_inout('open') + elif str(lettura) == 'OPEN': + sacco['valvolaSH1'].command_inout('close') + + def smanette_valvolaEHF1(self): + lettura = sacco['valvolaEHF1'].command_inout('State') + if str(lettura) == 'CLOSE': + sacco['valvolaEHF1'].command_inout('open') + elif str(lettura) == 'OPEN': + sacco['valvolaEHF1'].command_inout('close') + + def smanette_valvolaEHF2(self): + lettura = sacco['valvolaEHF2'].command_inout('State') + if str(lettura) == 'CLOSE': + sacco['valvolaEHF2'].command_inout('open') + elif str(lettura) == 'OPEN': + sacco['valvolaEHF2'].command_inout('close') + + def smanetta_pompe1(self): + lettura = sacco['pompe'].PMP_UH_01 + if lettura == True: + sacco['pompe'].command_inout('Stop_UH_01') + elif lettura == False: + sacco['pompe'].command_inout('Start_UH_01') + + def smanetta_pompe2(self): + lettura = sacco['pompe'].PMP_UH_02 + if lettura == True: + sacco['pompe'].command_inout('Stop_UH_02') + elif lettura == False: + sacco['pompe'].command_inout('Start_UH_02') + + def smanetta_pompe3(self): + lettura = sacco['pompe'].PMP_UH_03 + if lettura == True: + sacco['pompe'].command_inout('Stop_UH_03') + elif lettura == False: + sacco['pompe'].command_inout('Start_UH_03') + + def smanetta_pompe4(self): + lettura = sacco['pompe'].PMP_SH_01 + if lettura == True: + sacco['pompe'].command_inout('Stop_SH_01') + elif lettura == False: + sacco['pompe'].command_inout('Start_SH_01') + + def smanetta_pompe5(self): + lettura = sacco['pompe'].PMP_EH_01 + if lettura == True: + sacco['pompe'].command_inout('Stop_EH_01') + elif lettura == False: + sacco['pompe'].command_inout('Start_EH_01') + + def smanetta_pompe6(self): + lettura = sacco['pompe'].PMP_EH_02 + if lettura == True: + sacco['pompe'].command_inout('Stop_EH_02') + elif lettura == False: + sacco['pompe'].command_inout('Start_EH_02') + + def cumulativo_UH(self): + sacco['pompe'].command_inout('Start_UH_01') + sacco['pompe'].command_inout('Start_UH_02') + sacco['pompe'].command_inout('Start_UH_03') + sacco['valvolaUH1'].command_inout('open') + sacco['valvolaUH2'].command_inout('open') + sacco['valvolaUH3'].command_inout('open') + + def cumulativo_EH1(self): + sacco['pompe'].command_inout('Start_SH_01') + sacco['pompe'].command_inout('Start_EH_01') + sacco['valvolaSH1'].command_inout('open') + sacco['valvolaEHF1'].command_inout('open') + + def cumulativo_EH2(self): + sacco['pompe'].command_inout('Start_EH_02') + sacco['valvolaEHF2'].command_inout('open') + + def cambiacontestolog(self): + nuovocontesto = str(self.contesto_switch.currentText()) + sacco['archiviatore'].write_attribute('Context', nuovocontesto) + + def ldm_lancia_ccd0(self): + os.system('/runtime/bin/gigecam-gui srv-tango-srf-01:20000/slu/diagnostics/ccd_slu.07 ccd_slu.07_LDM_ccd_slu.07 --calibration --refresh=1000 -title SLU_LDM_ccd_slu.07 &') + + def ldm_lancia_ccd3(self): + os.system('/runtime/bin/gigecam-gui srv-tango-ldm-01:20000/ldm/diagnostics/ccd_ldm.03 ccd_ldm03 --calibration &') + + def ldm_lancia_ccd4(self): + os.system('/runtime/bin/gigecam-gui srv-tango-ldm-01:20000/ldm/diagnostics/ccd_ldm.04 ccd_ldm04 --calibration &') + + def ldm_lancia_ccd6(self): + os.system('/runtime/bin/gigecam-gui srv-tango-ldm-01:20000/ldm/diagnostics/ccd_ldm.06 ccd_ldm06 --calibration &') + + def ldm_lancia_ccd7(self): + os.system('/runtime/bin/gigecam-gui srv-tango-ldm-01:20000/ldm/diagnostics/ccd_ldm.07 ccd_ldm07 --calibration &') + + def ldm_lancia_ccd9(self): + os.system('/runtime/bin/gigecam-gui srv-tango-ldm-01:20000/ldm/diagnostics/ccd_ldm.09 ccd_ldm09 --calibration &') + + def ldm_lancia_em1(self): + os.system('/runtime/bin/gentec_energymeter srv-tango-ldm-01:20000/ldm/energy_meter/ems_slu_ldm.01 &') + + def ldm_configura_em1(self): + sacco['ldm_gentec1'].command_inout('Stop') + sacco['ldm_gentec2'].command_inout('Stop') + os.system('export TANGO_HOST=srv-tango-ldm-01:20000; atkpanel ldm/energy_meter/ems_slu_ldm.01 &') + + def ldm_lancia_em2(self): + os.system('/runtime/bin/gentec_energymeter srv-tango-ldm-01:20000/ldm/energy_meter/ems_slu_ldm.02 &') + + def ldm_configura_em2(self): + sacco['ldm_gentec1'].command_inout('Stop') + sacco['ldm_gentec2'].command_inout('Stop') + os.system('export TANGO_HOST=srv-tango-ldm-01:20000; atkpanel ldm/energy_meter/ems_slu_ldm.02 &') + + def ldm_lancia_spctm1(self): + os.system('/runtime/bin/solar-gui srv-tango-ldm-01:20000/ldm/diagnostics/spctm_178_1100_ldm.01 -title "Spectrum178-1100" &') + + def ldm_lancia_spctm2(self): + os.system('/runtime/bin/solar-gui srv-tango-ldm-01:20000/ldm/diagnostics/spctm_212_385_ldm.02 -title "Spectrum 212-385" &') + + def ldm_lancia_rots(self): + os.system('/runtime/bin/galilaxis-gui srv-tango-ldm-01:20000/ldm/motor/rots_slu_ldm.01 srv-tango-ldm-01:20000/ldm/motor/rots_slu_ldm.02 srv-tango-ldm-01:20000/ldm/motor/rots_slu_ldm.03 -title Rotation_Stages &') + + def ldm_lancia_trls2(self): + os.system('/runtime/bin/galilaxis-gui -e srv-tango-ldm-01:20000/ldm/motor/trls_slu_ldm.02 -title Focus_Translation &') + + def ldm_lancia_kom1(self): + os.system('/runtime/bin/galilaxis-gui srv-tango-ldm-01:20000/ldm/motor/kom_x_slu_ldm.01 srv-tango-ldm-01:20000/ldm/motor/kom_y_slu_ldm.01 -title KOM1_X_Y &') + + def ldm_lancia_kom2(self): + os.system('/runtime/bin/galilaxis-gui srv-tango-ldm-01:20000/ldm/motor/kom_x_slu_ldm.02 srv-tango-ldm-01:20000/ldm/motor/kom_y_slu_ldm.02 -title KOM2_X_Y &') + + def ldm_rots1_applica(self): + gol = float(self.LDM_rots1_w.text()) + sacco['ldm_rots1'].write_attribute('UserPosition', gol) + + def ldm_rots2_applica(self): + gol = float(self.LDM_rots2_w.text()) + sacco['ldm_rots2'].write_attribute('UserPosition', gol) + + def ldm_rots3_applica(self): + gol = float(self.LDM_rots3_w.text()) + sacco['ldm_rots3'].write_attribute('UserPosition', gol) + + def ldm_trls2_applica(self): + gol = float(self.LDM_trls2_w.text()) + sacco['ldm_trls2'].write_attribute('UserPosition', gol) + + def ldm_rots1_rp(self): + gol = sacco['ldm_rots1'].UserPosition + float(self.LDM_rots1_relative.muoviS.text()) + sacco['ldm_rots1'].write_attribute('UserPosition', gol) + + def ldm_rots1_rm(self): + gol = sacco['ldm_rots1'].UserPosition - float(self.LDM_rots1_relative.muoviS.text()) + sacco['ldm_rots1'].write_attribute('UserPosition', gol) + + def ldm_rots2_rp(self): + gol = sacco['ldm_rots2'].UserPosition + float(self.LDM_rots2_relative.muoviS.text()) + sacco['ldm_rots2'].write_attribute('UserPosition', gol) + + def ldm_rots2_rm(self): + gol = sacco['ldm_rots2'].UserPosition - float(self.LDM_rots2_relative.muoviS.text()) + sacco['ldm_rots2'].write_attribute('UserPosition', gol) + + def ldm_rots3_rp(self): + gol = sacco['ldm_rots3'].UserPosition + float(self.LDM_rots3_relative.muoviS.text()) + sacco['ldm_rots3'].write_attribute('UserPosition', gol) + + def ldm_rots3_rm(self): + gol = sacco['ldm_rots3'].UserPosition - float(self.LDM_rots3_relative.muoviS.text()) + sacco['ldm_rots3'].write_attribute('UserPosition', gol) + + def ldm_trls2_rp(self): + gol = sacco['ldm_trls2'].UserPosition + float(self.LDM_trls2_relative.muoviS.text()) + sacco['ldm_trls2'].write_attribute('UserPosition', gol) + + def ldm_trls2_rm(self): + gol = sacco['ldm_trls2'].UserPosition - float(self.LDM_trls2_relative.muoviS.text()) + sacco['ldm_trls2'].write_attribute('UserPosition', gol) + + def ldm_kom1_xp(self): + gol = sacco['ldm_kom1'].Position_X + float(self.LDM_kom1_rel.muoviPASSO.text()) + sacco['ldm_kom1'].write_attribute('Position_X', gol) + + def ldm_kom1_xm(self): + gol = sacco['ldm_kom1'].Position_X - float(self.LDM_kom1_rel.muoviPASSO.text()) + sacco['ldm_kom1'].write_attribute('Position_X', gol) + + def ldm_kom1_yp(self): + gol = sacco['ldm_kom1'].Position_Y + float(self.LDM_kom1_rel.muoviPASSO.text()) + sacco['ldm_kom1'].write_attribute('Position_Y', gol) + + def ldm_kom1_ym(self): + gol = sacco['ldm_kom1'].Position_Y - float(self.LDM_kom1_rel.muoviPASSO.text()) + sacco['ldm_kom1'].write_attribute('Position_Y', gol) + + def ldm_kom2_xp(self): + gol = sacco['ldm_kom2'].Position_X + float(self.LDM_kom2_rel.muoviPASSO.text()) + sacco['ldm_kom2'].write_attribute('Position_X', gol) + + def ldm_kom2_xm(self): + gol = sacco['ldm_kom2'].Position_X - float(self.LDM_kom2_rel.muoviPASSO.text()) + sacco['ldm_kom2'].write_attribute('Position_X', gol) + + def ldm_kom2_yp(self): + gol = sacco['ldm_kom2'].Position_Y + float(self.LDM_kom2_rel.muoviPASSO.text()) + sacco['ldm_kom2'].write_attribute('Position_Y', gol) + + def ldm_kom2_ym(self): + gol = sacco['ldm_kom2'].Position_Y - float(self.LDM_kom2_rel.muoviPASSO.text()) + sacco['ldm_kom2'].write_attribute('Position_Y', gol) + + def provailbeep(self): + print('\007') + print("\a") + + def FUNZIONEVUOTA(self): + print('FUNZIONEVUOTA') + + +class movimentirelativi(QFrame): + def __init__(self): + super(movimentirelativi, self).__init__() + self.muoviM = QPushButton('<') + self.muoviS = QLineEdit() + self.muoviP = QPushButton('>') + ilsuolayout = QHBoxLayout() + ilsuolayout.addWidget(self.muoviM) + ilsuolayout.addWidget(self.muoviS) + ilsuolayout.addWidget(self.muoviP) + self.setLayout(ilsuolayout) + +class movimentiacroce(QFrame): + def __init__(self): + super(movimentiacroce, self).__init__() + self.muoviSU = QPushButton('UP') + self.muoviGIU = QPushButton('DOWN') + self.muoviDX = QPushButton('RIGHT') + self.muoviSX = QPushButton('LEFT') + self.muoviPASSO = QLineEdit() + ilsuolayout = QGridLayout() + ilsuolayout.addWidget(self.muoviSU, 0, 1) + ilsuolayout.addWidget(self.muoviSX, 1, 0) + ilsuolayout.addWidget(self.muoviPASSO, 1, 1) + ilsuolayout.addWidget(self.muoviDX, 1, 2) + ilsuolayout.addWidget(self.muoviGIU, 2, 1) + self.setLayout(ilsuolayout) + +class Riga_allarmi(QFrame): + def __init__(self, stringa): + super(Riga_allarmi, self).__init__() + testo = stringa.replace('Stato','').replace('Numero','') + self.cb = QCheckBox() + self.label = QLabel(testo) + self.low = QLineEdit() + self.low.setReadOnly(1) + self.low.setMaximumWidth(60) + self.high = QLineEdit() + self.high.setReadOnly(1) + self.high.setMaximumWidth(60) + self.change = QPushButton('Change limits') + self.vabene = QPushButton('ack') + ilsuolayout = QHBoxLayout() + ilsuolayout.addWidget(self.cb) + ilsuolayout.addWidget(self.label) + ilsuolayout.addWidget(self.low) + ilsuolayout.addWidget(self.high) + ilsuolayout.addWidget(self.change) + ilsuolayout.addWidget(self.vabene) + self.setLayout(ilsuolayout) + +class transport_fb_element(QFrame): + def __init__(self, stringa, nomeccd, nomett): + super(transport_fb_element, self).__init__() + self.etichetta = QLabel(stringa) + self.tasto_ccd = QPushButton('CCD') + if nomeccd != 'boh': + self.tasto_ccd.clicked.connect(lambda: self.apripannelloccd(nomeccd)) + self.tasto_tip = QPushButton('tiptilt') + self.tasto_tip.clicked.connect(lambda: self.apripannellotiptilt(nomett)) + self.barra_h = QProgressBar() + self.barra_h.setRange(0, 100) + self.barra_h.setValue(0) + self.barra_h.setToolTip('Horizontal') + self.barra_v = QProgressBar() + self.barra_v.setRange(0, 100) + self.barra_v.setValue(0) + self.barra_v.setToolTip('Vertical') + ilsuolayout = QGridLayout() + ilsuolayout.addWidget(self.etichetta, 0, 0, 1, 8) + ilsuolayout.addWidget(self.tasto_ccd, 1, 0, 1, 8) + ilsuolayout.addWidget(self.tasto_tip, 2, 0, 1, 8) + ilsuolayout.addWidget(QLabel('H:'), 3, 0) + ilsuolayout.addWidget(self.barra_h, 3, 1, 1, 3) + ilsuolayout.addWidget(QLabel('V:'), 3, 4) + ilsuolayout.addWidget(self.barra_v, 3, 5, 1, 3) + self.setLayout(ilsuolayout) + + def apripannelloccd(self, ccdnome): + eval("os.system('/runtime/bin/gigecam-gui " + ccdnome + " --refresh=200 &')") + + def apripannellotiptilt(self, ttnome): + eval("os.system('/runtime/bin/slutiptilt " + ttnome + " &')") + + +class QHLine(QFrame): + def __init__(self): + super(QHLine, self).__init__() + self.setFrameShape(QFrame.HLine) + self.setFrameShadow(QFrame.Sunken) + +class QVLine(QFrame): + def __init__(self): + super(QVLine, self).__init__() + self.setFrameShape(QFrame.VLine) + self.setFrameShadow(QFrame.Sunken) + +class LineEditRO(QLineEdit): + def __init__(self): + super(LineEditRO, self).__init__() + self.setReadOnly(1) + self.setStyleSheet("background-color: rgb(200, 200, 200)") +# self.setFont(font_importante) + + + app = QApplication([]) main = MainWindow() app.exec_() -- GitLab