[Stirrer]

- put things into base class

git-svn-id: http://moon:8086/svn/projects/HendiControl@135 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
2019-03-25 20:57:43 +00:00
parent 3531db6a7e
commit 190c2f6a23
3 changed files with 107 additions and 106 deletions
+34 -12
View File
@@ -3,36 +3,58 @@ import abc
class AStirrer(abc.ABC):
def __init__(self):
pass
def __init__(self, dt):
self.dt = dt
self.speed = 0
self.cycleTime = 1
self.dutyCycle = 1
self.cycleCounter = 0
self.isOn = 0
def log(self, s):
print("{:.2f}: {}".format(time.time(), s))
@abc.abstractmethod
def process(self):
pass
isOn = self.isOn
self.cycleCounter += self.dt
if self.cycleCounter >= self.cycleTime:
self.cycleCounter -= self.cycleTime
isOn = 0
if self.cycleCounter >= (self.cycleTime * (1-self.dutyCycle)):
if not isOn:
isOn = 1
if self.isOn != isOn:
if isOn:
self.onSetSpeed(self.speed)
else:
self.onSetSpeed(0)
self.isOn = isOn
@abc.abstractmethod
def setSpeed(self, speed):
pass
self.speed = speed
if self.isOn:
self.onSetSpeed(speed)
self.log ("Stirrer: Set speed to {} %".format(speed))
@abc.abstractmethod
def setCycleTime(self, time):
pass
self.cycleTime = time
self.log ("Stirrer: Set cycle time to {} s".format(time))
@abc.abstractmethod
def setDutyCycle(self, dutyCycle):
pass
self.dutyCycle = dutyCycle
self.log ("Stirrer: Set duty cycle to {} %".format(100*dutyCycle))
@abc.abstractmethod
def getSpeed(self):
return None
@abc.abstractmethod
def start(self):
def activate(self):
pass
@abc.abstractmethod
def stop(self):
def deactivate(self):
pass