Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r9b6d9a0db373b39c3d04dd07516fde59b292bbc5 -r4828ff8bd5b5ff97f36de33101d8ca4b9e54bfa1 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 9b6d9a0db373b39c3d04dd07516fde59b292bbc5) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 4828ff8bd5b5ff97f36de33101d8ca4b9e54bfa1) @@ -141,6 +141,7 @@ static PRE_TREATMENT_RESERVOIR_MGMT_STATE_T handlePreTreatmentReservoirMgmtFillCompleteState( void ); static PRE_TREATMENT_RESERVOIR_MGMT_STATE_T handlePreTreatmentReservoirMgmtRequestReservoirSwitchState( void ); static PRE_TREATMENT_RESERVOIR_MGMT_STATE_T handlePreTreatmentReservoirMgmtWaitReservoirSwitchState( void ); +static void handleDGParkConcentratePumpsCmdRespState( void ); static U32 getPreTreatmentFillVolume( DG_RESERVOIR_ID_T inactiveRes ); static void setPreTreatmentHeatingParams( F32 targetTempC, U32 targetVolML, F32 targetFillFlowLPM, U32 dialysateFlowMLPM ); @@ -1205,6 +1206,8 @@ break; case PRE_TREATMENT_RESERVOIR_MGMT_COMPLETE_STATE: + // retry the DG park concentrate pump request command if previous request was failed. + handleDGParkConcentratePumpsCmdRespState(); break; default: @@ -1544,6 +1547,30 @@ /*********************************************************************//** * @brief + * The handleDGParkConcentratePumpsCmdRespState function checks + * Park DG concentrate pump command request sent was successfully handled or not. + * on failure, retry the DG Concentrate pumps park command request. + * @details Inputs: DG park concentrate pump request command response + * @details Outputs: retry park command on failure + * @return none + *************************************************************************/ +static void handleDGParkConcentratePumpsCmdRespState( void ) +{ + DG_CMD_RESPONSE_T dgCmdResp; + + // Check DG response to park concentrate pumps command + if ( TRUE == getDGCommandResponse( DG_CMD_PARK_CONCENTRATE_PUMPS, &dgCmdResp ) ) + { + if ( DG_CMD_REQUEST_REJECT_REASON_NONE != dgCmdResp.rejectCode ) + { + // retry park concentrate pumps command request to DG + cmdDGParkConcentratePumps(); + } + } +} + +/*********************************************************************//** + * @brief * The getPreTreatmentFillVolume function determines which volume to fill * the inactive reservoir. * @details Inputs: reservoirStatus[]