Index: firmware/App/Controllers/FluidLeak.c =================================================================== diff -u -r011aa9c2df785a0fdcb69e30f7145b959084f472 -r3098081bf5a908513bcacc70de5a004f750ffb92 --- firmware/App/Controllers/FluidLeak.c (.../FluidLeak.c) (revision 011aa9c2df785a0fdcb69e30f7145b959084f472) +++ firmware/App/Controllers/FluidLeak.c (.../FluidLeak.c) (revision 3098081bf5a908513bcacc70de5a004f750ffb92) @@ -20,6 +20,7 @@ #include "FPGA.h" #include "MessageSupport.h" #include "OperationModes.h" +#include "PersistentAlarm.h" #include "SystemCommMessages.h" #include "TaskPriority.h" #include "Timers.h" @@ -33,6 +34,7 @@ #define FLUID_LEAK_PUB_INTERVAL ( MS_PER_SECOND / TASK_PRIORITY_INTERVAL ) ///< Interval (ms/task time) at which the fluid leak data is published on the CAN bus. #define DATA_PUBLISH_COUNTER_START_COUNT 80 ///< Data publish counter start count. +#define FLUID_LEAK_ALARM_TIMEOUT_MS 250 ///< Fluid leak alarm persistent timeout in milliseconds. // ********** private data ********** @@ -60,6 +62,8 @@ fluidLeakState.ovInitData = FLUID_LEAK_STATE_DRY; fluidLeakState.override = OVERRIDE_RESET; fluidLeakStatePublicationTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; + + initPersistentAlarm( ALARM_ID_DG_FLUID_LEAK_DETECTED, 0, FLUID_LEAK_ALARM_TIMEOUT_MS ); } /*********************************************************************//** @@ -92,7 +96,10 @@ } else { - activateAlarmNoData( ALARM_ID_DG_FLUID_LEAK_DETECTED ); + if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_DG_FLUID_LEAK_DETECTED, TRUE ) ) + { + activateAlarmNoData( ALARM_ID_DG_FLUID_LEAK_DETECTED ); + } } }