Index: firmware/App/Modes/FPModes/ModeGenPermeateDefeatured.c =================================================================== diff -u -r47a7b0fce13cf38919932a8662c378f4f6a8b9f3 -rbadf6cf12c8ee15d856a195dfacb8f84360f8e96 --- firmware/App/Modes/FPModes/ModeGenPermeateDefeatured.c (.../ModeGenPermeateDefeatured.c) (revision 47a7b0fce13cf38919932a8662c378f4f6a8b9f3) +++ firmware/App/Modes/FPModes/ModeGenPermeateDefeatured.c (.../ModeGenPermeateDefeatured.c) (revision badf6cf12c8ee15d856a195dfacb8f84360f8e96) @@ -333,4 +333,62 @@ return result; } +/*********************************************************************//** + * @brief + * The testValidateGenPDefeaturedChangeReq function validate whether + * requested sub mode change is legal or not. + * @details \b Inputs: none + * @details \b Outputs: none + * @param newSubMode the enumerated sub state of the mode. + * @return TRUE if request is legal, FALSE if not. + *************************************************************************/ +BOOL testValidateGenPDefeaturedChangeReq( U32 newSubMode ) +{ + BOOL result = FALSE; + + if ( newSubMode < NUM_OF_FP_GENP_DEF_MODE_STATES ) + { + switch ( newSubMode ) + { + case FP_GENP_DEF_SUPPLY_WATER: + result = TRUE; + break; + + // TODO update once pause state is implemented + case FP_GENP_DEF_PAUSED: + default: + break; + } + } + + return result; +} + +/*********************************************************************//** + * @brief + * The testSignalNewGenPDefeaturedSubMode function requests transition + * to a new defeatured Gen Permeate sub mode. + * @details \b Inputs: none + * @details \b Outputs: none + * @param newSubMode the enumerated sub state of the mode. + * @return none + *************************************************************************/ +void testSignalNewGenPDefeaturedSubMode( U32 newSubMode ) +{ + if ( newSubMode < NUM_OF_FP_GENP_DEF_MODE_STATES ) + { + genPermeateDefState = (FP_GENP_DEF_MODE_STATE_T)newSubMode; + // handle the prerequisite if any + switch ( newSubMode ) + { + // Any of these state require no special handling + case FP_GENP_DEF_SUPPLY_WATER: + case FP_GENP_DEF_PAUSED: + default: + break; + } + setModeGenPDefTransition( genPermeateDefState ); + } +} + /**@}*/