- refactored

- integrated stirrer
This commit is contained in:
jens
2020-12-17 16:28:50 +01:00
parent 311ff974cc
commit ddf8003f5c
14 changed files with 66 additions and 26 deletions
+36
View File
@@ -0,0 +1,36 @@
import asyncio
from tasks import ATask
from ws.message import MsgIo
from components import AStirrer
class StirrerTask(ATask):
def __init__(self, stirrer_device: AStirrer, interval, msg_handler: MsgIo):
ATask.__init__(self, interval)
self.msg_handler = msg_handler
msg_handler.set_recv_handler(self.recv)
self.device = stirrer_device
def on_speed_changed(self, value):
asyncio.create_task(self.send({'Speed': value}))
def on_dutycycle_changed(self, value):
asyncio.create_task(self.send({'DutyCycle': value}))
def on_cycletime_changed(self, value):
asyncio.create_task(self.send({'CycleTime': value}))
async def recv(self, data):
print(data)
async def send(self, data):
await self.msg_handler.send(data)
async def on_process(self):
print("{}: Started with interval {} s".format(self.msg_handler.get_key(), self.interval))
self.device.set_on_changed("speed", self.on_speed_changed)
self.device.set_on_changed("dutyCycle", self.on_dutycycle_changed)
self.device.set_on_changed("cycleTime", self.on_cycletime_changed)
while True:
self.device.process()
await asyncio.sleep(self.interval)