Index: firmware/App/Modes/ModeGenIdle.c =================================================================== diff -u -r0c599603188536e9d329fbd60a8768affd0c49a2 -r7c99c8a08fdd3747c298d04a6995b325bb986097 --- firmware/App/Modes/ModeGenIdle.c (.../ModeGenIdle.c) (revision 0c599603188536e9d329fbd60a8768affd0c49a2) +++ firmware/App/Modes/ModeGenIdle.c (.../ModeGenIdle.c) (revision 7c99c8a08fdd3747c298d04a6995b325bb986097) @@ -53,6 +53,7 @@ static DG_GEN_IDLE_MODE_STATE_T genIdleState; ///< Currently active generation idle state. static DG_GEN_IDLE_MODE_BAD_FILL_STATE_T badFillState; ///< Current active bad fill state. static U32 hdLostCommStartTime_ms = 0; ///< Lost communication with HD start time in ms. +static U32 targetFillVolumeML; ///< Save the target fill volume before calling startFillCmd() // ********** private function prototypes ********** @@ -78,6 +79,7 @@ genIdleState = DG_GEN_IDLE_MODE_STATE_START; // badFillState = DG_HANDLE_BAD_FILL_STATE_FIRST_DRAIN; hdLostCommStartTime_ms = 0; + targetFillVolumeML = 0; } /*********************************************************************//** @@ -320,11 +322,12 @@ static DG_GEN_IDLE_MODE_BAD_FILL_STATE_T handleFlushFillState( void ) { DG_GEN_IDLE_MODE_BAD_FILL_STATE_T result = DG_HANDLE_BAD_FILL_STATE_FLUSH_FILL; + U32 fillToVolumeML = 1000; if ( FALSE == isAlarmActive( ALARM_ID_FILL_CONDUCTIVITY_OUT_OF_RANGE ) ) // alarm is no longer active - cleared by user { - // TODO fill only up to 1000 mL not 1500 mL - requestNewOperationMode( DG_MODE_FILL ); // When fill is completed, it goes to generation idle mode (DG_GEN_IDLE_MODE_STATE_START) + targetFillVolumeML = getTargetFillVolumeML(); // save the HD target fill volume before command 1000 mL fill volume + startFillCmd( fillToVolumeML, getTargetFillFlowRateLPM() ); if ( TRUE == isAvgConductivityOutOfRange() ) { @@ -368,10 +371,8 @@ { DG_GEN_IDLE_MODE_BAD_FILL_STATE_T result = DG_HANDLE_BAD_FILL_STATE_CLEAR_ALARM; // (idle 1.4) - // TODO fill only up to 1500 mL not 1000 mL + startFillCmd( targetFillVolumeML, getTargetFillFlowRateLPM() ); // refill to the saved target fill volume (~1500 mL) - requestNewOperationMode( DG_MODE_FILL ); - return result; }