- refactored
git-svn-id: http://moon:8086/svn/projects/HendiControl@380 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user