########################################################################### # # Copyright (c) 2021-2022 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 dg_defs.py # # @author (last) Micahel Garthwaite # @date (last) 12-Oct-2022 # @author (original) Peter Lucia # @date (original) 22-Jun-2021 # ############################################################################ from enum import unique from ..utils.base import DialinEnum @unique class DGOpModes(DialinEnum): DG_MODE_FAUL = 0 # Fault mode DG_MODE_SERV = 1 # Service mode DG_MODE_INIT = 2 # Initialization & POST mode DG_MODE_STAN = 3 # Standby mode - connected to HD DG_MODE_SOLO = 4 # Standby Solo mode - no HD connected DG_MODE_GENE = 5 # Generation Idle mode DG_MODE_FILL = 6 # Fill mode DG_MODE_DRAI = 7 # Drain mode DG_MODE_FLUS = 8 # Flush mode DG_MODE_HEAT = 9 # Heat Disinfect mode DG_MODE_CHEM = 10 # Chemical Disinfect mode DG_MODE_NLEG = 11 # Not legal - an illegal mode transition occurred NUM_OF_DG_MODES = 12 # Number of DG operation modes @unique class DGInitStates(DialinEnum): DG_POST_STATE_START = 0 DG_POST_STATE_FW_COMPATIBILITY = 1 DG_POST_STATE_FW_INTEGRITY = 2 DG_POST_STATE_FPGA = 3 DG_POST_STATE_RTC = 4 DG_POST_STATE_NVDATAMGMT = 5 DG_POST_STATE_TEMPERATURE_SENSORS = 6 DG_POST_STATE_ACCELEROMETER = 7 DG_POST_STATE_PRESSURES = 8 DG_POST_STATE_RO_PUMP = 9 DG_POST_STATE_DRAIN_PUMP = 10 DG_POST_STATE_CONCENTRATE_PUMPS = 11 DG_POST_STATE_CONDUCTIVITY_SENSORS = 12 DG_POST_STATE_RESERVOIRS = 13 DG_POST_STATE_UV_REACTORS = 14 DG_POST_STATE_THERMISTORS = 15 DG_POST_STATE_FANS = 16 DG_POST_STATE_DIALYSATE_FLOW_SENSOR = 17 DG_POST_STATE_WATCHDOG = 18 DG_POST_STATE_SAFETY_SHUTDOWN = 19 DG_POST_STATE_LOAD_CELL = 20 DG_POST_STATE_COMPLETED = 21 DG_POST_STATE_FAILED = 22 NUM_OF_DG_POST_STATES = 23 @unique class DGFaultStates(DialinEnum): DG_FAULT_STATE_START = 0 # DG fault start state DG_FAULT_STATE_RUN_NV_POSTS = 1 # DG fault run RTC and NV data management post DG_FAULT_STATE_COMPLETE = 2 # DG fault complete NUM_OF_DG_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): DG_STANDBY_MODE_STATE_IDLE = 0 # Idle standby mode state DG_STANDBY_MODE_STATE_FLUSH_FILTER = 1 # Sample water flush filter state DG_STANDBY_MODE_STATE_FLUSH_FILTER_IDLE = 2 # Sample water flush filter idle state DG_STANDBY_MODE_STATE_SAMPLE_WATER = 3 # Sample water state NUM_OF_DG_STANDBY_MODE_STATES = 4 # Number of standby mode states @unique class DGGenIdleModeStates(DialinEnum): DG_GEN_IDLE_MODE_STATE_START = 0 DG_GEN_IDLE_MODE_STATE_FLUSH_WATER = 1 DG_GEN_IDLE_MODE_STATE_HANDLE_BAD_FILL = 2 NUM_OF_DG_GEN_IDLE_MODE_STATES = 3 @unique class DGGenIdleModeBadFillSubStates(DialinEnum): DG_HANDLE_BAD_FILL_STATE_START = 0 DG_HANDLE_BAD_FILL_STATE_FIRST_DRAIN = 1 DG_HANDLE_BAD_FILL_STATE_FLUSH_FILL = 2 DG_HANDLE_BAD_FILL_STATE_SECOND_DRAIN = 3 DG_HANDLE_BAD_FILL_STATE_REFILL = 4 NUM_OF_DG_HANDLE_BAD_FILL_STATES = 6 @unique class DGFillModeStates(DialinEnum): DG_FILL_MODE_STATE_START = 0 # Start fill mode state DG_FILL_MODE_STATE_TEST_INLET_WATER = 1 # Test inlet water quality state DG_FILL_MODE_STATE_PRIME_CONCENTRATE_LINES = 2 # Prime the acid and bicarb concentrate lines DG_FILL_MODE_STATE_FLUSH_BUBBLES = 3 # Flush the bubbles in the lines state DG_FILL_MODE_STATE_TEST_BICARB_CONDUCTIVITY = 4 # Test the conductivity range of the bicarb concentrate state DG_FILL_MODE_STATE_TEST_ACID_CONDUCTIVITY = 5 # Test the conductivity range of the acid concentrate state DG_FILL_MODE_STATE_PRODUCE_DIALYSATE = 6 # Dialysate production state DG_FILL_MODE_STATE_DELIVER_DIALYSATE = 7 # Dialysate deliver state DG_FILL_MODE_STATE_PAUSED = 8 # Dialysate generation pause state NUM_OF_DG_FILL_MODE_STATES = 9 # 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_FILL_R2_WITH_HOT_WATER = 11 # Heat disinfect, fill R2 with hot water state DG_HEAT_DISINFECT_STATE_DISINFECT_R2_TO_R1 = 12 # Heat disinfect, disinfect R2 to R1 state DG_HEAT_DISINFECT_STATE_COOL_DOWN_HEATERS = 13 # Heat disinfect, cool down heaters state DG_HEAT_DISINFECT_STATE_COOL_DOWN_RO_FILTER = 14 # Heat disinfect, cool down RO filter 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_RINSE_R1_TO_R2 = 17 # Heat disinfect, rinse R1 to R2 state DG_HEAT_DISINFECT_STATE_RINSE_R2_TO_R1_AND_DRAIN_R1 = 18 # Heat disinfect, rinse R2 to R1 and drain R1 state DG_HEAT_DISINFECT_STATE_RINSE_CIRCULATION = 19 # Heat disinfect, rinse circulation state DG_HEAT_DISINFECT_STATE_CANCEL_BASIC_PATH = 20 # Heat disinfect, cancel mode basic path state DG_HEAT_DISINFECT_STATE_CANCEL_WATER_PATH = 21 # Heat disinfect, cancel mode water path state DG_HEAT_DISINFECT_STATE_COMPLETE = 22 # Heat disinfect, complete state NUM_OF_DG_HEAT_DISINFECT_STATES = 23 # 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 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_FLUSH_CIRCULATION = 4 DG_CHEM_DISINFECT_STATE_FLUSH_R1_AND_R2 = 5 DG_CHEM_DISINFECT_STATE_FLUSH_R2_AND_DRAIN_R1 = 6 DG_CHEM_DISINFECT_STATE_FLUSH_DRAIN_R2 = 7 DG_CHEM_DISINFECT_STATE_FLUSH_DRAIN_R1 = 8 DG_CHEM_DISINFECT_STATE_PRIME_ACID_LINE = 9 DG_CHEM_DISINFECT_STATE_FILL_WITH_WATER_AND_DISINFECTANT = 10 DG_CHEM_DISINFECT_STATE_REMOVE_ACID_BOTTLE_FROM_UI = 11 DG_CHEM_DISINFECT_STATE_DISINFECT_R1_TO_R2 = 12 DG_CHEM_DISINFECT_STATE_FILL_R2_WITH_DISINFECTANT = 13 DG_CHEM_DISINFECT_STATE_DISINFECT_R2_TO_R1 = 14 DG_CHEM_DISINFECT_STATE_COOL_DOWN_HEATERS = 15 DG_CHEM_DISINFECT_STATE_DISINFECTANT_DRAIN_R1 = 16 DG_CHEM_DISINFECT_STATE_DISINFECTANT_DRAIN_R2 = 17 DG_CHEM_DISINFECT_STATE_RINSE_R1_TO_R2 = 18 DG_CHEM_DISINFECT_STATE_RINSE_R2_TO_R1_AND_DRAIN_R1 = 19 DG_CHEM_DISINFECT_STATE_RINSE_R1_TO_R2_AND_DRAIN_R2 = 20 DG_CHEM_DISINFECT_STATE_RINSE_CIRCULATION = 21 DG_CHEM_DISINFECT_STATE_CANCEL_BASIC_PATH = 22 DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH = 23 DG_CHEM_DISINFECT_STATE_COMPLETE = 24 NUM_OF_DG_CHEM_DISINFECT_STATES = 25 @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 DGEventList(DialinEnum): DG_EVENT_STARTUP = 0 DG_EVENT_OP_MODE_CHANGE = 1 DG_EVENT_SUB_MODE_CHANGE = 2 NUM_OF_DG_EVENT_IDS = 3 @unique class DGEventDataType(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 DGServiceModesStates(DialinEnum): DG_SERVICE_STATE_START = 0 # Start service mode state NUM_OF_DG_SERVICE_STATES = 1 # Number of service mode states