- added tracer

This commit is contained in:
jens
2020-12-20 12:15:42 +01:00
parent 29cc4dfae7
commit cccfd539c6
3 changed files with 44 additions and 1 deletions
+4 -1
View File
@@ -7,7 +7,7 @@ from components.sensor import TempSensorFactory
from components.pid import TempController from components.pid import TempController
from components.plant import Pot from components.plant import Pot
from components.actor import HeaterFactory, StirrerFactory from components.actor import HeaterFactory, StirrerFactory
from tasks import TaskManager, TempSensorTask, HeaterTask, PotTask, TcTask, StirrerTask from tasks import TaskManager, TempSensorTask, HeaterTask, PotTask, TcTask, StirrerTask, TracerTask
DT_CTRL = 0.1 DT_CTRL = 0.1
@@ -49,6 +49,9 @@ if __name__ == '__main__':
stirrer_task = StirrerTask(stirrer, DT_CTRL, dispatcher.msgio_get("Stirrer")) stirrer_task = StirrerTask(stirrer, DT_CTRL, dispatcher.msgio_get("Stirrer"))
taskmgr.add(stirrer_task) taskmgr.add(stirrer_task)
# Tracer
taskmgr.add(TracerTask(sensor, tc, DT_CTRL, dispatcher.msgio_get("Tracer")))
# Message dispatcher # Message dispatcher
h_dispatcher = taskmgr.start() h_dispatcher = taskmgr.start()
h_server = server.listen("0.0.0.0", 8765) h_server = server.listen("0.0.0.0", 8765)
+1
View File
@@ -4,3 +4,4 @@ from tasks.heater import *
from tasks.stirrer import * from tasks.stirrer import *
from tasks.pot import * from tasks.pot import *
from tasks.tempctrl import * from tasks.tempctrl import *
from tasks.tracer import *
+39
View File
@@ -0,0 +1,39 @@
import asyncio
from tasks import ATask
from ws.message import MsgIo
from components import ATemperatureSensor
from components.pid import TempController
import numpy as np
import scipy.io
class TracerTask(ATask):
def __init__(self, sensor: ATemperatureSensor, temp_ctrl: TempController, interval, msg_handler: MsgIo):
ATask.__init__(self, interval)
self.msg_handler = msg_handler
msg_handler.set_recv_handler(self.recv)
self.sensor = sensor
self.temp_ctrl = temp_ctrl
async def recv(self, data):
pass
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))
time = 0
_time = np.empty(0)
while True:
_time = np.append(_time, time)
time += 1
scipy.io.savemat('test.mat', {'time': _time})
await asyncio.sleep(self.interval)