- many other improvements git-svn-id: http://moon:8086/svn/projects/HendiControl@116 fda53097-d464-4ada-af97-ba876c37ca34
53 lines
1.1 KiB
Python
53 lines
1.1 KiB
Python
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:
|
|
print ("Stirrer: On")
|
|
self.isOn = 1
|
|
else:
|
|
if self.isOn:
|
|
print ("Stirrer: Off")
|
|
self.isOn = 0
|
|
|
|
def setRpm(self, rpm):
|
|
print ("Stirrer: Set RPM to {} rpm".format(rpm))
|
|
self.rpm = rpm
|
|
|
|
def setCycleTime(self, time):
|
|
print ("Stirrer: Set cycle time to {} s".format(time))
|
|
self.cycleTime = time
|
|
|
|
def setDutyCycle(self, dutyCycle):
|
|
print ("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
|
|
print("Stirrer: switched On")
|
|
|
|
def stop(self):
|
|
self.isMasterOn = 0
|
|
print("Stirrer: switched Off")
|