########################################################################### # # 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_PREG = 4 MODE_GEND = 5 MODE_POSG = 6 MODE_HEAT = 7 MODE_HCOL = 8 MODE_ROPS = 9 MODE_NLEG = 10 NUM_OF_DD_MODES = 11 @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 DDStandByModeStates(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 DDPreGenDialysateStates(DialinEnum): DD_PRE_GEN_DIALYSATE_HYD_CHAMBER_FILL_CHECK = 0, # DD Pre-Gen Dialysate hyrochamber fill check DD_PRE_GEN_DIALYSATE_WAIT_FOR_GEND = 1 # DD Pre-Gen Dialysate Wait for Gen Dialysate state transition NUM_OF_DD_PRE_GEN_DIALYSATE_STATES = 2 # Number of Pre-Gen Dialysate mode states @unique class DDGenDialysateModeStates(DialinEnum): DD_GEND_STATE_START = 0 # Gen dialysate start state DD_GEND_DIALYSATE_BYPASS_STATE = 1 # Gen dialysate - Bypass dialysate state DD_GEND_DIALYSATE_DELIVERY_STATE = 2 # Gen dialysate - deliver dialysate state DD_GEND_DIALYSATE_DELIVERY_PAUSE = 3 # Gen dialysate - dialysate delivery pause state DD_GEND_ISOLATED_UF_STATE = 4 # Gen dialysate - Isolated ultrafiltration state NUM_OF_DD_GEND_MODE_STATES = 5 # Number of gen dialysate states @unique class DDPostGenDialysateState(DialinEnum): DD_POST_GEN_DIALYSATE_STATE_START = 0 # DD Post-Gen Dialysate state start DD_POST_GEN_DIALYSATE_STATE_COMPLETE = 1 # DD Post-Gen Dialysate complete state NUM_OF_DD_POST_GEN_DIALYSATE_STATES = 2 # Number of Post-Gen Dialysate mode states @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 @unique class ConcentratePumpsEnum(DialinEnum): D11_CP1_ACID = 0 D10_CP2_BICARB = 1 D76_UF = 2 NUM_OF_CONCENTRATE_PUMPS = 3 @unique class DDConcentratePumpsStates(DialinEnum): CONCENTRATE_PUMP_OFF_STATE = 0 CONCENTRATE_PUMP_RAMP_TO_TARGET_SPEED_STATE = 1 CONCENTRATE_PUMP_CONTROL_TARGET_SPEED_STATE = 2 NUM_OF_CONCENTRATE_PUMP_STATES = 3 @unique class DDConcentratePumpAttributesEnum(DialinEnum): CURRENT_STATE = 0 CURRENT_SET_SPEED = 1 MEASURED_SPEED = 2 TARGET_SPEED = 3 PULSE_US = 4 TARGET_REV_COUNT = 5 MEASURED_REV_COUNT = 6 NUM_OF_D76_CONCENTRATE_PUMP_ATTRIBUTES = 7 PARKED = NUM_OF_D76_CONCENTRATE_PUMP_ATTRIBUTES PARK_FAULT = 8 NUM_OF_D10_D11_CONCENTRATE_PUMP_ATTRIBUTES = 9 @unique class ConductivitySensorsEnum(DialinEnum): D17_COND = 0 D27_COND = 1 D29_COND = 2 D43_COND = 3 D74_COND = 4 NUM_OF_CONDUCTIVITY_SENSORS = 5 @unique class DialysatePumpsEnum(DialinEnum): D12_PUMP = 0 # Fresh Dialysate Pump D48_PUMP = 1 # Spent Dialysate Pump NUM_OF_DIALYSATE_PUMPS = 2 @unique class DialysatePumpAttributesEnum(DialinEnum): TARGET_RPM = 0 MEASURED_SPEED = 1 CURRENT_SPEED = 2 STATE = 3 TARGET_PRESSURE = 4 MEASURED_PRESSURE = 5 MEASURED_CURRENT = 6 CONTROL = 7 DIRECTION_ERROR_COUNT = 8 MEASURED_DIRECTION = 9 NUM_OF_DIALYSATE_PUMP_ATTRIBUTES = 10 @unique class DDDialysatePumpsStates(DialinEnum): DIALYSATE_PUMP_OFF_STATE = 0 DIALYSATE_PUMP_RAMP_UP_STATE = 1 DIALYSATE_PUMP_CONTROL_TO_TARGET_STATE = 2 NUM_OF_DIALYSATE_PUMP_STATES = 3 @unique class HeatersStartStop(DialinEnum): STOP = 0 START = 1 @unique class HeatersState(DialinEnum): HEATER_EXEC_STATE_OFF = 0 HEATER_EXEC_STATE_RAMP_TO_TARGET = 1 HEATER_EXEC_STATE_CONTROL_TO_TARGET = 2 HEATER_EXEC_STATE_CONTROL_TO_DISINFECT_TARGET = 3 NUM_OF_HEATERS_STATE = 4 @unique class HeatersNames(DialinEnum): D5_HEAT = 0 D45_HEAT = 1 NUM_OF_DD_HEATERS = 2 @unique class HeatersAttributesEnum(DialinEnum): HEAT_DUTY_CYCLE = 0 HEAT_TARGET_TEMP = 1 HEAT_STATE = 2 DUTY_CYCLE_COUNT = 3 PWM_PERIOD = 4 ADJUSTED_TARGET_TEMP = 5 TARGET_TEMP_TD = 6 NUM_OF_DD_HEATER_ATTRIBUTES = 7 @unique class DDLevelSensorEnum(DialinEnum): D6_LEVEL = 0 # floater switch low, medium and high status D63_LEVEL = 1 # bicarb level low or high status D46_LEVEL = 2 # Spent dialysate air separation chamber level low or high status NUM_OF_LEVELS = 3 @unique class DDPistonPumpsEnum(DialinEnum): ACID = 0 # Acid piston pump BICARB = 1 # Bicarbonate piston pump UF = 2 # Ultrafilteration piston pump NUM_OF_PISTON_PUMPS = 3 # Number of piston pumps @unique class DDPistonPumpAttributesEnum(DialinEnum): CONTROL_STATE = 0, SW_COUNTER = 1, CYCLE_COUNTER = 2 NUM_OF_PISTON_PUMP_ATTRIBUTES = 3 @unique class PressureNames(DialinEnum): # Pressure Sensor IDs M1_PRES = 0 # Water Inlet pressure before regulator (PRi) M3_PRES = 1 # Water Inlet pressure after regulator (PRo) D9_PRES = 2 # Hydraulics outlet pressure (PHo/Pn) D66_PRES = 3 # Dry Bicarb pressure (PDB/PCb) D51_PRES = 4 # Spent Dialysate pressure (PDs) D18_PRES = 5 # Fresh Dialysate pressure (PDf) D41_PRES = 6 # Transmembrane pressure (Ptm) BARO_PRES = 7 # Barometric pressure sensor NUM_OF_PRESSURE_SENSORS = 8 @unique class PressureAttributesEnum (DialinEnum): PRES = 0 TEMP = 1 NUM_OF_PRES_SENSOR_ATTRIBUTES = 2 COND_SENSOR_INDEX_OFFSET = 5 @unique class DDTemperaturesNames(DialinEnum): D1_TEMP = 0 # Heat exchanger Inlet temperature sensor X6_TEMP = 1 # Heat exchanger Outlet temperature sensor D4_TEMP = 2 # Hydraulics primary heater temperature sensor D50_TEMP = 3 # Trimmer heater temperature sensor BRD_TEMP = 4 # Barometric temperature sensor BARO_TEMP = 5 # DD board temperature sensor ( thermistor ) D17_TEMP = 6 # D16 temperature value D27_TEMP = 7 # D28 temperature value D29_TEMP = 8 # D30 temperature value D44_TEMP = 9 # D44 temperature value D75_TEMP = 10 # D75 temperature value D4_AVG_TEMP = 11 # D4 Filtered value D50_AVG_TEMP = 12 # D50 Filtered value D28_AVG_TEMP = 13 # D28 Filtered value D30_AVG_TEMP = 14 # D30 Filtered value @unique class DDValveStates(DialinEnum): VALVE_STATE_CLOSED = 0 VALVE_STATE_OPEN = 1 @unique class DDValveNames(DialinEnum): D14_VALV = 0 # Valve Hydraulics Outlet (D14) D52_VALV = 1 # Valve Thermal Disinfect (D52) D8_VALV = 2 # Valve Hydraulics Bypass (D8) D54_VALV = 3 # Valve Rinse Port (D54) D53_VALV = 4 # Valve Drain (D53) D34_VALV = 5 # Valve Dialyzer Bypass (D34) D64_VALV = 6 # Valve Purge 1 (D64) D31_VALV = 7 # Valve Pressure Test (D31) D65_VALV = 8 # Valve DryBcarb Inlet (D65) D35_VALV = 9 # Valve Dialyzer Inlet (D35) D40_VALV = 10 # Valve Dialyzer Outlet (D40) D47_VALV = 11 # Valve Dialysate Out Purge 2 (D47) D3_VALV = 12 # Valve Hydraulics Inlet (D3) M4_VALV = 13 # Valve Water Inlet (M4) RSRVD_SPACE1 = 14 # This space has been reserved RSRVD_SPACE2 = 15 # This space has been reserved D23_VALV = 16 # Balancing chamber Valve 1 (D23) D19_VALV = 17 # Balancing chamber Valve 2 (D19) D25_VALV = 18 # Balancing chamber Valve 3 (D25) D26_VALV = 19 # Balancing chamber Valve 7 (D26) D24_VALV = 20 # Balancing chamber Valve 5 (D24) D20_VALV = 21 # Balancing chamber Valve 6 (D20) D21_VALV = 22 # Balancing chamber Valve 4 (D21) D22_VALV = 23 # Balancing chamber Valve 8 (D22) D69_VALV = 24 # Ultrafiltration Valve 1 Inlet (D69) D71_VALV = 25 # Ultrafiltration Valve 2 Inlet (D71) D70_VALV = 26 # Ultrafiltration Valve 1 Outlet (D70) D72_VALV = 27 # Ultrafiltration Valve 2 Outlet (D72) NUM_OF_DD_VALVES = 28