From fa93a3911e19c912f5a588c745cb40d5de50e7f3 Mon Sep 17 00:00:00 2001 From: jens Date: Wed, 16 Dec 2020 17:10:46 +0100 Subject: [PATCH] - refactored --- brewpi.py | 6 ++-- components/actor/StirrerFactory.py | 8 ++--- components/actor/heater_hendi.py | 4 +-- components/actor/heater_sim.py | 4 +-- ...rer_pololu1376.py => stirrerpololu1376.py} | 36 +++++++++---------- .../actor/{stirrer_sim.py => stirrersim.py} | 30 ++++++++-------- components/aheater.py | 4 +-- components/aplant.py | 6 ++-- components/astirrer.py | 14 +++++--- components/pid/temp_controller.py | 6 ++-- components/plant/pot.py | 6 ++-- 11 files changed, 64 insertions(+), 60 deletions(-) rename components/actor/{stirrer_pololu1376.py => stirrerpololu1376.py} (62%) rename components/actor/{stirrer_sim.py => stirrersim.py} (58%) diff --git a/brewpi.py b/brewpi.py index 2685994..9232452 100644 --- a/brewpi.py +++ b/brewpi.py @@ -93,10 +93,10 @@ class HeaterTask(ATask): while True: if self.power_soll < self.heater.get_power_min(): - self.heater.setPower(self.heater.get_power_min()) + self.heater.set_power(self.heater.get_power_min()) self.heater.activate(False) else: - self.heater.setPower(self.power_soll) + self.heater.set_power(self.power_soll) self.heater.activate(True) on_count = pulse_period_count @@ -262,7 +262,7 @@ if __name__ == '__main__': # Heater heater = HeaterFactory.create("sim") - heater.set_on_changed("power_eff", ChangedFloat(pot.setPower, prec=0).set) + heater.set_on_changed("power_eff", ChangedFloat(pot.set_power, prec=0).set) heater_task = HeaterTask(heater, DT_CTRL, dispatcher.msgio_get("Heater")) taskmgr.add(heater_task) diff --git a/components/actor/StirrerFactory.py b/components/actor/StirrerFactory.py index 75ea564..55a1df5 100644 --- a/components/actor/StirrerFactory.py +++ b/components/actor/StirrerFactory.py @@ -4,8 +4,8 @@ class StirrerFactory: @staticmethod def create(name, dt): if "sim" in name: - from components.actor.stirrer_sim import Stirrer_sim - return Stirrer_sim(dt) + from components.actor.stirrersim import StirrerSim + return StirrerSim(dt) elif "1376" in name: - from components.actor.stirrer_pololu1376 import Stirrer_pololu1376 - return Stirrer_pololu1376(dt, '/dev/ttyUSB0', 115200) + from components.actor.stirrerpololu1376 import StirrerPololu1376 + return StirrerPololu1376(dt, '/dev/ttyUSB0', 115200) diff --git a/components/actor/heater_hendi.py b/components/actor/heater_hendi.py index 8f08796..24db0eb 100644 --- a/components/actor/heater_hendi.py +++ b/components/actor/heater_hendi.py @@ -33,9 +33,9 @@ class HeaterHendi(AHeater): power_eff = self.power_set if self.is_active else 0 self.hendi.setPowerWatts(power_eff) - def setPower(self, power): + def set_power(self, power): self.power_set = max(self.get_power_min(), min(self.get_power_max(), power)) - def getPower(self): + def get_power(self): result = self.hendi.getPowerWatts() return result diff --git a/components/actor/heater_sim.py b/components/actor/heater_sim.py index a96a953..47f3845 100644 --- a/components/actor/heater_sim.py +++ b/components/actor/heater_sim.py @@ -23,8 +23,8 @@ class HeaterSim(AHeater): def process(self): self.power_eff = self.power_set if self.is_active else 0 - def setPower(self, power): + def set_power(self, power): self.power_set = max(self.get_power_min(), min(self.get_power_max(), power)) - def getPower(self): + def get_power(self): return self.power_eff diff --git a/components/actor/stirrer_pololu1376.py b/components/actor/stirrerpololu1376.py similarity index 62% rename from components/actor/stirrer_pololu1376.py rename to components/actor/stirrerpololu1376.py index b8b7fcd..5ff4d26 100644 --- a/components/actor/stirrer_pololu1376.py +++ b/components/actor/stirrerpololu1376.py @@ -3,12 +3,12 @@ import time import serial -class Stirrer_pololu1376(AStirrer): +class StirrerPololu1376(AStirrer): def name(self): return "Pololu1376" def __init__(self, dt, port, baudrate): - super(Stirrer_pololu1376, self).__init__(dt) + super(StirrerPololu1376, self).__init__(dt) self.isMasterOn = 0 self.ser_speed = baudrate @@ -17,7 +17,7 @@ class Stirrer_pololu1376(AStirrer): self.ser.set_output_flow_control(False) try: self.ser.open() - except: + except serial.SerialException: self.ser.close() self.ser.open() @@ -28,10 +28,10 @@ class Stirrer_pololu1376(AStirrer): self.ser.write((cmd + '\r\n').encode()) def ser_recv(self): - s = self.ser.readline().decode("utf-8").replace("\n", '').replace("\r", '') - return s + data = self.ser.readline().decode("utf-8").replace("\n", '').replace("\r", '') + return data - def getSpeed(self): + def get_speed(self): if self.isOn and self.is_activated(): return self.speed return 0 @@ -40,33 +40,33 @@ class Stirrer_pololu1376(AStirrer): self.ser_send("go") print("on_activate {}".format(enable)) - def onSetSpeed(self, speed): + def on_set_speed(self, speed): self.ser_send("F" + str(speed) + "%") print("Set speed to {} %".format(speed)) if __name__ == '__main__': - s = Stirrer_pololu1376(dt=1.0, port="/dev/ttyACM0", baudrate=115200) + s = StirrerPololu1376(dt=1.0, port="/dev/ttyACM0", baudrate=115200) s.activate(True) - print ("Set some speeds") - s.setSpeed(50) + print("Set some speeds") + s.set_speed(50) time.sleep(2) - s.setSpeed(20) + s.set_speed(20) time.sleep(2) - s.setSpeed(50) + s.set_speed(50) time.sleep(2) - print ("Pulsed operation, duty cycle = 50%") - s.setDutyCycle(0.5) - s.setCycleTime(10) + print("Pulsed operation, duty cycle = 50%") + s.set_duty_cycle(0.5) + s.set_cycle_time(10) for i in range(1, 30): s.process() time.sleep(1) - print ("Pulsed operation, duty cycle = 20%") - s.setDutyCycle(0.2) - s.setCycleTime(10) + print("Pulsed operation, duty cycle = 20%") + s.set_duty_cycle(0.2) + s.set_cycle_time(10) for i in range(1, 30): s.process() time.sleep(1) diff --git a/components/actor/stirrer_sim.py b/components/actor/stirrersim.py similarity index 58% rename from components/actor/stirrer_sim.py rename to components/actor/stirrersim.py index bb04a96..835671d 100644 --- a/components/actor/stirrer_sim.py +++ b/components/actor/stirrersim.py @@ -2,12 +2,12 @@ from components import AStirrer import time -class Stirrer_sim(AStirrer): +class StirrerSim(AStirrer): def name(self): return "FakeStirrer" def __init__(self, dt): - super(Stirrer_sim, self).__init__(dt) + super(StirrerSim, self).__init__(dt) def __del__(self): self.activate(False) @@ -15,37 +15,37 @@ class Stirrer_sim(AStirrer): def on_activate(self, enable): print("on_activate {}".format(enable)) - def getSpeed(self): + def get_speed(self): if self.isOn and self.is_activated(): return self.speed return 0 - def onSetSpeed(self, speed): + def on_set_speed(self, speed): print("Set speed to {} %".format(speed)) if __name__ == '__main__': - s = Stirrer_sim(1.0) + s = StirrerSim(1.0) s.activate(True) - print ("Set some speeds") - s.setSpeed(50) + print("Set some speeds") + s.set_speed(50) time.sleep(2) - s.setSpeed(100) + s.set_speed(100) time.sleep(2) - s.setSpeed(50) + s.set_speed(50) time.sleep(2) - print ("Pulsed operation, duty cycle = 50%") - s.setDutyCycle(0.5) - s.setCycleTime(10) + print("Pulsed operation, duty cycle = 50%") + s.set_duty_cycle(0.5) + s.set_cycle_time(10) for i in range(1, 30): s.process() time.sleep(1) - print ("Pulsed operation, duty cycle = 20%") - s.setDutyCycle(0.2) - s.setCycleTime(10) + print("Pulsed operation, duty cycle = 20%") + s.set_duty_cycle(0.2) + s.set_cycle_time(10) for i in range(1, 30): s.process() time.sleep(1) diff --git a/components/aheater.py b/components/aheater.py index 4c637d9..c8fefe4 100644 --- a/components/aheater.py +++ b/components/aheater.py @@ -27,9 +27,9 @@ class AHeater(AttributeChange): pass @abc.abstractmethod - def setPower(self, power): + def set_power(self, power): pass @abc.abstractmethod - def getPower(self): + def get_power(self): return None diff --git a/components/aplant.py b/components/aplant.py index 21c62f8..6b13438 100644 --- a/components/aplant.py +++ b/components/aplant.py @@ -15,13 +15,13 @@ class APlant(AttributeChange): pass @abc.abstractmethod - def setPower(self, power): + def set_power(self, power): pass @abc.abstractmethod - def getPower(self): + def get_power(self): return None @abc.abstractmethod - def getTemperature(self): + def get_temperature(self): return None diff --git a/components/astirrer.py b/components/astirrer.py index 6bb6a7e..203fca3 100644 --- a/components/astirrer.py +++ b/components/astirrer.py @@ -34,21 +34,25 @@ class AStirrer: self.isOn = isOn - def setSpeed(self, speed): + def set_speed(self, speed): self.speed = speed if self.isOn or self.dutyCycle == 1: - self.onSetSpeed(speed) + self.on_set_speed(speed) - def setCycleTime(self, time): + def set_cycle_time(self, time): self.cycleTime = time - def setDutyCycle(self, dutyCycle): + def set_duty_cycle(self, dutyCycle): self.dutyCycle = dutyCycle @abc.abstractmethod - def getSpeed(self): + def get_speed(self): return None + @abc.abstractmethod + def on_set_speed(self, speed): + pass + @abc.abstractmethod def on_activate(self, enable): pass diff --git a/components/pid/temp_controller.py b/components/pid/temp_controller.py index 001553f..81a6161 100644 --- a/components/pid/temp_controller.py +++ b/components/pid/temp_controller.py @@ -167,13 +167,13 @@ if __name__ == '__main__': hold_counter -= 1 ctrl.process() plant.process() - temp_ist = plant.getTemperature() + 0.0*np.random.randn() + temp_ist = plant.get_temperature() + 0.0 * np.random.randn() ctrl.set_theta_ist(temp_ist) y = 3500*ctrl.get_power() power = max(0, 250+y) - plant.setPower(power) - fb = plant.getPower() + plant.set_power(power) + fb = plant.get_power() if abs(temp_ist - temp_soll) < 0.1: hold = True diff --git a/components/plant/pot.py b/components/plant/pot.py index 17df07c..18c740e 100644 --- a/components/plant/pot.py +++ b/components/plant/pot.py @@ -35,11 +35,11 @@ class Pot(APlant): leak = 1/self.M * self.L * (self.theta_amb - self.temp)/self.theta_amb self.temp += (self.power_actual / (self.M * self.C) + leak) * self.dt - def setPower(self, power): + def set_power(self, power): self.power_set = power - def getPower(self): + def get_power(self): return round(self.power_actual, 1) - def getTemperature(self): + def get_temperature(self): return self.temp