def getTempWidget(self, pv_name, temp_type): ''' Display the temperature label widget ''' device_name = self.getDeviceName(pv_name) if temp_type == 'Thrd': widget = PyDMSpinbox(parent=self, init_channel=device_name + pv_name + temp_type) widget.showStepExponent = False else: widget = PyDMLabel(parent=self, init_channel=device_name + pv_name + temp_type) widget.showUnits = True return widget
def _setupUi(self): gp_mode = WfmGraph(self) gp_mode.setStyleSheet('min-height: 10em;') gp_mode.setPlotTitle('Modal Amplitudes') gp_mode.getAxis('bottom').setLabel('Mode Number') gp_mode.getAxis('left').setLabel('CNT') gp_mode.add_scatter_curve(ychannel=self.prop_pref + 'MD_MODES', color=QColor('red'), lineStyle=Qt.SolidLine) gp_spec = WfmGraph(self) gp_spec.setStyleSheet('min-height: 10em;') gp_spec.setPlotTitle('Single Mode Spectrum') gp_spec.getAxis('bottom').setLabel('Frequency (kHz)') gp_spec.getAxis('left').setLabel('CNT') gp_spec.add_scatter_curve(ychannel=self.prop_pref + 'MD_SPEC', xchannel=self.prop_pref + 'FREQ', color=QColor('blue'), lineStyle=Qt.SolidLine) gp_spec.add_marker(name='Marker', xchannel=self.prop_pref + 'MD_PEAKFREQ', ychannel=self.prop_pref + 'MD_PEAK', color=QColor('red'), symbol='o') ld_enbl = QLabel('Acq. Enable', self) cb_enbl = PyDMStateButton(self, self.prop_pref + 'MD_ENABLE') ld_sel = QLabel('Acq. Mode', self) cb_sel = PyDMEnumComboBox(self, self.prop_pref + 'MD_SMODE') ld_sbnd = QLabel('Sideband', self, alignment=Qt.AlignRight) sb_sbnd = PyDMSpinbox(self, self.prop_pref + 'MD_FTUNE') sb_sbnd.showStepExponent = False sb_sbnd.showUnits = True ld_span = QLabel('Span', self, alignment=Qt.AlignRight) sb_span = PyDMSpinbox(self, self.prop_pref + 'MD_FSPAN') sb_span.showStepExponent = False sb_span.showUnits = True ld_mode = QLabel('Mode', self, alignment=Qt.AlignRight) sb_mode = PyDMSpinbox(self, self.prop_pref + 'MD_MSEL') sb_mode.showStepExponent = False ld_avg = QLabel('Sample Avg', self, alignment=Qt.AlignRight) sb_avg = PyDMSpinbox(self, self.prop_pref + 'MD_AVG') sb_avg.showStepExponent = False gb_ctrl = QGroupBox('Acquisition control', self) lay_ctrl = QGridLayout(gb_ctrl) lay_ctrl.addWidget(ld_enbl, 0, 0) lay_ctrl.addWidget(cb_enbl, 1, 0) lay_ctrl.addWidget(ld_sel, 2, 0) lay_ctrl.addWidget(cb_sel, 3, 0) lay_ctrl.addWidget(ld_sbnd, 0, 1) lay_ctrl.addWidget(sb_sbnd, 0, 2) lay_ctrl.addWidget(ld_span, 1, 1) lay_ctrl.addWidget(sb_span, 1, 2) lay_ctrl.addWidget(ld_mode, 2, 1) lay_ctrl.addWidget(sb_mode, 2, 2) lay_ctrl.addWidget(ld_avg, 3, 1) lay_ctrl.addWidget(sb_avg, 3, 2) # Markers ld_rng = QLabel('Range (kHz)', self, alignment=Qt.AlignCenter) le_low = PyDMLineEdit(self, self.prop_pref + 'MD_SP_LOW') le_high = PyDMLineEdit(self, self.prop_pref + 'MD_SP_HIGH') cb_mode = PyDMEnumComboBox(self, self.prop_pref + 'MD_SP_SEARCH') ld_mnum = QLabel('Mode #', self, alignment=Qt.AlignRight) lb_mnum = PyDMLabel(self, self.prop_pref + 'MD_MAXMODE') ld_mamp = QLabel('Mode Amp.', self, alignment=Qt.AlignRight) lb_mamp = PyDMLabel(self, self.prop_pref + 'MD_MAXVAL') ld_peak = QLabel('Value', self, alignment=Qt.AlignRight) lb_peak = PyDMLabel(self, self.prop_pref + 'MD_PEAK') ld_pfrq = QLabel('Freq', self, alignment=Qt.AlignRight) lb_pfrq = PyDMLabel(self, self.prop_pref + 'MD_PEAKFREQ') lb_pfrq.showUnits = True ld_tune = QLabel('Tune', self, alignment=Qt.AlignRight) lb_tune = PyDMLabel(self, self.prop_pref + 'MD_PEAKTUNE') gb_mark = QGroupBox('Marker', self) lay_mark = QGridLayout(gb_mark) lay_mark.addWidget(ld_rng, 0, 0) lay_mark.addWidget(le_low, 1, 0) lay_mark.addWidget(le_high, 2, 0) lay_mark.addWidget(cb_mode, 3, 0) lay_mark.addWidget(ld_mnum, 0, 1) lay_mark.addWidget(lb_mnum, 0, 2) lay_mark.addWidget(ld_mamp, 1, 1) lay_mark.addWidget(lb_mamp, 1, 2) lay_mark.addWidget(ld_peak, 2, 1) lay_mark.addWidget(lb_peak, 2, 2) lay_mark.addWidget(ld_pfrq, 3, 1) lay_mark.addWidget(lb_pfrq, 3, 2) lay_mark.addWidget(ld_tune, 4, 1) lay_mark.addWidget(lb_tune, 4, 2) ld_name = QLabel('<h2>' + self.acq_type + ' Modal Analysis</h2>', self, alignment=Qt.AlignCenter) self.setLayout(QHBoxLayout()) wid = QWidget(self) self.layout().addWidget(wid) set_bbb_color(wid, self._device) lay = QGridLayout(wid) lay.addWidget(ld_name, 0, 0, 1, 2) lay.addWidget(gp_mode, 1, 0, 1, 2) lay.addWidget(gp_spec, 2, 0, 1, 2) lay.addWidget(gb_ctrl, 3, 0) lay.addWidget(gb_mark, 3, 1) lay.setRowStretch(1, 2) lay.setRowStretch(2, 2)
def _setupControlsWidget(self): ld_growenbl = QLabel('Grow/Damp Enable', self) cb_growenbl = PyDMEnumComboBox(self, self.dev_pref + ':GDEN') ld_down = QLabel('Rec. Downsample ', self) sb_down = PyDMSpinbox(self, self.dev_pref + ':' + self.TYPE + '_REC_DS') sb_down.showStepExponent = False ld_rawdata = QLabel('Raw Data', self) cb_rawdata = PyDMStateButton(self, self.dev_pref + ':' + self.TYPE + '_DUMP') ld_acqtime = QLabel('Acquisition Time', self) sb_acqtime = PyDMSpinbox(self, self.dev_pref + ':' + self.TYPE + '_ACQTIME') sb_acqtime.showStepExponent = False sb_acqtime.showUnits = True ld_holdoff = QLabel('Hold-Off Time', self) sb_holdoff = PyDMSpinbox(self, self.dev_pref + ':' + self.TYPE + '_HOLDTIME') sb_holdoff.showStepExponent = False sb_holdoff.showUnits = True ld_posttrg = QLabel('Post Trigger', self) sb_posttrg = PyDMSpinbox(self, self.dev_pref + ':' + self.TYPE + '_POSTTIME') sb_posttrg.showStepExponent = False sb_posttrg.showUnits = True fr_posttrg = SiriusFrame( self, self.dev_pref + ':' + self.TYPE + '_POSTREG_SUBWR') fr_posttrg.add_widget(sb_posttrg) ld_growtime = QLabel('Growth Time', self) sb_growtime = PyDMSpinbox(self, self.dev_pref + ':' + self.TYPE + '_GDTIME') sb_growtime.showStepExponent = False sb_growtime.showUnits = True fr_growtime = SiriusFrame( self, self.dev_pref + ':' + self.TYPE + '_GDREG_SUBWR') fr_growtime.add_widget(sb_growtime) ld_acqlen = QLabel('Acquisition Length', self) lb_acqlen = PyDMLabel(self, self.dev_pref + ':' + self.TYPE + '_ACQ_TURNS') lb_acqlen.showUnits = True ld_psttrglen = QLabel('Post Trigger Length', self) lb_psttrglen = PyDMLabel( self, self.dev_pref + ':' + self.TYPE + '_POST_TURNS') lb_psttrglen.showUnits = True bt_modal = QPushButton('Modal Analysis', self) window = create_window_from_widget(_BbBModalAnalysis, title='SRAM Modal Analysis', icon=get_bbb_icon(), is_main=True) connect_window(bt_modal, window, self, prefix=self._prefix, device=self._device, acq_type=self.TYPE) gbox_dtacq = QGroupBox('Data Acquisition', self) lay_dtacq = QGridLayout(gbox_dtacq) lay_dtacq.addWidget(ld_growenbl, 0, 0) lay_dtacq.addWidget(cb_growenbl, 0, 1) lay_dtacq.addWidget(ld_down, 1, 0) lay_dtacq.addWidget(sb_down, 1, 1) lay_dtacq.addWidget(ld_rawdata, 2, 0) lay_dtacq.addWidget(cb_rawdata, 2, 1) lay_dtacq.addWidget(ld_acqtime, 3, 0) lay_dtacq.addWidget(sb_acqtime, 3, 1) lay_dtacq.addWidget(ld_holdoff, 4, 0) lay_dtacq.addWidget(sb_holdoff, 4, 1) lay_dtacq.addWidget(ld_posttrg, 5, 0) lay_dtacq.addWidget(fr_posttrg, 5, 1) lay_dtacq.addWidget(ld_growtime, 6, 0) lay_dtacq.addWidget(fr_growtime, 6, 1) lay_dtacq.addWidget(ld_acqlen, 7, 0) lay_dtacq.addWidget(lb_acqlen, 7, 1) lay_dtacq.addWidget(ld_psttrglen, 8, 0) lay_dtacq.addWidget(lb_psttrglen, 8, 1) lay_dtacq.addWidget(bt_modal, 9, 0, 1, 2) ld_acqtyp = QLabel('<h4>Acq Type</h4>', self, alignment=Qt.AlignCenter) cb_acqtyp = PyDMEnumComboBox( self, self.dev_pref + ':' + self.TYPE + '_POSTSEL') gbox_acqtyp = QGroupBox(self) lay_acqtyp = QVBoxLayout(gbox_acqtyp) lay_acqtyp.addWidget(ld_acqtyp) lay_acqtyp.addWidget(cb_acqtyp) ld_trgexten = QLabel('Internal/External', self) cb_trgexten = PyDMEnumComboBox( self, self.dev_pref + ':' + self.TYPE + '_HWTEN') ld_trginsel = QLabel('Selection', self) cb_trginsel = PyDMEnumComboBox( self, self.dev_pref + ':' + self.TYPE + '_TRIG_IN_SEL') ld_trgarm = QLabel('Arm', self) cb_trgarm = PyDMStateButton(self, self.dev_pref + ':' + self.TYPE + '_ARM') lb_armmon = SiriusLedState( self, self.dev_pref + ':' + self.TYPE + '_ARM_MON') ld_trgbrarm = QLabel('Auto re-arm', self) cb_trgbrarm = PyDMStateButton( self, self.dev_pref + ':' + self.TYPE + '_BR_ARM') ld_rst = QLabel('Trigger 1/2 Cap.:', self) lb_rst1 = PyDMLabel(self, self.dev_pref + ':' + self.TYPE + '_CAP_TRIG1') lb_rst2 = PyDMLabel(self, self.dev_pref + ':' + self.TYPE + '_CAP_TRIG2') gbox_trig = QGroupBox('Trigger', self) lay_trig = QGridLayout(gbox_trig) lay_trig.setAlignment(Qt.AlignTop) lay_trig.addWidget(ld_trgexten, 0, 0) lay_trig.addWidget(cb_trgexten, 0, 1, 1, 2) lay_trig.addWidget(ld_trginsel, 1, 0) lay_trig.addWidget(cb_trginsel, 1, 1, 1, 2) lay_trig.addWidget(ld_trgarm, 2, 0) lay_trig.addWidget(cb_trgarm, 2, 1) lay_trig.addWidget(lb_armmon, 2, 2) lay_trig.addWidget(ld_trgbrarm, 3, 0) lay_trig.addWidget(cb_trgbrarm, 3, 1) lay_trig.addWidget(ld_rst, 4, 0) lay_trig.addWidget(lb_rst1, 4, 1) lay_trig.addWidget(lb_rst2, 4, 2) lay_trig.setRowStretch(5, 2) pixmap = QPixmap( _os.path.join(_os.path.abspath(_os.path.dirname(__file__)), 'grow_damp.png')) img_wid = QLabel(self) img_wid.setPixmap(pixmap) img_wid.setScaledContents(True) wid = QWidget() lay = QGridLayout(wid) lay.setContentsMargins(0, 0, 0, 0) lay.addWidget(gbox_acqtyp, 0, 0) lay.addWidget(gbox_dtacq, 1, 0) lay.addWidget(gbox_trig, 2, 0) lay.addWidget(img_wid, 4, 0) lay.setRowStretch(3, 5) lay.setRowStretch(5, 5) wid.setStyleSheet("SiriusFrame{max-height: 1.8em;}") return wid
def _setupUi(self): ld_maindev = QLabel('<h3>General Settings</h3>', self, alignment=Qt.AlignCenter) # # Delay Lines ld_adcclock = QLabel('ADC Clock', self) sb_adcclock = PyDMSpinbox(self, self.dev_pref + ':ECLDEL0') sb_adcclock.showStepExponent = False fr_adcclock = SiriusFrame(self, self.dev_pref + ':ECLDEL0_SUBWR') fr_adcclock.add_widget(sb_adcclock) ld_fidclock = QLabel('Fiducial Clock', self) sb_fidclock = PyDMSpinbox(self, self.dev_pref + ':ECLDEL1') sb_fidclock.showStepExponent = False fr_fidclock = SiriusFrame(self, self.dev_pref + ':ECLDEL1_SUBWR') fr_fidclock.add_widget(sb_fidclock) ld_fiducial = QLabel('Fiducial', self) sb_fiducial = PyDMSpinbox(self, self.dev_pref + ':ECLDEL2') sb_fiducial.showStepExponent = False fr_fiducial = SiriusFrame(self, self.dev_pref + ':ECLDEL2_SUBWR') fr_fiducial.add_widget(sb_fiducial) ld_dacclock = QLabel('DAC Clock', self) sb_dacclock = PyDMSpinbox(self, self.dev_pref + ':ECLDEL3') sb_dacclock.showStepExponent = False fr_dacclock = SiriusFrame(self, self.dev_pref + ':ECLDEL3_SUBWR') fr_dacclock.add_widget(sb_dacclock) gbox_delaylines = QGroupBox('Delay lines', self) lay_delaylines = QGridLayout(gbox_delaylines) lay_delaylines.addWidget(ld_adcclock, 0, 0) lay_delaylines.addWidget(fr_adcclock, 0, 1) lay_delaylines.addWidget(ld_fidclock, 1, 0) lay_delaylines.addWidget(fr_fidclock, 1, 1) lay_delaylines.addWidget(ld_fiducial, 2, 0) lay_delaylines.addWidget(fr_fiducial, 2, 1) lay_delaylines.addWidget(ld_dacclock, 3, 0) lay_delaylines.addWidget(fr_dacclock, 3, 1) # # Thresholds and offsets ld_lvl = QLabel('<h4>Level</h4>', self, alignment=Qt.AlignCenter) ld_enbl = QLabel('<h4>Enbl</h4>', self, alignment=Qt.AlignCenter) ld_v = QLabel('<h4>V</h4>', self, alignment=Qt.AlignCenter) ld_edge = QLabel('<h4>Edge</h4>', self, alignment=Qt.AlignCenter) ld_fid = QLabel('Fiducial', self) cb_fidlvl = PyDMEnumComboBox(self, self.dev_pref + ':LEVEL_FID') cb_fidlvlenbl = PyDMEnumComboBox(self, self.dev_pref + ':LEVEL_FID_ENABLE') cb_fidlvlenbl.setStyleSheet('max-width:3em;') sb_fidv = PyDMSpinbox(self, self.dev_pref + ':AD5644_V_CH9') sb_fidv.showStepExponent = False sb_fidv.showUnits = True fr_fidv = SiriusFrame(self, self.dev_pref + ':AD5644CH9_SUBWR') fr_fidv.add_widget(sb_fidv) ld_trg1 = QLabel('Trigger 1', self) cb_trg1lvl = PyDMEnumComboBox(self, self.dev_pref + ':LEVEL_TRIG1') cb_trg1lvlenbl = PyDMEnumComboBox( self, self.dev_pref + ':LEVEL_TRIG1_ENABLE') cb_trg1lvlenbl.setStyleSheet('max-width:3em;') sb_trg1lvlv = PyDMSpinbox(self, self.dev_pref + ':LEVEL_VTRIG1') sb_trg1lvlv.showStepExponent = False sb_trg1lvlv.showUnits = True fr_trg1lvlv = SiriusFrame(self, self.dev_pref + ':AD5644CH10_SUBWR') fr_trg1lvlv.add_widget(sb_trg1lvlv) cb_trg1edge = PyDMEnumComboBox(self, self.dev_pref + ':TRIG1INV') cb_trg1edge.setStyleSheet('max-width:3.2em;') ld_trg2 = QLabel('Trigger 2', self) cb_trg2lvl = PyDMEnumComboBox(self, self.dev_pref + ':LEVEL_TRIG2') cb_trg2lvlenbl = PyDMEnumComboBox( self, self.dev_pref + ':LEVEL_TRIG2_ENABLE') cb_trg2lvlenbl.setStyleSheet('max-width:3em;') sb_trg2lvlv = PyDMSpinbox(self, self.dev_pref + ':LEVEL_VTRIG2') sb_trg2lvlv.showStepExponent = False sb_trg2lvlv.showUnits = True fr_trg2lvlv = SiriusFrame(self, self.dev_pref + ':AD5644CH8_SUBWR') fr_trg2lvlv.add_widget(sb_trg2lvlv) cb_trg2edge = PyDMEnumComboBox(self, self.dev_pref + ':TRIG2INV') cb_trg2edge.setStyleSheet('max-width:3.2em;') ld_dacoff = QLabel('DAC Offset', self) sb_dacoff = PyDMSpinbox(self, self.dev_pref + ':AD5644_V_CH11') sb_dacoff.showStepExponent = False sb_dacoff.showUnits = True fr_dacoff = SiriusFrame(self, self.dev_pref + ':AD5644CH11_SUBWR') fr_dacoff.add_widget(sb_dacoff) gbox_thoff = QGroupBox('Thresholds and Offsets', self) lay_thoff = QGridLayout(gbox_thoff) lay_thoff.addWidget(ld_lvl, 0, 1) lay_thoff.addWidget(ld_enbl, 0, 2) lay_thoff.addWidget(ld_v, 0, 3) lay_thoff.addWidget(ld_edge, 0, 4) lay_thoff.addWidget(ld_fid, 1, 0) lay_thoff.addWidget(cb_fidlvl, 1, 1) lay_thoff.addWidget(cb_fidlvlenbl, 1, 2) lay_thoff.addWidget(fr_fidv, 1, 3) lay_thoff.addWidget(ld_trg1, 2, 0) lay_thoff.addWidget(cb_trg1lvl, 2, 1) lay_thoff.addWidget(cb_trg1lvlenbl, 2, 2) lay_thoff.addWidget(fr_trg1lvlv, 2, 3) lay_thoff.addWidget(cb_trg1edge, 2, 4) lay_thoff.addWidget(ld_trg2, 3, 0) lay_thoff.addWidget(cb_trg2lvl, 3, 1) lay_thoff.addWidget(cb_trg2lvlenbl, 3, 2) lay_thoff.addWidget(fr_trg2lvlv, 3, 3) lay_thoff.addWidget(cb_trg2edge, 3, 4) lay_thoff.addWidget(ld_dacoff, 4, 0) lay_thoff.addWidget(fr_dacoff, 4, 3) lay_thoff.setColumnStretch(0, 3) lay_thoff.setColumnStretch(1, 2) lay_thoff.setColumnStretch(2, 1) lay_thoff.setColumnStretch(3, 5) lay_thoff.setColumnStretch(4, 1) # # FIR ld_sfir = QLabel('Shaper FIR ([C0 2^17 C2])', self) ld_firc0 = QLabel('C0', self) sb_firc0 = PyDMSpinbox(self, self.dev_pref + ':SHAPE_C0') sb_firc0.showStepExponent = False fr_firc0 = SiriusFrame(self, self.dev_pref + ':SHAPE_C0_SUBWR') fr_firc0.add_widget(sb_firc0) ld_firc2 = QLabel('C2', self) sb_firc2 = PyDMSpinbox(self, self.dev_pref + ':SHAPE_C2') sb_firc2.showStepExponent = False fr_firc2 = SiriusFrame(self, self.dev_pref + ':SHAPE_C2_SUBWR') fr_firc2.add_widget(sb_firc2) lay_fir = QHBoxLayout() lay_fir.addStretch() lay_fir.addWidget(ld_sfir) lay_fir.addStretch() lay_fir.addWidget(ld_firc0) lay_fir.addWidget(fr_firc0) lay_fir.addStretch() lay_fir.addWidget(ld_firc2) lay_fir.addWidget(fr_firc2) lay_fir.addStretch() lay = QGridLayout(self) lay.addWidget(ld_maindev, 0, 1, 1, 2) lay.addWidget(gbox_delaylines, 1, 1) lay.addWidget(gbox_thoff, 1, 2) lay.addLayout(lay_fir, 2, 1, 1, 2) lay.setColumnStretch(0, 3) lay.setColumnStretch(3, 3) lay.setRowStretch(3, 3) self.setStyleSheet("""SiriusFrame{max-height: 1.8em;}""")
def _setupUi(self): ld_intlk = QLabel('<h3>Interlock Controls</h3>', self, alignment=Qt.AlignCenter) ld_sp = QLabel('Setpoint', self, alignment=Qt.AlignCenter) # ld_sp.setStyleSheet('font-weight: bold; max-width: 3em;') ld_cyc = QLabel('RF/4 Cycles', self, alignment=Qt.AlignCenter) # ld_cyc.setStyleSheet('font-weight: bold; max-width: 3em;') ld_sat = QLabel('Saturation Time', self) sb_sat = PyDMSpinbox(self, self.dev_pref + ':ILOCK_TSAT') sb_sat.showStepExponent = False sb_sat.showUnits = True lb_sat = SiriusLabel(self, self.dev_pref + ':ILOCK_TSAT_T2C') lb_sat.setAlignment(Qt.AlignCenter) ld_tim = QLabel('Timeout', self) sb_tim = PyDMSpinbox(self, self.dev_pref + ':ILOCK_TOUT') sb_tim.showStepExponent = False sb_tim.showUnits = True lb_tim = SiriusLabel(self, self.dev_pref + ':ILOCK_TOUT_T2C') lb_tim.setAlignment(Qt.AlignCenter) pvn = self.dev_pref + ':ILOCK_TRIPPED' lb_sts = SiriusLabel(self, init_channel=pvn) lb_sts.enum_strings = ['Status Ok', 'Interlocked'] lb_sts.displayFormat = lb_sts.DisplayFormat.String fr_sts = SiriusFrame(self, pvn, is_float=True) fr_sts.borderWidth = 2 fr_sts.add_widget(lb_sts) pb_rst = SiriusPushButton(self, init_channel=self.dev_pref + ':ILOCK_RESET', pressValue=1, releaseValue=0) pb_rst.setText('Reset') pb_rst.setToolTip('Reset Counts') pb_rst.setIcon(qta.icon('fa5s.sync')) wd_sts = QWidget(self) wd_sts.setLayout(QHBoxLayout()) wd_sts.layout().addStretch() wd_sts.layout().addWidget(fr_sts) wd_sts.layout().addStretch() wd_sts.layout().addWidget(pb_rst) wd_sts.layout().addStretch() ld_sens = QLabel('<h3>Sensitivity Controls</h3>', self, alignment=Qt.AlignCenter) ld_tun = QLabel('Fractional Tune', self) sb_tun = PyDMSpinbox(self, self.dev_pref + ':ILOCK_TUNE') sb_tun.showStepExponent = False sb_tun.showUnits = True ld_tap = QLabel('Filter Taps', self) sb_tap = PyDMSpinbox(self, self.dev_pref + ':ILOCK_TAPS') sb_tap.showStepExponent = False sb_tap.showUnits = True ld_cal = QLabel('Calibration', self) sb_cal = PyDMSpinbox(self, self.dev_pref + ':ILOCK_FE_CAL') sb_cal.showStepExponent = False sb_cal.showUnits = True ld_ncur = QLabel('Nominal Current', self) sb_ncur = PyDMSpinbox(self, self.dev_pref + ':ILOCK_CURRENT') sb_ncur.showStepExponent = False sb_ncur.showUnits = True ld_thr = QLabel('Threshold', self) sb_thr = PyDMSpinbox(self, self.dev_pref + ':ILOCK_THRESH') sb_thr.showStepExponent = False sb_thr.showUnits = True pb_upt = SiriusPushButton(self, init_channel=self.dev_pref + ':ILOCK_UPDATE', pressValue=1, releaseValue=0) pb_upt.setText('Update Filter') pb_upt.setToolTip('Update Filter Config') pb_upt.setIcon(qta.icon('mdi.sync')) pb_upt.setStyleSheet("icon-size:20px;") pb_ld = SiriusPushButton(self, init_channel=self.dev_pref + ':BO_CPCOEFF', pressValue=1, releaseValue=0) pb_ld.setText('Apply Filter') pb_ld.setToolTip('Apply Filter Config to Feedback') pb_ld.setIcon(qta.icon('mdi.upload')) pb_ld.setStyleSheet("icon-size:20px;") lay = QGridLayout(self) lay.setAlignment(Qt.AlignCenter | Qt.AlignTop) lay.addWidget(ld_intlk, 0, 0, 1, 5) lay.addWidget(ld_sp, 1, 1) lay.addWidget(ld_cyc, 1, 2) lay.addWidget(ld_sat, 2, 0) lay.addWidget(sb_sat, 2, 1) lay.addWidget(lb_sat, 2, 2) lay.addWidget(ld_tim, 3, 0) lay.addWidget(sb_tim, 3, 1) lay.addWidget(lb_tim, 3, 2) lay.addWidget(wd_sts, 4, 0, 1, 3) lays = QGridLayout() lays.addWidget(ld_sens, 0, 0, 1, 4) lays.addWidget(ld_tun, 1, 0) lays.addWidget(sb_tun, 1, 1) lays.addWidget(ld_tap, 2, 0) lays.addWidget(sb_tap, 2, 1) lays.addWidget(ld_cal, 3, 0) lays.addWidget(sb_cal, 3, 1) lays.addWidget(ld_ncur, 4, 0) lays.addWidget(sb_ncur, 4, 1) lays.addWidget(ld_thr, 1, 2) lays.addWidget(sb_thr, 1, 3) lays.addWidget(pb_upt, 3, 2, 1, 2) lays.addWidget(pb_ld, 4, 2, 1, 2) lay.addLayout(lays, 5, 0, 1, 3)
def _setupUi(self): ld_dacs = QLabel('<h3>AD5644 DACs</h3>', self, alignment=Qt.AlignCenter) ld_dacch0 = QLabel('0', self, alignment=Qt.AlignCenter) ld_dacch0.setStyleSheet('font-weight: bold; max-width: 3em;') sb_dacch0 = PyDMSpinbox(self, self.dev_pref + ':AD5644_V_CH0') sb_dacch0.showStepExponent = False sb_dacch0.showUnits = True fr_dacch0 = SiriusFrame(self, self.dev_pref + ':AD5644CH0_SUBWR') fr_dacch0.add_widget(sb_dacch0) ld_dacch1 = QLabel('1', self, alignment=Qt.AlignCenter) ld_dacch1.setStyleSheet('font-weight: bold; max-width: 3em;') sb_dacch1 = PyDMSpinbox(self, self.dev_pref + ':AD5644_V_CH1') sb_dacch1.showStepExponent = False sb_dacch1.showUnits = True fr_dacch1 = SiriusFrame(self, self.dev_pref + ':AD5644CH1_SUBWR') fr_dacch1.add_widget(sb_dacch1) ld_dacch2 = QLabel('2', self, alignment=Qt.AlignCenter) ld_dacch2.setStyleSheet('font-weight: bold; max-width: 3em;') sb_dacch2 = PyDMSpinbox(self, self.dev_pref + ':AD5644_V_CH2') sb_dacch2.showStepExponent = False sb_dacch2.showUnits = True fr_dacch2 = SiriusFrame(self, self.dev_pref + ':AD5644CH2_SUBWR') fr_dacch2.add_widget(sb_dacch2) ld_dacch3 = QLabel('3', self, alignment=Qt.AlignCenter) ld_dacch3.setStyleSheet('font-weight: bold; max-width: 3em;') sb_dacch3 = PyDMSpinbox(self, self.dev_pref + ':AD5644_V_CH3') sb_dacch3.showStepExponent = False sb_dacch3.showUnits = True fr_dacch3 = SiriusFrame(self, self.dev_pref + ':AD5644CH3_SUBWR') fr_dacch3.add_widget(sb_dacch3) ld_dacref0 = QLabel('Ref\n0-3', self, alignment=Qt.AlignCenter) ld_dacref0.setStyleSheet('font-weight: bold; max-width: 3em;') cb_dacref0 = PyDMEnumComboBox(self, self.dev_pref + ':AD5644REF0_BO') ld_dacch4 = QLabel('4', self, alignment=Qt.AlignCenter) ld_dacch4.setStyleSheet('font-weight: bold; max-width: 3em;') sb_dacch4 = PyDMSpinbox(self, self.dev_pref + ':AD5644_V_CH4') sb_dacch4.showStepExponent = False sb_dacch4.showUnits = True fr_dacch4 = SiriusFrame(self, self.dev_pref + ':AD5644CH4_SUBWR') fr_dacch4.add_widget(sb_dacch4) ld_dacch5 = QLabel('5', self, alignment=Qt.AlignCenter) ld_dacch5.setStyleSheet('font-weight: bold; max-width: 3em;') sb_dacch5 = PyDMSpinbox(self, self.dev_pref + ':AD5644_V_CH5') sb_dacch5.showStepExponent = False sb_dacch5.showUnits = True fr_dacch5 = SiriusFrame(self, self.dev_pref + ':AD5644CH5_SUBWR') fr_dacch5.add_widget(sb_dacch5) ld_dacch6 = QLabel('6', self, alignment=Qt.AlignCenter) ld_dacch6.setStyleSheet('font-weight: bold; max-width: 3em;') sb_dacch6 = PyDMSpinbox(self, self.dev_pref + ':AD5644_V_CH6') sb_dacch6.showStepExponent = False sb_dacch6.showUnits = True fr_dacch6 = SiriusFrame(self, self.dev_pref + ':AD5644CH6_SUBWR') fr_dacch6.add_widget(sb_dacch6) ld_dacch7 = QLabel('7', self, alignment=Qt.AlignCenter) ld_dacch7.setStyleSheet('font-weight: bold; max-width: 3em;') sb_dacch7 = PyDMSpinbox(self, self.dev_pref + ':AD5644_V_CH7') sb_dacch7.showStepExponent = False sb_dacch7.showUnits = True fr_dacch7 = SiriusFrame(self, self.dev_pref + ':AD5644CH7_SUBWR') fr_dacch7.add_widget(sb_dacch7) ld_dacref1 = QLabel('Ref\n4-7', self, alignment=Qt.AlignCenter) ld_dacref1.setStyleSheet('font-weight: bold; max-width: 3em;') cb_dacref1 = PyDMEnumComboBox(self, self.dev_pref + ':AD5644REF1_BO') cb_dacmode = PyDMEnumComboBox(self, self.dev_pref + ':AD5644TEST_BO') lay = QGridLayout(self) lay.setAlignment(Qt.AlignCenter | Qt.AlignTop) lay.setHorizontalSpacing(15) lay.setVerticalSpacing(15) lay.addWidget(ld_dacs, 0, 1, 1, 5) lay.addWidget(ld_dacch0, 1, 1) lay.addWidget(fr_dacch0, 1, 2) lay.addWidget(ld_dacch1, 2, 1) lay.addWidget(fr_dacch1, 2, 2) lay.addWidget(ld_dacch2, 3, 1) lay.addWidget(fr_dacch2, 3, 2) lay.addWidget(ld_dacch3, 4, 1) lay.addWidget(fr_dacch3, 4, 2) lay.addWidget(ld_dacref0, 5, 1) lay.addWidget(cb_dacref0, 5, 2) lay.addWidget(ld_dacch4, 1, 4) lay.addWidget(fr_dacch4, 1, 5) lay.addWidget(ld_dacch5, 2, 4) lay.addWidget(fr_dacch5, 2, 5) lay.addWidget(ld_dacch6, 3, 4) lay.addWidget(fr_dacch6, 3, 5) lay.addWidget(ld_dacch7, 4, 4) lay.addWidget(fr_dacch7, 4, 5) lay.addWidget(ld_dacref1, 5, 4) lay.addWidget(cb_dacref1, 5, 5) lay.addWidget(cb_dacmode, 6, 1, 1, 5)