Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -r4237cbced773b985ff69a8c2af8287dbd5457f24 -ra08213c3d131203c21554d743c3ccb02575b70da --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 4237cbced773b985ff69a8c2af8287dbd5457f24) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision a08213c3d131203c21554d743c3ccb02575b70da) @@ -288,9 +288,13 @@ //Rinse pump On setRinsePumpState( RINSE_PUMP_STATE_ON ); - + printf("[TRACE2] Entering BYPASS transition: tick=%lu prevBCPeriod=%lu prevLastQd=%.2f\n", + getMSTimerCount(), getBalChamberSwitchingPeriod(), getBalChamberActiveDialysateFlowrate()); + setValveState( D14_VALV, VALVE_STATE_OPEN ); transitionToBalChamberFill(); // Activate Balancing Chamber Switching + printf("[TRACE2b] After transitionToBalChamberFill+request: tick=%lu newBCPeriod=%lu newSwOnly=%d\n", + getMSTimerCount(), getBalChamberSwitchingPeriod(), getBalChamberSwitchingOnlyStatus()); requestBalChamberSwitching( TRUE ); //Testing @@ -352,45 +356,9 @@ case DD_GEND_SPENT_CHAMBER_FILL_STATE: // Deactivate Balancing Chamber Switching requestBalChamberSwitching( FALSE ); - - //Set valves and actuators - setValveState( D35_VALV, VALVE_STATE_CLOSED ); // VDI - setValveState( D40_VALV, VALVE_STATE_CLOSED ); // VDO - setValveState( D8_VALV, VALVE_STATE_CLOSED ); - setValveState( D54_VALV, VALVE_STATE_CLOSED ); - setValveState( D81_VALV, VALVE_STATE_CLOSED ); - setValveState( D85_VALV, VALVE_STATE_CLOSED ); - setValveState( D31_VALV, VALVE_STATE_CLOSED ); - setValveState( D14_VALV, VALVE_STATE_OPEN ); - setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve - setValveState( D34_VALV, VALVE_STATE_OPEN ); // Bypass valve - - if ( TRUE == getTestConfigStatus( TEST_CONFIG_DD_DISABLE_DRY_BICARB ) ) - { - setValveState( D80_VALV, VALVE_STATE_OPEN ); // Bicarb valve - setValveState( D64_VALV, VALVE_STATE_CLOSED ); - } - - setValveState( D47_VALV, VALVE_STATE_OPEN ); // Spent chamber purge valve - - requestConcentratePumpOff( D76_PUMP, FALSE ); - requestConcentratePumpOff( D11_PUMP, FALSE ); - requestConcentratePumpOff( D10_PUMP, FALSE ); - - // Turn on the primary heater - calculateTargetDialysateTemp(); setHeaterTargetTemperature( D5_HEAT, getGenDialysateTargetTemperature() ); - setD28TempFeedbackControl( TRUE ); - startHeater( D5_HEAT ); - // Stop trimmer heater - stopHeater( D45_HEAT ); - setDialysatePumpTargetRPM( D12_PUMP, getFreshDialPumpInitialRpm(), 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; @@ -862,6 +830,9 @@ { setModeGenDStateTransition( DD_GEND_DIALYSATE_BYPASS_STATE ); isDialDeliveryInProgress.data = FALSE; + signalDialysatePumpHardStop(D48_PUMP); + delayBypassStateFlag = TRUE; + printf("[TRACE1] SC->Bypass trigger: tick=%lu D46_LEVEL=%d totalFill=%lu Qd=%.2f\n",getMSTimerCount(), spentChamberLevel, totalSpentChamberFill, getTDDialysateFlowrate()); state = DD_GEND_DIALYSATE_BYPASS_STATE; //Trigger alarm if count exceeded