- hendi: added open() with context manager

- heaterSim: use 100 Watt steps
This commit is contained in:
jens
2020-12-17 14:08:05 +01:00
parent c290f75fce
commit 5f1a8a94e0
2 changed files with 19 additions and 24 deletions
+2 -1
View File
@@ -21,7 +21,8 @@ class HeaterSim(AHeater):
return self.is_active
def process(self):
self.power_eff = self.power_set if self.is_active else 0
power_set = 100*round(self.power_set/100, 0)
self.power_eff = power_set if self.is_active else 0
def set_power(self, power):
self.power_set = max(self.get_power_min(), min(self.get_power_max(), power))
+17 -23
View File
@@ -4,17 +4,10 @@ import time
import serial
import sys
import numpy as np
import logging
from contextlib import contextmanager
class HendiCtrl:
def name(self):
return "HendiCtrl"
def log(self, s):
d = {'user': self.name()}
logging.info ("{}".format(s), extra=d)
def __init__(self, port, baudrate):
self.ser = serial.Serial(port, baudrate)
try:
@@ -40,7 +33,14 @@ class HendiCtrl:
self.poly_d2w = np.polyfit(digits, powers, 5)
self.sw_id = self.getSoftwareIdentifier()
self.sw_ver = self.getSoftwareVersion()
self.log("Create {}, Version {}".format(self.sw_id, self.sw_ver))
@contextmanager
def remote_open(self):
try:
self.remoteEnable(True)
yield None
finally:
self.remoteEnable(False)
def toDigits(self, power_watts):
return np.polyval(self.poly_w2d, float(power_watts))
@@ -176,10 +176,6 @@ 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,18 +195,16 @@ if __name__ == '__main__':
print("power", power)
print("Test Hendi")
hendi.remoteEnable(True)
hendi.setSwitch(1)
time.sleep(1.0)
for pwr in range(500, 3600, 100):
hendi.setPowerWatts(pwr)
pw = hendi.getPowerWatts()
print("power_w", pw)
with hendi.remote_open():
hendi.setSwitch(1)
time.sleep(1.0)
for pwr in range(500, 3600, 100):
hendi.setPowerWatts(pwr)
pw = hendi.getPowerWatts()
print("power_w", pw)
time.sleep(1.0)
hendi.setSwitch(0)
hendi.remoteEnable(False)
hendi.setSwitch(0)
if 0:
hendi.remoteEnable(True)