Index: firmware/App/Services/TDInterface.c =================================================================== diff -u -re01f6c0b94312dec30878967be9ffa3228e8773b -r07340ea19b917f515c85e42c7904c748aa7c7dcf --- firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision e01f6c0b94312dec30878967be9ffa3228e8773b) +++ firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 07340ea19b917f515c85e42c7904c748aa7c7dcf) @@ -335,6 +335,7 @@ BOOL handlePreGenDialysateRequestMsg( MESSAGE_T *message ) { BOOL result = FALSE; + REQUEST_REJECT_REASON_CODE_T fpReason = REQUEST_REJECT_REASON_NONE; if ( message->hdr.payloadLen == sizeof( PRE_GEN_DIALYSATE_REQ_PAYLOAD_T ) ) { @@ -347,9 +348,14 @@ if ( ( DD_MODE_STAN == ddMode ) && ( TRUE == startPreGenRequest.start ) ) { // Start FP Pre-Generate Permeate - requestFPGeneratePermeate( RO_PRE_GEN, TRUE ); + fpReason = signalStartGenPermeate(); // start pre-gen dialysate result = requestDDPreGenStart(); + + if ( REQUEST_REJECT_REASON_NONE != fpReason ) + { + result = FALSE; + } // Update Temperature, Acid/Bicarb type and dialysate rate for pregen process. setTDDialysateFlowrate( startPreGenRequest.dialRate ); setTDTargetDialysateTemperature( startPreGenRequest.dialTemp ); @@ -361,6 +367,13 @@ { // stop pre generate diaysate delivery result = requestDDPreGenStop(); + // stop FP Pre-Generate Permeate + fpReason = signalStopGenPermeate(); + + if ( REQUEST_REJECT_REASON_NONE != fpReason ) + { + result = FALSE; + } } } } @@ -384,6 +397,7 @@ BOOL handleDialysateDeliveryRequestMsg( MESSAGE_T *message ) { BOOL result = FALSE; + REQUEST_REJECT_REASON_CODE_T fpReason = REQUEST_REJECT_REASON_NONE; if ( message->hdr.payloadLen == sizeof( DIALYSATE_DELIVERY_REQ_PAYLOAD_T ) ) { @@ -413,6 +427,13 @@ { // stop dialysate generation result = requestDDGenDialyasteStop(); + // stop FP Pre-Generate Permeate + fpReason = signalStopGenPermeate(); + + if ( REQUEST_REJECT_REASON_NONE != fpReason ) + { + result = FALSE; + } } else {