From 1cc295bccdb5e7fbedd49c4f40080a2924f72660 Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Mon, 17 Feb 2014 03:37:21 +0000 Subject: [PATCH] GTK+ 3 support --- vis/device.py | 10 +++++----- vis/logger.py | 10 ++++++++-- vis/visual.py | 24 +++++++++++++++++------- vis/visual.ui | 1 - 4 files changed, 30 insertions(+), 15 deletions(-) diff --git a/vis/device.py b/vis/device.py index 3d19ab2..cf2d16d 100644 --- a/vis/device.py +++ b/vis/device.py @@ -79,7 +79,7 @@ class Frame: TYP_U8: 'B', TYP_U16: 'H', TYP_U32: 'I', TYP_F32: 'f', TYP_F64: 'd'} - sampleNum= {SNS_ACC: 0, + sampleNum= {SNS_ACC: 0, SNS_MAG: 0, SNS_LGT: 0, SNS_TCH: 0, @@ -161,12 +161,12 @@ class Frame: self.values = unpack('<'+fmt, self.binary) # Print debug output - self.sampleNum[self.bits_sns] += 1 + self.sampleNum[self.bits_sns] += 1 #if self.sampleNum[self.bits_sns] == 1000: if self.sampleNum[self.bits_sns] == 1000: - print('convert: %3s = \'%3s\'%%[%s] -> [%s]' % - (sns, fmt, hexDump(self.binary), fltDump(self.values))) - self.sampleNum[self.bits_sns] = 0 + print('convert: %3s = \'%3s\'%%[%s] -> [%s]' % + (sns, fmt, hexDump(self.binary), fltDump(self.values))) + self.sampleNum[self.bits_sns] = 0 # Create state state = State() diff --git a/vis/logger.py b/vis/logger.py index 97a7a3b..ada465c 100644 --- a/vis/logger.py +++ b/vis/logger.py @@ -1,11 +1,17 @@ +import sys + from datetime import datetime -from Queue import Queue -from thread import get_ident, start_new_thread from xively import XivelyAPIClient from xively import Datastream from xively import Datapoint +if sys.version_info<(3,0,0): + from Queue import Queue + from thread import get_ident, start_new_thread +else: + from queue import Queue + from _thread import get_ident, start_new_thread class Logger: # Constructor diff --git a/vis/visual.py b/vis/visual.py index c4a266f..6fab630 100644 --- a/vis/visual.py +++ b/vis/visual.py @@ -32,18 +32,25 @@ class Visual: self.rate_due = 0 self.rate_cnt = {'acc': 0, - 'mag': 0, - 'lgt': 0, - 'tch': 0, - 'a2d': 0} + 'mag': 0, + 'lgt': 0, + 'tch': 0, + 'a2d': 0} self.builder.add_from_file('visual.ui') self.builder.connect_signals(self) + self.window = self.builder.get_object("window") self.settings = self.builder.get_object("settings") + self.plotdraw = self.builder.get_object('plot') self.plotsns = self.builder.get_object('sns') self.plotaxis = self.builder.get_object('axis') + if sys.version_info<(3,0,0): + self.plotdraw.connect('expose-event', self.on_expose) + else: + self.plotdraw.connect('draw', self.on_draw) + self.accs = get_objects(['accx', 'accy', 'accz']) self.mags = get_objects(['magx', 'magy', 'magz']) self.lgts = get_objects(['lgt']) @@ -104,8 +111,7 @@ class Visual: setattr(self.config, name, value) self.config.save() - def on_expose(self, obj, _): - cairo = obj.window.cairo_create() + def on_draw(self, obj, cairo): count = len(self.history) extents = cairo.clip_extents() width = extents[2] - extents[0] @@ -121,6 +127,10 @@ class Visual: cairo.line_to(x, y) cairo.stroke() + def on_expose(self, obj, event): + cairo = obj.window.cairo_create() + self.draw(obj, cairo) + def on_key(self, win, ev): if ev.string == 'q': Gtk.main_quit(); @@ -128,7 +138,7 @@ class Visual: def on_destroy(self, win): Gtk.main_quit() - # Methods + # Methods def load_config(self): def set_val(name, val): self.builder.get_object(name).set_value(val) diff --git a/vis/visual.ui b/vis/visual.ui index 3211896..42fabf4 100644 --- a/vis/visual.ui +++ b/vis/visual.ui @@ -1363,7 +1363,6 @@ True False - -- 2.43.2