-default_loglevel = sr.LogLevel.WARN
-
-def init_and_run(queue, loglevel):
- def datafeed_in(device, packet):
- if packet.type == sr.PacketType.ANALOG:
- data = packet.payload.data
- unit, unit_str = packet.payload.unit, ""
- if unit == sr.Unit.VOLT:
- unit_str = " V"
- elif unit == sr.Unit.OHM:
- unit_str = " Ohm"
- elif unit == sr.Unit.AMPERE:
- unit_str = " A"
- mqflags, mqflags_str = packet.payload.mq_flags, ""
- if sr.QuantityFlag.AC in mqflags:
- mqflags_str = " AC"
- elif sr.QuantityFlag.DC in mqflags:
- mqflags_str = " DC"
- for i in range(packet.payload.num_samples):
- dev = "%s %s" % (device.vendor, device.model)
- val = "%f%s%s" % (data[0][i], unit_str, mqflags_str)
- queue.put((dev, val))
-
- context = sr.Context_create()
- context.log_level = loglevel
- drivers_to_use = ['tecpel-dmm-8061-ser']
- drivers = [context.drivers[d] for d in drivers_to_use]
- devices = [d.scan(conn="/dev/ttyUSB0")[0] for d in drivers]
- # devices = [d.scan()[0] for d in drivers]
- # for dev in devices:
- # dev.limit_samples = 1000
- session = context.create_session()
- for dev in devices:
- session.add_device(dev)
- dev.open()
- session.add_datafeed_callback(datafeed_in)
- session.start()
- session.run()
- session.stop()
-
-class SigrokMeter:
- def __init__(self):
- self.builder = Gtk.Builder()
- self.builder.add_from_file("sigrok-meter.glade")
- self.builder.connect_signals(self)
- self.value_label = self.builder.get_object("value_label")
- self.value_label2 = self.builder.get_object("value_label2")
- self.win = self.builder.get_object("mainwindow")
- self.win.show_all()
- self.queue = Queue()
- GObject.timeout_add(100, self.update_label_if_needed)
-
- def update_label_if_needed(self):
- try:
- t = self.queue.get_nowait()
- l = self.value_label if t[0] != "Victor" else self.value_label2
- l.set_text("%s: %s" % (t[0], t[1]))
- except:
- pass
- GObject.timeout_add(100, self.update_label_if_needed)
-
- def on_quit(self, *args):
- Gtk.main_quit(*args)
-
- def on_about(self, action):
- about = self.builder.get_object("aboutdialog")
- context = sr.Context_create()
- sr_pkg = context.package_version
- sr_lib = context.lib_version
- s = "Using libsigrok %s (lib version %s)." % (sr_pkg, sr_lib)
- about.set_comments(s)
- about.run()
- about.hide()