]> Pileus Git - ~andy/csm213a-hw/commitdiff
GTK+ 3 support
authorAndy Spencer <andy753421@gmail.com>
Mon, 17 Feb 2014 03:37:21 +0000 (03:37 +0000)
committerAndy Spencer <andy753421@gmail.com>
Mon, 17 Feb 2014 03:37:21 +0000 (03:37 +0000)
vis/device.py
vis/logger.py
vis/visual.py
vis/visual.ui

index 3d19ab24f2af66245f85ac57b17b09ed249af1f0..cf2d16d409c983de12b79e388fdac5ca1e17ddb2 100644 (file)
@@ -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()
index 97a7a3b2179f8f17284ee618578d3fa667e5c2e3..ada465c57db40211d5bf495a6da2e3ff7fba88de 100644 (file)
@@ -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
index c4a266f2bba9439dc2627a58fd660d955ff0bb31..6fab6306caf63626d76ae0636a863e178d8794d1 100644 (file)
@@ -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)
index 321189641eb6d51d9f9f35fc0767c8e7dceab1f1..42fabf4cb8ac2abdc376ab21e259330279563d14 100644 (file)
                       <object class="GtkDrawingArea" id="plot">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <signal name="expose-event" handler="on_expose" swapped="no"/>
                       </object>
                     </child>
                   </object>