diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fd20fdd --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ + +*.pyc diff --git a/coldbox.py b/coldbox.py index 0f9d1f6..793938e 100644 --- a/coldbox.py +++ b/coldbox.py @@ -1,6 +1,5 @@ from paho.mqtt import client as mqtt_client -import time -from time import sleep +from time import sleep, time class Tessie: @@ -96,9 +95,9 @@ class Tessie: @staticmethod def _wait_for_var(var): timeout = 5 - start_time = time.time() + start_time = time() while True: - if time.time() - start_time > timeout: + if time() - start_time > timeout: # timeout reached, exit the loop break for msg in Tessie.found: @@ -188,13 +187,19 @@ class ConfTEC: self._tessie = tessie self.name = " tec " + str(i) + def _single(self, data): + if self.single: + return data + else: + return [float(x) for x in data.split(",")] + def saveToFlash(self): return self._tessie.cmd("SaveVariables", self.name, True) def getPID(self): - return [[float(x) for x in self._tessie.get("PID_kp", self.name).split(",")], - [float(x) for x in self._tessie.get("PID_ki", self.name).split(",")], - [float(x) for x in self._tessie.get("PID_kd", self.name).split(",")]] + return [self._single(self._tessie.get("PID_kp", self.name)), + self._single(self._tessie.get("PID_ki", self.name)), + self._single(self._tessie.get("PID_kd", self.name))] def setPID(self, kp: float, ki: float, kd: float): self._tessie.set("PID_kp", str(kp), self.name) @@ -202,8 +207,8 @@ class ConfTEC: self._tessie.set("PID_kd", str(kd), self.name) def getPIDMinMax(self): - return [[float(x) for x in self._tessie.get("PID_Min", self.name).split(",")], - [float(x) for x in self._tessie.get("PID_Max", self.name).split(",")]] + return [self._single(self._tessie.get("PID_Min", self.name)), + self._single(self._tessie.get("PID_Max", self.name))] def setPIDMinMax(self, pidmin, pidmax): self._tessie.set("PID_Min", str(round(pidmin, 1)), self.name) @@ -213,19 +218,19 @@ class ConfTEC: self._tessie.set("Ref_U", str(round(ref, 3)), self.name) def getRef(self): - return [float(x) for x in self._tessie.get("Ref_U", self.name).split(",")] + return self._single(self._tessie.get("Ref_U", self.name)) def setMode(self, mode: int): self._tessie.set("Mode", str(mode), self.name) def getMode(self): - return [int(x) for x in self._tessie.get("Mode", self.name).split(",")] + return self._single(self._tessie.get("Mode", self.name)) def clearError(self): self._tessie.cmd("clearError", self.name) def getError(self): - return [hex(x) for x in self._tessie.get("Error", self.name).split(",")] + return self._single(self._tessie.get("Error", self.name)) class TEC: @@ -233,6 +238,13 @@ class TEC: self._tessie = tessie self.conf = ConfTEC(tessie, i) self.name = " tec " + str(i) + self.single = True if i != 0 else False + + def _single(self, data): + if self.single: + return data + else: + return [float(x) for x in data.split(",")] def pon(self): self._tessie.cmd("Power_On", self.name) @@ -241,16 +253,16 @@ class TEC: self._tessie.cmd("Power_Off", self.name) def getState(self): - return [bool(x) for x in self._tessie.get("PowerState", self.name).split(",")] + return self._single(self._tessie.get("PowerState", self.name)) def getTemp(self): - return [float(x) for x in self._tessie.get("Temp_M", self.name).split(",")] + return self._single(self._tessie.get("Temp_M", self.name)) def getUI(self): - return [[float(x) for x in self._tessie.get("Supply_U", self.name).split(",")], - [float(x) for x in self._tessie.get("Supply_I", self.name).split(",")], - [float(x) for x in self._tessie.get("Peltier_U", self.name).split(",")], - [float(x) for x in self._tessie.get("Peltier_I", self.name).split(",")]] + return [self._single(self._tessie.get("Supply_U", self.name)), + self._single(self._tessie.get("Supply_I", self.name)), + self._single(self._tessie.get("Peltier_U", self.name)), + self._single(self._tessie.get("Peltier_I", self.name))] def setTemp(self, temp: float): self._tessie.set("Temp_Set", str(round(temp)), self.name) @@ -259,7 +271,7 @@ class TEC: self._tessie.set("ControlVoltage_Set", str(round(u, 2)), self.name) def getVoltage(self): - return [float(x) for x in self._tessie.get("ControlVoltage_Set", self.name).split(",")] + return self._single(self._tessie.get("ControlVoltage_Set", self.name)) def reset(self): return self._tessie.cmd("Reboot", self.name, True) @@ -287,6 +299,8 @@ class Coldbox: self.tec8 = TEC(self._tessie, 8) self.env = Env(self._tessie) + self.tecs = [self.tec1, self.tec2, self.tec3, self.tec4, self.tec5, self.tec6, self.tec7, self.tec8] + def help(self): self._tessie.help()