From 16b77f0a170b8fc7c1663f3bd6c77525a7819750 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Mon, 20 Apr 2020 15:50:25 +0000 Subject: [PATCH] - refactored git-svn-id: http://moon:8086/svn/projects/HendiControl@380 fda53097-d464-4ada-af97-ba876c37ca34 --- Control/brewpi/astirrer.py | 2 +- Control/brewpi/atemperatureSensor.py | 2 +- Control/brewpi/hendiCtrl.py | 11 ++++++++--- Control/brewpi/plant.py | 4 ++-- Control/brewpi/stirrer_pololu1376.py | 4 ++-- Control/brewpi/stirrer_sim.py | 3 ++- Control/brewpi/tempLogger.py | 12 ++++++++---- Control/brewpi/tempSensorSim.py | 7 +++++-- Control/brewpi/tempSensor_max31865.py | 18 +++++++++--------- 9 files changed, 38 insertions(+), 25 deletions(-) diff --git a/Control/brewpi/astirrer.py b/Control/brewpi/astirrer.py index 50884be..6203956 100644 --- a/Control/brewpi/astirrer.py +++ b/Control/brewpi/astirrer.py @@ -17,7 +17,7 @@ class AStirrer(abc.ABC): self.isOn = 1 def log(self, s): - d = {'user': self.name()} + d = {'user': "Stirrer" + "::" + self.name()} logging.info ("{}".format(s), extra=d) def process(self): diff --git a/Control/brewpi/atemperatureSensor.py b/Control/brewpi/atemperatureSensor.py index cc4c8a7..fcb0991 100644 --- a/Control/brewpi/atemperatureSensor.py +++ b/Control/brewpi/atemperatureSensor.py @@ -4,7 +4,7 @@ import logging class ATemperatureSensor(abc.ABC): def log(self, s): - d = {'user': self.name()} + d = {'user': "TemperatureSensor" + "::" + self.name()} logging.info ("{}".format(s), extra=d) @abc.abstractmethod diff --git a/Control/brewpi/hendiCtrl.py b/Control/brewpi/hendiCtrl.py index 5e8cd85..cc0d37f 100644 --- a/Control/brewpi/hendiCtrl.py +++ b/Control/brewpi/hendiCtrl.py @@ -43,6 +43,7 @@ class HendiCtrl(): self.sw_ver = self.getSoftwareVersion() self.log("Create {}, Version {}".format(self.sw_id, self.sw_ver)) + def toDigits(self, power_watts): return np.polyval(self.poly_w2d, float(power_watts)) @@ -99,7 +100,7 @@ class HendiCtrl(): def __read(self): # Read line echo - self.ser.readline() + echo = self.ser.readline() # Read answer line answer = self.ser.readline().decode('utf-8').replace('\r', '').replace('\n', '') @@ -116,7 +117,7 @@ class HendiCtrl(): if "OK" not in rsp[0]: raise Exception(rsp[1]) - return rsp[1] == '1' + return rsp[1] def getCapabilties(self): return self.caps @@ -178,6 +179,10 @@ class HendiCtrl(): if __name__ == '__main__': + logging.getLogger().setLevel(logging.INFO) + FORMAT = '%(asctime)-15s %(user)-8s %(message)s' + logging.basicConfig(format=FORMAT) + hendi = HendiCtrl('/dev/ttyUSB0', 115200) # hendi.firmware_update("HendiCtrl.srec") @@ -199,7 +204,7 @@ if __name__ == '__main__': print ("Test Hendi") hendi.remoteEnable(True) hendi.setSwitch(1) - time.sleep(10.0) + time.sleep(1.0) for pwr in range(500, 3600, 100): hendi.setPowerWatts(pwr) pw = hendi.getPowerWatts() diff --git a/Control/brewpi/plant.py b/Control/brewpi/plant.py index 06152cc..35c3c4f 100644 --- a/Control/brewpi/plant.py +++ b/Control/brewpi/plant.py @@ -3,12 +3,12 @@ import json from aplant import APlant from math import sqrt from hendiCtrl import HendiCtrl -from max31865 import Max31865 +from tempSensor_max31865 import TempSensor_max31865 as TempSensor class Plant(APlant): def __init__(self, params): self.heater = HendiCtrl('/dev/ttyUSB0', 115200) - self.tempsensor = Max31865() + self.tempsensor = TempSensor() self.P = 0 self.isOn = False self.cycleTime = 30 diff --git a/Control/brewpi/stirrer_pololu1376.py b/Control/brewpi/stirrer_pololu1376.py index 367a0dc..1040683 100644 --- a/Control/brewpi/stirrer_pololu1376.py +++ b/Control/brewpi/stirrer_pololu1376.py @@ -6,7 +6,7 @@ import serial class Stirrer_pololu1376(AStirrer): def name(self): - return "Stirrer_pololu1376" + return "Pololu1376" def __init__(self, params): super(Stirrer_pololu1376, self).__init__(params["dt"]) @@ -24,7 +24,7 @@ class Stirrer_pololu1376(AStirrer): self.ser_send('V') self.ser_recv() - self.log("Create Pololu1376") + self.log("Created") def ser_send(self, cmd): self.ser.write((cmd + '\r\n').encode()) diff --git a/Control/brewpi/stirrer_sim.py b/Control/brewpi/stirrer_sim.py index 08cb59e..4f4b2e7 100644 --- a/Control/brewpi/stirrer_sim.py +++ b/Control/brewpi/stirrer_sim.py @@ -3,11 +3,12 @@ import time class Stirrer_sim(AStirrer): def name(self): - return "Stirrer_sim" + return "FakeStirrer" def __init__(self, params): super(Stirrer_sim, self).__init__(params['dt']) self.isMasterOn = 0 + self.log("Created") def __del__(self): self.deactivate() diff --git a/Control/brewpi/tempLogger.py b/Control/brewpi/tempLogger.py index df3c38a..c0a4811 100644 --- a/Control/brewpi/tempLogger.py +++ b/Control/brewpi/tempLogger.py @@ -5,9 +5,10 @@ import numpy as np from matplotlib.pyplot import figure, clf, plot, xlabel, ylabel, xlim, ylim, title, grid, axes, show, subplot import signal import threading +import logging -#from tempSensorSim import TempSensorSim -from max31865 import Max31865 +from tempSensorSim import TempSensorSim as TempSensor +#from tempSensor_max31865 import TempSensor_max31865 as TempSensor class TempLogger(): def __init__(self, sensor, filename="temp.log"): @@ -81,11 +82,14 @@ if __name__ == '__main__': if signum == signal.SIGHUP: tempPlot(logger.result()) + logging.getLogger().setLevel(logging.INFO) + FORMAT = '%(asctime)-15s %(user)-8s %(message)s' + logging.basicConfig(format=FORMAT) + signal.signal(signal.SIGINT, handler) signal.signal(signal.SIGHUP, handler) - sensor = Max31865() -# sensor = TempSensorSim("FakeTemp") + sensor = TempSensor() logger = TempLogger(sensor) logger.start(1.0, 30*60) logger.wait() diff --git a/Control/brewpi/tempSensorSim.py b/Control/brewpi/tempSensorSim.py index f6964d5..2e6b62e 100644 --- a/Control/brewpi/tempSensorSim.py +++ b/Control/brewpi/tempSensorSim.py @@ -3,10 +3,13 @@ import math class TempSensorSim(ATemperatureSensor): - def __init__(self, name): - super(TempSensorSim, self).__init__(name) + def name(self): + return "FakeTemp" + + def __init__(self): self.count = 0 self.freq = 0.2 + self.log("Created") def temperature(self): self.count += 1 diff --git a/Control/brewpi/tempSensor_max31865.py b/Control/brewpi/tempSensor_max31865.py index 97097c0..cda61e1 100755 --- a/Control/brewpi/tempSensor_max31865.py +++ b/Control/brewpi/tempSensor_max31865.py @@ -4,9 +4,9 @@ import spidev from atemperatureSensor import ATemperatureSensor -class Max31865(ATemperatureSensor): +class TempSensor_max31865(ATemperatureSensor): def name(self): - return "TemperatureSensor" + return "Max31865" def __init__(self): # Open SPI bus @@ -18,7 +18,7 @@ class Max31865(ATemperatureSensor): self.write_reg(0x00, 0xA3) time.sleep(0.100) self.digits = 0 - self.log("Create Max31865") + self.log("Created") def read_reg(self, addr): reg = self.spi.xfer([addr, 0xFF]) @@ -45,8 +45,8 @@ class Max31865(ATemperatureSensor): digits = self.read_digits() except: return None - R = Max31865.calc_R(430, digits) - T = Max31865.vanDusen_temp(R) + self.temp_correction + R = TempSensor_max31865.calc_R(430, digits) + T = TempSensor_max31865.vanDusen_temp(R) + self.temp_correction # print("R={:.3f} Ohm, T={:.2f} degC".format(R, T)) return T @@ -80,7 +80,7 @@ class Max31865(ATemperatureSensor): @staticmethod def vanDusen_temp(Rmeas): - RLut, TLut = Max31865.vanDusenLut(100, -150, +500, 1.0) + RLut, TLut = TempSensor_max31865.vanDusenLut(100, -150, +500, 1.0) # Find candidate i = 0 @@ -108,11 +108,11 @@ class Max31865(ATemperatureSensor): if __name__ == '__main__': - max31865 = Max31865() + TempSensor_max31865 = TempSensor_max31865() for i in range (0, 8): - print("Reg[0x{}]: 0x{:02X}".format(i, max31865.read_reg(i))) + print("Reg[0x{}]: 0x{:02X}".format(i, TempSensor_max31865.read_reg(i))) - max31865.temperature() + TempSensor_max31865.temperature() print("End of program")