def __init__(self): super().__init__() self.setWindowTitle('MiniPET') self.finish = False self.status = 'Ready' self.data = None default_config = os.path.join(PicoNuclear.__path__[0], 'config', 'default.xml') self.config = tools.load_configuration(default_config) self.calib = {'A': [0, 1], 'B': [0, 1]} self.ch_range = [0, self.config['ch_range']] self.ch_bins = self.config['ch_range'] self.t_range = [ int(-self.config['t_range'] / 2), int(self.config['t_range'] / 2) ] self.t_bins = self.config['t_range'] self.path_name = os.path.expanduser('~') try: self.s = PicoScope3000A() self.s.set_channel('A', coupling_type=self.config['A']['coupling'], range_value=self.config['A']['range'], offset=self.config['A']['offset']) self.s.set_channel('B', coupling_type=self.config['B']['coupling'], range_value=self.config['B']['range'], offset=self.config['B']['offset']) self.s.set_trigger( self.config['trigger']['source'], threshold=self.config['trigger']['threshold'], direction=self.config['trigger']['direction'], auto_trigger=self.config['trigger']['autotrigger']) self.clock = self.s.get_interval_from_timebase( self.config['timebase'], self.config['pre'] + self.config['post']) except PicoNuclear.pico3000a.DeviceNotFoundError: demo_msg = QMessageBox() demo_msg.setIcon(QMessageBox.Warning) demo_msg.setWindowTitle('Warning') demo_msg.setText('PicoScope not found!') demo_msg.setInformativeText( 'Demo mode will be used. Do you want to continue?') demo_msg.setStandardButtons(QMessageBox.Yes | QMessageBox.No) ret_val = demo_msg.exec_() if ret_val == QMessageBox.No: sys.exit() self.s = None demo_data_path = os.path.join(PicoNuclear.__path__[0], 'demo', 'demo_data.txt') self.demo_data = numpy.loadtxt(demo_data_path) self.initUI()
def __init__(self): super().__init__() self.setWindowTitle('MiniPET') self.finish = False self.status = 'Ready' self.data = None default_config = os.path.join(PicoNuclear.__path__[0], 'config', 'default.xml') self.config = tools.load_configuration(default_config) self.calib = {'A': [0, 1], 'B': [0, 1]} self.ch_range = [0, self.config['ch_range']] self.ch_bins = self.config['ch_range'] self.t_range = [-self.config['t_range'], self.config['t_range']] self.t_bins = 2 * self.config['t_range'] self.path_name = os.path.expanduser('~') self.initUI()
import argparse import numpy import matplotlib.pyplot as plt from PicoNuclear.pico3000a import PicoScope3000A import PicoNuclear.tools as tools if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('config', type=argparse.FileType('r'), help='XML configuration file') parser.add_argument('--save', help='Name of output file with waveforms') args = parser.parse_args() config = tools.load_configuration(args.config) s = PicoScope3000A() s.set_channel('A', coupling_type=config['A']['coupling'], range_value=config['A']['range'], offset=config['A']['offset']) s.set_channel('B', coupling_type=config['B']['coupling'], range_value=config['B']['range'], offset=config['B']['offset']) s.set_trigger(config['trigger']['source'], threshold=config['trigger']['threshold'], direction=config['trigger']['direction'], auto_trigger=config['trigger']['autotrigger']) print(
def default_clicked(self): default_config = os.path.join(PicoNuclear.__path__[0], 'config', 'default.xml') self.config = tools.load_configuration(default_config) self.close()