diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..9683044ba047686ea8acc61775363c2d1531d5ad --- /dev/null +++ b/Makefile @@ -0,0 +1,18 @@ +NAME = laser-hdb-list-gui +MAIN = laser-hdb-list.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/laser-hdb-list.py b/src/laser-hdb-list.py new file mode 100644 index 0000000000000000000000000000000000000000..488338b2809bc0cd95b06e2b1bcd0f6d6a0fe00f --- /dev/null +++ b/src/laser-hdb-list.py @@ -0,0 +1,1154 @@ +#!/usr/bin/python + +import PyTango +import os +from PyQt4.QtCore import * +from PyQt4.QtGui import * +import sys + +dizionariostadard = {} + +class MainWindow(QDialog): + def __init__(self, parent=None): + super(MainWindow, self).__init__(parent) + # parte sopra - bottoni + self.bottone_PILgeneranuovalista = QPushButton('Generate new PIL list') + self.bottone_PILgeneranuovalista.clicked.connect(self.vaidipil) + self.bottone_LHLgeneranuovalista = QPushButton('Generate new LHL list') + self.bottone_LHLgeneranuovalista.clicked.connect(self.vaidilhl) + self.bottone_SLgeneranuovalista = QPushButton('Generate new SL list') + self.bottone_SLgeneranuovalista.clicked.connect(self.vaidisl) + self.bottone_SLUgeneranuovalista = QPushButton('Generate new SLU list') + self.bottone_SLUgeneranuovalista.clicked.connect(self.vaidislu) + self.bottone_modificalista = QPushButton('load and change existent list') + self.bottone_modificalista.clicked.connect(self.vaidilista) + lo_bottoni = QGridLayout() + lo_bottoni.addWidget(self.bottone_PILgeneranuovalista, 0, 0, 1, 1) + lo_bottoni.addWidget(self.bottone_LHLgeneranuovalista, 0, 1, 1, 1) + lo_bottoni.addWidget(self.bottone_SLgeneranuovalista, 0, 2, 1, 1) + lo_bottoni.addWidget(self.bottone_SLUgeneranuovalista, 0, 3, 1, 1) + lo_bottoni.addWidget(self.bottone_modificalista, 1, 0, 1, 4) + # parte lista device e contesti + self.spaziolistadevice = QTableWidget() + self.spaziolistadevice.setColumnCount(1) + self.spaziolistadevice.cellClicked.connect(self.visualizzalistaattributi) + self.spaziolistadevice.hide() + self.etichettacontesti = QLabel('Context:') + self.etichettacontesti.hide() + self.PILcontesti_SHUTDOWN = QCheckBox('SHUTDOWN') + self.PILcontesti_SHUTDOWN.stateChanged.connect(lambda :self.applicacontesto('SHUTDOWN')) + self.PILcontesti_SHUTDOWN.hide() + self.PILcontesti_ALLIN = QCheckBox('ALLIN') + self.PILcontesti_ALLIN.stateChanged.connect(lambda :self.applicacontesto('ALLIN')) + self.PILcontesti_ALLIN.hide() + self.PILcontesti_LASER_ON = QCheckBox('LASER_ON') + self.PILcontesti_LASER_ON.stateChanged.connect(lambda :self.applicacontesto('LASER_ON')) + self.PILcontesti_LASER_ON.hide() + self.PILcontesti_LASER_ON_DOUBLE_PULSE = QCheckBox('LASER_ON_DOUBLE_PULSE') + self.PILcontesti_LASER_ON_DOUBLE_PULSE.stateChanged.connect(lambda :self.applicacontesto('LASER_ON_DOUBLE_PULSE')) + self.PILcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.LHLcontesti_SHUTDOWN = QCheckBox('SHUTDOWN') + self.LHLcontesti_SHUTDOWN.stateChanged.connect(lambda :self.applicacontesto('SHUTDOWN')) + self.LHLcontesti_SHUTDOWN.hide() + self.LHLcontesti_ALLIN = QCheckBox('ALLIN') + self.LHLcontesti_ALLIN.stateChanged.connect(lambda :self.applicacontesto('ALLIN')) + self.LHLcontesti_ALLIN.hide() + self.LHLcontesti_LASER_ON = QCheckBox('LASER_ON') + self.LHLcontesti_LASER_ON.stateChanged.connect(lambda :self.applicacontesto('LASER_ON')) + self.LHLcontesti_LASER_ON.hide() + self.LHLcontesti_LASER_ON_DOUBLE_PULSE = QCheckBox('LASER_ON_DOUBLE_PULSE') + self.LHLcontesti_LASER_ON_DOUBLE_PULSE.stateChanged.connect(lambda :self.applicacontesto('LASER_ON_DOUBLE_PULSE')) + self.LHLcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.SLcontesti_SHUTDOWN = QCheckBox('SHUTDOWN') + self.SLcontesti_SHUTDOWN.stateChanged.connect(lambda :self.applicacontesto('SHUTDOWN')) + self.SLcontesti_SHUTDOWN.hide() + self.SLcontesti_ALLIN = QCheckBox('ALLIN') + self.SLcontesti_ALLIN.stateChanged.connect(lambda :self.applicacontesto('ALLIN')) + self.SLcontesti_ALLIN.hide() + self.SLcontesti_ELITE1_THG_FEL1 = QCheckBox('ELITE1_THG_FEL1') + self.SLcontesti_ELITE1_THG_FEL1.stateChanged.connect(lambda :self.applicacontesto('ELITE1_THG_FEL1')) + self.SLcontesti_ELITE1_THG_FEL1.hide() + self.SLcontesti_ELITE1_OPA_FEL1 = QCheckBox('ELITE1_OPA_FEL1') + self.SLcontesti_ELITE1_OPA_FEL1.stateChanged.connect(lambda :self.applicacontesto('ELITE1_OPA_FEL1')) + self.SLcontesti_ELITE1_OPA_FEL1.hide() + self.SLcontesti_ELITE2_THG_FEL2 = QCheckBox('ELITE2_THG_FEL2') + self.SLcontesti_ELITE2_THG_FEL2.stateChanged.connect(lambda :self.applicacontesto('ELITE2_THG_FEL2')) + self.SLcontesti_ELITE2_THG_FEL2.hide() + self.SLcontesti_ELITE2_OPA_FEL2 = QCheckBox('ELITE2_OPA_FEL2') + self.SLcontesti_ELITE2_OPA_FEL2.stateChanged.connect(lambda :self.applicacontesto('ELITE2_OPA_FEL2')) + self.SLcontesti_ELITE2_OPA_FEL2.hide() + self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU = QCheckBox('ELITE1_THG_FEL1_ELITE2_SLU') + self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU.stateChanged.connect(lambda :self.applicacontesto('ELITE1_THG_FEL1_ELITE2_SLU')) + self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU = QCheckBox('ELITE1_OPA_FEL1_ELITE2_SLU') + self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU.stateChanged.connect(lambda :self.applicacontesto('ELITE1_OPA_FEL1_ELITE2_SLU')) + self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU = QCheckBox('ELITE2_THG_FEL2_ELITE1_SLU') + self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU.stateChanged.connect(lambda :self.applicacontesto('ELITE2_THG_FEL2_ELITE1_SLU')) + self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU.hide() + self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU = QCheckBox('ELITE2_OPA_FEL2_ELITE1_SLU') + self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU.stateChanged.connect(lambda :self.applicacontesto('ELITE2_OPA_FEL2_ELITE1_SLU')) + self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU.hide() + self.SLUcontesti_SHUTDOWN = QCheckBox('SHUTDOWN') + self.SLUcontesti_SHUTDOWN.stateChanged.connect(lambda :self.applicacontesto('SHUTDOWN')) + self.SLUcontesti_SHUTDOWN.hide() + self.SLUcontesti_ALLIN = QCheckBox('ALLIN') + self.SLUcontesti_ALLIN.stateChanged.connect(lambda :self.applicacontesto('ALLIN')) + self.SLUcontesti_ALLIN.hide() + self.SLUcontesti_ELITE1_TOTEM = QCheckBox('ELITE1_TOTEM') + self.SLUcontesti_ELITE1_TOTEM.stateChanged.connect(lambda :self.applicacontesto('ELITE1_TOTEM')) + self.SLUcontesti_ELITE1_TOTEM.hide() + self.SLUcontesti_ELITE1_TIMER = QCheckBox('ELITE1_TIMER') + self.SLUcontesti_ELITE1_TIMER.stateChanged.connect(lambda :self.applicacontesto('ELITE1_TIMER')) + self.SLUcontesti_ELITE1_TIMER.hide() + self.SLUcontesti_ELITE1_TIMEX = QCheckBox('ELITE1_TIMEX') + self.SLUcontesti_ELITE1_TIMEX.stateChanged.connect(lambda :self.applicacontesto('ELITE1_TIMEX')) + self.SLUcontesti_ELITE1_TIMEX.hide() + self.SLUcontesti_ELITE1_DIPROI = QCheckBox('ELITE1_DIPROI') + self.SLUcontesti_ELITE1_DIPROI.stateChanged.connect(lambda :self.applicacontesto('ELITE1_DIPROI')) + self.SLUcontesti_ELITE1_DIPROI.hide() + self.SLUcontesti_ELITE1_LDM = QCheckBox('ELITE1_LDM') + self.SLUcontesti_ELITE1_LDM.stateChanged.connect(lambda :self.applicacontesto('ELITE1_LDM')) + self.SLUcontesti_ELITE1_LDM.hide() + self.SLUcontesti_ELITE1_MAGNEDYN = QCheckBox('ELITE1_MAGNEDYN') + self.SLUcontesti_ELITE1_MAGNEDYN.stateChanged.connect(lambda :self.applicacontesto('ELITE1_MAGNEDYN')) + self.SLUcontesti_ELITE1_MAGNEDYN.hide() + self.SLUcontesti_ELITE2_TOTEM = QCheckBox('ELITE2_TOTEM') + self.SLUcontesti_ELITE2_TOTEM.stateChanged.connect(lambda :self.applicacontesto('ELITE2_TOTEM')) + self.SLUcontesti_ELITE2_TOTEM.hide() + self.SLUcontesti_ELITE2_TIMER = QCheckBox('ELITE2_TIMER') + self.SLUcontesti_ELITE2_TIMER.stateChanged.connect(lambda :self.applicacontesto('ELITE2_TIMER')) + self.SLUcontesti_ELITE2_TIMER.hide() + self.SLUcontesti_ELITE2_TIMEX = QCheckBox('ELITE2_TIMEX') + self.SLUcontesti_ELITE2_TIMEX.stateChanged.connect(lambda :self.applicacontesto('ELITE2_TIMEX')) + self.SLUcontesti_ELITE2_TIMEX.hide() + self.SLUcontesti_ELITE2_DIPROI = QCheckBox('ELITE2_DIPROI') + self.SLUcontesti_ELITE2_DIPROI.stateChanged.connect(lambda :self.applicacontesto('ELITE2_DIPROI')) + self.SLUcontesti_ELITE2_DIPROI.hide() + self.SLUcontesti_ELITE2_LDM = QCheckBox('ELITE2_LDM') + self.SLUcontesti_ELITE2_LDM.stateChanged.connect(lambda :self.applicacontesto('ELITE2_LDM')) + self.SLUcontesti_ELITE2_LDM.hide() + self.SLUcontesti_ELITE2_MAGNEDYN = QCheckBox('ELITE2_MAGNEDYN') + self.SLUcontesti_ELITE2_MAGNEDYN.stateChanged.connect(lambda :self.applicacontesto('ELITE2_MAGNEDYN')) + self.SLUcontesti_ELITE2_MAGNEDYN.hide() + lo_device = QGridLayout() + lo_device.addWidget(self.spaziolistadevice, 0, 0, 8, 3) + lo_device.addWidget(self.etichettacontesti, 0, 4, 1, 2) + lo_device.addWidget(self.PILcontesti_SHUTDOWN, 1, 4, 1, 1) + lo_device.addWidget(self.PILcontesti_ALLIN, 1, 5, 1, 1) + lo_device.addWidget(self.PILcontesti_LASER_ON, 2, 4, 1, 1) + lo_device.addWidget(self.PILcontesti_LASER_ON_DOUBLE_PULSE, 3, 4, 1, 1) + lo_device.addWidget(self.LHLcontesti_SHUTDOWN, 1, 4, 1, 1) + lo_device.addWidget(self.LHLcontesti_ALLIN, 1, 5, 1, 1) + lo_device.addWidget(self.LHLcontesti_LASER_ON, 2, 4, 1, 1) + lo_device.addWidget(self.LHLcontesti_LASER_ON_DOUBLE_PULSE, 3, 4, 1, 1) + lo_device.addWidget(self.SLcontesti_SHUTDOWN, 1, 4, 1, 1) + lo_device.addWidget(self.SLcontesti_ALLIN, 1, 5, 1, 1) + lo_device.addWidget(self.SLcontesti_ELITE1_THG_FEL1, 2, 4, 1, 1) + lo_device.addWidget(self.SLcontesti_ELITE1_OPA_FEL1, 3, 4, 1, 1) + lo_device.addWidget(self.SLcontesti_ELITE2_THG_FEL2, 4, 4, 1, 1) + lo_device.addWidget(self.SLcontesti_ELITE2_OPA_FEL2, 5, 4, 1, 1) + lo_device.addWidget(self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU, 2, 5, 1, 1) + lo_device.addWidget(self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU, 3, 5, 1, 1) + lo_device.addWidget(self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU, 4, 5, 1, 1) + lo_device.addWidget(self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU, 5, 5, 1, 1) + lo_device.addWidget(self.SLUcontesti_SHUTDOWN, 1, 4, 1, 1) + lo_device.addWidget(self.SLUcontesti_ALLIN, 1, 5, 1, 1) + lo_device.addWidget(self.SLUcontesti_ELITE1_TOTEM, 2, 4, 1, 1) + lo_device.addWidget(self.SLUcontesti_ELITE1_TIMER, 3, 4, 1, 1) + lo_device.addWidget(self.SLUcontesti_ELITE1_TIMEX, 4, 4, 1, 1) + lo_device.addWidget(self.SLUcontesti_ELITE1_DIPROI, 5, 4, 1, 1) + lo_device.addWidget(self.SLUcontesti_ELITE1_LDM, 6, 4, 1, 1) + lo_device.addWidget(self.SLUcontesti_ELITE1_MAGNEDYN, 7, 4, 1, 1) + lo_device.addWidget(self.SLUcontesti_ELITE2_TOTEM, 2, 5, 1, 1) + lo_device.addWidget(self.SLUcontesti_ELITE2_TIMER, 3, 5, 1, 1) + lo_device.addWidget(self.SLUcontesti_ELITE2_TIMEX, 4, 5, 1, 1) + lo_device.addWidget(self.SLUcontesti_ELITE2_DIPROI, 5, 5, 1, 1) + lo_device.addWidget(self.SLUcontesti_ELITE2_LDM, 6, 5, 1, 1) + lo_device.addWidget(self.SLUcontesti_ELITE2_MAGNEDYN, 7, 5, 1, 1) + # parte lista attributi e valori + self.spaziolistaattributi = QTableWidget() + self.spaziolistaattributi.setColumnCount(6) + self.spaziolistaattributi.cellChanged.connect(self.modificacampotabellaattributi) + self.spaziolistaattributi.cellClicked.connect(self.visualizzacontesti) + self.spaziolistaattributi.setMinimumHeight(150) + self.spaziolistaattributi.hide() + #self.eliminarigaattributo = QPushButton('Delete row') + #self.eliminarigaattributo.clicked.connect(self.feliminarigaattributo) + #self.eliminarigaattributo.hide() + self.aggiungirigaattributo = QPushButton('Add row') + self.aggiungirigaattributo.clicked.connect(self.faggiungirigaattributo) + self.aggiungirigaattributo.hide() + lo_attributo = QGridLayout() + lo_attributo.addWidget(self.spaziolistaattributi, 0, 0, 1, 4) + lo_attributo.addWidget(self.aggiungirigaattributo, 1, 0, 1, 4) + #lo_attributo.addWidget(self.eliminarigaattributo, 1, 2, 1, 2) + # parte salva + self.bottone_generalista = QPushButton('PRINT LIST FILE') + self.bottone_generalista.clicked.connect(self.generalista) + #layout generale + lo_pannello = QVBoxLayout() + lo_pannello.addLayout(lo_bottoni) + lo_pannello.addLayout(lo_device) + lo_pannello.addLayout(lo_attributo) + lo_pannello.addWidget(self.bottone_generalista) + self.setLayout(lo_pannello) + self.show() + self.setWindowTitle("HDB list CONFIGURATOR") + # carico gli standard + os.chdir('/home/lfo/data/hdbliste') + manopola = open('hdbstandards.txt') + testo = manopola.readlines() + manopola.close() + for indice in range(len(testo)): + if testo[indice][0] == '-': + #print(testo[indice][0] + str(indice) + ' chiave') + chiave = testo[indice].replace('-', '').replace('\r\n', '') + dizionariostadard[chiave] = [] + elif testo[indice][0].isalpha() and (testo[indice][0] != '-' or testo[indice][0] != '#'): + #print(testo[indice][0] + str(indice) + ' attributo') + tmp = testo[indice].replace('\r\n', '') + #print(tmp) + valore1 = tmp.split(',')[0] #attributo + valore2 = tmp.split(',')[1].split(':')[1].replace(' ', '') #sogliaassoluta + valore3 = tmp.split(',')[2].split(':')[1].replace(' ', '') #sogliarelativa + valore4 = tmp.split(',')[3].split(':')[1].replace(' ', '') #sogliaperiodo + valore5 = tmp.split(',')[4].split('=')[1].replace(' ', '') #contesti + valore6 = tmp.split(',')[5].split('=')[1].replace(' ', '') #tempocancellamento + dizionariostadard[chiave].append([valore1, valore2, valore3, valore4, valore5, valore6]) + #print(dizionariostadard) + + def vaidilista(self): + print('') + os.chdir('/home/lfo/data/hdbliste') + filename = QFileDialog.getOpenFileName() #/home/lfo/data/hdbliste + #print(filename) + manopola = open(filename, 'r') + tmp = manopola.readlines() + manopola.close() + # verifica archiviatore + print(tmp[0].split('/')) + archivitore = tmp[0].split('/')[3] + #print(archivitore) + if archivitore == 'pil': + self.spaziolistadevice.show() + self.etichettacontesti.show() + self.PILcontesti_SHUTDOWN.show() + self.PILcontesti_ALLIN.show() + self.PILcontesti_LASER_ON.show() + self.PILcontesti_LASER_ON_DOUBLE_PULSE.show() + self.LHLcontesti_SHUTDOWN.hide() + self.LHLcontesti_ALLIN.hide() + self.LHLcontesti_LASER_ON.hide() + self.LHLcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.SLcontesti_SHUTDOWN.hide() + self.SLcontesti_ALLIN.hide() + self.SLcontesti_ELITE1_THG_FEL1.hide() + self.SLcontesti_ELITE1_OPA_FEL1.hide() + self.SLcontesti_ELITE2_THG_FEL2.hide() + self.SLcontesti_ELITE2_OPA_FEL2.hide() + self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU.hide() + self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU.hide() + self.SLUcontesti_SHUTDOWN.hide() + self.SLUcontesti_ALLIN.hide() + self.SLUcontesti_ELITE1_TOTEM.hide() + self.SLUcontesti_ELITE1_TIMER.hide() + self.SLUcontesti_ELITE1_TIMEX.hide() + self.SLUcontesti_ELITE1_DIPROI.hide() + self.SLUcontesti_ELITE1_LDM.hide() + self.SLUcontesti_ELITE1_MAGNEDYN.hide() + self.SLUcontesti_ELITE2_TOTEM.hide() + self.SLUcontesti_ELITE2_TIMER.hide() + self.SLUcontesti_ELITE2_TIMEX.hide() + self.SLUcontesti_ELITE2_DIPROI.hide() + self.SLUcontesti_ELITE2_LDM.hide() + self.SLUcontesti_ELITE2_MAGNEDYN.hide() + self.spaziolistaattributi.hide() + self.aggiungirigaattributo.hide() + elif archivitore == 'lhl': + self.spaziolistadevice.show() + self.etichettacontesti.show() + self.PILcontesti_SHUTDOWN.hide() + self.PILcontesti_ALLIN.hide() + self.PILcontesti_LASER_ON.hide() + self.PILcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.LHLcontesti_SHUTDOWN.show() + self.LHLcontesti_ALLIN.show() + self.LHLcontesti_LASER_ON.show() + self.LHLcontesti_LASER_ON_DOUBLE_PULSE.show() + self.SLcontesti_SHUTDOWN.hide() + self.SLcontesti_ALLIN.hide() + self.SLcontesti_ELITE1_THG_FEL1.hide() + self.SLcontesti_ELITE1_OPA_FEL1.hide() + self.SLcontesti_ELITE2_THG_FEL2.hide() + self.SLcontesti_ELITE2_OPA_FEL2.hide() + self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU.hide() + self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU.hide() + self.SLUcontesti_SHUTDOWN.hide() + self.SLUcontesti_ALLIN.hide() + self.SLUcontesti_ELITE1_TOTEM.hide() + self.SLUcontesti_ELITE1_TIMER.hide() + self.SLUcontesti_ELITE1_TIMEX.hide() + self.SLUcontesti_ELITE1_DIPROI.hide() + self.SLUcontesti_ELITE1_LDM.hide() + self.SLUcontesti_ELITE1_MAGNEDYN.hide() + self.SLUcontesti_ELITE2_TOTEM.hide() + self.SLUcontesti_ELITE2_TIMER.hide() + self.SLUcontesti_ELITE2_TIMEX.hide() + self.SLUcontesti_ELITE2_DIPROI.hide() + self.SLUcontesti_ELITE2_LDM.hide() + self.SLUcontesti_ELITE2_MAGNEDYN.hide() + self.spaziolistaattributi.hide() + self.aggiungirigaattributo.hide() + elif archivitore == 'sl': + self.spaziolistadevice.show() + self.etichettacontesti.show() + self.PILcontesti_SHUTDOWN.hide() + self.PILcontesti_ALLIN.hide() + self.PILcontesti_LASER_ON.hide() + self.PILcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.LHLcontesti_SHUTDOWN.hide() + self.LHLcontesti_ALLIN.hide() + self.LHLcontesti_LASER_ON.hide() + self.LHLcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.SLcontesti_SHUTDOWN.show() + self.SLcontesti_ALLIN.show() + self.SLcontesti_ELITE1_THG_FEL1.show() + self.SLcontesti_ELITE1_OPA_FEL1.show() + self.SLcontesti_ELITE2_THG_FEL2.show() + self.SLcontesti_ELITE2_OPA_FEL2.show() + self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU.show() + self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU.show() + self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU.show() + self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU.show() + self.SLUcontesti_SHUTDOWN.hide() + self.SLUcontesti_ALLIN.hide() + self.SLUcontesti_ELITE1_TOTEM.hide() + self.SLUcontesti_ELITE1_TIMER.hide() + self.SLUcontesti_ELITE1_TIMEX.hide() + self.SLUcontesti_ELITE1_DIPROI.hide() + self.SLUcontesti_ELITE1_LDM.hide() + self.SLUcontesti_ELITE1_MAGNEDYN.hide() + self.SLUcontesti_ELITE2_TOTEM.hide() + self.SLUcontesti_ELITE2_TIMER.hide() + self.SLUcontesti_ELITE2_TIMEX.hide() + self.SLUcontesti_ELITE2_DIPROI.hide() + self.SLUcontesti_ELITE2_LDM.hide() + self.SLUcontesti_ELITE2_MAGNEDYN.hide() + self.spaziolistaattributi.hide() + self.aggiungirigaattributo.hide() + elif archivitore == 'slu': + self.spaziolistadevice.show() + self.etichettacontesti.show() + self.PILcontesti_SHUTDOWN.hide() + self.PILcontesti_ALLIN.hide() + self.PILcontesti_LASER_ON.hide() + self.PILcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.LHLcontesti_SHUTDOWN.hide() + self.LHLcontesti_ALLIN.hide() + self.LHLcontesti_LASER_ON.hide() + self.LHLcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.SLcontesti_SHUTDOWN.hide() + self.SLcontesti_ALLIN.hide() + self.SLcontesti_ELITE1_THG_FEL1.hide() + self.SLcontesti_ELITE1_OPA_FEL1.hide() + self.SLcontesti_ELITE2_THG_FEL2.hide() + self.SLcontesti_ELITE2_OPA_FEL2.hide() + self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU.hide() + self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU.hide() + self.SLUcontesti_SHUTDOWN.show() + self.SLUcontesti_ALLIN.show() + self.SLUcontesti_ELITE1_TOTEM.show() + self.SLUcontesti_ELITE1_TIMER.show() + self.SLUcontesti_ELITE1_TIMEX.show() + self.SLUcontesti_ELITE1_DIPROI.show() + self.SLUcontesti_ELITE1_LDM.show() + self.SLUcontesti_ELITE1_MAGNEDYN.show() + self.SLUcontesti_ELITE2_TOTEM.show() + self.SLUcontesti_ELITE2_TIMER.show() + self.SLUcontesti_ELITE2_TIMEX.show() + self.SLUcontesti_ELITE2_DIPROI.show() + self.SLUcontesti_ELITE2_LDM.show() + self.SLUcontesti_ELITE2_MAGNEDYN.show() + self.spaziolistaattributi.hide() + self.aggiungirigaattributo.hide() + # creo "matrice dati" e tabella per show + self.contenitore = [] + altro = [] + dizionariodicomodoattributi = {} + dizionariodicomodostrategie = {} + for indice in range(len(tmp)): + #print(tmp[indice]) + tmp2 = tmp[indice].replace('tango://srv-tango-srf.fcs.elettra.trieste.it:20000/','').replace(';ttl=0','').replace('\n','').split(',') + #print(tmp3) + parametro1 = '1' #abilitato + parametro2 = archivitore #nome dell'archivitore (tipo pil) + parametro3 = tmp2[0].split('/')[0]+'/'+tmp2[0].split('/')[1]+'/'+tmp2[0].split('/')[2] #indirizzo del dispositivo (tipo pil/timing/tmu_pil.01) + parametro4 = tmp2[0].split('/')[3] #nome attributo (tipo State) + tmp3 = PyTango.DeviceProxy(parametro3) + parametro5 = tmp3.info().dev_class #classe dispositivo + parametro6 = tmp2[1].split(':')[1].replace(' ','') #sogliaassoluta + parametro7 = tmp2[2].split(':')[1].replace(' ','') #sogliarelativa + parametro8 = tmp2[3].split(':')[1].replace(' ','') #sogliatemporale + parametro9 = tmp[indice].split(',')[-1].split(';')[0].split('=')[1].replace(' ','')#contesti + parametro10 = tmp[indice].split(',')[-1].split(';')[1].split('=')[1].replace(' ','').replace('\n','')#time to live + self.contenitore.append(elementodalog(parametro1, parametro2, parametro3, parametro4, parametro5, parametro6, parametro7, parametro8, parametro9, parametro10)) + print(str(indice) + ' ' + parametro9) + #print(len(self.contenitore)) + # popolo il pannello + listadevicevisualizzati = [] + for indice in range(len(self.contenitore)): + if self.contenitore[indice].dispositivo not in listadevicevisualizzati: + #print(len(listadevicevisualizzati)) + listadevicevisualizzati.append(self.contenitore[indice].dispositivo) + self.spaziolistadevice.insertRow(0) + self.spaziolistadevice.setItem(0, 0, QTableWidgetItem(self.contenitore[indice].dispositivo)) + #print(indice) + #print(self.spaziolistadevice.rowCount()) + self.spaziolistadevice.setHorizontalHeaderLabels(['device']) + header = self.spaziolistadevice.horizontalHeader() + header.setResizeMode(0, QHeaderView.Stretch) + self.spaziolistadevice.resizeColumnsToContents() + #print('fatto') + + def vaidipil(self): + #scenografia - mostra parte device + self.spaziolistadevice.show() + self.etichettacontesti.show() + self.PILcontesti_SHUTDOWN.show() + self.PILcontesti_ALLIN.show() + self.PILcontesti_LASER_ON.show() + self.PILcontesti_LASER_ON_DOUBLE_PULSE.show() + self.LHLcontesti_SHUTDOWN.hide() + self.LHLcontesti_ALLIN.hide() + self.LHLcontesti_LASER_ON.hide() + self.LHLcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.SLcontesti_SHUTDOWN.hide() + self.SLcontesti_ALLIN.hide() + self.SLcontesti_ELITE1_THG_FEL1.hide() + self.SLcontesti_ELITE1_OPA_FEL1.hide() + self.SLcontesti_ELITE2_THG_FEL2.hide() + self.SLcontesti_ELITE2_OPA_FEL2.hide() + self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU.hide() + self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU.hide() + self.SLUcontesti_SHUTDOWN.hide() + self.SLUcontesti_ALLIN.hide() + self.SLUcontesti_ELITE1_TOTEM.hide() + self.SLUcontesti_ELITE1_TIMER.hide() + self.SLUcontesti_ELITE1_TIMEX.hide() + self.SLUcontesti_ELITE1_DIPROI.hide() + self.SLUcontesti_ELITE1_LDM.hide() + self.SLUcontesti_ELITE1_MAGNEDYN.hide() + self.SLUcontesti_ELITE2_TOTEM.hide() + self.SLUcontesti_ELITE2_TIMER.hide() + self.SLUcontesti_ELITE2_TIMEX.hide() + self.SLUcontesti_ELITE2_DIPROI.hide() + self.SLUcontesti_ELITE2_LDM.hide() + self.SLUcontesti_ELITE2_MAGNEDYN.hide() + self.spaziolistaattributi.hide() + self.aggiungirigaattributo.hide() + #per test + #manopola = open('hdblista_pil.txt') + #tmp = manopola.readlines() + #manopola.close() + # su fermi + db = PyTango.Database() + domain = 'pil' + family = '*' + member = '*' + dev = [] + tmp = [] + for d in db.get_device_domain(domain + '/' + family + '/' + member): + #print '-', d + for f in db.get_device_family(d + '/' + family + '/' '*'): + #print ' -', f + for m in db.get_device_member(d + '/' + f + '/' + member): + #print ' -', m + try: + name = d + '/' + f + '/' + m + dev.append(PyTango.DeviceProxy(name)) + tmp.append(name + ' ' + dev[-1].info().dev_class) + #print name + ' ' + tmp[-1] + ##maniglia = open('hdblista_pil' + d + '.txt', 'w') + ##maniglia.writelines(tmp) + ##maniglia.close() + except PyTango.DevFailed, e: + print e + #print(tmp) + # creo "matrice dati" e tabella per show + self.contenitore = [] + for indice in range(len(tmp)): + print(tmp[indice].split(' ')[1]) + if dizionariostadard.has_key(tmp[indice].split(' ')[1]): + #print(dizionariostadard[tmp[indice].split(' ')[1]]) + for indice2 in range(len(dizionariostadard[tmp[indice].split(' ')[1]])): + #print(dizionariostadard[tmp[indice].split(' ')[1]][indice2]) + parametro1 = '1' #abilitato + parametro2 = domain #nome dell'archivitore (tipo pil) + parametro3 = tmp[indice].split(' ')[0] #indirizzo del dispositivo (tipo pil/timing/tmu_pil.01) + parametro4 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][0] #nome attributo (tipo State) + parametro5 = tmp[indice].split(' ')[1] #classe dispositivo + parametro6 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][1] #sogliaassoluta + parametro7 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][2] #sogliarelativa + parametro8 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][3] #sogliatemporale + parametro9 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][4] #contesti + parametro10 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][5] #time to live + self.contenitore.append(elementodalog(parametro1, parametro2, parametro3, parametro4, parametro5, parametro6, parametro7, parametro8, parametro9, parametro10)) + listadevicevisualizzati = [] + for indice in range(len(self.contenitore)): + if self.contenitore[indice].dispositivo not in listadevicevisualizzati: + #print(len(listadevicevisualizzati)) + listadevicevisualizzati.append(self.contenitore[indice].dispositivo) + self.spaziolistadevice.insertRow(0) + self.spaziolistadevice.setItem(0, 0, QTableWidgetItem(self.contenitore[indice].dispositivo)) + #print(self.spaziolistadevice.rowCount()) + self.spaziolistadevice.setHorizontalHeaderLabels(['device']) + header = self.spaziolistadevice.horizontalHeader() + header.setResizeMode(0, QHeaderView.Stretch) + self.spaziolistadevice.resizeColumnsToContents() + + def vaidilhl(self): + #scenografia - mostra parte device + self.spaziolistadevice.show() + self.etichettacontesti.show() + self.PILcontesti_SHUTDOWN.hide() + self.PILcontesti_ALLIN.hide() + self.PILcontesti_LASER_ON.hide() + self.PILcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.LHLcontesti_SHUTDOWN.show() + self.LHLcontesti_ALLIN.show() + self.LHLcontesti_LASER_ON.show() + self.LHLcontesti_LASER_ON_DOUBLE_PULSE.show() + self.SLcontesti_SHUTDOWN.hide() + self.SLcontesti_ALLIN.hide() + self.SLcontesti_ELITE1_THG_FEL1.hide() + self.SLcontesti_ELITE1_OPA_FEL1.hide() + self.SLcontesti_ELITE2_THG_FEL2.hide() + self.SLcontesti_ELITE2_OPA_FEL2.hide() + self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU.hide() + self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU.hide() + self.SLUcontesti_SHUTDOWN.hide() + self.SLUcontesti_ALLIN.hide() + self.SLUcontesti_ELITE1_TOTEM.hide() + self.SLUcontesti_ELITE1_TIMER.hide() + self.SLUcontesti_ELITE1_TIMEX.hide() + self.SLUcontesti_ELITE1_DIPROI.hide() + self.SLUcontesti_ELITE1_LDM.hide() + self.SLUcontesti_ELITE1_MAGNEDYN.hide() + self.SLUcontesti_ELITE2_TOTEM.hide() + self.SLUcontesti_ELITE2_TIMER.hide() + self.SLUcontesti_ELITE2_TIMEX.hide() + self.SLUcontesti_ELITE2_DIPROI.hide() + self.SLUcontesti_ELITE2_LDM.hide() + self.SLUcontesti_ELITE2_MAGNEDYN.hide() + self.spaziolistaattributi.hide() + self.aggiungirigaattributo.hide() + #per test + #manopola = open('hdblista_lhl.txt') + #tmp = manopola.readlines() + #manopola.close() + # su fermi + db = PyTango.Database() + domain = 'lhl' + family = '*' + member = '*' + dev = [] + tmp = [] + for d in db.get_device_domain(domain + '/' + family + '/' + member): + #print '-', d + for f in db.get_device_family(d + '/' + family + '/' '*'): + #print ' -', f + for m in db.get_device_member(d + '/' + f + '/' + member): + #print ' -', m + try: + name = d + '/' + f + '/' + m + dev.append(PyTango.DeviceProxy(name)) + tmp.append(name + ' ' + dev[-1].info().dev_class) + #print name + ' ' + tmp[-1] + ##maniglia = open('hdblista_lhl' + d + '.txt', 'w') + ##maniglia.writelines(tmp) + ##maniglia.close() + except PyTango.DevFailed, e: + print e + #print(tmp) + # creo "matrice dati" e tabella per show + self.contenitore = [] + for indice in range(len(tmp)): + print(tmp[indice].split(' ')[1]) + if dizionariostadard.has_key(tmp[indice].split(' ')[1]): + #print(dizionariostadard[tmp[indice].split(' ')[1]]) + for indice2 in range(len(dizionariostadard[tmp[indice].split(' ')[1]])): + #print(dizionariostadard[tmp[indice].split(' ')[1]][indice2]) + parametro1 = '1' #abilitato + parametro2 = domain #nome dell'archivitore (tipo pil) + parametro3 = tmp[indice].split(' ')[0] #indirizzo del dispositivo (tipo pil/timing/tmu_pil.01) + parametro4 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][0] #nome attributo (tipo State) + parametro5 = tmp[indice].split(' ')[1] #classe dispositivo + parametro6 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][1] #sogliaassoluta + parametro7 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][2] #sogliarelativa + parametro8 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][3] #sogliatemporale + parametro9 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][4] #contesti + parametro10 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][5] #time to live + self.contenitore.append(elementodalog(parametro1, parametro2, parametro3, parametro4, parametro5, parametro6, parametro7, parametro8, parametro9, parametro10)) + listadevicevisualizzati = [] + for indice in range(len(self.contenitore)): + if self.contenitore[indice].dispositivo not in listadevicevisualizzati: + #print(len(listadevicevisualizzati)) + listadevicevisualizzati.append(self.contenitore[indice].dispositivo) + self.spaziolistadevice.insertRow(0) + self.spaziolistadevice.setItem(0, 0, QTableWidgetItem(self.contenitore[indice].dispositivo)) + #print(self.spaziolistadevice.rowCount()) + self.spaziolistadevice.setHorizontalHeaderLabels(['device']) + header = self.spaziolistadevice.horizontalHeader() + header.setResizeMode(0, QHeaderView.Stretch) + self.spaziolistadevice.resizeColumnsToContents() + + def vaidisl(self): + #scenografia - mostra parte device + self.spaziolistadevice.show() + self.etichettacontesti.show() + self.PILcontesti_SHUTDOWN.hide() + self.PILcontesti_ALLIN.hide() + self.PILcontesti_LASER_ON.hide() + self.PILcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.LHLcontesti_SHUTDOWN.hide() + self.LHLcontesti_ALLIN.hide() + self.LHLcontesti_LASER_ON.hide() + self.LHLcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.SLcontesti_SHUTDOWN.show() + self.SLcontesti_ALLIN.show() + self.SLcontesti_ELITE1_THG_FEL1.show() + self.SLcontesti_ELITE1_OPA_FEL1.show() + self.SLcontesti_ELITE2_THG_FEL2.show() + self.SLcontesti_ELITE2_OPA_FEL2.show() + self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU.show() + self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU.show() + self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU.show() + self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU.show() + self.SLUcontesti_SHUTDOWN.hide() + self.SLUcontesti_ALLIN.hide() + self.SLUcontesti_ELITE1_TOTEM.hide() + self.SLUcontesti_ELITE1_TIMER.hide() + self.SLUcontesti_ELITE1_TIMEX.hide() + self.SLUcontesti_ELITE1_DIPROI.hide() + self.SLUcontesti_ELITE1_LDM.hide() + self.SLUcontesti_ELITE1_MAGNEDYN.hide() + self.SLUcontesti_ELITE2_TOTEM.hide() + self.SLUcontesti_ELITE2_TIMER.hide() + self.SLUcontesti_ELITE2_TIMEX.hide() + self.SLUcontesti_ELITE2_DIPROI.hide() + self.SLUcontesti_ELITE2_LDM.hide() + self.SLUcontesti_ELITE2_MAGNEDYN.hide() + self.spaziolistaattributi.hide() + self.aggiungirigaattributo.hide() + #per test + #manopola = open('hdblista_sl.txt') + #tmp = manopola.readlines() + #manopola.close() + # su fermi + db = PyTango.Database() + domain = 'sl' + family = '*' + member = '*' + dev = [] + tmp = [] + for d in db.get_device_domain(domain + '/' + family + '/' + member): + #print '-', d + for f in db.get_device_family(d + '/' + family + '/' '*'): + #print ' -', f + for m in db.get_device_member(d + '/' + f + '/' + member): + #print ' -', m + try: + name = d + '/' + f + '/' + m + dev.append(PyTango.DeviceProxy(name)) + tmp.append(name + ' ' + dev[-1].info().dev_class) + #print name + ' ' + tmp[-1] + ##maniglia = open('hdblista_sl' + d + '.txt', 'w') + ##maniglia.writelines(tmp) + ##maniglia.close() + except PyTango.DevFailed, e: + print e + #print(tmp) + # creo "matrice dati" e tabella per show + self.contenitore = [] + for indice in range(len(tmp)): + print(tmp[indice].split(' ')[1]) + if dizionariostadard.has_key(tmp[indice].split(' ')[1]): + #print(dizionariostadard[tmp[indice].split(' ')[1]]) + for indice2 in range(len(dizionariostadard[tmp[indice].split(' ')[1]])): + #print(dizionariostadard[tmp[indice].split(' ')[1]][indice2]) + parametro1 = '1' #abilitato + parametro2 = domain #nome dell'archivitore (tipo pil) + parametro3 = tmp[indice].split(' ')[0] #indirizzo del dispositivo (tipo pil/timing/tmu_pil.01) + parametro4 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][0] #nome attributo (tipo State) + parametro5 = tmp[indice].split(' ')[1] #classe dispositivo + parametro6 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][1] #sogliaassoluta + parametro7 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][2] #sogliarelativa + parametro8 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][3] #sogliatemporale + parametro9 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][4] #contesti + parametro10 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][5] #time to live + self.contenitore.append(elementodalog(parametro1, parametro2, parametro3, parametro4, parametro5, parametro6, parametro7, parametro8, parametro9, parametro10)) + listadevicevisualizzati = [] + for indice in range(len(self.contenitore)): + if self.contenitore[indice].dispositivo not in listadevicevisualizzati: + #print(len(listadevicevisualizzati)) + listadevicevisualizzati.append(self.contenitore[indice].dispositivo) + self.spaziolistadevice.insertRow(0) + self.spaziolistadevice.setItem(0, 0, QTableWidgetItem(self.contenitore[indice].dispositivo)) + #print(self.spaziolistadevice.rowCount()) + self.spaziolistadevice.setHorizontalHeaderLabels(['device']) + header = self.spaziolistadevice.horizontalHeader() + header.setResizeMode(0, QHeaderView.Stretch) + self.spaziolistadevice.resizeColumnsToContents() + + def vaidislu(self): + #scenografia - mostra parte device + self.spaziolistadevice.show() + self.etichettacontesti.show() + self.PILcontesti_SHUTDOWN.hide() + self.PILcontesti_ALLIN.hide() + self.PILcontesti_LASER_ON.hide() + self.PILcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.LHLcontesti_SHUTDOWN.hide() + self.LHLcontesti_ALLIN.hide() + self.LHLcontesti_LASER_ON.hide() + self.LHLcontesti_LASER_ON_DOUBLE_PULSE.hide() + self.SLcontesti_SHUTDOWN.hide() + self.SLcontesti_ALLIN.hide() + self.SLcontesti_ELITE1_THG_FEL1.hide() + self.SLcontesti_ELITE1_OPA_FEL1.hide() + self.SLcontesti_ELITE2_THG_FEL2.hide() + self.SLcontesti_ELITE2_OPA_FEL2.hide() + self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU.hide() + self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU.hide() + self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU.hide() + self.SLUcontesti_SHUTDOWN.show() + self.SLUcontesti_ALLIN.show() + self.SLUcontesti_ELITE1_TOTEM.show() + self.SLUcontesti_ELITE1_TIMER.show() + self.SLUcontesti_ELITE1_TIMEX.show() + self.SLUcontesti_ELITE1_DIPROI.show() + self.SLUcontesti_ELITE1_LDM.show() + self.SLUcontesti_ELITE1_MAGNEDYN.show() + self.SLUcontesti_ELITE2_TOTEM.show() + self.SLUcontesti_ELITE2_TIMER.show() + self.SLUcontesti_ELITE2_TIMEX.show() + self.SLUcontesti_ELITE2_DIPROI.show() + self.SLUcontesti_ELITE2_LDM.show() + self.SLUcontesti_ELITE2_MAGNEDYN.show() + self.spaziolistaattributi.hide() + self.aggiungirigaattributo.hide() + #per test + #manopola = open('hdblista_slu.txt') + #tmp = manopola.readlines() + #manopola.close() + # su fermi + db = PyTango.Database() + domain = 'slu' + family = '*' + member = '*' + dev = [] + tmp = [] + for d in db.get_device_domain(domain + '/' + family + '/' + member): + #print '-', d + for f in db.get_device_family(d + '/' + family + '/' '*'): + #print ' -', f + for m in db.get_device_member(d + '/' + f + '/' + member): + #print ' -', m + try: + name = d + '/' + f + '/' + m + dev.append(PyTango.DeviceProxy(name)) + tmp.append(name + ' ' + dev[-1].info().dev_class) + #print name + ' ' + tmp[-1] + ##maniglia = open('hdblista_slu' + d + '.txt', 'w') + ##maniglia.writelines(tmp) + ##maniglia.close() + except PyTango.DevFailed, e: + print e + #print(tmp) + # creo "matrice dati" e tabella per show + self.contenitore = [] + for indice in range(len(tmp)): + print(tmp[indice].split(' ')[1]) + if dizionariostadard.has_key(tmp[indice].split(' ')[1]): + #print(dizionariostadard[tmp[indice].split(' ')[1]]) + for indice2 in range(len(dizionariostadard[tmp[indice].split(' ')[1]])): + #print(dizionariostadard[tmp[indice].split(' ')[1]][indice2]) + parametro1 = '1' #abilitato + parametro2 = domain #nome dell'archivitore (tipo pil) + parametro3 = tmp[indice].split(' ')[0] #indirizzo del dispositivo (tipo pil/timing/tmu_pil.01) + parametro4 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][0] #nome attributo (tipo State) + parametro5 = tmp[indice].split(' ')[1] #classe dispositivo + parametro6 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][1] #sogliaassoluta + parametro7 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][2] #sogliarelativa + parametro8 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][3] #sogliatemporale + parametro9 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][4] #contesti + parametro10 = dizionariostadard[tmp[indice].split(' ')[1]][indice2][5] #time to live + self.contenitore.append(elementodalog(parametro1, parametro2, parametro3, parametro4, parametro5, parametro6, parametro7, parametro8, parametro9, parametro10)) + listadevicevisualizzati = [] + for indice in range(len(self.contenitore)): + if self.contenitore[indice].dispositivo not in listadevicevisualizzati: + #print(len(listadevicevisualizzati)) + listadevicevisualizzati.append(self.contenitore[indice].dispositivo) + self.spaziolistadevice.insertRow(0) + self.spaziolistadevice.setItem(0, 0, QTableWidgetItem(self.contenitore[indice].dispositivo)) + #print(self.spaziolistadevice.rowCount()) + self.spaziolistadevice.setHorizontalHeaderLabels(['device']) + header = self.spaziolistadevice.horizontalHeader() + header.setResizeMode(0, QHeaderView.Stretch) + self.spaziolistadevice.resizeColumnsToContents() + + def visualizzalistaattributi(self): + print('funzione visualizzalistaattributi') + indice = self.spaziolistadevice.currentRow() + discriminatore = self.spaziolistadevice.currentItem().text() #riga device chiamante + self.spaziolistaattributi.setRowCount(0) + self.aggiungirigaattributo.show() + self.spaziolistaattributi.show() + for indice in range(len(self.contenitore)): + if self.contenitore[indice].dispositivo == discriminatore: + self.spaziolistaattributi.insertRow(0) + self.spaziolistaattributi.setItem(0, 0, QTableWidgetItem(str(self.contenitore[indice].abilitato))) + self.spaziolistaattributi.setItem(0, 1, QTableWidgetItem(self.contenitore[indice].attributo)) + self.spaziolistaattributi.setItem(0, 2, QTableWidgetItem(self.contenitore[indice].sogliaassoluta)) + self.spaziolistaattributi.setItem(0, 3, QTableWidgetItem(self.contenitore[indice].sogliarelativa)) + self.spaziolistaattributi.setItem(0, 4, QTableWidgetItem(self.contenitore[indice].sogliatemporale)) + self.spaziolistaattributi.setItem(0, 5, QTableWidgetItem(self.contenitore[indice].cancellamidopo)) + #self.spaziolistaattributi.setItem(0, 6, QTableWidgetItem(str(indice))) + self.spaziolistaattributi.setHorizontalHeaderLabels(['Enabled', 'name', 'absolute', 'relative', 'time', 'ttl']) + header = self.spaziolistaattributi.horizontalHeader() + header.setResizeMode(0, QHeaderView.ResizeToContents) + header.setResizeMode(1, QHeaderView.Stretch) + header.setResizeMode(2, QHeaderView.ResizeToContents) + header.setResizeMode(3, QHeaderView.ResizeToContents) + header.setResizeMode(4, QHeaderView.ResizeToContents) + header.setResizeMode(5, QHeaderView.ResizeToContents) + #header.setResizeMode(6, QHeaderView.ResizeToContents) + self.spaziolistaattributi.resizeColumnsToContents() + + def visualizzacontesti(self): + print('funzione visualizzacontesti') + #print('visualizzacontesti') + indice = self.spaziolistaattributi.currentRow() + #print(indice) + discriminatoreattributo = self.spaziolistaattributi.item(indice, 1).text() + #print(discriminatoreattributo) + discriminatoredevice = self.spaziolistadevice.currentItem().text() + #print(discriminatoredevice) + for indice in range(len(self.contenitore)): + if self.contenitore[indice].dispositivo == discriminatoredevice and self.contenitore[indice].attributo == discriminatoreattributo: + tmp = self.contenitore[indice].contesti.split('|') + #print(tmp) + if self.contenitore[indice].archiviatore == 'pil': + if 'SHUTDOWN' in tmp: + self.PILcontesti_SHUTDOWN.setChecked(1) + else: + self.PILcontesti_SHUTDOWN.setChecked(0) + if 'ALLIN' in tmp: + self.PILcontesti_ALLIN.setChecked(1) + else: + self.PILcontesti_ALLIN.setChecked(0) + if 'LASER_ON' in tmp: + self.PILcontesti_LASER_ON.setChecked(1) + else: + self.PILcontesti_LASER_ON.setChecked(0) + if 'LASER_ON_DOUBLE_PULSE' in tmp: + self.PILcontesti_LASER_ON_DOUBLE_PULSE.setChecked(1) + else: + self.PILcontesti_LASER_ON_DOUBLE_PULSE.setChecked(0) + elif self.contenitore[indice].archiviatore == 'lhl': + if 'SHUTDOWN' in tmp: + self.LHLcontesti_SHUTDOWN.setChecked(1) + else: + self.LHLcontesti_SHUTDOWN.setChecked(0) + if 'ALLIN' in tmp: + self.LHLcontesti_ALLIN.setChecked(1) + else: + self.LHLcontesti_ALLIN.setChecked(0) + if 'LASER_ON' in tmp: + self.LHLcontesti_LASER_ON.setChecked(1) + else: + self.LHLcontesti_LASER_ON.setChecked(0) + if 'LASER_ON_DOUBLE_PULSE' in tmp: + self.LHLcontesti_LASER_ON_DOUBLE_PULSE.setChecked(1) + else: + self.LHLcontesti_LASER_ON_DOUBLE_PULSE.setChecked(0) + elif self.contenitore[indice].archiviatore == 'sl': + if 'SHUTDOWN' in tmp: + self.SLcontesti_SHUTDOWN.setChecked(1) + else: + self.SLcontesti_SHUTDOWN.setChecked(0) + if 'ALLIN' in tmp: + self.SLcontesti_ALLIN.setChecked(1) + else: + self.SLcontesti_ALLIN.setChecked(0) + if 'ELITE1_THG_FEL1' in tmp: + self.SLcontesti_ELITE1_THG_FEL1.setChecked(1) + else: + self.SLcontesti_ELITE1_THG_FEL1.setChecked(0) + if 'ELITE1_OPA_FEL1' in tmp: + self.SLcontesti_ELITE1_OPA_FEL1.setChecked(1) + else: + self.SLcontesti_ELITE1_OPA_FEL1.setChecked(0) + if 'ELITE2_THG_FEL2' in tmp: + self.SLcontesti_ELITE2_THG_FEL2.setChecked(1) + else: + self.SLcontesti_ELITE2_THG_FEL2.setChecked(0) + if 'ELITE2_OPA_FEL2' in tmp: + self.SLcontesti_ELITE2_OPA_FEL2.setChecked(1) + else: + self.SLcontesti_ELITE2_OPA_FEL2.setChecked(0) + if 'ELITE1_THG_FEL1_ELITE2_SLU' in tmp: + self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU.setChecked(1) + else: + self.SLcontesti_ELITE1_THG_FEL1_ELITE2_SLU.setChecked(0) + if 'ELITE1_OPA_FEL1_ELITE2_SLU' in tmp: + self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU.setChecked(1) + else: + self.SLcontesti_ELITE1_OPA_FEL1_ELITE2_SLU.setChecked(0) + if 'ELITE2_THG_FEL2_ELITE1_SLU' in tmp: + self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU.setChecked(1) + else: + self.SLcontesti_ELITE2_THG_FEL2_ELITE1_SLU.setChecked(0) + if 'ELITE2_OPA_FEL2_ELITE1_SLU' in tmp: + self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU.setChecked(1) + else: + self.SLcontesti_ELITE2_OPA_FEL2_ELITE1_SLU.setChecked(0) + + elif self.contenitore[indice].archiviatore == 'slu': + if 'SHUTDOWN' in tmp: + self.SLUcontesti_SHUTDOWN.setChecked(1) + else: + self.SLUcontesti_SHUTDOWN.setChecked(0) + if 'ALLIN' in tmp: + self.SLUcontesti_ALLIN.setChecked(1) + else: + self.SLUcontesti_ALLIN.setChecked(0) + if 'ELITE1_TOTEM' in tmp: + self.SLUcontesti_ELITE1_TOTEM.setChecked(1) + else: + self.SLUcontesti_ELITE1_TOTEM.setChecked(0) + if 'ELITE1_TIMER' in tmp: + self.SLUcontesti_ELITE1_TIMER.setChecked(1) + else: + self.SLUcontesti_ELITE1_TIMER.setChecked(0) + if 'ELITE1_TIMEX' in tmp: + self.SLUcontesti_ELITE1_TIMEX.setChecked(1) + else: + self.SLUcontesti_ELITE1_TIMEX.setChecked(0) + if 'ELITE1_DIPROI' in tmp: + self.SLUcontesti_ELITE1_DIPROI.setChecked(1) + else: + self.SLUcontesti_ELITE1_DIPROI.setChecked(0) + if 'ELITE1_LDM' in tmp: + self.SLUcontesti_ELITE1_LDM.setChecked(1) + else: + self.SLUcontesti_ELITE1_LDM.setChecked(0) + if 'ELITE1_MAGNEDYN' in tmp: + self.SLUcontesti_ELITE1_MAGNEDYN.setChecked(1) + else: + self.SLUcontesti_ELITE1_MAGNEDYN.setChecked(0) + if 'ELITE2_TOTEM' in tmp: + self.SLUcontesti_ELITE2_TOTEM.setChecked(1) + else: + self.SLUcontesti_ELITE2_TOTEM.setChecked(0) + if 'ELITE2_TIMER' in tmp: + self.SLUcontesti_ELITE2_TIMER.setChecked(1) + else: + self.SLUcontesti_ELITE2_TIMER.setChecked(0) + if 'ELITE2_TIMEX' in tmp: + self.SLUcontesti_ELITE2_TIMEX.setChecked(1) + else: + self.SLUcontesti_ELITE2_TIMEX.setChecked(0) + if 'ELITE2_DIPROI' in tmp: + self.SLUcontesti_ELITE2_DIPROI.setChecked(1) + else: + self.SLUcontesti_ELITE2_DIPROI.setChecked(0) + if 'ELITE2_LDM' in tmp: + self.SLUcontesti_ELITE2_LDM.setChecked(1) + else: + self.SLUcontesti_ELITE2_LDM.setChecked(0) + if 'ELITE2_MAGNEDYN' in tmp: + self.SLUcontesti_ELITE2_MAGNEDYN.setChecked(1) + else: + self.SLUcontesti_ELITE2_MAGNEDYN.setChecked(0) + + #def handleItemClicked(self, item): + #stato = item.checkState() + ##print(stato) + #sender = self.sender() + #riga = int(sender.currentRow()) + #colonna = int(sender.currentColumn()) + #try: + #superindice = self.spaziolistaattributi.item(riga, 6).text() + #ndispositivo = int(superindice.split(',')[0]) + #nattributo = int(superindice.split(',')[1]) + #if stato == 2: + #self.contenitore[ndispositivo].attributi[nattributo].abilitato = 1 + #elif stato == 1: + #self.contenitore[ndispositivo].attributi[nattributo].abilitato = 1 + #elif stato == 0: + #self.contenitore[ndispositivo].attributi[nattributo].abilitato = 0 + #except AttributeError: + #a=1 + ##print(type(self.spaziolistaattributi.item(riga, colonna))) + + def applicacontesto(self, argomento): + print('funzione applicacontesto') + discriminatore1 = str(self.spaziolistadevice.currentItem().text()) + discriminatore2 = str(self.spaziolistaattributi.item(self.spaziolistaattributi.currentRow(), 1).text()) + for indice in range(len(self.contenitore)): + if self.contenitore[indice].dispositivo == discriminatore1 and self.contenitore[indice].attributo == discriminatore2: + tmp = self.contenitore[indice].contesti.split('|') + if self.sender().isChecked(): + if argomento in tmp: + print('applicacontesto argomento in tmp') + else: + tmp.append(argomento) + self.contenitore[indice].contesti = '|'.join(tmp) + else: + if argomento in tmp: + tmp.pop(tmp.index(argomento)) + self.contenitore[indice].contesti = '|'.join(tmp) + + def modificacampotabellaattributi(self): + print('funzione modificacampotabellaattributi') + sender = self.sender() + riga = int(sender.currentRow()) + colonna = int(sender.currentColumn()) + argomentonuovo = str(self.spaziolistaattributi.item(riga, colonna).text()) + discriminatore1 = str(self.spaziolistadevice.currentItem().text()) + discriminatore2 = str(self.spaziolistaattributi.item(riga, 1).text()) + #print(discriminatore1) + #print(discriminatore2) + for indice in range(len(self.contenitore)): + if self.contenitore[indice].dispositivo == discriminatore1 and self.contenitore[indice].attributo == discriminatore2: + #print(indice) + if colonna == 0: + argomentovecchio = self.contenitore[indice].abilitato + self.contenitore[indice].abilitato = argomentonuovo + elif colonna == 1: + argomentovecchio = self.contenitore[indice].attributo + self.contenitore[indice].attributo = argomentonuovo + elif colonna == 2: + argomentovecchio = self.contenitore[indice].sogliaassoluta + self.contenitore[indice].sogliaassoluta = argomentonuovo + elif colonna == 3: + argomentovecchio = self.contenitore[indice].sogliarelativa + self.contenitore[indice].sogliarelativa = argomentonuovo + elif colonna == 4: + argomentovecchio = self.contenitore[indice].sogliatemporale + self.contenitore[indice].sogliatemporale = argomentonuovo + elif colonna == 5: + argomentovecchio = self.contenitore[indice].cancellamidopo + self.contenitore[indice].cancellamidopo = argomentonuovo + else: + argomentovecchio = 'orrore' + + def faggiungirigaattributo(self): + print('funzione faggiungirigaattributo') + attributoinprova, ok = QInputDialog.getText(self, 'Add row', 'Enter attribute name, please:') + if ok: + try: + discriminatore = str(self.spaziolistadevice.currentItem().text()) + tmp = PyTango.AttributeProxy(str(discriminatore + '/' + attributoinprova)) + #print('fatto') + except: + ok = False + msg = QMessageBox() + msg.setIcon(QMessageBox.Warning) + msg.setText(discriminatore + '/' + attributoinprova + " NOT FOUND!!") + msg.exec_() + #print('malemalemale') + if ok: + indice = self.spaziolistaattributi.rowCount() + self.spaziolistaattributi.insertRow(indice) + self.spaziolistaattributi.setItem(indice, 0, QTableWidgetItem('1')) + self.spaziolistaattributi.setItem(indice, 1, QTableWidgetItem(attributoinprova)) + self.spaziolistaattributi.setItem(indice, 2, QTableWidgetItem('None')) + self.spaziolistaattributi.setItem(indice, 3, QTableWidgetItem('None')) + self.spaziolistaattributi.setItem(indice, 4, QTableWidgetItem('None')) + self.spaziolistaattributi.setItem(indice, 5, QTableWidgetItem('0')) + parametro2 = discriminatore.split('/')[0] + #print(parametro2) + parametro5 = PyTango.DeviceProxy(discriminatore).info().dev_class + #print(parametro5) + self.contenitore.append(elementodalog(1, parametro2, discriminatore, attributoinprova, parametro5, 'None', 'None', 'None', 'ALLIN', '0')) + + def generalista(self): + print('funzione generalista') + prologo = 'tango://srv-tango-srf.fcs.elettra.trieste.it:20000/' + #, ABSOLUTE: None, RELATIVE: None, PERIOD: None, strategy=ALLIN;ttl=0' + listone = [] + attibuti_nok =[] + for indice in range(len(self.contenitore)): + if self.contenitore[indice].abilitato == '1' or self.contenitore[indice].abilitato == 1: + #controllo sintassi contesti + #if self.contenitore[indice].contesti[0] == '|' or self.contenitore[indice].contesti[-1] == '|': + #self.contenitore[indice].contesti[0].strip('|') + try: + #tmp = PyTango.AttributeProxy(self.contenitore[indice].indirizzo + '/' + self.contenitore[indice].attributi[indice2].nome) + elemento = prologo + self.contenitore[indice].dispositivo + '/' + self.contenitore[indice].attributo + ', ABSOLUTE: ' + self.contenitore[indice].sogliaassoluta + ', RELATIVE: ' + self.contenitore[indice].sogliarelativa + ', PERIOD: ' + self.contenitore[indice].sogliatemporale + ', strategy=' + self.contenitore[indice].contesti + '; ttl=' + self.contenitore[indice].cancellamidopo + '\n' + listone.append(elemento) + except PyTango.WrongNameSyntax: + attibuti_nok.append(self.contenitore[indice].indirizzo + '/' + self.contenitore[indice].attributi[indice2].nome +'\n') + if len(attibuti_nok) == 0: + #print(listone) + d = self.contenitore[0].archiviatore + maniglia = open('/home/lfo/data/hdbliste/hdbNUOVAlista_' + d + '.txt', 'w') + maniglia.writelines(listone) + maniglia.close() + else: + #messaggio errore con attributi attibuti_nok + print(attibuti_nok) + +class elementodalog: + def __init__(self, argomento1, argomento2, argomento3, argomento4, argomento5, argomento6, argomento7, argomento8, argomento9, argomento10): + self.abilitato = argomento1 #es. '1' + self.archiviatore = argomento2 #es. 'pil' + self.dispositivo = argomento3 #es. pil/timing/tmu_pil.01 + self.attributo = argomento4 #es. 'State' + self.classe = argomento5 #es. 'Keithley2701' + self.sogliaassoluta = argomento6 #es. '0.01' + self.sogliarelativa = argomento7 #es. '10' + self.sogliatemporale = argomento8 #es. '3600000' + self.contesti = argomento9 #es. 'ALLIN|LASER_ON' + self.cancellamidopo = argomento10 #es. '31536000000' + + +##################################################################################### +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() + larghezzaaltezza = [screen.width(), screen.height()] + print(larghezzaaltezza) + if max(larghezzaaltezza) > 3000: + dimensione = max(larghezzaaltezza)*0.38 + elif max(larghezzaaltezza) > 2000: + dimensione = max(larghezzaaltezza)*0.6 + elif max(larghezzaaltezza) > 1000: + dimensione = max(larghezzaaltezza)*0.7 + else: + dimensione = max(larghezzaaltezza)*2 + font_pannello = QFont("Arial", round(dimensione/100.0), -1, False) + app.setFont(font_pannello) + window = MainWindow() +# window.resize(larghezzaaltezza[0]/6, larghezzaaltezza[1]/6) + window.show() + app.exec_()