Index: firmware/App/Controllers/Heaters.c =================================================================== diff -u -r90cbf13cf67e4d1ede545b867c83bfd14c6f77b3 -rb0a5452ec4b9be9be937095b1249079a2fce5ce5 --- firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 90cbf13cf67e4d1ede545b867c83bfd14c6f77b3) +++ firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision b0a5452ec4b9be9be937095b1249079a2fce5ce5) @@ -165,6 +165,8 @@ initPersistentAlarm( ALARM_ID_DG_TRIMMER_HEATER_VOLTAGE_OUT_OF_RANGE, HEATERS_VOLTAGE_OUT_OF_RANGE_TIMEOUT_MS, HEATERS_VOLTAGE_OUT_OF_RANGE_TIMEOUT_MS ); + + initPersistentAlarm( ALARM_ID_DG_FLOW_TOO_LOW_WHILE_HEATER_ON, HEATERS_ON_NO_FLOW_TIMEOUT_MS, HEATERS_ON_NO_FLOW_TIMEOUT_MS ); } /*********************************************************************//** @@ -377,10 +379,12 @@ // TODO add the function that gets the flow of the new flow sensor for DG. For now it is assumed that trimmer heater flow sensor // is not 0 so the heater can run if needed F32 measFlow = ( DG_PRIMARY_HEATER == heater ? getMeasuredROFlowRateLPM() : 50.0 ); - // TODO get the minimum new flow sensor flow sensor F32 minFlow = ( DG_PRIMARY_HEATER == heater ? MIN_RO_FLOWRATE_LPM : MIN_RO_FLOWRATE_LPM ); BOOL isFlowLow = ( measFlow < minFlow ? TRUE : FALSE ); + checkPersistentAlarm( ALARM_ID_DG_FLOW_TOO_LOW_WHILE_HEATER_ON, isFlowLow, measFlow, minFlow ); + + /* TODO remove this code once the heaters fault is finalized if ( TRUE == isFlowLow ) { // Check if the flow of the heater is below minimum for the first time @@ -397,6 +401,7 @@ // The flow is below minimum for a certain period of time so set the heater's duty cycle to 0. The heaters is not // set to off and its duty cycle is set to 0 setHeaterDutyCycle( heater, HEATERS_MIN_DUTY_CYCLE ); + } } else @@ -406,8 +411,12 @@ // Flow is back on, set the heater to the duty cycle that was saved before zeroing the heater setHeaterDutyCycle( heater, heatersStatus[ heater ].dutyCyle4NonZeroFlow ); - } + }*/ } + else + { + checkPersistentAlarm( ALARM_ID_DG_FLOW_TOO_LOW_WHILE_HEATER_ON, FALSE, 0.0, 0.0 ); + } } #ifndef _RELEASE_ @@ -904,7 +913,7 @@ checkPersistentAlarm( ALARM_ID_DG_MAIN_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE, isMainPriOut, mainPri, mainPriVoltageTol ); checkPersistentAlarm( ALARM_ID_DG_SMALL_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE, isSmallPriOut, smallPri, smallPriVoltageTol ); - //checkPersistentAlarm( ALARM_ID_DG_TRIMMER_HEATER_VOLTAGE_OUT_OF_RANGE, isTrimmerOut, trimmer, trimmerVoltageTol ); + //checkPersistentAlarm( ALARM_ID_DG_TRIMMER_HEATER_VOLTAGE_OUT_OF_RANGE, isTrimmerOut, trimmer, trimmerVoltageTol ); // TODO check this voltage // TODO test code remove if ( TRUE == isAlarmActive(ALARM_ID_DG_TRIMMER_HEATER_VOLTAGE_OUT_OF_RANGE))