Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -ra711f7995e555b503ed8c295f98fbe7bb9e5abf5 -r35de0ccd92d0fd7f0036ef0b2674a7a2374e9731 --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision a711f7995e555b503ed8c295f98fbe7bb9e5abf5) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 35de0ccd92d0fd7f0036ef0b2674a7a2374e9731) @@ -28,6 +28,7 @@ #include "OperationModes.h" #include "PersistentAlarm.h" #include "Pressure.h" +#include "RinsePump.h" #include "SpentChamberFill.h" #include "TaskGeneral.h" #include "TDInterface.h" @@ -208,7 +209,8 @@ case DD_GEND_DIALYSATE_BYPASS_STATE: setValveState( DD_M4_VALV, VALVE_STATE_OPEN ); setValveState( D14_VALV, VALVE_STATE_OPEN ); - setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve + setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve + setValveState( D54_VALV, VALVE_STATE_OPEN ); // Mapped to D80 valve, for bicarb access setValveState( D35_VALV, VALVE_STATE_CLOSED ); // VDI setValveState( D40_VALV, VALVE_STATE_CLOSED ); // VDO setValveState( D47_VALV, VALVE_STATE_CLOSED ); // spent chamber purge valve @@ -227,6 +229,9 @@ //setDialysatePumpTargetRPM( D48_PUMP, SPENT_DIAL_PUMP_INITIAL_RPM, FALSE ); setDialysatePumpTargetRPM( D48_PUMP, SPENT_DIAL_PUMP_INITIAL_RPM, TRUE ); + //Rinse pump On + setRinsePumpState( RINSE_PUMP_STATE_ON ); + transitionToBalChamberFill(); //Testing @@ -238,9 +243,10 @@ //Previous state setValveState( D47_VALV, VALVE_STATE_CLOSED ); // spent chamber purge valve setValveState( D64_VALV, VALVE_STATE_CLOSED ); + setValveState( D54_VALV, VALVE_STATE_OPEN ); // Mapped to D80 valve, for bicarb access setValveState( DD_M4_VALV, VALVE_STATE_OPEN ); setValveState( D14_VALV, VALVE_STATE_OPEN ); - setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve + setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve // Turn on the primary heater calculateTargetDialysateTemp(); @@ -253,6 +259,9 @@ //setDialysatePumpTargetRPM( D48_PUMP, SPENT_DIAL_PUMP_INITIAL_RPM, FALSE ); setDialysatePumpTargetRPM( D48_PUMP, SPENT_DIAL_PUMP_INITIAL_RPM, TRUE ); + //Rinse pump On + setRinsePumpState( RINSE_PUMP_STATE_ON ); + // Disable bypass valve setValveState( D34_VALV, VALVE_STATE_CLOSED ); // Bypass valve setValveState( D35_VALV, VALVE_STATE_OPEN ); // VDI @@ -266,7 +275,7 @@ setValveState( DD_M4_VALV, VALVE_STATE_OPEN ); setValveState( D14_VALV, VALVE_STATE_OPEN ); - setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve + setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve setValveState( D34_VALV, VALVE_STATE_OPEN ); // Bypass valve setValveState( D47_VALV, VALVE_STATE_OPEN ); // Spent chamber purge valve @@ -283,6 +292,9 @@ setDialysatePumpTargetRPM( D12_PUMP, FRESH_DIAL_PUMP_INITIAL_RPM, TRUE ); setDialysatePumpTargetRPM( D48_PUMP, SPENT_DIAL_PUMP_FILL_RPM, TRUE ); + //Rinse pump On + setRinsePumpState( RINSE_PUMP_STATE_ON ); + //Transition to spent chamber fill transitionToSpentChamberFill(); break; @@ -298,9 +310,10 @@ setValveState( D40_VALV, VALVE_STATE_CLOSED ); // VDO setValveState( D14_VALV, VALVE_STATE_CLOSED ); - setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve + setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve setValveState( D34_VALV, VALVE_STATE_OPEN ); // Bypass valve setValveState( DD_M4_VALV, VALVE_STATE_OPEN ); + setValveState( D54_VALV, VALVE_STATE_OPEN ); // Mapped to D80 valve, for bicarb access setValveState( D64_VALV, VALVE_STATE_OPEN ); // Bicarb chamber purge valve bicarbFillStartTimeMS = getMSTimerCount(); @@ -313,6 +326,9 @@ setDialysatePumpTargetRPM( D12_PUMP, FRESH_DIAL_PUMP_INITIAL_RPM, TRUE ); setDialysatePumpTargetRPM( D48_PUMP, SPENT_DIAL_PUMP_INITIAL_RPM, TRUE ); + + //Rinse pump On + setRinsePumpState( RINSE_PUMP_STATE_ON ); break; case DD_GEND_DIALYSATE_DELIVERY_PAUSE: @@ -322,6 +338,8 @@ requestConcentratePumpOff( D11_PUMP, FALSE ); requestConcentratePumpOff( D10_PUMP, FALSE ); requestConcentratePumpOff( D76_PUMP, FALSE ); + //Rinse pump Off + setRinsePumpState( RINSE_PUMP_STATE_OFF ); stopHeater( D5_HEAT ); stopHeater( D45_HEAT ); @@ -542,11 +560,14 @@ { DD_GEND_MODE_STATE_T state = DD_GEND_DIALYSATE_BYPASS_STATE; BOOL balancingChambFillInProgress = getBalancingChamberFillinProgressStatus(); + F32 freshDialPressure = getFilteredPressure( D18_PRES ); + F32 spentDialPressure = getFilteredPressure( D51_PRES ); - //Testing + //Testing : Wait for the fresh and spent pressure in range or timeout if ( TRUE == delayBypassStateFlag ) { - if ( TRUE == didTimeout( bypassStateDelayStartTimeMS, DELAY_BC_SWITCHING_AT_START_UP ) ) + if ( ( ( freshDialPressure >= FRESH_DIAL_PRESSURE_MIN_PSIG ) && ( spentDialPressure >= SPENT_DIAL_PRESSURE_MIN_PSIG ) ) || + ( TRUE == didTimeout( bypassStateDelayStartTimeMS, DELAY_BC_SWITCHING_AT_START_UP ) ) ) { delayBypassStateFlag = FALSE; }