diff --git a/pyqt-apps/siriushla/as_rf_control/control.py b/pyqt-apps/siriushla/as_rf_control/control.py index 860037485..784e7b38a 100644 --- a/pyqt-apps/siriushla/as_rf_control/control.py +++ b/pyqt-apps/siriushla/as_rf_control/control.py @@ -18,7 +18,8 @@ SiriusWaveformPlot from .custom_widgets import RFEnblDsblButton from .details import CavityStatusDetails, FDLMonitor, LLRFInterlockDetails, \ - TempMonitor, TransmLineStatusDetails + TransmLineStatusDetails, SlowLoopErrorDetails, SlowLoopParametersDetails, \ + TempMonitor from .util import SEC_2_CHANNELS @@ -156,8 +157,6 @@ def _statusLayout(self): # # LLRF Interlock self.ld_intlk = QLabel('LLRF Interlock', self, alignment=Qt.AlignRight) - self.led_intlk = SiriusLedAlert( - self, self.prefix+self.chs['LLRF Intlk']) self.pb_intlkdtls = QPushButton(qta.icon('fa5s.ellipsis-v'), '', self) self.pb_intlkdtls.setObjectName('dtls') self.pb_intlkdtls.setStyleSheet( @@ -165,6 +164,25 @@ def _statusLayout(self): connect_window(self.pb_intlkdtls, LLRFInterlockDetails, parent=self, section=self.section, prefix=self.prefix) + if self.section == 'SI': + lay_llrf_intlk = QGridLayout() + lay_llrf_intlk.addWidget(self.ld_intlk, 0, 0, + alignment=Qt.AlignVCenter) + lay_llrf_intlk.addWidget(self.pb_intlkdtls, + 0, 1, alignment=Qt.AlignCenter) + + offset = 1 + for key, val in self.chs['LLRF Intlk'].items(): + ld_llrf = QLabel( + f'• {key}', alignment=Qt.AlignRight | Qt.AlignVCenter) + led_llrf = SiriusLedAlert(self, self.prefix+val) + lay_llrf_intlk.addWidget(ld_llrf, offset, 0) + lay_llrf_intlk.addWidget(led_llrf, offset, 1) + offset += 1 + else: + self.led_llrf = SiriusLedAlert( + self, self.prefix+self.chs['LLRF Intlk']) + # Status self._ld_stats = QLabel( '

Status

', self, alignment=Qt.AlignLeft) @@ -182,8 +200,6 @@ def _statusLayout(self): # # Status Transmission Line self.ld_tlsts = QLabel('Transm. Line', self, alignment=Qt.AlignRight) - self.led_tlsts = PyDMLedMultiChannel( - self, {self.prefix+self.chs['TL Sts']['Geral']: 1}) self.pb_tldtls = QPushButton(qta.icon('fa5s.ellipsis-v'), '', self) self.pb_tldtls.setObjectName('dtls') self.pb_tldtls.setStyleSheet( @@ -191,63 +207,138 @@ def _statusLayout(self): connect_window(self.pb_tldtls, TransmLineStatusDetails, parent=self, section=self.section, prefix=self.prefix) + if self.section == 'SI': + lay_tl = QGridLayout() + lay_tl.addWidget(self.ld_tlsts, 0, 0, + alignment=Qt.AlignVCenter) + lay_tl.addWidget(self.pb_tldtls, 0, 1, + alignment=Qt.AlignCenter) + + offset = 1 + for key, chs_dict in self.chs['TL Sts'].items(): + ld_tlsts = QLabel( + f'• {key}', alignment=Qt.AlignRight | Qt.AlignVCenter) + led_tlsts = PyDMLedMultiChannel( + self, {self.prefix+chs_dict['Geral']: 1}) + lay_tl.addWidget(ld_tlsts, offset, 0) + lay_tl.addWidget(led_tlsts, offset, 1) + offset += 1 + else: + self.led_tlsts = PyDMLedMultiChannel( + self, {self.prefix+self.chs['TL Sts']['Geral']: 1}) + # Reset self._ld_reset = QLabel('

Reset

', self, alignment=Qt.AlignLeft) # # Reset Global - self.ld_globreset = QLabel( - 'Reset Global', self, alignment=Qt.AlignRight) - self.pb_globreset = SiriusPushButton( + self.ld_glbl = QLabel('Reset Global', self, alignment=Qt.AlignRight) + self.pb_glbl = SiriusPushButton( label='', icon=qta.icon('fa5s.sync'), releaseValue=0, parent=self, init_channel=self.prefix+self.chs['Reset']['Global']) - self.pb_globreset.setObjectName('pb_globreset') - self.pb_globreset.setStyleSheet( - '#pb_globreset{min-width:25px; max-width:25px; icon-size:20px;}') + self.pb_glbl.setStyleSheet( + 'min-width:25px; max-width:25px; icon-size:20px;') # # Reset LLRF - self.ld_llrfreset = QLabel('Reset LLRF', self, alignment=Qt.AlignRight) - self.pb_llrfreset = SiriusPushButton( - label='', icon=qta.icon('fa5s.sync'), releaseValue=0, - parent=self, init_channel=self.prefix+self.chs['Reset']['LLRF']) - self.pb_llrfreset.setObjectName('pb_llrfreset') - self.pb_llrfreset.setStyleSheet( - '#pb_llrfreset{min-width:25px; max-width:25px; icon-size:20px;}') + self.ld_llrf = QLabel('Reset LLRF', self, alignment=Qt.AlignRight) + if self.section == 'SI': + lay_llrf_reset = QGridLayout() + lay_llrf_reset.addWidget(self.ld_llrf, 0, 0) + + offset = 1 + for key, val in self.chs['Reset'].items(): + if key != 'Global': + ld_llrf = QLabel( + f'• {key}', self, + alignment=Qt.AlignRight | Qt.AlignVCenter) + pb_llrf = SiriusPushButton( + label='', icon=qta.icon('fa5s.sync'), releaseValue=0, + parent=self, init_channel=self.prefix+val) + pb_llrf.setStyleSheet( + 'min-width:25px; max-width:25px; icon-size:20px;') + lay_llrf_reset.addWidget(ld_llrf, offset, 0) + lay_llrf_reset.addWidget(pb_llrf, offset, 1) + offset += 1 + else: + self.pb_llrf = SiriusPushButton( + init_channel=self.prefix+self.chs['Reset']['LLRF'], + label='', icon=qta.icon('fa5s.sync'), + parent=self, releaseValue=0) + self.pb_llrf.setStyleSheet( + 'min-width:25px; max-width:25px; icon-size:20px;') # Auxiliary Windows - self._ld_fdl = QLabel( + self._ld_aux = QLabel( '

Auxiliary Windows

', self, alignment=Qt.AlignLeft) # # Open FDL - self.pb_openfdl = QPushButton( - qta.icon('fa5s.external-link-alt'), ' FDL', self) - connect_window( - self.pb_openfdl, FDLMonitor, parent=self, - prefix=self.prefix, section=self.section) + self.ld_fdl = QLabel( + 'LLRF FDL', self, alignment=Qt.AlignRight | Qt.AlignVCenter) + if self.section == 'SI': + lay_fdl = QGridLayout() + lay_fdl.addWidget(self.ld_fdl, 0, 0) + offset = 1 + for key, val in self.chs['FDL'].items(): + ld_llrf = QLabel( + f'• {key}', self, + alignment=Qt.AlignRight | Qt.AlignVCenter) + pb_llrf = QPushButton( + qta.icon('fa5s.external-link-alt'), '', self) + pb_llrf.setStyleSheet( + 'min-width:25px; max-width:25px; icon-size:20px;') + connect_window( + pb_llrf, FDLMonitor, parent=self, prefix=self.prefix, + section=self.section, chs=val) + + lay_fdl.addWidget(ld_llrf, offset, 0) + lay_fdl.addWidget(pb_llrf, offset, 1) + offset += 1 + else: + self.pb_openfdl = QPushButton( + qta.icon('fa5s.external-link-alt'), '', self) + self.pb_openfdl.setStyleSheet( + 'min-width:25px; max-width:25px; icon-size:20px;') + connect_window( + self.pb_openfdl, FDLMonitor, parent=self, + prefix=self.prefix, section=self.section, chs=self.chs['FDL']) lay = QGridLayout() + lay.setHorizontalSpacing(6) lay.setAlignment(Qt.AlignTop) lay.addWidget(self._ld_intlks, 0, 0, 1, 3) - lay.addWidget(self.ld_emerg, 1, 0) + lay.addWidget(self.ld_emerg, 1, 0, alignment=Qt.AlignVCenter) lay.addWidget(self.led_emerg, 1, 1) - lay.addWidget(self.ld_siriusintlk, 2, 0) + lay.addWidget(self.ld_siriusintlk, 2, 0, alignment=Qt.AlignVCenter) lay.addWidget(self.led_siriusintlk, 2, 1) - lay.addWidget(self.ld_intlk, 3, 0) - lay.addWidget(self.led_intlk, 3, 1) - lay.addWidget(self.pb_intlkdtls, 3, 2) + if self.section == 'SI': + lay.addLayout(lay_llrf_intlk, 3, 0, 1, 2) + else: + lay.addWidget(self.ld_intlk, 3, 0, alignment=Qt.AlignVCenter) + lay.addWidget(self.led_llrf, 3, 1) + lay.addWidget(self.pb_intlkdtls, 3, 2) lay.addWidget(self._ld_stats, 4, 0, 1, 3) - lay.addWidget(self.ld_cavsts, 5, 0) + lay.addWidget(self.ld_cavsts, 5, 0, alignment=Qt.AlignVCenter) lay.addWidget(self.led_cavsts, 5, 1) lay.addWidget(self.pb_cavdtls, 5, 2) - lay.addWidget(self.ld_tlsts, 6, 0) - lay.addWidget(self.led_tlsts, 6, 1) - lay.addWidget(self.pb_tldtls, 6, 2) + if self.section == 'SI': + lay.addLayout(lay_tl, 6, 0, 1, 2) + else: + lay.addWidget(self.ld_tlsts, 6, 0, alignment=Qt.AlignVCenter) + lay.addWidget(self.led_tlsts, 6, 1) + lay.addWidget(self.pb_tldtls, 6, 2) lay.addWidget(self._ld_reset, 7, 0, 1, 3) - lay.addWidget(self.ld_globreset, 8, 0) - lay.addWidget(self.pb_globreset, 8, 1) - lay.addWidget(self.ld_llrfreset, 9, 0) - lay.addWidget(self.pb_llrfreset, 9, 1) - lay.addWidget(self._ld_fdl, 10, 0, 1, 3) - lay.addWidget(self.pb_openfdl, 11, 0, alignment=Qt.AlignRight) + lay.addWidget(self.ld_glbl, 8, 0, alignment=Qt.AlignVCenter) + lay.addWidget(self.pb_glbl, 8, 1) + if self.section == 'SI': + lay.addLayout(lay_llrf_reset, 9, 0, 1, 2) + else: + lay.addWidget(self.ld_llrf, 9, 0, alignment=Qt.AlignVCenter) + lay.addWidget(self.pb_llrf, 9, 1) + lay.addWidget(self._ld_aux, 10, 0, 1, 3) + if self.section == 'SI': + lay.addLayout(lay_fdl, 11, 0, 1, 2) + else: + lay.addWidget(self.ld_fdl, 11, 0) + lay.addWidget(self.pb_openfdl, 11, 1) return lay @@ -303,7 +394,7 @@ def _startControlLayout(self): dic = self.chs['SSA'] if self.section == 'BO' else self.chs['SSA']['1'] lay_amp = QGridLayout() lay_amp.setHorizontalSpacing(8) - lay_amp.setVerticalSpacing(20) + lay_amp.setVerticalSpacing(15) lay_amp.addItem(QSpacerItem( 10, 0, QSzPlcy.Expanding, QSzPlcy.Ignored), 0, 0) lay_amp.addWidget( @@ -324,273 +415,112 @@ def _startControlLayout(self): if self.section == 'BO': self._create_ssa_wid(lay_amp, 2, self.chs['SSA']) else: - for k, val in self.chs['SSA'].items(): - self._create_ssa_wid(lay_amp, int(k)+1, val) + last_llrf = '' + for k, chs_dict in self.chs['SSA'].items(): + if last_llrf != chs_dict['LLRF']: + lay_amp.addWidget(QLabel( + f"

{chs_dict['LLRF']}

", self, + alignment=Qt.AlignCenter), int(k)+1, 0) + last_llrf = chs_dict['LLRF'] + self._create_ssa_wid(lay_amp, int(k)+1, chs_dict) # LLRF # # Slow Loop Control - self.lb_slmode = SiriusLabel(self, self.prefix+self.chs['SL']['Mode']) - self.led_slmode = PyDMLedMultiChannel( - self, {self.prefix+self.chs['SL']['Mode']: 0}) - self.bt_slenbl = PyDMStateButton( - self, self.prefix+self.chs['SL']['Enbl']+':S') - self.led_slenbl = SiriusLedState( - self, self.prefix+self.chs['SL']['Enbl']) - - lay_over = QGridLayout() - lay_over.setAlignment(Qt.AlignCenter) - lay_over.addWidget( - QLabel('

Mode

', self, alignment=Qt.AlignCenter), 0, 0) - lay_over.addWidget(self.lb_slmode, 0, 1) - lay_over.addWidget(self.led_slmode, 0, 2, alignment=Qt.AlignLeft) - lay_over.addWidget( - QLabel('

Enable

', self, alignment=Qt.AlignCenter), 1, 0) - lay_over.addWidget(self.bt_slenbl, 1, 1) - lay_over.addWidget(self.led_slenbl, 1, 2, alignment=Qt.AlignLeft) - - self.sb_amp1 = SiriusSpinbox( - self, self.prefix+self.chs['SL']['ASet'][0]+'-SP') - self.lb_amp1 = SiriusLabel( - self, self.prefix+self.chs['SL']['ASet'][0]+'-RB') - self.cb_ampincrate = PyDMEnumComboBox( - self, self.prefix+self.chs['SL']['AInc']+':S') - self.lb_ampincrate = SiriusLabel( - self, self.prefix+self.chs['SL']['AInc']) - self.sb_phs = SiriusSpinbox( - self, self.prefix+self.chs['SL']['PSet']+':S') - self.lb_phs = SiriusLabel( - self, self.prefix+self.chs['SL']['PSet']) - self.cb_phsincrate = PyDMEnumComboBox( - self, self.prefix+self.chs['SL']['PInc']+':S') - self.lb_phsincrate = SiriusLabel( - self, self.prefix+self.chs['SL']['PInc']) - lay_slctrl = QGridLayout() - lay_slctrl.setHorizontalSpacing(9) - lay_slctrl.setVerticalSpacing(9) - lay_slctrl.addWidget(QLabel( - '

SP/RB

', self, alignment=Qt.AlignCenter), 0, 2, 1, 2) - lay_slctrl.addWidget( - QLabel('

Inc. Rate SP/RB

', self, alignment=Qt.AlignCenter), - 0, 4, 1, 2) - lay_slctrl.addWidget( - QLabel('

Amplitude [mV]

', self, alignment=Qt.AlignCenter), - 1, 0, 1, 2) - lay_slctrl.addWidget( - QLabel('

Phase [DEG]

', self, alignment=Qt.AlignCenter), - 2, 0, 1, 2) - lay_slctrl.addWidget(self.sb_amp1, 1, 2, alignment=Qt.AlignRight) - lay_slctrl.addWidget(self.lb_amp1, 1, 3, alignment=Qt.AlignLeft) - lay_slctrl.addWidget(self.cb_ampincrate, 1, 4, alignment=Qt.AlignRight) - lay_slctrl.addWidget(self.lb_ampincrate, 1, 5, alignment=Qt.AlignLeft) - lay_slctrl.addWidget(self.sb_phs, 2, 2, alignment=Qt.AlignRight) - lay_slctrl.addWidget(self.lb_phs, 2, 3, alignment=Qt.AlignLeft) - lay_slctrl.addWidget(self.cb_phsincrate, 2, 4, alignment=Qt.AlignRight) - lay_slctrl.addWidget(self.lb_phsincrate, 2, 5, alignment=Qt.AlignLeft) - - self.cb_inpsel = PyDMEnumComboBox( - self, self.prefix+self.chs['SL']['Inp']+':S') - self.lb_inpsel = SiriusLabel( - self, self.prefix+self.chs['SL']['Inp']) - self.sb_pilimit = SiriusSpinbox( - self, self.prefix+self.chs['SL']['PIL']+':S') - self.lb_pilimit = SiriusLabel( - self, self.prefix+self.chs['SL']['PIL']) - self.sb_ki = SiriusSpinbox( - self, self.prefix+self.chs['SL']['KI']+':S') - self.lb_ki = SiriusLabel( - self, self.prefix+self.chs['SL']['KI']) - self.sb_kp = SiriusSpinbox( - self, self.prefix+self.chs['SL']['KP']+':S') - self.lb_kp = SiriusLabel( - self, self.prefix+self.chs['SL']['KP']) - lay_slctrl2 = QGridLayout() - lay_slctrl2.setHorizontalSpacing(9) - lay_slctrl2.setVerticalSpacing(9) - lay_slctrl2.addWidget( - QLabel('

SP/RB

', self, alignment=Qt.AlignCenter), - 0, 2, 1, 2) - lay_slctrl2.addWidget( - QLabel('

PI Limit

', self, alignment=Qt.AlignCenter), - 1, 0, 1, 2) - lay_slctrl2.addWidget( - QLabel('

Ki

', self, alignment=Qt.AlignCenter), 2, 0, 1, 2) - lay_slctrl2.addWidget( - QLabel('

Kp

', self, alignment=Qt.AlignCenter), 3, 0, 1, 2) - lay_slctrl2.addWidget(self.sb_pilimit, 1, 2, alignment=Qt.AlignRight) - lay_slctrl2.addWidget(self.lb_pilimit, 1, 3, alignment=Qt.AlignLeft) - lay_slctrl2.addWidget(self.sb_ki, 2, 2, alignment=Qt.AlignRight) - lay_slctrl2.addWidget(self.lb_ki, 2, 3, alignment=Qt.AlignLeft) - lay_slctrl2.addWidget(self.sb_kp, 3, 2, alignment=Qt.AlignRight) - lay_slctrl2.addWidget(self.lb_kp, 3, 3, alignment=Qt.AlignLeft) + wid_sl = QWidget() + lay_slc = QGridLayout(wid_sl) + lay_slc.setAlignment(Qt.AlignCenter) + lay_slc.setVerticalSpacing(6) + lay_slc.setHorizontalSpacing(20) + + lay_slc.addWidget(QLabel( + '

Mode

', self, alignment=Qt.AlignCenter), 1, 0) + lay_slc.addWidget(QLabel( + '

Enable

', self, alignment=Qt.AlignCenter), 2, 0) + lay_slc.addItem(QSpacerItem( + 0, 30, QSzPlcy.Ignored, QSzPlcy.Fixed), 3, 0) + lay_slc.addWidget(QLabel( + '

Amp. [mV]

', self, alignment=Qt.AlignCenter), 5, 0) + lay_slc.addWidget(QLabel( + '

Phase [DEG]

', self, alignment=Qt.AlignCenter), 7, 0) + lay_slc.addItem(QSpacerItem( + 0, 30, QSzPlcy.Ignored, QSzPlcy.Fixed), 10, 0) + lay_slc.addWidget(QLabel( + '

Reference

', self, alignment=Qt.AlignCenter), 12, 0) + lay_slc.addWidget(QLabel( + '

Input

', self, alignment=Qt.AlignCenter), 13, 0) + lay_slc.addWidget(QLabel( + '

Error

', self, alignment=Qt.AlignCenter), 14, 0) + lay_slc.addItem(QSpacerItem( + 0, 50, QSzPlcy.Ignored, QSzPlcy.Fixed), 15, 0) + + offset = 1 + if self.section == 'SI': + for key, chs_dict in self.chs['SL']['Over'].items(): + self._create_slc_lay(lay_slc, key, chs_dict, offset) + offset += 3 + else: + self._create_slc_lay(lay_slc, None, self.chs['SL']['Over'], 1) + offset += 3 - lay = QGridLayout() - lay.addWidget( - QLabel('

Loop Input

', self, alignment=Qt.AlignCenter), - 1, 0, 1, 2) - lay.addWidget(self.cb_inpsel, 2, 0, alignment=Qt.AlignRight) - lay.addWidget(self.lb_inpsel, 2, 1, alignment=Qt.AlignLeft) - lay.setRowStretch(0, 2) - lay.setRowStretch(3, 2) - lay_slctrl2.addLayout(lay, 1, 4, 3, 2) - - self.lb_iref = SiriusLabel(self, self.prefix+self.chs['SL']['IRef']) - self.lb_iref.showUnits = True - self.lb_iinp = SiriusLabel(self, self.prefix+self.chs['SL']['IInp']) - self.lb_iinp.showUnits = True - self.lb_ierr = SiriusLabel(self, self.prefix+self.chs['SL']['IErr']) - self.lb_ierr.showUnits = True - self.lb_qref = SiriusLabel(self, self.prefix+self.chs['SL']['QRef']) - self.lb_qref.showUnits = True - self.lb_qinp = SiriusLabel(self, self.prefix+self.chs['SL']['QInp']) - self.lb_qinp.showUnits = True - self.lb_qerr = SiriusLabel(self, self.prefix+self.chs['SL']['QErr']) - self.lb_qerr.showUnits = True - self.lb_ampref = SiriusLabel(self, self.prefix+self.chs['SL']['ARef']) - self.lb_ampref.showUnits = True - self.lb_ampinp = SiriusLabel(self, self.prefix+self.chs['SL']['AInp']) - self.lb_ampinp.showUnits = True - self.lb_amperr = SiriusLabel(self, self.prefix+self.chs['SL']['AErr']) - self.lb_amperr.showUnits = True - self.lb_phsref = SiriusLabel(self, self.prefix+self.chs['SL']['PRef']) - self.lb_phsref.showUnits = True - self.lb_phsinp = SiriusLabel(self, self.prefix+self.chs['SL']['PInp']) - self.lb_phsinp.showUnits = True - self.lb_phserr = SiriusLabel(self, self.prefix+self.chs['SL']['PErr']) - self.lb_phserr.showUnits = True - lay_slmon = QGridLayout() - lay_slmon.setHorizontalSpacing(9) - lay_slmon.setVerticalSpacing(9) - lay_slmon.addWidget( - QLabel('

Reference

', self, alignment=Qt.AlignCenter), 1, 0) - lay_slmon.addWidget( - QLabel('

Input

', self, alignment=Qt.AlignCenter), 2, 0) - lay_slmon.addWidget( - QLabel('

Error

', self, alignment=Qt.AlignCenter), 3, 0) - lay_slmon.addWidget( - QLabel('

I

', self, alignment=Qt.AlignCenter), 0, 1) - lay_slmon.addWidget(self.lb_iref, 1, 1) - lay_slmon.addWidget(self.lb_iinp, 2, 1) - lay_slmon.addWidget(self.lb_ierr, 3, 1) - lay_slmon.addWidget( - QLabel('

Q

', self, alignment=Qt.AlignCenter), 0, 2) - lay_slmon.addWidget(self.lb_qref, 1, 2) - lay_slmon.addWidget(self.lb_qinp, 2, 2) - lay_slmon.addWidget(self.lb_qerr, 3, 2) - lay_slmon.addWidget( - QLabel('

Amp.

', self, alignment=Qt.AlignCenter), 0, 3) - lay_slmon.addWidget(self.lb_ampref, 1, 3) - lay_slmon.addWidget(self.lb_ampinp, 2, 3) - lay_slmon.addWidget(self.lb_amperr, 3, 3) - lay_slmon.addWidget( - QLabel('

Phase

', self, alignment=Qt.AlignCenter), 0, 4) - lay_slmon.addWidget(self.lb_phsref, 1, 4) - lay_slmon.addWidget(self.lb_phsinp, 2, 4) - lay_slmon.addWidget(self.lb_phserr, 3, 4) + self.pb_errdtls = QPushButton( + qta.icon('fa5s.external-link-alt'), ' Errors', self) + self.pb_errdtls.setStyleSheet('min-width: 4em') + connect_window( + self.pb_errdtls, SlowLoopErrorDetails, parent=self, + prefix=self.prefix, section=self.section) + self.pb_paramdtls = QPushButton( + qta.icon('fa5s.external-link-alt'), ' Parameters', self) + self.pb_paramdtls.setStyleSheet('min-width: 6.5em') + connect_window( + self.pb_paramdtls, SlowLoopParametersDetails, parent=self, + prefix=self.prefix, section=self.section) - wid_sl = QWidget() - lay_sl = QGridLayout(wid_sl) - # lay_sl.setAlignment(Qt.AlignTop) - lay_sl.setSpacing(7) - lay_sl.addLayout(lay_over, 1, 1) - lay_sl.addLayout(lay_slctrl, 3, 1) - lay_sl.addLayout(lay_slmon, 4, 1) - lay_sl.addLayout(lay_slctrl2, 6, 1) - lay_sl.setRowStretch(2, 4) - lay_sl.setRowStretch(5, 4) + gbox_details = QGroupBox('Details', self) + lay_details = QHBoxLayout(gbox_details) + lay_details.setAlignment(Qt.AlignTop) + lay_details.addWidget(self.pb_errdtls, alignment=Qt.AlignCenter) + lay_details.addWidget(self.pb_paramdtls, alignment=Qt.AlignCenter) + + lay_slc.addWidget(gbox_details, 16, 0, 17, offset) # # Tuning # # # Tuning settings ld_autotun = QLabel('Auto Tuning: ', self, alignment=Qt.AlignRight) - bt_autotun = PyDMStateButton( - self, self.prefix+self.chs['Tun']['Auto']+':S') - lb_autotun = SiriusLedState( - self, self.prefix+self.chs['Tun']['Auto']) ld_dtune = QLabel('DTune: ', self, alignment=Qt.AlignRight) - sb_dtune = SiriusSpinbox( - self, self.prefix+self.chs['Tun']['DTune'].replace('RB', 'SP')) - lb_dtune = SiriusLabel( - self, self.prefix+self.chs['Tun']['DTune']) - lb_dtune.showUnits = True ld_dphase = QLabel('Dephase: ', self, alignment=Qt.AlignRight) - lb_dphase = SiriusLabel( - self, self.prefix+self.chs['Tun']['DPhase']) - lb_dphase.showUnits = True ld_tunact = QLabel( 'Acting: ', self, alignment=Qt.AlignRight | Qt.AlignVCenter) - led_tunact = SiriusLedState( - self, self.prefix+self.chs['Tun']['Acting']) ld_oversht = QLabel( 'Overshoot: ', self, alignment=Qt.AlignRight | Qt.AlignVCenter) - sb_oversht = SiriusSpinbox( - self, self.prefix+self.chs['Tun']['Oversht']+':S') - lb_oversht = SiriusLabel( - self, self.prefix+self.chs['Tun']['Oversht']) - lb_oversht.showUnits = True ld_margin = QLabel( 'Deadband: ', self, alignment=Qt.AlignRight | Qt.AlignVCenter) - sb_margin = SiriusSpinbox( - self, self.prefix+self.chs['Tun']['Deadbnd']+':S') - lb_margin = SiriusLabel( - self, self.prefix+self.chs['Tun']['Deadbnd']) - lb_margin.showUnits = True lay_tunset = QGridLayout() lay_tunset.setAlignment(Qt.AlignTop | Qt.AlignHCenter) lay_tunset.setVerticalSpacing(12) lay_tunset.setColumnStretch(0, 3) lay_tunset.addWidget(ld_autotun, 1, 1) - lay_tunset.addWidget(bt_autotun, 1, 2) - lay_tunset.addWidget(lb_autotun, 1, 3) lay_tunset.addWidget(ld_dtune, 2, 1) - lay_tunset.addWidget(sb_dtune, 2, 2) - lay_tunset.addWidget(lb_dtune, 2, 3) lay_tunset.addWidget(ld_margin, 3, 1) - lay_tunset.addWidget(sb_margin, 3, 2) - lay_tunset.addWidget(lb_margin, 3, 3) lay_tunset.addWidget(ld_oversht, 4, 1) - lay_tunset.addWidget(sb_oversht, 4, 2) - lay_tunset.addWidget(lb_oversht, 4, 3) lay_tunset.addWidget(ld_dphase, 5, 1) - lay_tunset.addWidget(lb_dphase, 5, 2) lay_tunset.addWidget(ld_tunact, 6, 1) - lay_tunset.addWidget(led_tunact, 6, 2, alignment=Qt.AlignCenter) lay_tunset.setColumnStretch(4, 3) + if self.section == 'SI': + offset = 2 + for k, val in self.chs['Tun'].items(): + self._create_tun_set_wid(lay_tunset, k, val, offset) + offset += 1 + else: + self._create_tun_set_wid(lay_tunset, None, self.chs['Tun'], 2) # # # Plungers motors - lb_plg1 = QLabel('Plunger 1') - lb_plg2 = QLabel('Plunger 2') + lay_plunmon = QGridLayout() lb_down = QLabel('Down') lb_up = QLabel('Up') - self.led_plg1_dn = PyDMLed( - self, self.prefix+self.chs['Tun']['Pl1Down']) - self.led_plg1_dn.offColor = QColor(64, 64, 64) - self.led_plg1_dn.onColor = QColor('blue') - self.led_plg1_dn.shape = PyDMLed.ShapeMap.Square - self.led_plg1_up = PyDMLed( - self, self.prefix+self.chs['Tun']['Pl1Up']) - self.led_plg1_up.offColor = QColor(64, 64, 64) - self.led_plg1_up.onColor = QColor('blue') - self.led_plg1_up.shape = PyDMLed.ShapeMap.Square - self.led_plg2_dn = PyDMLed( - self, self.prefix+self.chs['Tun']['Pl2Down']) - self.led_plg2_dn.offColor = QColor(64, 64, 64) - self.led_plg2_dn.onColor = QColor('blue') - self.led_plg2_dn.shape = PyDMLed.ShapeMap.Square - self.led_plg2_up = PyDMLed( - self, self.prefix+self.chs['Tun']['Pl2Up']) - self.led_plg2_up.offColor = QColor(64, 64, 64) - self.led_plg2_up.onColor = QColor('blue') - self.led_plg2_up.shape = PyDMLed.ShapeMap.Square - lay_plunmon = QGridLayout() lay_plunmon.addItem( QSpacerItem(10, 10, QSzPlcy.Expanding, QSzPlcy.Expanding), 0, 0) lay_plunmon.addWidget(lb_down, 1, 2) lay_plunmon.addWidget(lb_up, 1, 3) - lay_plunmon.addWidget(lb_plg1, 2, 1) - lay_plunmon.addWidget(lb_plg2, 3, 1) - lay_plunmon.addWidget(self.led_plg1_dn, 2, 2) - lay_plunmon.addWidget(self.led_plg1_up, 2, 3) - lay_plunmon.addWidget(self.led_plg2_dn, 3, 2) - lay_plunmon.addWidget(self.led_plg2_up, 3, 3) lay_plunmon.addItem( QSpacerItem(10, 10, QSzPlcy.Expanding, QSzPlcy.Expanding), 4, 4) @@ -606,89 +536,150 @@ def _startControlLayout(self): self.graph_plunmotors.showLegend = True self.graph_plunmotors.timeSpan = 1800 self.graph_plunmotors.maxRedrawRate = 2 - self.graph_plunmotors.addYChannel( - y_channel=self.prefix+self.chs['Tun']['PlM1Curr'], color='blue', - name='Motor 1', lineStyle=Qt.SolidLine, lineWidth=1) - self.graph_plunmotors.addYChannel( - y_channel=self.prefix+self.chs['Tun']['PlM2Curr'], color='red', - name='Motor 2', lineStyle=Qt.SolidLine, lineWidth=1) self.graph_plunmotors.setLabel('left', '') + if self.section == 'SI': + offset = 2 + for key, chs_dict in self.chs['Tun'].items(): + lb_plg = QLabel(key) + led_plg_dn = PyDMLed( + self, self.prefix+chs_dict['Pl1Down']) + led_plg_dn.offColor = QColor(64, 64, 64) + led_plg_dn.onColor = QColor('blue') + led_plg_dn.shape = PyDMLed.ShapeMap.Square + led_plg_up = PyDMLed( + self, self.prefix+chs_dict['Pl1Up']) + led_plg_up.offColor = QColor(64, 64, 64) + led_plg_up.onColor = QColor('blue') + led_plg_up.shape = PyDMLed.ShapeMap.Square + self.graph_plunmotors.addYChannel( + y_channel=self.prefix+chs_dict['PlM1Curr'], + color=self.prefix+chs_dict['color'], name=key, + lineStyle=Qt.SolidLine, lineWidth=1, + ) + + lay_plunmon.addWidget(lb_plg, offset, 1) + lay_plunmon.addWidget(led_plg_dn, offset, 2) + lay_plunmon.addWidget(led_plg_up, offset, 3) + offset += 1 + else: + self.lb_plg1 = QLabel('Plunger 1') + self.led_plg1_dn = PyDMLed( + self, self.prefix+self.chs['Tun']['Pl1Down']) + self.led_plg1_dn.offColor = QColor(64, 64, 64) + self.led_plg1_dn.onColor = QColor('blue') + self.led_plg1_dn.shape = PyDMLed.ShapeMap.Square + self.led_plg1_up = PyDMLed( + self, self.prefix+self.chs['Tun']['Pl1Up']) + self.led_plg1_up.offColor = QColor(64, 64, 64) + self.led_plg1_up.onColor = QColor('blue') + self.led_plg1_up.shape = PyDMLed.ShapeMap.Square + self.graph_plunmotors.addYChannel( + y_channel=self.prefix+self.chs['Tun']['PlM1Curr'], color='blue', + name='Motor 1', lineStyle=Qt.SolidLine, lineWidth=1) + + self.lb_plg2 = QLabel('Plunger 2') + self.led_plg2_dn = PyDMLed( + self, self.prefix+self.chs['Tun']['Pl2Down']) + self.led_plg2_dn.offColor = QColor(64, 64, 64) + self.led_plg2_dn.onColor = QColor('blue') + self.led_plg2_dn.shape = PyDMLed.ShapeMap.Square + self.led_plg2_up = PyDMLed( + self, self.prefix+self.chs['Tun']['Pl2Up']) + self.led_plg2_up.offColor = QColor(64, 64, 64) + self.led_plg2_up.onColor = QColor('blue') + self.led_plg2_up.shape = PyDMLed.ShapeMap.Square + self.graph_plunmotors.addYChannel( + y_channel=self.prefix+self.chs['Tun']['PlM2Curr'], color='red', + name='Motor 2', lineStyle=Qt.SolidLine, lineWidth=1) + + lay_plunmon.addWidget(self.lb_plg1, 2, 1) + lay_plunmon.addWidget(self.led_plg1_dn, 2, 2) + lay_plunmon.addWidget(self.led_plg1_up, 2, 3) + lay_plunmon.addWidget(self.lb_plg2, 3, 1) + lay_plunmon.addWidget(self.led_plg2_dn, 3, 2) + lay_plunmon.addWidget(self.led_plg2_up, 3, 3) + wid_tun = QWidget() lay_plun = QGridLayout(wid_tun) lay_plun.addWidget(QLabel( '

• Settings

', self, alignment=Qt.AlignLeft), 0, 0, 1, 3) - lay_plun.addLayout(lay_tunset, 1, 0, 1, 3) + lay_plun.addLayout(lay_tunset, 1, 0, 1, 2) lay_plun.addItem( QSpacerItem(0, 25, QSzPlcy.Ignored, QSzPlcy.Fixed), 2, 0) - lay_plun.addWidget(QLabel( - '

• Plungers

', self, alignment=Qt.AlignLeft), 3, 0) + if self.section == 'SI': + lay_plun.addWidget(QLabel( + '

• Tunners

', self, alignment=Qt.AlignLeft), 3, 0) + else: + lay_plun.addWidget(QLabel( + '

• Plungers

', self, alignment=Qt.AlignLeft), 3, 0) lay_plun.addLayout(lay_plunmon, 4, 0) lay_plun.addWidget(self.graph_plunmotors, 4, 1, 1, 2) # # FieldFlatness settings - pvs = self.chs['FFlat'] - lb2 = '6' if self.section == 'SI' else '4' - lb_fflat = QLabel( - '

• Field Flatness

', self, alignment=Qt.AlignLeft) - lb_ffsts = QLabel('Acting: ', self, alignment=Qt.AlignRight) - self.lb_ffsts = SiriusLedState(self, self.prefix+pvs['Sts']) - lb_ffen = QLabel('Enable: ', self, alignment=Qt.AlignRight) - self.bt_ffen = PyDMStateButton(self, self.prefix+pvs['Auto']+':S') - self.lb_ffen = SiriusLedState(self, self.prefix+pvs['Auto']) - lb_ffpos = QLabel('Position: ', self, alignment=Qt.AlignRight) - self.bt_ffpos = PyDMStateButton(self, self.prefix+pvs['Pos']+':S') - self.lb_ffpos = SiriusLedState(self, self.prefix+pvs['Pos']) - lb_ffg1 = QLabel('Gain Cell 2: ', self, alignment=Qt.AlignRight) - lb_ffg2 = QLabel(f'Gain Cell {lb2:s}: ', self, alignment=Qt.AlignRight) - self.sb_ffg1 = SiriusSpinbox(self, self.prefix+pvs['Gain1']+':S') - self.sb_ffg2 = SiriusSpinbox(self, self.prefix+pvs['Gain2']+':S') - self.lb_ffg1 = SiriusLabel(self, self.prefix+pvs['Gain1']) - self.lb_ffg2 = SiriusLabel(self, self.prefix+pvs['Gain2']) - self.lb_ffg1.showUnits = True - self.lb_ffg2.showUnits = True - lb_ffdb = QLabel('DeadBand: ', self, alignment=Qt.AlignRight) - self.sb_ffdb = SiriusSpinbox(self, self.prefix+pvs['Deadband']+':S') - self.lb_ffdb = SiriusLabel(self, self.prefix+pvs['Deadband']) - self.lb_ffdb.showUnits = True - lb_ffcell1 = QLabel('Cell 2: ', self, alignment=Qt.AlignRight) - self.lb_ffcell1 = SiriusLabel(self, self.prefix+pvs['Cell1']) - self.lb_ffcell1.showUnits = True - lb_ffcell2 = QLabel(f'Cell {lb2:s}: ', self, alignment=Qt.AlignRight) - self.lb_ffcell2 = SiriusLabel(self, self.prefix+pvs['Cell2']) - self.lb_ffcell2.showUnits = True - lb_fferr = QLabel('Error: ', self, alignment=Qt.AlignRight) - self.lb_fferr = SiriusLabel(self, self.prefix+pvs['Err']) - self.lb_fferr.showUnits = True - lay_fflat = QGridLayout() - lay_fflat.setAlignment(Qt.AlignTop | Qt.AlignHCenter) - lay_fflat.setVerticalSpacing(12) - lay_fflat.addWidget(lb_fflat, 0, 0) - lay_fflat.addWidget(lb_ffen, 1, 0) - lay_fflat.addWidget(self.bt_ffen, 1, 1) - lay_fflat.addWidget(self.lb_ffen, 1, 2) - lay_fflat.addWidget(lb_ffpos, 2, 0) - lay_fflat.addWidget(self.bt_ffpos, 2, 1) - lay_fflat.addWidget(self.lb_ffpos, 2, 2) - lay_fflat.addWidget(lb_ffg1, 3, 0) - lay_fflat.addWidget(self.sb_ffg1, 3, 1) - lay_fflat.addWidget(self.lb_ffg1, 3, 2) - lay_fflat.addWidget(lb_ffg2, 4, 0) - lay_fflat.addWidget(self.sb_ffg2, 4, 1) - lay_fflat.addWidget(self.lb_ffg2, 4, 2) - lay_fflat.addWidget(lb_ffdb, 5, 0) - lay_fflat.addWidget(self.sb_ffdb, 5, 1) - lay_fflat.addWidget(self.lb_ffdb, 5, 2) - lay_fflat.addWidget(lb_ffcell1, 6, 0) - lay_fflat.addWidget(self.lb_ffcell1, 6, 1) - lay_fflat.addWidget(lb_ffcell2, 7, 0) - lay_fflat.addWidget(self.lb_ffcell2, 7, 1) - lay_fflat.addWidget(lb_fferr, 8, 0) - lay_fflat.addWidget(self.lb_fferr, 8, 1) - lay_fflat.addWidget(lb_ffsts, 9, 0) - lay_fflat.addWidget(self.lb_ffsts, 9, 1, alignment=Qt.AlignCenter) - wid_fflat = QWidget() - wid_fflat.setLayout(lay_fflat) + if self.section != "SI": + pvs = self.chs['FFlat'] + lb2 = '4' + lb_fflat = QLabel( + '

• Field Flatness

', self, alignment=Qt.AlignLeft) + lb_ffsts = QLabel('Acting: ', self, alignment=Qt.AlignRight) + self.lb_ffsts = SiriusLedState(self, self.prefix+pvs['Sts']) + lb_ffen = QLabel('Enable: ', self, alignment=Qt.AlignRight) + self.bt_ffen = PyDMStateButton(self, self.prefix+pvs['Auto']+'-Sel') + self.lb_ffen = SiriusLedState(self, self.prefix+pvs['Auto']+'-Sts') + lb_ffpos = QLabel('Position: ', self, alignment=Qt.AlignRight) + self.bt_ffpos = PyDMStateButton(self, self.prefix+pvs['Pos']+'-Sel') + self.lb_ffpos = SiriusLedState(self, self.prefix+pvs['Pos']+'-Sts') + lb_ffg1 = QLabel('Gain Cell 2: ', self, alignment=Qt.AlignRight) + lb_ffg2 = QLabel(f'Gain Cell {lb2:s}: ', self, alignment=Qt.AlignRight) + self.sb_ffg1 = SiriusSpinbox(self, self.prefix+pvs['Gain1']+'-SP') + self.sb_ffg2 = SiriusSpinbox(self, self.prefix+pvs['Gain2']+'-SP') + self.lb_ffg1 = SiriusLabel(self, self.prefix+pvs['Gain1']+'-RB') + self.lb_ffg2 = SiriusLabel(self, self.prefix+pvs['Gain2']+'-RB') + self.lb_ffg1.showUnits = True + self.lb_ffg2.showUnits = True + lb_ffdb = QLabel('DeadBand: ', self, alignment=Qt.AlignRight) + self.sb_ffdb = SiriusSpinbox(self, self.prefix+pvs['Deadband']+':SP') + self.lb_ffdb = SiriusLabel(self, self.prefix+pvs['Deadband']+':RB') + self.lb_ffdb.showUnits = True + lb_ffcell1 = QLabel('Cell 2: ', self, alignment=Qt.AlignRight) + self.lb_ffcell1 = SiriusLabel(self, self.prefix+pvs['Cell1']) + self.lb_ffcell1.showUnits = True + lb_ffcell2 = QLabel(f'Cell {lb2:s}: ', self, alignment=Qt.AlignRight) + self.lb_ffcell2 = SiriusLabel(self, self.prefix+pvs['Cell2']) + self.lb_ffcell2.showUnits = True + lb_fferr = QLabel('Error: ', self, alignment=Qt.AlignRight) + self.lb_fferr = SiriusLabel(self, self.prefix+pvs['Err']) + self.lb_fferr.showUnits = True + lay_fflat = QGridLayout() + lay_fflat.setAlignment(Qt.AlignTop | Qt.AlignHCenter) + lay_fflat.setVerticalSpacing(12) + lay_fflat.addWidget(lb_fflat, 0, 0) + lay_fflat.addWidget(lb_ffen, 1, 0) + lay_fflat.addWidget(self.bt_ffen, 1, 1) + lay_fflat.addWidget(self.lb_ffen, 1, 2) + lay_fflat.addWidget(lb_ffpos, 2, 0) + lay_fflat.addWidget(self.bt_ffpos, 2, 1) + lay_fflat.addWidget(self.lb_ffpos, 2, 2) + lay_fflat.addWidget(lb_ffg1, 3, 0) + lay_fflat.addWidget(self.sb_ffg1, 3, 1) + lay_fflat.addWidget(self.lb_ffg1, 3, 2) + lay_fflat.addWidget(lb_ffg2, 4, 0) + lay_fflat.addWidget(self.sb_ffg2, 4, 1) + lay_fflat.addWidget(self.lb_ffg2, 4, 2) + lay_fflat.addWidget(lb_ffdb, 5, 0) + lay_fflat.addWidget(self.sb_ffdb, 5, 1) + lay_fflat.addWidget(self.lb_ffdb, 5, 2) + lay_fflat.addWidget(lb_ffcell1, 6, 0) + lay_fflat.addWidget(self.lb_ffcell1, 6, 1) + lay_fflat.addWidget(lb_ffcell2, 7, 0) + lay_fflat.addWidget(self.lb_ffcell2, 7, 1) + lay_fflat.addWidget(lb_fferr, 8, 0) + lay_fflat.addWidget(self.lb_fferr, 8, 1) + lay_fflat.addWidget(lb_ffsts, 9, 0) + lay_fflat.addWidget(self.lb_ffsts, 9, 1, alignment=Qt.AlignCenter) + wid_fflat = QWidget() + wid_fflat.setLayout(lay_fflat) wid_llrf = QTabWidget(self) color = 'green' if self.section == 'BO' else 'blue' @@ -700,14 +691,14 @@ def _startControlLayout(self): }""") wid_llrf.addTab(wid_sl, 'Slow Loop Control') wid_llrf.addTab(wid_tun, 'Tuning') - wid_llrf.addTab(wid_fflat, 'Field Flatness') + if self.section == 'BO': + wid_llrf.addTab(wid_fflat, 'Field Flatness') # Layout vlay = QVBoxLayout() vlay.addWidget(QLabel('

• Solid State Amplifiers

', self, alignment=Qt.AlignLeft)) vlay.addLayout(lay_amp) - vlay.addItem(QSpacerItem(0, 50, QSzPlcy.Ignored, QSzPlcy.Fixed)) vlay.addWidget(QLabel('

• LLRF

', self, alignment=Qt.AlignLeft)) vlay.addWidget(wid_llrf) @@ -718,78 +709,78 @@ def _rampControlLayout(self): ctrls_label = QLabel('

• Controls

', self, alignment=Qt.AlignLeft) self.bt_rmpenbl = PyDMStateButton( - self, self.prefix+'BR-RF-DLLRF-01:RmpEnbl-Sel') + self, self.prefix+'RA-RaBO01:RF-LLRF:RmpEn-Sel') self.lb_rmpenbl = SiriusLedState( - self, self.prefix+'BR-RF-DLLRF-01:RmpEnbl-Sts') + self, self.prefix+'RA-RaBO01:RF-LLRF:RmpEn-Sts') self.led_rmpready = PyDMLed( - self, self.prefix+'BR-RF-DLLRF-01:RmpReady-Mon') + self, self.prefix+'RA-RaBO01:RF-LLRF:RampRdy-Mon') self.led_rmpready.onColor = PyDMLed.LightGreen self.led_rmpready.offColor = PyDMLed.Red self.led_rmptrig = PyDMLed( - self, self.prefix+'BR-RF-DLLRF-01:5HZTRIG') + self, self.prefix+'RA-RaBO01:RF-LLRF:RampTrigger-Mon') self.led_rmptrig.onColor = PyDMLed.LightGreen self.led_rmptrig.offColor = PyDMLed.Red self.cb_rmpincts = SiriusSpinbox( - self, self.prefix+'BR-RF-DLLRF-01:RmpIncTs-SP') + self, self.prefix+'RA-RaBO01:RF-LLRF:RmpIncTime-SP') self.lb_rmpincts = SiriusLabel( - self, self.prefix+'BR-RF-DLLRF-01:RmpIncTs-RB') + self, self.prefix+'RA-RaBO01:RF-LLRF:RmpIncTime-RB') self.lb_rmpincts.showUnits = True self.sb_rmpts1 = SiriusSpinbox( - self, self.prefix+'BR-RF-DLLRF-01:RmpTs1-SP') + self, self.prefix+'RA-RaBO01:RF-LLRF:RmpIncTime-SP') self.lb_rmpts1 = SiriusLabel( - self, self.prefix+'BR-RF-DLLRF-01:RmpTs1-RB') + self, self.prefix+'RA-RaBO01:RF-LLRF:RmpIncTime-RB') self.lb_rmpts1.showUnits = True self.sb_rmpts2 = SiriusSpinbox( - self, self.prefix+'BR-RF-DLLRF-01:RmpTs2-SP') + self, self.prefix+'RA-RaBO01:RF-LLRF:RmpTs2-SP') self.lb_rmpts2 = SiriusLabel( - self, self.prefix+'BR-RF-DLLRF-01:RmpTs2-RB') + self, self.prefix+'RA-RaBO01:RF-LLRF:RmpTs2-SP') self.lb_rmpts2.showUnits = True self.sb_rmpts3 = SiriusSpinbox( - self, self.prefix+'BR-RF-DLLRF-01:RmpTs3-SP') + self, self.prefix+'RA-RaBO01:RF-LLRF:RmpTs3-SP') self.lb_rmpts3 = SiriusLabel( - self, self.prefix+'BR-RF-DLLRF-01:RmpTs3-RB') + self, self.prefix+'RA-RaBO01:RF-LLRF:RmpTs3-RB') self.lb_rmpts3.showUnits = True self.sb_rmpts4 = SiriusSpinbox( - self, self.prefix+'BR-RF-DLLRF-01:RmpTs4-SP') + self, self.prefix+'RA-RaBO01:RF-LLRF:RmpTs4-SP') self.lb_rmpts4 = SiriusLabel( - self, self.prefix+'BR-RF-DLLRF-01:RmpTs4-RB') + self, self.prefix+'RA-RaBO01:RF-LLRF:RmpTs4-RB') self.lb_rmpts4.showUnits = True self.sb_rmpphstop = SiriusSpinbox( - self, self.prefix+'BR-RF-DLLRF-01:RmpPhsTop-SP') + self, self.prefix+'RA-RaBO01:RF-LLRF:RampPhsTop-SP') self.lb_rmpphstop = SiriusLabel( - self, self.prefix+'BR-RF-DLLRF-01:RmpPhsTop-RB') + self, self.prefix+'RA-RaBO01:RF-LLRF:RampPhsTop-RB') self.lb_rmpphstop.showUnits = True self.ld_rmpphstop = QLabel('Amplitude', self, alignment=Qt.AlignRight) lay_rmpphstopdesc = QHBoxLayout() lay_rmpphstopdesc.addWidget(self.ld_rmpphstop) lay_rmpphstopdesc.setAlignment(Qt.AlignRight) self.le_rmpvolttop1 = PyDMLineEdit( - self, self.prefix+'BR-RF-DLLRF-01:mV:RAMP:AMP:TOP-SP') + self, self.prefix+'RA-RaBO01:RF-LLRF:RampAmpTop-SP') self.lb_rmpvolttop1 = SiriusLabel( - self, self.prefix+'BR-RF-DLLRF-01:mV:RAMP:AMP:TOP-RB') + self, self.prefix+'RA-RaBO01:RF-LLRF:RampAmpTop-RB') self.lb_rmpvolttop1.showUnits = True self.lb_rmpvolttop2 = SiriusLabel( self, self.prefix+'RA-RaBO01:RF-LLRF:RmpAmpVCavTop-RB') self.lb_rmpvolttop2.showUnits = True self.sb_rmpphsbot = SiriusSpinbox( - self, self.prefix+'BR-RF-DLLRF-01:RmpPhsBot-SP') + self, self.prefix+'RA-RaBO01:RF-LLRF:RampPhsBot-SP') self.lb_rmpphsbot = SiriusLabel( - self, self.prefix+'BR-RF-DLLRF-01:RmpPhsBot-RB') + self, self.prefix+'RA-RaBO01:RF-LLRF:RampPhsBot-RB') self.lb_rmpphsbot.showUnits = True self.ld_rmpphsbot = QLabel('Amplitude', self, alignment=Qt.AlignRight) lay_rmpphsbotdesc = QHBoxLayout() lay_rmpphsbotdesc.addWidget(self.ld_rmpphsbot) lay_rmpphsbotdesc.setAlignment(Qt.AlignRight) self.le_rmpvoltbot1 = PyDMLineEdit( - self, self.prefix+'BR-RF-DLLRF-01:mV:RAMP:AMP:BOT-SP') + self, self.prefix+'RA-RaBO01:RF-LLRF:RampAmpBot-SP') self.lb_rmpvoltbot1 = SiriusLabel( - self, self.prefix+'BR-RF-DLLRF-01:mV:RAMP:AMP:BOT-RB') + self, self.prefix+'RA-RaBO01:RF-LLRF:RampAmpBot-RB') self.lb_rmpvoltbot1.showUnits = True self.lb_rmpvoltbot2 = SiriusLabel( self, self.prefix+'RA-RaBO01:RF-LLRF:RmpAmpVCavBot-RB') @@ -996,37 +987,37 @@ def _rampMonLayout(self): def _autoStartLayout(self): self.bt_autostart = PyDMStateButton( - self, self.prefix+'BR-RF-DLLRF-01:AUTOSTART:S') + self, self.prefix+'RA-RaBO01:RF-LLRF:AutoStartupEn-SP') self.led_autostart = SiriusLedState( - self, self.prefix+'BR-RF-DLLRF-01:AUTOSTART') + self, self.prefix+'RA-RaBO01:RF-LLRF:AutoStartupEn-RB') hl_autostart = QHBoxLayout() hl_autostart.setAlignment(Qt.AlignLeft) hl_autostart.addWidget(self.bt_autostart) hl_autostart.addWidget(self.led_autostart) self.cb_comstart = PyDMEnumComboBox( - self, self.prefix+'BR-RF-DLLRF-01:COMMSTART:S') + self, self.prefix+'RA-RaBO01:RF-LLRF:AutoStartupCmdStart-Sel') self.cb_comstart.setStyleSheet('min-width: 15em; max-width: 15em;') self.lb_statestart = SiriusLabel( - self, self.prefix+'BR-RF-DLLRF-01:STATESTART') + self, self.prefix+'RA-RaBO01:RF-LLRF:AutoStartupCmdStart-Sts') self.lb_statestart.setStyleSheet( 'qproperty-alignment: AlignLeft; min-width:15em; max-width:15em;') self.led_startok = PyDMLedMultiChannel( - self, {self.prefix+'BR-RF-DLLRF-01:EPS': 0, - self.prefix+'BR-RF-DLLRF-01:FIM': 0, - self.prefix+'BR-RF-DLLRF-01:TXREADY': 1, - self.prefix+'BR-RF-DLLRF-01:FASTILK': 0}) + self, {self.prefix+'RA-RaSIA01:RF-LLRF-A:EPSEn-Sts': 0, + self.prefix+'RA-RaSIA01:RF-LLRF-A:FIMEn-Sts': 0, + self.prefix+'RA-RaBO01:RF-LLRF:SSARdy-Mon': 1, + self.prefix+'RA-RaBO01:RF-LLRF:IntlkAll-Mon': 0}) self.led_tuneok = PyDMLedMultiChannel( - self, {self.prefix+'BR-RF-DLLRF-01:TUNE:FWDMIN': 1}) + self, {self.prefix+'RA-RaBO01:RF-LLRF:TuneFwdMin-Mon': 1}) self.led_closeloopok = PyDMLedMultiChannel( - self, {self.prefix+'BR-RF-DLLRF-01:SL:FWDMIN': 1, - self.prefix+'BR-RF-DLLRF-01:FL:FWDMIN': 1, - self.prefix+'BR-RF-DLLRF-01:AL:FWDMIN': 1, - self.prefix+'BR-RF-DLLRF-01:PL:FWDMIN': 1}) + self, {self.prefix+'RA-RaBO01:RF-LLRF:SLFwdMin-Mon': 1, + self.prefix+'RA-RaBO01:RF-LLRF:FLFwdMin-Mon': 1, + self.prefix+'RA-RaBO01:RF-LLRF:ALFwdMin-Mon': 1, + self.prefix+'RA-RaBO01:RF-LLRF:PLFwdMin-Mon': 1}) lay = QFormLayout() lay.setLabelAlignment(Qt.AlignRight) @@ -1140,7 +1131,7 @@ def _powerMeterLayout(self): lb_cavphs = QLabel('Phase', self, alignment=Qt.AlignCenter) self.lb_cavphs = SiriusLabel( - self, self.prefix+'BR-RF-DLLRF-01:CAV:PHS') + self, self.prefix+'BO-05D:RF-P5Cav:PwrCell3Phs-Mon') self.lb_cavphs.showUnits = True lay_vals.addWidget(lb_cavphs, 5, 1, alignment=Qt.AlignCenter) lay_vals.addWidget(self.lb_cavphs, 5, 2) @@ -1150,33 +1141,52 @@ def _powerMeterLayout(self): self.curves[name+' dBm'].setVisible(False) self.curves[name+' mV'].setVisible(False) - self.ld_cavvgap = QLabel( - 'Gap Voltage:', self, alignment=Qt.AlignCenter) - self.ld_cavvgap.setStyleSheet('QLabel{font-size: 15pt;}') - self.lb_cavvgap = SiriusLabel(self, self.prefix+self.chs['CavVGap']) - self.lb_cavvgap.setStyleSheet('QLabel{font-size: 20pt;}') - self.lb_cavvgap.showUnits = True - - self.lbl_refvol = QLabel( - 'Ref Voltage:', self, alignment=Qt.AlignCenter) - self.rb_refvol = SiriusLabel( - self, self.prefix+self.chs['SL']['ASet'][1]+'-RB') - self.rb_refvol.showUnits = True - lay_cavvgap = QGridLayout() - lay_cavvgap.addWidget(self.ld_cavvgap, 0, 0) - lay_cavvgap.addWidget(self.lb_cavvgap, 0, 1) - lay_cavvgap.addWidget(self.lbl_refvol, 1, 0) - lay_cavvgap.addWidget(self.rb_refvol, 1, 1) + offset = 0 + if self.section == 'SI': + for key, val in self.chs['CavVGap'].items(): + ld_cavvgap = QLabel( + f'Gap Voltage {key}:', self, alignment=Qt.AlignCenter) + ld_cavvgap.setStyleSheet('QLabel{font-size: 15pt;}') + lb_cavvgap = SiriusLabel(self, self.prefix+val) + lb_cavvgap.setStyleSheet('QLabel{font-size: 15pt;}') + lb_cavvgap.showUnits = True + lbl_refvol = QLabel( + f'Ref Voltage {key}:', self, alignment=Qt.AlignCenter) + rb_refvol = SiriusLabel( + self, self.prefix+self.chs['SL']['ASet'][key]+'-RB') + rb_refvol.showUnits = True + lay_cavvgap.addWidget(ld_cavvgap, offset, 0) + lay_cavvgap.addWidget(lb_cavvgap, offset, 1) + lay_cavvgap.addWidget(lbl_refvol, offset+1, 0) + lay_cavvgap.addWidget(rb_refvol, offset+1, 1) + offset += 2 + else: + self.ld_cavvgap = QLabel( + 'Gap Voltage:', self, alignment=Qt.AlignCenter) + self.ld_cavvgap.setStyleSheet('QLabel{font-size: 15pt;}') + self.lb_cavvgap = SiriusLabel(self, self.prefix+self.chs['CavVGap']) + self.lb_cavvgap.setStyleSheet('QLabel{font-size: 20pt;}') + self.lb_cavvgap.showUnits = True + self.lbl_refvol = QLabel( + 'Ref Voltage:', self, alignment=Qt.AlignCenter) + self.rb_refvol = SiriusLabel( + self, self.prefix+self.chs['SL']['ASet']+'-RB') + self.rb_refvol.showUnits = True + lay_cavvgap.addWidget(self.ld_cavvgap, 0, 0) + lay_cavvgap.addWidget(self.lb_cavvgap, 0, 1) + lay_cavvgap.addWidget(self.lbl_refvol, 1, 0) + lay_cavvgap.addWidget(self.rb_refvol, 1, 1) + offset += 2 lay = QGridLayout() lay.setHorizontalSpacing(25) - lay.addItem(QSpacerItem(0, 20, QSzPlcy.Ignored, QSzPlcy.Fixed), 1, 0) + lay.addItem(QSpacerItem(0, 10, QSzPlcy.Ignored, QSzPlcy.Fixed), 1, 0) lay.addLayout(lay_vals, 2, 0) - lay.addItem(QSpacerItem(0, 20, QSzPlcy.Ignored, QSzPlcy.Fixed), 3, 0) + lay.addItem(QSpacerItem(0, 10, QSzPlcy.Ignored, QSzPlcy.Fixed), 3, 0) lay.addWidget(self.pwr_mon_graph, 4, 0) lay.addItem(QSpacerItem( - 0, 50, QSzPlcy.Ignored, QSzPlcy.Minimum), 5, 0) + 0, 10, QSzPlcy.Ignored, QSzPlcy.Minimum), 5, 0) lay.addLayout(lay_cavvgap, 6, 0) lay.addItem(QSpacerItem( 0, 10, QSzPlcy.Ignored, QSzPlcy.MinimumExpanding), 7, 0) @@ -1191,11 +1201,12 @@ def _graphsLayout(self): QTabWidget::pane{ border-bottom: 2px solid gray;} QPushButton{ - min-width: 6em;} + min-width: 8em;} """) lb_temp = QLabel('

Temperatures [°C]

', self) - self.pb_wattemp = QPushButton('Temp. Monitor', self) + self.pb_wattemp = QPushButton( + qta.icon('fa5s.external-link-alt'), ' Temp. Monitor', self) connect_window( self.pb_wattemp, TempMonitor, parent=self, prefix=self.prefix, section=self.section) @@ -1300,13 +1311,23 @@ def _graphsLayout(self): # Transm.Line Temperatures lb_tempcirc = QLabel('

• Circulator

', self) - lims_circ = self.chs['TL Sts']['Circ Limits'] - ch2vals = { - self.prefix+self.chs['TL Sts']['Circulator Temp. In']['label']: { - 'comp': 'wt', 'value': lims_circ}, - self.prefix+self.chs['TL Sts']['label']['Circulator Temp. Out']: { - 'comp': 'wt', 'value': lims_circ} - } + # temporary fix + if self.section == 'SI': + lims_circ = self.chs['TL Sts']['A']['Circ Limits'] + ch2vals = { + self.prefix+self.chs['TL Sts']['A']['Circulator Temp. In']['label']: { + 'comp': 'wt', 'value': lims_circ}, + self.prefix+self.chs['TL Sts']['A']['label']['Circulator Temp. Out']: { + 'comp': 'wt', 'value': lims_circ} + } + else: + lims_circ = self.chs['TL Sts']['Circ Limits'] + ch2vals = { + self.prefix+self.chs['TL Sts']['Circulator Temp. In']['label']: { + 'comp': 'wt', 'value': lims_circ}, + self.prefix+self.chs['TL Sts']['label']['Circulator Temp. Out']: { + 'comp': 'wt', 'value': lims_circ} + } self.led_tempcircok = PyDMLedMultiChannel(self, ch2vals) hbox_tempcirc_state = QHBoxLayout() hbox_tempcirc_state.addWidget(lb_tempcirc, alignment=Qt.AlignLeft) @@ -1322,14 +1343,24 @@ def _graphsLayout(self): self.tempcirc_graph.showYGrid = True self.tempcirc_graph.timeSpan = 1800 self.tempcirc_graph.maxRedrawRate = 1 - self.tempcirc_graph.addYChannel( - y_channel=self.prefix+self.chs['TL Sts']['Circulator Temp. In']['label'], - name='CTIn', color='magenta', - lineStyle=Qt.SolidLine, lineWidth=1) - self.tempcirc_graph.addYChannel( - y_channel=self.prefix+self.chs['TL Sts']['label']['Circulator Temp. Out'], - name='CTOut', color='darkRed', - lineStyle=Qt.SolidLine, lineWidth=1) + if self.section == 'SI': + self.tempcirc_graph.addYChannel( + y_channel=self.prefix+self.chs['TL Sts']['A']['Circulator Temp. In']['label'], + name='CTIn', color='magenta', + lineStyle=Qt.SolidLine, lineWidth=1) + self.tempcirc_graph.addYChannel( + y_channel=self.prefix+self.chs['TL Sts']['A']['label']['Circulator Temp. Out'], + name='CTOut', color='darkRed', + lineStyle=Qt.SolidLine, lineWidth=1) + else: + self.tempcirc_graph.addYChannel( + y_channel=self.prefix+self.chs['TL Sts']['Circulator Temp. In']['label'], + name='CTIn', color='magenta', + lineStyle=Qt.SolidLine, lineWidth=1) + self.tempcirc_graph.addYChannel( + y_channel=self.prefix+self.chs['TL Sts']['label']['Circulator Temp. Out'], + name='CTOut', color='darkRed', + lineStyle=Qt.SolidLine, lineWidth=1) self.tempcirc_graph.setLabel('left', '') self.line_circ_maxlim = InfiniteLine( @@ -1388,8 +1419,6 @@ def _graphsLayout(self): lay.setContentsMargins(0, 0, 0, 0) lay.addWidget(self.temp_wid, 0, 0) lay.addWidget(self.vac_wid, 1, 0) - lay.setRowStretch(0, 7) - lay.setRowStretch(1, 3) return lay def _create_vlay(self, widget1, widget2): @@ -1405,7 +1434,7 @@ def _create_ssa_wid(self, lay_amp, row, chs_dict): lay_amp.addWidget(led_sts, row, 1) lb_name = QLabel('

'+chs_dict['Name']+'

', self, - alignment=Qt.AlignLeft) + alignment=Qt.AlignLeft | Qt.AlignVCenter) lb_name.setStyleSheet('max-height: 1.29em;') lay_amp.addWidget(lb_name, row, 2) @@ -1464,6 +1493,141 @@ def _create_ssa_wid(self, lay_amp, row, chs_dict): ch_pinsw.new_value_signal[int].connect( _part(self._handle_predrive_led_channels, led_drive, chs_dict)) + def _create_tun_set_wid(self, lay_tunset, column, chs_dict, offset): + if column: + lay_tunset.addWidget(QLabel( + column, self, alignment=Qt.AlignCenter), 0, offset) + + bt_autotun = PyDMStateButton( + self, self.prefix+chs_dict['Auto']+'-Sel') + lb_autotun = SiriusLedState( + self, self.prefix+chs_dict['Auto']+'-Sts') + lay_autotun = QHBoxLayout() + lay_autotun.setSpacing(6) + lay_autotun.addWidget(bt_autotun) + lay_autotun.addWidget(lb_autotun) + + sb_dtune = SiriusSpinbox( + self, self.prefix+chs_dict['DTune']+'-SP') + lb_dtune = SiriusLabel( + self, self.prefix+chs_dict['DTune']+'-RB') + lb_dtune.showUnits = True + lay_dtune = QHBoxLayout() + lay_dtune.setSpacing(6) + lay_dtune.addWidget(sb_dtune) + lay_dtune.addWidget(lb_dtune) + + sb_margin = SiriusSpinbox( + self, self.prefix+chs_dict['Deadbnd']+'-SP') + lb_margin = SiriusLabel( + self, self.prefix+chs_dict['Deadbnd']+'-RB') + lb_margin.showUnits = True + lay_margin = QHBoxLayout() + lay_margin.setSpacing(6) + lay_margin.addWidget(sb_margin) + lay_margin.addWidget(lb_margin) + + sb_oversht = SiriusSpinbox( + self, self.prefix+chs_dict['Oversht']+'-SP') + lb_oversht = SiriusLabel( + self, self.prefix+chs_dict['Oversht']+'-RB') + lb_oversht.showUnits = True + lay_oversht = QHBoxLayout() + lay_oversht.setSpacing(6) + lay_oversht.addWidget(sb_oversht) + lay_oversht.addWidget(lb_oversht) + + lb_dphase = SiriusLabel( + self, self.prefix+chs_dict['DPhase']) + lb_dphase.showUnits = True + led_tunact = SiriusLedState( + self, self.prefix+chs_dict['Acting']) + + lay_tunset.addLayout(lay_autotun, 1, offset) + lay_tunset.addLayout(lay_dtune, 2, offset) + lay_tunset.addLayout(lay_margin, 3, offset) + lay_tunset.addLayout(lay_oversht, 4, offset) + lay_tunset.addWidget(lb_dphase, 5, offset) + lay_tunset.addWidget(led_tunact, 6, offset, alignment=Qt.AlignCenter) + + def _create_slc_lay(self, lay_slc, key, chs_dict, offset): + if key: + lay_slc.addWidget(QLabel( + f'

{key}

', self, alignment=Qt.AlignRight), + 0, offset) + + lb_slmode = SiriusLabel( + self, self.prefix+chs_dict['Mode']+'-Sts') + led_slmode = PyDMLedMultiChannel( + self, {self.prefix+chs_dict['Mode']+'-Sts': 0}) + bt_slenbl = PyDMStateButton( + self, self.prefix+chs_dict['Enbl']+'-Sel') + led_slenbl = SiriusLedState( + self, self.prefix+chs_dict['Enbl']+'-Sts') + + lay_slc.addWidget(lb_slmode, 1, offset, alignment=Qt.AlignCenter) + lay_slc.addWidget(led_slmode, 1, offset+1, alignment=Qt.AlignCenter) + lay_slc.addWidget(bt_slenbl, 2, offset, alignment=Qt.AlignCenter) + lay_slc.addWidget(led_slenbl, 2, offset+1, alignment=Qt.AlignCenter) + + sb_amp1 = SiriusSpinbox( + self, self.prefix+chs_dict['ASet']+'-SP') + lb_amp1 = SiriusLabel( + self, self.prefix+chs_dict['ASet']+'-RB') + cb_ampincrate = PyDMEnumComboBox( + self, self.prefix+chs_dict['AInc']+'-SP') + lb_ampincrate = SiriusLabel( + self, self.prefix+chs_dict['AInc']+'-SP') + sb_phs = SiriusSpinbox( + self, self.prefix+chs_dict['PSet']+'-SP') + lb_phs = SiriusLabel( + self, self.prefix+chs_dict['PSet']+'-RB') + cb_phsincrate = PyDMEnumComboBox( + self, self.prefix+chs_dict['PInc']+'-SP') + lb_phsincrate = SiriusLabel( + self, self.prefix+chs_dict['PInc']+'-RB') + + lay_slc.addWidget(QLabel( + '

SP/RB

', self, alignment=Qt.AlignCenter), 4, offset) + lay_slc.addWidget( + QLabel('

Inc. Rate SP/RB

', self, alignment=Qt.AlignCenter), + 4, offset+1) + lay_slc.addWidget(sb_amp1, 5, offset, alignment=Qt.AlignCenter) + lay_slc.addWidget(lb_amp1, 6, offset, alignment=Qt.AlignCenter) + lay_slc.addWidget(cb_ampincrate, 5, offset+1, alignment=Qt.AlignCenter) + lay_slc.addWidget(lb_ampincrate, 6, offset+1, alignment=Qt.AlignCenter) + lay_slc.addWidget(sb_phs, 7, offset, alignment=Qt.AlignCenter) + lay_slc.addWidget(lb_phs, 8, offset, alignment=Qt.AlignCenter) + lay_slc.addWidget(cb_phsincrate, 7, offset+1, alignment=Qt.AlignCenter) + lay_slc.addWidget(lb_phsincrate, 8, offset+1, alignment=Qt.AlignCenter) + + lb_ampref = SiriusLabel(self, self.prefix+chs_dict['ARef']) + lb_ampref.showUnits = True + lb_ampinp = SiriusLabel(self, self.prefix+chs_dict['AInp']) + lb_ampinp.showUnits = True + lb_amperr = SiriusLabel(self, self.prefix+chs_dict['AErr']) + lb_amperr.showUnits = True + lb_phsref = SiriusLabel(self, self.prefix+chs_dict['PRef']) + lb_phsref.showUnits = True + lb_phsinp = SiriusLabel(self, self.prefix+chs_dict['PInp']) + lb_phsinp.showUnits = True + lb_phserr = SiriusLabel(self, self.prefix+chs_dict['PErr']) + lb_phserr.showUnits = True + + lay_slc.addWidget(QLabel( + '

Amp.

', self, alignment=Qt.AlignCenter), 11, offset) + lay_slc.addWidget(QLabel( + '

Phase

', self, alignment=Qt.AlignCenter), 11, offset+1) + + lay_slc.addWidget(lb_ampref, 12, offset) + lay_slc.addWidget(lb_ampinp, 13, offset) + lay_slc.addWidget(lb_amperr, 14, offset) + lay_slc.addWidget(lb_phsref, 12, offset+1) + lay_slc.addWidget(lb_phsinp, 13, offset+1) + lay_slc.addWidget(lb_phserr, 14, offset+1) + lay_slc.addItem(QSpacerItem( + 15, 0, QSzPlcy.Fixed, QSzPlcy.Ignored), 12, offset+2) + def _handle_pwrdata_visibility(self, text): for group, labels in self._pm_labels.items(): for lbl in labels: diff --git a/pyqt-apps/siriushla/as_rf_control/details.py b/pyqt-apps/siriushla/as_rf_control/details.py index 023767933..2586c3cff 100644 --- a/pyqt-apps/siriushla/as_rf_control/details.py +++ b/pyqt-apps/siriushla/as_rf_control/details.py @@ -1,6 +1,7 @@ """Detail windows.""" from pyqtgraph import BarGraphItem, PlotWidget +from pydm.widgets import PyDMEnumComboBox from qtpy.QtCore import Qt, QTimer from qtpy.QtGui import QColor from qtpy.QtWidgets import QCheckBox, QComboBox, QFormLayout, QGridLayout, \ @@ -9,7 +10,9 @@ from ..widgets import DetachableTabWidget, PyDMLedMultiChannel, \ PyDMStateButton, SiriusConnectionSignal as _ConnSignal, SiriusDialog, \ - SiriusLabel, SiriusLedAlert, SiriusSpinbox, SiriusWaveformPlot + SiriusLabel, SiriusLedAlert, SiriusSpinbox, SiriusTimePlot, \ + SiriusWaveformPlot + from .util import SEC_2_CHANNELS @@ -174,12 +177,33 @@ def __init__(self, parent=None, prefix='', section=''): self._setupUi() def _setupUi(self): - lay = QFormLayout(self) - lay.setLabelAlignment(Qt.AlignRight) - lay.addRow(QLabel('

Transm. Line - Detailed Status

')) - lay.addItem(QSpacerItem(0, 10, QSzPlcy.Ignored, QSzPlcy.Fixed)) + lay = QGridLayout(self) + lay.setAlignment(Qt.AlignTop) + lay.setSpacing(15) - for widget_id, pvname in self.chs['TL Sts']['label_led'].items(): + self.title = QLabel( + '

Transm. Line - Detailed Status

', + self, alignment=Qt.AlignHCenter) + lay.addWidget(self.title, 0, 0, 1, 4) + lay.addItem(QSpacerItem(0, 10, QSzPlcy.Ignored, QSzPlcy.Fixed), 1, 0) + + offset = 0 + if self.section == 'SI': + for key, chs_dict in self.chs['TL Sts'].items(): + self._setupDetails(lay, key, chs_dict, offset) + offset += 2 + else: + self._setupDetails(lay, None, self.chs['TL Sts'], offset) + + def _setupDetails(self, lay, key, chs_dict, offset): + row = 2 + if key: + lay.addWidget(QLabel( + f'

{key}

', self, + alignment=Qt.AlignRight), row, offset) + row += 1 + + for widget_id, pvname in chs_dict['label_led'].items(): wid = QWidget() hlay = QHBoxLayout() wid.setLayout(hlay) @@ -196,7 +220,10 @@ def _setupUi(self): self, self.prefix+pvname['led']) hlay.addWidget(si_led_wid) - lay.addRow(widget_id, wid) + lay.addWidget(QLabel( + widget_id, self, alignment=Qt.AlignRight), row, offset) + lay.addWidget(wid, row, offset+1) + row += 1 wid = QWidget() hlay = QHBoxLayout() @@ -204,32 +231,44 @@ def _setupUi(self): hlay.setContentsMargins(0, 0, 0, 0) lb_circtin = SiriusLabel( - self, self.prefix+self.chs['TL Sts']['Circulator Temp. In']['label']) + self, self.prefix+chs_dict['Circulator Temp. In']['label']) lb_circtin.showUnits = True lb_circtin.setStyleSheet('qproperty-alignment: AlignLeft;') hlay.addWidget(lb_circtin) si_led_wid = PyDMLedMultiChannel( - self, self.chs['TL Sts']['Circulator Temp. In']['led']) + self, chs_dict['Circulator Temp. In']['led']) hlay.addWidget(si_led_wid) - lay.addRow('Circulator T In: ', wid) + lay.addWidget(QLabel( + 'Circulator T In: ', self, alignment=Qt.AlignRight), row, offset) + lay.addWidget(wid, row, offset + 1) + row += 1 - for widget_id, pvname in self.chs['TL Sts']['label'].items(): + for widget_id, pvname in chs_dict['label'].items(): if not ((self.section == 'BO') and ('Combiner' == widget_id)): si_lbl_wid = SiriusLabel( self, self.prefix+pvname) si_lbl_wid.showUnits = True si_lbl_wid.setStyleSheet('qproperty-alignment: AlignLeft;') - lay.addRow(widget_id, si_lbl_wid) + lay.addWidget(QLabel( + widget_id, self, alignment=Qt.AlignRight), row, offset) + lay.addWidget(si_lbl_wid, row, offset+1) + row += 1 - lay.addItem(QSpacerItem(0, 10, QSzPlcy.Ignored, QSzPlcy.Fixed)) + lay.addItem(QSpacerItem( + 0, 10, QSzPlcy.Ignored, QSzPlcy.Fixed), row, offset) + row += 1 - for widget_id, pvname in self.chs['TL Sts']['led'].items(): + for widget_id, pvname in chs_dict['led'].items(): if not ((self.section == 'BO') and ('Detector Load' in widget_id)): si_led_wid = SiriusLedAlert( self, self.prefix+pvname) - lay.addRow(widget_id + ": ", si_led_wid) + lay.addWidget(QLabel( + f'{widget_id}: ', self, alignment=Qt.AlignRight), + row, offset) + lay.addWidget(si_led_wid, row, offset+1) + row += 1 self.setStyleSheet(""" SiriusLabel{ @@ -237,10 +276,6 @@ def _setupUi(self): } QLed{ max-width: 1.29em; - } - .QLabel{ - max-height:2em; - qproperty-alignment: AlignRight; }""") @@ -269,9 +304,23 @@ def _setupUi(self): alignment=Qt.AlignCenter) lay.addWidget(self.title, 0, 0, 1, 3) + if self.section == 'SI': + offset = 1 + for key, chs_dict in self.chs['LLRF Intlk Details'].items(): + self._setupDetails(lay, key, chs_dict, offset) + offset += 2 + else: + self._setupDetails(lay, None, self.chs['LLRF Intlk Details'], 1) + + def _setupDetails(self, lay, key, chs_dict, offset): + if key: + lay.addWidget(QLabel( + f'

LLRF {key}

', self, + alignment=Qt.AlignLeft), offset, 0) + # inputs col = 0 - for name, dic in self.chs['LLRF Intlk Details']['Inputs'].items(): + for name, dic in chs_dict['Inputs'].items(): gbox = QGroupBox(name, self) lay_intlk = QGridLayout(gbox) lay_intlk.setAlignment(Qt.AlignTop) @@ -299,7 +348,7 @@ def _setupUi(self): lbl.setStyleSheet('QLabel{min-width:12em;}') lay_intlk.addWidget(lbl, irow, icol) - lay.addWidget(gbox, 1, col) + lay.addWidget(gbox, offset+1, col) col += 1 # timestamps @@ -308,7 +357,7 @@ def _setupUi(self): lay_time.setAlignment(Qt.AlignTop) lay_time.setHorizontalSpacing(9) lay_time.setVerticalSpacing(9) - for idx, pvn in self.chs['LLRF Intlk Details']['Timestamps'].items(): + for idx, pvn in chs_dict['Timestamps'].items(): irow = int(idx)-1 desc = QLabel('Interlock '+idx, self, alignment=Qt.AlignCenter) desc.setStyleSheet('QLabel{min-width:6em;}') @@ -316,7 +365,7 @@ def _setupUi(self): lbl.showUnits = True lay_time.addWidget(desc, irow, 0) lay_time.addWidget(lbl, irow, 1) - lay.addWidget(gbox_time, 1, col) + lay.addWidget(gbox_time, offset+1, col) class BarGraph(PlotWidget): @@ -417,13 +466,13 @@ def _setupUi(self): class FDLMonitor(SiriusDialog): """Fast Data Logger Monitor.""" - def __init__(self, parent=None, prefix='', section=''): + def __init__(self, parent=None, prefix='', section='', chs=''): """Init.""" super().__init__(parent) self.prefix = prefix self.prefix += ('-' if prefix and not prefix.endswith('-') else '') self.section = section - self.chs = SEC_2_CHANNELS[self.section] + self.chs = chs self.setObjectName(self.section+'App') self.setWindowTitle('FDL Monitor') self.curves_amp = dict() @@ -436,6 +485,14 @@ def _setupUi(self): lay = QVBoxLayout(wid) lay.setAlignment(Qt.AlignTop) + if self.section == 'SI': + title = QLabel( + f"

LLRF {self.chs['Name']} FDL

", self, + alignment=Qt.AlignCenter) + else: + title = QLabel("

LLRF FDL

", self, alignment=Qt.AlignCenter) + lay.addWidget(title) + controls = QGroupBox('Controls', self) controls.setLayout(self._controlsLayout()) @@ -451,11 +508,11 @@ def _controlsLayout(self): lay.setHorizontalSpacing(15) # First line - self.lb_mode = SiriusLabel(self, self.prefix + self.chs['FDL']['Mode']) + self.lb_mode = SiriusLabel(self, self.prefix + self.chs['Mode']) self.led_swtrig = SiriusLedAlert( - self, self.prefix + self.chs['FDL']['SW Trig']) + self, self.prefix + self.chs['SW Trig']) self.bt_swtrig = PyDMStateButton( - self, self.prefix + self.chs['FDL']['Trig']) + self, self.prefix + self.chs['Trig']) lay.addWidget(QLabel( '

Perseus FDL Mode:

', self, @@ -471,9 +528,9 @@ def _controlsLayout(self): # Second line self.lb_processing = SiriusLabel( - self, self.prefix + self.chs['FDL']['Processing']) + self, self.prefix + self.chs['Processing']) self.led_hwtrig = SiriusLedAlert( - self, self.prefix + self.chs['FDL']['HW Trig']) + self, self.prefix + self.chs['HW Trig']) lay.addWidget(QLabel( '

IOC FDL Status:

', self, @@ -488,13 +545,13 @@ def _controlsLayout(self): # Third line self.bt_rearm = PyDMStateButton( - self, self.prefix + self.chs['FDL']['Rearm']) + self, self.prefix + self.chs['Rearm']) self.led_rearm = SiriusLedAlert( - self, self.prefix + self.chs['FDL']['Rearm']) + self, self.prefix + self.chs['Rearm']) self.led_raw = SiriusLedAlert( - self, self.prefix + self.chs['FDL']['Raw']) + self, self.prefix + self.chs['Raw']+'-Sts') self.bt_raw = PyDMStateButton( - self, self.prefix + self.chs['FDL']['Raw'] + ':S') + self, self.prefix + self.chs['Raw']+'-Sel') rearm_lay = QHBoxLayout() rearm_lay.addWidget(self.bt_rearm) @@ -514,18 +571,18 @@ def _controlsLayout(self): # Fourth line self.sb_qty = SiriusSpinbox( - self, self.prefix + self.chs['FDL']['Qty'] + 'SP') + self, self.prefix + self.chs['Qty'] + '-SP') self.lb_qty = SiriusLabel( - self, self.prefix + self.chs['FDL']['Qty'] + 'RB') + self, self.prefix + self.chs['Qty'] + '-RB') qty_lay = QHBoxLayout() qty_lay.addWidget(self.sb_qty) qty_lay.addWidget(self.lb_qty) self.lb_size = SiriusLabel( - self, self.prefix + self.chs['FDL']['Size']) + self, self.prefix + self.chs['Size']) self.lb_size._show_units = True self.lb_duration = SiriusLabel( - self, self.prefix + self.chs['FDL']['Duration']) + self, self.prefix + self.chs['Duration']) self.lb_duration._show_units = True size_dur_lay = QHBoxLayout() size_dur_lay.addWidget(QLabel( @@ -546,13 +603,13 @@ def _controlsLayout(self): # Fifth line self.sb_delay_sample = SiriusSpinbox( - self, self.prefix + self.chs['FDL']['Delay'] + '-SP') + self, self.prefix + self.chs['Delay'] + '-SP') self.lb_delay_sample = SiriusLabel( - self, self.prefix + self.chs['FDL']['Delay'] + '-RB') + self, self.prefix + self.chs['Delay'] + '-RB') self.sb_delay_us = SiriusSpinbox( - self, self.prefix + self.chs['FDL']['Delay'] + 'Time-SP') + self, self.prefix + self.chs['Delay'] + 'Time-SP') self.lb_delay_us = SiriusLabel( - self, self.prefix + self.chs['FDL']['Delay'] + 'Time-RB') + self, self.prefix + self.chs['Delay'] + 'Time-RB') sb_unit = QComboBox() sb_unit.addItems(['Choose a unit', 'Sample units', 'us']) sb_unit.setMaximumWidth(120) @@ -594,10 +651,10 @@ def _graphsLayout(self): checks_wid = QWidget() self.hbox_checks = QHBoxLayout(checks_wid) - for idx in range(len(self.chs['FDL']['Signals'])): + for idx in range(len(self.chs['Signals'])): self.setupCurve( - self.chs['FDL']['Signals'][idx], - self.prefix + self.chs['FDL']['Time'], + self.chs['Signals'][idx], + self.prefix + self.chs['Time'], idx) lay.addWidget(checks_wid) @@ -667,3 +724,301 @@ def _handle_unit_change(self, text): self.lb_delay_sample.setVisible(text == 'Sample units') self.sb_delay_us.setVisible(text == 'us') self.lb_delay_us.setVisible(text == 'us') + + +class SlowLoopErrorDetails(SiriusDialog): + """Slow Loop Control Error Details.""" + def __init__(self, parent=None, prefix='', section=''): + """Init.""" + super().__init__(parent) + self.prefix = prefix + self.prefix += ('-' if prefix and not prefix.endswith('-') else '') + self.section = section + self.chs = SEC_2_CHANNELS[self.section] + self.setObjectName(self.section+'App') + self.setWindowTitle('Slow Loop Control Error Details') + self._setupUi() + + def _setupUi(self): + lay = QVBoxLayout(self) + lay.setAlignment(Qt.AlignTop) + lay.setSpacing(20) + + self.title = QLabel( + '

Slow Loop Control Error Details

', self, + alignment=Qt.AlignCenter) + lay.addWidget(self.title) + + if self.section == 'SI': + for key, chs_dict in self.chs['SL']['ErrDtls'].items(): + self._setupDetails(lay, key, chs_dict) + else: + self._setupDetails(lay, None, self.chs['SL']['ErrDtls']) + + def _setupDetails(self, lay, key, chs_dict): + if key: + lay.addItem(QSpacerItem(0, 10, QSzPlcy.Ignored, QSzPlcy.Fixed)) + lay.addWidget(QLabel( + f'

LLRF {key}

', self, alignment=Qt.AlignCenter)) + + lay_llrf = QHBoxLayout() + lay_llrf.setAlignment(Qt.AlignTop) + lay_llrf.setSpacing(0) + + lay_table = QGridLayout() + lay_table.setAlignment(Qt.AlignVCenter) + lay_table.setSpacing(9) + lay_table.addWidget(QLabel( + '

Reference

', self, alignment=Qt.AlignCenter), 1, 0) + lay_table.addWidget(QLabel( + '

Input

', self, alignment=Qt.AlignCenter), 2, 0) + lay_table.addWidget(QLabel( + '

Error

', self, alignment=Qt.AlignCenter), 3, 0) + + # I + lb_iref = SiriusLabel(self, self.prefix+chs_dict['IRef']) + lb_iref.showUnits = True + lb_iinp = SiriusLabel(self, self.prefix+chs_dict['IInp']) + lb_iinp.showUnits = True + lb_ierr = SiriusLabel(self, self.prefix+chs_dict['IErr']) + lb_ierr.showUnits = True + lay_table.addWidget(QLabel( + '

I

', self, alignment=Qt.AlignCenter), 0, 1) + lay_table.addWidget(lb_iref, 1, 1) + lay_table.addWidget(lb_iinp, 2, 1) + lay_table.addWidget(lb_ierr, 3, 1) + + # Q + lb_qref = SiriusLabel(self, self.prefix+chs_dict['QRef']) + lb_qref.showUnits = True + lb_qinp = SiriusLabel(self, self.prefix+chs_dict['QInp']) + lb_qinp.showUnits = True + lb_qerr = SiriusLabel(self, self.prefix+chs_dict['QErr']) + lb_qerr.showUnits = True + lay_table.addWidget(QLabel( + '

Q

', self, alignment=Qt.AlignCenter), 0, 2) + lay_table.addWidget(lb_qref, 1, 2) + lay_table.addWidget(lb_qinp, 2, 2) + lay_table.addWidget(lb_qerr, 3, 2) + + lay_llrf.addLayout(lay_table) + lay_llrf.addItem(QSpacerItem(15, 0, QSzPlcy.Fixed, QSzPlcy.Ignored)) + + # Graphs + self.setupGraphFasor(lay_llrf, chs_dict) + self.setupGraphTime(lay_llrf, key, "Amp") + self.setupGraphTime(lay_llrf, key, "Phs") + + lay.addLayout(lay_llrf) + + def setupGraphFasor(self, lay_llrf, chs_dict): + graph_iq = SiriusWaveformPlot( + parent=self, background=QColor(255, 255, 255)) + graph_iq.setStyleSheet('min-height: 15em; min-width: 20em;') + graph_iq.maxRedrawRate = 2 + graph_iq.mouseEnabledX = True + graph_iq.setShowXGrid(True) + graph_iq.setShowYGrid(True) + graph_iq.setShowLegend(True) + graph_iq.setAutoRangeX(False) + graph_iq.setAutoRangeY(False) + graph_iq.setAxisColor(QColor(0, 0, 0)) + axx = graph_iq.plotItem.getAxis('right') + axx.setVisible(True) + axx.setTicks([]) + axx.setWidth(0) + axx = graph_iq.plotItem.getAxis('top') + axx.setVisible(True) + axx.setTicks([]) + axx.setHeight(0) + + lbl_axis = ["Q", "I"] + channels = { + 'Input': { + 'X': self.prefix+chs_dict['IInp'], + 'Y': self.prefix+chs_dict['QInp'] + }, + 'Reference': { + 'X': self.prefix+chs_dict['IRef'], + 'Y': self.prefix+chs_dict['QRef'] + } + } + graph_iq.setMinXRange(-1.0) + graph_iq.setMaxXRange(1.0) + graph_iq.setMinYRange(-1.0) + graph_iq.setMaxYRange(1.0) + + graph_iq.setYLabels([lbl_axis[0]]) + graph_iq.setXLabels([lbl_axis[1]]) + graph_iq.setPlotTitle("I & Q Fasor") + + opts = dict( + y_channel=channels['Input']['Y'], + x_channel=channels['Input']['X'], + name='Input', + color='red', + redraw_mode=2, + lineStyle=1, + lineWidth=3, + symbol='o', + symbolSize=10) + graph_iq.addChannel(**opts) + + opts = dict( + y_channel=channels['Reference']['Y'], + x_channel=channels['Reference']['X'], + name='Reference', + color='blue', + redraw_mode=2, + lineStyle=1, + lineWidth=3, + symbol='o', + symbolSize=10) + graph_iq.addChannel(**opts) + + lay_llrf.addWidget(graph_iq) + + def setupGraphTime(self, lay_llrf, key, mode): + graph = SiriusTimePlot(self) + graph.setStyleSheet('min-height:15em;min-width:20em;max-height:15em;') + graph.timeSpan = 120 + graph.maxRedrawRate = 2 + graph.setShowXGrid(True) + graph.setShowYGrid(True) + graph.backgroundColor = QColor(255, 255, 255) + graph.setShowLegend(True) + graph.setAxisColor(QColor(0, 0, 0)) + graph.setXLabels(["Time"]) + axx = graph.plotItem.getAxis('right') + axx.setVisible(True) + axx.setTicks([]) + axx.setWidth(0) + axx = graph.plotItem.getAxis('top') + axx.setVisible(True) + axx.setTicks([]) + axx.setHeight(0) + + chs_dict = self.chs['SL']['Over'] + if self.section == 'SI': + chs_dict = chs_dict[key] + + if mode == 'Amp': + title = 'Amplitude' + channels = { + 'Input': self.prefix+chs_dict['AInp'], + 'Reference': self.prefix+chs_dict['ARef'] + } + else: + title = 'Phase' + channels = { + 'Input': self.prefix+chs_dict['PInp'], + 'Reference': self.prefix+chs_dict['PRef'] + } + + graph.setPlotTitle(title) + graph.setYLabels([title]) + + opts = dict( + y_channel=channels['Input'], + name='Input', + color='red', + lineStyle=1, + lineWidth=3) + graph.addYChannel(**opts) + + opts = dict( + y_channel=channels['Reference'], + name='Reference', + color='blue', + lineStyle=1, + lineWidth=3) + graph.addYChannel(**opts) + + lay_llrf.addWidget(graph) + + +class SlowLoopParametersDetails(SiriusDialog): + """Slow Loop Control Parameters Details.""" + def __init__(self, parent=None, prefix='', section=''): + """Init.""" + super().__init__(parent) + self.prefix = prefix + self.prefix += ('-' if prefix and not prefix.endswith('-') else '') + self.section = section + self.chs = SEC_2_CHANNELS[self.section] + self.setObjectName(self.section+'App') + self.setWindowTitle('Slow Loop Control Parameters Details') + self._setupUi() + + def _setupUi(self): + lay = QVBoxLayout(self) + lay.setAlignment(Qt.AlignTop) + lay.setSpacing(20) + + self.title = QLabel( + '

Slow Loop Control Parameters Details

', self, + alignment=Qt.AlignCenter + ) + lay.addWidget(self.title) + + if self.section == 'SI': + for key, chs_dict in self.chs['SL']['Params'].items(): + self._setupDetails(lay, key, chs_dict) + else: + self._setupDetails(lay, None, self.chs['SL']['Params']) + + def _setupDetails(self, lay, key, chs_dict): + if key: + lay.addItem(QSpacerItem(0, 10, QSzPlcy.Ignored, QSzPlcy.Fixed)) + lay.addWidget(QLabel( + f'

LLRF {key}

', self, alignment=Qt.AlignLeft)) + + lay_llrf = QGridLayout() + lay_llrf.setAlignment(Qt.AlignTop) + lay_llrf.setHorizontalSpacing(9) + lay_llrf.setVerticalSpacing(9) + + cb_inpsel = PyDMEnumComboBox( + self, self.prefix+chs_dict['Inp']+'-Sel') + lb_inpsel = SiriusLabel( + self, self.prefix+chs_dict['Inp']+'-Sts') + sb_pilimit = SiriusSpinbox( + self, self.prefix+chs_dict['PIL']+'-SP') + lb_pilimit = SiriusLabel( + self, self.prefix+chs_dict['PIL']+'-RB') + sb_ki = SiriusSpinbox( + self, self.prefix+chs_dict['KI']+'-SP') + lb_ki = SiriusLabel( + self, self.prefix+chs_dict['KI']+'-RB') + sb_kp = SiriusSpinbox( + self, self.prefix+chs_dict['KP']+'-SP') + lb_kp = SiriusLabel( + self, self.prefix+chs_dict['KP']+'-RB') + + lay_llrf.addWidget( + QLabel('

SP/RB

', self, alignment=Qt.AlignCenter), + 0, 2, 1, 2) + lay_llrf.addWidget( + QLabel('

PI Limit

', self, alignment=Qt.AlignCenter), + 1, 0, 1, 2) + lay_llrf.addWidget( + QLabel('

Ki

', self, alignment=Qt.AlignCenter), 2, 0, 1, 2) + lay_llrf.addWidget( + QLabel('

Kp

', self, alignment=Qt.AlignCenter), 3, 0, 1, 2) + lay_llrf.addWidget(sb_pilimit, 1, 2, alignment=Qt.AlignRight) + lay_llrf.addWidget(lb_pilimit, 1, 3, alignment=Qt.AlignLeft) + lay_llrf.addWidget(sb_ki, 2, 2, alignment=Qt.AlignRight) + lay_llrf.addWidget(lb_ki, 2, 3, alignment=Qt.AlignLeft) + lay_llrf.addWidget(sb_kp, 3, 2, alignment=Qt.AlignRight) + lay_llrf.addWidget(lb_kp, 3, 3, alignment=Qt.AlignLeft) + + lay_input = QGridLayout() + lay_input.addWidget( + QLabel('

Loop Input

', self, alignment=Qt.AlignCenter), + 1, 0, 1, 2) + lay_input.addWidget(cb_inpsel, 2, 0, alignment=Qt.AlignRight) + lay_input.addWidget(lb_inpsel, 2, 1, alignment=Qt.AlignLeft) + lay_input.setRowStretch(0, 2) + lay_input.setRowStretch(3, 2) + lay_llrf.addLayout(lay_input, 1, 4, 3, 2) + lay.addLayout(lay_llrf) diff --git a/pyqt-apps/siriushla/as_rf_control/util.py b/pyqt-apps/siriushla/as_rf_control/util.py index 0cfec7b6d..47929137f 100644 --- a/pyqt-apps/siriushla/as_rf_control/util.py +++ b/pyqt-apps/siriushla/as_rf_control/util.py @@ -10,15 +10,15 @@ 'Inputs': { 'Input': { 'Status': { - '0': 'BR-RF-DLLRF-01:ILK:0', - '1': 'BR-RF-DLLRF-01:ILK:1', - '2': 'BR-RF-DLLRF-01:ILK:2', - '3': 'BR-RF-DLLRF-01:ILK:3', - '4': 'BR-RF-DLLRF-01:ILK:4', - '5': 'BR-RF-DLLRF-01:ILK:5', - '6': 'BR-RF-DLLRF-01:ILK:6', - '7': 'BR-RF-DLLRF-01:ILK:7', - 'Mon': 'BR-RF-DLLRF-01:Intlk-Mon', + '0': 'RA-RaBO01:RF-LLRF:Inp1Intlk0-Mon', + '1': 'RA-RaBO01:RF-LLRF:Inp1Intlk1-Mon', + '2': 'RA-RaBO01:RF-LLRF:Inp1Intlk2-Mon', + '3': 'RA-RaBO01:RF-LLRF:Inp1Intlk3-Mon', + '4': 'RA-RaBO01:RF-LLRF:Inp1Intlk4-Mon', + '5': 'RA-RaBO01:RF-LLRF:Inp1Intlk5-Mon', + '6': 'RA-RaBO01:RF-LLRF:Inp1Intlk6-Mon', + '7': 'RA-RaBO01:RF-LLRF:Inp1Intlk7-Mon', + 'Mon': 'RA-RaBO01:RF-LLRF:Inp1Intlk-Mon', }, 'Labels': ( 'Rev Out SSA', @@ -39,15 +39,15 @@ }, 'Fast Input': { 'Status': { - '0': 'BR-RF-DLLRF-01:FAST:ILK:0', - '1': 'BR-RF-DLLRF-01:FAST:ILK:1', - '2': 'BR-RF-DLLRF-01:FAST:ILK:2', - '3': 'BR-RF-DLLRF-01:FAST:ILK:3', - '4': 'BR-RF-DLLRF-01:FAST:ILK:4', - '5': 'BR-RF-DLLRF-01:FAST:ILK:5', - '6': 'BR-RF-DLLRF-01:FAST:ILK:6', - '7': 'BR-RF-DLLRF-01:FAST:ILK:7', - 'Mon': 'BR-RF-DLLRF-01:FASTINLK-MON', + '0': 'RA-RaBO01:RF-LLRF:Inp2Intlk0-Mon', + '1': 'RA-RaBO01:RF-LLRF:Inp2Intlk1-Mon', + '2': 'RA-RaBO01:RF-LLRF:Inp2Intlk2-Mon', + '3': 'RA-RaBO01:RF-LLRF:Inp2Intlk3-Mon', + '4': 'RA-RaBO01:RF-LLRF:Inp2Intlk4-Mon', + '5': 'RA-RaBO01:RF-LLRF:Inp2Intlk5-Mon', + '6': 'RA-RaBO01:RF-LLRF:Inp2Intlk6-Mon', + '7': 'RA-RaBO01:RF-LLRF:Inp2Intlk7-Mon', + 'Mon': 'RA-RaBO01:RF-LLRF:Inp2Intlk-Mon', }, 'Labels': ( 'Cavity Voltage', @@ -67,18 +67,18 @@ } }, 'Timestamps': { - '1': 'BR-RF-DLLRF-01:TS1', - '2': 'BR-RF-DLLRF-01:TS2', - '3': 'BR-RF-DLLRF-01:TS3', - '4': 'BR-RF-DLLRF-01:TS4', - '5': 'BR-RF-DLLRF-01:TS5', - '6': 'BR-RF-DLLRF-01:TS6', - '7': 'BR-RF-DLLRF-01:TS7', + '1': 'RA-RaBO01:RF-LLRF:IntlkTs1-Mon', + '2': 'RA-RaBO01:RF-LLRF:IntlkTs2-Mon', + '3': 'RA-RaBO01:RF-LLRF:IntlkTs3-Mon', + '4': 'RA-RaBO01:RF-LLRF:IntlkTs4-Mon', + '5': 'RA-RaBO01:RF-LLRF:IntlkTs5-Mon', + '6': 'RA-RaBO01:RF-LLRF:IntlkTs6-Mon', + '7': 'RA-RaBO01:RF-LLRF:IntlkTs7-Mon', } }, 'Reset': { 'Global': 'RA-RaBO02:RF-Intlk:Reset-Cmd', - 'LLRF': 'BR-RF-DLLRF-01:Reset-Cmd', + 'LLRF': 'RA-RaBO01:RF-LLRF:IntlkReset-Cmd', }, 'Cav Sts': { 'Geral': 'BO-05D:RF-P5Cav:Sts-Mon', @@ -114,7 +114,7 @@ }, 'Vac': { 'Cells': 'BO-05D:VA-CCG-RFC:Pressure-Mon', - 'Cond': 'BR-RF-DLLRF-01:VACUUM', + 'Cond': 'RA-RaBO01:RF-LLRF:VacuumFastRly-Mon', 'Cells ok': 'BO-05D:RF-P5Cav:Pressure-Mon', 'Coupler ok': 'BO-05D:RF-P5Cav:CoupPressure-Mon', } @@ -177,79 +177,86 @@ 'Disable': 'RA-RaBO01:RF-LLRFPreAmp:PinSwDsbl-Cmd', 'Mon': 'RA-RaBO01:RF-LLRFPreAmp:PinSw-Mon' }, - 'PreDrive': 'BR-RF-DLLRF-01:INPRE:AMP', + 'PreDrive': 'RA-RaBO01:RF-LLRFPreAmp:PwrFwdInAmp-Mon', 'PreDriveThrs': 4, # mV }, 'SL': { - 'Enbl': 'BR-RF-DLLRF-01:SL', - 'Mode': 'BR-RF-DLLRF-01:MODE', - 'IRef': 'BR-RF-DLLRF-01:I:SL:REF', - 'QRef': 'BR-RF-DLLRF-01:Q:SL:REF', - 'ARef': 'BR-RF-DLLRF-01:SL:REF:AMP', - 'PRef': 'BR-RF-DLLRF-01:SL:REF:PHS', - 'IInp': 'BR-RF-DLLRF-01:I:SL:INP', - 'QInp': 'BR-RF-DLLRF-01:Q:SL:INP', - 'AInp': 'BR-RF-DLLRF-01:SL:INP:AMP', - 'PInp': 'BR-RF-DLLRF-01:SL:INP:PHS', - 'IErr': 'BR-RF-DLLRF-01:I:SL:ERR', - 'QErr': 'BR-RF-DLLRF-01:Q:SL:ERR', - 'AErr': 'BR-RF-DLLRF-01:SL:ERR:AMP', - 'PErr': 'BR-RF-DLLRF-01:SL:ERR:PHS', - 'ASet': ['BR-RF-DLLRF-01:mV:AL:REF', 'RA-RaBO01:RF-LLRF:AmpVCav'], - 'PSet': 'BR-RF-DLLRF-01:PL:REF', - 'AInc': 'BR-RF-DLLRF-01:AMPREF:INCRATE', - 'PInc': 'BR-RF-DLLRF-01:PHSREF:INCRATE', - 'Inp': 'BR-RF-DLLRF-01:SL:SEL', - 'PIL': 'BR-RF-DLLRF-01:SL:PILIMIT', - 'KI': 'BR-RF-DLLRF-01:SL:KI', - 'KP': 'BR-RF-DLLRF-01:SL:KP', + 'ErrDtls': { + 'IRef': 'RA-RaBO01:RF-LLRF:SLRefI-Mon', + 'QRef': 'RA-RaBO01:RF-LLRF:SLRefQ-Mon', + 'IInp': 'RA-RaBO01:RF-LLRF:SLInpI-Mon', + 'QInp': 'RA-RaBO01:RF-LLRF:SLInpQ-Mon', + 'IErr': 'RA-RaBO01:RF-LLRF:SLErrorI-Mon', + 'QErr': 'RA-RaBO01:RF-LLRF:SLErrorQ-Mon', + }, + 'Params': { + 'Inp': 'RA-RaBO01:RF-LLRF:SLInp', + 'PIL': 'RA-RaBO01:RF-LLRF:SLPILim', + 'KI': 'RA-RaBO01:RF-LLRF:SLKI', + 'KP': 'RA-RaBO01:RF-LLRF:SLKP', + }, + 'Over': { + 'Enbl': 'RA-RaBO01:RF-LLRF:SL', + 'Mode': 'RA-RaBO01:RF-LLRF:LoopMode', + 'ASet': 'RA-RaBO01:RF-LLRF:ALRef', + 'PSet': 'RA-RaBO01:RF-LLRF:PLRef', + 'AInc': 'RA-RaBO01:RF-LLRF:AmpIncRate-Sp', + 'PInc': 'RA-RaBO01:RF-LLRF:PhsIncRate', + 'ARef': 'RA-RaBO01:RF-LLRF:SLRefAmp-Mon', + 'PRef': 'RA-RaBO01:RF-LLRF:SLRefPhs-Mon', + 'AInp': 'RA-RaBO01:RF-LLRF:SLInpAmp-Mon', + 'PInp': 'RA-RaBO01:RF-LLRF:SLInpPhs-Mon', + 'AErr': 'RA-RaBO01:RF-LLRF:SLErrAmp-Mon', + 'PErr': 'RA-RaBO01:RF-LLRF:SLErrPhs-Mon', + }, + 'ASet': 'RA-RaBO01:RF-LLRF:AmpVCav', }, 'Tun': { - 'Auto': 'BR-RF-DLLRF-01:TUNE', - 'DTune': 'BR-RF-DLLRF-01:DTune-RB', - 'DPhase': 'BR-RF-DLLRF-01:TUNE:DEPHS', - 'Acting': 'BR-RF-DLLRF-01:TUNE:OUT', - 'Deadbnd': 'BR-RF-DLLRF-01:TUNE:MARGIN:HI', - 'Oversht': 'BR-RF-DLLRF-01:TUNE:MARGIN:LO', - 'Pl1Down': 'BR-RF-DLLRF-01:PLG1:MOVE:DN', - 'Pl1Up': 'BR-RF-DLLRF-01:PLG1:MOVE:UP', - 'Pl2Down': 'BR-RF-DLLRF-01:PLG2:MOVE:DN', - 'Pl2Up': 'BR-RF-DLLRF-01:PLG2:MOVE:UP', + 'Auto': 'RA-RaBO01:RF-LLRF:Tune', + 'DTune': 'RA-RaBO01:RF-LLRF:Detune', + 'DPhase': 'RA-RaBO01:RF-LLRF:TuneDephs-Mon', + 'Acting': 'RA-RaBO01:RF-LLRF:TuneOut-Mon', + 'Deadbnd': 'RA-RaBO01:RF-LLRF:TuneMarginHI', + 'Oversht': 'RA-RaBO01:RF-LLRF:TuneMarginHI', + 'Pl1Down': 'BO-05D:RF-P5Cav:Plg1MoveDown-Mon', + 'Pl1Up': 'BO-05D:RF-P5Cav:Plg1MoveUp-Mon', + 'Pl2Down': 'BO-05D:RF-P5Cav:Plg2MoveDown-Mon', + 'Pl2Up': 'BO-05D:RF-P5Cav:Plg2MoveUp-Mon', 'PlM1Curr': 'RA-RaBO01:RF-CavPlDrivers:Dr1Current-Mon', 'PlM2Curr': 'RA-RaBO01:RF-CavPlDrivers:Dr2Current-Mon', }, 'FFlat': { - 'Sts': 'BR-RF-DLLRF-01:FF:ON', - 'Auto': 'BR-RF-DLLRF-01:FF', - 'Pos': 'BR-RF-DLLRF-01:FF:POS', - 'Gain1': 'BR-RF-DLLRF-01:FF:GAIN:CELL2', - 'Gain2': 'BR-RF-DLLRF-01:FF:GAIN:CELL4', - 'Cell1': 'BR-RF-DLLRF-01:FF:CELL2', - 'Cell2': 'BR-RF-DLLRF-01:FF:CELL4', - 'Deadband': 'BR-RF-DLLRF-01:FF:DEADBAND', - 'Err': 'BR-RF-DLLRF-01:FF:ERR', + 'Sts': 'RA-RaBO01:RF-LLRF:FFOn-Mon', + 'Auto': 'RA-RaBO01:RF-LLRF:FFEn', + 'Pos': 'RA-RaBO01:RF-LLRF:FFDir', + 'Gain1': 'RA-RaBO01:RF-LLRF:FFGainCell2', + 'Gain2': 'RA-RaBO01:RF-LLRF:FFGainCell4', + 'Cell1': 'RA-RaBO01:RF-LLRF:FFCell2-Mon', + 'Cell2': 'RA-RaBO01:RF-LLRF:FFCell4-Mon', + 'Deadband': 'RA-RaBO01:RF-LLRF:FFDeadBand', + 'Err': 'RA-RaBO01:RF-LLRF:FFErr-Mon', }, 'PwrMtr': { 'Cavity Power': { - 'W': 'BO-05D:RF-P5Cav:Cell3Pwr-Mon', - 'dBm': 'BO-05D:RF-P5Cav:Cell3PwrdBm-Mon', - 'mV': 'BR-RF-DLLRF-01:CAV:AMP', + 'W': 'BO-05D:RF-P5Cav:PwrCell3AmpW-Mon', + 'dBm': 'BO-05D:RF-P5Cav:PwrCell3AmpdBm-Mon', + 'mV': 'BO-05D:RF-P5Cav:PwrCell3Amp-Mon', 'color': 'blue', }, 'Power Forward': { - 'W': 'BO-05D:RF-P5Cav:PwrFwd-Mon', - 'dBm': 'BO-05D:RF-P5Cav:PwrFwddBm-Mon', - 'mV': 'BR-RF-DLLRF-01:FWDCAV:AMP', + 'W': 'BO-05D:RF-P5Cav:PwrFwdAmpW-Mon', + 'dBm': 'BO-05D:RF-P5Cav:PwrFwdAmpdBm-Mon', + 'mV': 'BO-05D:RF-P5Cav:PwrFwdAmp-Mon', 'color': 'darkGreen', }, 'Power Reverse': { - 'W': 'BO-05D:RF-P5Cav:PwrRev-Mon', - 'dBm': 'BO-05D:RF-P5Cav:PwrRevdBm-Mon', - 'mV': 'BR-RF-DLLRF-01:REVCAV:AMP', + 'W': 'BO-05D:RF-P5Cav:PwrRevAmpW-Mon', + 'dBm': 'BO-05D:RF-P5Cav:PwrRevAmpdBm-Mon', + 'mV': 'BO-05D:RF-P5Cav:PwrRevAmp-Mon', 'color': 'red', }, }, - 'CavVGap': 'BO-05D:RF-P5Cav:AmpVCav-Mon', + 'CavVGap': 'BO-05D:RF-P5Cav:PwrCell3VCav-Mon', 'TempMon': { 'Temp.': { 'Cells': { @@ -289,195 +296,364 @@ }, 'FDL': { 'Signals': ( - ('Cav', 'BR-RF-DLLRF-01:FDL:CAV:AMP', 'BR-RF-DLLRF-01:FDL:CAV:PHS', 'blue'), - ('Fwd Cav', 'BR-RF-DLLRF-01:FDL:FWDCAV:AMP', 'BR-RF-DLLRF-01:FDL:FWDCAV:PHS', 'red'), - ('Rev Cav', 'BR-RF-DLLRF-01:FDL:REVCAV:AMP', 'BR-RF-DLLRF-01:FDL:REVCAV:PHS', 'darkSlateBlue'), - ('Fwd Ssa', 'BR-RF-DLLRF-01:FDL:FWDSSA:AMP', 'BR-RF-DLLRF-01:FDL:FWDSSA:PHS', 'darkGreen'), - ('Rev Ssa', 'BR-RF-DLLRF-01:FDL:REVSSA:AMP', 'BR-RF-DLLRF-01:FDL:REVSSA:PHS', 'magenta'), - ('Ctrl', 'BR-RF-DLLRF-01:FDL:CTRL:AMP', 'BR-RF-DLLRF-01:FDL:CTRL:PHS', 'darkCyan'), - ('Ref', 'BR-RF-DLLRF-01:FDL:SL:REF:AMP', 'BR-RF-DLLRF-01:FDL:SL:REF:PHS', 'darkRed'), - ('Err', 'BR-RF-DLLRF-01:FDL:SL:ERR:AMP', 'BR-RF-DLLRF-01:FDL:SL:ERR:PHS', 'purple'), - ('Err Acc', 'BR-RF-DLLRF-01:FDL:SL:ERRACC:AMP', 'BR-RF-DLLRF-01:FDL:SL:ERRACC:PHS', 'saddlebrown'), - ('MO', 'BR-RF-DLLRF-01:FDL:MO:AMP', 'BR-RF-DLLRF-01:FDL:MO:PHS', 'darkBlue'), - ('Tune', None, 'BR-RF-DLLRF-01:FDL:TUNE:DEPHS', 'orangered'), - ('Tune Filt', None, 'BR-RF-DLLRF-01:FDL:TUNE:DEPHS:FILT', 'darkOliveGreen') + ('Cav', 'RA-RaBO01:RF-LLRF:FDLCavAmp-Mon', 'RA-RaBO01:RF-LLRF:FDLCavPhs-Mon', 'blue'), + ('Fwd Cav', 'RA-RaBO01:RF-LLRF:FDLCavFwdAmp-Mon', 'RA-RaBO01:RF-LLRF:FDLCavFwdPhs-Mon', 'red'), + ('Rev Cav', 'RA-RaBO01:RF-LLRF:FDLCavRevAmp-Mon', 'RA-RaBO01:RF-LLRF:FDLCavRevPhs-Mon', 'darkSlateBlue'), + ('Fwd Ssa', 'RA-RaBO01:RF-LLRF:FDLFwdSSAAmp-Mon', 'RA-RaBO01:RF-LLRF:FDLFwdSSAPhs-Mon', 'darkGreen'), + ('Rev Ssa', 'RA-RaBO01:RF-LLRF:FDLRevSSAAmp-Mon', 'RA-RaBO01:RF-LLRF:FDLRevSSAPhs-Mon', 'magenta'), + ('Ctrl', 'RA-RaBO01:RF-LLRF:FDLCtrlAmp-Mon', 'RA-RaBO01:RF-LLRF:FDLCtrlPhs-Mon', 'darkCyan'), + ('Ref', 'RA-RaBO01:RF-LLRF:FDLSLRefAmp-Mon', 'RA-RaBO01:RF-LLRF:FDLSLRefPhs-Mon', 'darkRed'), + ('Err', 'RA-RaBO01:RF-LLRF:FDLSLErrAmp-Mon', 'RA-RaBO01:RF-LLRF:FDLSLErrPhs-Mon', 'purple'), + ('Err Acc', 'RA-RaBO01:RF-LLRF:FDLSLErrAccAmp-Mon', 'RA-RaBO01:RF-LLRF:FDLSLErrAccPhs-Mon', 'saddlebrown'), + ('MO', 'RA-RaBO01:RF-LLRF:FDLMOAmp-Mon', 'RA-RaBO01:RF-LLRF:FDLMOPhs-Mon', 'darkBlue'), + ('Tune', None, 'RA-RaBO01:RF-LLRF:FDLTuneDephs-Mon', 'orangered'), + ('Tune Filt', None, 'RA-RaBO01:RF-LLRF:FDLTuneDephsFilt-Mon', 'darkOliveGreen') ), - 'Time': 'BR-RF-DLLRF-01:FDL:SCALE:32', - 'Mode': 'BR-RF-DLLRF-01:FDL:MODE', - 'SW Trig': 'BR-RF-DLLRF-01:FDL:SWTRIG', - 'HW Trig': 'BR-RF-DLLRF-01:FDL:HWTRIG', - 'Trig': 'BR-RF-DLLRF-01:FDL:TRIG:S', - 'Processing': 'BR-RF-DLLRF-01:FDL:PROCESSING', - 'Rearm': 'BR-RF-DLLRF-01:FDL:REARM', - 'Raw': 'BR-RF-DLLRF-01:FDL:RAW', - 'Qty': 'BR-RF-DLLRF-01:FDL:FrameQty-', - 'Size': 'BR-RF-DLLRF-01:FDL:Size-Mon', - 'Duration': 'BR-RF-DLLRF-01:FDL:Duration-Mon', - 'Delay': 'BR-RF-DLLRF-01:FDL:TriggerDelay' + 'Time': 'RA-RaBO01:RF-LLRF:FDLScale32-Mon', + 'Mode': 'RA-RaBO:RF-LLRF:FDLMode-Mon', + 'SW Trig': 'RA-RaBO01:RF-LLRF:FDLSwTrig-Mon', + 'HW Trig': 'RA-RaBO01:RF-LLRF:FDLHwTrig-Mon', + 'Trig': 'RA-RaBO01:RF-LLRF:FDLTrig-Cmd', + 'Processing': 'RA-RaBO:RF-LLRF:FDLProcessing-Mon', + 'Rearm': 'RA-RaBO:RF-LLRF:FDLRearm-Sel', + 'Raw': 'RA-RaBO01:RF-LLRF:FDLRaw', + 'Qty': 'RA-RaBO:RF-LLRF:FDLFrame', + 'Size': 'RA-RaBO:RF-LLRF:FDLSize-Mon', + 'Duration': 'RA-RaBO:RF-LLRF:FDLDuration-Mon', + 'Delay': 'RA-RaBO:RF-LLRF:FDLTrigDly' } }, 'SI': { 'Emergency': 'RA-RaSIA02:RF-IntlkCtrl:EStop-Mon', 'Sirius Intlk': 'RA-RaSIA02:RF-IntlkCtrl:IntlkSirius-Mon', - 'LLRF Intlk': 'RA-RaSIA01:RF-LLRF:Intlk-Mon', + 'LLRF Intlk': { + 'A': 'RA-RaSIA01:RF-LLRF:Intlk-Mon', + 'B': 'RA-RaSIB01:RF-LLRF:Intlk-Mon', + }, 'LLRF Intlk Details': { - 'Inputs': { - 'Input': { - 'Status': { - '0': 'SR-RF-DLLRF-01:ILK:0', - '1': 'SR-RF-DLLRF-01:ILK:1', - '2': 'SR-RF-DLLRF-01:ILK:2', - '3': 'SR-RF-DLLRF-01:ILK:3', - '4': 'SR-RF-DLLRF-01:ILK:4', - '5': 'SR-RF-DLLRF-01:ILK:5', - '6': 'SR-RF-DLLRF-01:ILK:6', - '7': 'SR-RF-DLLRF-01:ILK:7', - 'Mon': 'SR-RF-DLLRF-01:Intlk-Mon', + 'A': { + 'Inputs': { + 'Input': { + 'Status': { + '0': 'RA-RaSIA01:RF-LLRF-A:Inp1Intlk0-Mon', + '1': 'RA-RaSIA01:RF-LLRF-A:Inp1Intlk1-Mon', + '2': 'RA-RaSIA01:RF-LLRF-A:Inp1Intlk2-Mon', + '3': 'RA-RaSIA01:RF-LLRF-A:Inp1Intlk3-Mon', + '4': 'RA-RaSIA01:RF-LLRF-A:Inp1Intlk4-Mon', + '5': 'RA-RaSIA01:RF-LLRF-A:Inp1Intlk5-Mon', + '6': 'RA-RaSIA01:RF-LLRF-A:Inp1Intlk6-Mon', + '7': 'RA-RaSIA01:RF-LLRF-A:Inp1Intlk7-Mon', + 'Mon': 'RA-RaSIA01:RF-LLRF-A:Inp1Intlk-Mon', + }, + 'Labels': ( + 'Rev Out SSA 1', + 'Rev Out SSA 2', + 'Not Used (RefSSA3)', + 'Not Used (RevSSA4)', + 'Rev Cavity', + 'Not Used (Ext LLRF1)', + 'Not Used (Ext LLRF2)', + 'Not Used (Ext LLRF3)', + 'Manual', + 'PLC', + 'Plunger 1 End Sw Up', + 'Plunger 1 End Sw Down', + 'Plunger 2 End Sw Up', + 'Plunger 2 End Sw Down', + ), }, - 'Labels': ( - 'Rev Out SSA 1', - 'Rev Out SSA 2', - 'Not Used (RefSSA3)', - 'Not Used (RevSSA4)', - 'Rev Cavity', - 'Not Used (Ext LLRF1)', - 'Not Used (Ext LLRF2)', - 'Not Used (Ext LLRF3)', - 'Manual', - 'PLC', - 'Plunger 1 End Sw Up', - 'Plunger 1 End Sw Down', - 'Plunger 2 End Sw Up', - 'Plunger 2 End Sw Down', - ), - }, - 'Fast Input': { - 'Status': { - '0': 'SR-RF-DLLRF-01:FAST:ILK:0', - '1': 'SR-RF-DLLRF-01:FAST:ILK:1', - '2': 'SR-RF-DLLRF-01:FAST:ILK:2', - '3': 'SR-RF-DLLRF-01:FAST:ILK:3', - '4': 'SR-RF-DLLRF-01:FAST:ILK:4', - '5': 'SR-RF-DLLRF-01:FAST:ILK:5', - '6': 'SR-RF-DLLRF-01:FAST:ILK:6', - '7': 'SR-RF-DLLRF-01:FAST:ILK:7', - 'Mon': 'SR-RF-DLLRF-01:FASTINLK-MON', + 'Fast Input': { + 'Status': { + '0': 'RA-RaSIA01:RF-LLRF-A:Inp2Intlk0-Mon', + '1': 'RA-RaSIA01:RF-LLRF-A:Inp2Intlk1-Mon', + '2': 'RA-RaSIA01:RF-LLRF-A:Inp2Intlk2-Mon', + '3': 'RA-RaSIA01:RF-LLRF-A:Inp2Intlk3-Mon', + '4': 'RA-RaSIA01:RF-LLRF-A:Inp2Intlk4-Mon', + '5': 'RA-RaSIA01:RF-LLRF-A:Inp2Intlk5-Mon', + '6': 'RA-RaSIA01:RF-LLRF-A:Inp2Intlk6-Mon', + '7': 'RA-RaSIA01:RF-LLRF-A:Inp2Intlk7-Mon', + 'Mon': 'RA-RaSIA01:RF-LLRF-A:Inp2Intlk-Mon', + }, + 'Labels': ( + 'Cavity Voltage', + 'Cavity Fwd', + 'SSA 1 Out Fwd', + 'Cell 2 Voltage (RFIN7)', + 'Cell 6 Voltage (RFIN8)', + 'SSA 2 Out Fwd (RFIN9)', + 'SSA 2 Rev Fwd (RFIN10)', + 'Pre-Drive 1 In (RFIN11)', + 'Pre-Drive 1 Out (RFIN12)', + 'Pre-Drive 2 In (RFIN13)', + 'Pre-Drive 2 Out (RFIN14)', + 'Circulator Out Fwd (RFIN15)', + 'LLRF Beam Trip', + ), }, - 'Labels': ( - 'Cavity Voltage', - 'Cavity Fwd', - 'SSA 1 Out Fwd', - 'Cell 2 Voltage (RFIN7)', - 'Cell 6 Voltage (RFIN8)', - 'SSA 2 Out Fwd (RFIN9)', - 'SSA 2 Rev Fwd (RFIN10)', - 'Pre-Drive 1 In (RFIN11)', - 'Pre-Drive 1 Out (RFIN12)', - 'Pre-Drive 2 In (RFIN13)', - 'Pre-Drive 2 Out (RFIN14)', - 'Circulator Out Fwd (RFIN15)', - 'LLRF Beam Trip', - ), }, + 'Timestamps': { + '1': 'RA-RaSIA01:RF-LLRF-A:IntlkTs1-Mon', + '2': 'RA-RaSIA01:RF-LLRF-A:IntlkTs2-Mon', + '3': 'RA-RaSIA01:RF-LLRF-A:IntlkTs3-Mon', + '4': 'RA-RaSIA01:RF-LLRF-A:IntlkTs4-Mon', + '5': 'RA-RaSIA01:RF-LLRF-A:IntlkTs5-Mon', + '6': 'RA-RaSIA01:RF-LLRF-A:IntlkTs6-Mon', + '7': 'RA-RaSIA01:RF-LLRF-A:IntlkTs7-Mon', + } }, - 'Timestamps': { - '1': 'SR-RF-DLLRF-01:TS1', - '2': 'SR-RF-DLLRF-01:TS2', - '3': 'SR-RF-DLLRF-01:TS3', - '4': 'SR-RF-DLLRF-01:TS4', - '5': 'SR-RF-DLLRF-01:TS5', - '6': 'SR-RF-DLLRF-01:TS6', - '7': 'SR-RF-DLLRF-01:TS7', + 'B': { + 'Inputs': { + 'Input': { + 'Status': { + '0': 'RA-RaSIB01:RF-LLRF-B:Inp1Intlk0-Mon', + '1': 'RA-RaSIB01:RF-LLRF-B:Inp1Intlk1-Mon', + '2': 'RA-RaSIB01:RF-LLRF-B:Inp1Intlk2-Mon', + '3': 'RA-RaSIB01:RF-LLRF-B:Inp1Intlk3-Mon', + '4': 'RA-RaSIB01:RF-LLRF-B:Inp1Intlk4-Mon', + '5': 'RA-RaSIB01:RF-LLRF-B:Inp1Intlk5-Mon', + '6': 'RA-RaSIB01:RF-LLRF-B:Inp1Intlk6-Mon', + '7': 'RA-RaSIB01:RF-LLRF-B:Inp1Intlk7-Mon', + 'Mon': 'RA-RaSIB01:RF-LLRF-B:Inp1Intlk-Mon', + }, + 'Labels': ( + 'Rev Out SSA 1', + 'Rev Out SSA 2', + 'Not Used (RefSSA3)', + 'Not Used (RevSSA4)', + 'Rev Cavity', + 'Not Used (Ext LLRF1)', + 'Not Used (Ext LLRF2)', + 'Not Used (Ext LLRF3)', + 'Manual', + 'PLC', + 'Plunger 1 End Sw Up', + 'Plunger 1 End Sw Down', + 'Plunger 2 End Sw Up', + 'Plunger 2 End Sw Down', + ), + }, + 'Fast Input': { + 'Status': { + '0': 'RA-RaSIB01:RF-LLRF-B:Inp2Intlk0-Mon', + '1': 'RA-RaSIB01:RF-LLRF-B:Inp2Intlk1-Mon', + '2': 'RA-RaSIB01:RF-LLRF-B:Inp2Intlk2-Mon', + '3': 'RA-RaSIB01:RF-LLRF-B:Inp2Intlk3-Mon', + '4': 'RA-RaSIB01:RF-LLRF-B:Inp2Intlk4-Mon', + '5': 'RA-RaSIB01:RF-LLRF-B:Inp2Intlk5-Mon', + '6': 'RA-RaSIB01:RF-LLRF-B:Inp2Intlk6-Mon', + '7': 'RA-RaSIB01:RF-LLRF-B:Inp2Intlk7-Mon', + 'Mon': 'RA-RaSIB01:RF-LLRF-B:Inp2Intlk-Mon', + }, + 'Labels': ( + 'Cavity Voltage', + 'Cavity Fwd', + 'SSA 1 Out Fwd', + 'Cell 2 Voltage (RFIN7)', + 'Cell 6 Voltage (RFIN8)', + 'SSA 2 Out Fwd (RFIN9)', + 'SSA 2 Rev Fwd (RFIN10)', + 'Pre-Drive 1 In (RFIN11)', + 'Pre-Drive 1 Out (RFIN12)', + 'Pre-Drive 2 In (RFIN13)', + 'Pre-Drive 2 Out (RFIN14)', + 'Circulator Out Fwd (RFIN15)', + 'LLRF Beam Trip', + ), + }, + }, + 'Timestamps': { + '1': 'RA-RaSIB01:RF-LLRF-B:IntlkTs1-Mon', + '2': 'RA-RaSIB01:RF-LLRF-B:IntlkTs2-Mon', + '3': 'RA-RaSIB01:RF-LLRF-B:IntlkTs3-Mon', + '4': 'RA-RaSIB01:RF-LLRF-B:IntlkTs4-Mon', + '5': 'RA-RaSIB01:RF-LLRF-B:IntlkTs5-Mon', + '6': 'RA-RaSIB01:RF-LLRF-B:IntlkTs6-Mon', + '7': 'RA-RaSIB01:RF-LLRF-B:IntlkTs7-Mon', + } } }, 'Reset': { 'Global': 'RA-RaSIA02:RF-Intlk:Reset-Cmd', - 'LLRF': 'SR-RF-DLLRF-01:Reset-Cmd', + 'A': 'RA-RaSIA01:RF-LLRF-A:IntlkReset-Cmd', + 'B': 'RA-RaSIB01:RF-LLRF-B:IntlkReset-Cmd', }, 'Cav Sts': { - 'Geral': 'SI-02SB:RF-P7Cav:Sts-Mon', + 'Geral': 'SI-03SP:RF-P7Cav:Sts-Mon', 'Temp': { 'Cells': ( - ('SI-02SB:RF-P7Cav:Cylin1T-Mon', 'blue'), - ('SI-02SB:RF-P7Cav:Cylin2T-Mon', 'red'), - ('SI-02SB:RF-P7Cav:Cylin3T-Mon', 'yellow'), - ('SI-02SB:RF-P7Cav:Cylin4T-Mon', 'darkGreen'), - ('SI-02SB:RF-P7Cav:Cylin5T-Mon', 'magenta'), - ('SI-02SB:RF-P7Cav:Cylin6T-Mon', 'darkCyan'), - ('SI-02SB:RF-P7Cav:Cylin7T-Mon', 'darkRed'), + ('SI-03SP:RF-P7Cav:Cylin1T-Mon', 'blue'), + ('SI-03SP:RF-P7Cav:Cylin2T-Mon', 'red'), + ('SI-03SP:RF-P7Cav:Cylin3T-Mon', 'yellow'), + ('SI-03SP:RF-P7Cav:Cylin4T-Mon', 'darkGreen'), + ('SI-03SP:RF-P7Cav:Cylin5T-Mon', 'magenta'), + ('SI-03SP:RF-P7Cav:Cylin6T-Mon', 'darkCyan'), + ('SI-03SP:RF-P7Cav:Cylin7T-Mon', 'darkRed'), ), - 'Cells Limits PVs': ('SI-02SB:RF-P7Cav:Cylin1TLowerLimit-Cte', - 'SI-02SB:RF-P7Cav:Cylin1TUpperLimit-Cte'), + 'Cells Limits PVs': ('SI-03SP:RF-P7Cav:Cylin1TLowerLimit-Cte', + 'SI-03SP:RF-P7Cav:Cylin1TUpperLimit-Cte'), 'Cells Limits': [0.0, 0.0], - 'Coupler': ('SI-02SB:RF-P7Cav:CoupT-Mon', 'black'), - 'Coupler Limits PVs': ('SI-02SB:RF-P7Cav:CoupTLowerLimit-Cte', - 'SI-02SB:RF-P7Cav:CoupTUpperLimit-Cte'), + 'Coupler': ('SI-03SP:RF-P7Cav:CoupT-Mon', 'black'), + 'Coupler Limits PVs': ('SI-03SP:RF-P7Cav:CoupTLowerLimit-Cte', + 'SI-03SP:RF-P7Cav:CoupTUpperLimit-Cte'), 'Coupler Limits': [0.0, 0.0], 'Discs': ( - 'SI-02SB:RF-P7Cav:Disc1Tms-Mon', - 'SI-02SB:RF-P7Cav:Disc2Tms-Mon', - 'SI-02SB:RF-P7Cav:Disc3Tms-Mon', - 'SI-02SB:RF-P7Cav:Disc4Tms-Mon', - 'SI-02SB:RF-P7Cav:Disc5Tms-Mon', - 'SI-02SB:RF-P7Cav:Disc6Tms-Mon', - 'SI-02SB:RF-P7Cav:Disc7Tms-Mon', - 'SI-02SB:RF-P7Cav:Disc8Tms-Mon', + 'SI-03SP:RF-P7Cav:Disc1Tms-Mon', + 'SI-03SP:RF-P7Cav:Disc2Tms-Mon', + 'SI-03SP:RF-P7Cav:Disc3Tms-Mon', + 'SI-03SP:RF-P7Cav:Disc4Tms-Mon', + 'SI-03SP:RF-P7Cav:Disc5Tms-Mon', + 'SI-03SP:RF-P7Cav:Disc6Tms-Mon', + 'SI-03SP:RF-P7Cav:Disc7Tms-Mon', + 'SI-03SP:RF-P7Cav:Disc8Tms-Mon', ), }, 'FlwRt': { - 'Flow Switch 1': 'SI-02SB:RF-P7Cav:HDFlwRt1-Mon', - 'Flow Switch 2': 'SI-02SB:RF-P7Cav:HDFlwRt2-Mon', - 'Flow Switch 3': 'SI-02SB:RF-P7Cav:HDFlwRt3-Mon', + 'Flow Switch 1': 'SI-03SP:RF-P7Cav:HDFlwRt1-Mon', + 'Flow Switch 2': 'SI-03SP:RF-P7Cav:HDFlwRt2-Mon', + 'Flow Switch 3': 'SI-03SP:RF-P7Cav:HDFlwRt3-Mon', }, 'Vac': { - 'Cells': 'SI-02SB:VA-CCG-CAV:Pressure-Mon', - 'Cond': 'SR-RF-DLLRF-01:VACUUM', - 'Cells ok': 'SI-02SB:RF-P7Cav:Pressure-Mon', - 'Coupler ok': 'SI-02SB:RF-P7Cav:CoupPressure-Mon', + 'Cells': 'SI-03SP:VA-CCG-CAV:Pressure-Mon', + 'Cond': 'RA-RaSIA01:RF-LLRF-A:VacuumFastRly-Mon', + 'Cells ok': 'SI-03SP:RF-P7Cav:Pressure-Mon', + 'Coupler ok': 'SI-03SP:RF-P7Cav:CoupPressure-Mon', } }, 'TL Sts': { - 'Geral': 'RA-TLSIA:RF-TrLine:Sts-Mon', - 'Circulator Temp. In': { - 'label': 'RA-TLSIA:RF-Circulator:Tin-Mon', + 'A': { + 'Geral': 'RA-TLSIA:RF-TrLine:Sts-Mon', + 'Circulator Temp. In': { + 'label': 'RA-TLSIA:RF-Circulator:Tin-Mon', + 'led': { + 'RA-TLSIA:RF-Circulator:TinDown-Mon': 0, + 'RA-TLSIA:RF-Circulator:TinUp-Mon': 0 + } + }, + 'label_led': { + 'Circulator Temp. Drift': { + 'label': 'RA-TLSIA:RF-Circulator:dT-Mon', + 'led': 'RA-TLSIA:RF-Circulator:TDrift-Mon' + }, + 'Circulator Coil': { + 'label': 'RA-TLSIA:RF-Circulator:Current-Mon', + 'led': 'RA-TLSIA:RF-Circulator:Sts-Mon' + }, + 'Room Temp.': { + 'label': 'RA-TLSIA:RF-Circulator:Tamb-Mon', + 'led': 'RA-TLSIA:RF-Circulator:TEnv-Mon' + } + }, + 'label': { + 'Circulator Temp. Out': 'RA-TLSIA:RF-Circulator:Tout-Mon', + 'Circulator In Reflected Power': 'RA-TLSIA:RF-Circulator:PwrRevIndBm-Mon', + 'Combiner': 'RA-TLSIA:RF-Combiner:T-Mon' + }, 'led': { - 'RA-TLSIA:RF-Circulator:TinDown-Mon': 0, - 'RA-TLSIA:RF-Circulator:TinUp-Mon': 0 - } + 'Circulator Arc Detector': 'RA-TLSIA:RF-Circulator:Arc-Mon', + 'Circulator Arc Detector Supply Fail': 'RA-RaSIA02:RF-ArcDetec-Circ:PwrFail-Mon', + 'Arc Detector Load': 'RA-TLSIA:RF-Load:Arc-Mon', + 'Arc Detector Load Supply Fail': 'RA-RaSIA02:RF-ArcDetec-Load:PwrFail-Mon', + 'Circulator Flow': 'RA-TLSIA:RF-Circulator:FlwRt-Mon', + 'Load Flow': 'RA-TLSIA:RF-Load:FlwRt-Mon', + 'TCU Status': 'RA-TLSIA:RF-Circulator:IntlkOp-Mon', + }, + 'Circ Limits': (19.0, 23.0), }, - 'label_led': { - 'Circulator Temp. Drift': { - 'label': 'RA-TLSIA:RF-Circulator:dT-Mon', - 'led': 'RA-TLSIA:RF-Circulator:TDrift-Mon' + 'B': { + 'Geral': 'RA-TLSIB:RF-TrLine:Sts-Mon', + 'Circulator Temp. In': { + 'label': 'RA-TLSIB:RF-Circulator:Tin-Mon', + 'led': { + 'RA-TLSIB:RF-Circulator:TinDown-Mon': 0, + 'RA-TLSIB:RF-Circulator:TinUp-Mon': 0 + } }, - 'Circulator Coil': { - 'label': 'RA-TLSIA:RF-Circulator:Current-Mon', - 'led': 'RA-TLSIA:RF-Circulator:Sts-Mon' + 'label_led': { + 'Circulator Temp. Drift': { + 'label': 'RA-TLSIB:RF-Circulator:dT-Mon', + 'led': 'RA-TLSIB:RF-Circulator:TDrift-Mon' + }, + 'Circulator Coil': { + 'label': 'RA-TLSIB:RF-Circulator:Current-Mon', + 'led': 'RA-TLSIB:RF-Circulator:Sts-Mon' + }, + 'Room Temp.': { + 'label': 'RA-TLSIB:RF-Circulator:Tamb-Mon', + 'led': 'RA-TLSIB:RF-Circulator:TEnv-Mon' + } }, - 'Room Temp.': { - 'label': 'RA-TLSIA:RF-Circulator:Tamb-Mon', - 'led': 'RA-TLSIA:RF-Circulator:TEnv-Mon' - } - }, - 'label': { - 'Circulator Temp. Out': 'RA-TLSIA:RF-Circulator:Tout-Mon', - 'Circulator In Reflected Power': 'RA-TLSIA:RF-Circulator:PwrRevIndBm-Mon', - 'Combiner': 'RA-TLSIA:RF-Combiner:T-Mon' - }, - 'led': { - 'Circulator Arc Detector': 'RA-TLSIA:RF-Circulator:Arc-Mon', - 'Circulator Arc Detector Supply Fail': 'RA-RaSIA02:RF-ArcDetec-Circ:PwrFail-Mon', - 'Arc Detector Load': 'RA-TLSIA:RF-Load:Arc-Mon', - 'Arc Detector Load Supply Fail': 'RA-RaSIA02:RF-ArcDetec-Load:PwrFail-Mon', - 'Circulator Flow': 'RA-TLSIA:RF-Circulator:FlwRt-Mon', - 'Load Flow': 'RA-TLSIA:RF-Load:FlwRt-Mon', - 'TCU Status': 'RA-TLSIA:RF-Circulator:IntlkOp-Mon', - }, - 'Circ Limits': (19.0, 23.0), + 'label': { + 'Circulator Temp. Out': 'RA-TLSIB:RF-Circulator:Tout-Mon', + 'Circulator In Reflected Power': 'RA-TLSIB:RF-Circulator:PwrRevIndBm-Mon', + 'Combiner': 'RA-TLSIB:RF-Combiner:T-Mon' + }, + 'led': { + 'Circulator Arc Detector': 'RA-TLSIB:RF-Circulator:Arc-Mon', + 'Circulator Arc Detector Supply Fail': 'RA-RaSIB02:RF-ArcDetec-Circ:PwrFail-Mon', + 'Arc Detector Load': 'RA-TLSIB:RF-Load:Arc-Mon', + 'Arc Detector Load Supply Fail': 'RA-RaSIB02:RF-ArcDetec-Load:PwrFail-Mon', + 'Circulator Flow': 'RA-TLSIB:RF-Circulator:FlwRt-Mon', + 'Load Flow': 'RA-TLSIB:RF-Load:FlwRt-Mon', + 'TCU Status': 'RA-TLSIB:RF-Circulator:IntlkOp-Mon', + }, + 'Circ Limits': (19.0, 23.0), + } }, 'SSA': { '1': { 'Name': 'SSA 01', + 'Status': 'RA-ToSIA01:RF-SSAmpTower:Sts-Mon', + 'Power': 'RA-ToSIA01:RF-SSAmpTower:PwrFwdOut-Mon', + 'SRC 1': { + 'Label': 'AC TDK', + 'Enable': 'RA-ToSIA01:RF-ACPanel:PwrACEnbl-Cmd', + 'Disable': 'RA-ToSIA01:RF-ACPanel:PwrACDsbl-Cmd', + 'Mon': 'RA-ToSIA01:RF-ACPanel:PwrAC-Mon' + }, + 'SRC 2': { + 'Label': 'DC TDK', + 'Enable': 'RA-ToSIA01:RF-TDKSource:PwrDCEnbl-Cmd', + 'Disable': 'RA-ToSIA01:RF-TDKSource:PwrDCDsbl-Cmd', + 'Mon': 'RA-ToSIA01:RF-TDKSource:PwrDC-Mon' + }, + 'PinSw': { + 'Label': 'PinSw', + 'Enable': 'RA-ToSIA01:RF-CtrlPanel:PINSwEnbl-Cmd', + 'Disable': 'RA-ToSIA01:RF-CtrlPanel:PINSwDsbl-Cmd', + 'Mon': 'RA-ToSIA01:RF-CtrlPanel:PINSwSts-Mon' + }, + 'PreDrive': 'RA-RaSIA01:RF-LLRFPreAmp:PwrFwdIn1Amp-Mon', + 'PreDriveThrs': 5, # mV + 'LLRF': 'A' + }, + '2': { + 'Name': 'SSA 02', + 'Status': 'RA-ToSIA02:RF-SSAmpTower:Sts-Mon', + 'Power': 'RA-ToSIA02:RF-SSAmpTower:PwrFwdOut-Mon', + 'SRC 1': { + 'Label': 'AC TDK', + 'Enable': 'RA-ToSIA02:RF-ACPanel:PwrACEnbl-Cmd', + 'Disable': 'RA-ToSIA02:RF-ACPanel:PwrACDsbl-Cmd', + 'Mon': 'RA-ToSIA02:RF-ACPanel:PwrAC-Mon' + }, + 'SRC 2': { + 'Label': 'DC TDK', + 'Enable': 'RA-ToSIA02:RF-TDKSource:PwrDCEnbl-Cmd', + 'Disable': 'RA-ToSIA02:RF-TDKSource:PwrDCDsbl-Cmd', + 'Mon': 'RA-ToSIA02:RF-TDKSource:PwrDC-Mon' + }, + 'PinSw': { + 'Label': 'PinSw', + 'Enable': 'RA-ToSIA02:RF-CtrlPanel:PINSwEnbl-Cmd', + 'Disable': 'RA-ToSIA02:RF-CtrlPanel:PINSwDsbl-Cmd', + 'Mon': 'RA-ToSIA02:RF-CtrlPanel:PINSwSts-Mon' + }, + 'PreDrive': 'RA-RaSIA01:RF-LLRFPreAmp:PwrFwdIn2Amp-Mon', + 'PreDriveThrs': 5, # mV + 'LLRF': 'A' + }, + '3': { + 'Name': 'SSA 03', 'Status': 'RA-ToSIA03:RF-SSAmpTower:Sts-Mon', 'Power': 'RA-ToSIA03:RF-SSAmpTower:PwrFwdOut-Mon', 'SRC 1': { @@ -498,11 +674,12 @@ 'Disable': 'RA-ToSIA03:RF-CtrlPanel:PINSwDsbl-Cmd', 'Mon': 'RA-ToSIA03:RF-CtrlPanel:PINSwSts-Mon' }, - 'PreDrive': 'SR-RF-DLLRF-01:INPRE1:AMP', + 'PreDrive': 'RA-RaSIA01:RF-LLRFPreAmp:PwrFwdIn3Amp-Mon', 'PreDriveThrs': 5, # mV + 'LLRF': 'B' }, - '2': { - 'Name': 'SSA 02', + '4': { + 'Name': 'SSA 04', 'Status': 'RA-ToSIA04:RF-SSAmpTower:Sts-Mon', 'Power': 'RA-ToSIA04:RF-SSAmpTower:PwrFwdOut-Mon', 'SRC 1': { @@ -523,242 +700,359 @@ 'Disable': 'RA-ToSIA04:RF-CtrlPanel:PINSwDsbl-Cmd', 'Mon': 'RA-ToSIA04:RF-CtrlPanel:PINSwSts-Mon' }, - 'PreDrive': 'SR-RF-DLLRF-01:INPRE2:AMP', + 'PreDrive': 'RA-RaSIA01:RF-LLRFPreAmp:PwrFwdIn4Amp-Mon', 'PreDriveThrs': 5, # mV + 'LLRF': 'B' } }, 'SL': { - 'Enbl': 'SR-RF-DLLRF-01:SL', - 'Mode': 'SR-RF-DLLRF-01:MODE', - 'IRef': 'SR-RF-DLLRF-01:I:SL:REF', - 'QRef': 'SR-RF-DLLRF-01:Q:SL:REF', - 'ARef': 'SR-RF-DLLRF-01:SL:REF:AMP', - 'PRef': 'SR-RF-DLLRF-01:SL:REF:PHS', - 'IInp': 'SR-RF-DLLRF-01:I:SL:INP', - 'QInp': 'SR-RF-DLLRF-01:Q:SL:INP', - 'AInp': 'SR-RF-DLLRF-01:SL:INP:AMP', - 'PInp': 'SR-RF-DLLRF-01:SL:INP:PHS', - 'IErr': 'SR-RF-DLLRF-01:I:SL:ERR', - 'QErr': 'SR-RF-DLLRF-01:Q:SL:ERR', - 'AErr': 'SR-RF-DLLRF-01:SL:ERR:AMP', - 'PErr': 'SR-RF-DLLRF-01:SL:ERR:PHS', - 'ASet': ['SR-RF-DLLRF-01:mV:AL:REF', 'RA-RaSIA01:RF-LLRF:AmpVCav'], - 'PSet': 'SR-RF-DLLRF-01:PL:REF', - 'AInc': 'SR-RF-DLLRF-01:AMPREF:INCRATE', - 'PInc': 'SR-RF-DLLRF-01:PHSREF:INCRATE', - 'Inp': 'SR-RF-DLLRF-01:SL:SEL', - 'PIL': 'SR-RF-DLLRF-01:SL:PILIMIT', - 'KI': 'SR-RF-DLLRF-01:SL:KI', - 'KP': 'SR-RF-DLLRF-01:SL:KP', + 'ErrDtls': { + 'A': { + 'IRef': 'RA-RaSIA01:RF-LLRF-A:SLRefI-Mon', + 'QRef': 'RA-RaSIA01:RF-LLRF-A:SLRefQ-Mon', + 'IInp': 'RA-RaSIA01:RF-LLRF-A:SLInpI-Mon', + 'QInp': 'RA-RaSIA01:RF-LLRF-A:SLInpQ-Mon', + 'IErr': 'RA-RaSIA01:RF-LLRF-A:SLErrorI-Mon', + 'QErr': 'RA-RaSIA01:RF-LLRF-A:SLErrorQ-Mon', + }, + 'B': { + 'IRef': 'RA-RaSIB01:RF-LLRF-B:SLRefI-Mon', + 'QRef': 'RA-RaSIB01:RF-LLRF-B:SLRefQ-Mon', + 'IInp': 'RA-RaSIB01:RF-LLRF-B:SLInpI-Mon', + 'QInp': 'RA-RaSIB01:RF-LLRF-B:SLInpQ-Mon', + 'IErr': 'RA-RaSIB01:RF-LLRF-B:SLErrorI-Mon', + 'QErr': 'RA-RaSIB01:RF-LLRF-B:SLErrorQ-Mon', + }, + }, + 'Params': { + 'A': { + 'Inp': 'RA-RaSIA01:RF-LLRF-A:SLInp', + 'PIL': 'RA-RaSIA01:RF-LLRF-A:SLPILim', + 'KI': 'RA-RaSIA01:RF-LLRF-A:SLKI', + 'KP': 'RA-RaSIA01:RF-LLRF-A:SLKP', + }, + 'B': { + 'Inp': 'RA-RaSIB01:RF-LLRF-B:SLInp', + 'PIL': 'RA-RaSIB01:RF-LLRF-B:SLPILim', + 'KI': 'RA-RaSIB01:RF-LLRF-B:SLKI', + 'KP': 'RA-RaSIB01:RF-LLRF-B:SLKP', + }, + }, + 'Over': { + 'A': { + 'Enbl': 'RA-RaSIA01:RF-LLRF-A:SL', + 'Mode': 'RA-RaSIA01:RF-LLRF-A:LoopMode', + 'ASet': 'RA-RaSIA01:RF-LLRF-A:ALRef', + 'AInc': 'RA-RaSIA01:RF-LLRF-A:AmpIncRate', + 'PSet': 'RA-RaSIA01:RF-LLRF-A:PLRef', + 'PInc': 'RA-RaSIA01:RF-LLRF-A:PhsIncRate', + 'ARef': 'RA-RaSIA01:RF-LLRF-A:SLRefAmp-Mon', + 'PRef': 'RA-RaSIA01:RF-LLRF-A:SLRefPhs-Mon', + 'AInp': 'RA-RaSIA01:RF-LLRF-A:SLInpAmp-Mon', + 'PInp': 'RA-RaSIA01:RF-LLRF-A:SLInpPhs-Mon', + 'AErr': 'RA-RaSIA01:RF-LLRF-A:SLErrAmp-Mon', + 'PErr': 'RA-RaSIA01:RF-LLRF-A:SLErrPhs-Mon', + }, + 'B': { + 'Enbl': 'RA-RaSIB01:RF-LLRF-B:SL', + 'Mode': 'RA-RaSIB01:RF-LLRF-B:LoopMode', + 'ASet': 'RA-RaSIB01:RF-LLRF-B:ALRef', + 'AInc': 'RA-RaSIB01:RF-LLRF-B:AmpIncRate', + 'PSet': 'RA-RaSIB01:RF-LLRF-B:PLRef', + 'PInc': 'RA-RaSIB01:RF-LLRF-B:PhsIncRate', + 'ARef': 'RA-RaSIB01:RF-LLRF-B:SLRefAmp-Mon', + 'PRef': 'RA-RaSIB01:RF-LLRF-B:SLRefPhs-Mon', + 'AInp': 'RA-RaSIB01:RF-LLRF-B:SLInpAmp-Mon', + 'PInp': 'RA-RaSIB01:RF-LLRF-B:SLInpPhs-Mon', + 'AErr': 'RA-RaSIB01:RF-LLRF-B:SLErrAmp-Mon', + 'PErr': 'RA-RaSIB01:RF-LLRF-B:SLErrPhs-Mon', + }, + }, + 'ASet': { + 'A': 'RA-RaSIA01:RF-LLRF-A:AmpVCav', + 'B': 'RA-RaSIB01:RF-LLRF-B:AmpVCav', + }, }, 'Tun': { - 'Auto': 'SR-RF-DLLRF-01:TUNE', - 'DTune': 'SR-RF-DLLRF-01:DTune-RB', - 'DPhase': 'SR-RF-DLLRF-01:TUNE:DEPHS', - 'Acting': 'SR-RF-DLLRF-01:TUNE:OUT', - 'Deadbnd': 'SR-RF-DLLRF-01:TUNE:MARGIN:HI', - 'Oversht': 'SR-RF-DLLRF-01:TUNE:MARGIN:LO', - 'Pl1Down': 'SR-RF-DLLRF-01:PLG1:MOVE:DN', - 'Pl1Up': 'SR-RF-DLLRF-01:PLG1:MOVE:UP', - 'Pl2Down': 'SR-RF-DLLRF-01:PLG2:MOVE:DN', - 'Pl2Up': 'SR-RF-DLLRF-01:PLG2:MOVE:UP', - 'PlM1Curr': 'RA-RaSIA01:RF-CavPlDrivers:Dr1Current-Mon', - 'PlM2Curr': 'RA-RaSIA01:RF-CavPlDrivers:Dr2Current-Mon', - }, - 'FFlat': { - 'Sts': 'SR-RF-DLLRF-01:FF:ON', - 'Auto': 'SR-RF-DLLRF-01:FF', - 'Pos': 'SR-RF-DLLRF-01:FF:POS', - 'Gain1': 'SR-RF-DLLRF-01:FF:GAIN:CELL2', - 'Gain2': 'SR-RF-DLLRF-01:FF:GAIN:CELL4', - 'Cell1': 'SR-RF-DLLRF-01:FF:CELL2', - 'Cell2': 'SR-RF-DLLRF-01:FF:CELL4', - 'Deadband': 'SR-RF-DLLRF-01:FF:DEADBAND', - 'Err': 'SR-RF-DLLRF-01:FF:ERR', + 'A': { + 'Auto': 'RA-RaSIA01:RF-LLRF-A:Tune', + 'DTune': 'RA-RaSIA01:RF-LLRF-A:Detune', + 'DPhase': 'RA-RaSIA01:RF-LLRF-A:TuneDephs-Mon', + 'Acting': 'RA-RaSIA01:RF-LLRF-A:TuneOut-Mon', + 'Deadbnd': 'RA-RaSIA01:RF-LLRF-A:TuneMarginHI', + 'Oversht': 'RA-RaSIA01:RF-LLRF-A:TuneMarginLO', + 'Pl1Down': 'SI-03SP:RF-SRFCav-A:TunnerMoveDown-Mon', + 'Pl1Up': 'SI-03SP:RF-SRFCav-A:TunnerMoveUp-Mon', + 'PlM1Curr': 'RA-RaSIA01:RF-CavPlDrivers:Dr1Current-Mon', + 'color': 'blue' + }, + 'B': { + 'Auto': 'RA-RaSIB01:RF-LLRF-B:Tune', + 'DTune': 'RA-RaSIB01:RF-LLRF-B:Detune', + 'DPhase': 'RA-RaSIB01:RF-LLRF-B:TuneDephs-Mon', + 'Acting': 'RA-RaSIB01:RF-LLRF-B:TuneOut-Mon', + 'Deadbnd': 'RA-RaSIB01:RF-LLRF-B:TuneMarginHI', + 'Oversht': 'RA-RaSIB01:RF-LLRF-B:TuneMarginLO', + 'Pl1Down': 'SI-03SP:RF-SRFCav-B:TunnerMoveDown-Mon', + 'Pl1Up': 'SI-03SP:RF-SRFCav-B:TunnerMoveUp-Mon', + 'PlM1Curr': 'RA-RaSIB01:RF-CavPlDrivers:Dr1Current-Mon', + 'color': 'red' + } }, 'PwrMtr': { - 'Cav - Cell 2': { - 'W': 'SI-02SB:RF-P7Cav:PwrCell2-Mon', - 'dBm': 'SI-02SB:RF-P7Cav:PwrCell2dBm-Mon', - 'mV': 'SR-RF-DLLRF-01:CELL2:AMP', - 'color': 'darkRed', - }, - 'Cav - Cell 4': { - 'W': 'SI-02SB:RF-P7Cav:PwrCell4-Mon', - 'dBm': 'SI-02SB:RF-P7Cav:PwrCell4dBm-Mon', - 'mV': 'SR-RF-DLLRF-01:CAV:AMP', - 'color': 'black', - }, - 'Cav - Cell 6': { - 'W': 'SI-02SB:RF-P7Cav:PwrCell6-Mon', - 'dBm': 'SI-02SB:RF-P7Cav:PwrCell6dBm-Mon', - 'mV': 'SR-RF-DLLRF-01:CELL6:AMP', - 'color': 'darkBlue', - }, - 'Cav - Coup Fwd': { - 'W': 'SI-02SB:RF-P7Cav:PwrFwd-Mon', - 'dBm': 'SI-02SB:RF-P7Cav:PwrFwddBm-Mon', - 'mV': 'SR-RF-DLLRF-01:FWDCAV:AMP', - 'color': 'blue', + 'A - Fwd SSA 1': { + 'mV': 'RA-ToSIA01:RF-SSAmpTower:PwrFwdOutAmp-Mon', + 'dBm': 'RA-ToSIA01:RF-SSAmpTower:PwrFwdOutAmpdBm-Mon', + 'W': 'RA-ToSIA01:RF-SSAmpTower:PwrFwdOutAmpW-Mon', + 'color': 'blue' }, - 'Cav - Coup Rev': { - 'W': 'SI-02SB:RF-P7Cav:PwrRev-Mon', - 'dBm': 'SI-02SB:RF-P7Cav:PwrRevdBm-Mon', - 'mV': 'SR-RF-DLLRF-01:REVCAV:AMP', - 'color': 'red', + 'A - Rev SSA 1': { + 'mV': 'RA-ToSIA01:RF-SSAmpTower:PwrRevOutAmp-Mon', + 'dBm': 'RA-ToSIA01:RF-SSAmpTower:PwrRevOutAmpdBm-Mon', + 'W': 'RA-ToSIA01:RF-SSAmpTower:PwrRevOutAmpW-Mon', + 'color': 'red' }, - 'SSA1 - Fwd Out': { - 'W': 'RA-ToSIA03:RF-SSAmpTower:PwrFwdOutLLRF-Mon', - 'dBm': 'RA-ToSIA03:RF-SSAmpTower:PwrFwdOutdBm-Mon', - 'mV': 'SR-RF-DLLRF-01:FWDSSA1:AMP', - 'color': 'magenta', + 'A - Fwd SSA 2': { + 'mV': 'RA-ToSIA02:RF-SSAmpTower:PwrFwdOutAmp-Mon', + 'dBm': 'RA-ToSIA02:RF-SSAmpTower:PwrFwdOutAmpdBm-Mon', + 'W': 'RA-ToSIA02:RF-SSAmpTower:PwrFwdOutAmpW-Mon', + 'color': 'magenta' }, - 'SSA1 - Rev Out': { - 'W': 'RA-ToSIA03:RF-SSAmpTower:PwrRevOutLLRF-Mon', - 'dBm': 'RA-ToSIA03:RF-SSAmpTower:PwrRevOutdBm-Mon', - 'mV': 'SR-RF-DLLRF-01:REVSSA1:AMP', - 'color': 'darkGreen', + 'A - Rev SSA 2': { + 'mV': 'RA-ToSIA02:RF-SSAmpTower:PwrRevOutAmp-Mon', + 'dBm': 'RA-ToSIA02:RF-SSAmpTower:PwrRevOutAmpdBm-Mon', + 'W': 'RA-ToSIA02:RF-SSAmpTower:PwrRevOutAmpW-Mon', + 'color': 'darkGreen' + }, + 'A - Cav': { + 'mV': 'SI-03SP:RF-SRFCav-A:PwrAmp-Mon', + 'dBm': 'SI-03SP:RF-SRFCav-A:PwrAmpdBm-Mon', + 'W': 'SI-03SP:RF-SRFCav-A:PwrAmpW-Mon', + 'color': 'darkRed' }, - 'SSA2 - Fwd Out': { - 'W': 'RA-ToSIA04:RF-SSAmpTower:PwrFwdOutLLRF-Mon', - 'dBm': 'RA-ToSIA04:RF-SSAmpTower:PwrFwdOutdBm-Mon', - 'mV': 'SR-RF-DLLRF-01:FWDSSA2:AMP', - 'color': 'yellow', + 'A - Fwd Cav': { + 'mV': 'SI-03SP:RF-SRFCav-A:PwrFwdAmp-Mon', + 'dBm': 'SI-03SP:RF-SRFCav-A:PwrFwdAmpdBm-Mon', + 'W': 'SI-03SP:RF-SRFCav-A:PwrFwdAmpW-Mon', + 'color': 'black' }, - 'SSA2 - Rev Out': { - 'W': 'RA-ToSIA04:RF-SSAmpTower:PwrRevOutLLRF-Mon', - 'dBm': 'RA-ToSIA04:RF-SSAmpTower:PwrRevOutdBm-Mon', - 'mV': 'SR-RF-DLLRF-01:REVSSA2:AMP', - 'color': 'cyan', + 'A - Rev Cav': { + 'mV': 'SI-03SP:RF-SRFCav-A:PwrRevAmp-Mon', + 'dBm': 'SI-03SP:RF-SRFCav-A:PwrRevAmpdBm-Mon', + 'W': 'SI-03SP:RF-SRFCav-A:PwrRevAmpW-Mon', + 'color': 'darkBlue' }, - 'Circ - Fwd Out': { - 'W': 'RA-TL:RF-Circulator-SIA:PwrFwdOut-Mon', - 'dBm': 'RA-TL:RF-Circulator-SIA:PwrFwdOutdBm-Mon', - 'mV': 'SR-RF-DLLRF-01:FWDCIRC:AMP', - 'color': 'darkCyan', + 'A - Fwd Circulator': { + 'mV': 'RA-TL:RF-Circulator-SIA:PwrFwdOutAmp-Mon', + 'dBm': 'RA-TL:RF-Circulator-SIA:PwrFwdOutAmpdBm-Mon', + 'W': 'RA-TL:RF-Circulator-SIA:PwrFwdOutAmpW-Mon', + 'color': 'yellow' + }, + 'B - Fwd SSA 3': { + 'mV': 'RA-ToSIA03:RF-SSAmpTower:PwrFwdOutAmp-Mon', + 'dBm': 'RA-ToSIA03:RF-SSAmpTower:PwrFwdOutAmpdBm-Mon', + 'W': 'RA-ToSIA03:RF-SSAmpTower:PwrFwdOutAmpW-Mon', + 'color': 'orangered' + }, + 'B - Rev SSA 3': { + 'mV': 'RA-ToSIA03:RF-SSAmpTower:PwrRevOutAmp-Mon', + 'dBm': 'RA-ToSIA03:RF-SSAmpTower:PwrRevOutAmpdBm-Mon', + 'W': 'RA-ToSIA03:RF-SSAmpTower:PwrRevOutAmpW-Mon', + 'color': 'darkOliveGreen' + }, + 'B - Fwd SSA 4': { + 'mV': 'RA-ToSIA04:RF-SSAmpTower:PwrFwdOutAmp-Mon', + 'dBm': 'RA-ToSIA04:RF-SSAmpTower:PwrFwdOutAmpdBm-Mon', + 'W': 'RA-ToSIA04:RF-SSAmpTower:PwrFwdOutAmpW-Mon', + 'color': 'darkMagenta' + }, + 'B - Rev SSA 4': { + 'mV': 'RA-ToSIA04:RF-SSAmpTower:PwrRevOutAmp-Mon', + 'dBm': 'RA-ToSIA04:RF-SSAmpTower:PwrRevOutAmpdBm-Mon', + 'W': 'RA-ToSIA04:RF-SSAmpTower:PwrRevOutAmpW-Mon', + 'color': 'chocolate' + }, + 'B - Cav': { + 'mV': 'SI-03SP:RF-SRFCav-B:PwrAmp-Mon', + 'dBm': 'SI-03SP:RF-SRFCav-B:PwrAmpdBm-Mon', + 'W': 'SI-03SP:RF-SRFCav-B:PwrAmpW-Mon', + 'color': 'cyan' + }, + 'B - Fwd Cav': { + 'mV': 'SI-03SP:RF-SRFCav-B:PwrFwdAmp-Mon', + 'dBm': 'SI-03SP:RF-SRFCav-B:PwrFwdAmpdBm-Mon', + 'W': 'SI-03SP:RF-SRFCav-B:PwrFwdAmpW-Mon', + 'color': 'darkCyan' + }, + 'B - Rev Cav': { + 'mV': 'SI-03SP:RF-SRFCav-B:PwrRevAmp-Mon', + 'dBm': 'SI-03SP:RF-SRFCav-B:PwrRevAmpdBm-Mon', + 'W': 'SI-03SP:RF-SRFCav-B:PwrRevAmpW-Mon', + 'color': 'saddlebrown' + }, + 'B - Fwd Circulator': { + 'mV': 'RA-TL:RF-Circulator-SIB:PwrFwdOutAmp-Mon', + 'dBm': 'RA-TL:RF-Circulator-SIB:PwrFwdOutAmpdBm-Mon', + 'W': 'RA-TL:RF-Circulator-SIB:PwrFwdOutAmpW-Mon', + 'color': 'darkSlateGrey' }, }, - 'CavVGap': 'SI-02SB:RF-P7Cav:AmpVCav-Mon', + 'CavVGap': { + 'A': 'SI-03SP:RF-SRFCav-A:PwrVCav-Mon', + 'B': 'SI-03SP:RF-SRFCav-B:PwrVCav-Mon' + }, 'TempMon': { 'Temp.': { 'Cells': { - 'Cell 1': 'SI-02SB:RF-P7Cav:Cylin1T-Mon', - 'Cell 2': 'SI-02SB:RF-P7Cav:Cylin2T-Mon', - 'Cell 3': 'SI-02SB:RF-P7Cav:Cylin3T-Mon', - 'Cell 4': 'SI-02SB:RF-P7Cav:Cylin4T-Mon', - 'Cell 5': 'SI-02SB:RF-P7Cav:Cylin5T-Mon', - 'Cell 6': 'SI-02SB:RF-P7Cav:Cylin6T-Mon', - 'Cell 7': 'SI-02SB:RF-P7Cav:Cylin7T-Mon', + 'Cell 1': 'SI-03SP:RF-P7Cav:Cylin1T-Mon', + 'Cell 2': 'SI-03SP:RF-P7Cav:Cylin2T-Mon', + 'Cell 3': 'SI-03SP:RF-P7Cav:Cylin3T-Mon', + 'Cell 4': 'SI-03SP:RF-P7Cav:Cylin4T-Mon', + 'Cell 5': 'SI-03SP:RF-P7Cav:Cylin5T-Mon', + 'Cell 6': 'SI-03SP:RF-P7Cav:Cylin6T-Mon', + 'Cell 7': 'SI-03SP:RF-P7Cav:Cylin7T-Mon', }, }, 'Water Temp.': { 'Cells': { - 'Cell 1': 'SI-02SB:RF-P7Cav:Cylin1WT-Mon', - 'Cell 2': 'SI-02SB:RF-P7Cav:Cylin2WT-Mon', - 'Cell 3': 'SI-02SB:RF-P7Cav:Cylin3WT-Mon', - 'Cell 4': 'SI-02SB:RF-P7Cav:Cylin4WT-Mon', - 'Cell 5': 'SI-02SB:RF-P7Cav:Cylin5WT-Mon', - 'Cell 6': 'SI-02SB:RF-P7Cav:Cylin6WT-Mon', - 'Cell 7': 'SI-02SB:RF-P7Cav:Cylin7WT-Mon', + 'Cell 1': 'SI-03SP:RF-P7Cav:Cylin1WT-Mon', + 'Cell 2': 'SI-03SP:RF-P7Cav:Cylin2WT-Mon', + 'Cell 3': 'SI-03SP:RF-P7Cav:Cylin3WT-Mon', + 'Cell 4': 'SI-03SP:RF-P7Cav:Cylin4WT-Mon', + 'Cell 5': 'SI-03SP:RF-P7Cav:Cylin5WT-Mon', + 'Cell 6': 'SI-03SP:RF-P7Cav:Cylin6WT-Mon', + 'Cell 7': 'SI-03SP:RF-P7Cav:Cylin7WT-Mon', }, 'Discs': { - 'Disc 1': 'SI-02SB:RF-P7Cav:Disc1WT-Mon', - 'Disc 2': 'SI-02SB:RF-P7Cav:Disc2WT-Mon', - 'Disc 3': 'SI-02SB:RF-P7Cav:Disc3WT-Mon', - 'Disc 4': 'SI-02SB:RF-P7Cav:Disc4WT-Mon', - 'Disc 5': 'SI-02SB:RF-P7Cav:Disc5WT-Mon', - 'Disc 6': 'SI-02SB:RF-P7Cav:Disc6WT-Mon', - 'Disc 7': 'SI-02SB:RF-P7Cav:Disc7WT-Mon', - 'Disc 8': 'SI-02SB:RF-P7Cav:Disc8WT-Mon', + 'Disc 1': 'SI-03SP:RF-P7Cav:Disc1WT-Mon', + 'Disc 2': 'SI-03SP:RF-P7Cav:Disc2WT-Mon', + 'Disc 3': 'SI-03SP:RF-P7Cav:Disc3WT-Mon', + 'Disc 4': 'SI-03SP:RF-P7Cav:Disc4WT-Mon', + 'Disc 5': 'SI-03SP:RF-P7Cav:Disc5WT-Mon', + 'Disc 6': 'SI-03SP:RF-P7Cav:Disc6WT-Mon', + 'Disc 7': 'SI-03SP:RF-P7Cav:Disc7WT-Mon', + 'Disc 8': 'SI-03SP:RF-P7Cav:Disc8WT-Mon', }, 'Input + Plungers + Coupler': { - 'Input': 'SI-02SB:RF-P7Cav:WInT-Mon', - 'Plunger 1': 'SI-02SB:RF-P7Cav:Pl1WT-Mon', - 'Plunger 2': 'SI-02SB:RF-P7Cav:Pl2WT-Mon', - 'Coupler': 'SI-02SB:RF-P7Cav:CoupWT-Mon', + 'Input': 'SI-03SP:RF-P7Cav:WInT-Mon', + 'Plunger 1': 'SI-03SP:RF-P7Cav:Pl1WT-Mon', + 'Plunger 2': 'SI-03SP:RF-P7Cav:Pl2WT-Mon', + 'Coupler': 'SI-03SP:RF-P7Cav:CoupWT-Mon', }, }, 'Water dTemp.': { 'Cells': { - 'Cell 1': 'SI-02SB:RF-P7Cav:Cylin1WdT-Mon', - 'Cell 2': 'SI-02SB:RF-P7Cav:Cylin2WdT-Mon', - 'Cell 3': 'SI-02SB:RF-P7Cav:Cylin3WdT-Mon', - 'Cell 4': 'SI-02SB:RF-P7Cav:Cylin4WdT-Mon', - 'Cell 5': 'SI-02SB:RF-P7Cav:Cylin5WdT-Mon', - 'Cell 6': 'SI-02SB:RF-P7Cav:Cylin6WdT-Mon', - 'Cell 7': 'SI-02SB:RF-P7Cav:Cylin7WdT-Mon', + 'Cell 1': 'SI-03SP:RF-P7Cav:Cylin1WdT-Mon', + 'Cell 2': 'SI-03SP:RF-P7Cav:Cylin2WdT-Mon', + 'Cell 3': 'SI-03SP:RF-P7Cav:Cylin3WdT-Mon', + 'Cell 4': 'SI-03SP:RF-P7Cav:Cylin4WdT-Mon', + 'Cell 5': 'SI-03SP:RF-P7Cav:Cylin5WdT-Mon', + 'Cell 6': 'SI-03SP:RF-P7Cav:Cylin6WdT-Mon', + 'Cell 7': 'SI-03SP:RF-P7Cav:Cylin7WdT-Mon', }, 'Discs': { - 'Disc 1': 'SI-02SB:RF-P7Cav:Disc1WdT-Mon', - 'Disc 2': 'SI-02SB:RF-P7Cav:Disc2WdT-Mon', - 'Disc 3': 'SI-02SB:RF-P7Cav:Disc3WdT-Mon', - 'Disc 4': 'SI-02SB:RF-P7Cav:Disc4WdT-Mon', - 'Disc 5': 'SI-02SB:RF-P7Cav:Disc5WdT-Mon', - 'Disc 6': 'SI-02SB:RF-P7Cav:Disc6WdT-Mon', - 'Disc 7': 'SI-02SB:RF-P7Cav:Disc7WdT-Mon', - 'Disc 8': 'SI-02SB:RF-P7Cav:Disc8WdT-Mon', + 'Disc 1': 'SI-03SP:RF-P7Cav:Disc1WdT-Mon', + 'Disc 2': 'SI-03SP:RF-P7Cav:Disc2WdT-Mon', + 'Disc 3': 'SI-03SP:RF-P7Cav:Disc3WdT-Mon', + 'Disc 4': 'SI-03SP:RF-P7Cav:Disc4WdT-Mon', + 'Disc 5': 'SI-03SP:RF-P7Cav:Disc5WdT-Mon', + 'Disc 6': 'SI-03SP:RF-P7Cav:Disc6WdT-Mon', + 'Disc 7': 'SI-03SP:RF-P7Cav:Disc7WdT-Mon', + 'Disc 8': 'SI-03SP:RF-P7Cav:Disc8WdT-Mon', }, }, 'Dissip. Power (Water)': { 'Cells': { - 'Cell 1': 'SI-02SB:RF-P7Cav:PwrDissCell1-Mon', - 'Cell 2': 'SI-02SB:RF-P7Cav:PwrDissCell2-Mon', - 'Cell 3': 'SI-02SB:RF-P7Cav:PwrDissCell3-Mon', - 'Cell 4': 'SI-02SB:RF-P7Cav:PwrDissCell4-Mon', - 'Cell 5': 'SI-02SB:RF-P7Cav:PwrDissCell5-Mon', - 'Cell 6': 'SI-02SB:RF-P7Cav:PwrDissCell6-Mon', - 'Cell 7': 'SI-02SB:RF-P7Cav:PwrDissCell7-Mon', + 'Cell 1': 'SI-03SP:RF-P7Cav:PwrDissCell1-Mon', + 'Cell 2': 'SI-03SP:RF-P7Cav:PwrDissCell2-Mon', + 'Cell 3': 'SI-03SP:RF-P7Cav:PwrDissCell3-Mon', + 'Cell 4': 'SI-03SP:RF-P7Cav:PwrDissCell4-Mon', + 'Cell 5': 'SI-03SP:RF-P7Cav:PwrDissCell5-Mon', + 'Cell 6': 'SI-03SP:RF-P7Cav:PwrDissCell6-Mon', + 'Cell 7': 'SI-03SP:RF-P7Cav:PwrDissCell7-Mon', }, 'Discs': { - 'Disc 1': 'SI-02SB:RF-P7Cav:PwrDissDisc1-Mon', - 'Disc 2': 'SI-02SB:RF-P7Cav:PwrDissDisc2-Mon', - 'Disc 3': 'SI-02SB:RF-P7Cav:PwrDissDisc3-Mon', - 'Disc 4': 'SI-02SB:RF-P7Cav:PwrDissDisc4-Mon', - 'Disc 5': 'SI-02SB:RF-P7Cav:PwrDissDisc5-Mon', - 'Disc 6': 'SI-02SB:RF-P7Cav:PwrDissDisc6-Mon', - 'Disc 7': 'SI-02SB:RF-P7Cav:PwrDissDisc7-Mon', - 'Disc 8': 'SI-02SB:RF-P7Cav:PwrDissDisc8-Mon', + 'Disc 1': 'SI-03SP:RF-P7Cav:PwrDissDisc1-Mon', + 'Disc 2': 'SI-03SP:RF-P7Cav:PwrDissDisc2-Mon', + 'Disc 3': 'SI-03SP:RF-P7Cav:PwrDissDisc3-Mon', + 'Disc 4': 'SI-03SP:RF-P7Cav:PwrDissDisc4-Mon', + 'Disc 5': 'SI-03SP:RF-P7Cav:PwrDissDisc5-Mon', + 'Disc 6': 'SI-03SP:RF-P7Cav:PwrDissDisc6-Mon', + 'Disc 7': 'SI-03SP:RF-P7Cav:PwrDissDisc7-Mon', + 'Disc 8': 'SI-03SP:RF-P7Cav:PwrDissDisc8-Mon', }, }, 'Power (Water)': { - 'Cell 1': 'SI-02SB:RF-P7Cav:PwrWtCell1-Mon', - 'Cell 2': 'SI-02SB:RF-P7Cav:PwrWtCell2-Mon', - 'Cell 3': 'SI-02SB:RF-P7Cav:PwrWtCell3-Mon', - 'Cell 4': 'SI-02SB:RF-P7Cav:PwrWtCell4-Mon', - 'Cell 5': 'SI-02SB:RF-P7Cav:PwrWtCell5-Mon', - 'Cell 6': 'SI-02SB:RF-P7Cav:PwrWtCell6-Mon', - 'Cell 7': 'SI-02SB:RF-P7Cav:PwrWtCell7-Mon', - # 'Total': 'SI-02SB:RF-P7Cav:PwrWtTotal-Mon', + 'Cell 1': 'SI-03SP:RF-P7Cav:PwrWtCell1-Mon', + 'Cell 2': 'SI-03SP:RF-P7Cav:PwrWtCell2-Mon', + 'Cell 3': 'SI-03SP:RF-P7Cav:PwrWtCell3-Mon', + 'Cell 4': 'SI-03SP:RF-P7Cav:PwrWtCell4-Mon', + 'Cell 5': 'SI-03SP:RF-P7Cav:PwrWtCell5-Mon', + 'Cell 6': 'SI-03SP:RF-P7Cav:PwrWtCell6-Mon', + 'Cell 7': 'SI-03SP:RF-P7Cav:PwrWtCell7-Mon', + # 'Total': 'SI-03SP:RF-P7Cav:PwrWtTotal-Mon', # 'Fwd': 'RA-RaSIA01:RF-RFCalSys:PwrW2-Mon', }, }, 'FDL': { - 'Signals': ( - ('Cav', 'SR-RF-DLLRF-01:FDL:CAV:AMP', 'SR-RF-DLLRF-01:FDL:CAV:PHS', 'blue'), - ('Fwd Cav', 'SR-RF-DLLRF-01:FDL:FWDCAV:AMP', 'SR-RF-DLLRF-01:FDL:FWDCAV:PHS', 'red'), - ('Rev Cav', 'SR-RF-DLLRF-01:FDL:REVCAV:AMP', 'SR-RF-DLLRF-01:FDL:REVCAV:PHS', 'darkSlateBlue'), - ('Fwd Ssa', 'SR-RF-DLLRF-01:FDL:FWDSSA:AMP', 'SR-RF-DLLRF-01:FDL:FWDSSA:PHS', 'darkGreen'), - ('Rev Ssa', 'SR-RF-DLLRF-01:FDL:REVSSA:AMP', 'SR-RF-DLLRF-01:FDL:REVSSA:PHS', 'magenta'), - ('Ctrl', 'SR-RF-DLLRF-01:FDL:CTRL:AMP', 'SR-RF-DLLRF-01:FDL:CTRL:PHS', 'darkCyan'), - ('Ref', 'SR-RF-DLLRF-01:FDL:SL:REF:AMP', 'SR-RF-DLLRF-01:FDL:SL:REF:PHS', 'darkRed'), - ('Err', 'SR-RF-DLLRF-01:FDL:SL:ERR:AMP', 'SR-RF-DLLRF-01:FDL:SL:ERR:PHS', 'purple'), - ('Err Acc', 'SR-RF-DLLRF-01:FDL:SL:ERRACC:AMP', 'SR-RF-DLLRF-01:FDL:SL:ERRACC:PHS', 'saddlebrown'), - ('MO', 'SR-RF-DLLRF-01:FDL:MO:AMP', 'SR-RF-DLLRF-01:FDL:MO:PHS', 'darkBlue'), - ('Tune', None, 'SR-RF-DLLRF-01:FDL:TUNE:DEPHS', 'orangered'), - ('Tune Filt', None, 'SR-RF-DLLRF-01:FDL:TUNE:DEPHS:FILT', 'darkOliveGreen') - ), - 'Time': 'SR-RF-DLLRF-01:FDL:SCALE:32', - 'Mode': 'SR-RF-DLLRF-01:FDL:MODE', - 'SW Trig': 'SR-RF-DLLRF-01:FDL:SWTRIG', - 'HW Trig': 'SR-RF-DLLRF-01:FDL:HWTRIG', - 'Trig': 'SR-RF-DLLRF-01:FDL:TRIG:S', - 'Processing': 'SR-RF-DLLRF-01:FDL:PROCESSING', - 'Rearm': 'SR-RF-DLLRF-01:FDL:REARM', - 'Raw': 'SR-RF-DLLRF-01:FDL:RAW', - 'Qty': 'SR-RF-DLLRF-01:FDL:FrameQty-', - 'Size': 'SR-RF-DLLRF-01:FDL:Size-Mon', - 'Duration': 'SR-RF-DLLRF-01:FDL:Duration-Mon', - 'Delay': 'SR-RF-DLLRF-01:FDL:TriggerDelay' + 'A': { + 'Signals': ( + ('Cav', 'RA-RaSIA01:RF-LLRF-A:FDLCavAmp-Mon', 'RA-RaSIA01:RF-LLRF-A:FDLCavPhs-Mon', 'blue'), + ('Fwd Cav', 'RA-RaSIA01:RF-LLRF-A:FDLCavFwdAmp-Mon', 'RA-RaSIA01:RF-LLRF-A:FDLCavFwdPhs-Mon', 'red'), + ('Rev Cav', 'RA-RaSIA01:RF-LLRF-A:FDLCavRevAmp-Mon', 'RA-RaSIA01:RF-LLRF-A:FDLCavRevPhs-Mon', 'darkSlateBlue'), + ('Fwd Ssa', 'RA-RaSIA01:RF-LLRF-A:FDLFwdSSAAmp-Mon', 'RA-RaSIA01:RF-LLRF-A:FDLFwdSSAPhs-Mon', 'darkGreen'), + ('Rev Ssa', 'RA-RaSIA01:RF-LLRF-A:FDLRevSSAAmp-Mon', 'RA-RaSIA01:RF-LLRF-A:FDLRevSSAPhs-Mon', 'magenta'), + ('Ctrl', 'RA-RaSIA01:RF-LLRF-A:FDLCtrlAmp-Mon', 'RA-RaSIA01:RF-LLRF-A:FDLCtrlPhs-Mon', 'darkCyan'), + ('Ref', 'RA-RaSIA01:RF-LLRF-A:FDLSLRefAmp-Mon', 'RA-RaSIA01:RF-LLRF-A:FDLSLRefPhs-Mon', 'darkRed'), + ('Err', 'RA-RaSIA01:RF-LLRF-A:FDLSLErrAmp-Mon', 'RA-RaSIA01:RF-LLRF-A:FDLSLErrPhs-Mon', 'purple'), + ('Err Acc', 'RA-RaSIA01:RF-LLRF-A:FDLSLErrAccAmp-Mon', 'RA-RaSIA01:RF-LLRF-A:FDLSLErrAccPhs-Mon', 'saddlebrown'), + ('MO', 'RA-RaSIA01:RF-LLRF-A:FDLMOAmp-Mon', 'RA-RaSIA01:RF-LLRF-A:FDLMOPhs-Mon', 'darkBlue'), + ('Tune', None, 'RA-RaSIA01:RF-LLRF-A:FDLTuneDephs-Mon', 'orangered'), + ('Tune Filt', None, 'RA-RaSIA01:RF-LLRF-A:FDLTuneDephsFilt-Mon', 'darkOliveGreen') + ), + 'Time': 'RA-RaSIA01:RF-LLRF-A:FDLScale32-Mon', + 'Mode': 'RA-RaSIA01:RF-LLRF-A:FDLMode-Mon', + 'SW Trig': 'RA-RaSIA01:RF-LLRF-A:FDLSwTrig-Mon', + 'HW Trig': 'RA-RaSIA01:RF-LLRF-A:FDLHwTrig-Mon', + 'Trig': 'RA-RaSIA01:RF-LLRF-A:FDLTrig-Cmd', + 'Processing': 'RA-RaSIA01:RF-LLRF-A:FDLProcessing-Mon', + 'Rearm': 'RA-RaSIA01:RF-LLRF-A:FDLRearm-Sel', + 'Raw': 'RA-RaSIA01:RF-LLRF-A:FDLRaw', + 'Qty': 'RA-RaSIA01:RF-LLRF-A:FDLFrame', + 'Size': 'RA-RaSIA01:RF-LLRF-A:FDLSize-Mon', + 'Duration': 'RA-RaSIA01:RF-LLRF-A:FDLDuration-Mon', + 'Delay': 'RA-RaSIA01:RF-LLRF-A:FDLTrigDly', + 'Name': 'A', + }, + 'B': { + 'Signals': ( + ('Cav', 'RA-RaSIB01:RF-LLRF-B:FDLCavAmp-Mon', 'RA-RaSIB01:RF-LLRF-B:FDLCavPhs-Mon', 'blue'), + ('Fwd Cav', 'RA-RaSIB01:RF-LLRF-B:FDLCavFwdAmp-Mon', 'RA-RaSIB01:RF-LLRF-B:FDLCavFwdPhs-Mon', 'red'), + ('Rev Cav', 'RA-RaSIB01:RF-LLRF-B:FDLCavRevAmp-Mon', 'RA-RaSIB01:RF-LLRF-B:FDLCavRevPhs-Mon', 'darkSlateBlue'), + ('Fwd Ssa', 'RA-RaSIB01:RF-LLRF-B:FDLFwdSSAAmp-Mon', 'RA-RaSIB01:RF-LLRF-B:FDLFwdSSAPhs-Mon', 'darkGreen'), + ('Rev Ssa', 'RA-RaSIB01:RF-LLRF-B:FDLRevSSAAmp-Mon', 'RA-RaSIB01:RF-LLRF-B:FDLRevSSAPhs-Mon', 'magenta'), + ('Ctrl', 'RA-RaSIB01:RF-LLRF-B:FDLCtrlAmp-Mon', 'RA-RaSIB01:RF-LLRF-B:FDLCtrlPhs-Mon', 'darkCyan'), + ('Ref', 'RA-RaSIB01:RF-LLRF-B:FDLSLRefAmp-Mon', 'RA-RaSIB01:RF-LLRF-B:FDLSLRefPhs-Mon', 'darkRed'), + ('Err', 'RA-RaSIB01:RF-LLRF-B:FDLSLErrAmp-Mon', 'RA-RaSIB01:RF-LLRF-B:FDLSLErrPhs-Mon', 'purple'), + ('Err Acc', 'RA-RaSIB01:RF-LLRF-B:FDLSLErrAccAmp-Mon', 'RA-RaSIB01:RF-LLRF-B:FDLSLErrAccPhs-Mon', 'saddlebrown'), + ('MO', 'RA-RaSIB01:RF-LLRF-B:FDLMOAmp-Mon', 'RA-RaSIB01:RF-LLRF-B:FDLMOPhs-Mon', 'darkBlue'), + ('Tune', None, 'RA-RaSIB01:RF-LLRF-B:FDLTuneDephs-Mon', 'orangered'), + ('Tune Filt', None, 'RA-RaSIB01:RF-LLRF-B:FDLTuneDephsFilt-Mon', 'darkOliveGreen') + ), + 'Time': 'RA-RaSIB01:RF-LLRF-B:FDLScale32-Mon', + 'Mode': 'RA-RaSIB01:RF-LLRF-B:FDLMode-Mon', + 'SW Trig': 'RA-RaSIB01:RF-LLRF-B:FDLSwTrig-Mon', + 'HW Trig': 'RA-RaSIB01:RF-LLRF-B:FDLHwTrig-Mon', + 'Trig': 'RA-RaSIB01:RF-LLRF-B:FDLTrig-Cmd', + 'Processing': 'RA-RaSIB01:RF-LLRF-B:FDLProcessing-Mon', + 'Rearm': 'RA-RaSIB01:RF-LLRF-B:FDLRearm-Sel', + 'Raw': 'RA-RaSIB01:RF-LLRF-B:FDLRaw', + 'Qty': 'RA-RaSIB01:RF-LLRF-B:FDLFrame', + 'Size': 'RA-RaSIB01:RF-LLRF-B:FDLSize-Mon', + 'Duration': 'RA-RaSIB01:RF-LLRF-B:FDLDuration-Mon', + 'Delay': 'RA-RaSIB01:RF-LLRF-B:FDLTrigDly', + 'Name': 'B' + } } }, }