from astirrer import AStirrer class Stirrer(AStirrer): def __init__(self, params): self.params = params self.rpm = 0 self.cycleTime = 1 self.dutyCycle = 1 self.cycleCounter = 0 self.isOn = 0 self.isMasterOn = 0 def process(self): dt = self.params["dt"] self.cycleCounter -= dt if self.cycleCounter <= 0: self.cycleCounter = self.cycleTime if self.cycleCounter <= (self.cycleTime * self.dutyCycle): if not self.isOn: self.log ("Stirrer: On") self.isOn = 1 else: if self.isOn: self.log ("Stirrer: Off") self.isOn = 0 def setRpm(self, rpm): self.log ("Stirrer: Set RPM to {} rpm".format(rpm)) self.rpm = rpm def setCycleTime(self, time): self.log ("Stirrer: Set cycle time to {} s".format(time)) self.cycleTime = time def setDutyCycle(self, dutyCycle): self.log ("Stirrer: Set duty cycle to {} %".format(100*dutyCycle)) self.dutyCycle = dutyCycle def getRpm(self): if self.isOn and self.isMasterOn: return self.rpm return 0 def start(self): self.isMasterOn = 1 self.log("Stirrer: switched On") def stop(self): self.isMasterOn = 0 self.log("Stirrer: switched Off")