Index: firmware/App/Controllers/Fans.c =================================================================== diff -u -rfcb9a1dce7d9b2de3ff0b725282d4ea3ddf14b1d -r9d55bf13449f6dd8f2aab203a1d41f82404efd49 --- firmware/App/Controllers/Fans.c (.../Fans.c) (revision fcb9a1dce7d9b2de3ff0b725282d4ea3ddf14b1d) +++ firmware/App/Controllers/Fans.c (.../Fans.c) (revision 9d55bf13449f6dd8f2aab203a1d41f82404efd49) @@ -447,17 +447,18 @@ 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 start time of the alarm has not been set, set the alarm start timer + if ( 0 == rpmAlarmStartTime ) + { + rpmAlarmStartTime = getMSTimerCount(); + } } - // If the alarm has been raised but the start time of the alarm has not been set, set the alarm start timer - if ( ( TRUE == hasAlarmBeenRaised ) && ( 0 == rpmAlarmStartTime ) ) - { - rpmAlarmStartTime = 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 defined period of time. - else if ( TRUE == hasAlarmBeenRaised ) + else { // Get the offset time since the last alarm. If the offset time has been overridden, then do not include the time that the alarm was raised first. // Overrides are used to verify the code so what is sent to the firmware from override is intended to be the actual time so check whether the alarm is