From 13c86a60b3ddb624ca1fde0d0b2c0d76550be463 Mon Sep 17 00:00:00 2001 From: Lorenzo Pivetta <lorenzo.pivetta@elettra.eu> Date: Mon, 18 May 2020 12:49:40 +0200 Subject: [PATCH] Initial import --- .gitignore | 1 + Makefile | 18 + src/slu-delay-calculator.py | 1413 +++++++++++++++++++++++++++++++++++ 3 files changed, 1432 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 src/slu-delay-calculator.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba077a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +bin diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8932bf2 --- /dev/null +++ b/Makefile @@ -0,0 +1,18 @@ +NAME = slu-delay-calculator-gui +MAIN = slu-delay-calculator.py + +DIRNAME = $(NAME:-gui=) +PY_FILES += $(wildcard src/*.py) + +default: bin ${PY_FILES} + @cp ${PY_FILES} bin/${DIRNAME} + @echo "#!/bin/bash\nexec ${DIRNAME}/${MAIN}" > bin/${NAME} + @chmod +x bin/${NAME} bin/${DIRNAME}/${MAIN} + +bin: + @test -d $@ || mkdir -p $@/${DIRNAME} + +clean: + @rm -fr bin/ src/*~ + +.PHONY: clean diff --git a/src/slu-delay-calculator.py b/src/slu-delay-calculator.py new file mode 100644 index 0000000..1d0a069 --- /dev/null +++ b/src/slu-delay-calculator.py @@ -0,0 +1,1413 @@ +#!/usr/bin/python + +import PyTango +import os +import numpy as np +from PyQt4.QtCore import * +from PyQt4.QtGui import * +import time +import sys + +selettore = PyTango.DeviceProxy("sl/laser/calendar_sl.01").activityNum +print(selettore) + + +try: + sistema = sys.argv[1] +except: + sistema = 'slu' + +print(sistema) + +devprodic = {} +devprodic["trls4"] = PyTango.DeviceProxy("sl/motor/trls_sl.04") +devprodic["trls8"] = PyTango.DeviceProxy("sl/motor/trls_sl.08") +devprodic["triggerEVR"] = PyTango.DeviceProxy("ec-sl-slpsr-01/evr/ff100000") +devprodic["triggerSDG1"] = PyTango.DeviceProxy("sl/delay/dgq_slpsr.02") +devprodic["triggerSDG2"] = PyTango.DeviceProxy("sl/delay/dgq_slpsr.01") +devprodic["tmu"] = PyTango.DeviceProxy("sl/timing/tmu_sl.01") +devprodic["minimizzatore_correlazione"] = PyTango.DeviceProxy("f/optimization/optimizer_sldelay_f.01") +devprodic["feedbackelite1"] = PyTango.DeviceProxy("sl/feedback/rtltf_osc.02") + +# imposto subito velocita` 100 per salvare tempo procedura +devprodic["trls8"].write_attribute("Speed", [-100]) +devprodic["trls4"].write_attribute("Speed", [100]) + +zero_Slu = 0 +zero_Fel1 = 0 +zero_Fel2 = 0 +zero_Eos1 = 0 +zero_Eos2 = 0 +trlsEOS2pos = 0 +trlsEOS1pos = 0 +trlsSLUpos = 0 +deltasdg1 = 203806.0 +deltasdg2 = 202949.0 + +####ns12 = 12.675074466 + +#### Fel1 Elite1, Slu Elite 2 +###Fel1 = TRLS4_78MHz + TRLS8 + Trg_E1 +###Slu = TRLS4_78MHz + Trg_E2 + TRLS_Slu +###TRLS4_78MHz = Fel1 - Slu + Fel1 - Trg_E2 + TRLS_Slu +###TRLS8 = Slu - Fel1 - Trg_E1 - Trg_E2 - TRLS_Slu +###Trg_SDG1 +###Trg_SDG2 + +#### Fel2 Elite2, Slu + Eos2 + Eehg Elite1 +###Fel2 = TRLS4_78MHz + Trg_E2 +###Slu = TRLS4_78MHz + TRLS8 + Trg_E1 + TRLS_Slu +###TRLS4_78MHz = Fel2 - Trg_E2 +###TRLS8 = Slu - Fel2 - Trls_Slu + Trg_E2 - Trg_E1 +###Trg_SDG1 +###Trg_SDG2 + +class MainWindow(QDialog): + def __init__(self, parent=None): + super(MainWindow, self).__init__(parent) + #meglio scrivere per chi faccio i conti + self.funzionamento = QLineEdit("No errors") + self.funzionamento.setReadOnly(1) + self.funzionamento.setStyleSheet("background-color: rgb(0, 255, 0)") + #self.funzionamento.setMaximumWidth(40) + self.selezione = QLineEdit("") + self.selezione.setReadOnly(1) + if selettore >= 1 and selettore <= 6: + self.selezione.setText('elite1 x fel, elite2 x slu') + elif selettore >= 7 and selettore <= 11: + self.selezione.setText('elite1 x slu, elite2 x fel') + else: + self.selezione.setText('not possible to decide what to move accordin sl calendar') + self.lanciasalvatrigger = QPushButton("Save Trigger") + self.lanciasalvatrigger.clicked.connect(self.pannellosalvatrigger) + self.gruppodeltat = QGroupBox("Delta t") + self.SLFELdelta_t = QLineEdit("ns") + self.SLFELcalcola = QPushButton("Calculate") + self.SLFELcalcola.clicked.connect(self.calcola1) + self.SLFELcalcola.setToolTip('self.calcola1') + self.SLUdelta_t = QLineEdit("ns") + self.SLUcalcola = QPushButton("Calculate") + self.SLUcalcola.clicked.connect(self.calcola2) + self.SLUcalcola.setToolTip('self.calcola2') + self.figura = QLabel() + pixmap = QPixmap('/home/lfo/devel/fermi/panels/laser/sludelaycalculator/verso_delay_slu.png') + self.figura.setPixmap(pixmap) + lo_delta = QGridLayout() + lo_delta.addWidget(self.figura, 0, 0, 1, 3) + if sistema == 'seed': + lo_delta.addWidget(QLabel("SLFEL delta t"), 1, 0, 1, 1) + lo_delta.addWidget(self.SLFELdelta_t, 1, 1, 1, 1) + lo_delta.addWidget(self.SLFELcalcola, 1, 2, 1, 1) + else: + lo_delta.addWidget(QLabel("SLU delta t"), 1, 0, 1, 1) + lo_delta.addWidget(self.SLUdelta_t, 1, 1, 1, 1) + lo_delta.addWidget(self.SLUcalcola, 1, 2, 1, 1) + self.gruppodeltat.setLayout(lo_delta) + # + self.gruppobottoni = QGroupBox("") + self.apriscope3 = QPushButton('Open scope-laser-03') + self.apriscope3.clicked.connect(self.fapriscope3) + self.apriscope5 = QPushButton('Open scope-laser-05') + self.apriscope5.clicked.connect(self.fapriscope5) + self.apritrigger = QPushButton('Open Seed trigger panel') + self.apritrigger.clicked.connect(self.fapritrigger) + self.aprihdb = QPushButton('Open HDB') + self.aprihdb.clicked.connect(self.faprihdb) + lo_bottoni = QGridLayout() + lo_bottoni.addWidget(self.apriscope3, 0, 0, 1, 3) + lo_bottoni.addWidget(self.apriscope5, 1, 0, 1, 3) + lo_bottoni.addWidget(self.apritrigger, 2, 0, 1, 3) + lo_bottoni.addWidget(self.aprihdb, 3, 0, 1, 3) + self.gruppobottoni.setLayout(lo_bottoni) + # + self.gruppoiniziale = QGroupBox("0 State") + self.trg1_state = QLineEdit("TRG Elite1/SDG1") + self.trg1_state.setMaximumWidth(150) + self.trg1_state.setReadOnly(1) + self.trg2_state = QLineEdit("TRG Elite2/SDG2") + self.trg2_state.setMaximumWidth(150) + self.trg2_state.setReadOnly(1) + self.trls4_state = QPushButton("TRLS4") + self.trls4_state.clicked.connect(self.apritrls4) + self.trls4_state.setMaximumWidth(150) + self.FundAlignment_state = QLineEdit("TMU") + self.FundAlignment_state.setMaximumWidth(150) + self.FundAlignment_state.setReadOnly(1) + self.trls8_state = QPushButton("TRLS8") + self.trls8_state.clicked.connect(self.apritrls8) + self.trls8_state.setMaximumWidth(150) + self.SLFELiniziale = QLineEdit("") + self.SLFELiniziale.setMaximumWidth(150) + self.SLFELiniziale.setReadOnly(1) + self.SLUiniziale = QLineEdit("") + self.SLUiniziale.setMaximumWidth(150) + self.SLUiniziale.setReadOnly(1) + #self.EOSiniziale = QLineEdit("#####") + #self.EOSiniziale.setDisabled(1) + #self.EOSiniziale.setMaximumWidth(150) + #self.EOSiniziale.setReadOnly(1) + self.trls4_iniziale = QLineEdit("") + self.trls4_iniziale.setMaximumWidth(150) + self.trls4_iniziale.setReadOnly(1) + self.trls8_iniziale = QLineEdit("") + self.trls8_iniziale.setMaximumWidth(150) + self.trls8_iniziale.setReadOnly(1) + self.trgM1_iniziale = QLineEdit("") + self.trgM1_iniziale.setMaximumWidth(150) + self.trgM1_iniziale.setReadOnly(1) + self.trgSDG1_iniziale = QLineEdit("") + self.trgSDG1_iniziale.setMaximumWidth(150) + self.trgSDG1_iniziale.setReadOnly(1) + self.trgM2_iniziale = QLineEdit("") + self.trgM2_iniziale.setMaximumWidth(150) + self.trgM2_iniziale.setReadOnly(1) + self.trgSDG2_iniziale = QLineEdit("") + self.trgSDG2_iniziale.setMaximumWidth(150) + self.trgSDG2_iniziale.setReadOnly(1) + self.FundAlignment_iniziale = QLineEdit("") + self.FundAlignment_iniziale.setMaximumWidth(150) + self.FundAlignment_iniziale.setReadOnly(1) + self.ripristina = QPushButton("Restore 0state") + self.ripristina.clicked.connect(self.ripristino) + lo_iniziale = QGridLayout() + lo_iniziale.addWidget(QLabel("delay SLFEL"), 0, 0, 1, 1) + lo_iniziale.addWidget(self.SLFELiniziale, 0, 1, 1, 1) + lo_iniziale.addWidget(QLabel("delay SLU"), 1, 0, 1, 1) + lo_iniziale.addWidget(self.SLUiniziale, 1, 1, 1, 1) + #lo_iniziale.addWidget(QLabel("delay EOS"), 2, 0, 1, 1) + #lo_iniziale.addWidget(self.EOSiniziale, 2, 1, 1, 1) + lo_iniziale.addWidget(self.trls4_state, 4, 0, 1, 1) + lo_iniziale.addWidget(self.trls4_iniziale, 4, 1, 1, 1) + lo_iniziale.addWidget(self.trls8_state, 5, 0, 1, 1) + lo_iniziale.addWidget(self.trls8_iniziale, 5, 1, 1, 1) + lo_iniziale.addWidget(self.trg1_state, 6, 0, 2, 1) + lo_iniziale.addWidget(self.trgM1_iniziale, 6, 1, 1, 1) + lo_iniziale.addWidget(self.trgSDG1_iniziale, 7, 1, 1, 1) + lo_iniziale.addWidget(self.trg2_state, 8, 0, 2, 1) + lo_iniziale.addWidget(self.trgM2_iniziale, 8, 1, 1, 1) + lo_iniziale.addWidget(self.trgSDG2_iniziale, 9, 1, 1, 1) + lo_iniziale.addWidget(self.FundAlignment_state, 10, 0, 1, 1) + lo_iniziale.addWidget(self.FundAlignment_iniziale, 10, 1, 1, 1) + lo_iniziale.addWidget(self.ripristina, 12, 1, 1, 1) + self.gruppoiniziale.setLayout(lo_iniziale) + # + self.gruppolettura = QGroupBox("Present State") + self.SLFELdelay = QLineEdit("") + self.SLFELdelay.setMaximumWidth(150) + self.SLUdelay = QLineEdit("") + self.SLUdelay.setMaximumWidth(150) + #self.EOSdelay = QLineEdit("#####") + #self.EOSdelay.setDisabled(1) + #self.EOSdelay.setMaximumWidth(150) + self.trls4_read = QLineEdit("") + self.trls4_read.setMaximumWidth(150) + self.trls4_speed = QLineEdit("") + self.trls4_speed.setMaximumWidth(150) + self.trls8_read = QLineEdit("") + self.trls8_read.setMaximumWidth(150) + self.trls8_speed = QLineEdit("") + self.trls8_speed.setMaximumWidth(150) + self.trgM1_read = QLineEdit("") + self.trgM1_read.setMaximumWidth(150) + self.trgSDG1_read = QLineEdit("") + self.trgSDG1_read.setMaximumWidth(150) + self.trgM2_read = QLineEdit("") + self.trgM2_read.setMaximumWidth(150) + self.trgSDG2_read = QLineEdit("") + self.trgSDG2_read.setMaximumWidth(150) + self.FundAlignment_read = QLineEdit("") + self.FundAlignment_read.setMaximumWidth(150) + self.minimcorr = QPushButton("Delay") + self.minimcorr.setMaximumWidth(75) + self.minimcorr.clicked.connect(self.switchdelayminimizer) + self.feedbackelite1 = QLineEdit("fb Elite1") + self.feedbackelite1.setMaximumWidth(75) + lo_lettura = QGridLayout() + lo_lettura.addWidget(self.SLFELdelay, 0, 0, 1, 2) + lo_lettura.addWidget(self.SLUdelay, 1, 0, 1, 2) + #lo_lettura.addWidget(self.EOSdelay, 2, 0, 1, 2) + lo_lettura.addWidget(self.trls4_read, 4, 0, 1, 2) + lo_lettura.addWidget(self.trls8_read, 5, 0, 1, 2) + lo_lettura.addWidget(self.trgM1_read, 6, 0, 1, 2) + lo_lettura.addWidget(self.trgSDG1_read, 7, 0, 1, 2) + lo_lettura.addWidget(self.trgM2_read, 8, 0, 1, 2) + lo_lettura.addWidget(self.trgSDG2_read, 9, 0, 1, 2) + lo_lettura.addWidget(self.FundAlignment_read, 10, 0, 1, 2) + lo_lettura.addWidget(self.minimcorr, 11, 0, 1, 1) + lo_lettura.addWidget(self.feedbackelite1, 11, 1, 1, 1) + self.gruppolettura.setLayout(lo_lettura) + # + self.gruppocalcolo = QGroupBox("Calculated Values") + self.SLFELdelay_calcolato = QLineEdit("") + self.SLFELdelay_calcolato.setMaximumWidth(150) + self.SLUdelay_calcolato = QLineEdit("") + self.SLUdelay_calcolato.setMaximumWidth(150) + #self.EOSdelay_calcolato = QLineEdit("#####") + #self.EOSdelay_calcolato.setDisabled(1) + #self.EOSdelay_calcolato.setMaximumWidth(150) + self.trls4_calcolato = QLineEdit("") + self.trls4_calcolato.setMaximumWidth(150) + self.trls8_calcolato = QLineEdit("") + self.trls8_calcolato.setMaximumWidth(150) + self.trgM1_calcolato = QLineEdit("") + self.trgM1_calcolato.setMaximumWidth(150) + self.trgSDG1_calcolato = QLineEdit("") + self.trgSDG1_calcolato.setMaximumWidth(150) + self.trgM2_calcolato = QLineEdit("") + self.trgM2_calcolato.setMaximumWidth(150) + self.trgSDG2_calcolato = QLineEdit("") + self.trgSDG2_calcolato.setMaximumWidth(150) + self.FundAlignment_calcolato = QLineEdit("") + self.FundAlignment_calcolato.setMaximumWidth(150) + self.FundAlignment_calcolato.setToolTip('if red a change of phase is required, it will take few minutes, please be patient') + self.applica = QPushButton("APPLY") + self.applica.clicked.connect(self.disastro) + self.comenondetto = QPushButton("UNDO") + self.comenondetto.clicked.connect(self.doppiodisastro) + lo_calcolo = QGridLayout() + lo_calcolo.addWidget(self.SLFELdelay_calcolato, 0, 0, 1, 1) + lo_calcolo.addWidget(self.SLUdelay_calcolato, 1, 0, 1, 1) + #lo_calcolo.addWidget(self.EOSdelay_calcolato, 2, 0, 1, 1) + lo_calcolo.addWidget(self.trls4_calcolato, 4, 0, 1, 1) + lo_calcolo.addWidget(self.trls8_calcolato, 5, 0, 1, 1) + lo_calcolo.addWidget(self.trgM1_calcolato, 6, 0, 1, 1) + lo_calcolo.addWidget(self.trgSDG1_calcolato, 7, 0, 1, 1) + lo_calcolo.addWidget(self.trgM2_calcolato, 8, 0, 1, 1) + lo_calcolo.addWidget(self.trgSDG2_calcolato, 9, 0, 1, 1) + lo_calcolo.addWidget(self.FundAlignment_calcolato, 10, 0, 1, 1) + lo_calcolo.addWidget(self.applica, 12, 0, 1, 1) + lo_calcolo.addWidget(self.comenondetto, 12, 0, 1, 1) + self.comenondetto.hide() + self.gruppocalcolo.setLayout(lo_calcolo) + # + self.logbox = QListWidget() + self.logbox.setMaximumHeight(50) + #self.logbox.setFont(font_piccolo) + lo_pannello = QGridLayout() + lo_pannello.addWidget(self.funzionamento, 0, 0, 1, 1) + lo_pannello.addWidget(self.selezione, 0, 1, 1, 2) + lo_pannello.addWidget(self.lanciasalvatrigger, 0, 3, 1, 1) + lo_pannello.addWidget(self.gruppodeltat, 1, 0, 1, 3) + lo_pannello.addWidget(self.gruppobottoni, 1, 3, 1, 1) + lo_pannello.addWidget(self.gruppoiniziale, 2, 0, 1, 2) + lo_pannello.addWidget(self.gruppolettura, 2, 2, 1, 1) + lo_pannello.addWidget(self.gruppocalcolo, 2, 3, 1, 1) + lo_pannello.addWidget(self.logbox, 3, 0, 1, 4) + self.setLayout(lo_pannello) + self.show() + self.setWindowTitle("SLU EASY DELAY V3") + #inizializzazione - lettura parametri + try: + self.zero_trls4 = devprodic["trls4"].Position[0] + self.trls4_iniziale.setText(str(round(self.zero_trls4, 3))) + #print(self.zero_trls4) + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls4"]) + ' Position. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + try: + self.zero_trls8 = devprodic["trls8"].Position[0] + self.trls8_iniziale.setText(str(round(self.zero_trls8, 3))) + #print(self.zero_trls8) + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls8"]) + ' Position. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + try: + self.zero_trgSDG2 = devprodic["triggerSDG2"].command_inout('GetDelay', 2)*1000000000 + self.trgSDG2_iniziale.setText(str(round(self.zero_trgSDG2, 1))) + #print(self.zero_trgSDG2) + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerSDG2"]) + ' SDG2Delay. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + try: + self.zero_trgSDG1 = devprodic["triggerSDG1"].command_inout('GetDelay', 2)*1000000000 + self.trgSDG1_iniziale.setText(str(round(self.zero_trgSDG1, 1))) + #print(self.zero_trgSDG1) + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerSDG1"]) + ' SDG1Delay. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + try: + self.zero_trgM2 = devprodic["triggerEVR"].Chan2Delay + self.trgM2_iniziale.setText(str(round(self.zero_trgM2, 1))) + #print(self.zero_trgM2) + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerEVR"]) + ' Chan2Delay. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + try: + self.zero_trgM1 = devprodic["triggerEVR"].Chan1Delay + self.trgM1_iniziale.setText(str(round(self.zero_trgM1, 1))) + #print(self.zero_trgM1) + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerEVR"]) + ' Chan2Delay. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + try: + self.zero_FundAlignment = devprodic["tmu"].PllFundAlignment + self.FundAlignment_iniziale.setText(str(self.zero_FundAlignment)) + if self.zero_FundAlignment == 1: + self.zero_FundAlignment_corretto = 1 + elif self.zero_FundAlignment == -1: + self.zero_FundAlignment_corretto = 0 + else: + tmp = devprodic["tmu"].PllFundPhaseVolt + if tmp > 1: + self.zero_FundAlignment_corretto = 1 + else: + self.zero_FundAlignment_corretto = 0 + #print(self.zero_FundAlignment) + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["tmu"]) + ' PllFundAlignment. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + # inizializzazione calcolo delay totale fel e slu + if (selettore >= 1 and selettore <= 4) or (selettore >= 5 and selettore <= 6): # elite1 x fel, elite2 x slu + self.FEL_tot = self.zero_trls4/1000 + int(self.zero_FundAlignment_corretto)*6.33753723 + self.zero_trls8/1000 + self.zero_trgM1 - zero_Fel1 + self.SLU_tot = self.zero_trls4/1000 + int(self.zero_FundAlignment_corretto)*6.33753723 + self.zero_trgM2 + trlsSLUpos - zero_Slu + #self.EOS_tot = '#####' #self.trls4pos + self.read_values_trg_E2 + trlsEOS1pos - zero_Eos1 + #print(self.zero_FundAlignment_corretto) + elif selettore >= 7 and selettore <= 11: # elite1 x slu, elite2 x fel + self.FEL_tot = self.zero_trls4/1000 + int(self.zero_FundAlignment_corretto)*6.33753723 + self.zero_trgM2 - zero_Fel2 + self.SLU_tot = self.zero_trls4/1000 + int(self.zero_FundAlignment_corretto)*6.33753723 + self.zero_trls8/1000 + self.zero_trgM1 + trlsSLUpos - zero_Slu + #self.EOS_tot = '#####' #self.trls4pos + self.trls8pos + self.read_values_trg_E1 + trlsEOS2pos - zero_Eos2 + #print(self.zero_FundAlignment_corretto) + else: # altro + if selettore < 1 or selettore > 11: + ret = QMessageBox.warning(None, 'UNKNOWN ACTIVITY', 'The calendar for SEED Laser has UNKONWN activity, correct the calendar and launch the program again') + self.FEL_tot = '#####' + self.SLU_tot = '#####' + #self.EOS_tot = '#####' + #print(self.zero_FundAlignment_corretto) + self.SLFELiniziale.setText(str(round(self.FEL_tot, 3)) + ' ns') + self.SLUiniziale.setText(str(round(self.SLU_tot, 3)) + ' ns') + #self.EOSiniziale.setText('#####') + #timer + self.timer = QBasicTimer() + self.timer.start(500, self) + pass + + def timerEvent(self, event): + self.update() + + def closeEvent(self, event): + devprodic["trls8"].write_attribute("Speed", [-1]) + devprodic["trls4"].write_attribute("Speed", [1]) + self.timer.stop() + ret = QMessageBox.warning(None, 'Trigger reference file', 'Do not forget to save the new trigger reference file!') + + def update(self): + ###simulazione### + #self.read_values_trls4_state = "ON" + #self.read_values_trls4_position = -175.5 + #self.read_values_trls8_state = "ON" + #self.read_values_trls8_position = 1099.72 + #self.read_values_trg_state = "ON" + #self.read_values_trg_E1 = 365136 + #self.read_values_trg_E2 = 365819 + #self.read_values_trg_SDG1 = 3757 + #self.read_values_trg_SDG2 = 3027 + #self.locksta = "Locked on CrossCorrelator Signal" + #self.tmu79 = 0.8 + #self.read_values_fbelite1 = "ON" + #self.read_values_corrmin = "ON" + ###letture### + #self.funzionamento.setText('No errors') + #self.funzionamento.setStyleSheet("background-color: rgb(0, 255, 0)") + try: + tmp = devprodic["trls4"].read_attributes(['State', 'Position']) + self.read_values_trls4_state = str(tmp[0].value) + self.read_values_trls4_position = tmp[1].value[0] + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls4"]) + ' State and Position. fix the problem and procede' + self.logbox.insertItem(0, voce) + try: + tmp = devprodic["trls8"].read_attributes(['State', 'Position']) + self.read_values_trls8_state = str(tmp[0].value) + self.read_values_trls8_position = tmp[1].value[0] + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls8"]) + ' State and Position. fix the problem and procede' + self.logbox.insertItem(0, voce) + try: + self.read_values_trg_SDG2 = devprodic["triggerSDG2"].command_inout('GetDelay', 2)*1000000000 + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerSDG2"]) + ' SDG2Delay. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + try: + self.read_values_trg_SDG1 = devprodic["triggerSDG1"].command_inout('GetDelay', 2)*1000000000 + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerSDG1"]) + ' SDG1Delay. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + try: + tmp = devprodic["triggerEVR"].read_attributes(['State', 'Chan1Delay', 'Chan2Delay']) + self.read_values_trg_state = str(tmp[0].value) + self.read_values_trg_E1 = tmp[1].value + self.read_values_trg_E2 = tmp[2].value + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerEVR"]) + ' State, Chan1Delay, Chan2Delay. fix the problem and procede' + self.logbox.insertItem(0, voce) + try: + tmp = devprodic["tmu"].read_attributes(['LockStatus', 'PllFundAlignment']) + self.read_values_locksta = tmp[0].value + self.read_values_FundAlignment = tmp[1].value + if self.read_values_FundAlignment == 1: + self.read_values_FundAlignment_corretto = 1 + elif self.read_values_FundAlignment == -1: + self.read_values_FundAlignment_corretto = 0 + else: + tmp = devprodic["tmu"].PllFundPhaseVolt + if tmp > 1: + self.read_values_FundAlignment_corretto = 1 + else: + self.read_values_FundAlignment_corretto = 0 + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["tmu"]) + ' LockStatus, PllFundAlignment. fix the problem and procede' + self.logbox.insertItem(0, voce) + try: + self.read_values_fbelite1 = str(devprodic["feedbackelite1"].command_inout('State')) + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["feedbackelite1"]) + ' State. fix the problem and procede' + self.logbox.insertItem(0, voce) + try: + self.read_values_corrmin = str(devprodic["minimizzatore_correlazione"].command_inout('State')) + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["minimizzatore_correlazione"]) + ' State. fix the problem and procede' + self.logbox.insertItem(0, voce) + ##calcolo delay cumulativi### + self.trls4pos = self.read_values_trls4_position/1000 + int(self.read_values_FundAlignment_corretto)*6.33753723 + self.trls8pos = self.read_values_trls8_position/1000 + if (selettore >= 1 and selettore <= 4) or (selettore >= 5 and selettore <= 6): # elite1 x fel, elite2 x slu + self.FEL_tot = self.trls4pos + self.trls8pos + self.read_values_trg_E1 - zero_Fel1 + self.SLU_tot = self.trls4pos + self.read_values_trg_E2 + trlsSLUpos - zero_Slu + #self.EOS_tot = '#####' #self.trls4pos + self.read_values_trg_E2 + trlsEOS1pos - zero_Eos1 + elif selettore >= 7 and selettore <= 11: # elite1 x slu, elite2 x fel + self.FEL_tot = self.trls4pos + self.read_values_trg_E2 - zero_Fel2 + self.SLU_tot = self.trls4pos + self.trls8pos + self.read_values_trg_E1 + trlsSLUpos - zero_Slu + #self.EOS_tot = '#####' #self.trls4pos + self.trls8pos + self.read_values_trg_E1 + trlsEOS2pos - zero_Eos2 + else: # altro + self.FEL_tot = '#####' + self.SLU_tot = '#####' + #self.EOS_tot = '#####' + ###aggiornamento pannello### + if self.read_values_trls4_state == "ON" or self.read_values_trls4_state == "RUNNING": + self.trls4_state.setStyleSheet("background-color: rgb(0, 255, 0)") + elif self.read_values_trls4_state == "MOVING": + self.trls4_state.setStyleSheet("background-color: rgb(0, 0, 255)") + elif self.read_values_trls4_state == "FAULT" or self.read_values_trls4_state == "ALARM": + self.trls4_state.setStyleSheet("background-color: rgb(255, 0, 0)") + else: + self.trls4_state.setStyleSheet("background-color: rgb(150, 150, 150)") + if self.read_values_trls8_state == "ON" or self.read_values_trls8_state == "RUNNING": + self.trls8_state.setStyleSheet("background-color: rgb(0, 255, 0)") + elif self.read_values_trls8_state == "MOVING": + self.trls8_state.setStyleSheet("background-color: rgb(0, 0, 255)") + elif self.read_values_trls8_state == "FAULT" or self.read_values_trls8_state == "ALARM": + self.trls8_state.setStyleSheet("background-color: rgb(255, 0, 0)") + else: + self.trls8_state.setStyleSheet("background-color: rgb(150, 150, 150)") + if self.read_values_trg_state == "ON" or self.read_values_trg_state == "RUNNING": + self.trg1_state.setStyleSheet("background-color: rgb(0, 255, 0)") + self.trg2_state.setStyleSheet("background-color: rgb(0, 255, 0)") + elif self.read_values_trg_state == "MOVING": + self.trg1_state.setStyleSheet("background-color: rgb(0, 0, 255)") + self.trg2_state.setStyleSheet("background-color: rgb(0, 0, 255)") + elif self.read_values_trg_state == "FAULT" or self.read_values_trg_state == "ALARM": + self.trg1_state.setStyleSheet("background-color: rgb(255, 0, 0)") + self.trg2_state.setStyleSheet("background-color: rgb(255, 0, 0)") + else: + self.trg1_state.setStyleSheet("background-color: rgb(150, 150, 150)") + self.trg2_state.setStyleSheet("background-color: rgb(150, 150, 150)") + if self.read_values_corrmin == "ON": + self.minimcorr.setStyleSheet("background-color: rgb(0, 255, 0)") + self.minimcorr.setText('Delay:ON') + elif self.read_values_corrmin == "RUNNING": + self.minimcorr.setStyleSheet("background-color: rgb(0, 0, 255)") + self.minimcorr.setText('Delay:RUNNING') + elif self.read_values_corrmin == "MOVING": + self.minimcorr.setStyleSheet("background-color: rgb(0, 0, 255)") + self.minimcorr.setText('Delay:MOVING') + elif self.read_values_corrmin == "FAULT": + self.minimcorr.setStyleSheet("background-color: rgb(255, 0, 0)") + self.minimcorr.setText('Delay:FAULT') + elif self.read_values_corrmin == "ALARM": + self.minimcorr.setStyleSheet("background-color: rgb(255, 255, 0)") + self.minimcorr.setText('Delay:ALARM') + elif self.read_values_corrmin == "OFF": + self.minimcorr.setStyleSheet("background-color: rgb(255, 255, 255)") + self.minimcorr.setText('Delay:OFF') + else: + self.minimcorr.setStyleSheet("background-color: rgb(150, 150, 150)") + self.minimcorr.setText('Delay:???') + if self.read_values_fbelite1 == "ON" or self.read_values_fbelite1 == "RUNNING": + self.feedbackelite1.setStyleSheet("background-color: rgb(0, 255, 0)") + elif self.read_values_fbelite1 == "MOVING": + self.feedbackelite1.setStyleSheet("background-color: rgb(0, 0, 255)") + elif self.read_values_fbelite1 == "FAULT" or self.read_values_fbelite1 == "ALARM": + self.feedbackelite1.setStyleSheet("background-color: rgb(255, 0, 0)") + else: + self.feedbackelite1.setStyleSheet("background-color: rgb(150, 150, 150)") + if self.read_values_locksta == "Locked on Cross Correlator Signal": + self.FundAlignment_state.setStyleSheet("background-color: rgb(0, 255, 0)") + else: + self.FundAlignment_state.setStyleSheet("background-color: rgb(255, 0, 0)") + self.trls4_read.setText(str(round(self.read_values_trls4_position, 3)) + " ps") + self.trls8_read.setText(str(round(self.read_values_trls8_position, 3)) + " ps") + self.trgM1_read.setText(str(round(self.read_values_trg_E1, 3)) + " ns") + self.trgM2_read.setText(str(round(self.read_values_trg_E2, 3)) + " ns") + self.trgSDG1_read.setText(str(round(self.read_values_trg_SDG1, 3)) + " ns") + self.trgSDG2_read.setText(str(round(self.read_values_trg_SDG2, 3)) + " ns") + self.FundAlignment_read.setText(str(self.read_values_FundAlignment)) + self.SLFELdelay.setText(str(round(self.FEL_tot, 3)) + ' ns') + self.SLUdelay.setText(str(round(self.SLU_tot, 3)) + ' ns') + #self.EOSdelay.setText('#####') + pass + + def calcola1(self): # muovi SLFEL + print('>>>> SLFEL >>>>') + ###verifica validita input### + test = str(self.SLFELdelta_t.text().replace(',','.').replace('.','').replace(' ','').replace('ns','').replace('-','')) + if test.isdigit(): #verifico se input corretto + delta_t = float(self.SLFELdelta_t.text().replace(',','.').replace(' ','').replace('ns','')) + print('richiesta ' + str(delta_t)) + else: + print('SL delay not a number') + return + ###calcolo### + if (selettore >= 1 and selettore <= 4) or (selettore >= 5 and selettore <= 6): # elite1 x fel, elite2 x slu + print('elite1 x fel, elite2 x slu') + # divido delta_t in trg e resto + resto = (delta_t/12.675074466 - int(delta_t/12.675074466))*12.675074466 #ns, avanzo da dare in pasto ai traslatori + trg_e1_tmp = self.read_values_trg_E1 + int(delta_t/12.675074466)*12.675074466 #valore tmp, perche potrebbe cambiare di 1 cilclo per via dei traslatori + # valuto corsa disponibile sulla slitta, se delta_t oltre i limiti agisco ancora sul trigger + if self.trls8pos + resto >= -6.6 and self.trls8pos + resto <= 6.6: + print("caso 1: entro i limiti") + self.trls8calc = self.trls8pos + resto + self.trg_elite1calc = trg_e1_tmp + elif self.trls8pos + resto < -6.6: + print("caso 2: sotto i limiti") + self.trls8calc = self.trls8pos + resto + 12.675074466 + self.trg_elite1calc = trg_e1_tmp - 12.675074466 + elif self.trls8pos + resto > 6.6: + print("caso 3: sopra i limiti") + self.trls8calc = self.trls8pos + resto - 12.675074466 + self.trg_elite1calc = trg_e1_tmp + 12.675074466 + self.trg_elite2calc = self.read_values_trg_E2 + self.trls4calc = self.trls4pos + # ricalcolo i delay per controllo + self.slfelcal = self.trls4calc + self.trls8calc + self.trg_elite1calc - zero_Fel1 + self.slucal = self.trls4calc + self.trg_elite2calc + trlsSLUpos - zero_Slu + # valuto spostamento SDG + discriminante_ampli1 = int(3.3 + self.trls4calc + 6.6 + self.trls8calc) + print('discriminante_ampli1 = int(3.3 + ' + str(self.trls4calc) + ' + 6.6 + ' + str(self.trls8calc) + ') = ' + str(discriminante_ampli1)) + discriminante_ampli2 = int(3.3 + self.trls4calc) + print('discriminante_ampli1 = int(3.3 + ' + str(self.trls4calc) + ') = ' + str(discriminante_ampli2)) + self.trg_SDG1calc = deltasdg1 + discriminante_ampli1 + self.trg_SDG2calc = deltasdg2 + discriminante_ampli2 + elif selettore >= 7 and selettore <= 11: # elite1 x slu, elite2 x fel + print('elite1 x slu, elite2 x fel') + resto = (delta_t/12.675074466 - int(delta_t/12.675074466))*12.675074466 #ns, avanzo da dare in pasto ai traslatori + trg_e2_tmp = self.read_values_trg_E2 + int(delta_t/12.675074466)*12.675074466#valore tmp, perche potrebbe cambiare di 1 cilclo per via dei traslatori + # valuto corsa disponibile sulla slitta, se delta_t oltre i limiti agisco ancora sul trigger + if self.trls4pos + resto >= -3.168768615 and self.trls4pos + resto <= 9.6: + print("caso 1: trls4 entro i limiti") + self.trls4calc = self.trls4pos + resto + self.trls8calc = self.trls8pos + (self.trls4pos - self.trls4calc) + self.trg_elite2calc = trg_e2_tmp + self.trg_elite1calc = self.read_values_trg_E1 + elif self.trls4pos + resto < -3.168768615: + print("caso 2: trls4 sotto i limiti") + self.trls4calc = self.trls4pos + resto + 12.675074466 + self.trls8calc = self.trls8pos + (self.trls4pos - self.trls4calc) + self.trg_elite2calc = trg_e2_tmp - 12.675074466 + self.trg_elite1calc = self.read_values_trg_E1 + elif self.trls8pos + resto > 9.6: + print("caso 3: trls4 sopra i limiti") + self.trls4calc = self.trls4pos + resto - 12.675074466 + self.trls8calc = self.trls8pos + (self.trls4pos - self.trls4calc) + self.trg_elite2calc = trg_e2_tmp + 12.675074466 + self.trg_elite1calc = self.read_values_trg_E1 + if self.trls8calc >= -6.6 and self.trls8calc <= 6.6: + print("caso 1: trls8 entro i limiti") + self.trls8calc = self.trls8calc + elif self.trls8calc < -6.6: + print("caso 2: trls8 sotto i limiti") + self.trls8calc = self.trls8calc + 12.675074466 + self.trg_elite1calc = self.trg_elite1calc - 12.675074466 + elif self.trls8calc > 6.6: + print("caso 3: trls8 sopra i limiti") + self.trls8calc = self.trls8calc - 12.675074466 + self.trg_elite1calc = self.trg_elite1calc + 12.675074466 + # ricalcolo i delay per controllo + self.slfelcal = self.trls4calc + self.trg_elite2calc - zero_Fel2 + self.slucal = self.trls4calc + self.trls8calc + self.trg_elite1calc + trlsSLUpos - zero_Slu + # valuto spostamento SDG + discriminante_ampli1 = int(3.3 + self.trls4calc + 6.6 + self.trls8calc) + print('discriminante_ampli1 = int(3.3 + ' + str(self.trls4calc) + ' + 6.6 + ' + str(self.trls8calc) + ') = ' + str(discriminante_ampli1)) + discriminante_ampli2 = int(3.3 + self.trls4calc) + print('discriminante_ampli1 = int(3.3 + ' + str(self.trls4calc) + ') = ' + str(discriminante_ampli2)) + self.trg_SDG1calc = deltasdg1 + discriminante_ampli1 + self.trg_SDG2calc = deltasdg2 + discriminante_ampli2 + else: # altro + print('no') + self.slfelcal = 'ERROR' + self.slucal = 'ERROR' + self.trls4calc = 'ERROR' + self.trls8calc = 'ERROR' + self.trg_elite1calc = 'ERROR' + self.trg_elite2calc = 'ERROR' + self.trg_SDG1calc = 'ERROR' + self.trg_SDG2calc = 'ERROR' + ###aggiornamento pannello### + self.SLFELdelay_calcolato.setText(str(round(self.slfelcal, 3)) + ' ns') + self.SLUdelay_calcolato.setText(str(round(self.slucal, 3)) + ' ns') + self.trls4_calcolato.setText(str(round(self.trls4calc*1000, 3)) + ' ps') + self.trls8_calcolato.setText(str(round(self.trls8calc*1000, 3)) + ' ps') + self.trgM1_calcolato.setText(str(round(self.trg_elite1calc, 3)) + ' ns') + self.trgM2_calcolato.setText(str(round(self.trg_elite2calc, 3)) + ' ns') + self.trgSDG1_calcolato.setText(str(round(self.trg_SDG1calc, 3)) + ' ns') + self.trgSDG2_calcolato.setText(str(round(self.trg_SDG2calc, 3)) + ' ns') + if self.trls4calc > 3.168768615 and self.tmu79 >= 1: + self.trls4_calcolato.setText(str(round((self.trls4calc - int(self.tmu79)*6.33753723)*1000, 3)) + ' ps') + self.fase79_calcolato.setStyleSheet("background-color: rgb(0, 255, 0)") + self.fase79_calcolato.setText(' > 1 ') + self.fase79_shift = False + elif self.trls4calc > 3.168768615 and self.tmu79 <= 1: + self.trls4_calcolato.setText(str(round((self.trls4calc - int(self.tmu79)*6.33753723)*1000, 3)) + ' ps') + self.fase79_calcolato.setStyleSheet("background-color: rgb(255, 0, 0)") + self.fase79_calcolato.setText(' > 1 ') + self.fase79_shift = True + elif self.trls4calc < 3.168768615 and self.tmu79 >= 1: + self.fase79_calcolato.setStyleSheet("background-color: rgb(255, 0, 0)") + self.fase79_calcolato.setText(' < 1 ') + self.fase79_shift = True + elif self.trls4calc < 3.168768615 and self.tmu79 <= 1: + self.fase79_calcolato.setStyleSheet("background-color: rgb(0, 255, 0)") + self.fase79_calcolato.setText(' < 1 ') + self.fase79_shift = False + else: + self.fase79_calcolato.setStyleSheet("background-color: rgb(180, 180, 180)") + self.fase79_calcolato.setText('####') + self.fase79_shift = False + self.applica.show() + self.comenondetto.hide() + + def calcola2(self): # muovi SLU + print('>>>> SLU >>>>') + ###verifica validita input### + test = str(self.SLUdelta_t.text().replace(',','.').replace('.','').replace(' ','').replace('ns','').replace('-','')) + if test.isdigit(): #verifico se input corretto + delta_t = float(self.SLUdelta_t.text().replace(',','.').replace(' ','').replace('ns','')) + print('richiesta ' + str(delta_t)) + else: + print('SLU delay not a number') + return + ###calcolo### + if (selettore >= 1 and selettore <= 4) or (selettore >= 5 and selettore <= 6): # elite1 x fel, elite2 x slu + print('elite1 x fel, elite2 x slu') + resto = (delta_t/12.675074466 - int(delta_t/12.675074466))*12.675074466 #ns, avanzo da dare in pasto ai traslatori + trg_e2_tmp = self.read_values_trg_E2 + int(delta_t/12.675074466)*12.675074466 #valore tmp, perche potrebbe cambiare di 1 cilclo per via dei traslatori + # valuto corsa disponibile sulla slitta, se delta_t oltre i limiti agisco ancora sul trigger + if self.trls4pos + resto >= -3.168768615 and self.trls4pos + resto <= 9.6: + print("caso 1: trls4 entro i limiti") + self.trls4calc = self.trls4pos + resto + self.trls8calc = self.trls8pos + (self.trls4pos - self.trls4calc) + self.trg_elite2calc = trg_e2_tmp + self.trg_elite1calc = self.read_values_trg_E1 + elif self.trls4pos + resto < -3.168768615: + print("caso 2: trls4 sotto i limiti") + self.trls4calc = self.trls4pos + resto + 12.675074466 + self.trls8calc = self.trls8pos + (self.trls4pos - self.trls4calc) + self.trg_elite2calc = trg_e2_tmp - 12.675074466 + self.trg_elite1calc = self.read_values_trg_E1 + elif self.trls4pos + resto > 9.6: + print("caso 3: trls4 sopra i limiti") + self.trls4calc = self.trls4pos + resto - 12.675074466 + self.trls8calc = self.trls8pos + (self.trls4pos - self.trls4calc) + self.trg_elite2calc = trg_e2_tmp + 12.675074466 + self.trg_elite1calc = self.read_values_trg_E1 + if self.trls8calc >= -6.6 and self.trls8calc <= 6.6: + print("caso 1: trls8 entro i limiti") + self.trls8calc = self.trls8calc + elif self.trls8calc < -6.6: + print("caso 2: trls8 sotto i limiti") + self.trls8calc = self.trls8calc + 12.675074466 + self.trg_elite1calc = self.trg_elite1calc - 12.675074466 + elif self.trls8calc > 6.6: + print("caso 3: trls8 sopra i limiti") + self.trls8calc = self.trls8calc - 12.675074466 + self.trg_elite1calc = self.trg_elite1calc + 12.675074466 + # ricalcolo i delay per controllo + self.slfelcal = self.trls4calc + self.trls8calc + self.trg_elite1calc - zero_Fel1 + self.slucal = self.trls4calc + self.trg_elite2calc + trlsSLUpos - zero_Slu + # valuto spostamento SDG + discriminante_ampli1 = int(3.3 + self.trls4calc + 6.6 + self.trls8calc) + print('discriminante_ampli1 = int(3.3 + ' + str(self.trls4calc) + ' + 6.6 + ' + str(self.trls8calc) + ') = ' + str(discriminante_ampli1)) + discriminante_ampli2 = int(3.3 + self.trls4calc) + print('discriminante_ampli1 = int(3.3 + ' + str(self.trls4calc) + ') = ' + str(discriminante_ampli2)) + self.trg_SDG1calc = deltasdg1 + discriminante_ampli1 + self.trg_SDG2calc = deltasdg2 + discriminante_ampli2 + elif selettore >= 7 and selettore <= 11: # elite1 x slu, elite2 x fel + print('elite1 x slu, elite2 x fel') + resto = (delta_t/12.675074466 - int(delta_t/12.675074466))*12.675074466 #ns, avanzo da dare in pasto ai traslatori + trg_e1_tmp = self.read_values_trg_E1 + int(delta_t/12.675074466)*12.675074466 #valore tmp, perche potrebbe cambiare di 1 cilclo per via dei traslatori + # valuto corsa disponibile sulla slitta, se delta_t oltre i limiti agisco ancora sul trigger + if self.trls8pos + resto >= -6.6 and self.trls8pos + resto <= 6.6: + self.trls8calc = self.trls8pos + resto + print("caso 1: trls8 entro i limiti") + self.trg_elite1calc = trg_e1_tmp + elif self.trls8pos + resto < -6.6: + print("caso 2: trls8 sotto i limiti") + self.trls8calc = self.trls8pos + resto + 12.675074466 + self.trg_elite1calc = trg_e1_tmp - 12.675074466 + elif self.trls8pos + resto > 6.6: + print("caso 3: trls8 sopra i limiti") + self.trls8calc = self.trls8pos + resto - 12.675074466 + self.trg_elite1calc = trg_e1_tmp + 12.675074466 + self.trg_elite2calc = self.read_values_trg_E2 + self.trls4calc = self.trls4pos + # ricalcolo i delay per controllo + self.slfelcal = self.trls4calc + self.trg_elite2calc - zero_Fel2 + self.slucal = self.trls4calc + self.trls8calc + self.trg_elite1calc + trlsSLUpos - zero_Slu + # valuto spostamento SDG + discriminante_ampli1 = int(3.3 + self.trls4calc + 6.6 + self.trls8calc) + print('discriminante_ampli1 = int(3.3 + ' + str(self.trls4calc) + ' + 6.6 + ' + str(self.trls8calc) + ') = ' + str(discriminante_ampli1)) + discriminante_ampli2 = int(3.3 + self.trls4calc) + print('discriminante_ampli1 = int(3.3 + ' + str(self.trls4calc) + ') = ' + str(discriminante_ampli2)) + self.trg_SDG1calc = deltasdg1 + discriminante_ampli1 + self.trg_SDG2calc = deltasdg2 + discriminante_ampli2 + else: # altro + print('no') + self.slfelcal = 'ERROR' + self.slucal = 'ERROR' + self.trls4calc = 'ERROR' + self.trls8calc = 'ERROR' + self.trg_elite1calc = 'ERROR' + self.trg_elite2calc = 'ERROR' + self.trg_SDG1calc = 'ERROR' + self.trg_SDG2calc = 'ERROR' + # popolo il pannello di numeri + self.SLFELdelay_calcolato.setText(str(round(self.slfelcal, 3)) + ' ns') + self.SLUdelay_calcolato.setText(str(round(self.slucal, 3)) + ' ns') + self.trls4_calcolato.setText(str(round(self.trls4calc*1000, 3)) + ' ps') + self.trls8_calcolato.setText(str(round(self.trls8calc*1000, 3)) + ' ps') + self.trgM1_calcolato.setText(str(round(self.trg_elite1calc, 3)) + ' ns') + self.trgM2_calcolato.setText(str(round(self.trg_elite2calc, 3)) + ' ns') + self.trgSDG1_calcolato.setText(str(round(self.trg_SDG1calc, 3)) + ' ns') + self.trgSDG2_calcolato.setText(str(round(self.trg_SDG2calc, 3)) + ' ns') + if self.trls4calc > 3.168768615 and self.read_values_FundAlignment_corretto == 1: + self.trls4calc = self.trls4calc - 6.33753723 + self.FundAlignment_calc = 1 + self.trls4_calcolato.setText(str(round(self.trls4calc*1000, 3)) + ' ps') + self.FundAlignment_calcolato.setStyleSheet("background-color: rgb(0, 255, 0)") + self.FundAlignment_calcolato.setText(str(self.FundAlignment_calc)) + self.FundAlignment_shift = False + elif self.trls4calc > 3.168768615 and self.read_values_FundAlignment_corretto == 0: + self.trls4calc = self.trls4calc - 6.33753723 + self.FundAlignment_calc = 1 + self.trls4_calcolato.setText(str(round(self.trls4calc*1000, 3)) + ' ps') + self.FundAlignment_calcolato.setStyleSheet("background-color: rgb(255, 0, 0)") + self.FundAlignment_calcolato.setText(str(self.FundAlignment_calc)) + self.FundAlignment_shift = True + elif self.trls4calc < 3.168768615 and self.read_values_FundAlignment_corretto == 1: + self.FundAlignment_calc = -1 + self.FundAlignment_calcolato.setStyleSheet("background-color: rgb(255, 0, 0)") + self.FundAlignment_calcolato.setText(str(self.FundAlignment_calc)) + self.FundAlignment_shift = True + elif self.trls4calc < 3.168768615 and self.read_values_FundAlignment_corretto == 0: + self.FundAlignment_calc = -1 + self.FundAlignment_calcolato.setStyleSheet("background-color: rgb(0, 255, 0)") + self.FundAlignment_calcolato.setText(str(self.FundAlignment_calc)) + self.FundAlignment_shift = False + else: + self.FundAlignment_calcolato.setStyleSheet("background-color: rgb(180, 180, 180)") + self.FundAlignment_calcolato.setText('####') + self.FundAlignment_shift = False + if self.trls4calc*1000 < -3300 or self.trls4calc*1000 > 3300: + self.trls4_calcolato.setStyleSheet("background-color: rgb(255, 0, 0)") + else: + self.trls4_calcolato.setStyleSheet("background-color: rgb(255, 255, 255)") + if self.trls8calc*1000 < -6600 or self.trls8calc*1000 > 6600: + self.trls8_calcolato.setStyleSheet("background-color: rgb(255, 0, 0)") + else: + self.trls8_calcolato.setStyleSheet("background-color: rgb(255, 255, 255)") + self.applica.show() + self.comenondetto.hide() + + def disastro(self): + print('salvo stato') + procedi = True + self.comandifalliti = 0 + ###salvo vecchi valori### + try: + self.trls4_old = devprodic["trls4"].Position[0] + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls4"]) + ' Position. The script will not chage any value. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + procedi = False + try: + self.trls8_old = devprodic["trls8"].Position[0] + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["trls8"]) + ' Position. The script will not chage any value. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + procedi = False + try: + self.trgM1_old = devprodic["triggerEVR"].Chan1Delay + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerEVR"]) + ' Chan1Delay. The script will not chage any value. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + procedi = False + try: + self.trgM2_old = devprodic["triggerEVR"].Chan2Delay + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerEVR"]) + ' Chan2Delay. The script will not chage any value. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + procedi = False + try: + self.trgSDG1_old = devprodic["triggerSDG1"].command_inout('GetDelay', 2)*1000000000 + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerSDG1"]) + ' SDG1Delay. The script will not chage any value. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + procedi = False + try: + self.trgSDG2_old = devprodic["triggerSDG2"].command_inout('GetDelay', 2)*1000000000 + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["triggerSDG2"]) + ' SDG2Delay. The script will not chage any value. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + procedi = False + try: + self.FundAlignment_old = devprodic["tmu"].PllFundAlignment + except: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + voce = time.ctime()[11:19] + ' Error reading ' + str(devprodic["tmu"]) + ' PllFundAlignment. The script will not chage any value. check with atomic panel and launch this program again' + self.logbox.insertItem(0, voce) + procedi = False + if procedi == True: + print('applico valori') +# print("trls4" + ' ' + "Speed" + ' ' + str([100])) +# try: +# devprodic["trls4"].write_attribute("Speed", [100]) +# except: +# voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls4"]) + ' while write_attribute("Speed", [100])' +# self.logbox.insertItem(0, voce) +# self.comandifalliti = 1 +# print("trls8" + ' ' + "Speed" + ' ' + str([-100])) +# try: +# devprodic["trls8"].write_attribute("Speed", [-100]) +# except: +# voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls8"]) + ' while write_attribute("Speed", [-100])' +# self.logbox.insertItem(0, voce) +# self.comandifalliti = 1 + if self.FundAlignment_shift and self.FundAlignment_calc >= 1: + print('FundAlignment ' + str(self.FundAlignment_calc)) + print("tmu" + ' ' + "PllFundAlignment" + ' ' + str(1)) + try: + devprodic["tmu"].write_attribute("PllFundAlignment", 1) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while write_attribute("PllFundAlignment", 1)' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + self.faseperallarmi = 1.5 + try: + tmp = devprodic["tmu"].get_attribute_config_ex("PllFundPhaseVolt") + tmp[0].alarms.min_alarm = str(self.faseperallarmi - 0.5) + tmp[0].alarms.max_alarm = str(self.faseperallarmi + 0.5) + devprodic["tmu"].set_attribute_config(tmp) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [1.0, 2.0] for attribute PllFundPhaseVolt' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + elif self.FundAlignment_shift and self.FundAlignment_calc < 1: + print('FundAlignment ' + str(self.FundAlignment_calc)) + print("tmu" + ' ' + "PllFundAlignment" + ' ' + str(-1)) + try: + devprodic["tmu"].write_attribute("PllFundAlignment", -1) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while write_attribute("PllFundAlignment", -1)' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + self.faseperallarmi = 0.5 + try: + tmp = devprodic["tmu"].get_attribute_config_ex('PllFundPhaseVolt') + tmp[0].alarms.min_alarm = str(self.faseperallarmi - 0.5) + tmp[0].alarms.max_alarm = str(self.faseperallarmi + 0.5) + devprodic["tmu"].set_attribute_config(tmp) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [0.0, 1.0] for attribute PllFundPhaseVolt' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + else: + print('FundAlignment no shift') + time.sleep(3) + print("triggerEVR" + ' ' + "Chan1Delay" + ' ' + str(self.trg_elite1calc)) + try: + devprodic["triggerEVR"].write_attribute("Chan1Delay", float(self.trg_elite1calc)) + print('Chan1Delay ' + str(self.trg_elite1calc)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan1Delay", ' + str(self.trg_elite1calc) + ')' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + time.sleep(0.2) + try: + tmp = devprodic["triggerEVR"].get_attribute_config_ex("Chan1Delay") + tmp[0].alarms.min_alarm = str(self.trg_elite1calc - 1) + tmp[0].alarms.max_alarm = str(self.trg_elite1calc + 1) + devprodic["triggerEVR"].set_attribute_config(tmp) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.trg_elite1calc - 1) + ', ' + str(self.trg_elite1calc +1) + '] for attribute Chan1Delay' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + print("triggerEVR" + ' ' + "Chan2Delay" + ' ' + str(self.trg_elite2calc)) + try: + devprodic["triggerEVR"].write_attribute("Chan2Delay", float(self.trg_elite2calc)) + print('Chan2Delay ' + str(self.trg_elite2calc)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan2Delay", ' + str(self.trg_elite2calc) + ')' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + time.sleep(0.2) + try: + tmp = devprodic["triggerEVR"].get_attribute_config_ex("Chan2Delay") + tmp[0].alarms.min_alarm = str(self.trg_elite2calc - 1) + tmp[0].alarms.max_alarm = str(self.trg_elite2calc + 1) + devprodic["triggerEVR"].set_attribute_config(tmp) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.trg_elite2calc - 1) + ', ' + str(self.trg_elite2calc +1) + '] for attribute Chan2Delay' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + print("triggerSDG1" + ' ' + "SetDelay 2" + ' ' + str(self.trg_SDG1calc)) + try: + devprodic["triggerSDG1"].command_inout('SetDelay', [2, float(self.trg_SDG1calc)/1000000000]) + print('SDG1Delay ' + str(self.trg_SDG1calc)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerSDG1"]) + ' while command_inout("SetDelay", [2,' + str(float(self.trg_SDG1calc)/1000000000) + '])' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + time.sleep(0.2) + print("triggerSDG2" + ' ' + "SetDelay 2" + ' ' + str(self.trg_SDG2calc)) + try: + devprodic["triggerSDG2"].command_inout('SetDelay', [2, float(self.trg_SDG2calc)/1000000000]) + print('SDG2Delay ' + str(self.trg_SDG2calc)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerSDG2"]) + ' while command_inout("SetDelay", [2,' + str(float(self.trg_SDG2calc)/1000000000) + '])' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + time.sleep(0.2) + print("trls4" + ' ' + "Position" + ' ' + str(self.trls4calc*1000)) + esciciclo = 0 + while devprodic["trls4"].Speed[0] < 99 or esciciclo < 10: + esciciclo += 1 + time.sleep(2) + voce = time.ctime()[11:19] + ' waiting trls4... ' + self.logbox.insertItem(0, voce) + try: + devprodic["trls4"].write_attribute("Position", [float(self.trls4calc*1000)]) + print("trls4 " + str(float(self.trls4calc*1000))) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls4"]) + ' while write_attribute("Position", [' + str(self.trls4calc*1000) + '])' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + print("trls8" + ' ' + "Position" + ' ' + str(self.trls8calc*1000)) + esciciclo = 0 + while devprodic["trls8"].Speed[0] > -99 or esciciclo < 10: + esciciclo += 1 + time.sleep(2) + voce = time.ctime()[11:19] + ' waiting trls8... ' + self.logbox.insertItem(0, voce) + try: + devprodic["trls8"].write_attribute("Position", [float(self.trls8calc*1000)]) + print("trls8 " + str(self.trls8calc*1000)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls8"]) + ' while write_attribute("Position", [' + str(self.trls8calc*1000) + '])' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + print("done") + time.sleep(2) +# print("trls4" + ' ' + "Speed" + ' ' + str([1])) +# try: +# devprodic["trls4"].write_attribute("Speed", [1]) +# except: +# voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls4"]) + ' while write_attribute("Speed", [1])' +# self.logbox.insertItem(0, voce) +# self.comandifalliti = 1 +# print("trls8" + ' ' + "Speed" + ' ' + str([-1])) +# try: +# devprodic["trls8"].write_attribute("Speed", [-1]) +# except: +# voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls8"]) + ' while write_attribute("Speed", [-1])' +# self.logbox.insertItem(0, voce) +# self.comandifalliti = 1 + self.applica.hide() + self.comenondetto.show() + self.lanciasalvatrigger.setStyleSheet("background-color: rgb(200, 200, 200)") + if self.comandifalliti == 1: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + else: + self.funzionamento.setText('No errors') + self.funzionamento.setStyleSheet("background-color: rgb(0, 255, 0)") + + def doppiodisastro(self): + self.comandifalliti = 0 +# try: +# devprodic["trls4"].write_attribute("Speed", [100]) +# except: +# voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls4"]) + ' while write_attribute("Speed", [100])' +# self.logbox.insertItem(0, voce) +# self.comandifalliti = 1 +# try: +# devprodic["trls8"].write_attribute("Speed", [-100]) +# except: +# voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls8"]) + ' while write_attribute("Speed", [-100])' +# self.logbox.insertItem(0, voce) +# self.comandifalliti = 1 + try: + devprodic["tmu"].write_attribute("PllFundAlignment", self.FundAlignment_old) + print("tmu " + str(self.FundAlignment_old)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while write_attribute("PllFundAlignment", ' + str(self.FundAlignment_old) + ')' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + try: + tmp = devprodic["tmu"].get_attribute_config_ex('PllFundPhaseVolt') + if self.FundAlignment_old > 0: + tmp[0].alarms.min_alarm = str(1.0) + tmp[0].alarms.max_alarm = str(2.0) + else: + tmp[0].alarms.min_alarm = str(0.0) + tmp[0].alarms.max_alarm = str(1.0) + devprodic["tmu"].set_attribute_config(tmp) + except: + if self.FundAlignment_old > 0: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [1.0, 2.0] for attribute PllFundPhaseVolt' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + else: + self.comandifalliti = 1 + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [0.0, 1.0] for attribute PllFundPhaseVolt' + self.logbox.insertItem(0, voce) + time.sleep(3) + try: + devprodic["triggerEVR"].write_attribute('Chan1Delay', self.trgM1_old) + print('Chan1Delay ' + str(self.trgM1_old)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan1Delay", ' + str(self.trgM1_old) + ')' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + time.sleep(0.1) + try: + tmp = devprodic["triggerEVR"].get_attribute_config_ex('Chan1Delay') + tmp[0].alarms.min_alarm = str(self.trgM1_old - 1) + tmp[0].alarms.max_alarm = str(self.trgM1_old + 1) + devprodic["triggerEVR"].set_attribute_config(tmp) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.trgM1_old - 1) + ', ' + str(self.trgM1_old +1) + '] for attribute Chan1Delay' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + try: + devprodic["triggerEVR"].write_attribute('Chan2Delay', self.trgM2_old) + print('Chan2Delay ' + str(self.trgM2_old)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan2Delay", ' + str(self.trgM2_old) + ')' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + time.sleep(0.1) + try: + tmp = devprodic["triggerEVR"].get_attribute_config_ex('Chan2Delay') + tmp[0].alarms.min_alarm = str(self.trgM2_old - 1) + tmp[0].alarms.max_alarm = str(self.trgM2_old + 1) + devprodic["triggerEVR"].set_attribute_config(tmp) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.trgM2_old - 1) + ', ' + str(self.trgM2_old +1) + '] for attribute Chan2Delay' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + try: + devprodic["triggerSDG1"].command_inout('SetDelay', [2, float(self.trgSDG1_old)/1000000000]) + print('SDG1Delay ' + str(self.trgSDG1_old)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerSDG1"]) + ' while command_inout("SetDelay", [2,' + str(float(self.trgSDG1_old)/1000000000) + '])' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + time.sleep(0.1) + try: + devprodic["triggerSDG2"].command_inout('SetDelay', [2, float(self.trgSDG2_old)/1000000000]) + print('SDG2Delay ' + str(self.trgSDG2_old)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerSDG2"]) + ' while command_inout("SetDelay", [2,' + str(float(self.trgSDG2_old)/1000000000) + '])' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + time.sleep(0.1) + try: + devprodic["trls4"].write_attribute("Position", [self.trls4_old]) + print("trls4 " + str(self.trls4_old)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls4"]) + ' while write_attribute("Position", ' + str([self.trls4_old]) + ')' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + try: + devprodic["trls8"].write_attribute("Position", [self.trls8_old]) + print("trls8 " + str(self.trls8_old)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls8"]) + ' while write_attribute("Position", ' + str([self.trls8_old]) + ')' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + print("done") + time.sleep(1) +# try: +# devprodic["trls4"].write_attribute("Speed", [1]) +# except: +# voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls4"]) + ' while write_attribute("Speed", [1])' +# self.logbox.insertItem(0, voce) +# self.comandifalliti = 1 +# try: +# devprodic["trls8"].write_attribute("Speed", [-1]) +# except: +# voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls8"]) + ' while write_attribute("Speed", [-1])' +# self.logbox.insertItem(0, voce) +# self.comandifalliti.append('devprodic["trls4"]', 'Speed', '[-1]') + self.applica.show() + self.comenondetto.hide() + self.lanciasalvatrigger.setStyleSheet("background-color: rgb(200, 200, 200)") + if self.comandifalliti == 1: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + else: + self.funzionamento.setText('No errors') + self.funzionamento.setStyleSheet("background-color: rgb(0, 255, 0)") + + def ripristino(self): + self.comandifalliti = 0 +# try: +# devprodic["trls4"].write_attribute("Speed", [100]) +# except: +# voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls4"]) + ' while write_attribute("Speed", [100])' +# self.logbox.insertItem(0, voce) +# self.comandifalliti = 1 +# try: +# devprodic["trls8"].write_attribute("Speed", [-100]) +# except: +# voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls8"]) + ' while write_attribute("Speed", [-100])' +# self.logbox.insertItem(0, voce) +# self.comandifalliti = 1 + try: + devprodic["tmu"].write_attribute("PllFundAlignment", self.zero_FundAlignment) + print("tmu " + str(self.zero_FundAlignment)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while write_attribute("PllFundAlignment", ' + str(self.zero_FundAlignment) + ')' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + try: + tmp = devprodic["tmu"].get_attribute_config_ex('PllFundPhaseVolt') + if self.zero_FundAlignment > 0: + tmp[0].alarms.min_alarm = str(1.0) + tmp[0].alarms.max_alarm = str(2.0) + else: + tmp[0].alarms.min_alarm = str(0.0) + tmp[0].alarms.max_alarm = str(1.0) + devprodic["tmu"].set_attribute_config(tmp) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script load and set new threshold on attribute PllFundPhaseVolt' + self.logbox.insertItem(0, voce) + if self.zero_FundAlignment > 0: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [1.0, 2.0] for attribute PllFundPhaseVolt' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + else: + self.comandifalliti = 1 + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["tmu"]) + ' while the script set alarm threshold [0.0, 1.0] for attribute PllFundPhaseVolt' + self.logbox.insertItem(0, voce) + time.sleep(3) + try: + devprodic["triggerEVR"].write_attribute('Chan1Delay', self.zero_trgM1) + print('Chan1Delay ' + str(self.zero_trgM1)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan1Delay", ' + str(self.zero_trgM1) + ')' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + time.sleep(0.1) + try: + tmp = devprodic["triggerEVR"].get_attribute_config_ex('Chan1Delay') + tmp[0].alarms.min_alarm = str(self.zero_trgM1 - 1) + tmp[0].alarms.max_alarm = str(self.zero_trgM1 + 1) + devprodic["triggerEVR"].set_attribute_config(tmp) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.zero_trgM1 - 1) + ', ' + str(self.zero_trgM1 +1) + '] for attribute Chan1Delay' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + try: + devprodic["triggerEVR"].write_attribute('Chan2Delay', self.zero_trgM2) + print('Chan2Delay ' + str(self.zero_trgM2)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while write_attribute("Chan2Delay", ' + str(self.zero_trgM2) + ')' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + time.sleep(0.1) + try: + tmp = devprodic["triggerEVR"].get_attribute_config_ex('Chan2Delay') + tmp[0].alarms.min_alarm = str(self.zero_trgM2 - 1) + tmp[0].alarms.max_alarm = str(self.zero_trgM2 + 1) + devprodic["triggerEVR"].set_attribute_config(tmp) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerEVR"]) + ' while the script set alarm threshold [' + str(self.zero_trgM2 - 1) + ', ' + str(self.zero_trgM2 +1) + '] for attribute Chan2Delay' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + try: + devprodic["triggerSDG1"].command_inout('SetDelay', [2, float(self.zero_trgSDG1)/1000000000]) + print('SDG1Delay ' + str(self.zero_trgSDG1)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerSDG1"]) + ' while command_inout("SetDelay", [2,' + str(float(self.zero_trgSDG1)/1000000000) + '])' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + time.sleep(0.1) + try: + devprodic["triggerSDG2"].command_inout('SetDelay', [2, float(self.zero_trgSDG2)/1000000000]) + print('SDG2Delay ' + str(self.zero_trgSDG2)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["triggerSDG2"]) + ' while command_inout("SetDelay", [2,' + str(float(self.zero_trgSDG2)/1000000000) + '])' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + time.sleep(0.1) + try: + devprodic["trls4"].write_attribute("Position", [self.zero_trls4]) + print("trls4 " + str(self.zero_trls4)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls4"]) + ' while write_attribute("Position", ' + str([self.zero_trls4]) + ')' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + try: + devprodic["trls8"].write_attribute("Position", [self.zero_trls8]) + print("trls8 " + str(self.zero_trls8)) + except: + voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls8"]) + ' while write_attribute("Position", ' + str([self.zero_trls8]) + ')' + self.logbox.insertItem(0, voce) + self.comandifalliti = 1 + print("done") + time.sleep(1) +# try: +# devprodic["trls4"].write_attribute("Speed", [1]) +# except: +# voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls4"]) + ' while write_attribute("Speed", [1])' +# self.logbox.insertItem(0, voce) +# self.comandifalliti = 1 +# try: +# devprodic["trls8"].write_attribute("Speed", [-1]) +# except: +# voce = time.ctime()[11:19] + ' Error with ' + str(devprodic["trls8"]) + ' while write_attribute("Speed", [-1])' +# self.logbox.insertItem(0, voce) +# self.comandifalliti = 1 + self.applica.show() + self.comenondetto.hide() + self.lanciasalvatrigger.setStyleSheet("background-color: rgb(200, 200, 200)") + if self.comandifalliti == 1: + self.funzionamento.setText('!! FAULT !!') + self.funzionamento.setStyleSheet("background-color: rgb(255, 0, 0)") + else: + self.funzionamento.setText('No errors') + self.funzionamento.setStyleSheet("background-color: rgb(0, 255, 0)") + + + def switchdelayminimizer(self): + stato = str(devprodic["minimizzatore_correlazione"].command_inout('State')) + print(stato) + if stato == "OFF": + devprodic["minimizzatore_correlazione"].command_inout("On",[0]) + else: + devprodic["minimizzatore_correlazione"].command_inout('Off') + + def pannellosalvatrigger(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 + os.system('python /home/lfo/runtime/panels/bin/slsavetrigger.py &') + time.sleep(5) + indice1 = 0 + for file in os.listdir(sonoin): + if file.endswith(".csv"): + indice1 = indice1 +1 + if indice1 > indice: + self.lanciasalvatrigger.setStyleSheet("background-color: rgb(0, 255, 0)") + else: + self.lanciasalvatrigger.setStyleSheet("background-color: rgb(255, 0, 0)") + + def faprihdb(self): + os.system('/usr/bin/python /home/lfo/python/lavoradacasa/lasedb.py &') + pass + + def apritrls4(self): + os.system('/runtime/panels/bin/xps sl/motor/trls_sl.04 -title SL_XPS_delay_line_"trls_sl.04" &') + pass + + def apritrls8(self): + os.system('/runtime/panels/bin/xps sl/motor/trls_sl.08 -title SL_XPS_Elite1_line_"trls_sl.08" &') + pass + + def fapriscope3(self): + os.system('/usr/bin/vncviewer scope-laser-03 &') + pass + + def fapriscope5(self): + os.system('/usr/bin/vncviewer scope-laser-05 &') + pass + + def fapritrigger(self): + os.system('/usr/bin/python /home/lfo/runtime/panels/bin/sltriggerpanel.py &') + pass + + +if __name__ == '__main__': + app = QApplication([]) + try: + tmpdim = sys.argv[1] + tmpdim = tmpdim.split('x') + dimensione = [float(tmpdim[0]), float(tmpdim[1])] + except: + screen = QDesktopWidget().screenGeometry() + dimensione = [screen.width()*0.7, screen.height()*0.7] + font_grande = QFont("Arial", round(dimensione[0]/50.0), -1, False) + font_importante = QFont("Arial", round(dimensione[0]/150.0), -1, True) + font_pannello = QFont("Arial", round(dimensione[0]/200.0), -1, False) + app.setFont(font_pannello) + window = MainWindow() + #window.resize(dimensione[0], dimensione[1]) + window.show() + app.exec_() -- GitLab