summaryrefslogtreecommitdiff
path: root/host/simu
diff options
context:
space:
mode:
authorNicolas Schodet2012-04-30 20:36:18 +0200
committerNicolas Schodet2012-04-30 20:37:35 +0200
commit100806260ca3e15d33c2e5743b42609b3a34b2b6 (patch)
tree4441e088c79e0d2b429069a50abdbf3c116dc672 /host/simu
parentef661915c1e89a5eea7a8c83748eb835c9d8f6f9 (diff)
host/simu/model/pneumatic_cylinder: fix switch init and level
Diffstat (limited to 'host/simu')
-rw-r--r--host/simu/model/pneumatic_cylinder.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/host/simu/model/pneumatic_cylinder.py b/host/simu/model/pneumatic_cylinder.py
index e25b1866..cc4f3b6c 100644
--- a/host/simu/model/pneumatic_cylinder.py
+++ b/host/simu/model/pneumatic_cylinder.py
@@ -51,6 +51,7 @@ class PneumaticCylinder (Observable):
if self.link_out:
self.link_out.register (self.__notified)
self.__timed_update ()
+ self.__update (init = True)
def __notified (self):
# Update position.
@@ -79,7 +80,7 @@ class PneumaticCylinder (Observable):
self.scheduler.schedule (self.scheduler.date
+ int (self.scheduler.tick * 0.1), self.__timed_update)
- def __update (self):
+ def __update (self, init = False):
delta_t = (float (self.scheduler.date - self.last_update) /
self.scheduler.tick)
old_pos = self.pos
@@ -89,12 +90,12 @@ class PneumaticCylinder (Observable):
self.pos = self.pos_in
elif self.pos > self.pos_out:
self.pos = self.pos_out
- if old_pos != self.pos:
+ if old_pos != self.pos or init:
self.notify ()
if self.switch_in:
- self.switch_in.state = self.pos == self.pos_in
+ self.switch_in.state = self.pos != self.pos_in
self.switch_in.notify ()
if self.switch_out:
- self.switch_out.state = self.pos == self.pos_out
+ self.switch_out.state = self.pos != self.pos_out
self.switch_out.notify ()