def __init__(self, title, procedure, analyse=(lambda x: x)): self.title = title self.procedure = procedure self.measlist = [] self.port = 5888 self.plots = [] self.figs = [] self._data = [] self.analyse = analyse self._data_timeout = 10 config = get_config() set_mpl_rcparams(config) if 'Logging' in config._sections.keys(): self.scribe = setup_logging(log, **config._sections['Logging']) else: self.scribe = console_log(log) self.scribe.start() self.filename = create_filename(self.title) log.info("Using data file: %s" % self.filename) self.results = Results(self.procedure, self.filename) log.info("Set up Results") self.worker = Worker(self.results, self.scribe.queue, logging.DEBUG) log.info("Create worker")
scribe = console_log(log, level=logging.DEBUG) scribe.start() filename = tempfile.mktemp() log.info("Using data file: %s" % filename) procedure = TestProcedure() procedure.iterations = 200 procedure.delay = 0.1 log.info("Set up TestProcedure with %d iterations" % procedure.iterations) results = Results(procedure, filename) log.info("Set up Results") plotter = Plotter(results) plotter.start() worker = Worker(results, scribe.queue, log_level=logging.DEBUG) log.info("Created worker for TestProcedure") log.info("Starting worker...") worker.start() log.info("Joining with the worker in at most 20 min") worker.join(60 * 20) log.info("Waiting for Plotter to close") plotter.wait_for_close() log.info("Plotter closed") log.info("Stopping the logging") scribe.stop()
'Reverse Current Dark': abs(trace_data_dark[i, 0]), 'Timestamp Dark': trace_data_dark[i, 1], 'Status Dark': trace_data_dark[i, 2], 'Reverse Voltage Light': abs(trace_data_light[i, 3]), 'Reverse Current Light': abs(trace_data_light[i, 0]), 'Timestamp Light': trace_data_light[i, 1], 'Status Light': trace_data_light[i, 2] }) for i in range(n_samples) ] log.info("Current data emitted") log.info("Turning off light source") self.power_supply.enabled = "OFF" log.info("Waiting for 30sec in between test.") sleep(30) if __name__ == "__main__": console_log(log, level=logging.DEBUG) procedure = IVSweepProcedure() procedure.polarity = "Anode" # procedure.step = 1 data_filename = 'example.csv' results = Results(procedure, data_filename) worker = Worker(results) worker.start() worker.join(timeout=3600) # wait at most 1 hr (3600 sec)