From 48e509336acdda1bb0a449c00bc7a8918fb9df85 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Sun, 11 Oct 2009 20:16:31 +0200 Subject: host, digital/io/tools, digital/asserv/tools: notify observers on register --- digital/io/tools/test_simu_aquajim.py | 1 - digital/io/tools/test_simu_giboulee.py | 1 - host/inter/inter_node.py | 1 - host/simu/model/distance_sensor_sharps.py | 1 + host/simu/model/motor_basic.py | 3 +-- host/simu/model/position.py | 1 - host/simu/model/servo.py | 1 - host/simu/model/switch.py | 1 - host/simu/robots/aquajim/model/sorter.py | 5 ----- host/simu/robots/aquajim/view/arm.py | 1 - host/simu/robots/aquajim/view/bridge.py | 1 - host/simu/robots/aquajim/view/elevator.py | 2 -- host/simu/robots/aquajim/view/robot.py | 1 - host/simu/robots/giboulee/model/arm.py | 1 - host/simu/robots/giboulee/view/arm.py | 1 - host/simu/robots/giboulee/view/robot.py | 1 - host/simu/view/distance_sensor.py | 1 - host/simu/view/path.py | 1 - host/simu/view/round_obstacle.py | 1 - host/simu/view/servo.py | 1 - host/simu/view/table_eurobot2009.py | 1 - host/utils/observable.py | 1 + 22 files changed, 3 insertions(+), 26 deletions(-) diff --git a/digital/io/tools/test_simu_aquajim.py b/digital/io/tools/test_simu_aquajim.py index 630b35df..ea0136d0 100644 --- a/digital/io/tools/test_simu_aquajim.py +++ b/digital/io/tools/test_simu_aquajim.py @@ -88,7 +88,6 @@ class TestSimu (InterNode): self.robot_link.io.adc[5].value = 0 # Color switch. self.robot_model.color_switch.register (self.change_color) - self.change_color () def close (self): self.forked_hub.kill () diff --git a/digital/io/tools/test_simu_giboulee.py b/digital/io/tools/test_simu_giboulee.py index 16114c5b..eacaccf8 100644 --- a/digital/io/tools/test_simu_giboulee.py +++ b/digital/io/tools/test_simu_giboulee.py @@ -86,7 +86,6 @@ class TestSimu (InterNode): self.sensor_frame, self.robot_model) # Color switch. self.robot_model.color_switch.register (self.change_color) - self.change_color () def close (self): self.forked_hub.kill () diff --git a/host/inter/inter_node.py b/host/inter/inter_node.py index 66eb5b2f..1ec1e849 100644 --- a/host/inter/inter_node.py +++ b/host/inter/inter_node.py @@ -75,7 +75,6 @@ class InterNode (Inter): s.obstacles = self.obstacles s.hide = True s.register (self.update_sharps) - self.update_sharps () self.path = Path (self.tableview.table) self.io_link.path.register (self.notify_path) diff --git a/host/simu/model/distance_sensor_sharps.py b/host/simu/model/distance_sensor_sharps.py index b4cf1e33..88bee49f 100644 --- a/host/simu/model/distance_sensor_sharps.py +++ b/host/simu/model/distance_sensor_sharps.py @@ -38,6 +38,7 @@ class DistanceSensorSharps (Observable, DistanceSensor): level) self.link = link self.scheduler = scheduler + self.value = None self.register (self.__update) self.evaluate () diff --git a/host/simu/model/motor_basic.py b/host/simu/model/motor_basic.py index e22a72c2..4d3809e1 100644 --- a/host/simu/model/motor_basic.py +++ b/host/simu/model/motor_basic.py @@ -38,10 +38,9 @@ class MotorBasic (Observable): self.max_stop = max_stop self.angle = 0 self.link = link - self.link.register (self.__notified) self.value = None self.last_update = self.scheduler.date - self.__notified () + self.link.register (self.__notified) self.__timed_update () def __notified (self): diff --git a/host/simu/model/position.py b/host/simu/model/position.py index eec395e7..c3fa1307 100644 --- a/host/simu/model/position.py +++ b/host/simu/model/position.py @@ -30,7 +30,6 @@ class Position (Observable): Observable.__init__ (self) self.link = link self.link.register (self.__notified) - self.__notified () def __notified (self): self.pos = self.link.pos diff --git a/host/simu/model/servo.py b/host/simu/model/servo.py index 7c83d4b3..acc3f85f 100644 --- a/host/simu/model/servo.py +++ b/host/simu/model/servo.py @@ -30,7 +30,6 @@ class Servo (Observable): Observable.__init__ (self) self.link = link self.link.register (self.__notified) - self.__notified () def __notified (self): self.value = self.link.value diff --git a/host/simu/model/switch.py b/host/simu/model/switch.py index 617a22ff..30cc1466 100644 --- a/host/simu/model/switch.py +++ b/host/simu/model/switch.py @@ -31,7 +31,6 @@ class Switch (Observable): self.link = link self.state = None self.register (self.__update) - self.__update () def __update (self): self.link.state = self.state diff --git a/host/simu/robots/aquajim/model/sorter.py b/host/simu/robots/aquajim/model/sorter.py index 41f7712f..e7b69761 100644 --- a/host/simu/robots/aquajim/model/sorter.py +++ b/host/simu/robots/aquajim/model/sorter.py @@ -42,21 +42,16 @@ class Sorter (Observable): self.lost = [ ] self.arm_motor_link = arm_motor_link self.arm_motor_link.register (self.__arm_motor_notified) - self.__arm_motor_notified () self.cylinder_puck_contact = cylinder_puck_contact self.servo_links = servo_links self.bridge_puck_contact = bridge_puck_contact self.servo_links[0].register (self.__bridge_door_servo_notified) - self.__bridge_door_servo_notified () self.servo_links[1].register (self.__bridge_finger_servo_notified) - self.__bridge_finger_servo_notified () self.elevator_motor_link = elevator_motor_link self.elevator_motor_link.register (self.__elevator_motor_notified) - self.__elevator_motor_notified () self.elevator_door = elevator_door_model self.elevator_door_contact = elevator_door_contact self.elevator_door.register (self.__elevator_door_notified) - self.__elevator_door_notified () def __transform (self, pos): m = TransMatrix () diff --git a/host/simu/robots/aquajim/view/arm.py b/host/simu/robots/aquajim/view/arm.py index aab69c58..c2f2169b 100644 --- a/host/simu/robots/aquajim/view/arm.py +++ b/host/simu/robots/aquajim/view/arm.py @@ -36,7 +36,6 @@ class Arm (Drawable): Drawable.__init__ (self, onto) self.model = model self.model.register (self.__notified) - self.__notified () def __notified (self): self.angle = self.model.arm_angle diff --git a/host/simu/robots/aquajim/view/bridge.py b/host/simu/robots/aquajim/view/bridge.py index 59c86211..d5400c0f 100644 --- a/host/simu/robots/aquajim/view/bridge.py +++ b/host/simu/robots/aquajim/view/bridge.py @@ -36,7 +36,6 @@ class Bridge (Drawable): Drawable.__init__ (self, onto) self.model = model self.model.register (self.update) - self.update () def draw (self): self.reset () diff --git a/host/simu/robots/aquajim/view/elevator.py b/host/simu/robots/aquajim/view/elevator.py index 7c27d4d3..7dbcf477 100644 --- a/host/simu/robots/aquajim/view/elevator.py +++ b/host/simu/robots/aquajim/view/elevator.py @@ -35,10 +35,8 @@ class Elevator (Drawable): Drawable.__init__ (self, onto) self.model = model self.model.register (self.__notified) - self.__notified () self.door_model = model.elevator_door self.door_model.register (self.__door_notified) - self.__door_notified () def __notified (self): self.height = self.model.elevator_height diff --git a/host/simu/robots/aquajim/view/robot.py b/host/simu/robots/aquajim/view/robot.py index 713a30c4..ad613bba 100644 --- a/host/simu/robots/aquajim/view/robot.py +++ b/host/simu/robots/aquajim/view/robot.py @@ -31,7 +31,6 @@ class Robot (simu.inter.drawable.Drawable): simu.inter.drawable.Drawable.__init__ (self, onto) self.position_model = position_model self.position_model.register (self.__position_notified) - self.__position_notified () def __position_notified (self): """Called on position modifications.""" diff --git a/host/simu/robots/giboulee/model/arm.py b/host/simu/robots/giboulee/model/arm.py index cfefd11b..000f7841 100644 --- a/host/simu/robots/giboulee/model/arm.py +++ b/host/simu/robots/giboulee/model/arm.py @@ -30,7 +30,6 @@ class Arm (Observable): Observable.__init__ (self) self.motor_link = motor_link self.motor_link.register (self.__motor_notified) - self.__motor_notified () def __motor_notified (self): self.angle = self.motor_link.angle diff --git a/host/simu/robots/giboulee/view/arm.py b/host/simu/robots/giboulee/view/arm.py index 205857a2..dafc68ab 100644 --- a/host/simu/robots/giboulee/view/arm.py +++ b/host/simu/robots/giboulee/view/arm.py @@ -35,7 +35,6 @@ class Arm (Drawable): Drawable.__init__ (self, onto) self.model = model self.model.register (self.__notified) - self.__notified () def __notified (self): self.angle = self.model.angle diff --git a/host/simu/robots/giboulee/view/robot.py b/host/simu/robots/giboulee/view/robot.py index 2ffcacb2..ab1ffc6d 100644 --- a/host/simu/robots/giboulee/view/robot.py +++ b/host/simu/robots/giboulee/view/robot.py @@ -31,7 +31,6 @@ class Robot (simu.inter.drawable.Drawable): simu.inter.drawable.Drawable.__init__ (self, onto) self.position_model = position_model self.position_model.register (self.__position_notified) - self.__position_notified () def __position_notified (self): """Called on position modifications.""" diff --git a/host/simu/view/distance_sensor.py b/host/simu/view/distance_sensor.py index 3fa7dbac..41cde7ef 100644 --- a/host/simu/view/distance_sensor.py +++ b/host/simu/view/distance_sensor.py @@ -31,7 +31,6 @@ class DistanceSensor (Drawable): Drawable.__init__ (self, onto) self.model = model self.model.register (self.__notified) - self.__notified () def __notified (self): self.distance = self.model.distance diff --git a/host/simu/view/path.py b/host/simu/view/path.py index aba39d93..d9582fdc 100644 --- a/host/simu/view/path.py +++ b/host/simu/view/path.py @@ -30,7 +30,6 @@ class Path (Drawable): Drawable.__init__ (self, onto) self.model = model self.model.register (self.__notified) - self.__notified () def __notified (self): self.path = self.model.path diff --git a/host/simu/view/round_obstacle.py b/host/simu/view/round_obstacle.py index 3e218029..9dba82a1 100644 --- a/host/simu/view/round_obstacle.py +++ b/host/simu/view/round_obstacle.py @@ -32,7 +32,6 @@ class RoundObstacle (Drawable): Drawable.__init__ (self, onto) self.model = model self.model.register (self.__notified) - self.__notified () def __notified (self): self.pos = self.model.pos diff --git a/host/simu/view/servo.py b/host/simu/view/servo.py index 7c67df09..fc84293e 100644 --- a/host/simu/view/servo.py +++ b/host/simu/view/servo.py @@ -36,7 +36,6 @@ class Servo (Drawable): self.start = start self.extent = extent self.model.register (self.__notified) - self.__notified () def __notified (self): self.value = self.model.value diff --git a/host/simu/view/table_eurobot2009.py b/host/simu/view/table_eurobot2009.py index 37d4ce16..5e2d6db5 100644 --- a/host/simu/view/table_eurobot2009.py +++ b/host/simu/view/table_eurobot2009.py @@ -43,7 +43,6 @@ class Puck (Drawable): self.attr = attr self.model = model self.model.register (self.__notified) - self.__notified () def __notified (self): self.pos = self.model.pos diff --git a/host/utils/observable.py b/host/utils/observable.py index 34f8fa01..5a8127ed 100644 --- a/host/utils/observable.py +++ b/host/utils/observable.py @@ -34,6 +34,7 @@ class Observable: """Register an observer to this observable.""" assert callable (observer) self.__observers.append (observer) + observer () def notify (self): """Notify all observers. This should be called after every state -- cgit v1.2.3