Index: firmware/App/Modes/ModeGenPermeate.c =================================================================== diff -u -r8d272582cbd2cb5fc0c6af0fead2867ce02658b0 -r1cf11f4c1f6a1f1fd40270889723fbec040fc7ec --- firmware/App/Modes/ModeGenPermeate.c (.../ModeGenPermeate.c) (revision 8d272582cbd2cb5fc0c6af0fead2867ce02658b0) +++ firmware/App/Modes/ModeGenPermeate.c (.../ModeGenPermeate.c) (revision 1cf11f4c1f6a1f1fd40270889723fbec040fc7ec) @@ -40,6 +40,7 @@ #define GEN_PERMEATE_TANK_FULL_SWITCH_MS ( 6 * MS_PER_SECOND ) ///< state switch timeout (in ms) #define GEN_PERMEATE_TANK_FULL_TIMEOUT_MS ( 60 * MS_PER_SECOND ) #define GEN_PERMEATE_BOOST_PUMP_TGT_PSI 25 +#define GEN_PERMEATE_PWM_DEFAULT 0.22F // ********** private data ********** @@ -94,6 +95,7 @@ { initGenPermeateMode(); setCurrentSubState( genPermeateState ); + setModeGenPTransition( genPermeateState ); return genPermeateState; } @@ -113,11 +115,11 @@ switch ( genPermeateState ) { case FP_GENP_TANK_FILL_STATE: - genPermeateState = handleGenPTankFullState(); + genPermeateState = handleGenPTankFillState(); break; case FP_GENP_TANK_FULL_STATE: - genPermeateState = handleGenPTankFillState(); + genPermeateState = handleGenPTankFullState(); break; default: @@ -162,7 +164,14 @@ { setBoostPumpTargetPressure( GEN_PERMEATE_BOOST_PUMP_TGT_PSI ); } - setROPumpTargetDutyCycle( getGenPermeateRODutyCycle() ); + if ( 0.0F == getGenPermeateRODutyCycle() ) + { + setROPumpTargetDutyCycle( GEN_PERMEATE_PWM_DEFAULT ); + } + else + { + setROPumpTargetDutyCycle( getGenPermeateRODutyCycle() ); + } break; case FP_GENP_TANK_FULL_STATE: @@ -178,7 +187,14 @@ } tankFullDelayTime = getMSTimerCount(); tankFullAlarmTimeout = getMSTimerCount(); - setROPumpTargetDutyCycle( getGenPermeateRODutyCycle() ); + if ( 0.0F == getGenPermeateRODutyCycle() ) + { + setROPumpTargetDutyCycle( GEN_PERMEATE_PWM_DEFAULT ); + } + else + { + setROPumpTargetDutyCycle( getGenPermeateRODutyCycle() ); + } break; default: @@ -372,15 +388,10 @@ *************************************************************************/ BOOL requestGenWaterStart( void ) { - BOOL result = FALSE; + BOOL result = TRUE; + pendingStartGenRequest = TRUE; + requestNewOperationMode( FP_MODE_GENP ); - if ( FP_PRE_GENP_VERIFY_WATER == getCurrentPreGenPState() ) - { - result = TRUE; - pendingStartGenRequest = TRUE; - requestNewOperationMode( FP_MODE_GENP ); - } - return result; }