Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r5e3a46112ebab361a33b9f7cadb619eb12b44c0f -receb190a5d66fdbee779478ac8bb50a846ed9241 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 5e3a46112ebab361a33b9f7cadb619eb12b44c0f) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision eceb190a5d66fdbee779478ac8bb50a846ed9241) @@ -7,8 +7,8 @@ * * @file AlarmMgmt.c * -* @author (last) Dong Nguyen -* @date (last) 27-Sep-2022 +* @author (last) Darren Cox +* @date (last) 28-Nov-2022 * * @author (original) Sean * @date (original) 04-Feb-2020 @@ -18,14 +18,14 @@ #define __ALARM_MGMT_C__ #include "AlarmMgmt.h" +#include "CPLD.h" #include "OperationModes.h" #include "PersistentAlarm.h" #include "SafetyShutdown.h" #include "SystemComm.h" #include "SystemCommMessages.h" #include "TaskGeneral.h" #include "Timers.h" -#include "CPLD.h" /** * @addtogroup AlarmManagement @@ -287,6 +287,7 @@ data.safetyShutdownStatus = (U32)isSafetyShutdownActivated(); broadcastData( MSG_ID_DG_ALARM_INFO, COMM_BUFFER_OUT_CAN_DG_ALARM, (U08*)&data, sizeof( SAFETY_SHUTDOWN_ACTIVATION_DATA_T ) ); + broadcastCPLDStatus(); alarmInfoPublicationTimerCounter = 0; } } @@ -328,11 +329,11 @@ // Flash Fault LED if ( alarmLEDTimer <= ALARM_DG_FAULT_LED_ON_INTERVAL ) { - setCPLDFaultLED( PIN_SIGNAL_HIGH ); // Set Fault LED + setCPLDFaultLED( PIN_SIGNAL_HIGH, TRUE ); // Set Fault LED } else if ( alarmLEDTimer <= ALARM_DG_FAULT_LED_OFF_INTERVAL ) { - setCPLDFaultLED( PIN_SIGNAL_LOW ); // Clear Fault LED + setCPLDFaultLED( PIN_SIGNAL_LOW, TRUE ); // Clear Fault LED } else { @@ -342,14 +343,18 @@ // If HD COM has failed, sound alarm if ( FALSE == isHDCommunicating() ) { - setCPLDFaultAudio( PIN_SIGNAL_HIGH ); // Set Fault Audio + setCPLDFaultAudio( PIN_SIGNAL_HIGH ); // Set Fault Audio } + else + { + setCPLDFaultAudio( PIN_SIGNAL_LOW ); // Clear Fault Audio + } } else { // No FAULTs - setCPLDFaultLED( PIN_SIGNAL_LOW ); // Clear Fault LED - setCPLDFaultAudio( PIN_SIGNAL_LOW ); // Clear Fault Audio + setCPLDFaultLED( PIN_SIGNAL_LOW, FALSE ); // Clear Fault LED + setCPLDFaultAudio( PIN_SIGNAL_LOW ); // Clear Fault Audio } }