Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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;}""")
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)