continued devel temperature device
This commit is contained in:
@@ -14,8 +14,12 @@ class OMNYTemperaturesError(Exception):
|
||||
class OMNYTemperatures(Device):
|
||||
USER_ACCESS = [
|
||||
"if_temperature_controller_used_get_name_and_values",
|
||||
"set_setpoint",
|
||||
"show_all",
|
||||
"help",
|
||||
"_set_TEMP_default_setpoints",
|
||||
"temperature_controller_TEMP_running",
|
||||
"temperature_controller_CRYO_running",
|
||||
]
|
||||
SUB_VALUE = "value"
|
||||
_default_sub = SUB_VALUE
|
||||
@@ -46,6 +50,29 @@ class OMNYTemperatures(Device):
|
||||
}
|
||||
temperature_names = Dcpt(temperature_names)
|
||||
|
||||
temperature_update_time = Cpt(
|
||||
EpicsSignal, name="temperature_update_time", read_pv="XOMNY-TEMP:UPDATED.VAL"
|
||||
)
|
||||
|
||||
cryo_temperature = {
|
||||
f"cryo_temperature{i}": (EpicsSignal, f"XOMNY-TEMP-CRYO-{chr(i+ord('A')-1)}:GET.VAL", {}) for i in range(1,5)
|
||||
}
|
||||
cryo_temperature = Dcpt(cryo_temperature)
|
||||
|
||||
cryo_temperature_setpoint = {
|
||||
f"cryo_temperature_setpoint{i}": (EpicsSignal, f"XOMNY-TEMP-CRYO-{chr(i+ord('A')-1)}:SET.VAL", {}) for i in range(1,5)
|
||||
}
|
||||
cryo_temperature_setpoint = Dcpt(cryo_temperature_setpoint)
|
||||
|
||||
cryo_temperature_name = {
|
||||
f"cryo_temperature_name{i}": (EpicsSignal, f"XOMNY-TEMP-CRYO-{chr(i+ord('A')-1)}:GET.DESC", {}) for i in range(1,5)
|
||||
}
|
||||
cryo_temperature_name = Dcpt(cryo_temperature_name)
|
||||
|
||||
cryo_temperature_update_time = Cpt(
|
||||
EpicsSignal, name="cryo_temperature_update_time", read_pv="XOMNY-TEMP-CRYO:UPDATED.VAL"
|
||||
)
|
||||
|
||||
def __init__(self, prefix="", *, name, **kwargs):
|
||||
super().__init__(prefix, name=name, **kwargs)
|
||||
self.temperature.temperature1.subscribe(self._emit_value)
|
||||
@@ -55,6 +82,84 @@ class OMNYTemperatures(Device):
|
||||
self.wait_for_connection()
|
||||
self._run_subs(sub_type=self.SUB_VALUE, timestamp=timestamp, obj=self)
|
||||
|
||||
def set_setpoint(self, type: str, controller_nr: int, temperature: float):
|
||||
if type == "TEMP":
|
||||
getattr(self.temperature_setpoint, f"temperature_setpoint{controller_nr}").set(temperature)
|
||||
|
||||
def _set_TEMP_default_setpoints(self):
|
||||
self.set_setpoint("TEMP",8,-199.9)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",9,23)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",10,73.2)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",16,-199.9)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",17,23)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",18,26)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",19,26)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",20,26)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",21,23)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",22,-199.9)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",23,-199.9)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",24,-199.9)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",25,25)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",27,25)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",28,73.2)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",29,73.2)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",30,73.2)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",31,73.2)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",35,25)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",36,25)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",37,25)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",38,73.2)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",39,73.2)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",41,30)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",42,25)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",44,25)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",45,-199.9)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",46,73.2)
|
||||
time.sleep(0.1)
|
||||
self.set_setpoint("TEMP",47,73.2)
|
||||
time.sleep(0.1)
|
||||
|
||||
def temperature_controller_TEMP_running(self):
|
||||
time_diff = float(self.temperature_update_time.get()) - time.time()
|
||||
if time_diff > 600:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
def temperature_controller_CRYO_running(self):
|
||||
time_diff = float(self.cryo_temperature_update_time.get()) - time.time()
|
||||
if time_diff > 600:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
def if_temperature_controller_used_get_name_and_values(self, type: str, controller_nr: int) -> bool:
|
||||
if type == "TEMP":
|
||||
controller_name = str(getattr(self.temperature_names, f"temperature_name{controller_nr}").get())
|
||||
@@ -90,6 +195,9 @@ class OMNYTemperatures(Device):
|
||||
# t.header = False
|
||||
# t.vrules = FRAME
|
||||
# print(t)
|
||||
red = "\x1b[91m"
|
||||
green = "\x1b[92m"
|
||||
white = "\x1b[0m"
|
||||
t = PrettyTable()
|
||||
t.clear()
|
||||
t.title = "OMNY Temperature Controllers"
|
||||
@@ -114,6 +222,14 @@ class OMNYTemperatures(Device):
|
||||
t.header = True
|
||||
t.vrules = FRAME
|
||||
print(t)
|
||||
if not self.temperature_controller_TEMP_running():
|
||||
print (red + "Warning: the temperature controller communication is broken" + white)
|
||||
|
||||
for i in range(1,5):
|
||||
print(float(getattr(self.cryo_temperature, f"cryo_temperature{i}").get()))
|
||||
|
||||
if not self.temperature_controller_CRYO_running():
|
||||
print (red + "Warning: the temperature controller communication is broken" + white)
|
||||
|
||||
print("Use dev.omny_temperatures.help() for assistance.")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user