Index: firmware/App/Controllers/BalancingChamber.c =================================================================== diff -u -r9e0db1f82f13693d251e00e8958c8063dd89cae6 -r7a9cfc7590be84e1c4af6a04ca92c598d49cf9de --- firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision 9e0db1f82f13693d251e00e8958c8063dd89cae6) +++ firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision 7a9cfc7590be84e1c4af6a04ca92c598d49cf9de) @@ -7,8 +7,8 @@ * * @file BalancingChamber.c * -* @author (last) Santhosh Reddy -* @date (last) 06-Jul-2026 +* @author (last) Jashwant Gantyada +* @date (last) 29-Jul-2026 * * @author (original) Vinayakam Mani * @date (original) 28-Jan-2025 @@ -66,9 +66,9 @@ #define BC_BICARB_SPEED_OFFSET_MLPM 240.0F ///< Bicarb speed formula offset (mL/min). #define BC_BICARB_SPEED_DISC_CONST 230400.0F ///< Bicarb speed formula discriminant constant. #define BC_BICARB_SPEED_DISC_VOL_COEF 96000.0F ///< Bicarb speed formula volume coefficient. -#define BC_ACID_SPEED_OFFSET_MLPM 160.0F -#define BC_ACID_SPEED_DISC_CONSTANT 102400.0F -#define BC_ACID_SPEED_DISC_VOL_COEF 96000.0F +#define BC_ACID_SPEED_OFFSET_MLPM 160.0F ///< Acid speed formula offset (mL/min). +#define BC_ACID_SPEED_DISC_CONSTANT 102400.0F ///< Acid speed formula discriminant constant. +#define BC_ACID_SPEED_DISC_VOL_COEF 96000.0F ///< Acid speed formula volume coefficient. /// Payload record structure for balancing chamber switch only request typedef struct @@ -223,9 +223,8 @@ * @param acidVolumeMl Instantaneous acid mix volume (mL) * @return Acid concentrate pump speed (mL/min) *************************************************************************/ -static F32 getAcidConcentratePumpSpeedMlMin( F32 acidVolumeMl) +static F32 getAcidConcentratePumpSpeedMlMin( F32 acidVolumeMl ) { - F32 discriminant = BC_ACID_SPEED_DISC_CONSTANT - ( BC_ACID_SPEED_DISC_VOL_COEF * acidVolumeMl ); F32 result = 0.0F; @@ -466,9 +465,9 @@ { BOOL state = FALSE; F32 dialFlowRate = getBalChamberActiveDialysateFlowrate(); - //state = ( getD48PumpSpeed() <= BAL_CHAMBER_TIME_BASED_D48_SPEED_RPM ) ? TRUE : FALSE; - state = ( dialFlowRate <= BAL_CHAMBER_OPEN_LOOP_FLOW_RATE_BAND_3 )? TRUE : FALSE; + state = ( dialFlowRate <= BAL_CHAMBER_OPEN_LOOP_FLOW_RATE_BAND_4 )? TRUE : FALSE; + return state; } @@ -749,6 +748,29 @@ /*********************************************************************//** * @brief + * The valveControlForBCSpentSideOnlyOpenState function opens the spent side + * balancing chamber valves and closes the fresh side valves. + * @details \b Inputs: none + * @details \b Outputs: valve states + * @return none. + *************************************************************************/ +void valveControlForBCSpentSideOnlyOpenState( void ) +{ + // Open spent side valves D23,D24,D25,D26 + setValveState( D23_VALV, VALVE_STATE_OPEN ); + setValveState( D25_VALV, VALVE_STATE_OPEN ); + setValveState( D24_VALV, VALVE_STATE_OPEN ); + setValveState( D26_VALV, VALVE_STATE_OPEN ); + + // Close fresh balancing chamber valves D19,D20,D21,D22 + setValveState( D19_VALV, VALVE_STATE_CLOSED ); + setValveState( D20_VALV, VALVE_STATE_CLOSED ); + setValveState( D21_VALV, VALVE_STATE_CLOSED ); + setValveState( D22_VALV, VALVE_STATE_CLOSED ); +} + +/*********************************************************************//** + * @brief * The valveControlForBCState1FreshSideClose function closes only the fresh-side * balancing chamber valves opened during state 1 fill. * @details \b Inputs: none