/************************************************************************** * * Copyright (c) 2020-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 DGDefs.h * * @author (last) Michael Garthwaite * @date (last) 09-Oct-2023 * * @author (original) Sean Nash * @date (original) 29-May-2020 * ***************************************************************************/ #ifndef __DG_DEFS_H__ #define __DG_DEFS_H__ // ********** public definitions ********** /** * @addtogroup DGOperationModes * @{ */ /// Enumeration of operation modes. These are in order of priority (highest to lowest). enum DG_Op_Modes { DG_MODE_FAUL = 0, ///< Fault mode DG_MODE_SERV, ///< Service mode DG_MODE_INIT, ///< Initialization & POST mode DG_MODE_STAN, ///< Standby mode - connected to HD DG_MODE_SOLO, ///< Standby Solo mode - no HD connected DG_MODE_GENE, ///< Generation idle mode DG_MODE_FILL, ///< Fill mode DG_MODE_DRAI, ///< Drain mode DG_MODE_FLUS, ///< Flush mode DG_MODE_HEAT, ///< Heat Disinfect mode DG_MODE_CHEM, ///< Chemical Disinfect mode DG_MODE_CHFL, ///< Chemical Disinfect Flush mode DG_MODE_HCOL, ///< Heat disinfect cooling mode DG_MODE_ROPS, ///< RO permeate sample mode DG_MODE_NLEG, ///< Not legal - an illegal mode transition occurred NUM_OF_DG_MODES ///< Number of DG operation modes }; typedef enum DG_Op_Modes DG_OP_MODE_T; ///< Type for DG operation modes enumeration /**@}*/ /** * @addtogroup DGInitAndPOSTMode * @{ */ /// Enumeration of init & POST mode states. enum DG_POST_States { DG_POST_STATE_START = 0, ///< Start initialize & POST mode state DG_POST_STATE_FW_COMPATIBILITY, ///< Run firmware compatibility test state DG_POST_STATE_FW_INTEGRITY, ///< Run firmware image integrity test state DG_POST_STATE_FPGA, ///< FPGA POST test state DG_POST_STATE_RTC, ///< RTC POST test state DG_POST_STATE_NVDATAMGMT, ///< Non-volatile data management POST state DG_POST_STATE_TEMPERATURE_SENSORS, ///< Temperature Sensors POST state DG_POST_STATE_ACCELEROMETER, ///< Accelerometer POST state DG_POST_STATE_PRESSURES, ///< Pressure sensors POST state DG_POST_STATE_DRAIN_PUMP, ///< Drain pump POST state DG_POST_STATE_CONCENTRATE_PUMPS, ///< Concentrate pumps POST state DG_POST_STATE_CONDUCTIVITY_SENSORS, ///< Conductivity sensors POST state DG_POST_STATE_RESERVOIRS, ///< Reservoirs POST state DG_POST_STATE_UV_REACTORS, ///< UV reactors POST state DG_POST_STATE_THERMISTORS, ///< Thermistors POST state DG_POST_STATE_FANS, ///< Fans POST state DG_POST_STATE_FLOW_SENSORS, ///< Flow sensors POST state DG_POST_STATE_WATCHDOG, ///< Watchdog POST test state DG_POST_STATE_SAFETY_SHUTDOWN, ///< Safety shutdown POST test state DG_POST_STATE_LOAD_CELL, ///< Load cells POST state DG_POST_STATE_COMPLETED, ///< POST completed successfully state DG_POST_STATE_FAILED, ///< POST failed state NUM_OF_DG_POST_STATES ///< Number of initialize & POST mode states }; typedef enum DG_POST_States DG_POST_STATE_T; ///< Type for DG POST states enumeration /**@}*/ /** * @addtogroup DGFaultMode * @{ */ /// Enumeration of fault mode states. enum DG_Fault_States { DG_FAULT_STATE_START = 0, ///< DG fault start state DG_FAULT_STATE_RUN_NV_POSTS, ///< DG fault run RTC and NV data management posts DG_FAULT_STATE_COMPLETE, ///< DG fault complete NUM_OF_DG_FAULT_STATES ///< Number of fault mode states }; typedef enum DG_Fault_States DG_FAULT_STATE_T; ///< Type for DG fault states enumeration /**@}*/ /** * @addtogroup DGSoloStandbyMode * @{ */ /// Enumeration of solo standby mode states. enum DG_Solo_States { DG_SOLO_STANDBY_STATE_START = 0, ///< Start solo standby mode state DG_SOLO_IDLE_STATE, ///< Idle solo standby mode state NUM_OF_DG_SOLO_STANDBY_STATES ///< Number of solo standby mode states }; typedef enum DG_Solo_States DG_SOLO_STANDBY_STATE_T; ///< Type for DG solo mode states enumeration /**@}*/ /** * @addtogroup DGStandbyMode * @{ */ /// Enumeration of standby mode states. enum DG_Standby_Mode_States { DG_STANDBY_MODE_STATE_IDLE = 0, ///< Idle standby mode state DG_STANDBY_MODE_STATE_FLUSH_FILTER, ///< Sample water flush filter state DG_STANDBY_MODE_STATE_FLUSH_FILTER_IDLE, ///< Sample water flush filter idle state DG_STANDBY_MODE_STATE_SAMPLE_WATER, ///< Sample water state DG_STANDBY_MODE_STATE_PAUSE, ///< Pause state NUM_OF_DG_STANDBY_MODE_STATES ///< Number of standby mode states }; typedef enum DG_Standby_Mode_States DG_STANDBY_MODE_STATE_T; ///< Type for DG standby mode states enumeration /**@}*/ /** * @addtogroup DGRecirculateMode * @{ */ /// Enumeration of generation idle mode states. enum DG_Generation_Idle_Mode_States { DG_GEN_IDLE_MODE_STATE_START = 0, ///< Start generation idle mode state DG_GEN_IDLE_MODE_STATE_FLUSH_WATER, /// Handle normal fill state (idle 0.0) DG_GEN_IDLE_MODE_STATE_HANDLE_BAD_FILL, ///< Handle bad fill state (idle 1.0) NUM_OF_DG_GEN_IDLE_MODE_STATES ///< Number of idle mode states }; typedef enum DG_Generation_Idle_Mode_States DG_GEN_IDLE_MODE_STATE_T; ///< Type for DG generation idle mode states enumeration /// Enumeration of generation idle mode states. enum DG_Generation_Idle_Mode_Bad_Fill_Substates { DG_HANDLE_BAD_FILL_STATE_START = 0, ///< Bad fill start state DG_HANDLE_BAD_FILL_STATE_FIRST_DRAIN, ///< First drain the dialysate DG_HANDLE_BAD_FILL_STATE_FLUSH_FILL, ///< Flush then fill the dialysate DG_HANDLE_BAD_FILL_STATE_SECOND_DRAIN, ///< Second drain the dialysate DG_HANDLE_BAD_FILL_STATE_REFILL, ///< Refill the dialysate NUM_OF_DG_HANDLE_BAD_FILL_STATES ///< Number of bad fill states }; typedef enum DG_Generation_Idle_Mode_Bad_Fill_Substates DG_GEN_IDLE_MODE_BAD_FILL_STATE_T; ///< Type for DG generation idle mode bad fill sub-states enumeration /**@}*/ /** * @addtogroup DGFillMode * @{ */ /// Enumeration of fill mode states. enum DG_Fill_Mode_States { DG_FILL_MODE_STATE_TEST_INLET_WATER = 0, ///< Test inlet water quality state DG_FILL_MODE_STATE_PRIME_CONCENTRATE_LINES, ///< Prime the acid and bicarb concentrate lines DG_FILL_MODE_STATE_FLUSH_BUBBLES, ///< Flush the bubbles in the lines state DG_FILL_MODE_STATE_TEST_BICARB_CONDUCTIVITY, ///< Test the conductivity range of the bicarb concentrate state DG_FILL_MODE_STATE_TEST_ACID_CONDUCTIVITY, ///< Test the conductivity range of the acid concentrate state DG_FILL_MODE_STATE_PRODUCE_DIALYSATE, ///< Dialysate production state DG_FILL_MODE_STATE_DELIVER_DIALYSATE, ///< Dialysate deliver state DG_FILL_MODE_STATE_PAUSED, ///< Dialysate generation pause state NUM_OF_DG_FILL_MODE_STATES ///< Number of fill mode states }; typedef enum DG_Fill_Mode_States DG_FILL_MODE_STATE_T; ///< Type for DG fill mode states enumeration /**@}*/ /** * @addtogroup DGDrainMode * @{ */ /// Enumeration of drain mode states. enum DG_Drain_States { DG_DRAIN_STATE_START = 0, ///< Start drain mode state DG_DRAIN_STATE_DRAIN, ///< Drain drain mode state DG_DRAIN_STATE_TARE, ///< Tare drain mode state DG_DRAIN_STATE_RINSE, ///< Rinse concentrate lines drain mode state NUM_OF_DG_DRAIN_STATES ///< Number of drain mode states }; typedef enum DG_Drain_States DG_DRAIN_STATE_T; ///< Type for DG drain mode states enumeration /**@}*/ /** * @addtogroup HDDisinfectStates * @{ */ /// Sub-mode states while in standby mode disinfect enum DG_Disinfect_States { DG_DISINFECT_FLUSH_STATE = 0, ///< DG disinfect flush DG_DISINFECT_HEAT_STATE, ///< DG disinfect heat DG_DISINFECT_CHEM_STATE, ///< DG disinfect chemical DG_DISINFECT_CHEM_FLUSH_STATE, ///< DG disinfect chemical flush DG_DISINFECT_RO_PERMEATE_SAMPLE_STATE, ///< DG disinfect RO permeate sample DG_DISINFECT_NOT_RUNNING_STATE, ///< DG disinfect not running NUM_OF_DG_DISINFECT_STATES ///< Number of DG disinfect states }; typedef enum DG_Disinfect_States DG_DISINFECT_STATE_T; ///< Type for DG disinfect states that are broadcast to UI /**@}*/ /** * @addtogroup DGFlushMode * @{ */ /// Enumeration of flush mode states. enum DG_Flush_States { DG_FLUSH_STATE_START = 0, ///< Flush, start mode state DG_FLUSH_STATE_DRAIN_R1, ///< Flush, drain reservoir 1 state DG_FLUSH_STATE_DRAIN_R2, ///< Flush, drain reservoir 2 state DG_FLUSH_STATE_FLUSH_DRAIN, ///< Flush, flush drain state DG_FLUSH_STATE_FLUSH_DIALYSATE, ///< Flush, flush dialysate state DG_FLUSH_STATE_FLUSH_CONCENTRATE_STRAWS, ///< Flush, flush concentrate straws state DG_FLUSH_STATE_FLUSH_R1_TO_R2, ///< Flush, flush reservoir 1 to reservoir 2 state DG_FLUSH_STATE_FLUSH_R2_AND_DRAIN_R1, ///< Flush, flush reservoir 2 and drain reservoir 1 state DG_FLUSH_STATE_FLUSH_CIRCULATION_DRAIN_LINE, ///< Flush, flush circulation drain line state DG_FLUSH_STATE_FLUSH_CIRCULATION, ///< Flush, flush circulation state DG_FLUSH_STATE_FLUSH_WITH_FRESH_WATER, ///< Flush, flush with fresh water DG_FLUSH_STATE_CANCEL_BASIC_PATH, ///< Flush, cancel basic path state DG_FLUSH_STATE_CANCEL_WATER_PATH, ///< Flush, cancel water path state DG_FLUSH_STATE_COMPLETE, ///< Flush, complete mode state NUM_OF_DG_FLUSH_STATES ///< Number of flush mode states }; typedef enum DG_Flush_States DG_FLUSH_STATE_T; ///< Type for DG flush mode states enumeration /// Enumeration of flush mode UI states. enum DG_Flush_UI_States { FLUSH_UI_STATE_NOT_RUNNING = 0, ///< Flush UI, not running state FLUSH_UI_STATE_DRAIN_DEVICE, ///< Flush UI, drain device state FLUSH_UI_STATE_FLUSH_RESERVOIRS, ///< Flush UI, flush reservoirs FLUSH_UI_STATE_DRAIN_RESERVOIRS, ///< Flush UI, drain reservoirs FLUSH_UI_STATE_FLUSH_RECIRCULATION_PATH, ///< Flush UI, flush recirculation path FLUSH_UI_STATE_CANCEL_FLUSH, ///< Flush UI, cancel flush state FLUSH_UI_STATE_COMPLETE, ///< Flush UI, complete state NUM_OF_FLUSH_UI_STATES ///< Number of flush UI states }; typedef enum DG_Flush_UI_States DG_FLUSH_UI_STATE_T; ///< Type for DG flush mode UI states enumeration #if defined(_HD_) || defined(_DG_) /// Flush mode data publish struct typedef struct { U32 flushState; ///< Flush state. U32 overallElapsedTime; ///< Overall elapsed time in flush mode. U32 stateElapsedTime; ///< Current flush elapsed time. F32 drainLineVolume; ///< Drain line volume. U32 flushUIState; ///< Flush UI state. } MODE_FLUSH_DATA_T; #endif /**@}*/ /** * @addtogroup DGHeatDisinfectMode * @{ */ /// Enumeration of heat disinfect mode states. enum DG_Heat_States { DG_HEAT_DISINFECT_STATE_START = 0, ///< Heat disinfect, start mode state DG_HEAT_DISINFECT_STATE_DRAIN_R1, ///< Heat disinfect, drain R1 state DG_HEAT_DISINFECT_STATE_DRAIN_R2, ///< Heat disinfect, drain R2 state DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN, ///< Heat disinfect, flush drain state DG_HEAT_DISINFECT_STATE_FLUSH_CIRCULATION, ///< Heat disinfect, flush circulation state DG_HEAT_DISINFECT_STATE_FLUSH_R1_AND_R2, ///< Heat disinfect, flush R1 and R2 state DG_HEAT_DISINFECT_STATE_FLUSH_R2_AND_DRAIN_R1, ///< Heat disinfect, flush R2 and drain R1 state DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN_R2, ///< Heat disinfect, flush drain R2 state DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN_R1, ///< Heat disinfect, flush drain R1 state DG_HEAT_DISINFECT_STATE_FILL_WITH_WATER, ///< Heat disinfect, fill with water state DG_HEAT_DISINFECT_STATE_DISINFECT_R1_TO_R2, ///< Heat disinfect, disinfect R1 to R2 state DG_HEAT_DISINFECT_STATE_PREPARE_FOR_HOT_WATER_TRANSITION, ///< Heat disinfect, prepare for hot water transition DG_HEAT_DISINFECT_STATE_FILL_R2_WITH_HOT_WATER, ///< Heat disinfect, fill R2 with hot water state DG_HEAT_DISINFECT_STATE_DISINFECT_R2_TO_R1, ///< Heat disinfect, disinfect R2 to R1 state DG_HEAT_DISINFECT_STATE_COOL_DOWN_HEATERS, ///< Heat disinfect, cool down heaters state DG_HEAT_DISINFECT_STATE_MIX_DRAIN_R1, ///< Heat disinfect, mix drain R1 state DG_HEAT_DISINFECT_STATE_MIX_DRAIN_R2, ///< Heat disinfect, mix drain R2 state DG_HEAT_DISINFECT_STATE_CANCEL_BASIC_PATH, ///< Heat disinfect, cancel mode basic path state DG_HEAT_DISINFECT_STATE_CANCEL_WATER_PATH, ///< Heat disinfect, cancel mode water path state DG_HEAT_DISINFECT_STATE_COMPLETE, ///< Heat disinfect, complete state #ifndef _RELEASE_ DG_NELSON_HEAT_DISINFECT_STATE_FILL_R1_WITH_WATER, #endif NUM_OF_DG_HEAT_DISINFECT_STATES ///< Number of heat disinfect mode states }; typedef enum DG_Heat_States DG_HEAT_DISINFECT_STATE_T; ///< Type for DG heat disinfect states enumeration /// Enumeration of heat disinfect mode states. enum DG_Heat_UI_States { HEAT_DISINFECT_UI_STATE_NOT_RUNNING = 0, ///< Heat disinfect UI, not running state HEAT_DISINFECT_UI_STATE_FLUSH_BEFORE_DISINFECT, ///< Heat disinfect UI, flush before disinfect state HEAT_DISINFECT_UI_STATE_HEAT_UP_WATER, ///< Heat disinfect UI, heat up water state HEAT_DISINFECT_UI_STATE_DISINFECT_RESERVOIR_1, ///< Heat disinfect UI, disinfect reservoir 1 state HEAT_DISINFECT_UI_STATE_TRANSITION_HOT_WATER, ///< Heat disinfect UI, transition hot water state HEAT_DISINFECT_UI_STATE_DISINFECT_RESERVOIR_2, ///< Heat disinfect UI, disinfect reservoir 2 state HEAT_DISINFECT_UI_STATE_COOL_DOWN_DEVICE, ///< Heat disinfect UI, cool down device state HEAT_DISINFECT_UI_STATE_FLUSH_AFTER_DISINFECT, ///< Heat disinfect UI, flush after disinfect state HEAT_DISINFECT_UI_STATE_CANCEL_DISINFECT, ///< Heat disinfect UI, cancel disinfect 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 DG_Heat_UI_States DG_HEAT_DISINFECT_UI_STATE_T; ///< Type for DG heat disinfect UI states enumeration #if defined(_HD_) || defined(_DG_) /// 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. F32 R1FillLevel; ///< Reservoir 1 level upon starting the heat disinfect. F32 R2FillLevel; ///< Reservoir 2 level upon starting the heat disinfect. U32 heatDisinfectUIState; ///< Heat disinfect UI state. } MODE_HEAT_DISINFECT_DATA_T; #endif /// Cancellation paths typedef 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_CHEMICAL, ///< Cancellation mode chemical. CANCELLATION_MODE_WATER, ///< Cancellation mode water. NUM_OF_CANCELLATION_MODES ///< Number of cancellation modes. } CANCELLATION_MODE_T; /**@}*/ /** * @addtogroup DGHeatDisinfectActiveCoolMode * @{ */ /// Enumeration of heat disinfect active cool mode states. enum DG_Heat_Cool_States { DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_START = 0, ///< Heat disinfect active cool, start mode state. DG_HEAT_DISINFECT_ACITVE_COOL_MIX_DRAIN_R1_STATE, ///< Heat disinfect active cool, mix drain R1 state. DG_HEAT_DISINFECT_ACTIVE_COOL_MIX_DRAIN_R2_STATE, ///< Heat disinfect active cool, mix drain R2 state. DG_HEAT_DISINFECT_ACTIVE_COOL_FILL_R1_STATE, ///< Heat disinfect active cool, fill R1 state. DG_HEAT_DISINFECT_ACTIVE_COOL_FILL_R2_STATE, ///< Heat disinfect active cool, fill R2 state. DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R2_FILL_R1_TO_R2_STATE, ///< Heat disinfect active cool, drain R2 fill R1 to R2 state. DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R1_FILL_R2_TO_R1_STATE, ///< Heat disinfect active cool, drain R1 fill R2 to R1 state. DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R1_STATE, ///< Heat disinfect active cool, drain R1 state. DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R2_STATE, ///< Heat disinfect active cool, drain R2 state. DG_HEAT_DISINFECT_ACTIVE_COOL_CANCEL_WATER_PATH_STATE, ///< Heat disinfect active cool, cancel water path state. DG_HEAT_DISINFECT_ACTIVE_COOL_CANCEL_BASIC_PATH_STATE, ///< Heat disinfect active cool, cancel basic path state. DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_COMPLETE, ///< Heat disinfect active cool, complete state. NUM_OF_DG_HEAT_DISINFECT_ACTIVE_COOL_STATES ///< Number of heat disinfect mode states. }; typedef enum DG_Heat_Cool_States DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_T; ///< Type for DG heat disinfect active cool states enumeration /**@}*/ /** * @addtogroup DGChemicalDisinfectMode * @{ */ /// Enumeration of chemical disinfect mode states. enum DG_Chem_States { DG_CHEM_DISINFECT_STATE_START = 0, ///< Chemical disinfect, start state DG_CHEM_DISINFECT_STATE_DRAIN_R1, ///< Chemical disinfect, drain R1 state DG_CHEM_DISINFECT_STATE_DRAIN_R2, ///< Chemical disinfect, drain R2 state DG_CHEM_DISINFECT_STATE_FLUSH_DRAIN, ///< Chemical disinfect, flush drain state DG_CHEM_DISINFECT_STATE_DEPRIME_ACID_LINE, ///< Chemical disinfect, de-prime acid line state DG_CHEM_DISINFECT_STATE_FLUSH_CIRCULATION, ///< Chemical disinfect, flush circulation state DG_CHEM_DISINFECT_STATE_PRIME_DISINFECTANT, ///< Chemical disinfect, prime disinfectant state DG_CHEM_DISINFECT_STATE_DISINFECTANT_FLUSH, ///< Chemical disinfect, disinfectant flush state DG_CHEM_DISINFECT_STATE_FILL_WITH_DISINFECTANT, ///< Chemical disinfect, fill with disinfectant state DG_CHEM_DISINFECT_STATE_DISINFECT_R1_TO_R2, ///< Chemical disinfect, fill R1 with disinfectant, overflow to R2 DG_CHEM_DISINFECT_STATE_PARTIAL_DRAIN_R1_FILL_R2_TO_R1, ///< Chemical disinfect, fill R2 with disinfectant, partial drain R1 DG_CHEM_DISINFECT_STATE_DISINFECT_R2_TO_R1, ///< Chemical disinfect, fill R2 with disinfectant, overflow to R1 DG_CHEM_DISINFECT_STATE_PARTIAL_DRAIN_R2_FILL_R1_TO_R2, ///< Chemical disinfect, fill R1 with disinfectant, partial drain R2 DG_CHEM_DISINFECT_STATE_CANCEL_BASIC_PATH, ///< Chemical disinfect, cancel basic path state DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH, ///< Chemical disinfect, cancel water path state DG_CHEM_DISINFECT_STATE_COMPLETE, ///< Chemical disinfect, complete state NUM_OF_DG_CHEM_DISINFECT_STATES ///< Number of chemical disinfect mode states }; typedef enum DG_Chem_States DG_CHEM_DISINFECT_STATE_T; ///< Type for DG chemical disinfect states enumeration /// Enumeration of chemical disinfect mode UI states enum DG_Chem_UI_States { CHEM_DISINFECT_UI_STATE_NOT_RUNNING = 0, ///< Chemical disinfect UI, not running state CHEM_DISINFECT_UI_STATE_FLUSH_BEFORE_DISINFECT, ///< Chemical disinfect UI, flush before disinfect state CHEM_DISINFECT_UI_STATE_MIX_WATER_AND_ACID, ///< Chemical disinfect UI, mix water and acid state CHEM_DISINFECT_UI_STATE_REMOVE_ACID, ///< Chemical disinfect UI, remove acid state CHEM_DISINFECT_UI_STATE_DISINFECT_DEVICE, ///< Chemical disinfect UI, disinfect device state CHEM_DISINFECT_UI_STATE_FLUSH_AFTER_DISINFECT, ///< Chemical disinfect UI, flush after disinfect state CHEM_DISINFECT_UI_STATE_CANCEL_DISINFECT, ///< Chemical disinfect UI, cancel disinfect state CHEM_DISINFECT_UI_STATE_COMPLETE, ///< Chemical disinfect UI, complete state NUM_OF_CHEM_DISINFECT_UI_STATES ///< Number of chemical disinfect UI states }; typedef enum DG_Chem_UI_States DG_CHEM_DISINFECT_UI_STATE_T; ///< Type for DG chemical disinfect UI states enumeration #if defined(_HD_) || defined(_DG_) /// Chemical disinfect data typedef struct { U32 chemDisinfectState; ///< Chemical disinfect state. U32 overallElapsedTime; ///< Overall elapsed time in chemical disinfect mode. U32 stateElapsedTime; ///< Current chemical disinfect elapsed time. U32 cancellationMode; ///< Chemical disinfect cancellation mode. F32 R1FillLevel; ///< Reservoir 1 level upon starting the chemical disinfect. F32 R2FillLevel; ///< Reservoir 2 level upon starting the chemical disinfect. F32 acidAvgCondUSPCM; ///< Acid average conductivity in uS/cm. } MODE_CHEMICAL_DISINFECT_DATA_T; #endif /**@}*/ /** * @addtogroup DGChemicalDisinfectFlushMode * @{ */ /// Enumeration of chemical disinfect flush mode states. enum DG_Chem_Flush_States { DG_CHEM_DISINFECT_FLUSH_STATE_START = 0, ///< Chemical disinfect flush, start state DG_CHEM_DISINFECT_FLUSH_STATE_DRAIN_R1, ///< Chemical disinfect flush, drain R1 state DG_CHEM_DISINFECT_FLUSH_STATE_DRAIN_R2, ///< Chemical disinfect flush, drain R2 state DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_DRAIN, ///< Chemical disinfect flush, flush drain state DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_DISINFECTANT_LINE, ///< Chemical disinfect flush, flush disinfectant line state DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_UF, ///< Chemical disinfect flush, flush UF state DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_R2_TO_R1_DRAIN_R1, ///< Chemical disinfect flush, flush R2 to R1 drain R1 state DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_R1_TO_R2_DRAIN_R2, ///< Chemical disinfect flush, flush R1 to R2 drain R2 state DG_CHEM_DISINFECT_FLUSH_STATE_SAMPLE_FLUSH_R1_TO_R2_DRAIN_R2, ///< Chemical disinfect flush, sample flush R1 to R2 drain R2 state DG_CHEM_DISINFECT_FLUSH_STATE_CANCEL_BASIC_PATH, ///< Chemical disinfect flush, cancel basic path state DG_CHEM_DISINFECT_FLUSH_STATE_CANCEL_WATER_PATH, ///< Chemical disinfect flush, cancel water path state DG_CHEM_DISINFECT_FLUSH_STATE_COMPLETE, ///< Chemical disinfect flush, complete state NUM_OF_DG_CHEM_DISINFECT_FLUSH_STATES ///< Number of chemical disinfect flush mode states }; typedef enum DG_Chem_Flush_States DG_CHEM_DISINFECT_FLUSH_STATE_T; ///< Type for DG chemical disinfect flush states enumeration /// Enumeration of chemical disinfect flush mode UI states enum DG_Chem_Flush_UI_States { CHEM_DISINFECT_FLUSH_UI_STATE_NOT_RUNNING = 0, ///< Chemical disinfect flush UI, not running state CHEM_DISINFECT_FLUSH_UI_STATE_FLUSH_AFTER_DISINFECT, ///< Chemical disinfect flush UI, flush after disinfect state CHEM_DISINFECT_FLUSH_UI_STATE_CANCEL_FLUSH, ///< Chemical disinfect flush UI, cancel disinfect state CHEM_DISINFECT_FLUSH_UI_STATE_COMPLETE, ///< Chemical disinfect flush UI, complete state NUM_OF_CHEM_DISINFECT_FLUSH_UI_STATES ///< Number of chemical disinfect flush UI states }; typedef enum DG_Chem_Flush_UI_States DG_CHEM_DISINFECT_FLUSH_UI_STATE_T; ///< Type for DG chemical disinfect UI states enumeration #if defined(_HD_) || defined(_DG_) /// Chemical disinfect flush data typedef struct { U32 chemDisinfectFlushState; ///< Chemical disinfect flush state. U32 overallElapsedTime; ///< Overall elapsed time in chemical disinfect flush mode. U32 stateElapsedTime; ///< Current chemical disinfect flush elapsed time. U32 cancellationMode; ///< Chemical disinfect flush cancellation mode. U32 postDisinfectCurrentRinseCount; ///< Current post disinfect rinse count. U32 chemDisinfectFlushUIState; ///< Chemical disinfect flush UI state. } MODE_CHEMICAL_DISINFECT_FLUSH_DATA_T; #endif /**@}*/ /** * @addtogroup DGROPermeateSampleMode * @{ */ /// Enumeration of RO permeate mode. enum DG_RO_Permeate_States { DG_RO_PERM_SAMPLE_STATE_START = 0, ///< RO Permeate Sample, start mode state DG_RO_PERM_SAMPLE_STATE_DRAIN_R1, ///< RO Permeate Sample, drain reservoir 1 state DG_RO_PERM_SAMPLE_STATE_DRAIN_R2, ///< RO Permeate Sample, drain reservoir 2 state DG_RO_PERM_SAMPLE_STATE_FLUSH_DRAIN, ///< RO Permeate Sample, flush drain state DG_RO_PERM_SAMPLE_STATE_FLUSH_DIALYSATE, ///< RO Permeate Sample, flush dialysate state DG_RO_PERM_SAMPLE_STATE_FLUSH_CONCENTRATE_STRAWS, ///< RO Permeate Sample, flush concentrate straws state DG_RO_PERM_SAMPLE_STATE_FLUSH_R2_TO_R1_AND_DRAIN_R1, ///< RO Permeate Sample, flush R2 to R1 and drain R1 state DG_RO_PERM_SAMPLE_STATE_COLLECT_SAMPLE, ///< RO Permeate Sample, collect sample state DG_RO_PERM_SAMPLE_STATE_CANCEL_BASIC_PATH, ///< RO Permeate Sample, cancel basic path state DG_RO_PERM_SAMPLE_STATE_CANCEL_WATER_PATH, ///< RO Permeate Sample, cancel water path state DG_RO_PERM_SAMPLE_STATE_COMPLETE, ///< RO Permeate Sample, complete mode state NUM_OF_DG_RO_PERM_STATES ///< Number of RO permeate mode states }; typedef enum DG_RO_Permeate_States DG_RO_PERM_STATE_T; ///< Type for DG RO Permeate states enumeration /**@}*/ /** * @addtogroup DGServiceMode * @{ */ /// Enumeration of service mode states. enum DG_Service_States { DG_SERVICE_STATE_START = 0, ///< Start service mode state NUM_OF_DG_SERVICE_STATES ///< Number of service mode states }; typedef enum DG_Service_States DG_SERVICE_STATE_T; ///< Type for DG service states enumeration /**@}*/ /** * @addtogroup DGInterface * @{ */ /// Enumeration of available DG commands. enum DG_Command { DG_CMD_NONE = 0, ///< Not a command DG_CMD_SWITCH_RESERVOIR = 1, ///< Command to request DG switch reservoirs DG_CMD_START_DRAIN = 2, ///< Command to request DG to start drain DG_CMD_STOP_DRAIN = 3, ///< Command to request DG to stop drain DG_CMD_START_FILL = 4, ///< Command to request DG to start fill DG_CMD_STOP_FILL = 5, ///< Command to request DG to stop fill DG_CMD_START_TRIMMER_HEATER = 6, ///< Command to request DG to start trimmer heater DG_CMD_STOP_TRIMMER_HEATER = 7, ///< Command to request DG to stop trimmer heater DG_CMD_VALVE_SETTING = 8, ///< Command to request DG to change valve settings DG_CMD_SAMPLE_WATER = 9, ///< Command to request DG to sample water DG_CMD_START_FLUSH = 10, ///< Command to request DG to start flush DG_CMD_STOP_FLUSH = 11, ///< Command to request DG to stop flush DG_CMD_START_HEAT_DISINFECT = 12, ///< Command to request DG to start heat disinfect DG_CMD_STOP_HEAT_DISINFECT = 13, ///< Command to request DG to stop heat disinfect DG_CMD_START_CHEM_DISINFECT = 14, ///< Command to request DG to start chemical disinfect DG_CMD_STOP_CHEM_DISINFECT = 15, ///< Command to request DG to stop chemical disinfect DG_CMD_REQUEST_CONC_MIXING_RATIOS = 16, ///< Command to request DG to send the concentrate pumps mixing ratios DG_CMD_START_CHEM_DISINFECT_FLUSH = 17, ///< Command to request DG to start chemical disinfect DG_CMD_STOP_CHEM_DISINFECT_FLUSH = 18, ///< Command to request DG to stop chemical disinfect DG_CMD_START_RO_PERMEATE_SAMPLE = 19, ///< Command to request DG to start RO permeate sample mode DG_CMD_STOP_RO_PERMEATE_SAMPLE = 20, ///< Command to request DG to stop RO permeate sample mode DG_CMD_STOP_ACTIVE_COOL = 21, ///< Command to request DG to stop active cool mode DG_CMD_PARK_CONCENTRATE_PUMPS = 22, ///< Command to request DG to park concentrate pumps NUM_OF_DG_COMMANDS ///< Number of DG commands }; typedef enum DG_Command DG_COMMAND_T; ///< Type for DG commands enumeration /// Enumeration of sample water command parameters. enum Sample_Water_Commands { SAMPLE_WATER_CMD_STOP = 0, ///< Stop sample water command SAMPLE_WATER_CMD_START, ///< Start sample water command SAMPLE_WATER_CMD_FLUSH, ///< Flush the filter sample water command SAMPLE_WATER_CMD_END, ///< End sample water command NUM_OF_SAMPLE_WATER_CMDS ///< Number of sample water command parameters }; typedef enum Sample_Water_Commands SAMPLE_WATER_CMD_T; ///< Type for sample water enum. /// Enumeration of sample water command parameters. enum DG_General_Commands { DG_CMD_STOP = 0, ///< DG general stop command DG_CMD_START = 1, ///< DG general start command NUM_OF_DG_CMDS ///< Number of DG general commands }; typedef enum DG_General_Commands DG_GENERAL_COMMAND_T; ///< Type for DG general command enum. /**@}*/ /** * @addtogroup Reservoirs * @{ */ /// Enumeration of DG reservoirs. typedef enum DG_Reservoirs { DG_RESERVOIR_1 = 0, ///< Reservoir number 1 DG_RESERVOIR_2, ///< Reservoir number 2 NUM_OF_DG_RESERVOIRS ///< Number of reservoirs } DG_RESERVOIR_ID_T; /// Enumeration of DG reservoirs status. typedef enum DG_Reservoirs_Status { DG_RESERVOIR_BELOW_TARGET = 0, ///< Reservoir below target DG_RESERVOIR_ABOVE_TARGET, ///< Reservoir above target DG_RESERVOIR_REACHED_TARGET, ///< Reservoir reached target DG_RESERVOIR_NOT_REACHED_TARGET, ///< Reservoir not reached to target (timeout) NUM_OF_DG_RESERVOIR_STATUS ///< Number of reservoir status } DG_RESERVOIR_STATUS_T; // Currently is used in mode heat disinfect and mode flush /// Enumeration of DG valve settings. typedef enum DG_Valve_Setting { DG_VALVE_SETTING_R1_TO_R2 = 0, ///< Valve setting for displacement from reservoir 1 to reservoir 2 DG_VALVE_SETTING_R2_TO_R1, ///< Valve setting for displacement from reservoir 2 to reservoir 1 NUM_OF_DG_VALVE_SETTTINGS ///< Number of valve settings } DG_VALVE_SETTING_ID_T; /**@}*/ /** * @addtogroup LoadCells * @{ */ /// Enumeration of DG load cell sensors. typedef enum Load_Cells { LOAD_CELL_FIRST = 0, ///< First load cell to scan LOAD_CELL_RESERVOIR_1_PRIMARY = LOAD_CELL_FIRST, ///< Primary load cell for reservoir 1. LOAD_CELL_RESERVOIR_1_BACKUP, ///< Backup load cell for reservoir 1. LOAD_CELL_RESERVOIR_2_PRIMARY, ///< Primary load cell for reservoir 2. LOAD_CELL_RESERVOIR_2_BACKUP, ///< Backup load cell for reservoir 2. NUM_OF_LOAD_CELLS ///< Number of load cell sensors. } LOAD_CELL_ID_T; /**@}*/ /** * @addtogroup CommonHeader * @{ */ /// Enumeration of DG event IDs. enum DG_Event_List { DG_EVENT_STARTUP = 0, ///< DG startup event DG_EVENT_OP_MODE_CHANGE, ///< DG Op mode change event DG_EVENT_SUB_MODE_CHANGE, ///< DG Op sub-mode change event DG_EVENT_CONCENTRATE_CAP_SWITCH_CHANGE, ///< DG concentrate cap switch change DG_EVENT_DIALYSATE_CAP_SWITCH_CHANGE, ///< DG dialysate cap switch change DG_EVENT_CPU_RAM_ERROR_STATUS, ///< DG processor RAM error DG_EVENT_CAL_RECORD_UPDATE, ///< DG new calibration record updated DG_EVENT_SYSTEM_RECORD_UPDATE, ///< DG new system record has been updated DG_EVENT_SERVICE_UPDATE, ///< DG new service record has been updated DG_EVENT_USAGE_INFO_UPDATE, ///< DG new usage information has been updated DG_EVENT_SW_CONFIG_UPDATE, ///< DG new software configuration has been updated DG_EVENT_SCHEDULED_RUNS_UPDATE, ///< DG new scheduled runs information has been updated DG_EVENT_HEATERS_INFO_UPDATE, ///< DG new heaters information has been updated DG_EVENT_AVG_DIALYSATE_FILL_COND_VALUES, ///< DG average dialysate fill conductivity values DG_EVENT_RESERVOIR_FILL_VALUES, ///< DG reservoir fill values DG_EVENT_OPERATION_STATUS, ///< DG operation status event DG_EVENT_TEMPERATURE_DRIFT, ///< DG temperature drift event DG_EVENT_INACTIVE_RESERVOIR_TEMP_REMOVE, // TODO remove NUM_OF_DG_EVENT_IDS ///< Total number of DG events }; typedef enum DG_Event_List DG_EVENT_ID_T; ///< Type for DG 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_PRIMARY_RAMP_TO_TARGET, ///< Heater exec state primary ramp to target. HEATER_EXEC_STATE_PRIMARY_CONTROL_TO_TARGET, ///< Heater exec state primary control to target. HEATER_EXEC_STATE_CONTROL_TO_DISINFECT_TARGET, ///< Heater exec state control to disinfect (heat or chemical) target. HEATER_EXEC_STATE_TRIMMER_RAMP_TO_TARGET, ///< Heater exec state trimmer ramp to target. HEATER_EXEC_STATE_TRIMMER_CONTROL_TO_TARGET, ///< Heater exec state trimmer control to target. NUM_OF_HEATERS_STATE, ///< Number of heaters state. } HEATERS_STATE_T; /**@}*/ #ifndef _RELEASE_ // Nelson lab disinfect efficacy support typedef enum Nelson_States { NELSON_NONE = 0, // Nelson none. NELSON_INOCULATE, // Nelson inoculate. NELSON_HEAT_DISINFECT, // Nelson heat disinfect. NELSON_POS_CONTROL_HEAT_DISINFECT, // Nelson positive control heat disinfect. NELSON_CHEM_DISINFECT, // Nelson chemical disinfect. NELSON_DRAIN_SAMPLES, // Nelson drain sample. NUM_OF_NELSON_SUPPORT // Number of Nelson supports. } NELSON_SUPPORT_T; #endif #endif