Index: firmware/App/Services/DDInterface.c =================================================================== diff -u -r222b05e39082f727dcfa2d144fa6e040501882f0 -r52787cd53986cfd0abb7e674bf096898e5070f9a --- firmware/App/Services/DDInterface.c (.../DDInterface.c) (revision 222b05e39082f727dcfa2d144fa6e040501882f0) +++ firmware/App/Services/DDInterface.c (.../DDInterface.c) (revision 52787cd53986cfd0abb7e674bf096898e5070f9a) @@ -7,8 +7,8 @@ * * @file DDInterface.c * -* @author (last) Raghu Kallala -* @date (last) 01-May-2026 +* @author (last) Varshini Nagabooshanam +* @date (last) 15-Jun-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 @@ -122,6 +122,7 @@ dialysateDeliveryCmdSet.bicarbConvFactor = 0.0F; dialysateDeliveryCmdSet.sodium = 0; dialysateDeliveryCmdSet.bicarbonate = 0; + dialysateDeliveryCmdSet.substitutionRate = 0.0F; } /**********************************************************************//** @@ -430,6 +431,7 @@ *************************************************************************/ void cmdStartGenerateDialysate( F32 qd, F32 quf, F32 dialTemp, U32 genDialysateState, F32 acidConvFactor, F32 bicarbConvFactor, U32 sodium, U32 bicarbonate ) { + dialysateDeliveryCmdSet.start = TRUE; dialysateDeliveryCmdSet.dialRate = qd; dialysateDeliveryCmdSet.ufRate = quf; @@ -439,6 +441,7 @@ dialysateDeliveryCmdSet.bicarbConvFactor = bicarbConvFactor; dialysateDeliveryCmdSet.sodium = sodium; dialysateDeliveryCmdSet.bicarbonate = bicarbonate; + dialysateDeliveryCmdSet.substitutionRate = 0.0F; #ifndef TEST_UI_ONLY sendMessage( MSG_ID_DD_GEN_DIALYSATE_REQUEST_DATA, COMM_BUFFER_OUT_CAN_TD_2_DD, (U08*)(&dialysateDeliveryCmdSet), sizeof( DIALYSATE_DELIVERY_REQ_PAYLOAD_T ) ); @@ -652,7 +655,33 @@ // } } +/*********************************************************************//** + * @brief + * The cmdSubstitutionRate function sends a generate dialysate command to + * the DD with a given substitution (D92) pump rate for HDF / HD-online + * fluid bolus delivery. + * @details \b Message \b Sent: MSG_ID_DD_GEN_DIALYSATE_REQUEST_DATA + * @details \b Inputs: none + * @details \b Outputs: dialysateDeliveryCmdSet + * @param qs Target substitution flow rate (mL/min) + * @return none + *************************************************************************/ +void cmdSubstitutionRate( F32 qs ) +{ + if ( TRUE == dialysateDeliveryCmdSet.start ) + { + dialysateDeliveryCmdSet.substitutionRate = qs; +#ifndef TEST_UI_ONLY + sendMessage( MSG_ID_DD_GEN_DIALYSATE_REQUEST_DATA, COMM_BUFFER_OUT_CAN_TD_2_DD, (U08*)(&dialysateDeliveryCmdSet), sizeof( DIALYSATE_DELIVERY_REQ_PAYLOAD_T ) ); +#endif + } + else + { + // TODO - s/w fault? + } +} + /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/