Index: firmware/App/Modes/Prime.c =================================================================== diff -u -rbc8403b288e167f51c9e991c2a07bb455c77c19a -r72551346728009770b22d327a1ac4fad8b5a1675 --- firmware/App/Modes/Prime.c (.../Prime.c) (revision bc8403b288e167f51c9e991c2a07bb455c77c19a) +++ firmware/App/Modes/Prime.c (.../Prime.c) (revision 72551346728009770b22d327a1ac4fad8b5a1675) @@ -381,17 +381,15 @@ break; case PRIME_RESERVOIR_MGMT_WAIT_FOR_DRAIN_CMD_RESP: - if ( TRUE == getDGCommandResponse( DG_CMD_START_DRAIN, &dgCmdResp ) ) + if ( ( TRUE == getDGCommandResponse( DG_CMD_START_DRAIN, &dgCmdResp ) ) && ( DG_CMD_REQUEST_REJECT_REASON_INVALID_MODE == dgCmdResp.rejected ) ) { - if ( FALSE == dgCmdResp.rejected ) - { - currentReservoirMgmtState = PRIME_RESERVOIR_MGMT_DRAIN_STATE; - } - else if ( DG_CMD_REQUEST_REJECT_REASON_INVALID_MODE == dgCmdResp.rejected ) - { - currentReservoirMgmtState = PRIME_RESERVOIR_MGMT_FLUSH_DG_LINES_STATE; - } + currentReservoirMgmtState = PRIME_RESERVOIR_MGMT_FLUSH_DG_LINES_STATE; } + + if ( DG_MODE_DRAI == dgOpMode ) + { + currentReservoirMgmtState = PRIME_RESERVOIR_MGMT_DRAIN_STATE; + } break; case PRIME_RESERVOIR_MGMT_DRAIN_STATE: @@ -418,17 +416,15 @@ break; case PRIME_RESERVOIR_MGMT_WAIT_FOR_FILL_CMD_RESP: - if ( TRUE == getDGCommandResponse( DG_CMD_START_FILL, &dgCmdResp ) ) + if ( ( TRUE == getDGCommandResponse( DG_CMD_START_FILL, &dgCmdResp ) ) && ( DG_CMD_REQUEST_REJECT_REASON_INVALID_MODE == dgCmdResp.rejected ) ) { - if ( FALSE == dgCmdResp.rejected && DG_MODE_FILL == dgOpMode ) - { - currentReservoirMgmtState = PRIME_RESERVOIR_MGMT_FILL_STATE; - } - else if ( DG_CMD_REQUEST_REJECT_REASON_INVALID_MODE == dgCmdResp.rejected ) - { - currentReservoirMgmtState = PRIME_RESERVOIR_MGMT_START_FILL_STATE; - } + currentReservoirMgmtState = PRIME_RESERVOIR_MGMT_START_FILL_STATE; } + + if ( DG_MODE_FILL == dgOpMode ) + { + currentReservoirMgmtState = PRIME_RESERVOIR_MGMT_FILL_STATE; + } break; case PRIME_RESERVOIR_MGMT_FILL_STATE: