Index: firmware/App/Modes/FPModes/ModePreGenPermeate.c =================================================================== diff -u -r64acabc33ab795591768801f8b443f0da9ee2b98 -ra36dcbc3e2f94d418d8aa54588c836a3adf35e17 --- firmware/App/Modes/FPModes/ModePreGenPermeate.c (.../ModePreGenPermeate.c) (revision 64acabc33ab795591768801f8b443f0da9ee2b98) +++ firmware/App/Modes/FPModes/ModePreGenPermeate.c (.../ModePreGenPermeate.c) (revision a36dcbc3e2f94d418d8aa54588c836a3adf35e17) @@ -448,6 +448,25 @@ /*********************************************************************//** * @brief + * The validatePreGenPChangeReq function validate whether requested + * sub mode change is legal or not. + * @details \b Inputs: none + * @details \b Outputs: none + * @return TRUE if request is legal, FALSE if not. + *************************************************************************/ +BOOL validatePreGenPChangeReq( U32 newSubMode ) +{ + BOOL result = FALSE; + LEVEL_STATE_T level = getLevelStatus( P25_LEVL ); + + // TODO add validation logic + result = TRUE; + + return result; +} + +/*********************************************************************//** + * @brief * The signalNewPreGenPSubMode function requests transition to a new * PreGen Permeate sub mode. * @details \b Inputs: none @@ -457,45 +476,34 @@ void signalNewPreGenPSubMode( U32 newSubMode ) { FP_PRE_GENP_MODE_STATE_T reqSubMode = (FP_PRE_GENP_MODE_STATE_T)newSubMode; - LEVEL_STATE_T level = getLevelStatus( P25_LEVL ); if ( reqSubMode < NUM_OF_FP_PRE_GENW_MODE_STATES ) { + preGenPState = reqSubMode; + // handle the pre-requisite if any switch ( reqSubMode ) { case FP_PRE_GENP_INLET_PRESSURE_CHECK: - preGenPState = FP_PRE_GENP_INLET_PRESSURE_CHECK; - setModePreGenPTransition( reqSubMode ); break; case FP_PRE_GENP_FILTER_FLUSH: - preGenPState = FP_PRE_GENP_FILTER_FLUSH; - setModePreGenPTransition( reqSubMode ); break; case FP_PRE_GENP_PERMEATE_FLUSH: - preGenPState = FP_PRE_GENP_PERMEATE_FLUSH; - setModePreGenPTransition( reqSubMode ); break; case FP_PRE_GENP_CONCENTRATE_FLUSH: // jump to concentrate flush sub mode only if the permeate tank is full - if ( LEVEL_STATE_HIGH == level ) - { - preGenPState = FP_PRE_GENP_CONCENTRATE_FLUSH; - setModePreGenPTransition( reqSubMode ); - } break; case FP_PRE_GENP_VERIFY_WATER: - preGenPState = FP_PRE_GENP_VERIFY_WATER; - setModePreGenPTransition( reqSubMode ); break; case FP_PRE_GENP_PAUSED: default: break; } + setModePreGenPTransition( reqSubMode ); } }