Index: firmware/App/Controllers/Heaters.c =================================================================== diff -u -re084f5fb29932dc2d369a6899cca0e8771caf00f -r49098a843da3aac6bd86250efbf53bd12e8bf6ab --- firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision e084f5fb29932dc2d369a6899cca0e8771caf00f) +++ firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 49098a843da3aac6bd86250efbf53bd12e8bf6ab) @@ -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 ); } /*********************************************************************//** @@ -382,10 +384,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 @@ -402,6 +406,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 @@ -411,8 +416,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_ @@ -909,7 +918,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))