def setupui(self): self.layoutg = QGridLayout(self) grpbx = self._create_formlayout_groupbox( 'General Configurations', (('BPMMode-Sel', 'Operation Mode'), ('TriggerRep-Sel', 'Repeat Acquisitions'), ('TriggerHwDly-SP', 'Delay [us]'), ('SamplesPre-SP', 'Pre-Trigger NrSamples'), ('SamplesPost-SP', 'Post-Trigger NrSamples'), ('Trigger-Sel', 'Trigger Type'))) self.layoutg.addWidget(grpbx, 0, 0) grpbx = QGroupBox('Acquisition Control', self) gdl = QGridLayout(grpbx) pb1 = PyDMPushButton(grpbx, init_channel=self.get_pvname('TriggerEvent-Sel'), label='Start', pressValue=0) gdl.addWidget(pb1, 0, 0) pb2 = PyDMPushButton(grpbx, init_channel=self.get_pvname('TriggerEvent-Sel'), label='Stop', pressValue=1) gdl.addWidget(pb2, 0, 1) pb1 = PyDMPushButton(grpbx, init_channel=self.get_pvname('TriggerEvent-Sel'), label='Abort', pressValue=2) gdl.addWidget(pb1, 1, 0) lab = QLabel('Status:') lab.setAlignment(Qt.AlignCenter) gdl.addWidget(lab, 2, 0) lab = PyDMLabel(grpbx, init_channel=self.get_pvname('Status-Sts')) lab.setAlignment(Qt.AlignCenter) gdl.addWidget(lab, 2, 1) self.layoutg.addWidget(grpbx, 1, 0) grpbx = self._create_formlayout_groupbox('MultiBunch Configurations', ( ('Channel-Sel', 'Acquisition Rate'), ('Shots-SP', 'Number of Shots'), ('UpdateTime-SP', 'Update Interval'), ('TbtTagEn-Sel', 'Sync Timing', False), ('TbtTagDly-SP', 'TbT Delay', False), ('TbtDataMaskEn-Sel', 'Mask Data', False), ('TbtDataMaskSamplesBeg-SP', 'Mask Begin', False), ('TbtDataMaskSamplesEnd-SP', 'Mask End', False), )) grpbx.rules = self.basic_rule('BPMMode-Sts', True) self.layoutg.addWidget(grpbx, 2, 0) grpbx = self._create_formlayout_groupbox( 'Auto Trigger Configurations', (('DataTrigChan-Sel', 'Type of Rate as Trigger'), ('TriggerDataSel-SP', 'Channel'), ('TriggerDataPol-Sel', 'Slope'), ('TriggerDataThres-SP', 'Threshold'), ('TriggerDataHyst-SP', 'Hysteresis'))) grpbx.rules = self.basic_rule('Trigger-Sts', True, val=2) self.layoutg.addWidget(grpbx, 3, 0)