from components.aheater import AHeater from hendiCtrl import HendiCtrl class HeaterHendi(AHeater): def __init__(self, port, baudrate): AHeater.__init__(self) self.power_set = self.get_power_min() self.is_active = False self.power_eff = 0 self.hendi = HendiCtrl(port, baudrate) def get_power_min(self): caps = self.hendi.getCapabilties() return caps['pwr_watts_min'] def get_power_max(self): caps = self.hendi.getCapabilties() return caps['pwr_watts_max'] def activate(self, enable): self.is_active = enable if enable: self.hendi.setSwitch(1) else: self.hendi.setSwitch(0) def is_activated(self): s = self.hendi.getSwitch() return '1' in s def process(self): power_eff = self.power_set if self.is_active else 0 self.hendi.setPowerWatts(power_eff) def setPower(self, power): self.power_set = max(self.get_power_min(), min(self.get_power_max(), power)) def getPower(self): result = self.hendi.getPowerWatts() return result