Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -r0d5d4c781a0de550c6badbe3cd7c850091c62d29 -r8b9228fb0b90497e4c71d0eedd2b8cb9220f5f66 --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 0d5d4c781a0de550c6badbe3cd7c850091c62d29) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 8b9228fb0b90497e4c71d0eedd2b8cb9220f5f66) @@ -28,6 +28,7 @@ #include "OperationModes.h" #include "Pressure.h" #include "RinsePump.h" +#include "SubstitutionPump.h" #include "TaskGeneral.h" #include "Temperature.h" #include "Timers.h" @@ -63,6 +64,7 @@ #define HEAT_DISINFECT_D12_POST_RECIRC_RPM 700 ///< D12 speed during WCID bicart recirculation. #define HEAT_DISINFECT_D12_DWELL_CHECK_RPM 1000 ///< D12 mix speed before WCID dwell check. #define HEAT_DISINFECT_CONC_FLUSH_SPEED_ML_MIN 50.0F ///< D10/D11/D76 recirculation speed (mL/min). +#define HEAT_DISINFECT_HDF_PUMP_SPEED_ML_MIN 50.0F ///< D92 recirculation speed (mL/min). /// Bicart depressurize sub-states. D64 and D80 remain open on exit. typedef enum Heat_Depressurize_Sub_States @@ -384,12 +386,19 @@ setValveState( D8_VALV, VALVE_STATE_OPEN ); setValveState( D54_VALV, VALVE_STATE_OPEN ); setValveState( D83_VALV, VALVE_STATE_OPEN ); - setValveState( M12_VALV, VALVE_STATE_OPEN ); - setValveState( P39_VALV, VALVE_STATE_OPEN ); + //TODO: Remove after testing + setValveState( M12_VALV, VALVE_STATE_CLOSED ); + setValveState( P39_VALV, VALVE_STATE_CLOSED ); + setValveState( D35_VALV, VALVE_STATE_CLOSED ); + setValveState( D40_VALV, VALVE_STATE_CLOSED ); + setValveState( D34_VALV, VALVE_STATE_CLOSED ); + setValveState( D91_VALV, VALVE_STATE_CLOSED ); + setValveState( D95_VALV, VALVE_STATE_CLOSED ); + setValveState( D31_VALV, VALVE_STATE_CLOSED ); setValveState( D47_VALV, VALVE_STATE_CLOSED ); - setValveState( D95_VALV, VALVE_STATE_CLOSED ); + setValveState( D88_79_VALV, VALVE_STATE_CLOSED ); setValveState( D100_VALV, VALVE_STATE_CLOSED ); setValveState( D64_VALV, VALVE_STATE_CLOSED ); setValveState( D65_VALV, VALVE_STATE_CLOSED ); @@ -400,6 +409,7 @@ setRinsePumpState( RINSE_PUMP_STATE_ON ); setConcentratePumpTargetSpeed( D10_PUMP, HEAT_DISINFECT_CONC_FLUSH_SPEED_ML_MIN, DOSING_CONT_VOLUME ); setConcentratePumpTargetSpeed( D11_PUMP, HEAT_DISINFECT_CONC_FLUSH_SPEED_ML_MIN, DOSING_CONT_VOLUME ); + setSubstitutionPumpTargetRate( D92_PUMP, HEAT_DISINFECT_HDF_PUMP_SPEED_ML_MIN ); requestConcentratePumpOn( D10_PUMP ); requestConcentratePumpOn( D11_PUMP ); setDialysatePumpTargetRPM( D12_PUMP, HEAT_DISINFECT_D12_RECIRC_RPM, TRUE ); @@ -430,8 +440,8 @@ case HEAT_DEPRES_OPEN_D64: setValveState( D3_VALV, VALVE_STATE_CLOSED ); setValveState( D64_VALV, VALVE_STATE_OPEN ); - setValveState( D80_VALV, VALVE_STATE_CLOSED ); - setValveState( D65_VALV, VALVE_STATE_OPEN ); + setValveState( D80_VALV, VALVE_STATE_OPEN ); + setValveState( D65_VALV, VALVE_STATE_CLOSED ); break; case HEAT_DEPRES_OPEN_D80: @@ -1096,7 +1106,9 @@ * @brief * The publishHeatDisinfectModeData function broadcasts heat disinfect * mode data at the configured interval. - * @details \b Inputs: heatDisinfectPublishTimerCounter, heatDisinfectModePublishInterval + * @details \b Inputs: heatDisinfectPublishTimerCounter, heatDisinfectModePublishInterval, + * ddDwellAtTarget, ddDwellAccumulatedMS, ddDwellAtTargetStartMS, + * wcidDwellAtTarget, wcidDwellAccumulatedMS, wcidDwellAtTargetStartMS * @details \b Outputs: heatDisinfectPublishTimerCounter * @details \b Message \Sent: MSG_ID_DD_HEAT_DISINFECT_STATE_DATA to publish the * heat disinfect mode data. @@ -1109,6 +1121,8 @@ HEAT_DISINFECT_STATE_DATA_T data; data.heatDisinfectExecState = (U32)getCurrentHeatDisinfectState(); + data.ddRecircDwellTimeMS = currentDwellMs( ddDwellAtTarget, ddDwellAccumulatedMS, ddDwellAtTargetStartMS ); + data.wcidRecircDwellTimeMS = currentDwellMs( wcidDwellAtTarget, wcidDwellAccumulatedMS, wcidDwellAtTargetStartMS ); broadcastData( MSG_ID_DD_HEAT_DISINFECT_STATE_DATA, COMM_BUFFER_OUT_CAN_DD_BROADCAST, (U08*)&data, sizeof( HEAT_DISINFECT_STATE_DATA_T ) ); heatDisinfectPublishTimerCounter = 0; }