def __init__(self, controller): super(SimulatorWindow, self).__init__() self.controller = controller self.elapsed = 0.0 self.epoch = 0 self.throttleval = 0.0 self.loadval = 0.0 self.committedThrottleVal = 0.0 self.dt = 1.0 / simconstants.SIMFREQ self.va = 0.0 self.vb = 0.0 self.vc = 0.0 self.connect('destroy', lambda w: Gtk.main_quit()) self.set_default_size(1024, 800) vbox = Gtk.VBox() self.add(vbox) self.table = GraphTable() vbox.pack_start(self.table, True, True, 0) self.table.add_row("omega", 0.05) self.table.add_row("theta", 5) self.table.add_row("va", 3) self.table.add_row("ia", 3) self.table.add_row("bemf", 4) self.table.add_row("torque", 50) self.table.add_row("errors", 5) hbox = Gtk.HBox() self.pwm = self.add_label("throttle (%): ", hbox) adj1 = Gtk.Adjustment(0.0, 0.0, 101.0, 0.1, 1.0, 1.0) self.throttlescale = Gtk.HScale() self.throttlescale.set_adjustment(adj1) self.throttlescale.set_digits(1) self.throttlescale.set_draw_value(True) hbox.pack_start(self.throttlescale, True, True, 0) self.throttlescale.connect("change-value", self.change_throttle) self.load = self.add_label("load (Nm): ", hbox) adj2 = Gtk.Adjustment(0.0, 0.0, 5.0, 0.01, 1.0, 1.0) self.loadscale = Gtk.HScale() self.loadscale.set_adjustment(adj2) self.loadscale.set_digits(2) self.loadscale.set_draw_value(True) hbox.pack_start(self.loadscale, True, True, 0) self.loadscale.connect("change-value", self.change_load) vbox.pack_start(hbox, False, False, 0) self.sim = Simulator() GObject.timeout_add(1, self.callback) self.show_all()