diff --git a/csaxs_bec/devices/omny/flomni_temp_and_humidity.py b/csaxs_bec/devices/omny/flomni_temp_and_humidity.py index 498fc78..f22a698 100644 --- a/csaxs_bec/devices/omny/flomni_temp_and_humidity.py +++ b/csaxs_bec/devices/omny/flomni_temp_and_humidity.py @@ -66,26 +66,91 @@ class FlomniTempHum(Device): temperature_heater_enabled = Cpt( EpicsSignal, name="temperature_heater_enabled", read_pv="XOMNI-TEMPHUM-HEAT_EN:0.VAL" ) - -# XOMNI-TEMPHUM-HUM1,0} -# {XOMNI-TEMPHUM-HUM2,0} -# {XOMNI-TEMPHUM-TEMP1,0} -# {XOMNI-TEMPHUM-TEMP2,0} -# {XOMNI-TEMPHUM-ERR1,0} -# {XOMNI-TEMPHUM-ERR2,0} -# {XOMNI-TEMPHUM-FLOW,0} -# {XOMNI-TEMPHUM-FLOWSET,0} -# {XOMNI-TEMPHUM-FLOWSETSET,0} -# {XOMNI-TEMPHUM-HUMSET,0} -# {XOMNI-TEMPHUM-HUMSETSET,0} -# {XOMNI-TEMPHUM-SUCTION,0} -# {XOMNI-TEMPHUM-SUCTIONSET,0} -# {XOMNI-TEMPHUM-VALVEDRY,0} -# {XOMNI-TEMPHUM-VALVEWET,0} -# {XOMNI-TEMPHUM-VALVESUC,0} -# {XOMNI-TEMPHUM-SETUPTEMP,0} -# } + temperature_heater_enabled = Cpt( + EpicsSignal, name="temperature_heater_enabled", read_pv="XOMNI-TEMPHUM-HEAT_EN:0.VAL" + ) + +###### GALIL CONTROLLER + + + humidity_sensor1 = Cpt( + EpicsSignal, name="humidity_sensor1", read_pv="XOMNI-TEMPHUM-HUM1:0.VAL" + ) + + humidity_sensor2 = Cpt( + EpicsSignal, name="humidity_sensor2", read_pv="XOMNI-TEMPHUM-HUM2:0.VAL" + ) + + humidity_sensor1_temperature = Cpt( + EpicsSignal, name="humidity_sensor1_temperature", read_pv="XOMNI-TEMPHUM-TEMP1:0.VAL" + ) + + humidity_sensor2_temperature = Cpt( + EpicsSignal, name="humidity_sensor2_temperature", read_pv="XOMNI-TEMPHUM-TEMP2:0.VAL" + ) + + humidity_sensor1_err = Cpt( + EpicsSignal, name="humidity_sensor1_err", read_pv="XOMNI-TEMPHUM-ERR1:0.VAL" + ) + + humidity_sensor2_err = Cpt( + EpicsSignal, name="humidity_sensor2_err", read_pv="XOMNI-TEMPHUM-ERR2:0.VAL" + ) + + flow = Cpt( + EpicsSignal, name="flow", read_pv="XOMNI-TEMPHUM-FLOW:0.VAL" + ) + + flowset = Cpt( + EpicsSignal, name="flowset", read_pv="XOMNI-TEMPHUM-FLOWSET:0.VAL" + ) + + flowset_set = Cpt( + EpicsSignal, name="flowset_set", read_pv="XOMNI-TEMPHUM-FLOWSETSET:0.VAL" + ) + + humidityset = Cpt( + EpicsSignal, name="humidityset", read_pv="XOMNI-TEMPHUM-HUMSET:0.VAL" + ) + + humidityset_set = Cpt( + EpicsSignal, name="humidityset_set", read_pv="XOMNI-TEMPHUM-HUMSETSET:0.VAL" + ) + + suction = Cpt( + EpicsSignal, name="suction", read_pv="XOMNI-TEMPHUM-SUCTION:0.VAL" + ) + + valvedry = Cpt( + EpicsSignal, name="valvedry", read_pv="XOMNI-TEMPHUM-VALVEDRY:0.VAL" + ) + + valvewet = Cpt( + EpicsSignal, name="valvewet", read_pv="XOMNI-TEMPHUM-VALVEWET:0.VAL" + ) + + setuptemp = Cpt( + EpicsSignal, name="setuptemp", read_pv="XOMNI-TEMPHUM-SETUPTEMP:0.VAL" + ) + + + + def omega_controller_running(self): + time_diff = np.fabs(float(self.omegactrl_alive.get()) - time.time()) + if time_diff > 120: + return False + else: + return True + + def galil_controller_running(self): + time_diff = np.fabs(float(self.galilctrl_alive.get()) - time.time()) + if time_diff > 120: + return False + else: + return True + + def __init__(self, prefix="", *, name, **kwargs): super().__init__(prefix, name=name, **kwargs) @@ -98,19 +163,46 @@ class FlomniTempHum(Device): def show_all(self): - print("Temperatures in flOMNI") - print(f" Mirror: {float(self.temperature_mirror.get()):.2f} degC") - print(f" Mirror Setpoint: {float(self.temperature_mirrorset_rb.get()):.2f} degC") - print(f" OSA: {float(self.temperature_osa.get()):.1f} degC") - print(f" OSA Setpoint: {float(self.temperature_osaset_rb.get()):.1f} degC") - print(f" Heater: {float(self.temperature_heater.get()):.1f} degC") - print(f" Heater Setpoint: {float(self.temperature_heaterset_rb.get()):.1f} degC") + print("=== flOMNI Temperature & Humidity Overview ===") + print("") + print("Temperatures:") + print(f" Mirror: {float(self.temperature_mirror.get()):7.2f} °C") + print(f" Mirror Setpoint (RB): {float(self.temperature_mirrorset_rb.get()):7.2f} °C") + print(f" OSA: {float(self.temperature_osa.get()):7.2f} °C") + print(f" OSA Setpoint (RB): {float(self.temperature_osaset_rb.get()):7.2f} °C") + print(f" Heater: {float(self.temperature_heater.get()):7.2f} °C") + print(f" Heater Setpoint (RB): {float(self.temperature_heaterset_rb.get()):7.2f} °C") print(f" Heater Enabled: {float(self.temperature_heater_enabled.get()):.0f}") - print(f" Heater Housing: {float(self.temperature_heaterhousing.get()):.1f} degC") + print(f" Heater Housing: {float(self.temperature_heaterhousing.get()):7.2f} °C") print(f" Heater Housing Alarm: {float(self.temperature_heaterhousing_alarm.get()):.0f}") - print(f" OMEGA ALIVE: {float(self.temperature_heaterhousing_alarm.get()):.0f}") + print("") + print("Humidity Sensors:") + print(f" Sensor 1 Humidity: {float(self.humidity_sensor1.get()):7.2f} %RH") + print(f" Sensor 1 Temperature: {float(self.humidity_sensor1_temperature.get()):7.2f} °C") + print(f" Sensor 1 Error: {float(self.humidity_sensor1_err.get()):.0f}") + print(f" Sensor 2 Humidity: {float(self.humidity_sensor2.get()):7.2f} %RH") + print(f" Sensor 2 Temperature: {float(self.humidity_sensor2_temperature.get()):7.2f} °C") + print(f" Sensor 2 Error: {float(self.humidity_sensor2_err.get()):.0f}") + print(f" Humidity Setpoint: {float(self.humidityset.get()):7.2f} %RH") + print("") + print("Flow Control:") + print(f" Flow: {float(self.flow.get()):7.2f} sccm") + print(f" Flow Setpoint (RB): {float(self.flowset.get()):7.2f} sccm") + print("") + print("Suction:") + print(f" Suction: {float(self.suction.get()):7.2f}") + print("") + print("Valves:") + print(f" Dry Valve: {float(self.valvedry.get()):.0f}") + print(f" Wet Valve: {float(self.valvewet.get()):.0f}") + print("") + print("Controller Heartbeats:") + print(f" OMEGA Controller Alive: {self.omega_controller_running()}") + print(f" GALIL Controller Alive: {self.galil_controller_running()}") + print("==============================================") - def help(self): - print("Help for OMNY temperatures:") + print("Help for flOMNI temperature and humidity control system:") + print("Available methods:") + print(" show_all() - display all current values") \ No newline at end of file