- refactored dt

This commit is contained in:
jens
2020-12-22 10:26:56 +01:00
parent b5a0e6a7ac
commit d777a955a4
7 changed files with 29 additions and 29 deletions
+13 -12
View File
@@ -9,7 +9,7 @@ from components.plant import Pot
from components.actor import HeaterFactory, StirrerFactory
from tasks import TaskManager, TempSensorTask, HeaterTask, PotTask, TcTask, StirrerTask, TracerTask
DT_CTRL = 0.1
DT_TASK = 0.1
if __name__ == '__main__':
config = json.load(open("config.json"))
@@ -17,40 +17,41 @@ if __name__ == '__main__':
server = WsServerMultiUser(listener=dispatcher)
taskmgr = TaskManager()
DT_CTRL = 1.0/config['Controller']['sim_warp_factor']
DT = config['Controller']['dt']
DT_TASK = 1.0 / config['Controller']['sim_warp_factor']
# Sensor
sensor = TempSensorFactory.create(config['Controller']['sensor_name'])
taskmgr.add(TempSensorTask(sensor, DT_CTRL, dispatcher.msgio_get("Sensor")))
taskmgr.add(TempSensorTask(sensor, DT_TASK, dispatcher.msgio_get("Sensor")))
# Plant
pot_params = config['Plant']
pot = Pot(pot_params, 20)
pot = Pot(DT, pot_params, 20)
if "sim" in config['Controller']['sensor_name']:
pot.set_on_changed("temp", ChangedFloat(sensor.set_fake_temp, prec=3).set)
taskmgr.add(PotTask(pot, DT_CTRL, dispatcher.msgio_get("Pot")))
taskmgr.add(PotTask(pot, DT_TASK, dispatcher.msgio_get("Pot")))
# Heater
heater = HeaterFactory.create(config['Controller']['heater_name'], config['Heater'])
heater = HeaterFactory.create(config['Controller']['heater_name'], DT, config['Heater'])
heater.set_on_changed("power_eff", ChangedFloat(pot.set_power, prec=0).set)
heater_task = HeaterTask(heater, DT_CTRL, dispatcher.msgio_get("Heater"))
heater_task = HeaterTask(heater, DT_TASK, dispatcher.msgio_get("Heater"))
taskmgr.add(heater_task)
# Temperature Controller
tc_params = config['TempCtrl']
tc = TempController(tc_params)
tc = TempController(DT, tc_params)
tc.set_on_changed("y", heater_task.actor)
tc_task = TcTask(tc, DT_CTRL, dispatcher.msgio_get("TempCtrl"))
tc_task = TcTask(tc, DT_TASK, dispatcher.msgio_get("TempCtrl"))
taskmgr.add(tc_task)
sensor.set_on_changed("temp", ChangedFloat(tc.set_theta_ist, prec=2).set)
# Stirrer
stirrer = StirrerFactory.create(config['Controller']['stirrer_name'], config['Stirrer'])
stirrer_task = StirrerTask(stirrer, DT_CTRL, dispatcher.msgio_get("Stirrer"))
stirrer = StirrerFactory.create(config['Controller']['stirrer_name'], DT, config['Stirrer'])
stirrer_task = StirrerTask(stirrer, DT_TASK, dispatcher.msgio_get("Stirrer"))
taskmgr.add(stirrer_task)
# Tracer
taskmgr.add(TracerTask(sensor, heater, tc, DT_CTRL, dispatcher.msgio_get("Tracer")))
taskmgr.add(TracerTask(sensor, heater, tc, DT_TASK, dispatcher.msgio_get("Tracer")))
# Message dispatcher
h_dispatcher = taskmgr.start()