Index: firmware/App/Controllers/Fans.c =================================================================== diff -u -r0aa4fbd4180c83d6cf274a361ed0ad3fc6a34965 -rd220199deee939fa14a82a68b2589da2f22493f6 --- firmware/App/Controllers/Fans.c (.../Fans.c) (revision 0aa4fbd4180c83d6cf274a361ed0ad3fc6a34965) +++ firmware/App/Controllers/Fans.c (.../Fans.c) (revision d220199deee939fa14a82a68b2589da2f22493f6) @@ -431,15 +431,21 @@ if ( TRUE == isAlarmTriggered ) { - SET_ALARM_WITH_1_F32_DATA( ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE, rpm ) + ALARM_DATA_T alarmData; + alarmData.data.flt.data = rpm; + activateAlarm1Data( ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE, alarmData ); + // 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;