43 lines
1.0 KiB
Python
43 lines
1.0 KiB
Python
from components.aheater import AHeater
|
|
from hendiCtrl import HendiCtrl
|
|
|
|
|
|
class HeaterHendi(AHeater):
|
|
def __init__(self, params):
|
|
AHeater.__init__(self)
|
|
self.power_set = self.get_power_min()
|
|
self.is_active = False
|
|
self.power_eff = 0
|
|
self.hendi = HendiCtrl(params['port'], params['speed'])
|
|
|
|
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 = self.power_set if self.is_active else 0
|
|
self.hendi.setPowerWatts(power)
|
|
self.power_eff = self.hendi.getPowerWatts()
|
|
|
|
def set_power(self, power):
|
|
self.power_set = max(self.get_power_min(), min(self.get_power_max(), power))
|
|
|
|
def get_power(self):
|
|
result = self.hendi.getPowerWatts()
|
|
return result
|