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[] Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r9b6d9a0db373b39c3d04dd07516fde59b292bbc5 -r4828ff8bd5b5ff97f36de33101d8ca4b9e54bfa1 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 9b6d9a0db373b39c3d04dd07516fde59b292bbc5) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 4828ff8bd5b5ff97f36de33101d8ca4b9e54bfa1) @@ -1732,7 +1732,7 @@ // Create a message record blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_DG_PARK_CONCENTRATE_PUMPS; + msg.hdr.msgID = MSG_ID_DG_PARK_CONCENTRATE_PUMPS_CMD_REQUEST; msg.hdr.payloadLen = 0; // Serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer