self.device = device
self.logger = logger
self.builder = Gtk.Builder()
+ self.history = [0.5]*1000
self.builder.add_from_file('visual.ui')
self.builder.connect_signals(self)
setattr(self.config, name, value)
self.config.save()
+ def on_expose(self, obj, _):
+ cairo = obj.window.cairo_create()
+ count = len(self.history)
+ extents = cairo.clip_extents()
+ width = extents[2] - extents[0]
+ height = extents[3] - extents[1]
+
+ cairo.set_line_width(4)
+ for i in range(0,len(self.history)):
+ x = i*width/(count-1)
+ y = ((1-self.history[i]) * 0.8 + 0.1) * height
+ if i==0:
+ cairo.move_to(x, y)
+ else:
+ cairo.line_to(x, y)
+ cairo.stroke()
+
def on_key(self, win, ev):
if ev.string == 'q':
Gtk.main_quit();
setval(self.tchs, state.tch, ['P', 'D'])
setval(self.a2ds, state.a2d, [])
+ self.history = self.history[1:] + [state.a2d[0]]
+ self.window.queue_draw()
+
def debug(self, state):
print('update: ' + str(state))
print('\tacc - ' + str(state.acc))
<interface>
<requires lib="gtk+" version="2.24"/>
<!-- interface-naming-policy project-wide -->
- <object class="GtkToggleAction" id="serial_act">
- <property name="label" translatable="yes">Serial</property>
- <property name="stock_id">gtk-connect</property>
- <signal name="activate" handler="on_serial" swapped="no"/>
- </object>
- <object class="GtkAction" id="settings_act">
- <property name="label" translatable="yes">Settings</property>
- <property name="stock_id">gtk-preferences</property>
- <signal name="activate" handler="on_show" swapped="no"/>
- </object>
- <object class="GtkToggleAction" id="xively_act">
- <property name="label" translatable="yes">Xively</property>
- <property name="stock_id">gtk-connect</property>
- <signal name="activate" handler="on_xively" swapped="no"/>
- </object>
<object class="GtkAdjustment" id="a2d_adj">
<property name="upper">100</property>
<property name="value">1</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
- <object class="GtkAction" id="flush_act">
- <property name="label" translatable="yes">Upload</property>
- <property name="stock_id">gtk-floppy</property>
- <signal name="activate" handler="on_flush" swapped="no"/>
- </object>
<object class="GtkAdjustment" id="datab_adj">
<property name="lower">6</property>
<property name="upper">8</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
+ <object class="GtkAction" id="flush_act">
+ <property name="label" translatable="yes">Upload</property>
+ <property name="stock_id">gtk-floppy</property>
+ <signal name="activate" handler="on_flush" swapped="no"/>
+ </object>
<object class="GtkAdjustment" id="lgt_adj">
<property name="upper">100</property>
<property name="value">1</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
+ <object class="GtkToggleAction" id="serial_act">
+ <property name="label" translatable="yes">Serial</property>
+ <property name="stock_id">gtk-connect</property>
+ <signal name="activate" handler="on_serial" swapped="no"/>
+ </object>
<object class="GtkTextBuffer" id="serial_buf"/>
+ <object class="GtkAction" id="settings_act">
+ <property name="label" translatable="yes">Settings</property>
+ <property name="stock_id">gtk-preferences</property>
+ <signal name="activate" handler="on_show" swapped="no"/>
+ </object>
+ <object class="GtkToggleAction" id="xively_act">
+ <property name="label" translatable="yes">Xively</property>
+ <property name="stock_id">gtk-connect</property>
+ <signal name="activate" handler="on_xively" swapped="no"/>
+ </object>
<object class="GtkDialog" id="settings">
<property name="can_focus">False</property>
<property name="border_width">5</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="plot">
+ <object class="GtkDrawingArea" id="plot">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes">Plots</property>
+ <signal name="expose-event" handler="on_expose" swapped="no"/>
</object>
<packing>
<property name="position">2</property>