Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r2aeabba6bbaf35c31be651340e8ecb1889a5d9a1 -rf8db357a5e2ad0fa4ab4974794629cc2a79ee0b9 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 2aeabba6bbaf35c31be651340e8ecb1889a5d9a1) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision f8db357a5e2ad0fa4ab4974794629cc2a79ee0b9) @@ -140,9 +140,20 @@ reservoirFilledStatus[ DG_RESERVOIR_2 ] = FALSE; reservoirFlushedStatus[ DG_RESERVOIR_1 ] = FALSE; reservoirFlushedStatus[ DG_RESERVOIR_2 ] = FALSE; - reservoirFlushCount[ DG_RESERVOIR_1 ] = PRE_TREATMENT_FLUSH_COUNT; - reservoirFlushCount[ DG_RESERVOIR_2 ] = PRE_TREATMENT_FLUSH_COUNT; +#ifndef _RELEASE_ + if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_PRIMING ) ) + { + reservoirFlushCount[ DG_RESERVOIR_1 ] = 1; + reservoirFlushCount[ DG_RESERVOIR_2 ] = 1; + } + else +#endif + { + reservoirFlushCount[ DG_RESERVOIR_1 ] = PRE_TREATMENT_FLUSH_COUNT; + reservoirFlushCount[ DG_RESERVOIR_2 ] = PRE_TREATMENT_FLUSH_COUNT; + } + reservoirFlags[ DG_RESERVOIR_1 ].startFlushFill = FALSE; reservoirFlags[ DG_RESERVOIR_1 ].startNormalFill = FALSE; reservoirFlags[ DG_RESERVOIR_2 ].startFlushFill = FALSE; @@ -1007,23 +1018,13 @@ cmdStartDG(); } -#ifndef _RELEASE_ - if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_PRIMING ) ) + // Ensure any pending reservoir switches are completed before sending drain command + if ( TRUE == hasDGCompletedReservoirSwitch() ) { - reservoirFlushCount[activeRes] = 0; - state = PRE_TREATMENT_RESERVOIR_MGMT_START_FILL_STATE; - } - else -#endif - { - // Ensure any pending reservoir switches are completed before sending drain command - if ( TRUE == hasDGCompletedReservoirSwitch() ) + if ( ( DG_MODE_GENE == dgOpMode ) && ( DG_GEN_IDLE_MODE_STATE_FLUSH_WATER == dgSubMode ) ) { - if ( ( DG_MODE_GENE == dgOpMode ) && ( DG_GEN_IDLE_MODE_STATE_FLUSH_WATER == dgSubMode ) ) - { - state = PRE_TREATMENT_RESERVOIR_MGMT_DRAIN_CMD_RESP_STATE; - cmdStartDGDrain( DRAIN_RESERVOIR_TO_VOLUME_ML, TRUE, FALSE, TRUE ); - } + state = PRE_TREATMENT_RESERVOIR_MGMT_DRAIN_CMD_RESP_STATE; + cmdStartDGDrain( DRAIN_RESERVOIR_TO_VOLUME_ML, TRUE, FALSE, TRUE ); } } @@ -1165,43 +1166,34 @@ PRE_TREATMENT_RESERVOIR_MGMT_STATE_T state = PRE_TREATMENT_RESERVOIR_MGMT_FILL_COMPLETE_STATE; DG_OP_MODE_T dgOpMode = getDGOpMode(); U32 dgSubMode = getDGSubMode(); + U32 activeReservoir = (U32) getDGActiveReservoir(); if ( ( DG_MODE_GENE == dgOpMode ) && ( DG_GEN_IDLE_MODE_STATE_FLUSH_WATER == dgSubMode ) ) { if ( ( TRUE == reservoirFlushedStatus[ DG_RESERVOIR_1 ] ) && ( TRUE == reservoirFlushedStatus[ DG_RESERVOIR_2 ] ) ) { - if ( FALSE == reservoirFilledStatus[ DG_RESERVOIR_1 ] ) + if ( FALSE == reservoirFilledStatus[ activeReservoir ] ) { - reservoirFilledStatus[ DG_RESERVOIR_1 ] = TRUE; + reservoirFilledStatus[ activeReservoir ] = TRUE; state = PRE_TREATMENT_RESERVOIR_MGMT_REQUEST_RESERVOIR_SWITCH_STATE; } - else - { - if ( FALSE == reservoirFilledStatus[ DG_RESERVOIR_2 ] ) - { - reservoirFilledStatus[ DG_RESERVOIR_2 ] = TRUE; - state = PRE_TREATMENT_RESERVOIR_MGMT_COMPLETE_STATE; - } - } } else { state = PRE_TREATMENT_RESERVOIR_MGMT_WAIT_FOR_RESERVOIR_SWITCH_STATE; - U32 activeReservoir = (U32) getDGActiveReservoir(); if ( FALSE == reservoirFlushedStatus[ activeReservoir ] ) { DG_SWITCH_RSRVRS_CMD_T rsrvrCmd; - if (0 == reservoirFlushCount[ activeReservoir ]) + if (0 < reservoirFlushCount[ activeReservoir ]) { - reservoirFlushedStatus[ activeReservoir ] = TRUE; - } - else - { reservoirFlushCount[ activeReservoir ] -= 1; + if (0 == reservoirFlushCount[ activeReservoir ]) + { + reservoirFlushedStatus[ activeReservoir ] = TRUE; + } } - // rsrvrCmd.reservoirID = activeReservoir; rsrvrCmd.useLastTrimmerHeaterDC = FALSE; cmdSetDGActiveReservoir( &rsrvrCmd ); @@ -1245,7 +1237,7 @@ * @brief * The handlePreTreatmentReservoirMgmtWaitReservoirSwitchState function waits * until prime operation switches the active reservoir before filling up next reservoir. - * @details Inputs: DG intactive reservoir + * @details Inputs: DG inactive reservoir * @details Outputs: start filling next reservoir * @return current state of pre-treatment reservoir management *************************************************************************/