Index: firmware/App/Controllers/Fans.c =================================================================== diff -u -r0aa4fbd4180c83d6cf274a361ed0ad3fc6a34965 -r8bd1ae47aa13a843aa8abd6321ddc050deacb4a6 --- firmware/App/Controllers/Fans.c (.../Fans.c) (revision 0aa4fbd4180c83d6cf274a361ed0ad3fc6a34965) +++ firmware/App/Controllers/Fans.c (.../Fans.c) (revision 8bd1ae47aa13a843aa8abd6321ddc050deacb4a6) @@ -8,7 +8,7 @@ * @file Fans.c * * @author (last) Dara Navaei -* @date (last) 16-Aug-2021 +* @date (last) 15-Sep-2021 * * @author (original) Dara Navaei * @date (original) 04-Aug-2021 @@ -432,14 +432,18 @@ if ( TRUE == isAlarmTriggered ) { SET_ALARM_WITH_1_F32_DATA( ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE, rpm ) + // Set the alarm flag to TRUE hasAlarmBeenRaised = TRUE; } - + // If the alarm has been raised but the time that the alarm has not been set, set the alarm start timer if ( ( TRUE == hasAlarmBeenRaised ) && ( 0 == rpmAlarmStartTimer ) ) { rpmAlarmStartTimer = getMSTimerCount(); } } + // If the alarm has been raised and the alarm has been silent for at least a day, set the flag to FALSE + // This way, if the fans RPM are out of range the alarm will be raised again. This alarm is supposed to be raised + // and remain silent for a define period of time. else if ( ( TRUE == hasAlarmBeenRaised ) && ( TRUE == didTimeout( rpmAlarmStartTimer, SECONDS_IN_A_DAY ) ) ) { hasAlarmBeenRaised = FALSE;