Index: firmware/App/Modes/ModeGenPermeate.c =================================================================== diff -u -rc6491e96503a221cd9524da289522afd3eb00b29 -r481046815efa75f40b70a4feb784e62527c812f7 --- firmware/App/Modes/ModeGenPermeate.c (.../ModeGenPermeate.c) (revision c6491e96503a221cd9524da289522afd3eb00b29) +++ firmware/App/Modes/ModeGenPermeate.c (.../ModeGenPermeate.c) (revision 481046815efa75f40b70a4feb784e62527c812f7) @@ -115,9 +115,10 @@ case RO_GENP_WATER_FULL_STATE: genPermeateState = handleGenPWaterFullState(); break; + default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RO_SOFTWARE_FAULT, SW_FAULT_ID_RO_INVALID_GENP_STATE, state ) - break;: + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RO_SOFTWARE_FAULT, SW_FAULT_ID_RO_INVALID_GENP_STATE, genPermeateState ) + break; } //Publish Gen permeate mode data @@ -143,6 +144,7 @@ case RO_GENP_STATE_START: // Do nothing break; + case RO_GENP_WATER_LOW_STATE: setValveState( M4_VALV,VALVE_STATE_OPEN ); setValveState( M7_VALV,VALVE_STATE_CLOSED ); @@ -151,6 +153,7 @@ setValveState( P11_VALV, VALVE_STATE_OPEN ); stateDelayTime = getMSTimerCount(); break; + case RO_GENP_WATER_FULL_STATE: //set setValveState( M4_VALV,VALVE_STATE_CLOSED ); @@ -160,6 +163,7 @@ setValveState( P11_VALV, VALVE_STATE_CLOSED ); stateDelayTime = getMSTimerCount(); break; + default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RO_SOFTWARE_FAULT, SW_FAULT_ID_RO_INVALID_GENP_STATE, state ) break; @@ -211,7 +215,7 @@ state = RO_GENP_WATER_FULL_STATE; } - else if ( LEVEL_STATE_MEDIUM <= level ) + else if ( level <= LEVEL_STATE_MEDIUM ) { // expected state. No action required. // If level is low we still want to fill. @@ -237,7 +241,7 @@ // TODO: Turn off heater. } - else if ( ( LEVEL_STATE_MEDIUM >= level ) && ( TRUE == didTimeout( stateDelayTime, GEN_PERMEATE_TIMEOUT_MS ) ) ) + else if ( ( level >= LEVEL_STATE_MEDIUM ) && ( TRUE == didTimeout( stateDelayTime, GEN_PERMEATE_TIMEOUT_MS ) ) ) { setModeGenPStateTransition( RO_GENP_WATER_LOW_STATE ); state = RO_GENP_WATER_LOW_STATE;