Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -r1afe548e4b4b56ea2086b49d51925da25171bc3b -r158fa55faa114e13f998847c8a4900a901486bba --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 1afe548e4b4b56ea2086b49d51925da25171bc3b) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 158fa55faa114e13f998847c8a4900a901486bba) @@ -85,6 +85,7 @@ //Testing static U32 bypassStateDelayStartTimeMS; ///< Delay balancing chamber switching for a second to preapre pump steady state. static BOOL delayBypassStateFlag; ///< To indicate change in treatment parameters +static F32 dialysateFlowRate; // ********** private function prototypes ********** @@ -136,6 +137,7 @@ //Testing bypassStateDelayStartTimeMS = 0; delayBypassStateFlag = TRUE; + dialysateFlowRate = 0; //Initialize balancing chamber module initBalanceChamber(); @@ -363,6 +365,9 @@ checkDialysateTemperature(); #endif + // Update dialysate flow rate changes received from TD + updateDialysateFlow(); + //Check temperature drift between D30 and D28 checkDialysateTemperatureSensors(); @@ -815,6 +820,29 @@ /*********************************************************************//** * @brief + * The updateDialysateFlow function updates the target Qd depending on the + * state of the balancing chamber. + * @details \b Inputs: none + * @details \b Outputs: dialysateFlowRate + * @return none + *************************************************************************/ +void updateDialysateFlow( void ) +{ + // Check the operation mode + if ( DD_MODE_GEND == getCurrentOperationMode() ) + { + // Update the dialysate flow rate to the TD request + dialysateFlowRate = getTDDialysateFlowrate(); + } + else + { + // Set the dialysate flow rate to zero + dialysateFlowRate = getTDDialysateFlowrate(); + } +} + +/*********************************************************************//** + * @brief * The getDialGoodToDeliverStatus function gets the dialysate good to deliver * status. * @details \b Inputs: isDialysateGoodtoDeliver @@ -955,7 +983,7 @@ data.d18Pressure = getFilteredPressure( D18_PRES ); data.d51Pressure = getFilteredPressure( D51_PRES ); data.isDialysateGoodtoDeliver = (BOOL)getDialGoodToDeliverStatus(); - data.targetQd = getTDDialysateFlowrate(); + data.targetQd = dialysateFlowRate; broadcastData( MSG_ID_DD_GEN_DIALYSATE_MODE_DATA, COMM_BUFFER_OUT_CAN_DD_BROADCAST, (U08*)&data, sizeof( GEN_DIALYSATE_MODE_DATA_T ) );