Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r2b7580660f89067dd78f91701dbd1a5b71bbdbba -r36937bf8b99b3c5145096c327471910f00fbbfc3 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 2b7580660f89067dd78f91701dbd1a5b71bbdbba) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 36937bf8b99b3c5145096c327471910f00fbbfc3) @@ -257,6 +257,11 @@ { alarmStatus.alarmTop = alarm; } + // If alarm stops, set that status immediately (don't wait for status update function) + if ( TRUE == ALARM_TABLE[ alarm ].alarmStops ) + { + alarmStatus.stop = TRUE; + } // If alarms silenced, end silence due to new alarm alarmStatus.alarmsSilenced = FALSE; // If alarm is a fault (and not in service mode), request transition to fault mode @@ -866,19 +871,19 @@ // If sub-rank is a tie, see which alarm was triggered first if ( subRank == alarmPriorityFIFO[ almPriority ].subRank ) { - if ( msSinceTriggered > alarmPriorityFIFO[ almPriority ].timeSinceTriggeredMS ) + if ( (S32)msSinceTriggered > alarmPriorityFIFO[ almPriority ].timeSinceTriggeredMS ) { alarmPriorityFIFO[ almPriority ].alarmID = a; alarmPriorityFIFO[ almPriority ].subRank = subRank; - alarmPriorityFIFO[ almPriority ].timeSinceTriggeredMS = msSinceTriggered; + alarmPriorityFIFO[ almPriority ].timeSinceTriggeredMS = (S32)msSinceTriggered; } } // Otherwise, this alarm simply outranks current candidate and wins outright else { alarmPriorityFIFO[ almPriority ].alarmID = a; alarmPriorityFIFO[ almPriority ].subRank = subRank; - alarmPriorityFIFO[ almPriority ].timeSinceTriggeredMS = msSinceTriggered; + alarmPriorityFIFO[ almPriority ].timeSinceTriggeredMS = (S32)msSinceTriggered; } } // Track highest priority alarm found so far of all priority categories