Index: firmware/App/Controllers/AirTrap.c =================================================================== diff -u -r6d49cf62d68a054a750989677793f4d1de42b847 -r5b792dad8b4a10179948eacbc866f868bb60403b --- firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 6d49cf62d68a054a750989677793f4d1de42b847) +++ firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 5b792dad8b4a10179948eacbc866f868bb60403b) @@ -43,7 +43,7 @@ #define AIR_PUMP_ON_DELAY_TIME_MS ( 10 * MS_PER_SECOND ) ///< Delay between air pump On (in ms). #define AIR_PUMP_ON_STOP_TIME_MIN_MS 200 ///< Stop air Pump time. #define AIR_TRAP_ACTIVITY_MAX_COUNT 5 ///< Maximum number of air trap events (fills and air pump activations) within time window before alarm triggered. -#define AIR_TRAP_ACTIVITY_TIME_WIN_MS ( 60 * MS_PER_SECOND ) ///< Time window to monitor for too many air trap events. +#define AIR_TRAP_ACTIVITY_TIME_WIN_MS ( 5 * SEC_PER_MIN * MS_PER_SECOND ) ///< Time window to monitor for too many air trap events. #define AIR_TRAP_LEVEL_DEBOUNCE_TIME_MS ( 400 ) ///< Air trap level sensor debounce time // Persistence period for illegal level sensors fault. #define AIR_TRAP_ILLEGAL_LEVELS_TIMEOUT_MS ( 2 * MS_PER_SECOND ) ///< Air trap illegal values timeout (in ms) @@ -451,6 +451,8 @@ if ( TRUE == incTimeWindowedCount( TIME_WINDOWED_COUNT_AIRTRAP_TOO_FREQ_ALARM ) ) { SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_AIR_TRAP_ACTIVITY_TOO_FREQUENT, TIME_WINDOWED_COUNT_BATT_COMM_ERROR ); + // reset alarm count after alarm so that time window does not interfere with alarm recovery + initTimeWindowedCount( TIME_WINDOWED_COUNT_AIRTRAP_TOO_FREQ_ALARM, AIR_TRAP_ACTIVITY_MAX_COUNT, AIR_TRAP_ACTIVITY_TIME_WIN_MS ); } else {