- hendi: added open() with context manager
- heaterSim: use 100 Watt steps
This commit is contained in:
@@ -21,7 +21,8 @@ class HeaterSim(AHeater):
|
|||||||
return self.is_active
|
return self.is_active
|
||||||
|
|
||||||
def process(self):
|
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):
|
def set_power(self, power):
|
||||||
self.power_set = max(self.get_power_min(), min(self.get_power_max(), power))
|
self.power_set = max(self.get_power_min(), min(self.get_power_max(), power))
|
||||||
|
|||||||
@@ -4,17 +4,10 @@ import time
|
|||||||
import serial
|
import serial
|
||||||
import sys
|
import sys
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import logging
|
from contextlib import contextmanager
|
||||||
|
|
||||||
|
|
||||||
class HendiCtrl:
|
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):
|
def __init__(self, port, baudrate):
|
||||||
self.ser = serial.Serial(port, baudrate)
|
self.ser = serial.Serial(port, baudrate)
|
||||||
try:
|
try:
|
||||||
@@ -40,7 +33,14 @@ class HendiCtrl:
|
|||||||
self.poly_d2w = np.polyfit(digits, powers, 5)
|
self.poly_d2w = np.polyfit(digits, powers, 5)
|
||||||
self.sw_id = self.getSoftwareIdentifier()
|
self.sw_id = self.getSoftwareIdentifier()
|
||||||
self.sw_ver = self.getSoftwareVersion()
|
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):
|
def toDigits(self, power_watts):
|
||||||
return np.polyval(self.poly_w2d, float(power_watts))
|
return np.polyval(self.poly_w2d, float(power_watts))
|
||||||
@@ -176,10 +176,6 @@ class HendiCtrl:
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
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 = HendiCtrl('/dev/ttyUSB0', 115200)
|
||||||
|
|
||||||
# hendi.firmware_update("HendiCtrl.srec")
|
# hendi.firmware_update("HendiCtrl.srec")
|
||||||
@@ -199,18 +195,16 @@ if __name__ == '__main__':
|
|||||||
print("power", power)
|
print("power", power)
|
||||||
|
|
||||||
print("Test Hendi")
|
print("Test Hendi")
|
||||||
hendi.remoteEnable(True)
|
with hendi.remote_open():
|
||||||
hendi.setSwitch(1)
|
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)
|
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.setSwitch(0)
|
|
||||||
hendi.remoteEnable(False)
|
|
||||||
|
|
||||||
if 0:
|
if 0:
|
||||||
hendi.remoteEnable(True)
|
hendi.remoteEnable(True)
|
||||||
|
|||||||
Reference in New Issue
Block a user