- refactored

git-svn-id: http://moon:8086/svn/projects/HendiControl@380 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
2020-04-20 15:50:25 +00:00
parent ec85ab3c73
commit 16b77f0a17
9 changed files with 38 additions and 25 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ class AStirrer(abc.ABC):
self.isOn = 1
def log(self, s):
d = {'user': self.name()}
d = {'user': "Stirrer" + "::" + self.name()}
logging.info ("{}".format(s), extra=d)
def process(self):
+1 -1
View File
@@ -4,7 +4,7 @@ import logging
class ATemperatureSensor(abc.ABC):
def log(self, s):
d = {'user': self.name()}
d = {'user': "TemperatureSensor" + "::" + self.name()}
logging.info ("{}".format(s), extra=d)
@abc.abstractmethod
+8 -3
View File
@@ -43,6 +43,7 @@ class HendiCtrl():
self.sw_ver = self.getSoftwareVersion()
self.log("Create {}, Version {}".format(self.sw_id, self.sw_ver))
def toDigits(self, power_watts):
return np.polyval(self.poly_w2d, float(power_watts))
@@ -99,7 +100,7 @@ class HendiCtrl():
def __read(self):
# Read line echo
self.ser.readline()
echo = self.ser.readline()
# Read answer line
answer = self.ser.readline().decode('utf-8').replace('\r', '').replace('\n', '')
@@ -116,7 +117,7 @@ class HendiCtrl():
if "OK" not in rsp[0]:
raise Exception(rsp[1])
return rsp[1] == '1'
return rsp[1]
def getCapabilties(self):
return self.caps
@@ -178,6 +179,10 @@ 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,7 +204,7 @@ if __name__ == '__main__':
print ("Test Hendi")
hendi.remoteEnable(True)
hendi.setSwitch(1)
time.sleep(10.0)
time.sleep(1.0)
for pwr in range(500, 3600, 100):
hendi.setPowerWatts(pwr)
pw = hendi.getPowerWatts()
+2 -2
View File
@@ -3,12 +3,12 @@ import json
from aplant import APlant
from math import sqrt
from hendiCtrl import HendiCtrl
from max31865 import Max31865
from tempSensor_max31865 import TempSensor_max31865 as TempSensor
class Plant(APlant):
def __init__(self, params):
self.heater = HendiCtrl('/dev/ttyUSB0', 115200)
self.tempsensor = Max31865()
self.tempsensor = TempSensor()
self.P = 0
self.isOn = False
self.cycleTime = 30
+2 -2
View File
@@ -6,7 +6,7 @@ import serial
class Stirrer_pololu1376(AStirrer):
def name(self):
return "Stirrer_pololu1376"
return "Pololu1376"
def __init__(self, params):
super(Stirrer_pololu1376, self).__init__(params["dt"])
@@ -24,7 +24,7 @@ class Stirrer_pololu1376(AStirrer):
self.ser_send('V')
self.ser_recv()
self.log("Create Pololu1376")
self.log("Created")
def ser_send(self, cmd):
self.ser.write((cmd + '\r\n').encode())
+2 -1
View File
@@ -3,11 +3,12 @@ import time
class Stirrer_sim(AStirrer):
def name(self):
return "Stirrer_sim"
return "FakeStirrer"
def __init__(self, params):
super(Stirrer_sim, self).__init__(params['dt'])
self.isMasterOn = 0
self.log("Created")
def __del__(self):
self.deactivate()
+8 -4
View File
@@ -5,9 +5,10 @@ import numpy as np
from matplotlib.pyplot import figure, clf, plot, xlabel, ylabel, xlim, ylim, title, grid, axes, show, subplot
import signal
import threading
import logging
#from tempSensorSim import TempSensorSim
from max31865 import Max31865
from tempSensorSim import TempSensorSim as TempSensor
#from tempSensor_max31865 import TempSensor_max31865 as TempSensor
class TempLogger():
def __init__(self, sensor, filename="temp.log"):
@@ -81,11 +82,14 @@ if __name__ == '__main__':
if signum == signal.SIGHUP:
tempPlot(logger.result())
logging.getLogger().setLevel(logging.INFO)
FORMAT = '%(asctime)-15s %(user)-8s %(message)s'
logging.basicConfig(format=FORMAT)
signal.signal(signal.SIGINT, handler)
signal.signal(signal.SIGHUP, handler)
sensor = Max31865()
# sensor = TempSensorSim("FakeTemp")
sensor = TempSensor()
logger = TempLogger(sensor)
logger.start(1.0, 30*60)
logger.wait()
+5 -2
View File
@@ -3,10 +3,13 @@ import math
class TempSensorSim(ATemperatureSensor):
def __init__(self, name):
super(TempSensorSim, self).__init__(name)
def name(self):
return "FakeTemp"
def __init__(self):
self.count = 0
self.freq = 0.2
self.log("Created")
def temperature(self):
self.count += 1
+9 -9
View File
@@ -4,9 +4,9 @@ import spidev
from atemperatureSensor import ATemperatureSensor
class Max31865(ATemperatureSensor):
class TempSensor_max31865(ATemperatureSensor):
def name(self):
return "TemperatureSensor"
return "Max31865"
def __init__(self):
# Open SPI bus
@@ -18,7 +18,7 @@ class Max31865(ATemperatureSensor):
self.write_reg(0x00, 0xA3)
time.sleep(0.100)
self.digits = 0
self.log("Create Max31865")
self.log("Created")
def read_reg(self, addr):
reg = self.spi.xfer([addr, 0xFF])
@@ -45,8 +45,8 @@ class Max31865(ATemperatureSensor):
digits = self.read_digits()
except:
return None
R = Max31865.calc_R(430, digits)
T = Max31865.vanDusen_temp(R) + self.temp_correction
R = TempSensor_max31865.calc_R(430, digits)
T = TempSensor_max31865.vanDusen_temp(R) + self.temp_correction
# print("R={:.3f} Ohm, T={:.2f} degC".format(R, T))
return T
@@ -80,7 +80,7 @@ class Max31865(ATemperatureSensor):
@staticmethod
def vanDusen_temp(Rmeas):
RLut, TLut = Max31865.vanDusenLut(100, -150, +500, 1.0)
RLut, TLut = TempSensor_max31865.vanDusenLut(100, -150, +500, 1.0)
# Find candidate
i = 0
@@ -108,11 +108,11 @@ class Max31865(ATemperatureSensor):
if __name__ == '__main__':
max31865 = Max31865()
TempSensor_max31865 = TempSensor_max31865()
for i in range (0, 8):
print("Reg[0x{}]: 0x{:02X}".format(i, max31865.read_reg(i)))
print("Reg[0x{}]: 0x{:02X}".format(i, TempSensor_max31865.read_reg(i)))
max31865.temperature()
TempSensor_max31865.temperature()
print("End of program")