Index: firmware/App/Controllers/Fans.c =================================================================== diff -u -r4a9872d81bae53492c124d0378028ece422f1b4d -r8bd1ae47aa13a843aa8abd6321ddc050deacb4a6 --- firmware/App/Controllers/Fans.c (.../Fans.c) (revision 4a9872d81bae53492c124d0378028ece422f1b4d) +++ firmware/App/Controllers/Fans.c (.../Fans.c) (revision 8bd1ae47aa13a843aa8abd6321ddc050deacb4a6) @@ -1,5 +1,20 @@ +/************************************************************************** +* +* Copyright (c) 2019-2021 Diality Inc. - All Rights Reserved. +* +* THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN +* WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. +* +* @file Fans.c +* +* @author (last) Dara Navaei +* @date (last) 15-Sep-2021 +* +* @author (original) Dara Navaei +* @date (original) 04-Aug-2021 +* +***************************************************************************/ - #include "etpwm.h" #include "Fans.h" @@ -416,17 +431,19 @@ if ( TRUE == isAlarmTriggered ) { - ALARM_DATA_T alarmData; - alarmData.data.flt.data = rpm; - activateAlarm1Data( ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE, alarmData ); + 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; @@ -474,7 +491,7 @@ fansData.fansTargetRPM = fansStatus.targetRPM; fansData.fanInlet1RPM = getMeasuredFanRPM( FAN_INLET_1 ); - broadcastFansData( &fansData ); + broadcastData( MSG_ID_HD_FANS_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&fansData, sizeof( FANS_DATA_T ) ); fansPublishCounter = 0; }