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; +} + /**@}*/