Index: firmware/App/Controllers/BalancingChamber.c =================================================================== diff -u -recd204503f9f4837800080a58c07dac8a2e8d602 -r9ac050d6099effbdd62070173d14dd5e225d5310 --- firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision ecd204503f9f4837800080a58c07dac8a2e8d602) +++ firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision 9ac050d6099effbdd62070173d14dd5e225d5310) @@ -22,6 +22,7 @@ #include "DryBiCart.h" #include "FpgaDD.h" #include "Heaters.h" +#include "Level.h" #include "ModeGenDialysate.h" #include "ModeStandby.h" #include "Messaging.h" @@ -105,7 +106,7 @@ static BOOL isBalChamberSwitchingOffRequested; ///< Flag indicating that a request was made to deactivate balancing chamber switching. //TODO: remove later once level sensor working -static U32 bicarbChamberPeriodicFillCounter; +static U32 bicarbChamberPeriodicFillCounter; // ********** private function prototypes ********** @@ -254,6 +255,8 @@ *************************************************************************/ U32 execBalancingChamberControl( void ) { + LVL_STATE_T bicarbChamberLevel = getBicarbChamberLevelStatus(); + updateBalChamberSwitchingPeriod(); // Increment counter indicating fill is in progress. @@ -262,6 +265,20 @@ if ( ( getTestConfigStatus( TEST_CONFIG_DD_ENABLE_DRY_BICARB ) == TRUE ) && ( balChamberExecState > BAL_CHAMBER_STATE_IDLE ) ) { +#ifdef CONDUCTIVE_LEVEL_SENSOR_ENABLED + if ( LVL_STATE_LOW == bicarbChamberLevel ) + { + if ( getCurrentBalancingChamberExecState() > BAL_CHAMBER_STATE_IDLE ) + { + if ( FALSE == setBicarbChamberFillRequested() ) + { + // TODO + //drybicart state machines are combined and so this is not an issue in future + //set alarm ? + } + } + } +#else // time based chamber F fill // Increment counter for dry bicarb chamber fill bicarbChamberPeriodicFillCounter += 1; // Fill bicarb chamber once every 60secs. @@ -275,6 +292,7 @@ } bicarbChamberPeriodicFillCounter = 0; } +#endif } switch ( balChamberExecState ) @@ -539,7 +557,7 @@ freshDialPressure = getFilteredPressure( D18_PRES ); spentDialPressure = getFilteredPressure( D51_PRES ); - if ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_1_0_HW ) == TRUE ) + if ( TRUE == getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_1_0_HW ) ) { //Set Trimmer heater Target temp every BC cycle to catch up fresh dialysate temp setHeaterTargetTemperature( D45_HEAT, getFilteredTemperatureValue( D4_TEMP ) ); @@ -845,10 +863,11 @@ acidVolume = getF32OverrideValue( &acidDoseVolume ); bicarbVolume = getF32OverrideValue( &bicarbDoseVolume ); } + freshDialPressure = getFilteredPressure( D18_PRES ); spentDialPressure = getFilteredPressure( D51_PRES ); - if ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_1_0_HW ) == TRUE ) + if ( TRUE == getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_1_0_HW ) ) { //Set Trimmer heater Target temp every BC cycle to catch up fresh dialysate temp setHeaterTargetTemperature( D45_HEAT, getFilteredTemperatureValue( D4_TEMP ) ); @@ -1107,7 +1126,7 @@ // Check if a request made was to activate the balancing chamber switching. if ( TRUE == isBalChamberSwitchingOnRequested ) { - //Clear the request flag to indicate that the request was processed. + //Clear request was processed. isBalChamberSwitchingOnRequested = FALSE; // Set flag to indicate that balancing chamber switching is active @@ -1268,6 +1287,7 @@ d48SpeedPostRangeCheck = RANGE( spentDialPumpSpeed, minD48Speed, maxD48Speed ); + // Do not turn on the pump if the switching only is enabled in the standby mode. if ( FALSE == getBalChamberSwitchingOnlyStatus() ) { Index: firmware/App/Controllers/ConcentratePumps.c =================================================================== diff -u -recd204503f9f4837800080a58c07dac8a2e8d602 -r9ac050d6099effbdd62070173d14dd5e225d5310 --- firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision ecd204503f9f4837800080a58c07dac8a2e8d602) +++ firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 9ac050d6099effbdd62070173d14dd5e225d5310) @@ -41,7 +41,7 @@ #define CONCENTRATE_PUMP_CLEANING_SPD_OUT_OF_RANGE_TOL_PCT 0.05F ///< Concentrate pump cleaning mode speed out of range tolerance when on in percentage. #define CONCENTRATE_PUMP_SPD_OUT_OF_RANGE_TOL_WHEN_SLOW_MLPM 0.5F ///< Concentrate pump speed out of range tolerance when slow in mL/min. #define CONCENTRATE_PUMP_LOW_SPEED_THRESHOLD_MLPM 5.0F ///< Concentrate pump low speed threshold in mL/min. -#define CONCENTRATE_PUMP_ZERO_FLOW_RATE 0xFFFFFFFF ///< Pulse width value when zero flow rate or pump is off +#define CONCENTRATE_PUMP_ZERO_FLOW_RATE 0xFFFFFFFF ///< Pulse width value when zero flow rate or pump is off. #define CONCENTRATE_PUMP_VOLUME_PER_REV_DIENER 0.4F ///< Volume output every revolution (mL). #define CONCENTRATE_PUMP_VOLUME_PER_REV 0.1F ///< Volume output every revolution (mL). Index: firmware/App/DDCommon.h =================================================================== diff -u -recd204503f9f4837800080a58c07dac8a2e8d602 -r9ac050d6099effbdd62070173d14dd5e225d5310 --- firmware/App/DDCommon.h (.../DDCommon.h) (revision ecd204503f9f4837800080a58c07dac8a2e8d602) +++ firmware/App/DDCommon.h (.../DDCommon.h) (revision 9ac050d6099effbdd62070173d14dd5e225d5310) @@ -25,7 +25,8 @@ #define DD_VERSION_MAJOR 0 #define DD_VERSION_MINOR 0 #define DD_VERSION_MICRO 0 -#define DD_VERSION_BUILD 74 +#define DD_VERSION_BUILD 127 +#define DD_VERSION_BUILD 127 // ********** development build switches ********** @@ -48,12 +49,18 @@ //Uncomment below for bicarb chamber filling //#define __BICARB_CHAMBER_FILL__ 1 +//UnComment below for DryBicarb testing +//#define __DRY_BICARB__ 1 + //Uncomment below to disable heaters debug message #define __HEATERS_DEBUG__ 1 //Uncomment below to disable revised heater model #define __REVISED_HEATER_MODEL__ 1 +// comment below to disable bicarb multi level sensor for time based chamber F fill +#define CONDUCTIVE_LEVEL_SENSOR_ENABLED 1 + //Uncomment below to enable d30 heater alarm(as all units are not equipped with d30 temp sensor) //#define ENABLE_ALARM_3 Index: firmware/App/Modes/ModeFault.c =================================================================== diff -u -r6d4aa77e6b85aa7621a234660f631e725fb1d441 -r9ac050d6099effbdd62070173d14dd5e225d5310 --- firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision 6d4aa77e6b85aa7621a234660f631e725fb1d441) +++ firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision 9ac050d6099effbdd62070173d14dd5e225d5310) @@ -22,6 +22,7 @@ #include "ModeFault.h" #include "Messaging.h" #include "OperationModes.h" +#include "RinsePump.h" #include "SafetyShutdown.h" #include "Utilities.h" #include "Valves.h" @@ -203,6 +204,7 @@ requestConcentratePumpOff( D76_PUMP, parkPumps ); signalDialysatePumpHardStop( D12_PUMP ); signalDialysatePumpHardStop( D48_PUMP ); + setRinsePumpState( RINSE_PUMP_STATE_OFF ); stopHeater( D5_HEAT ); stopHeater( D45_HEAT ); } @@ -251,6 +253,7 @@ requestConcentratePumpOff( D76_PUMP, parkPumps ); signalDialysatePumpHardStop( D12_PUMP ); signalDialysatePumpHardStop( D48_PUMP ); + setRinsePumpState( RINSE_PUMP_STATE_OFF ); stopHeater( D5_HEAT ); stopHeater( D45_HEAT ); } Index: firmware/App/Monitors/Level.c =================================================================== diff -u -rb0da135bc589efaf8ad6f3c8c1988dcb672f3ca0 -r9ac050d6099effbdd62070173d14dd5e225d5310 --- firmware/App/Monitors/Level.c (.../Level.c) (revision b0da135bc589efaf8ad6f3c8c1988dcb672f3ca0) +++ firmware/App/Monitors/Level.c (.../Level.c) (revision 9ac050d6099effbdd62070173d14dd5e225d5310) @@ -206,6 +206,10 @@ SEND_EVENT_WITH_2_U32_DATA( DD_EVENT_D46_LEVL_CHANGE, (U32)status[ level ].data, (U32)currentLevelStatus ); break; + case P25_LEVL: + SEND_EVENT_WITH_2_U32_DATA( FP_EVENT_P25_LEVL_CHANGE, (U32)status[ level ].data, (U32)currentLevelStatus ); + break; + #ifndef _VECTORCAST_ default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_LEVEL_SELECTED, level);