diff --git a/Control/brewpi/brewpi.py b/Control/brewpi/brewpi.py index 0922605..a7d958c 100755 --- a/Control/brewpi/brewpi.py +++ b/Control/brewpi/brewpi.py @@ -95,19 +95,17 @@ if __name__ == '__main__': signal.signal(signal.SIGHUP, handler) fp = open(config) - configJson = json.load(fp) + config = json.load(fp) - plant_class = globals()[configJson["Controller"]['plant_name']] - plant = plant_class(configJson["Plant"]) - ruehrer_class = globals()[configJson["Controller"]['stirrer_name']] - ruehrer = ruehrer_class(configJson["Stirrer"]) - - ablauf = Controller(configJson["Controller"], plant, ruehrer) + plant_class = globals()[config["Controller"]['plant_name']] + plant = plant_class(config["Plant"]) + ruehrer_class = globals()[config["Controller"]['stirrer_name']] + ruehrer = ruehrer_class(config["Stirrer"]) fp = open(args.receipe) - recipeJson = json.load(fp) + recipe = json.load(fp) - ablauf.setRecipe(recipeJson) + ablauf = Controller(config["Controller"], plant, ruehrer, recipe) ablauf.wait_finished() results_plot(ablauf) diff --git a/Control/brewpi/controller.py b/Control/brewpi/controller.py index da303f4..aa31cee 100644 --- a/Control/brewpi/controller.py +++ b/Control/brewpi/controller.py @@ -15,7 +15,7 @@ commands = Enum('controllerCommands', 'RUN PAUSE ABORT STIRR_OFF STIRR_ON') class Controller(TimerListener): - def __init__(self, params, plant, stirrer): + def __init__(self, params, plant, stirrer, recipe): print(json.dumps({'Controller': params}, indent=4, sort_keys=True)) self.sim_warp_factor = params['sim_warp_factor'] self.ovenState = ovenStates.IDLE @@ -41,7 +41,9 @@ class Controller(TimerListener): self.report_interval = 1.0 self.thread = None self.receipe_sema = threading.Semaphore(0) - self.receipe = None + self.receipe = recipe + self.rasten = recipe['Rasten'] + self.rasten.append(None) self.theta_sm = Smoother(1.0) self.heatrate_sm = Smoother(0.01) self.theta_err_sm = Smoother(1.0) @@ -69,6 +71,14 @@ class Controller(TimerListener): self.thread.start() self.fp_log = None + # Stirrer + self.stirrSpeedHeat = recipe['stirrSpeedHeat'] + self.stirrSpeedRast = recipe['stirrSpeedRast'] + self.stirrDutyRast = recipe['stirrDutyRast'] + self.stirrCycleTime = recipe['stirrCycleTime'] + + print(json.dumps({recipe['Name'] : recipe}, indent=4, sort_keys=True)) + def command(self, cmd): self.queue.put_nowait(cmd) @@ -143,19 +153,6 @@ class Controller(TimerListener): if self.rastTimer.isActive: self.log("Rast remaining : {:0.1f} min.".format(self.rastTimer.elapseDuration / 60)) - - def setRecipe(self, recipe): - print(json.dumps({recipe['Name'] : recipe}, indent=4, sort_keys=True)) - self.receipe = recipe - self.rasten = recipe['Rasten'] - self.rasten.append(None) - - # Stirrer - self.stirrSpeedHeat = recipe['stirrSpeedHeat'] - self.stirrSpeedRast = recipe['stirrSpeedRast'] - self.stirrDutyRast = recipe['stirrDutyRast'] - self.stirrCycleTime = recipe['stirrCycleTime'] - def wait_finished(self): self.receipe_sema.acquire() pass