예제 #1
0
    def save_data(self):
        """
        save the data
        """
        if self.tab_id == 0: # 1D
            label = self._1D__gate_name
        elif self.tab_id == 1: # 2D
            label = self._2D__gate1_name + '_vs_' + self._2D__gate2_name

        is_ds_configured = False
        try:
            is_ds_configured = isinstance(sample_info.project, str)
        except: pass

        try:
            if is_ds_configured:
                logging.info('Save')
                job = do0D(self.vm_data_param, name=label)
                ds = job.run()
                return ds
            else:
                # use qcodes measurement
                measure = Measure(self.vm_data_param)
                data = measure.get_data_set(location=None,
                                            loc_record={
                                            'name': 'vm_data',
                                            'label': label})
                data = measure.run(quiet=True)
                data.finalize()
        except:
            logging.error(f'Error during save data', exc_info=True)
예제 #2
0
def _do_measurement_single(measurement: Measure, meas_params: tuple,
                           do_plots: Optional[bool]=True,
                           use_threads: bool=True) -> Tuple[QtPlot, DataSet]:

    try:
        parameters = list(meas_params)
        _flush_buffers(*parameters)
        interrupted = False

        try:
            data = measurement.run(use_threads=use_threads)
        except KeyboardInterrupt:
            interrupted = True
            print("Measurement Interrupted")

        if do_plots:
            plot, _ = _plot_setup(data, meas_params)
            # Ensure the correct scaling before saving
            plot.autorange()
            plot.save()

            if 'pdf_subfolder' in CURRENT_EXPERIMENT or 'png_subfolder' in CURRENT_EXPERIMENT:
                _do_MatPlot(data,meas_params)

        else:
            plot = None

        log.info("#[QCoDeS]# Saved dataset to: {}".format(data.location))

        if interrupted:
            raise KeyboardInterrupt
    except:
        log.exception("Exception in doO")
        raise
    return plot, data
def qc_run(name, seq, *params):
    loop = None
    for sp in seq.params:
        if loop is None:
            loop = Loop(sp[sp.values])
        else:
            loop = loop.loop((sp[sp.values]))

    play_task = Task(upload_play, seq)

    if loop is not None:
        m = loop.each(play_task, *params)
    else:
        m = Measure(play_task, *params)

    ds = m.run(loc_record={'name':name})
    return ds