From f25cb63ff221915590ae4013ca078874022f521d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Augusto=20Rosa=20Feltran?= Date: Thu, 31 Oct 2024 14:50:01 -0300 Subject: [PATCH] Removed Conditioning window and added it's informations to Loop's group box --- pyqt-apps/scripts/sirius-hla-bo-rf-control.py | 9 +- pyqt-apps/scripts/sirius-hla-si-rf-control.py | 9 +- .../advanced_details/__init__.py | 1 - .../advanced_details/conditioning.py | 99 ------------------- .../as_rf_control/advanced_details/loops.py | 99 ++++++++++++++++--- pyqt-apps/siriushla/as_rf_control/control.py | 2 - pyqt-apps/siriushla/as_rf_control/util.py | 54 +++++----- 7 files changed, 118 insertions(+), 155 deletions(-) delete mode 100644 pyqt-apps/siriushla/as_rf_control/advanced_details/conditioning.py diff --git a/pyqt-apps/scripts/sirius-hla-bo-rf-control.py b/pyqt-apps/scripts/sirius-hla-bo-rf-control.py index 2e671977c..43f931e55 100755 --- a/pyqt-apps/scripts/sirius-hla-bo-rf-control.py +++ b/pyqt-apps/scripts/sirius-hla-bo-rf-control.py @@ -5,17 +5,15 @@ import argparse as _argparse import sys -from siriuspy.envars import VACA_PREFIX - from siriushla.as_rf_control.advanced_details import ADCDACDetails, \ - AutoStartDetails, CalEqDetails, CalSysDetails, ConditioningDetails, \ - HardwareDetails, LoopsDetails, RampsDetails, RFInputsDetails, \ - TuningDetails + AutoStartDetails, CalEqDetails, CalSysDetails, HardwareDetails, \ + LoopsDetails, RampsDetails, RFInputsDetails, TuningDetails from siriushla.as_rf_control.control import RFMainControl from siriushla.as_rf_control.details import CavityStatusDetails, FDLDetails, \ LLRFInterlockDetails, SlowLoopErrorDetails, SlowLoopParametersDetails, \ SSADetailsBO, TempMonitor, TransmLineStatusDetails from siriushla.sirius_application import SiriusApplication +from siriuspy.envars import VACA_PREFIX parser = _argparse.ArgumentParser( description="Run RF Control Interface.") @@ -31,7 +29,6 @@ 'auto-start': AutoStartDetails, 'cal-eq': CalEqDetails, 'cal-sys': CalSysDetails, - 'conditioning': ConditioningDetails, 'hardware': HardwareDetails, 'loops': LoopsDetails, 'ramps': RampsDetails, diff --git a/pyqt-apps/scripts/sirius-hla-si-rf-control.py b/pyqt-apps/scripts/sirius-hla-si-rf-control.py index 840e9827e..4dfdcfbc1 100755 --- a/pyqt-apps/scripts/sirius-hla-si-rf-control.py +++ b/pyqt-apps/scripts/sirius-hla-si-rf-control.py @@ -5,17 +5,15 @@ import argparse as _argparse import sys -from siriuspy.envars import VACA_PREFIX - from siriushla.as_rf_control.advanced_details import ADCDACDetails, \ - AutoStartDetails, CalEqDetails, CalSysDetails, ConditioningDetails, \ - HardwareDetails, LoopsDetails, RampsDetails, RFInputsDetails, \ - TuningDetails + AutoStartDetails, CalEqDetails, CalSysDetails, HardwareDetails, \ + LoopsDetails, RampsDetails, RFInputsDetails, TuningDetails from siriushla.as_rf_control.control import RFMainControl from siriushla.as_rf_control.details import CavityStatusDetails, FDLDetails, \ LLRFInterlockDetails, SlowLoopErrorDetails, SlowLoopParametersDetails, \ SSADetailsSI, TempMonitor, TransmLineStatusDetails from siriushla.sirius_application import SiriusApplication +from siriuspy.envars import VACA_PREFIX parser = _argparse.ArgumentParser( description="Run RF Control Interface.") @@ -35,7 +33,6 @@ 'auto-start': AutoStartDetails, 'cal-eq': CalEqDetails, 'cal-sys': CalSysDetails, - 'conditioning': ConditioningDetails, 'hardware': HardwareDetails, 'loops': LoopsDetails, 'ramps': RampsDetails, diff --git a/pyqt-apps/siriushla/as_rf_control/advanced_details/__init__.py b/pyqt-apps/siriushla/as_rf_control/advanced_details/__init__.py index 9882deaeb..1a02a3985 100644 --- a/pyqt-apps/siriushla/as_rf_control/advanced_details/__init__.py +++ b/pyqt-apps/siriushla/as_rf_control/advanced_details/__init__.py @@ -4,7 +4,6 @@ from .auto_start import AutoStartDetails from .cal_eq import CalEqDetails from .cal_sys import CalSysDetails -from .conditioning import ConditioningDetails from .hardware import HardwareDetails from .loops import LoopsDetails from .ramps import RampsDetails diff --git a/pyqt-apps/siriushla/as_rf_control/advanced_details/conditioning.py b/pyqt-apps/siriushla/as_rf_control/advanced_details/conditioning.py deleted file mode 100644 index a4e535a63..000000000 --- a/pyqt-apps/siriushla/as_rf_control/advanced_details/conditioning.py +++ /dev/null @@ -1,99 +0,0 @@ -"""Conditioning advanced details.""" - -from qtpy.QtCore import Qt -from qtpy.QtWidgets import QGridLayout, QLabel - -from ...widgets import PyDMStateButton, SiriusDialog, SiriusLabel, \ - SiriusLedState, SiriusSpinbox -from ..util import DEFAULT_STYLESHEET, SEC_2_CHANNELS - - -class ConditioningDetails(SiriusDialog): - """Conditioning advanced details.""" - - def __init__(self, parent=None, prefix='', section='', system=''): - """Init.""" - super().__init__(parent) - self.prefix = prefix - self.prefix += ('-' if prefix and not prefix.endswith('-') else '') - self.section = section - self.system = system - self.chs = SEC_2_CHANNELS[self.section] - self.setObjectName(self.section+'App') - self.title = 'Conditioning Details' - self.title += (f' - {self.system}' if self.section == 'SI' else '') - self.setWindowTitle(self.title) - if self.section == 'SI': - self.syst_dict = self.chs['Conditioning'][self.system] - else: - self.syst_dict = self.chs['Conditioning'] - self._setupUi() - - def _setupUi(self): - self.setStyleSheet(DEFAULT_STYLESHEET) - lay = QGridLayout(self) - lay.setAlignment(Qt.AlignTop) - lay.setSpacing(9) - lay.addWidget(QLabel( - f'

{self.title}

', alignment=Qt.AlignCenter), 0, 0, 1, 4) - - # Pulse Enable - self._setupLedState(lay, '200', 1, True) - - # Auto Cond Enable - self._setupLedState(lay, '201', 2, True) - - # Duty Cycle - self._setupLabelEdit(lay, '202', 3) - - # Duty Cycle RB - lb_condfreq = SiriusLabel(self, self.prefix+self.syst_dict['530'][1]) - lb_condfreq.showUnits = True - lay.addWidget(QLabel('530'), 4, 0) - lay.addWidget(QLabel(self.syst_dict['530'][0]), 4, 1) - lay.addWidget(lb_condfreq, 4, 3, alignment=Qt.AlignCenter) - - row = 5 - if self.section == 'BO': - relay_keys = [ - 'CGC Fast Relay', 'Relay Setpoint RB', 'Relay Hysteria RB'] - for key in relay_keys: - lb_relay = SiriusLabel( - self, self.prefix+self.syst_dict['Relay'][key]+'-RB') - lb_relay.showUnits = True - - lay.addWidget(QLabel(key), row, 1) - if key.split()[-1] != 'RB': - lay.addWidget(SiriusSpinbox( - self, self.prefix+self.syst_dict['Relay'][key]+'-SP'), - row, 2) - lay.addWidget(lb_relay, row, 3) - row += 1 - - # Vacuum - self._setupLedState(lay, '79', row, False) - - def _setupLedState(self, lay, key, row, has_button): - lay.addWidget(QLabel(key), row, 0) - lay.addWidget(QLabel(self.syst_dict[key][0]), row, 1) - - ending = '' - if has_button: - lay.addWidget(PyDMStateButton( - self, self.prefix+self.syst_dict[key][1]+'-Sel'), - row, 2, alignment=Qt.AlignCenter) - ending = '-Sts' - - lay.addWidget(SiriusLedState( - self, self.prefix+self.syst_dict[key][1]+ending), - row, 3, alignment=Qt.AlignCenter) - - def _setupLabelEdit(self, lay, key, row): - label = SiriusLabel(self, self.prefix+self.syst_dict[key][1]+'-RB') - label.showUnits = True - - lay.addWidget(QLabel(key), row, 0) - lay.addWidget(QLabel(self.syst_dict[key][0]), row, 1) - lay.addWidget(SiriusSpinbox( - self, self.prefix+self.syst_dict[key][1]+'-SP'), row, 2) - lay.addWidget(label, row, 3, alignment=Qt.AlignCenter) diff --git a/pyqt-apps/siriushla/as_rf_control/advanced_details/loops.py b/pyqt-apps/siriushla/as_rf_control/advanced_details/loops.py index ef8053c90..72d2814a1 100644 --- a/pyqt-apps/siriushla/as_rf_control/advanced_details/loops.py +++ b/pyqt-apps/siriushla/as_rf_control/advanced_details/loops.py @@ -47,8 +47,7 @@ def _setupUi(self): " border-right: 2px solid gray;}") wid_controls = QWidget(self) - wid_controls.setLayout( - self._loopsControlLayout(self.syst_dict['Control'])) + wid_controls.setLayout(self._loopsControlLayout()) dtls.addTab(wid_controls, 'Loops Control') wid_iq = QWidget(self) @@ -63,11 +62,26 @@ def _setupUi(self): f'

{self.title}

', alignment=Qt.AlignCenter)) lay.addWidget(dtls) - def _loopsControlLayout(self, chs_dict): - lay = QGridLayout() + def _loopsControlLayout(self): + lay = QVBoxLayout() lay.setAlignment(Qt.AlignTop) lay.setSpacing(9) + gbox_gen = QGroupBox('General Controls') + gbox_gen.setLayout(self._setupGeneralControlsLayout(self.syst_dict['Control'])) + + gbox_cond = QGroupBox('Conditioning') + gbox_cond.setLayout(self._setupConditioningLayout(self.syst_dict['Conditioning'])) + + lay.addWidget(gbox_gen) + lay.addWidget(gbox_cond) + + return lay + + def _setupGeneralControlsLayout(self, chs_dict): + lay = QGridLayout() + lay.setSpacing(9) + # Amp Loop Ref self._setupLabelEdit(lay, chs_dict, '24 mV', 0, 0) self._setupLabelEdit(lay, chs_dict, '24 VGap', 1, 0) @@ -79,7 +93,7 @@ def _loopsControlLayout(self, chs_dict): lb_vinc = SiriusLabel(self, self.prefix+chs_dict['29'][1]+'-RB', alignment=Qt.AlignCenter) lb_vinc.showUnits = True - lay.addWidget(QLabel('29'), 3, 0) + lay.addWidget(QLabel('29', alignment=Qt.AlignCenter), 3, 0) lay.addWidget(QLabel(chs_dict['29'][0]), 3, 1) lay.addWidget(SiriusEnumComboBox( self, self.prefix+chs_dict['29'][1]+'-SP'), @@ -90,7 +104,7 @@ def _loopsControlLayout(self, chs_dict): lb_pinc = SiriusLabel(self, self.prefix+chs_dict['28'][1]+'-RB', alignment=Qt.AlignCenter) lb_pinc.showUnits = True - lay.addWidget(QLabel('28'), 4, 0) + lay.addWidget(QLabel('28', alignment=Qt.AlignCenter), 4, 0) lay.addWidget(QLabel(chs_dict['28'][0]), 4, 1) lay.addWidget(SiriusEnumComboBox( self, self.prefix+chs_dict['28'][1]+'-SP'), @@ -98,7 +112,7 @@ def _loopsControlLayout(self, chs_dict): lay.addWidget(lb_pinc, 4, 3) # Look Reference - lay.addWidget(QLabel('106'), 5, 0) + lay.addWidget(QLabel('106', alignment=Qt.AlignCenter), 5, 0) lay.addWidget(QLabel(chs_dict['106'][0]), 5, 1) lay.addWidget(SiriusPushButton( self, self.prefix+chs_dict['106'][1], @@ -109,7 +123,7 @@ def _loopsControlLayout(self, chs_dict): 5, 3, alignment=Qt.AlignCenter) # # Rect/Polar Mode Select - lay.addWidget(QLabel('114'), 6, 0) + lay.addWidget(QLabel('114', alignment=Qt.AlignCenter), 6, 0) lay.addWidget(QLabel(chs_dict['114'][0]), 6, 1) lay.addWidget(SiriusEnumComboBox( self, self.prefix+chs_dict['114'][1]+'-Sel'), @@ -118,7 +132,7 @@ def _loopsControlLayout(self, chs_dict): alignment=Qt.AlignCenter), 6, 3) # Quadrant Selection - lay.addWidget(QLabel('107'), 7, 0) + lay.addWidget(QLabel('107', alignment=Qt.AlignCenter), 7, 0) lay.addWidget(QLabel(chs_dict['107'][0]), 7, 1) lay.addWidget(SiriusEnumComboBox( self, self.prefix+chs_dict['107'][1]+'-Sel'), @@ -149,7 +163,7 @@ def _loopsControlLayout(self, chs_dict): self._setupLabelEdit(lay, chs_dict, '30', 3, 5) # Phase Correction Control - lay.addWidget(QLabel('31'), 4, 5) + lay.addWidget(QLabel('31', alignment=Qt.AlignCenter), 4, 5) lay.addWidget(QLabel(chs_dict['31'][0]), 4, 6) lay.addWidget(PyDMStateButton( self, self.prefix+chs_dict['31'][1]+'-Sel'), 4, 7) @@ -161,7 +175,7 @@ def _loopsControlLayout(self, chs_dict): lb_80 = SiriusLabel(self, self.prefix+chs_dict['80'][1], alignment=Qt.AlignCenter) lb_80.showUnits = True - lay.addWidget(QLabel('80'), 5, 5) + lay.addWidget(QLabel('80', alignment=Qt.AlignCenter), 5, 5) lay.addWidget(QLabel(chs_dict['80'][0]), 5, 6) lay.addWidget(lb_80, 5, 8) @@ -169,7 +183,7 @@ def _loopsControlLayout(self, chs_dict): lb_81 = SiriusLabel(self, self.prefix+chs_dict['81'][1], alignment=Qt.AlignCenter) lb_81.showUnits = True - lay.addWidget(QLabel('81'), 6, 5) + lay.addWidget(QLabel('81', alignment=Qt.AlignCenter), 6, 5) lay.addWidget(QLabel(chs_dict['81'][0]), 6, 6) lay.addWidget(lb_81, 6, 8) @@ -178,16 +192,75 @@ def _loopsControlLayout(self, chs_dict): return lay + def _setupConditioningLayout(self, chs_dict): + lay = QGridLayout(self) + lay.setAlignment(Qt.AlignTop) + lay.setSpacing(9) + + # Pulse Enable + self._setupLedState(lay, chs_dict, '200', 0, True) + + # Auto Cond Enable + self._setupLedState(lay, chs_dict, '201', 1, True) + + # Vacuum + self._setupLedState(lay, chs_dict, '79', 2, False) + + # Duty Cycle + self._setupLabelEdit(lay, chs_dict, '202', 0, 4) + + # Duty Cycle RB + lb_condfreq = SiriusLabel(self, self.prefix+chs_dict['530'][1]) + lb_condfreq.showUnits = True + lay.addWidget(QLabel('530', alignment=Qt.AlignCenter), 1, 4) + lay.addWidget(QLabel(chs_dict['530'][0]), 1, 5) + lay.addWidget(lb_condfreq, 1, 7, alignment=Qt.AlignCenter) + + row = 2 + if self.section == 'BO': + relay_keys = [ + 'CGC Fast Relay', 'Relay Setpoint RB', 'Relay Hysteria RB'] + for key in relay_keys: + lb_relay = SiriusLabel( + self, self.prefix+chs_dict['Relay'][key]+'-RB') + lb_relay.showUnits = True + + lay.addWidget(QLabel(key), row, 5) + if key.split()[-1] != 'RB': + lay.addWidget(SiriusSpinbox( + self, self.prefix+chs_dict['Relay'][key]+'-SP'), + row, 6) + lay.addWidget(lb_relay, row, 7) + row += 1 + + return lay + def _setupLabelEdit(self, lay, chs_dict, key, row, column): label = SiriusLabel(self, self.prefix+chs_dict[key][1]+'-RB') label.showUnits = True - lay.addWidget(QLabel(key.split()[0]), row, column) + lay.addWidget(QLabel( + key.split()[0], alignment=Qt.AlignCenter), row, column) lay.addWidget(QLabel(chs_dict[key][0]), row, column+1) lay.addWidget(SiriusSpinbox( self, self.prefix+chs_dict[key][1]+'-SP'), row, column+2) lay.addWidget(label, row, column+3, alignment=Qt.AlignCenter) + def _setupLedState(self, lay, chs_dict, key, row, has_button): + lay.addWidget(QLabel(key, alignment=Qt.AlignCenter), row, 0) + lay.addWidget(QLabel(chs_dict[key][0]), row, 1) + + ending = '' + if has_button: + lay.addWidget(PyDMStateButton( + self, self.prefix+chs_dict[key][1]+'-Sel'), + row, 2, alignment=Qt.AlignCenter) + ending = '-Sts' + + lay.addWidget(SiriusLedState( + self, self.prefix+chs_dict[key][1]+ending), + row, 3, alignment=Qt.AlignCenter) + def _specificLoopsLayout(self, rect_or_polar): lay = QVBoxLayout() lay.setAlignment(Qt.AlignTop) diff --git a/pyqt-apps/siriushla/as_rf_control/control.py b/pyqt-apps/siriushla/as_rf_control/control.py index e2c82a113..dc7335a85 100644 --- a/pyqt-apps/siriushla/as_rf_control/control.py +++ b/pyqt-apps/siriushla/as_rf_control/control.py @@ -921,8 +921,6 @@ def _advancedDetailsLayout(self): 'Cavity Ramps', 'ramps', systems[i], buttons) self._addDetailButton( 'Auto Start', 'auto-start', systems[i], buttons) - self._addDetailButton( - 'Conditioning', 'conditioning', systems[i], buttons) self._addDetailButton( 'Tuning', 'tuning', systems[i], buttons) self._addDetailButton( diff --git a/pyqt-apps/siriushla/as_rf_control/util.py b/pyqt-apps/siriushla/as_rf_control/util.py index e0b6d3450..d1d6def39 100644 --- a/pyqt-apps/siriushla/as_rf_control/util.py +++ b/pyqt-apps/siriushla/as_rf_control/util.py @@ -667,6 +667,18 @@ '0': ['Slow Loop Kp', 'RA-RaBO01:RF-LLRF:SLKP'], } }, + 'Conditioning': { + '200': ['Pulse Mode Enable', 'RA-RaBO01:RF-LLRF:CondEnbl'], + '201': ['Auto Conditioning Enable', 'RA-RaBO01:RF-LLRF:CondAuto'], + '202': ['Duty Cycle', 'RA-RaBO01:RF-LLRF:CondDuty'], + '530': ['Duty Cycle Ref', 'RA-RaBO01:RF-LLRF:CondDutyCycle-Mon'], + '79': ['Vacuum', 'RA-RaBO01:RF-LLRF:VacuumFastRly-Mon'], + 'Relay': { + 'CGC Fast Relay': 'BO-05D:VA-CCG-RFC:FastRelay', + 'Relay Setpoint RB': 'BO-RA02:VA-VGC-01:Relay1:Setpoint', + 'Relay Hysteria RB': 'BO-RA02:VA-VGC-01:Relay1:Hyst' + } + }, 'General': { '0': { 'Label': 'Cavity Voltage', @@ -1147,18 +1159,6 @@ '23': ['Command Start', 'RA-RaBO01:RF-LLRF:AutoStartupCmdStart'], '500': ['State Start', 'RA-RaBO01:RF-LLRF:AutoStartState-Mon'] }, - 'Conditioning': { - '200': ['Pulse Mode Enable', 'RA-RaBO01:RF-LLRF:CondEnbl'], - '201': ['Auto Conditioning Enable', 'RA-RaBO01:RF-LLRF:CondAuto'], - '202': ['Duty Cycle', 'RA-RaBO01:RF-LLRF:CondDuty'], - '530': ['Duty Cycle Ref', 'RA-RaBO01:RF-LLRF:CondDutyCycle-Mon'], - '79': ['Vacuum', 'RA-RaBO01:RF-LLRF:VacuumFastRly-Mon'], - 'Relay': { - 'CGC Fast Relay': 'BO-05D:VA-CCG-RFC:FastRelay', - 'Relay Setpoint RB': 'BO-RA02:VA-VGC-01:Relay1:Setpoint', - 'Relay Hysteria RB': 'BO-RA02:VA-VGC-01:Relay1:Hyst' - } - }, 'TunDtls': { 'General': { '34': ['Fwd Pwr Amplitude', 'RA-RaBO01:RF-LLRF:CavFwdAmp-Mon'], @@ -2960,6 +2960,13 @@ '0': ['Slow Loop Kp', 'RA-RaSIA01:RF-LLRF:SLKP'], } }, + 'Conditioning': { + '200': ['Pulse Mode Enable', 'RA-RaSIA01:RF-LLRF:CondEnbl'], + '201': ['Auto Conditioning Enable', 'RA-RaSIA01:RF-LLRF:CondAuto'], + '202': ['Duty Cycle', 'RA-RaSIA01:RF-LLRF:CondDuty'], + '530': ['Duty Cycle Ref', 'RA-RaSIA01:RF-LLRF:CondDutyCycle-Mon'], + '79': ['Vacuum', 'RA-RaSIA01:RF-LLRF:VacuumFastRly-Mon'], + }, 'General': { '0': { 'Label': 'Cavity Voltage', @@ -3262,6 +3269,13 @@ '0': ['Slow Loop Kp', 'RA-RaSIB01:RF-LLRF:SLKP'], } }, + 'Conditioning': { + '200': ['Pulse Mode Enable', 'RA-RaSIB01:RF-LLRF:CondEnbl'], + '201': ['Auto Conditioning Enable', 'RA-RaSIB01:RF-LLRF:CondAuto'], + '202': ['Duty Cycle', 'RA-RaSIB01:RF-LLRF:CondDuty'], + '530': ['Duty Cycle Ref', 'RA-RaSIB01:RF-LLRF:CondDutyCycle-Mon'], + '79': ['Vacuum', 'RA-RaSIB01:RF-LLRF:VacuumFastRly-Mon'], + }, 'General': { '0': { 'Label': 'Cavity Voltage', @@ -4008,22 +4022,6 @@ '500': ['State Start', 'RA-RaSIB01:RF-LLRF:AutoStartState-Mon'] } }, - 'Conditioning': { - 'A': { - '200': ['Pulse Mode Enable', 'RA-RaSIA01:RF-LLRF:CondEnbl'], - '201': ['Auto Conditioning Enable', 'RA-RaSIA01:RF-LLRF:CondAuto'], - '202': ['Duty Cycle', 'RA-RaSIA01:RF-LLRF:CondDuty'], - '530': ['Duty Cycle Ref', 'RA-RaSIA01:RF-LLRF:CondDutyCycle-Mon'], - '79': ['Vacuum', 'RA-RaSIA01:RF-LLRF:VacuumFastRly-Mon'], - }, - 'B': { - '200': ['Pulse Mode Enable', 'RA-RaSIB01:RF-LLRF:CondEnbl'], - '201': ['Auto Conditioning Enable', 'RA-RaSIB01:RF-LLRF:CondAuto'], - '202': ['Duty Cycle', 'RA-RaSIB01:RF-LLRF:CondDuty'], - '530': ['Duty Cycle Ref', 'RA-RaSIB01:RF-LLRF:CondDutyCycle-Mon'], - '79': ['Vacuum', 'RA-RaSIB01:RF-LLRF:VacuumFastRly-Mon'], - } - }, 'TunDtls': { 'A': { 'General': {