Index: dialin/dg/heat_disinfection.py =================================================================== diff -u -r6b7fe9b82f599b521d8e5d53922bc59841acd899 -r94128c59d96218d3e1b3441f9e8cf9b6d77a4754 --- dialin/dg/heat_disinfection.py (.../heat_disinfection.py) (revision 6b7fe9b82f599b521d8e5d53922bc59841acd899) +++ dialin/dg/heat_disinfection.py (.../heat_disinfection.py) (revision 94128c59d96218d3e1b3441f9e8cf9b6d77a4754) @@ -3,14 +3,15 @@ from ..utils.conversions import integer_to_bytearray from ..utils.conversions import float_to_bytearray #TODO remove from .constants import NO_RESET +from ..common.msg_defs import MsgIds, MsgFieldPositions from ..protocols.CAN import (DenaliMessage, DenaliChannels) -from ..utils.base import _AbstractSubSystem, _publish +from ..utils.base import _AbstractSubSystem, _publish, DialinEnum from logging import Logger -import enum +from enum import unique +@unique +class HeatDisinfectionStates(DialinEnum): -class HeatDisinfectionStates(enum.Enum): - DG_HEAT_DISINFECT_STATE_START = 0 DG_HEAT_DISINFECT_STATE_EVACUATE_DIALYSATE_FILL_WITH_WATER = 1 DG_HEAT_DISINFECT_STATE_HEAT_WATER = 2 @@ -21,33 +22,24 @@ DG_HEAT_DISINFECT_STATE_FILL_WITH_WATER_DEPRIME_RESERVOIR = 7 DG_HEAT_DISINFECT_STATE_COMPLETE = 8 - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ +@unique +class HeatDisinfectionInternalStates(DialinEnum): -class HeatDisinfectionInternalStates(enum.Enum): - INTERNAL_HEAT_DISINFECT_STATE_OFF = 0 INTERNAL_HEAT_DISINFECT_STATE_FILL_WITH_WATER = 1 INTERNAL_HEAT_DISINFECT_STATE_EVACUATE_RECIRC_PATH = 2 INTERNAL_HEAT_DISINFECT_STATE_EVACUATE_RESERVOIR_1 = 3 INTERNAL_HEAT_DISINFECT_STATE_EVACUATE_RESERVOIR_2 =4 INTERNAL_HEAT_DISINFECT_STATE_COMPLETE = 5 - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ - class HeatDisinfection(_AbstractSubSystem): """ \class HeatDisinfection \brief Heat disinfection class with APIs to set the timing of each of the stages. """ - MSG_ID_DG_START_STOP_HEAT_DISINFECT = 0x30 - MSG_ID_DG_HEAT_DISINFECT_DATA = 0x37 START_POS_INTERNAL_STATE = DenaliMessage.PAYLOAD_START_INDEX END_POS_INTERNAL_STATE = START_POS_INTERNAL_STATE + 4 @@ -69,7 +61,7 @@ if self.can_interface is not None: channel_id = DenaliChannels.dg_sync_broadcast_ch_id - msg_id = self.MSG_ID_DG_HEAT_DISINFECT_DATA + msg_id = MsgIds.MSG_ID_DG_HEAT_DISINFECT_DATA self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_heat_disinfect_sync) @@ -108,7 +100,7 @@ str = "Stopping" payload = integer_to_bytearray(cmd) message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, - message_id=self.MSG_ID_DG_START_STOP_HEAT_DISINFECT, + message_id=MsgIds.MSG_ID_DG_START_STOP_HEAT_DISINFECT, payload=payload) self.logger.debug(str + " DG heat disinfection") Index: dialin/dg/valves.py =================================================================== diff -u -rfbe3580dfcda2338d9fa33d09bee85099ea7b801 -r94128c59d96218d3e1b3441f9e8cf9b6d77a4754 --- dialin/dg/valves.py (.../valves.py) (revision fbe3580dfcda2338d9fa33d09bee85099ea7b801) +++ dialin/dg/valves.py (.../valves.py) (revision 94128c59d96218d3e1b3441f9e8cf9b6d77a4754) @@ -19,67 +19,56 @@ from ..common.msg_defs import MsgIds from .constants import NO_RESET from ..protocols.CAN import (DenaliMessage, DenaliChannels) -from ..utils.base import _AbstractSubSystem, _publish +from ..utils.base import _AbstractSubSystem, _publish, DialinEnum from logging import Logger -import enum +from enum import unique # Valve states ENERGIZED = True DEENERGIZED = False -class VPiVSPVBfStates(enum.Enum): +@unique +class VPiVSPVBfStates(DialinEnum): + VALVE_STATE_CLOSED = 0 VALVE_STATE_OPEN = 1 - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ -class VPdStates(enum.Enum): +@unique +class VPdStates(DialinEnum): VALVE_STATE_OPEN_C_TO_NO = 0 VALVE_STATE_DRAIN_C_TO_NC = 1 - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ -class VPoStates(enum.Enum): +@unique +class VPoStates(DialinEnum): VALVE_STATE_NOFILL_C_TO_NO = 0 VALVE_STATE_FILL_C_TO_NC = 1 - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ -class VDrVRcStates(enum.Enum): +@unique +class VDrVRcStates(DialinEnum): VALVE_STATE_DRAIN_C_TO_NO = 0 VALVE_STATE_RECIRC_C_TO_NC = 1 - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ -class VRoVRiStates(enum.Enum): +@unique +class VRoVRiStates(DialinEnum): VALVE_STATE_R1_C_TO_NO = 0 VALVE_STATE_R2_C_TO_NC = 1 - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ -class VRdVRfStates(enum.Enum): +@unique +class VRdVRfStates(DialinEnum): VALVE_STATE_R2_C_TO_NO = 0 VALVE_STATE_R1_C_TO_NC = 1 - @classmethod - def has_value(cls, value): - return value in cls._value2member_map_ class DGValves(_AbstractSubSystem): """ Index: tests/dg_heat_disinfect_test.py =================================================================== diff -u -rcc425128f399de5414b0aee1942986653ca42c92 -r94128c59d96218d3e1b3441f9e8cf9b6d77a4754 --- tests/dg_heat_disinfect_test.py (.../dg_heat_disinfect_test.py) (revision cc425128f399de5414b0aee1942986653ca42c92) +++ tests/dg_heat_disinfect_test.py (.../dg_heat_disinfect_test.py) (revision 94128c59d96218d3e1b3441f9e8cf9b6d77a4754) @@ -9,6 +9,7 @@ from dialin.dg.thermistors import Thermistors from dialin.dg.uv_reactors import ReactorsStates from dialin.dg.thermistors import ThermistorsNames +from dialin.dg.temperature_sensors import TemperatureSensorsNames from time import sleep if __name__ == "__main__": @@ -18,15 +19,36 @@ #dg.uv_reactors.cmd_start_stop_inlet_uv_reactor(state=ReactorsStates.UV_REACTOR_STATE_ON.name) #sleep(1) - dg.thermistors.cmd_thermistors_value_override(52.2, ThermistorsNames.THERMISTOR_ONBOARD_NTC.value, reset=1) - sleep(2) + #dg.thermistors.cmd_thermistors_value_override(52.2, ThermistorsNames.THERMISTOR_ONBOARD_NTC.value, reset=1) + #sleep(2) while True: - - print(dg.thermistors.thermistors[ThermistorsNames.THERMISTOR_ONBOARD_NTC.name], - dg.fans.target_duty_cycle, dg.fans.inlet_1_rpm, dg.fans.inlet_2_rpm) sleep(0.5) + print('BoardT, {}, Inlet, {}, Outlet, {}, CP1, {}, CP2, {}, OutletR, {}, InletD, {}, ' + 'PHThe, {}, THThe, {}, PHCJ, {}, THCJ, {}, PHInt, {}, THInt, {}, FPGA, {}, ' + 'LCA1B1, {}, LCA2B2, {}, InTHDo, {}, IntTDi, {}, IntCond, {} Fan1, {}, Fan2, {}' + .format(dg.thermistors.thermistors[ThermistorsNames.THERMISTOR_ONBOARD_NTC.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.INLET_PRIMARY_HEATER.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.OUTLET_PRIMARY_HEATER.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.CONDUCTIVITY_SENSOR_1.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.CONDUCTIVITY_SENSOR_2.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.OUTLET_DIALYSATE_REDUNDANT.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.INLET_DIALYSATE.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.PRIMARY_HEATER_THERMOCOUPLE.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.TRIMMER_HEATER_THERMOCOUPLE.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.PRIMARY_HEATER_COLD_JUNCTION.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.TRIMMER_HEATER_COLD_JUNCTION.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.PRIMARY_HEATER_INTERNAL.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.TRIMMER_HEATER_INTERNAL.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.FPGA_BOARD_SENSOR.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.LOAD_CELL_A1_B1.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.LOAD_CELL_A2_B2.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.INTERNAL_THDO_RTD.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.INTERNAL_TDI_RTD.name], + dg.temperature_sensors.temperature_sensors[TemperatureSensorsNames.INTERNAL_COND_TEMP_SENSOR.name], + dg.fans.inlet_1_rpm, dg.fans.inlet_2_rpm)) + f = open("Heat_disinfection.txt", "w") #dg.drain_pump.cmd_drain_pump_speed_set_point_override(2800)