Index: firmware/App/Modes/ModeChemicalDisinfect.c =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -24,16 +24,9 @@ // ********** private definitions ********** -/// Enumeration of chem. disinfect mode states. -typedef enum Chem_States -{ - CHEM_DISINFECT_STATE_START = 0, ///< Start chemical disinfect mode state. - NUM_OF_CHEM_DISINFECT_STATES ///< Number of chemical disinfect mode states. -} CHEM_DISINFECT_STATE_T; - // ********** private data ********** -static CHEM_DISINFECT_STATE_T chemState = CHEM_DISINFECT_STATE_START; ///< Currently active chemical disinfect state. +static DG_CHEM_DISINFECT_STATE_T chemState = DG_CHEM_DISINFECT_STATE_START; ///< Currently active chemical disinfect state. // ********** private function prototypes ********** @@ -47,7 +40,7 @@ *************************************************************************/ void initChemicalDisinfectMode( void ) { - chemState = CHEM_DISINFECT_STATE_START; + chemState = DG_CHEM_DISINFECT_STATE_START; } /*********************************************************************//** @@ -70,21 +63,37 @@ * @details * Inputs : none * Outputs : none - * @return none + * @return current state. *************************************************************************/ -void execChemicalDisinfectMode( void ) +U32 execChemicalDisinfectMode( void ) { // execute current chemical disinfect state switch ( chemState ) { - case CHEM_DISINFECT_STATE_START: + case DG_CHEM_DISINFECT_STATE_START: break; default: - chemState = CHEM_DISINFECT_STATE_START; // TODO - s/w fault + chemState = DG_CHEM_DISINFECT_STATE_START; break; } + + return chemState; } +/*********************************************************************//** + * @brief + * The getCurrentChemicalDisinfectState function returns the current state of the \n + * chemical disinfect mode. + * @details + * Inputs : chemState + * Outputs : none + * @return the current state of chemical disinfect mode. + *************************************************************************/ +DG_CHEM_DISINFECT_STATE_T getCurrentChemicalDisinfectState( void ) +{ + return chemState; +} + /**@}*/ Index: firmware/App/Modes/ModeChemicalDisinfect.h =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeChemicalDisinfect.h (.../ModeChemicalDisinfect.h) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeChemicalDisinfect.h (.../ModeChemicalDisinfect.h) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -18,6 +18,7 @@ #define __MODE_CHEMICAL_DISINFECT_H__ #include "DGCommon.h" +#include "DGModes.h" /** * @defgroup ChemicalDisinfectMode ChemicalDisinfectMode @@ -28,12 +29,16 @@ * @{ */ +// ********** public definitions ********** + // ********** private function prototypes ********** void initChemicalDisinfectMode( void ); // initialize this module void transitionToChemicalDisinfectMode( void ); // prepares for transition to chemical disinfection mode -void execChemicalDisinfectMode( void ); // execute the chemical disinfection mode state machine (call from OperationModes) +U32 execChemicalDisinfectMode( void ); // execute the chemical disinfection mode state machine (call from OperationModes) +DG_CHEM_DISINFECT_STATE_T getCurrentChemicalDisinfectState( void ); // get the current state of the chemical disinfection mode. + /**@}*/ #endif Index: firmware/App/Modes/ModeDrain.c =================================================================== diff -u -re5c9e31c2644c7f0ca17ba81767a8ed19b99cebf -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision e5c9e31c2644c7f0ca17ba81767a8ed19b99cebf) +++ firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -27,21 +27,13 @@ #define TARGET_DRAIN_PUMP_RPM 2000 ///< Target drain pump speed. -/// Enumeration of drain mode states. -typedef enum Drain_States -{ - DRAIN_STATE_START = 0, ///< Start drain mode state. - DRAIN_STATE_DRAIN, ///< Drain drain mode state. - NUM_OF_DRAIN_STATES ///< Number of drain mode states. -} DRAIN_STATE_T; - // ********** private data ********** -static DRAIN_STATE_T drainState = DRAIN_STATE_START; ///< Currently active drain state. +static DG_DRAIN_STATE_T drainState = DG_DRAIN_STATE_START; ///< Currently active drain state. // ********** private function prototypes ********** -static DRAIN_STATE_T handleDrainState( void ); +static DG_DRAIN_STATE_T handleDrainState( void ); /*********************************************************************//** * @brief @@ -53,7 +45,7 @@ *************************************************************************/ void initDrainMode( void ) { - drainState = DRAIN_STATE_START; + drainState = DG_DRAIN_STATE_START; } /*********************************************************************//** @@ -80,27 +72,29 @@ * @details * Inputs : none * Outputs : - * @return none + * @return current state. *************************************************************************/ -void execDrainMode( void ) +U32 execDrainMode( void ) { // execute current drain state switch ( drainState ) { - case DRAIN_STATE_START: + case DG_DRAIN_STATE_START: setDrainPumpTargetSpeed( TARGET_DRAIN_PUMP_RPM ); - drainState = DRAIN_STATE_DRAIN; + drainState = DG_DRAIN_STATE_DRAIN; break; - case DRAIN_STATE_DRAIN: + case DG_DRAIN_STATE_DRAIN: drainState = handleDrainState(); break; default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 0, drainState ) // TODO - add s/w fault enum to 1st data param - drainState = DRAIN_STATE_START; + drainState = DG_DRAIN_STATE_START; break; } + + return drainState; } /*********************************************************************//** @@ -112,11 +106,25 @@ * Outputs : * @return the next state *************************************************************************/ -static DRAIN_STATE_T handleDrainState( void ) +static DG_DRAIN_STATE_T handleDrainState( void ) { - DRAIN_STATE_T result = DRAIN_STATE_DRAIN; + DG_DRAIN_STATE_T result = DG_DRAIN_STATE_DRAIN; return result; } +/*********************************************************************//** + * @brief + * The getCurrentDrainState function returns the current state of the \n + * drain mode. + * @details + * Inputs : drainState + * Outputs : none + * @return the current state of drain mode. + *************************************************************************/ +DG_DRAIN_STATE_T getCurrentDrainState( void ) +{ + return drainState; +} + /**@}*/ Index: firmware/App/Modes/ModeDrain.h =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeDrain.h (.../ModeDrain.h) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeDrain.h (.../ModeDrain.h) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -18,6 +18,7 @@ #define __MODE_DRAIN_H__ #include "DGCommon.h" +#include "DGModes.h" /** * @defgroup DrainMode DrainMode @@ -28,12 +29,16 @@ * @{ */ +// ********** public definitions ********** + // ********** private function prototypes ********** void initDrainMode( void ); // initialize this module -void transitionToDrainMode( void ); // prepares for transition to operating parameters mode -void execDrainMode( void ); // execute the drain mode state machine +void transitionToDrainMode( void ); // prepares for transition to operating parameters mode +U32 execDrainMode( void ); // execute the drain mode state machine +DG_DRAIN_STATE_T getCurrentDrainState( void ); // get the current state of the drain mode. + /**@}*/ #endif Index: firmware/App/Modes/ModeFault.c =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -24,16 +24,9 @@ // ********** private definitions ********** -/// Enumeration of fault mode states. -typedef enum Fault_States -{ - FAULT_STATE_START = 0, ///< Start solo fault state. - NUM_OF_FAULT_STATES ///< Number of fault mode states. -} FAULT_STATE_T; - // ********** private data ********** -static FAULT_STATE_T faultState = FAULT_STATE_START; ///< Currently active fault state. +static DG_FAULT_STATE_T faultState = DG_FAULT_STATE_START; ///< Currently active fault state. // ********** private function prototypes ********** @@ -47,7 +40,7 @@ *************************************************************************/ void initFaultMode( void ) { - faultState = FAULT_STATE_START; + faultState = DG_FAULT_STATE_START; } /*********************************************************************//** @@ -68,21 +61,37 @@ * @details * Inputs : none * Outputs : - * @return none + * @return current state *************************************************************************/ -void execFaultMode( void ) +U32 execFaultMode( void ) { // execute current fault state switch ( faultState ) { - case FAULT_STATE_START: + case DG_FAULT_STATE_START: break; default: - faultState = FAULT_STATE_START; // TODO - s/w fault + faultState = DG_FAULT_STATE_START; break; } + + return faultState; } +/*********************************************************************//** + * @brief + * The getCurrentFaultState function returns the current state of the \n + * fault mode. + * @details + * Inputs : faultState + * Outputs : none + * @return the current state of fault mode. + *************************************************************************/ +DG_FAULT_STATE_T getCurrentFaultState( void ) +{ + return faultState; +} + /**@}*/ Index: firmware/App/Modes/ModeFault.h =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeFault.h (.../ModeFault.h) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeFault.h (.../ModeFault.h) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -18,6 +18,7 @@ #define __MODE_FAULT_H__ #include "DGCommon.h" +#include "DGModes.h" /** * @defgroup FaultMode FaultMode @@ -28,12 +29,16 @@ * @{ */ +// ********** public definitions ********** + // ********** private function prototypes ********** void initFaultMode( void ); // initialize this module void transitionToFaultMode( void ); // prepares for transition to fault mode -void execFaultMode( void ); // execute the fault mode state machine (call from OperationModes) +U32 execFaultMode( void ); // execute the fault mode state machine (call from OperationModes) +DG_FAULT_STATE_T getCurrentFaultState( void ); // get the current state of the fault mode. + /**@}*/ #endif Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -r69a52d3eafb8667fa3163949107a9351b8eb855a -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 69a52d3eafb8667fa3163949107a9351b8eb855a) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -29,23 +29,14 @@ #define QUARTER_SECOND 250 #define HALF_SECOND 500 -/// Enumeration of fill mode states. -typedef enum Fill_Mode_States -{ - FILL_MODE_STATE_START = 0, ///< Start fill mode state. - FILL_MODE_STATE_DIALYSATE_PRODUCTION, ///< Dialysate production state. - FILL_MODE_STATE_DELIVER_DIALYSATE, ///< Deliver dialysate state. - NUM_OF_FILL_MODE_STATES ///< Number of fill mode states. -} FILL_MODE_STATE_T; - // ********** private data ********** -static FILL_MODE_STATE_T fillState; ///< Currently active fill state. +static DG_FILL_MODE_STATE_T fillState; ///< Currently active fill state. // ********** private function prototypes ********** -static FILL_MODE_STATE_T handleDialysateProductionState( void ); -static FILL_MODE_STATE_T handleDeliverDialysateState( void ); +static DG_FILL_MODE_STATE_T handleDialysateProductionState( void ); +static DG_FILL_MODE_STATE_T handleDeliverDialysateState( void ); /*********************************************************************//** * @brief initFillMode @@ -57,7 +48,7 @@ *************************************************************************/ void initFillMode( void ) { - fillState = FILL_MODE_STATE_START; + fillState = DG_FILL_MODE_STATE_START; } /*********************************************************************//** @@ -86,30 +77,32 @@ * @details * Inputs : fillState * Outputs : fillState - * @return none + * @return current state. *************************************************************************/ -void execFillMode( void ) +U32 execFillMode( void ) { // execute current Fill state switch ( fillState ) { - case FILL_MODE_STATE_START: - fillState = FILL_MODE_STATE_DIALYSATE_PRODUCTION; + case DG_FILL_MODE_STATE_START: + fillState = DG_FILL_MODE_STATE_DIALYSATE_PRODUCTION; break; - case FILL_MODE_STATE_DIALYSATE_PRODUCTION: + case DG_FILL_MODE_STATE_DIALYSATE_PRODUCTION: fillState = handleDialysateProductionState(); break; - case FILL_MODE_STATE_DELIVER_DIALYSATE: + case DG_FILL_MODE_STATE_DELIVER_DIALYSATE: fillState = handleDeliverDialysateState(); break; default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 0, fillState ) // TODO - add s/w fault enum to 1st data param - fillState = FILL_MODE_STATE_START; + fillState = DG_FILL_MODE_STATE_START; break; } + + return fillState; } /*********************************************************************//** @@ -122,16 +115,16 @@ * @param none * @return the next state *************************************************************************/ -static FILL_MODE_STATE_T handleDialysateProductionState( void ) +static DG_FILL_MODE_STATE_T handleDialysateProductionState( void ) { - FILL_MODE_STATE_T result = FILL_MODE_STATE_DIALYSATE_PRODUCTION; + DG_FILL_MODE_STATE_T result = DG_FILL_MODE_STATE_DIALYSATE_PRODUCTION; // TODO - transition when temperature and mix is in range if ( 1 ) { // TODO - VPo to reservoir setFPGAValveStates(0x015F); - result = FILL_MODE_STATE_DELIVER_DIALYSATE; + result = DG_FILL_MODE_STATE_DELIVER_DIALYSATE; } return result; @@ -147,20 +140,34 @@ * @param none * @return the next state *************************************************************************/ -static FILL_MODE_STATE_T handleDeliverDialysateState( void ) +static DG_FILL_MODE_STATE_T handleDeliverDialysateState( void ) { - FILL_MODE_STATE_T result = FILL_MODE_STATE_DELIVER_DIALYSATE; + DG_FILL_MODE_STATE_T result = DG_FILL_MODE_STATE_DELIVER_DIALYSATE; // TODO - transition back when temperature or mix out of range if ( 0 ) { // TODO - VPo to drain setFPGAValveStates(0x014F); - result = FILL_MODE_STATE_DIALYSATE_PRODUCTION; + result = DG_FILL_MODE_STATE_DIALYSATE_PRODUCTION; } return result; } +/*********************************************************************//** + * @brief + * The getCurrentFillState function returns the current state of the \n + * fill mode. + * @details + * Inputs : fillState + * Outputs : none + * @return the current state of fill mode. + *************************************************************************/ +DG_FILL_MODE_STATE_T getCurrentFillState( void ) +{ + return fillState; +} + /**@}*/ Index: firmware/App/Modes/ModeFill.h =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeFill.h (.../ModeFill.h) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeFill.h (.../ModeFill.h) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -18,6 +18,7 @@ #define __MODE_FILl_H__ #include "DGCommon.h" +#include "DGModes.h" /** * @defgroup FillMode FillMode @@ -34,8 +35,10 @@ void initFillMode( void ); // initialize this module void transitionToFillMode( void ); // prepares for transition to fill mode -void execFillMode( void ); // execute the fill mode state machine (call from OperationModes) +U32 execFillMode( void ); // execute the fill mode state machine (call from OperationModes) +DG_FILL_MODE_STATE_T getCurrentFillState( void ); // get the current state of the fill mode. + /**@}*/ #endif Index: firmware/App/Modes/ModeFlush.c =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeFlush.c (.../ModeFlush.c) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeFlush.c (.../ModeFlush.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -24,16 +24,9 @@ // ********** private definitions ********** -/// Enumeration of flush mode states. -typedef enum Flush_States -{ - FLUSH_STATE_START = 0, ///< Start flush mode state. - NUM_OF_FLUSH_STATES ///< Number of flush mode states. -} FLUSH_STATE_T; - // ********** private data ********** -static FLUSH_STATE_T flushState = FLUSH_STATE_START; ///< Currently active flush state. +static DG_FLUSH_STATE_T flushState = DG_FLUSH_STATE_START; ///< Currently active flush state. // ********** private function prototypes ********** @@ -47,7 +40,7 @@ *************************************************************************/ void initFlushMode( void ) { - flushState = FLUSH_STATE_START; + flushState = DG_FLUSH_STATE_START; } /*********************************************************************//** @@ -70,21 +63,37 @@ * @details * Inputs : none * Outputs : - * @return none + * @return current state. *************************************************************************/ -void execFlushMode( void ) +U32 execFlushMode( void ) { // execute current flush state switch ( flushState ) { - case FLUSH_STATE_START: + case DG_FLUSH_STATE_START: break; default: - flushState = FLUSH_STATE_START; // TODO - s/w fault + flushState = DG_FLUSH_STATE_START; break; } + + return flushState; } +/*********************************************************************//** + * @brief + * The getCurrentFlushState function returns the current state of the \n + * flush mode. + * @details + * Inputs : flushState + * Outputs : none + * @return the current state of flush mode. + *************************************************************************/ +DG_FLUSH_STATE_T getCurrentFlushState( void ) +{ + return flushState; +} + /**@}*/ Index: firmware/App/Modes/ModeFlush.h =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeFlush.h (.../ModeFlush.h) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeFlush.h (.../ModeFlush.h) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -18,6 +18,7 @@ #define __MODE_FLUSH_H__ #include "DGCommon.h" +#include "DGModes.h" /** * @defgroup FlushMode FlushMode @@ -28,12 +29,16 @@ * @{ */ +// ********** public definitions ********** + // ********** private function prototypes ********** void initFlushMode( void ); // initialize this module void transitionToFlushMode( void ); // prepares for transition to pre-treatment mode -void execFlushMode( void ); // execute the pre-treatment mode state machine (call from OperationModes) +U32 execFlushMode( void ); // execute the pre-treatment mode state machine (call from OperationModes) +DG_FLUSH_STATE_T getCurrentFlushState( void ); // get the current state of the flush mode. + /**@}*/ #endif Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -24,16 +24,9 @@ // ********** private definitions ********** -/// Enumeration of heat disinfection mode states. -typedef enum Heat_States -{ - HEAT_DISINFECT_STATE_START = 0, ///< Start heat disinfect mode state. - NUM_OF_HEAT_DISINFECT_STATES ///< Number of heat disinfect mode states. -} HEAT_DISINFECT_STATE_T; - // ********** private data ********** -static HEAT_DISINFECT_STATE_T heatState = HEAT_DISINFECT_STATE_START; ///< Currently active heat disinfect state. +static DG_HEAT_DISINFECT_STATE_T heatState = DG_HEAT_DISINFECT_STATE_START; ///< Currently active heat disinfect state. // ********** private function prototypes ********** @@ -47,7 +40,7 @@ *************************************************************************/ void initHeatDisinfectMode( void ) { - heatState = HEAT_DISINFECT_STATE_START; + heatState = DG_HEAT_DISINFECT_STATE_START; } /*********************************************************************//** @@ -69,21 +62,37 @@ * @details * Inputs : none * Outputs : none - * @return none + * @return current state. *************************************************************************/ -void execHeatDisinfectMode( void ) +U32 execHeatDisinfectMode( void ) { // execute current heat disinfect state switch ( heatState ) { - case HEAT_DISINFECT_STATE_START: + case DG_HEAT_DISINFECT_STATE_START: break; default: - heatState = HEAT_DISINFECT_STATE_START; // TODO - s/w fault + heatState = DG_HEAT_DISINFECT_STATE_START; break; } + + return heatState; } +/*********************************************************************//** + * @brief + * The getCurrentHeatDisinfectState function returns the current state of the \n + * heat disinfect mode. + * @details + * Inputs : heatState + * Outputs : none + * @return the current state of heat disinfect mode. + *************************************************************************/ +DG_HEAT_DISINFECT_STATE_T getCurrentHeatDisinfectState( void ) +{ + return heatState; +} + /**@}*/ Index: firmware/App/Modes/ModeHeatDisinfect.h =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeHeatDisinfect.h (.../ModeHeatDisinfect.h) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeHeatDisinfect.h (.../ModeHeatDisinfect.h) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -18,6 +18,7 @@ #define __MODE_HEAT_DISINFECT_H__ #include "DGCommon.h" +#include "DGModes.h" /** * @defgroup HeatDisinfectMode HeatDisinfectMode @@ -28,12 +29,16 @@ * @{ */ +// ********** public definitions ********** + // ********** private function prototypes ********** void initHeatDisinfectMode( void ); // initialize this module void transitionToHeatDisinfectMode( void ); // prepares for transition to heat disinfect mode -void execHeatDisinfectMode( void ); // execute the heat disinfect mode state machine (call from OperationModes) +U32 execHeatDisinfectMode( void ); // execute the heat disinfect mode state machine (call from OperationModes) +DG_HEAT_DISINFECT_STATE_T getCurrentHeatDisinfectState( void ); // get the current state of the heat disinfect mode. + /**@}*/ #endif Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -27,27 +27,16 @@ // ********** private definitions ********** -/// Enumeration of init & POST mode states. -typedef enum POST_States -{ - POST_STATE_START = 0, ///< Start initialize & POST mode state. - POST_STATE_FPGA, ///< FPGA POST test state. - POST_STATE_WATCHDOG, ///< Watchdog POST test state. - POST_STATE_COMPLETED, ///< POST completed successfully state. - POST_STATE_FAILED, ///< POST failed state. - NUM_OF_POST_STATES ///< Number of initialize & POST mode states. -} POST_STATE_T; - // ********** private data ********** -static POST_STATE_T postState = POST_STATE_START; ///< Currently active initialize & POST state. +static DG_POST_STATE_T postState = DG_POST_STATE_START; ///< Currently active initialize & POST state. static BOOL postCompleted = FALSE; ///< Flag indicating POST completed. static BOOL postPassed = FALSE; ///< Flag indicating all POST tests passed. static BOOL tempPOSTPassed = TRUE; ///< Temporary flag indicating all POST tests completed so far have passed. // ********** private function prototypes ********** -static POST_STATE_T handlePOSTStatus( SELF_TEST_STATUS_T testStatus ); +static DG_POST_STATE_T handlePOSTStatus( SELF_TEST_STATUS_T testStatus ); /*********************************************************************//** * @brief @@ -59,7 +48,7 @@ *************************************************************************/ void initInitAndPOSTMode( void ) { - postState = POST_STATE_START; + postState = DG_POST_STATE_START; postCompleted = FALSE; postPassed = FALSE; tempPOSTPassed = TRUE; @@ -84,38 +73,38 @@ * @details * Inputs : none * Outputs : - * @return none + * @return current state. *************************************************************************/ -void execInitAndPOSTMode( void ) +U32 execInitAndPOSTMode( void ) { SELF_TEST_STATUS_T testStatus = SELF_TEST_STATUS_IN_PROGRESS; // execute current POST state switch ( postState ) { - case POST_STATE_START: - postState = POST_STATE_FPGA; + case DG_POST_STATE_START: + postState = DG_POST_STATE_FPGA; break; - case POST_STATE_FPGA: + case DG_POST_STATE_FPGA: testStatus = execFPGATest(); postState = handlePOSTStatus( testStatus ); break; - case POST_STATE_WATCHDOG: + case DG_POST_STATE_WATCHDOG: testStatus = execWatchdogTest(); handlePOSTStatus( testStatus ); // ignoring return value because last test if ( TRUE == tempPOSTPassed ) { - postState = POST_STATE_COMPLETED; + postState = DG_POST_STATE_COMPLETED; } else { - postState = POST_STATE_FAILED; + postState = DG_POST_STATE_FAILED; } break; - case POST_STATE_COMPLETED: + case DG_POST_STATE_COMPLETED: // set overall HD POST status to "passed" postPassed = TRUE; // set overall HD POST completed status to TRUE @@ -125,17 +114,19 @@ requestNewOperationMode( MODE_STAN ); break; - case POST_STATE_FAILED: + case DG_POST_STATE_FAILED: // TODO - send POST status on CAN // will want POST faults to wait for us to get here before sending us to fault mode requestNewOperationMode( MODE_FAUL ); break; default: - postState = POST_STATE_FAILED; // TODO - s/w fault + postState = DG_POST_STATE_FAILED; break; } + + return postState; } /*********************************************************************//** @@ -177,13 +168,13 @@ * @param testStatus * @return recommended next POST state *************************************************************************/ -static POST_STATE_T handlePOSTStatus( SELF_TEST_STATUS_T testStatus ) +static DG_POST_STATE_T handlePOSTStatus( SELF_TEST_STATUS_T testStatus ) { - POST_STATE_T result = postState; + DG_POST_STATE_T result = postState; if ( ( testStatus == SELF_TEST_STATUS_PASSED ) || ( testStatus == SELF_TEST_STATUS_FAILED ) ) { - result = (POST_STATE_T)((int)postState + 1); // move on to next POST test + result = (DG_POST_STATE_T)((int)postState + 1); // move on to next POST test if ( testStatus == SELF_TEST_STATUS_FAILED ) { tempPOSTPassed = FALSE; @@ -193,4 +184,18 @@ return result; } +/*********************************************************************//** + * @brief + * The getCurrentInitAndPOSTState function returns the current state of the \n + * initialize & POST mode. + * @details + * Inputs : postState + * Outputs : none + * @return the current state of initialize & POST mode. + *************************************************************************/ +DG_POST_STATE_T getCurrentInitAndPOSTState( void ) +{ + return postState; +} + /**@}*/ Index: firmware/App/Modes/ModeInitPOST.h =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeInitPOST.h (.../ModeInitPOST.h) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeInitPOST.h (.../ModeInitPOST.h) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -18,6 +18,7 @@ #define __MODE_INIT_POST_H__ #include "DGCommon.h" +#include "DGModes.h" /** * @defgroup InitAndPOSTMode InitAndPOSTMode @@ -28,11 +29,16 @@ * @{ */ +// ********** public definitions ********** + // ********** private function prototypes ********** void initInitAndPOSTMode( void ); // initialize this module void transitionToInitAndPOSTMode( void ); // prepares for transition to init. & POST mode -void execInitAndPOSTMode( void ); // execute the init. & POST mode state machine (call from OperationModes) +U32 execInitAndPOSTMode( void ); // execute the init. & POST mode state machine (call from OperationModes) + +DG_POST_STATE_T getCurrentInitAndPOSTState( void ); // get the current state of the init. & POST mode. + BOOL isPOSTCompleted( void ); BOOL isPOSTPassed( void ); Index: firmware/App/Modes/ModeRecirculate.c =================================================================== diff -u -r431de35ec5d48cbcd7f6fdf9b1586616d7ac3c05 -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeRecirculate.c (.../ModeRecirculate.c) (revision 431de35ec5d48cbcd7f6fdf9b1586616d7ac3c05) +++ firmware/App/Modes/ModeRecirculate.c (.../ModeRecirculate.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -34,14 +34,14 @@ // ********** private data ********** -static RECIRCULATE_MODE_STATE_T recircState; ///< Currently active re-circulation state. +static DG_RECIRCULATE_MODE_STATE_T recircState; ///< Currently active re-circulation state. static F32 flushLinesVolume = 0.0; ///< Volume of water pumped by RO pump during flush lines state. // ********** private function prototypes ********** -static RECIRCULATE_MODE_STATE_T handleFlushLinesState( void ); -static RECIRCULATE_MODE_STATE_T handleRecircWaterState( void ); -static RECIRCULATE_MODE_STATE_T handleRecircPauseState( void ); +static DG_RECIRCULATE_MODE_STATE_T handleFlushLinesState( void ); +static DG_RECIRCULATE_MODE_STATE_T handleRecircWaterState( void ); +static DG_RECIRCULATE_MODE_STATE_T handleRecircPauseState( void ); /*********************************************************************//** * @brief @@ -53,7 +53,7 @@ *************************************************************************/ void initRecirculateMode( void ) { - recircState = RECIRCULATE_MODE_STATE_START; + recircState = DG_RECIRCULATE_MODE_STATE_START; flushLinesVolume = 0.0; } @@ -86,35 +86,37 @@ * @details * Inputs : recircState * Outputs : recircState - * @return none + * @return current state *************************************************************************/ -void execRecirculateMode( void ) +U32 execRecirculateMode( void ) { // execute current re-circulate state switch ( recircState ) { - case RECIRCULATE_MODE_STATE_START: + case DG_RECIRCULATE_MODE_STATE_START: setROPumpTargetPressure( TARGET_RO_PRESSURE_PSI, PUMP_CONTROL_MODE_CLOSED_LOOP ); - recircState = RECIRCULATE_MODE_STATE_FLUSH_LINES; + recircState = DG_RECIRCULATE_MODE_STATE_FLUSH_LINES; break; - case RECIRCULATE_MODE_STATE_FLUSH_LINES: + case DG_RECIRCULATE_MODE_STATE_FLUSH_LINES: recircState = handleFlushLinesState(); break; - case RECIRCULATE_MODE_STATE_RECIRC_WATER: + case DG_RECIRCULATE_MODE_STATE_RECIRC_WATER: recircState = handleRecircWaterState(); break; - case RECIRCULATE_MODE_STATE_PAUSE: + case DG_RECIRCULATE_MODE_STATE_PAUSE: recircState = handleRecircPauseState(); break; default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 0, recircState ) // TODO - add s/w fault enum to 1st data param - recircState = RECIRCULATE_MODE_STATE_START; + recircState = DG_RECIRCULATE_MODE_STATE_START; break; } + + return (U32)recircState; } /*********************************************************************//** @@ -126,9 +128,9 @@ * Outputs : * @return the next state *************************************************************************/ -static RECIRCULATE_MODE_STATE_T handleFlushLinesState( void ) +static DG_RECIRCULATE_MODE_STATE_T handleFlushLinesState( void ) { - RECIRCULATE_MODE_STATE_T result = RECIRCULATE_MODE_STATE_FLUSH_LINES; + DG_RECIRCULATE_MODE_STATE_T result = DG_RECIRCULATE_MODE_STATE_FLUSH_LINES; F32 waterFlowRate = getMeasuredROFlowRate(); F32 waterVolume = ( ( waterFlowRate / SEC_PER_MIN ) / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ); @@ -138,7 +140,7 @@ if ( flushLinesVolume >= FLUSH_LINES_VOLUME_L ) { // TODO - change VDr from drain to re-circulate - result = RECIRCULATE_MODE_STATE_RECIRC_WATER; + result = DG_RECIRCULATE_MODE_STATE_RECIRC_WATER; } return result; @@ -153,9 +155,9 @@ * Outputs : * @return the next state *************************************************************************/ -static RECIRCULATE_MODE_STATE_T handleRecircWaterState( void ) +static DG_RECIRCULATE_MODE_STATE_T handleRecircWaterState( void ) { - RECIRCULATE_MODE_STATE_T result = RECIRCULATE_MODE_STATE_RECIRC_WATER; + DG_RECIRCULATE_MODE_STATE_T result = DG_RECIRCULATE_MODE_STATE_RECIRC_WATER; return result; } @@ -169,9 +171,9 @@ * Outputs : * @return the next state *************************************************************************/ -static RECIRCULATE_MODE_STATE_T handleRecircPauseState( void ) +static DG_RECIRCULATE_MODE_STATE_T handleRecircPauseState( void ) { - RECIRCULATE_MODE_STATE_T result = RECIRCULATE_MODE_STATE_PAUSE; + DG_RECIRCULATE_MODE_STATE_T result = DG_RECIRCULATE_MODE_STATE_PAUSE; return result; } @@ -195,14 +197,14 @@ /*********************************************************************//** * @brief - * The getRecirculateModeState function returns the current state of the \n + * The getCurrentRecirculateState function returns the current state of the \n * re-circulate mode. * @details * Inputs : recircState * Outputs : none * @return the current state of re-circulate mode. *************************************************************************/ -RECIRCULATE_MODE_STATE_T getRecirculateModeState( void ) +DG_RECIRCULATE_MODE_STATE_T getCurrentRecirculateState( void ) { return recircState; } Index: firmware/App/Modes/ModeRecirculate.h =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeRecirculate.h (.../ModeRecirculate.h) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeRecirculate.h (.../ModeRecirculate.h) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -18,6 +18,7 @@ #define __MODE_RECIRCULATION_H__ #include "DGCommon.h" +#include "DGModes.h" /** * @defgroup RecirculateMode RecirculateMode @@ -30,24 +31,15 @@ // ********** public definitions ********** -/// Enumeration of re-circulation mode states. -typedef enum Recirculate_Mode_States -{ - RECIRCULATE_MODE_STATE_START = 0, ///< Start re-circulation mode state. - RECIRCULATE_MODE_STATE_FLUSH_LINES, ///< Flush lines state. - RECIRCULATE_MODE_STATE_RECIRC_WATER, ///< Re-circulate water state. - RECIRCULATE_MODE_STATE_PAUSE, ///< Pause state (pumps, heaters, lamps off). - NUM_OF_RECIRCULATE_MODE_STATES ///< Number of fill mode states. -} RECIRCULATE_MODE_STATE_T; - // ********** private function prototypes ********** void initRecirculateMode( void ); // initialize this module void transitionToRecirculateMode( void ); // prepares for transition to Recirculate mode -void execRecirculateMode( void ); // execute the Recirculate mode state machine (call from OperationModes) +U32 execRecirculateMode( void ); // execute the Recirculate mode state machine (call from OperationModes) +DG_RECIRCULATE_MODE_STATE_T getCurrentRecirculateState( void ); // get the current state of re-circulate mode + BOOL requestDGStop( void ); // HD requests DG stop (go back to standby mode) -RECIRCULATE_MODE_STATE_T getRecirculateModeState( void ); // get the current state of re-circulate mode /**@}*/ Index: firmware/App/Modes/ModeService.c =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeService.c (.../ModeService.c) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeService.c (.../ModeService.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -24,16 +24,9 @@ // ********** private definitions ********** -/// Enumeration of service mode states. -typedef enum Service_States -{ - SERVICE_STATE_START = 0, ///< Start service mode state. - NUM_OF_SERVICE_STATES ///< Number of service mode states. -} SERVICE_STATE_T; - // ********** private data ********** -static SERVICE_STATE_T serviceState = SERVICE_STATE_START; ///< Currently active service state. +static DG_SERVICE_STATE_T serviceState = DG_SERVICE_STATE_START; ///< Currently active service state. // ********** private function prototypes ********** @@ -47,7 +40,7 @@ *************************************************************************/ void initServiceMode( void ) { - serviceState = SERVICE_STATE_START; + serviceState = DG_SERVICE_STATE_START; } /*********************************************************************//** @@ -68,21 +61,37 @@ * @details * Inputs : none * Outputs : - * @return none + * @return current state. *************************************************************************/ -void execServiceMode( void ) +U32 execServiceMode( void ) { // execute current service state switch ( serviceState ) { - case SERVICE_STATE_START: + case DG_SERVICE_STATE_START: break; default: - serviceState = SERVICE_STATE_START; // TODO - s/w fault + serviceState = DG_SERVICE_STATE_START; break; } + + return serviceState; } +/*********************************************************************//** + * @brief + * The getCurrentServiceState function returns the current state of the \n + * service mode. + * @details + * Inputs : serviceState + * Outputs : none + * @return the current state of service mode. + *************************************************************************/ +DG_SERVICE_STATE_T getCurrentServiceState( void ) +{ + return serviceState; +} + /**@}*/ Index: firmware/App/Modes/ModeService.h =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeService.h (.../ModeService.h) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeService.h (.../ModeService.h) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -18,6 +18,7 @@ #define __MODE_SERVICE_H__ #include "DGCommon.h" +#include "DGModes.h" /** * @defgroup ServiceMode ServiceMode @@ -28,12 +29,16 @@ * @{ */ +// ********** public definitions ********** + // ********** private function prototypes ********** void initServiceMode( void ); // initialize this module void transitionToServiceMode( void ); // prepares for transition to service mode -void execServiceMode( void ); // execute the service mode state machine (call from OperationModes) +U32 execServiceMode( void ); // execute the service mode state machine (call from OperationModes) +DG_SERVICE_STATE_T getCurrentServiceState( void ); // get the current state of the service mode. + /**@}*/ #endif Index: firmware/App/Modes/ModeSolo.c =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeSolo.c (.../ModeSolo.c) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeSolo.c (.../ModeSolo.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -25,16 +25,9 @@ // ********** private definitions ********** -/// Enumeration of solo standby mode states. -typedef enum Solo_States -{ - SOLO_STANDBY_STATE_START = 0, ///< Start solo standby mode state. - NUM_OF_SOLO_STANDBY_STATES ///< Number of solo standby mode states. -} SOLO_STANDBY_STATE_T; - // ********** private data ********** -static SOLO_STANDBY_STATE_T soloState = SOLO_STANDBY_STATE_START; ///< Currently active solo standby state. +static DG_SOLO_STANDBY_STATE_T soloState = DG_SOLO_STANDBY_STATE_START; ///< Currently active solo standby state. // ********** private function prototypes ********** @@ -48,7 +41,7 @@ *************************************************************************/ void initSoloMode( void ) { - soloState = SOLO_STANDBY_STATE_START; + soloState = DG_SOLO_STANDBY_STATE_START; } /*********************************************************************//** @@ -70,21 +63,37 @@ * @details * Inputs : none * Outputs : - * @return none + * @return current state. *************************************************************************/ -void execSoloMode( void ) +U32 execSoloMode( void ) { // execute current solo standby state switch ( soloState ) { - case SOLO_STANDBY_STATE_START: + case DG_SOLO_STANDBY_STATE_START: break; default: - soloState = SOLO_STANDBY_STATE_START; // TODO - s/w fault + soloState = DG_SOLO_STANDBY_STATE_START; break; } + + return soloState; } +/*********************************************************************//** + * @brief + * The getCurrentSoloState function returns the current state of the \n + * standby-solo mode. + * @details + * Inputs : soloState + * Outputs : none + * @return the current state of standby-solo mode. + *************************************************************************/ +DG_SOLO_STANDBY_STATE_T getCurrentSoloState( void ) +{ + return soloState; +} + /**@}*/ Index: firmware/App/Modes/ModeSolo.h =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeSolo.h (.../ModeSolo.h) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeSolo.h (.../ModeSolo.h) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -18,6 +18,7 @@ #define __MODE_SOLO_H__ #include "DGCommon.h" +#include "DGModes.h" /** * @defgroup SoloStandbyMode SoloStandbyMode @@ -28,12 +29,16 @@ * @{ */ +// ********** public definitions ********** + // ********** private function prototypes ********** void initSoloMode( void ); // initialize this module void transitionToSoloMode( void ); // prepares for transition to standby-solo mode -void execSoloMode( void ); // execute the standby-solo mode state machine (call from OperationModes) +U32 execSoloMode( void ); // execute the standby-solo mode state machine (call from OperationModes) +DG_SOLO_STANDBY_STATE_T getCurrentSoloState( void ); // get the current state of the standby-solo mode. + /**@}*/ #endif Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r431de35ec5d48cbcd7f6fdf9b1586616d7ac3c05 -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 431de35ec5d48cbcd7f6fdf9b1586616d7ac3c05) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -30,26 +30,17 @@ #define WATER_SAMPLE_TIME_MS ( 10 * MS_PER_SECOND ) ///< Duration of water sample state (in ms). -/// Enumeration of standby mode states. -typedef enum Standby_Mode_States -{ - STANDBY_MODE_STATE_START = 0, ///< Start standby mode state. - STANDBY_MODE_STATE_IDLE, ///< Idle standby mode state. - STANDBY_MODE_STATE_SAMPLE_WATER, ///< Sample water standby mode state. - NUM_OF_STANDBY_MODE_STATES ///< Number of standby mode states. -} STANDBY_MODE_STATE_T; - // ********** private data ********** -static STANDBY_MODE_STATE_T standbyState = STANDBY_MODE_STATE_START; ///< Currently active standby state. +static DG_STANDBY_MODE_STATE_T standbyState = DG_STANDBY_MODE_STATE_START; ///< Currently active standby state. static BOOL pendingSampleWaterRequest = FALSE; ///< Flag indicating HD has requested a water sample. static BOOL pendingStartDGRequest = FALSE; ///< Flag indicating HD has requested DG start (go to re-circulate mode). static U32 waterSampleStartTime = 0; ///< Time stamp for start of water sample state. // ********** private function prototypes ********** -static STANDBY_MODE_STATE_T handleStandbyIdleState( void ); -static STANDBY_MODE_STATE_T handleStandbySampleWaterState( void ); +static DG_STANDBY_MODE_STATE_T handleStandbyIdleState( void ); +static DG_STANDBY_MODE_STATE_T handleStandbySampleWaterState( void ); /*********************************************************************//** * @brief @@ -61,7 +52,7 @@ *************************************************************************/ void initStandbyMode( void ) { - standbyState = STANDBY_MODE_STATE_START; + standbyState = DG_STANDBY_MODE_STATE_START; pendingSampleWaterRequest = FALSE; pendingStartDGRequest = FALSE; waterSampleStartTime = 0; @@ -97,30 +88,32 @@ * @details * Inputs : none * Outputs : - * @return none + * @return current state. *************************************************************************/ -void execStandbyMode( void ) +U32 execStandbyMode( void ) { // execute current Standby state switch ( standbyState ) { - case STANDBY_MODE_STATE_START: - standbyState = STANDBY_MODE_STATE_IDLE; + case DG_STANDBY_MODE_STATE_START: + standbyState = DG_STANDBY_MODE_STATE_IDLE; break; - case STANDBY_MODE_STATE_IDLE: + case DG_STANDBY_MODE_STATE_IDLE: standbyState = handleStandbyIdleState(); break; - case STANDBY_MODE_STATE_SAMPLE_WATER: + case DG_STANDBY_MODE_STATE_SAMPLE_WATER: standbyState = handleStandbySampleWaterState(); break; default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 0, standbyState ) // TODO - add s/w fault enum to 1st data param - standbyState = STANDBY_MODE_STATE_START; + standbyState = DG_STANDBY_MODE_STATE_START; break; } + + return standbyState; } /*********************************************************************//** @@ -132,9 +125,9 @@ * Outputs : possibly op mode * @return the next state *************************************************************************/ -static STANDBY_MODE_STATE_T handleStandbyIdleState( void ) +static DG_STANDBY_MODE_STATE_T handleStandbyIdleState( void ) { - STANDBY_MODE_STATE_T result = STANDBY_MODE_STATE_IDLE; + DG_STANDBY_MODE_STATE_T result = DG_STANDBY_MODE_STATE_IDLE; // go to standby solo mode if HD is turned off or stops communicating. if ( FALSE == isHDCommunicating() ) @@ -147,7 +140,7 @@ pendingSampleWaterRequest = FALSE; waterSampleStartTime = getMSTimerCount(); // TODO - open VPi and VSP valves - result = STANDBY_MODE_STATE_SAMPLE_WATER; + result = DG_STANDBY_MODE_STATE_SAMPLE_WATER; } else if ( TRUE == pendingStartDGRequest ) { @@ -167,15 +160,15 @@ * Outputs : * @return the next state *************************************************************************/ -static STANDBY_MODE_STATE_T handleStandbySampleWaterState( void ) +static DG_STANDBY_MODE_STATE_T handleStandbySampleWaterState( void ) { - STANDBY_MODE_STATE_T result = STANDBY_MODE_STATE_SAMPLE_WATER; + DG_STANDBY_MODE_STATE_T result = DG_STANDBY_MODE_STATE_SAMPLE_WATER; // VPi and VSP valves open for 10 seconds, then close and return to idle state if ( TRUE == didTimeout( waterSampleStartTime, WATER_SAMPLE_TIME_MS ) ) { // TODO - close VPi and VSP valves. - result = STANDBY_MODE_STATE_IDLE; + result = DG_STANDBY_MODE_STATE_IDLE; } return result; @@ -193,7 +186,7 @@ { BOOL result = FALSE; - if ( STANDBY_MODE_STATE_IDLE == standbyState ) + if ( DG_STANDBY_MODE_STATE_IDLE == standbyState ) { result = TRUE; pendingSampleWaterRequest = TRUE; @@ -214,7 +207,7 @@ { BOOL result = FALSE; - if ( STANDBY_MODE_STATE_IDLE == standbyState ) + if ( DG_STANDBY_MODE_STATE_IDLE == standbyState ) { result = TRUE; pendingStartDGRequest = TRUE; @@ -223,4 +216,18 @@ return result; } +/*********************************************************************//** + * @brief + * The getCurrentStandbyState function returns the current state of the \n + * standby mode. + * @details + * Inputs : standbyState + * Outputs : none + * @return the current state of standby mode. + *************************************************************************/ +DG_STANDBY_MODE_STATE_T getCurrentStandbyState( void ) +{ + return standbyState; +} + /**@}*/ Index: firmware/App/Modes/ModeStandby.h =================================================================== diff -u -rb5e25e2bf3b87f12f9d1beedf460b5884c8816e9 -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeStandby.h (.../ModeStandby.h) (revision b5e25e2bf3b87f12f9d1beedf460b5884c8816e9) +++ firmware/App/Modes/ModeStandby.h (.../ModeStandby.h) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -18,6 +18,7 @@ #define __MODE_STANDBY_H__ #include "DGCommon.h" +#include "DGModes.h" /** * @defgroup StandbyMode StandbyMode @@ -28,12 +29,16 @@ * @{ */ +// ********** public definitions ********** + // ********** private function prototypes ********** void initStandbyMode( void ); // initialize this module void transitionToStandbyMode( void ); // prepares for transition to standby mode -void execStandbyMode( void ); // execute the standby mode state machine (call from OperationModes) +U32 execStandbyMode( void ); // execute the standby mode state machine (call from OperationModes) +DG_STANDBY_MODE_STATE_T getCurrentStandbyState( void ); // get the current state of the standby mode. + BOOL requestWaterSample( void ); // HD requests water sample BOOL requestDGStart( void ); // HD requests DG start (go to re-circulate mode) Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -rdea90cb6d941a0d70c1666a11a0199e147dea764 -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision dea90cb6d941a0d70c1666a11a0199e147dea764) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -42,12 +42,13 @@ // ********** private data ********** -static volatile BOOL modeRequest[NUM_OF_MODES - 1]; ///< Array of mode request flags. -static OP_MODE currentMode = MODE_INIT; ///< The currently active mode. +static volatile BOOL modeRequest[NUM_OF_DG_MODES - 1]; ///< Array of mode request flags. +static DG_OP_MODE currentMode = MODE_INIT; ///< The currently active mode. +static U32 currentSubMode = 0; ///< The currently active state of the active mode. static U32 broadcastModeIntervalCtr = 11; ///< Interval counter used to determine when to broadcase operation mode. Initialize to 11 to stagger broadcast. /// This matrix determines legal transitions from one mode to another. -static const OP_MODE MODE_TRANSITION_TABLE[NUM_OF_MODES - 1][NUM_OF_MODES - 1] = +static const DG_OP_MODE MODE_TRANSITION_TABLE[NUM_OF_DG_MODES - 1][NUM_OF_DG_MODES - 1] = { // from to-> FAULT SERVICE INIT STANBY STBY-SOLO RE-CIRC FILL DRAIN FLUSH HEAT DIS CHEM DIS /* FAUL */{ MODE_FAUL, MODE_SERV, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG }, @@ -67,8 +68,8 @@ // ********** private function prototypes ********** -static OP_MODE arbitrateModeRequest( void ); -static void transitionToNewOperationMode( OP_MODE newMode ); +static DG_OP_MODE arbitrateModeRequest( void ); +static void transitionToNewOperationMode( DG_OP_MODE newMode ); static void broadcastOperationMode( void ); /*********************************************************************//** @@ -84,7 +85,7 @@ U32 i; // initialize mode requests to none pending - for ( i = 0; i < ( NUM_OF_MODES - 1 ); i++ ) + for ( i = 0; i < ( NUM_OF_DG_MODES - 1 ); i++ ) { modeRequest[i] = FALSE; } @@ -124,7 +125,7 @@ *************************************************************************/ void execOperationModes( void ) { - OP_MODE newMode; + DG_OP_MODE newMode; // any new mode requests? newMode = arbitrateModeRequest(); // will return current mode if no pending requests @@ -149,52 +150,53 @@ switch ( currentMode ) { case MODE_FAUL: - execFaultMode(); + currentSubMode = execFaultMode(); break; case MODE_SERV: - execServiceMode(); + currentSubMode = execServiceMode(); break; case MODE_INIT: - execInitAndPOSTMode(); + currentSubMode = execInitAndPOSTMode(); break; case MODE_STAN: - execStandbyMode(); + currentSubMode = execStandbyMode(); break; case MODE_SOLO: - execSoloMode(); + currentSubMode = execSoloMode(); break; case MODE_CIRC: - execRecirculateMode(); + currentSubMode = execRecirculateMode(); break; case MODE_FILL: - execFillMode(); + currentSubMode = execFillMode(); break; case MODE_DRAI: - execDrainMode(); + currentSubMode = execDrainMode(); break; case MODE_FLUS: - execFlushMode(); + currentSubMode = execFlushMode(); break; case MODE_HEAT: - execHeatDisinfectMode(); + currentSubMode = execHeatDisinfectMode(); break; case MODE_CHEM: - execChemicalDisinfectMode(); + currentSubMode = execChemicalDisinfectMode(); break; default: - currentMode = MODE_FAUL; // TODO - trigger s/w fault + currentMode = MODE_FAUL; + currentSubMode = 0; break; } // end switch @@ -213,7 +215,7 @@ * @param newMode : requested mode * @return none *************************************************************************/ -void requestNewOperationMode( OP_MODE newMode ) +void requestNewOperationMode( DG_OP_MODE newMode ) { // validate requested mode if ( newMode < MODE_NLEG ) @@ -235,7 +237,7 @@ * Outputs : Initializes the Operation Modes module. * @return none *************************************************************************/ -OP_MODE getCurrentOperationMode( void ) +DG_OP_MODE getCurrentOperationMode( void ) { return currentMode; } @@ -248,9 +250,9 @@ * Outputs : Initializes the Operation Modes module. * @return none *************************************************************************/ -static OP_MODE arbitrateModeRequest( void ) +static DG_OP_MODE arbitrateModeRequest( void ) { - OP_MODE reqMode = currentMode; + DG_OP_MODE reqMode = currentMode; U32 i; // block additional requests until after mode arbitration @@ -261,7 +263,7 @@ { if ( modeRequest[i] != FALSE ) { - reqMode = (OP_MODE)i; + reqMode = (DG_OP_MODE)i; break; } } @@ -287,7 +289,7 @@ * @param newMode : new op mode to transition to * @return none *************************************************************************/ -static void transitionToNewOperationMode( OP_MODE newMode ) +static void transitionToNewOperationMode( DG_OP_MODE newMode ) { // setup for new operating mode switch ( newMode ) @@ -345,7 +347,7 @@ if ( ++broadcastModeIntervalCtr >= BROADCAST_DG_OP_MODE_INTERVAL ) { broadcastModeIntervalCtr = 0; - broadcastDGOperationMode( currentMode ); + broadcastDGOperationMode( (U32)currentMode, currentSubMode ); } } Index: firmware/App/Modes/OperationModes.h =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/OperationModes.h (.../OperationModes.h) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/OperationModes.h (.../OperationModes.h) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -18,6 +18,7 @@ #define __OP_MODES_H__ #include "DGCommon.h" +#include "DGModes.h" /** * @defgroup OperationModes OperationModes @@ -30,30 +31,12 @@ // ********** public definitions ********** -/// Enumeration of operation modes. These are in order of priority (highest to lowest). -typedef enum Op_Modes -{ - MODE_FAUL = 0, ///< Fault mode. - MODE_SERV, ///< Service mode. - MODE_INIT, ///< Initialization & POST mode. - MODE_STAN, ///< Standby mode - connected to HD. - MODE_SOLO, ///< Standby Solo mode - no HD connected. - MODE_CIRC, ///< Re-circulate mode. - MODE_FILL, ///< Fill mode. - MODE_DRAI, ///< Drain mode. - MODE_FLUS, ///< Flush mode. - MODE_HEAT, ///< Heat Disinfect mode. - MODE_CHEM, ///< Chemical Disinfect mode. - MODE_NLEG, ///< Not legal - an illegal mode transition occurred. - NUM_OF_MODES -} OP_MODE; - // ********** public function prototypes ********** void initOperationModes( void ); // initialize this module void execOperationModes( void ); // execute the operation modes state machine (scheduled periodic call) -void requestNewOperationMode( OP_MODE newMode ); // request a transition to a new operation mode -OP_MODE getCurrentOperationMode( void ); // get the current operation mode +void requestNewOperationMode( DG_OP_MODE newMode ); // request a transition to a new operation mode +DG_OP_MODE getCurrentOperationMode( void ); // get the current operation mode /**@}*/ Index: firmware/App/Services/Reservoirs.c =================================================================== diff -u -r93bc8dd0c0faecf364a27dee9da34a711cdc2ce7 -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 93bc8dd0c0faecf364a27dee9da34a711cdc2ce7) +++ firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -130,7 +130,7 @@ // fill command only valid in re-circulate mode if ( ( MODE_CIRC == getCurrentOperationMode() ) && - ( RECIRCULATE_MODE_STATE_RECIRC_WATER == getRecirculateModeState() ) ) + ( DG_RECIRCULATE_MODE_STATE_RECIRC_WATER == getCurrentRecirculateState() ) ) { // validate parameters if ( fillToVolMl < MAX_FILL_VOLUME_ML ) Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r77738b42add276957539f0efb3f9a4092852c5ce -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 77738b42add276957539f0efb3f9a4092852c5ce) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -360,9 +360,11 @@ * @details * Inputs : none * Outputs : DG operation mode msg constructed and queued + * @param mode : current operation mode of the DG. + * @param subMode : current sub-mode of the current operation mode of the DG. * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ -BOOL broadcastDGOperationMode( U32 mode ) +BOOL broadcastDGOperationMode( U32 mode, U32 subMode ) { BOOL result; MESSAGE_T msg; @@ -371,9 +373,11 @@ // create a message record blankMessage( &msg ); msg.hdr.msgID = MSG_ID_DG_OP_MODE; - msg.hdr.payloadLen = sizeof( U32 ); + msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ); memcpy( payloadPtr, &mode, sizeof( U32 ) ); + payloadPtr += sizeof( U32 ); + memcpy( payloadPtr, &subMode, sizeof( U32 ) ); // serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer result = serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_BROADCAST, ACK_NOT_REQUIRED ); Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r77738b42add276957539f0efb3f9a4092852c5ce -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 77738b42add276957539f0efb3f9a4092852c5ce) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -36,7 +36,7 @@ BOOL broadcastRTCEpoch( U32 epoch ); // TODO - probably don't want DG to broadcast these // MSG_ID_DG_OP_MODE -BOOL broadcastDGOperationMode( U32 mode ); +BOOL broadcastDGOperationMode( U32 mode, U32 subMode ); // MSG_ID_LOAD_CELL_READINGS BOOL broadcastLoadCellData( F32 loadCellA1, F32 loadCellA2, F32 loadCellB1, F32 loadCellB2 );