From 100806260ca3e15d33c2e5743b42609b3a34b2b6 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 30 Apr 2012 20:36:18 +0200 Subject: host/simu/model/pneumatic_cylinder: fix switch init and level --- host/simu/model/pneumatic_cylinder.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'host/simu') 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 () -- cgit v1.2.3