Files
HendiControlFirmware/Control/brewpi/brewpi.py
T
jens ce0cb93c14 - added pause, continue, restart of receipe
- added signal handler for controlling the controller

git-svn-id: http://moon:8086/svn/projects/HendiControl@148 fda53097-d464-4ada-af97-ba876c37ca34
2019-03-27 21:51:22 +00:00

79 lines
1.8 KiB
Python
Executable File

#!/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_v, 'b-', linewidth=1)
title('Temperature')
grid(True)
ylabel('°C')
subplot(4, 1, 2)
plot(self.time_v, self.power_v, 'r-', 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_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.SIGABRT:
ablauf.stop()
if signum == signal.SIGINT:
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.")