/************************************************************************** * * Copyright (c) 2024-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 DDDefs.h * * @author (last) Vinayakam Mani * @date (last) 30-Jul-2024 * * @author (original) Vinayakam Mani * @date (original) 30-Jul-2024 * ***************************************************************************/ #ifndef __DD_DEFS_H__ #define __DD_DEFS_H__ // ********** public definitions ********** /** * @addtogroup DDOperationModes * @{ */ /// Enumeration of DD operation modes. These are in order of priority (highest to lowest). enum DD_Op_Modes { DD_MODE_FAUL = 0, ///< Fault mode DD_MODE_SERV, ///< Service mode DD_MODE_INIT, ///< Initialization & POST mode DD_MODE_STAN, ///< Standby mode DD_MODE_PREG, ///< Dialysate Pre-Generation mode DD_MODE_GEND, ///< Generate Dialysate mode DD_MODE_POSG, ///< Post Dialysate Generation mode DD_MODE_HEAT, ///< Heat Disinfect mode DD_MODE_HCOL, ///< Heat Disinfect cooling mode DD_MODE_ROPS, ///< RO permeate sample mode DD_MODE_NLEG, ///< Not legal - an illegal mode transition occurred NUM_OF_DD_MODES ///< Number of DD operation modes }; typedef enum DD_Op_Modes DD_OP_MODE_T; ///< Type for DD operation modes enumeration /**@}*/ /** * @addtogroup DDInitAndPOSTMode * @{ */ /// Enumeration of init & POST mode states. enum DD_POST_States { DD_POST_STATE_START = 0, ///< Start initialize & POST mode state DD_POST_STATE_FW_COMPATIBILITY, ///< Run firmware compatibility test state DD_POST_STATE_FW_INTEGRITY, ///< Run firmware image integrity test state DD_POST_STATE_FPGA, ///< FPGA POST test state DD_POST_STATE_NVDATAMGMT, ///< Non-volatile data management POST state DD_POST_STATE_TEMPERATURE_SENSORS, ///< Temperature Sensors POST state DD_POST_STATE_PRESSURES, ///< Pressure sensors POST state DD_POST_STATE_DIALYSATE_PUMPS, ///< Dialysate pumps POST state DD_POST_STATE_CONCENTRATE_PUMPS, ///< Concentrate pumps POST state DD_POST_STATE_CONDUCTIVITY_SENSORS, ///< Conductivity sensors POST state DD_POST_STATE_WATCHDOG, ///< Watchdog POST test state DD_POST_STATE_SAFETY_SHUTDOWN, ///< Safety shutdown POST test state DD_POST_STATE_COMPLETED, ///< POST completed successfully state DD_POST_STATE_FAILED, ///< POST failed state NUM_OF_DD_POST_STATES ///< Number of initialize & POST mode states }; typedef enum DD_POST_States DD_POST_STATE_T; ///< Type for DD POST states enumeration /**@}*/ /** * @addtogroup DDFaultMode * @{ */ /// Enumeration of fault mode states. enum DD_Fault_States { DD_FAULT_STATE_START = 0, ///< DD fault start state DD_FAULT_STATE_RUN_NV_POSTS, ///< DD fault run RTC and NV data management posts DD_FAULT_STATE_COMPLETE, ///< DD fault complete NUM_OF_DD_FAULT_STATES ///< Number of fault mode states }; typedef enum DD_Fault_States DD_FAULT_STATE_T; ///< Type for DD fault states enumeration /**@}*/ /** * @addtogroup DDStandbyMode * @{ */ /// Enumeration of standby mode states. enum DD_Standby_Mode_States { DD_STANDBY_MODE_STATE_IDLE = 0, ///< Idle standby mode state DD_STANDBY_MODE_STATE_PAUSE, ///< Pause state NUM_OF_DD_STANDBY_MODE_STATES ///< Number of standby mode states }; typedef enum DD_Standby_Mode_States DD_STANDBY_MODE_STATE_T; ///< Type for DD standby mode states enumeration /// Sub-mode states while in standby mode disinfect enum DD_Disinfect_States { DD_DISINFECT_FLUSH_STATE = 0, ///< DD disinfect flush DD_DISINFECT_HEAT_STATE, ///< DD disinfect heat DD_DISINFECT_RO_PERMEATE_SAMPLE_STATE, ///< DD disinfect RO permeate sample DD_DISINFECT_NOT_RUNNING_STATE, ///< DD disinfect not running NUM_OF_DD_DISINFECT_STATES ///< Number of DD disinfect states }; typedef enum DD_Disinfect_States DD_DISINFECT_STATE_T; ///< Type for DD disinfect states that are broadcast to UI /**@}*/ /** * @addtogroup DDPreGenDialysateMode * @{ */ /// Enumeration of Pre-Gen Dialysate mode states. enum DD_Pre_Gen_Dialysate_States { DD_PRE_GEN_DIALYSATE_HYD_CHAMBER_FILL_CHECK = 0, ///< DD Pre-Gen Dialysate hyrochamber fill check DD_PRE_GEN_WET_SELF_TEST, ///< DD Pre-Gen WetSelf Test DD_PRE_GEN_DIALYSATE_WAIT_FOR_GEND, ///< DD Pre-Gen Dialysate Wait for Gen Dialysate state transition NUM_OF_DD_PRE_GEN_DIALYSATE_STATES ///< Number of Pre-Gen Dialysate mode states }; typedef enum DD_Pre_Gen_Dialysate_States DD_PRE_GEN_DIALYSATE_STATE_T; ///< Type for DD Pre-Gen Dialysate states enumeration /// Enumeration of Pre-Gen Wet self test states. enum DD_Pre_Gen_Wet_Self_Test_States { DD_WET_SELF_TEST_START = 0, ///< DD Wet Slef test Start DD_WET_SELF_TEST_NEGATIVE_DEAERATION_PRES_CHECK, ///< DD Wet Self Test Negative Deaeration Pressure check DD_WET_SELF_TEST_POSITIVE_DEAERATION_PRES_CHECK, ///< DD Wet Self Test Postive Deaeration Pressure check DD_WET_SELF_TEST_SPENT_DIAL_PRES_CHECK, ///< DD Wet Self Test Spent Dialysate Pressure check DD_WET_SELF_TEST_BAL_CHAMBER_VALV_LEAK_CHECK, ///< DD Wet Self Test Balancing Chamber Valve Leak check DD_WET_SELF_TEST_DIAL_FLOW_PATH_LEAK_CHECK, ///< DD Wet Self Test Dialysate flow path leak check DD_WET_SELF_TEST_UF_PRES_DROP_CHECK, ///< DD Wet Self Test Ultrafilter pressure drop check DD_WET_SELF_TEST_BLOOD_LEAK_CHECK, ///< DD Wet Self Test Ultrafilter pressure drop check DD_WET_SELF_TEST_BAL_CHAMBER_MEMBRANE_INTEGRITY_CHECK, ///< DD Wet Self Test Balancing Chamber Membrane Integrity check DD_WET_SELF_TEST_LEVEL_SENSOR_CHECK, ///< DD Wet Self Test Level Sensor check DD_WET_SELF_TEST_PAUSE, ///< DD Wet Self Test Pause state NUM_OF_DD_PRE_GEN_WET_SELF_TEST_STATES ///< Number of Wet Self Test states }; typedef enum DD_Pre_Gen_Wet_Self_Test_States DD_WET_SELF_TEST_STATE_T; ///< Type for DD Pre-Gen Wet Self Test states enumeration /**@}*/ /** * @addtogroup DDGenDialysateMode * @{ */ /// Enumeration of GenDialysate mode states. enum DD_GenD_Mode_States { DD_GEND_STATE_START = 0, ///< Gen dialysate start state DD_GEND_DIALYSATE_BYPASS_STATE, ///< Gen dialysate - Bypass dialysate state DD_GEND_DIALYSATE_DELIVERY_STATE, ///< Gen dialysate - deliver dialysate state DD_GEND_DIALYSATE_DELIVERY_PAUSE, ///< Gen dialysate - dialysate delivery pause state DD_GEND_ISOLATED_UF_STATE, ///< Gen dialysate - Isolated ultrafiltration state NUM_OF_DD_GEND_MODE_STATES ///< Number of gen dialysate states }; typedef enum DD_GenD_Mode_States DD_GEND_MODE_STATE_T; ///< Type for DD gen dialysate mode states enumeration /// DD acid types enum dd_acid_types { ACID_08_1251_1 = 0, ///< Acid type 08-1251-1. ACID_08_2251_0, ///< Acid type 08-2251-0. ACID_08_3251_9, ///< ACid type 08-3251-9. NUM_OF_ACID_TYPE ///< Number of acid types. }; typedef enum dd_acid_types DD_ACID_TYPES_T; /// DD bicarb types enum dd_bicarb_types { BICARB_08_677753_0 = 0, ///< Bicarb type 08-677753-0 NUM_OF_BICARB_TYPE ///< Number of bicarb types. }; typedef enum dd_bicarb_types DD_BICARB_TYPES_T; /**@}*/ /** * @addtogroup DDPostGenDialysateMode * @{ */ /// Enumeration of Post Gen Dialysate mode states. enum DD_Post_Gen_Dialysate_States { DD_POST_GEN_DIALYSATE_STATE_START = 0, ///< DD Post-Gen Dialysate state start DD_POST_GEN_DIALYSATE_STATE_COMPLETE, ///< DD Post-Gen Dialysate complete state NUM_OF_DD_POST_GEN_DIALYSATE_STATES ///< Number of Post-Gen Dialysate mode states }; typedef enum DD_Post_Gen_Dialysate_States DD_POST_GEN_DAILYSATE_STATE_T; ///< Type for DD Post-Gen Dialysate states enumeration /**@}*/ /** * @addtogroup DDHeatDisinfectMode * @{ */ /// Enumeration of heat disinfect mode states. enum DD_Heat_States { DD_HEAT_DISINFECT_STATE_START = 0, ///< Heat disinfect, start mode state DD_HEAT_DISINFECT_STATE_COMPLETE, ///< Heat disinfect, complete state NUM_OF_DD_HEAT_DISINFECT_STATES ///< Number of heat disinfect mode states }; typedef enum DD_Heat_States DD_HEAT_DISINFECT_STATE_T; ///< Type for DD heat disinfect states enumeration /// Enumeration of heat disinfect mode states. enum DD_Heat_UI_States { HEAT_DISINFECT_UI_STATE_NOT_RUNNING = 0, ///< Heat disinfect UI, not running state HEAT_DISINFECT_UI_STATE_COMPLETE, ///< Heat disinfect UI, complete state NUM_OF_HEAT_DISINFECT_UI_STATES ///< Number of heat disinfect mode UI states }; typedef enum DD_Heat_UI_States DD_HEAT_DISINFECT_UI_STATE_T; ///< Type for DD heat disinfect UI states enumeration #if defined(_TD_) || defined(_DD_) /// Heat disinfect data publish struct typedef struct { U32 heatDisinfectState; ///< Heat disinfect state. U32 overallElapsedTime; ///< Overall elapsed time in heat disinfect mode. U32 stateElapsedTime; ///< Current heat disinfect elapsed time. U32 cancellationMode; ///< Heat disinfect cancellation mode. U32 heatDisinfectUIState; ///< Heat disinfect UI state. } MODE_HEAT_DISINFECT_DATA_T; #endif /// Cancellation paths enum Cancellation_modes { CANCELLATION_MODE_NONE = 0, ///< Cancellation mode none. CANCELLATION_MODE_BASIC, ///< Cancellation mode basic. CANCELLATION_MODE_HOT, ///< Cancellation mode hot. CANCELLATION_MODE_COLD, ///< Cancellation mode cold. CANCELLATION_MODE_WATER, ///< Cancellation mode water. NUM_OF_CANCELLATION_MODES ///< Number of cancellation modes. }; typedef enum Cancellation_modes CANCELLATION_MODE_T; /**@}*/ /** * @addtogroup DDServiceMode * @{ */ /// Enumeration of service mode states. enum DD_Service_States { DD_SERVICE_STATE_START = 0, ///< Start service mode state NUM_OF_DD_SERVICE_STATES ///< Number of service mode states }; typedef enum DD_Service_States DD_SERVICE_STATE_T; ///< Type for DD service states enumeration /**@}*/ /** * @addtogroup DDInterface * @{ */ /// Enumeration of available DD commands. enum DD_Command { DD_CMD_NONE = 0, ///< Not a command NUM_OF_DD_COMMANDS ///< Number of DD commands }; typedef enum DD_Command DD_COMMAND_T; ///< Type for DD commands enumeration /// Enumeration of general commands to DD sub-system. enum DD_General_Commands { DD_CMD_STOP = 0, ///< DD general stop command DD_CMD_START = 1, ///< DD general start command NUM_OF_DD_CMDS ///< Number of DD general commands }; typedef enum DD_General_Commands DD_GENERAL_COMMAND_T; ///< Type for DD general command enum. /**@}*/ /** * @addtogroup CommonHeader * @{ */ /// Enumeration of DD event IDs. enum DD_Event_List { DD_EVENT_STARTUP = 0, ///< DD startup event DD_EVENT_OP_MODE_CHANGE, ///< DD Op mode change event DD_EVENT_SUB_MODE_CHANGE, ///< DD Op sub-mode change event DD_EVENT_OPERATION_STATUS, ///< DD operation status event DD_EVENT_D6_LEVL_CHANGE, ///< DD floater level change event DD_EVENT_D63_LEVL_CHANGE, ///< DD bicarb level change event DD_EVENT_D46_LEVL_CHANGE, ///< DD spent dialysate air seperation level change event DD_EVENT_TD_COMMUNICATION_LOSS, ///< DD TD communication loss NUM_OF_DD_EVENT_IDS ///< Total number of DD events }; typedef enum DD_Event_List DD_EVENT_ID_T; ///< Type for DD event list enumeration /**@}*/ /** * @addtogroup HeatersState * @{ */ /// Heaters exec states typedef enum Heaters_Exec_States { HEATER_EXEC_STATE_OFF = 0, ///< Heater exec state off. HEATER_EXEC_STATE_RAMP_TO_TARGET, ///< Heater exec state ramp to target. HEATER_EXEC_STATE_CONTROL_TO_TARGET, ///< Heater exec state control to target. HEATER_EXEC_STATE_CONTROL_TO_DISINFECT_TARGET, ///< Heater exec state control to disinfect (heat) target. NUM_OF_HEATERS_STATE, ///< Number of heaters state. } HEATERS_STATE_T; /**@}*/ /** * @addtogroup BalancingChamber * @{ */ /// Enumeration of balancing chamber exec states. enum Balancing_Chamber_Exec_States { BAL_CHAMBER_STATE_START = 0, ///< Initial state of balancing chamber BAL_CHAMBER_STATE1_FILL_START, ///< Balancing chamber state 1 fill start state BAL_CHAMBER_STATE1_BICARB_ACID_DOSING_CNTRL, ///< Balancing Chamber state 1 Bicarb and acid dosing control state BAL_CHAMBER_STATE1_FILL_END, ///< Balancing Chamber state 1 fill end state BAL_CHAMBER_STATE2_FILL_START, ///< Balancing chamber state 2 fill start state BAL_CHAMBER_STATE2_BICARB_ACID_DOSING_CNTRL, ///< Balancing Chamber state 2 Bicarb and acid dosing control state BAL_CHAMBER_STATE2_FILL_END, ///< Balancing Chamber state 2 fill end state NUM_OF_BAL_CHAMBER_EXEC_STATES ///< Number of balancing chamber states }; typedef enum Balancing_Chamber_Exec_States BAL_CHAMBER_EXEC_STATE_T; ///< Type for balancing chamber exec state enumeration /// Enumeration of balancing chamber states. enum Balancing_Chamber_Switching_States { BAL_CHAMBER_SW_STATE1 = 0, ///< Balancing chamber switching state 1 (V2,V5 and V3, V8 open, rest closed) BAL_CHAMBER_SW_STATE2, ///< Balancing chamber switching state 2 ( V1,V6 and V4, V7 open, rest closed) NUM_OF_BAL_CHAMBER_SW ///< Number of balancing chamber states }; typedef enum Balancing_Chamber_Switching_States BAL_CHAMBER_SW_STATE_T; ///< Type for balancing chamber Switching state enumeration /**@}*/ #endif