- added tracer
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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 *
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user