示例#1
0
    def _save_settings(self):
        '''Save the settings in the attributes of the DataGroup object'''
        inslist = dict_to_ordered_tuples(qt.instruments.get_instruments())
        for (iname, ins) in inslist:
#            self.group.attrs['Instrument'] = iname
            parlist = dict_to_ordered_tuples(ins.get_parameters())
            for (param, popts) in parlist:
                self.group.attrs['%s - %s' % (iname, param)] = str(
                                                            ins.get(param))
示例#2
0
 def _save_settings(self):
     '''Save the settings in the attributes of the DataGroup object'''
     inslist = dict_to_ordered_tuples(qt.instruments.get_instruments())
     for (iname, ins) in inslist:
         #            self.group.attrs['Instrument'] = iname
         parlist = dict_to_ordered_tuples(ins.get_parameters())
         for (param, popts) in parlist:
             self.group.attrs['%s - %s' % (iname, param)] = str(
                 ins.get(param))
示例#3
0
    def _write_settings_file(self):
        fn = self.get_settings_filepath()
        f = open(fn, 'w+')
        f.write('Filename: %s\n' % self._filename)
        f.write('Timestamp: %s\n\n' % self._timestamp)

        inslist = dict_to_ordered_tuples(qt.instruments.get_instruments())
        for (iname, ins) in inslist:
            f.write('Instrument: %s\n' % iname)
            parlist = dict_to_ordered_tuples(ins.get_parameters())
            for (param, popts) in parlist:
                f.write('\t%s: %s\n' % (param, ins.get(param, query=False)))

        f.close()
示例#4
0
文件: data.py 项目: QCoherence/qtlab
    def _write_settings_file(self):
        fn = self.get_settings_filepath()
        f = open(fn, 'w+')
        f.write('Filename: %s\n' % self._filename)
        f.write('Timestamp: %s\n\n' % self._timestamp)

        inslist = dict_to_ordered_tuples(qt.instruments.get_instruments())
        for (iname, ins) in inslist:
            f.write('Instrument: %s\n' % iname)
            parlist = dict_to_ordered_tuples(ins.get_parameters())
            for (param, popts) in parlist:
                f.write('\t%s: %s\n' % (param, ins.get(param, query=False)))

        f.close()
示例#5
0
def save_instrument_settings_file(parent):
    h5settingsgroup = parent.create_group('instrument_settings')
    inslist = dict_to_ordered_tuples(qt.instruments.get_instruments())

    for (iname, ins) in inslist:
        if 'remote' in ins.get_options()['tags']:
            continue
        insgroup = h5settingsgroup.create_group(iname)
        parlist = dict_to_ordered_tuples(ins.get_parameters())
        #print iname
        for (param, popts) in parlist:
            try:
                insgroup.attrs[param] = ins.get(param, query=False)
            except (ValueError, TypeError):
                insgroup.attrs[param] = str(ins.get(param, query=False))
示例#6
0
    def _add_parameters(self):
        rows = 0
        parameters = self._instrument.get_shared_parameters()
        for name, opts in dict_to_ordered_tuples(parameters):
            self._table.resize(rows + 1, 2)

            label = gtk.Label(name)
            self._table.attach(label, 0, 1, rows, rows + 1)

            entry = self._create_entry(name, opts)
            self._table.attach(entry, 1, 2, rows, rows + 1)

            self._param_info[name] = {"entry": entry, "flags": opts["flags"]}

            hbox = gtk.HBox()
            if opts["flags"] & qt.constants.FLAG_SET:
                if "units" in opts:
                    unitlabel = gtk.Label(opts["units"])
                    self._table.attach(unitlabel, 2, 3, rows, rows + 1)
                but = gtk.Button(_L("Set"))
                but.connect("clicked", self._set_clicked, name)
                if not isinstance(entry, ComboEntry):
                    entry.connect("activate", self._set_clicked, name)
                hbox.pack_start(but)
            if opts["flags"] & qt.constants.FLAG_GET or opts["flags"] & qt.constants.FLAG_SOFTGET:
                but = gtk.Button(_L("Get"))
                but.connect("clicked", self._get_clicked, name)
                hbox.pack_start(but)

            self._table.attach(hbox, 3, 4, rows, rows + 1)
            rows += 1
示例#7
0
    def _add_parameters(self):
        rows = 0
        parameters = self._instrument.get_shared_parameters()
        for name, opts in dict_to_ordered_tuples(parameters):
            self._table.resize(rows + 1, 2)

            label = gtk.Label(name)
            self._table.attach(label, 0, 1, rows, rows + 1)

            entry = self._create_entry(name, opts)
            self._table.attach(entry, 1, 2, rows, rows + 1)

            self._param_info[name] = {
                'entry': entry,
                'flags': opts['flags'],
            }

            hbox = gtk.HBox()
            if opts['flags'] & qt.constants.FLAG_SET:
                but = gtk.Button(_L('Set'))
                but.connect('clicked', self._set_clicked, name)
                if not isinstance(entry, ComboEntry) and not isinstance(entry, MultiStringEntry):
                    entry.connect('activate', self._set_clicked, name)                
                hbox.pack_start(but)
            if opts['flags'] & qt.constants.FLAG_GET or \
                    opts['flags'] & qt.constants.FLAG_SOFTGET:
                but = gtk.Button(_L('Get'))
                but.connect('clicked', self._get_clicked, name)
                hbox.pack_start(but)

            self._table.attach(hbox, 2, 3, rows, rows + 1)
            rows += 1
示例#8
0
    def set_instrument(self, ins):
        if type(ins) == types.StringType:
            # This should perhaps go through qt.get_instrument_proxy()
            ins = helper.find_object('instruments_%s' % ins)

        if self._instrument == ins:
            return True

        if ins is not None:
            self._insname = ins.get_name()
        else:
            self._insname = ''

        self._instrument = ins
        self._param_list.clear()
        if ins is not None:
            self._param_list.append([TEXT_NONE])

            self._instrument.connect('parameter-added', self._parameter_added_cb)

            for (name, options) in misc.dict_to_ordered_tuples(ins.get_shared_parameters()):
                if len(self._types) > 0 and options['type'] not in self._types:
                    continue

                if options['flags'] & self._flags:
                    self._param_list.append([name])
        else:
            self._param_list.clear()
示例#9
0
    def _add_parameters(self):
        rows = 0
        parameters = self._instrument.get_shared_parameters()
        for name, opts in dict_to_ordered_tuples(parameters):
            self._table.resize(rows + 1, 2)

            label = gtk.Label(name)
            self._table.attach(label, 0, 1, rows, rows + 1)

            entry = self._create_entry(name, opts)
            self._table.attach(entry, 1, 2, rows, rows + 1)

            self._param_info[name] = {
                'entry': entry,
                'flags': opts['flags'],
            }

            hbox = gtk.HBox()
            if opts['flags'] & qt.constants.FLAG_SET:
                but = gtk.Button(_L('Set'))
                but.connect('clicked', self._set_clicked, name)
                if not isinstance(entry, ComboEntry) and not isinstance(
                        entry, MultiStringEntry):
                    entry.connect('activate', self._set_clicked, name)
                hbox.pack_start(but)
            if opts['flags'] & qt.constants.FLAG_GET or \
                    opts['flags'] & qt.constants.FLAG_SOFTGET:
                but = gtk.Button(_L('Get'))
                but.connect('clicked', self._get_clicked, name)
                hbox.pack_start(but)

            self._table.attach(hbox, 2, 3, rows, rows + 1)
            rows += 1
示例#10
0
    def __init__(self, ins, param, opts, autoupdate=True):
        self._instrument = ins
        self._parameter = param
        self._dirty = False

        self._model = gtk.ListStore(gobject.TYPE_STRING)
        if 'format_map' in opts:
            self._map = opts['format_map']
            for k, v in dict_to_ordered_tuples(self._map):
                self._model.append([str(v)])
        elif 'option_list' in opts:
            self._map = opts['option_list']
            for k in self._map:
                self._model.append([str(k)])

        gtk.ComboBox.__init__(self, model=self._model)

        cell = gtk.CellRendererText()
        self.pack_start(cell, True)
        self.add_attribute(cell, 'text', 0)

        self._autoupdate = autoupdate
        if self._autoupdate:
            ins.connect('changed', self._parameter_changed_cb)

        self.connect('changed', self._combo_changed_cb)
示例#11
0
    def set_instrument(self, ins):
        if type(ins) == types.StringType:
            ins = qt.get_instrument_proxy(ins)

        if self._instrument == ins:
            return True

        if ins is not None:
            self._insname = ins.get_name()
        else:
            self._insname = ''

        self._instrument = ins
        self._func_list.clear()
        if ins is not None:
            self._func_list.append([TEXT_NONE, '<Nothing>'])

            funcs = ins.get_functions()
            for (name, options) in misc.dict_to_ordered_tuples(funcs):
                if 'doc' in options:
                    doc = options['doc']
                else:
                    doc = ''
                self._func_list.append([name, doc])
        else:
            self._func_list.clear()
示例#12
0
    def __init__(self, ins, param, opts, autoupdate=True):
        self._instrument = ins
        self._parameter = param
        self._dirty = False

        self._model = gtk.ListStore(gobject.TYPE_STRING)
        if "format_map" in opts:
            self._map = opts["format_map"]
            for k, v in dict_to_ordered_tuples(self._map):
                self._model.append([str(v)])
        elif "option_list" in opts:
            self._map = opts["option_list"]
            for k in self._map:
                self._model.append([str(k)])

        gtk.ComboBox.__init__(self, model=self._model)

        cell = gtk.CellRendererText()
        self.pack_start(cell, True)
        self.add_attribute(cell, "text", 0)

        self._autoupdate = autoupdate
        if self._autoupdate:
            ins.connect("changed", self._parameter_changed_cb)

        self.connect("changed", self._combo_changed_cb)
示例#13
0
 def save_instrument_settings_file(self, parent=None):
     if parent == None:
         parent = self.h5basegroup
     
     h5settingsgroup = parent.create_group('instrument_settings')
     inslist = dict_to_ordered_tuples(qt.instruments.get_instruments())
     
     for (iname, ins) in inslist:
         insgroup = h5settingsgroup.create_group(iname)
         parlist = dict_to_ordered_tuples(ins.get_parameters())
         
         for (param, popts) in parlist:
             try:
                 insgroup.attrs[param] = ins.get(param, query=True) \
                         if 'remote' in ins.get_options()['tags'] \
                         else ins.get(param, query=False)
             except (ValueError, TypeError):
                     insgroup.attrs[param] = str(ins.get(param, query=False))
示例#14
0
    def add_instrument(self, ins):
        insname = ins.get_name()
        if ins.get_name() in self._ins_names:
            return

        self._ins_names.append(insname)
        ins.connect('parameter-added', self._parameter_added_cb)
        params = misc.dict_to_ordered_tuples(ins.get_shared_parameters())
        for param, options in params:
            self.add_parameter(ins, param, options=options)
示例#15
0
文件: data.py 项目: QCoherence/qtlab
    def _write_header(self):
        self._file.write('# Filename: %s\n' % self._filename)
        self._file.write('# Timestamp: %s\n\n' % self._timestamp)
        for line in self._comment:
            self._file.write('# %s\n' % line)

        i = 1
        for dim in self._dimensions:
            self._file.write('# Column %d:\n' % i)
            for key, val in dict_to_ordered_tuples(dim):
                self._file.write('#\t%s: %s\n' % (key, val))
            i += 1

        self._file.write('\n')
示例#16
0
    def _write_header(self):
        self._file.write('# Filename: %s\n' % self._filename)
        self._file.write('# Timestamp: %s\n\n' % self._timestamp)
        for line in self._comment:
            self._file.write('# %s\n' % line)

        i = 1
        for dim in self._dimensions:
            self._file.write('# Column %d:\n' % i)
            for key, val in dict_to_ordered_tuples(dim):
                self._file.write('#\t%s: %s\n' % (key, val))
            i += 1

        self._file.write('\n')
示例#17
0
    def save_current_settings(self, parent=None, name=''):
        if parent == None:
            parent = h5.HDF5Data(name='OKOTech_DM' + '_' + name)
            flush = True
        instrument_grp = parent.create_group('instrument_settings')
        #inslist = dict_to_ordered_tuples(qt.instruments.get_instruments())

        #for (iname, ins) in inslist:
        insgroup = instrument_grp.create_group(self._name)
        parlist = dict_to_ordered_tuples(self.get_parameters())

        for (param, popts) in parlist:
            try:
                insgroup.attrs[param] = self.get(param, query=True) \
                        if 'remote' in self.get_options()['tags'] \
                        else self.get(param, query=False)
            except (ValueError, TypeError):
                insgroup.attrs[param] = str(self.get(param, query=False))
        if flush: parent.flush()
示例#18
0
    def _add_functions(self):
        self._func_buttons = {}
        rows = self._table.props.n_rows
        functions = self._instrument.get_functions()
        for fname, fopts in dict_to_ordered_tuples(functions):
            anames = fopts['argspec']['args']
            adefaults = fopts['argspec']['defaults']
            for i, aname in enumerate(anames):
                if aname == 'self':
                    continue
                if adefaults is not None and i >= len(anames) - len(adefaults):
                    default = adefaults[i - len(anames) + len(adefaults)]
                else:
                    default = ''

            but = gtk.Button(fname)
            self._func_buttons[fname] = but
            but.connect('clicked', self._func_clicked_cb, fname)
            self._table.attach(but, 0, 3, rows, rows + 1)
            rows += 1
示例#19
0
    def _add_functions(self):
        self._func_buttons = {}
        rows = self._table.props.n_rows
        functions = self._instrument.get_functions()
        for fname, fopts in dict_to_ordered_tuples(functions):
            anames = fopts["argspec"][0]
            adefaults = fopts["argspec"][3]
            for i, aname in enumerate(anames):
                if aname == "self":
                    continue
                if adefaults is not None and i >= len(anames) - len(adefaults):
                    default = adefaults[i - len(anames) + len(adefaults)]
                else:
                    default = ""

            but = gtk.Button(fname)
            self._func_buttons[fname] = but
            but.connect("clicked", self._func_clicked_cb, fname)
            self._table.attach(but, 0, 4, rows, rows + 1)
            rows += 1