########################################################################### # # Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. # # THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN # WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. # # @file dd_defs.py # # @author (last) Dara Navaei # @date (last) 08-Feb-2024 # @author (original) Peter Lucia # @date (original) 22-Jun-2021 # ############################################################################ from enum import unique from ..utils.base import DialinEnum @unique class DDOpModes(DialinEnum): MODE_FAUL = 0 MODE_SERV = 1 MODE_INIT = 2 MODE_STAN = 3 MODE_GEND = 4 MODE_HEAT = 5 MODE_HCOL = 6 MODE_ROPS = 7 MODE_NLEG = 8 NUM_OF_DD_MODES = 9 @unique class DDPostStates(DialinEnum): DD_POST_STATE_START = 0 DD_POST_STATE_FW_COMPATIBILITY = 1 DD_POST_STATE_FW_INTEGRITY = 2 DD_POST_STATE_FPGA = 3 DD_POST_STATE_NVDATAMGMT = 4 DD_POST_STATE_TEMPERATURE_SENSORS = 5 DD_POST_STATE_PRESSURES = 6 DD_POST_STATE_DIALYSATE_PUMPS = 7 DD_POST_STATE_CONCENTRATE_PUMPS = 8 DD_POST_STATE_CONDUCTIVITY_SENSORS = 9 DD_POST_STATE_WATCHDOG = 10 DD_POST_STATE_SAFETY_SHUTDOWN = 11 DD_POST_STATE_COMPLETED = 12 DD_POST_STATE_FAILED = 13 NUM_OF_DD_POST_STATES = 14 @unique class DDFaultStates(DialinEnum): DD_FAULT_STATE_START = 0 # DD fault start state DD_FAULT_STATE_RUN_NV_POSTS = 1 # DD fault run RTC and NV data management post DD_FAULT_STATE_COMPLETE = 2 # DD fault complete NUM_OF_DD_FAULT_STATES = 3 # Number of fault mode states @unique class DGSoloStates(DialinEnum): DG_SOLO_STANDBY_STATE_START = 0 DG_SOLO_IDLE_STATE = 1 NUM_OF_DG_SOLO_STANDBY_STATES = 2 @unique class DGStandByModeStates(DialinEnum): DD_STANDBY_MODE_STATE_IDLE = 0 # Idle standby mode state DD_STANDBY_MODE_STATE_PAUSE = 1 # Pause state NUM_OF_DD_STANDBY_MODE_STATES = 2 # Number of standby mode states @unique class DDGenDialysateModeStates(DialinEnum): DD_GEND_STATE_START = 0 # Gen dialysate start state DD_GEND_HYD_CHAMBER_WATER_INLET_CHECK_STATE = 1 # Gen dialysate Hydraulic chamber water inlet check state DD_GEND_HYD_CHAMBER_PRESSURE_CHECK_STATE = 2 # Gen dialysate Hydraulic chamber pressure check state DD_GEND_FRESH_DIALYSATE_PRESSURE_CHECK_STATE = 3 # Gen dialysate fresh dialysate pressure check state DD_GEND_SPENT_DIALYSATE_PRESSURE_CHECK_STATE = 4 # Gen dialysate spent dialysate pressure check state DD_GEND_PRODUCE_DIALYSATE_STATE = 5 # Gen dialysate - produce dialysate state DD_GEND_DIALYSATE_DELIVERY_STATE = 6 # Gen dialysate - deliver dialysate state DD_GEND_DIALYSATE_DELIVERY_PAUSE = 7 # Gen dialysate - dialysate delivery pause state NUM_OF_DD_GEND_MODE_STATES = 8 # Number of gen dialysate states @unique class DGFillModeStates(DialinEnum): DG_FILL_MODE_STATE_TEST_INLET_WATER = 0 # Test inlet water quality state DG_FILL_MODE_STATE_PRIME_CONCENTRATE_LINES = 1 # Prime the acid and bicarb concentrate lines DG_FILL_MODE_STATE_FLUSH_BUBBLES = 2 # Flush the bubbles in the lines state DG_FILL_MODE_STATE_TEST_BICARB_CONDUCTIVITY = 3 # Test the conductivity range of the bicarb concentrate state DG_FILL_MODE_STATE_TEST_ACID_CONDUCTIVITY = 4 # Test the conductivity range of the acid concentrate state DG_FILL_MODE_STATE_PRODUCE_DIALYSATE = 5 # Dialysate production state DG_FILL_MODE_STATE_DELIVER_DIALYSATE = 6 # Dialysate deliver state DG_FILL_MODE_STATE_PAUSED = 7 # Dialysate generation pause state NUM_OF_DG_FILL_MODE_STATES = 8 # Number of fill mode states @unique class DGDrainModeStates(DialinEnum): DG_DRAIN_STATE_START = 0 # Start drain mode state DG_DRAIN_STATE_DRAIN = 1 # Drain drain mode state DG_DRAIN_STATE_TARE = 2 # Tare drain mode state DG_DRAIN_STATE_RINSE = 3 NUM_OF_DG_DRAIN_STATES = 4 # Number of drain mode states @unique class DGFlushStates(DialinEnum): DG_FLUSH_STATE_START = 0 DG_FLUSH_STATE_DRAIN_R1 = 1 DG_FLUSH_STATE_DRAIN_R2 = 2 DG_FLUSH_STATE_FLUSH_DRAIN = 3 DG_FLUSH_STATE_FLUSH_DIALYSATE = 4 DG_FLUSH_STATE_FLUSH_CONCENTRATE_STRAWS = 5 DG_FLUSH_STATE_FLUSH_R1_TO_R2 = 6 DG_FLUSH_STATE_FLUSH_R2_AND_DRAIN_R1 = 7 DG_FLUSH_STATE_FLUSH_CIRCULATION_DRAIN_LINE = 8 DG_FLUSH_STATE_FLUSH_CIRCULATION = 9 DG_FLUSH_STATE_FLUSH_WITH_FRESH_WATER = 10 DG_FLUSH_STATE_CANCEL_BASIC_PATH = 11 DG_FLUSH_STATE_CANCEL_WATER_PATH = 12 DG_FLUSH_STATE_COMPLETE = 13 NUM_OF_DG_FLUSH_STATES = 14 @unique class DGFlushUIStates(DialinEnum): FLUSH_UI_STATE_NOT_RUNNING = 0 FLUSH_UI_STATE_NOT_DRAIN_DEVICE = 1 FLUSH_UI_STATE_NOT_FLUSH_RESERVOIRS = 2 FLUSH_UI_STATE_NOT_DRAIN_RESERVOIRS = 3 FLUSH_UI_STATE_NOT_FLUSH_RECIRCULATION_PATH = 4 FLUSH_UI_STATE_NOT_CANCEL_FLUSH = 5 FLUSH_UI_STATE_NOT_COMPLETE = 6 NUM_OF_FLUSH_UI_STATES = 7 @unique class DGHeatDisinfectStates(DialinEnum): DG_HEAT_DISINFECT_STATE_START = 0 # Heat disinfect, start mode state DG_HEAT_DISINFECT_STATE_DRAIN_R1 = 1 # Heat disinfect, drain R1 state DG_HEAT_DISINFECT_STATE_DRAIN_R2 = 2 # Heat disinfect, drain R2 state DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN = 3 # Heat disinfect, flush drain state DG_HEAT_DISINFECT_STATE_FLUSH_CIRCULATION = 4 # Heat disinfect, flush circulation state DG_HEAT_DISINFECT_STATE_FLUSH_R1_AND_R2 = 5 # Heat disinfect, flush R1 and R2 state DG_HEAT_DISINFECT_STATE_FLUSH_R2_AND_DRAIN_R1 = 6 # Heat disinfect, flush R2 and drain R1 state DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN_R2 = 7 # Heat disinfect, flush drain R2 state DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN_R1 = 8 # Heat disinfect, flush drain R1 state DG_HEAT_DISINFECT_STATE_FILL_WITH_WATER = 9 # Heat disinfect, fill with water state DG_HEAT_DISINFECT_STATE_DISINFECT_R1_TO_R2 = 10 # Heat disinfect, disinfect R1 to R2 state DG_HEAT_DISINFECT_STATE_PREPARE_FOR_HOT_WATER_TRANSITION = 11 # Heat disinfect, prepare for hot water transition DG_HEAT_DISINFECT_STATE_FILL_R2_WITH_HOT_WATER = 12 # Heat disinfect, fill R2 with hot water state DG_HEAT_DISINFECT_STATE_DISINFECT_R2_TO_R1 = 13 # Heat disinfect, disinfect R2 to R1 state DG_HEAT_DISINFECT_STATE_COOL_DOWN_HEATERS = 14 # Heat disinfect, cool down heaters state DG_HEAT_DISINFECT_STATE_MIX_DRAIN_R1 = 15 # Heat disinfect, mix drain R1 state DG_HEAT_DISINFECT_STATE_MIX_DRAIN_R2 = 16 # Heat disinfect, mix drain R2 state DG_HEAT_DISINFECT_STATE_CANCEL_BASIC_PATH = 17 # Heat disinfect, cancel mode basic path state DG_HEAT_DISINFECT_STATE_CANCEL_WATER_PATH = 18 # Heat disinfect, cancel mode water path state DG_HEAT_DISINFECT_STATE_COMPLETE = 19 # Heat disinfect, complete state DG_NELSON_HEAT_DISINFECT_STATE_FILL_R1_WITH_WATER = 20 # Heat disinfect, Nelson support state NUM_OF_DG_HEAT_DISINFECT_STATES = 21 # Number of heat disinfect mode states @unique class DGHeatDisinfectUIStates(DialinEnum): HEAT_DISINFECT_UI_STATE_NOT_RUNNING = 0 HEAT_DISINFECT_UI_STATE_FLUSH_BEFORE_DISINFECT = 1 HEAT_DISINFECT_UI_STATE_HEAT_UP_WATER = 2 HEAT_DISINFECT_UI_STATE_DISINFECT_RESERVOIR_1 = 3 HEAT_DISINFECT_UI_STATE_TRANSITION_HOT_WATER = 4 HEAT_DISINFECT_UI_STATE_DISINFECT_RESERVOIR_2 = 5 HEAT_DISINFECT_UI_STATE_COOL_DOWN_DEVICE = 6 HEAT_DISINFECT_UI_STATE_FLUSH_AFTER_DISINFECT = 7 HEAT_DISINFECT_UI_STATE_CANCEL_DISINFECT = 8 HEAT_DISINFECT_UI_STATE_COMPLETE = 9 NUM_OF_HEAT_DISINFECT_UI_STATES = 10 @unique class DGHeatDisinfectActiveCoolStates(DialinEnum): DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_START = 0 DG_HEAT_DISINFECT_ACTIVE_COOL_MIX_DRAIN_R1_STATE = 1 DG_HEAT_DISINFECT_ACTIVE_COOL_MIX_DRAIN_R2_STATE = 2 DG_HEAT_DISINFECT_ACTIVE_COOL_FILL_R1_STATE = 3 DG_HEAT_DISINFECT_ACTIVE_COOL_FILL_R2_STATE = 4 DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R2_FILL_R1_TO_R2_STATE = 5 DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R1_FILL_R2_TO_R1_STATE = 6 DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R1_STATE = 7 DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R2_STATE = 8 DG_HEAT_DISINFECT_ACTIVE_COOL_CANCEL_WATER_PATH_STATE = 9 DG_HEAT_DISINFECT_ACTIVE_COOL_CANCEL_BASIC_PATH_STATE = 10 DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_COMPLETE = 11 @unique class DGChemicalDisinfectStates(DialinEnum): DG_CHEM_DISINFECT_STATE_START = 0 DG_CHEM_DISINFECT_STATE_DRAIN_R1 = 1 DG_CHEM_DISINFECT_STATE_DRAIN_R2 = 2 DG_CHEM_DISINFECT_STATE_FLUSH_DRAIN = 3 DG_CHEM_DISINFECT_STATE_DEPRIME_ACID_LINE = 4 DG_CHEM_DISINFECT_STATE_FLUSH_CIRCULATION = 5 DG_CHEM_DISINFECT_STATE_PRIME_DISINFECTANT = 6 DG_CHEM_DISINFECT_STATE_DISINFECTANT_FLUSH = 7 DG_CHEM_DISINFECT_STATE_FILL_WITH_DISINFECTANT = 8 DG_CHEM_DISINFECT_STATE_DISINFECT_R1_TO_R2 = 9 DG_CHEM_DISINFECT_STATE_PARTIAL_DRAIN_R1_FILL_R2_TO_R1 = 10 DG_CHEM_DISINFECT_STATE_DISINFECT_R2_TO_R1 = 11 DG_CHEM_DISINFECT_STATE_PARTIAL_DRAIN_R2_FILL_R1_TO_R2 = 12 DG_CHEM_DISINFECT_STATE_CANCEL_BASIC_PATH = 13 DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH = 14 DG_CHEM_DISINFECT_STATE_COMPLETE = 15 NUM_OF_DG_CHEM_DISINFECT_STATES = 16 @unique class DGChemDisinfectFlushStates(DialinEnum): DG_CHEM_DISINFECT_FLUSH_STATE_START = 0 DG_CHEM_DISINFECT_FLUSH_STATE_DRAIN_R1 = 1 DG_CHEM_DISINFECT_FLUSH_STATE_DRAIN_R2 = 2 DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_DRAIN = 3 DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_DISINFECTANT_LINE = 4 DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_UF = 5 DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_R2_TO_R1_DRAIN_R1 = 6 DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_R1_TO_R2_DRAIN_R2 = 7 DG_CHEM_DISINFECT_FLUSH_STATE_SAMPLE_FLUSH_R1_TO_R2_DRAIN_R2 = 8 DG_CHEM_DISINFECT_FLUSH_STATE_CANCEL_BASIC_PATH = 9 DG_CHEM_DISINFECT_FLUSH_STATE_CANCEL_WATER_PATH = 10 DG_CHEM_DISINFECT_FLUSH_STATE_COMPLETE = 11 NUM_OF_DG_CHEM_DISINFECT_FLUSH_STATES = 12 @unique class DGChemDisinfectFlushUIStates(DialinEnum): CHEM_DISINFECT_FLUSH_UI_STATE_NOT_RUNNING = 0 CHEM_DISINFECT_FLUSH_UI_STATE_FLUSH_AFTER_DISINFECT = 1 CHEM_DISINFECT_FLUSH_UI_STATE_CANCEL_FLUSH = 2 CHEM_DISINFECT_FLUSH_UI_STATE_COMPLETE = 3 NUM_OF_CHEM_DISINFECT_FLUSH_UI_STATES = 4 @unique class DGChemDisinfectUIStates(DialinEnum): CHEM_DISINFECT_UI_STATE_NOT_RUNNING = 0 CHEM_DISINFECT_UI_STATE_FLUSH_BEFORE_DISINFECT = 1 CHEM_DISINFECT_UI_STATE_MIX_WATER_AND_ACID = 2 CHEM_DISINFECT_UI_STATE_REMOVE_ACID = 3 CHEM_DISINFECT_UI_STATE_DISINFECT_DEVICE = 4 CHEM_DISINFECT_UI_STATE_FLUSH_AFTER_DISINFECT = 5 CHEM_DISINFECT_UI_STATE_CANCEL_DISINFECT = 6 CHEM_DISINFECT_UI_STATE_COMPLETE = 7 NUM_OF_CHEM_DISINFECT_UI_STATES = 8 @unique class DGROPermeateSampleStates(DialinEnum): DG_RO_PERM_SAMPLE_STATE_START = 0 DG_RO_PERM_SAMPLE_STATE_DRAIN_R1 = 1 DG_RO_PERM_SAMPLE_STATE_DRAIN_R2 = 2 DG_RO_PERM_SAMPLE_STATE_FLUSH_DRAIN = 3 DG_RO_PERM_SAMPLE_STATE_FLUSH_DIALYSATE = 4 DG_RO_PERM_SAMPLE_STATE_FLUSH_CONCENTRATE_STRAWS = 5 DG_RO_PERM_SAMPLE_STATE_FLUSH_R2_TO_R1_AND_DRAIN_R1 = 6 DG_RO_PERM_SAMPLE_STATE_COLLECT_SAMPLE = 7 DG_RO_PERM_SAMPLE_STATE_CANCEL_BASIC_PATH = 8 DG_RO_PERM_SAMPLE_STATE_CANCEL_WATER_PATH = 9 DG_RO_PERM_SAMPLE_STATE_COMPLETE = 10 NUM_OF_DG_RO_PERM_STATES = 11 @unique class DDEventList(DialinEnum): DD_EVENT_STARTUP = 0 # DD startup event DD_EVENT_OP_MODE_CHANGE = 1 # DD Op mode change event DD_EVENT_SUB_MODE_CHANGE = 2 # DD Op sub-mode change event DD_EVENT_OPERATION_STATUS = 3 # DD operation status event DD_EVENT_D6_LEVL_CHANGE = 4 # DD floater level change event DD_EVENT_D63_LEVL_CHANGE = 5 # DD bicarb level change event DD_EVENT_D46_LEVL_CHANGE = 6 # DD spent dialysate air seperation level change event DD_EVENT_TD_COMMUNICATION_LOSS = 7 # DD TD communication loss NUM_OF_DD_EVENT_IDS = 8 # Total number of DD events @unique class DDEventDataType(DialinEnum): EVENT_DATA_TYPE_NONE = 0 EVENT_DATA_TYPE_U32 = 1 EVENT_DATA_TYPE_S32 = 2 EVENT_DATA_TYPE_F32 = 3 EVENT_DATA_TYPE_BOOL = 4 NUM_OF_EVENT_DATA_TYPES = 5 @unique class DDServiceModesStates(DialinEnum): DD_SERVICE_STATE_START = 0 # Start service mode state NUM_OF_DD_SERVICE_STATES = 1 # Number of service mode states @unique class DDBalancingChamberStates(DialinEnum): BAL_CHAMBER_STATE_START = 0, # Initial state of balancing chamber BAL_CHAMBER_STATE1_FILL_START = 1 # Balancing chamber state 1 fill start state BAL_CHAMBER_STATE1_BICARB_ACID_DOSING_CNTRL = 2 # Balancing Chamber state 1 Bicarb and acid dosing control state BAL_CHAMBER_STATE1_FILL_END = 3 # Balancing Chamber state 1 fill end state BAL_CHAMBER_STATE2_FILL_START = 4 # Balancing chamber state 2 fill start state BAL_CHAMBER_STATE2_BICARB_ACID_DOSING_CNTRL = 5 # Balancing Chamber state 2 Bicarb and acid dosing control state BAL_CHAMBER_STATE2_FILL_END = 6 # Balancing Chamber state 2 fill end state NUM_OF_BAL_CHAMBER_EXEC_STATES = 7 # Number of balancing chamber states @unique class DDBalancingChamberSwitchStates(DialinEnum): BAL_CHAMBER_SW_STATE1 = 0 # Balancing chamber switching state 1 (V2,V5 and V3, V8 open, rest closed) BAL_CHAMBER_SW_STATE2 = 1 # Balancing chamber switching state 2 ( V1,V6 and V4, V7 open, rest closed) NUM_OF_BAL_CHAMBER_SW = 2 # Number of balancing chamber states