Index: firmware/App/Controllers/BalancingChamber.c =================================================================== diff -u -re0fc678329b0cb25dd76fa5e23cc1f487851f0ec -r6bbe6e35f9c378ad8dd5be2edebb1cc1acd23d37 --- firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision e0fc678329b0cb25dd76fa5e23cc1f487851f0ec) +++ firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision 6bbe6e35f9c378ad8dd5be2edebb1cc1acd23d37) @@ -60,6 +60,8 @@ static U32 balChamberDataPublicationTimerCounter; ///< Used to schedule balancing chamber data publication to CAN bus. static OVERRIDE_U32_T balChamberDataPublishInterval; ///< Balancing chamber data publish interval. static BOOL balanceChamberSwitchingOnly; ///< Balancing chamber switching without any pressure check and dosing delivery. +static OVERRIDE_F32_T acidDoseVolume; ///< Acid concentrate volume in ml ( overrideable). +static OVERRIDE_F32_T bicarbDoseVolume; ///< Bicarb concentrate volume in ml ( overrideable). // ********** private function prototypes ********** @@ -90,6 +92,14 @@ balChamberDataPublishInterval.ovData = BAL_CHAMBER_DATA_PUBLISH_INTERVAL; balChamberDataPublishInterval.ovInitData = 0; balChamberDataPublishInterval.override = OVERRIDE_RESET; + acidDoseVolume.data = DEFAULT_ACID_VOLUME_ML; + acidDoseVolume.ovData = DEFAULT_ACID_VOLUME_ML; + acidDoseVolume.ovInitData = 0.0F; + acidDoseVolume.override = OVERRIDE_RESET; + bicarbDoseVolume.data = DEFAULT_BICARB_VOLUME_ML; + bicarbDoseVolume.ovData = DEFAULT_BICARB_VOLUME_ML; + bicarbDoseVolume.ovInitData = 0.0F; + bicarbDoseVolume.override = OVERRIDE_RESET; balanceChamberSwitchingOnly = FALSE; balChamberSwitchingPeriod = 0; balChamberValveClosePeriod = 0; @@ -361,7 +371,8 @@ F32 freshDialPressure = getFilteredPressure( D18_PRES ); F32 spentDialPressure = getFilteredPressure( D51_PRES ); - + F32 acidVolume = getF32OverrideValue( &acidDoseVolume ); + F32 bicarbVolume = getF32OverrideValue( &bicarbDoseVolume ); // Check fresh and spent dialysate pressure in range or BC switch only flag set //TODO : comment the pressure check if ( 1 ) @@ -379,8 +390,8 @@ if ( FALSE == getBalChamberSwitchingOnlyStatus() ) { // start acid and bicarb pump with the expected quantity - setConcentratePumpTargetSpeed( D11_PUMP, CONCENTRATE_PUMP_MAX_SPEED, TEST_ACID_VOLUME_ML ); - setConcentratePumpTargetSpeed( D10_PUMP, CONCENTRATE_PUMP_MAX_SPEED, TEST_BICARB_VOLUME_ML ); + setConcentratePumpTargetSpeed( D11_PUMP, CONCENTRATE_PUMP_MAX_SPEED, acidVolume ); + setConcentratePumpTargetSpeed( D10_PUMP, CONCENTRATE_PUMP_MAX_SPEED, bicarbVolume ); requestConcentratePumpOn( D11_PUMP ); requestConcentratePumpOn( D10_PUMP ); } @@ -500,6 +511,8 @@ F32 freshDialPressure = getFilteredPressure( D18_PRES ); F32 spentDialPressure = getFilteredPressure( D51_PRES ); + F32 acidVolume = getF32OverrideValue( &acidDoseVolume ); + F32 bicarbVolume = getF32OverrideValue( &bicarbDoseVolume ); // Check fresh and spent dialysate pressure in range //TODO : comment the pressure check @@ -518,8 +531,8 @@ if ( FALSE == getBalChamberSwitchingOnlyStatus() ) { // start acid and bicarb pump with the expected quantity - setConcentratePumpTargetSpeed( D11_PUMP, CONCENTRATE_PUMP_MAX_SPEED, TEST_ACID_VOLUME_ML ); - setConcentratePumpTargetSpeed( D10_PUMP, CONCENTRATE_PUMP_MAX_SPEED, TEST_BICARB_VOLUME_ML ); + setConcentratePumpTargetSpeed( D11_PUMP, CONCENTRATE_PUMP_MAX_SPEED, acidVolume ); + setConcentratePumpTargetSpeed( D10_PUMP, CONCENTRATE_PUMP_MAX_SPEED, bicarbVolume ); requestConcentratePumpOn( D11_PUMP ); requestConcentratePumpOn( D10_PUMP ); } @@ -757,6 +770,40 @@ /*********************************************************************//** * @brief + * The testAcidDoseVolumeOverride function sets the override value + * of the acid concentrate dosing volume. + * @details Inputs: acidDoseVolume + * @details Outputs: acidDoseVolume + * @param message Override message from Dialin which includes the override + * value to override the acid concentrate dosing volume. + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testAcidDoseVolumeOverride( MESSAGE_T *message ) +{ + BOOL result = f32Override( message, &acidDoseVolume ); + + return result; +} + +/*********************************************************************//** + * @brief + * The testBicarbDoseVolumeOverride function sets the override value + * of the bicarb concentrate dosing volume. + * @details Inputs: bicarbDoseVolume + * @details Outputs: bicarbDoseVolume + * @param message Override message from Dialin which includes the override + * value to override the bicarb concentrate dosing volume. + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testBicarbDoseVolumeOverride( MESSAGE_T *message ) +{ + BOOL result = f32Override( message, &bicarbDoseVolume ); + + return result; +} + +/*********************************************************************//** + * @brief * The testBCSwitchOnlyStartStopOverride function starts/stops balancing * chamber switching only without dosing delivery and pressure check condition. * @details \b Inputs: tester logged in