def queue(self): filename = str(IVProcedure.filename) # filename = unique_filename(directory, prefix='IV') procedure = self.make_procedure() results = Results(procedure, filename) experiment = self.new_experiment(results) self.manager.queue(experiment)
def queue(self): directory = "./" # Change this to the desired directory filename = unique_filename(directory, prefix='IV') procedure = self.make_procedure() results = Results(procedure, filename) experiment = self.new_experiment(results) self.manager.queue(experiment)
def queue(self, *, procedure=None): filename = tempfile.mktemp() if procedure is None: procedure = self.make_procedure() results = Results(procedure, filename) experiment = self.new_experiment(results) self.manager.queue(experiment)
def queue(self): fname = unique_filename( self.inputs.save_dir.text(), dated_folder=True, prefix=self.inputs.calib_name.text() + '_temperature_record_', suffix='' ) procedure = self.make_procedure() results = Results(procedure, fname) experiment = self.new_experiment(results) self.manager.queue(experiment)
def queue(self): filename = tempfile.mktemp() procedure = TestProcedure() procedure.seed = str(self.inputs.seed.text()) procedure.iterations = self.inputs.iterations.value() procedure.delay = self.inputs.delay.value() results = Results(procedure, filename) experiment = self.new_experiment(results) self.manager.queue(experiment)
def queue(self): # create filename based on procedure name, position in queue and a unique identifier procedure_string = re.search("'(?P<name>[^']+)'", repr(self.procedure_class)).group("name") main_str, basename = procedure_string.split('.') queue_position = len(self.manager.experiments.queue) + 1 uidn = uuid.uuid4().clock_seq_hi_variant filename = f'{basename}-{queue_position}_{uidn}.csv' #create new experiment procedure = self.make_procedure() results = Results(procedure, filename) experiment = self.new_experiment(results) #que new experiment self.manager.queue(experiment)
def queue(self, *, procedure=None): directory = os.getcwd() + '/' + self.directory if procedure is None: procedure = self.make_procedure() prefix = 'DUT{:s}_{:s}_{:s}'.format(str(procedure.dev_num), procedure.pd_type, procedure.pd_size) # suffix = strftime("%Y%m%d_%H%M%S") filename = unique_filename( directory, # prefix=prefix, # suffix=suffix, datetimeformat="%Y%m%d_%H%M%S") results = Results(procedure, filename) experiment = self.new_experiment(results) self.manager.queue(experiment)
def queue(self): direc = self.inputs.save_dir.text() # create list of procedures to run procedure = self.make_procedure() # create files pre = (procedure.your_name + '_') if procedure.your_name else '' suf = 'SS9' filename = unique_filename(direc, dated_folder=True, suffix=suf, prefix=pre) # ensure *some* sample name exists so Results.load() works if procedure.your_name == '': procedure.your_name = 'undefined' # Queue experiment results = Results(procedure, filename) experiment = self.new_experiment(results) self.manager.queue(experiment)
def queue(self): # create filename based on procedure name, position in queue and a unique identifier procedure_string = re.search("'(?P<name>[^']+)'", repr(self.procedure_class)).group("name") main_str, basename = procedure_string.split('.') queue_position = len(self.manager.experiments.queue) + 1 uidn = uuid.uuid4().clock_seq_hi_variant filename = f'{basename}-{queue_position}_{uidn}.csv' # construct a new instance of procedure and define datapoints procedure = self.make_procedure() procedure.data_points = np.ceil( (procedure.max_voltage - procedure.min_voltage) / procedure.voltage_step) # construct a new instance of Results results = Results(procedure, filename) # construct new experiment (that contains the previously constructed procedure and results objects) experiment = self.new_experiment(results) # if its the first experiment don't start it right away if not self.manager.experiments.queue: self.manager._start_on_add = False self.manager._is_continuous = False self.manager.queue(experiment) # set the gui accordingly self.abort_button.setEnabled(False) self.abort_button.setText("Start") self.abort_button.clicked.disconnect() self.abort_button.clicked.connect(self.resume) self.abort_button.setEnabled(True) # add experiment to que else: self.manager.queue(experiment)
def update_plot(self, filename): for plot in self.plot: plot.clear() if not os.path.isdir(filename) and filename != '': try: results = self.procedure_class().load(str(filename)) except Exception as error: try: results = Results.load(str(filename)) except ValueError: return except Exception as e: raise e for index, plot_widget in enumerate(self.plot_widget): curve_list = plot_widget.new_curve(results) for curve in curve_list: curve.update() self.plot[index].addItem(curve) self.preview_param.clear() for key, param in results.procedure.parameter_objects().items(): new_item = QtGui.QTreeWidgetItem([param.name, str(param)]) self.preview_param.addTopLevelItem(new_item) self.preview_param.sortItems(0, QtCore.Qt.AscendingOrder)
if __name__ == "__main__": 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")
'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)