diff options
Diffstat (limited to 'LegoJAM.py')
-rw-r--r-- | LegoJAM.py | 45 |
1 files changed, 34 insertions, 11 deletions
@@ -14,6 +14,7 @@ sys.path.append("nxt_plugin") # Importamos las funciones de la API import nxt from nxt import Motor +from nxt.sensor import * from interface.window import Window @@ -57,8 +58,8 @@ class LegoJAM(Window): self.show_all() def select_robot(self, treeview, treepath, column, robots): - self.set_layout(robots[treepath[0] - 1]) treeview.destroy() + self.set_layout(robots[treepath[0] - 1]) def set_layout(self, robot): self.robot = Robot(robot) @@ -88,10 +89,11 @@ class LegoJAM(Window): num += 1 battery_status = gtk.Label( - 'Estado de la bateria: %s' % self.robot.get_battery_level()) + 'Estado de la bateria: %s' % self.robot.robot.get_battery_level()) vbox.pack_end(battery_status) - self.robot.connect('battery-level-changed', - lambda w, l: battery_status.set_text(l)) + + self.robot.connect('battery-label-changed', + lambda w, l: battery_status.set_text('Estado de la bateria: %s' % l)) self.canvas.pack_start(vbox, True, True) self.show_all() @@ -127,27 +129,34 @@ class LegoJAM(Window): # robot.get_input_values() takes exactly 2 arguments (1 given) # robot.get_output_state() takes exactly 2 arguments (1 given) -class Robot(): +class Robot(gobject.GObject): __gsignals__ = {'battery-label-changed': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, - int)} + [str])} def __init__(self, robot): + gobject.GObject.__init__(self) + self.motorA = None self.motorB = None self.motorC = None self.funciones = [] self.set_up(robot) - gobject.timout_add(1000, self._update_battery_level) - def set_up(self, robot): self.robot = robot.connect() self.motorA = Mimotor("A", self.robot, nxt.PORT_A) self.motorB = Mimotor("B", self.robot, nxt.PORT_B) self.motorC = Mimotor("C", self.robot, nxt.PORT_C) + self.presion = Touch(self.robot, PORT_1) + self.sonido = Sound(self.robot, PORT_2) + self.ultrasonido = Ultrasonic(self.robot, PORT_4) + self.luz = Light(self.robot, PORT_3) + + gobject.timeout_add(1000, self.handle) + def run_motor(self, motor): if motor == "A": self.motorA.run(power=127, regulated=False) @@ -163,9 +172,23 @@ class Robot(): self.motorB.brake() elif motor == "C": self.motorC.brake() - - def _update_battery_level(self): - self.emit('battery-level-changed', self.robot.get_battery_level()) + + def handle(self): + valor_boton = self.presion.get_sample() + print 'Botón: ', valor_boton + + valor_sonido = self.sonido.get_sample() + print 'Botón: ', valor_sonido + + valor_ultrasonido = self.ultrasonido.get_sample() + print 'Ultrasónico: ', valor_ultrasonido + + valor_luz = self.luz.get_sample() + print 'luz: ', valor_luz + + self.emit('battery-label-changed', str(self.robot.get_battery_level())) + + return True class Mimotor(Motor): |