#!/usr/bin/python3 import signal import json from controller import Controller from mass import Mass from stirrer import Stirrer from pololu1376 import Pololu1376 from matplotlib.pyplot import figure, clf, plot, xlabel, ylabel, xlim, ylim, title, grid, axes, show, subplot def results_plot(self): figure(1) subplot(4, 1, 1) plot(self.time_v, self.theta_k_v, 'r-', linewidth=1) title('Temperature') grid(True) ylabel('°C') subplot(4, 1, 2) plot(self.time_v, self.power_v, 'b-', linewidth=1) title('Power') grid(True) ylabel('W') subplot(4, 1, 3) plot(self.time_v, self.error_v, 'b-', linewidth=1) title('Error') grid(True) ylabel('°C') subplot(4, 1, 4) plot(self.time_v, self.heatrate_k_v, 'r-', linewidth=1) title('Heatrate') grid(True) ylabel('°C/min') xlabel('t/min') show() if __name__ == '__main__': def handler(signum, frame): print('Signal handler called with signal', signum) if signum == signal.SIGINT: ablauf.stop() if signum == signal.SIGSTOP: ablauf.pause() if signum == signal.SIGCONT: ablauf.cont() if signum == signal.SIGHUP: ablauf.restart() # Set the signal handler and a 5-second alarm signal.signal(signal.SIGABRT, handler) signal.signal(signal.SIGINT, handler) signal.signal(signal.SIGCONT, handler) signal.signal(signal.SIGHUP, handler) fp = open("brewpi.json") configJson = json.load(fp) plant_class = globals()[configJson["Controller"]['plant_name']] plant = plant_class(configJson["WaterSim"]) ruehrer_class = globals()[configJson["Controller"]['stirrer_name']] ruehrer = ruehrer_class(configJson["Stirrer"]) ablauf = Controller(configJson["Controller"], plant, ruehrer) fp = open("Rezept-001.json") recipeJson = json.load(fp) ablauf.start(recipeJson) ablauf.wait_finished() results_plot(ablauf) print ("End of program.")