Index: firmware/App/Modes/ModeChemicalDisinfect.c =================================================================== diff -u -re107dacab9f6c78574f1c26e1004e0dbdc8dba03 -re8f6f5fda0c67cd09a0a7968e3cf305691e75101 --- firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision e107dacab9f6c78574f1c26e1004e0dbdc8dba03) +++ firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision e8f6f5fda0c67cd09a0a7968e3cf305691e75101) @@ -53,9 +53,9 @@ // Drain R1 & R2 states defines #define DRAIN_PUMP_TARGET_RPM 2400 ///< Drain pump target RPM during drain. -#define DRAIN_WEIGHT_UNCHANGE_TIMEOUT_MS ( 6 * MS_PER_SECOND ) ///< Time period of unchanged weight during draining before timeout. +#define DRAIN_WEIGHT_UNCHANGE_TIMEOUT_MS ( 6 * MS_PER_SECOND ) ///< Time period of unchanged weight during draining before timeout. #define RSRVRS_DRAIN_TIMEOUT_MS ( 2 * SEC_PER_MIN * MS_PER_SECOND ) ///< Reservoirs 1 & 2 drain timeout in ms. -#define RSRVRS_INITIAL_DRAIN_TIMEOUT_MS ( 2 * SEC_PER_MIN * MS_PER_SECOND ) ///< Reservoirs 1 & 2 initial drain time out in milliseconds. +#define RSRVRS_INITIAL_DRAIN_TIMEOUT_MS ( 2 * SEC_PER_MIN * MS_PER_SECOND ) ///< Reservoirs 1 & 2 initial drain time out in milliseconds. // Flush drain path state defines #define FLUSH_DRAIN_WAIT_TIME_MS ( 60 * MS_PER_SECOND ) ///< Flush Drain path wait time in milliseconds. @@ -212,16 +212,29 @@ * The initChemicalDisinfectMode function initializes the chemical * disinfect mode module. * @details Inputs: none - * @details Outputs: chemDisinfectState, stateTimer, isThisLastDrain, - * stateTrialCounter, areTempSensorsInRange, rsrvr1Status, rsrvr2Status, - * overallChemDisinfectTimer, - * cancellationMode, rsrvrFillStableTimeCounter, prevChemDisinfectState - * isPartialDisinfectInProgress, primeAcidSteadyStateCounter, - * chemDisinfectUIState, haveDrainParamsBeenInit, disinfectNVOps + * @details Outputs: chemDisinfectState, prevChemDisinfectState + * stateTimer, isThisLastDrain, stateTrialCounter + * rsrvr1Status, rsrvr2Status, overallChemDisinfectTimer, cancellationMode, + * rsrvrFillToFullStableTimeCounter, primeAcidSteadyStateCounter, isRsrvrLeaking, + * chemDisinfectReservoirTime, ischemDisinfectWarmupTargetReached, + * isChemDisinfectTempAboveTarget, chemDisinfectUIState, isRsrvrLeaking, + * disinfectNVOps.hasDisStatusBeenWrittenToNV, rsrvrsVolMonitorCounter, + * DisinfectCycleCounter, drpControlTimerCounter, dataPublishCounter, + * alarmDetectedPendingTrigger, flushCircWaitTime, flushDisinfectantWaitTime + * primeAcidSteadyStateCounter, rsrvrFillStableTimeCounter, R1FullVolume, + * rsrvrFillToFullStableTimeCounter, R2FullVolume, disinfectantMixRatio, + * haveDrainParamsBeenInit[ DG_RESERVOIR_1 ], haveDrainParamsBeenInit[ DG_RESERVOIR_2 ] * @return none *************************************************************************/ void initChemicalDisinfectMode( void ) { + DG_RESERVOIR_ID_T rsrvr; + + for ( rsrvr = DG_RESERVOIR_1; rsrvr < NUM_OF_DG_RESERVOIRS; rsrvr++ ) + { + haveDrainParamsBeenInit[ rsrvr ] = FALSE; + } + chemDisinfectState = DG_CHEM_DISINFECT_STATE_START; prevChemDisinfectState = DG_CHEM_DISINFECT_STATE_START; stateTimer = 0; @@ -254,8 +267,6 @@ R1FullVolume = 0.0F; R2FullVolume = 0.0F; disinfectantMixRatio = 0.0F; - haveDrainParamsBeenInit[ DG_RESERVOIR_1 ] = FALSE; - haveDrainParamsBeenInit[ DG_RESERVOIR_2 ] = FALSE; initPersistentAlarm( ALARM_ID_DG_CHEM_DISINFECT_TARGET_TEMP_OUT_OF_RANGE, DISINFECT_TEMP_OUT_OF_RANGE_TIMEOUT_MS, DISINFECT_TEMP_OUT_OF_RANGE_TIMEOUT_MS ); initPersistentAlarm( ALARM_ID_DG_CHEM_DISINFECT_TARGET_COND_OUT_OF_RANGE, DISINFECT_COND_OUT_OF_RANGE_TIMEOUT_MS, DISINFECT_COND_OUT_OF_RANGE_TIMEOUT_MS ); @@ -616,12 +627,12 @@ if ( TRUE == didTimeout( stateTimer, flushCircWaitTime ) ) { F32 TPoTemp = getTemperatureValue( TEMPSENSORS_OUTLET_PRIMARY_HEATER ); - F32 TD2Temp = 0.0F; + F32 TD2Temp = getTemperatureValue( TEMPSENSORS_CONDUCTIVITY_SENSOR_2 ); #ifndef _RELEASE_ if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_ENABLE_USING_TPO_FOR_PRIMARY_HEATER_CONTROL ) ) { - TD2Temp = getTemperatureValue( TEMPSENSORS_CONDUCTIVITY_SENSOR_2 ); + TD2Temp = getTemperatureValue( TEMPSENSORS_OUTLET_PRIMARY_HEATER ); } #endif @@ -1660,7 +1671,7 @@ } } - if ( ( TRUE == isAnyAlarmActive() ) && ( chemDisinfectState != DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH ) ) + if ( ( TRUE == isDGFaultAlarmActive() ) && ( chemDisinfectState != DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH ) ) { prevChemDisinfectState = chemDisinfectState; chemDisinfectState = DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH;