Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -ra8bb1da29825b5d666333629fda871652d16229a -racf0804f9168cdca18196f07ad4bbe46cc4d07f8 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision a8bb1da29825b5d666333629fda871652d16229a) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision acf0804f9168cdca18196f07ad4bbe46cc4d07f8) @@ -30,6 +30,9 @@ */ // ********** private definitions ********** + +// *** This declaration will cause a compiler error if ALARM_TABLE does not have same # of alarms as the Alarm_List enumeration. +U08 alarmTableSizeAssertion[ ( ( sizeof( ALARM_TABLE ) / sizeof( ALARM_T ) ) == NUM_OF_ALARM_IDS ? 1 : -1 ) ]; const ALARM_DATA_T BLANK_ALARM_DATA = { ALARM_DATA_TYPE_NONE, 0 }; ///< A blank alarm data record for alarms that do not include alarm data when triggered. Index: firmware/checkAlarms.sh =================================================================== diff -u -r472ba357dbc4bbbf48cd3b929c5f63347fec8b66 -racf0804f9168cdca18196f07ad4bbe46cc4d07f8 --- firmware/checkAlarms.sh (.../checkAlarms.sh) (revision 472ba357dbc4bbbf48cd3b929c5f63347fec8b66) +++ firmware/checkAlarms.sh (.../checkAlarms.sh) (revision acf0804f9168cdca18196f07ad4bbe46cc4d07f8) @@ -1,5 +1,8 @@ #!/bin/bash +lineno=$(grep -n "ALARM_ID_NO_ALARM = 0" ../Common/AlarmDefs.h) +lineno=${lineno%%:*} + echo " #include #include @@ -11,13 +14,14 @@ int main() { ALARM_ID_T alarm; + U32 lineNumber = $lineno; for ( alarm = ALARM_ID_NO_ALARM; alarm < NUM_OF_ALARM_IDS; alarm++ ) { if ( alarm != ALARM_TABLE[ alarm ].alarmID ) { - printf(\"Error: Alarm Enum and Alarm Table mismatch!\n\"); - printf(\"Error: Alarm %i NOT MATCH Alarm Table Index %i!\n\", alarm, ALARM_TABLE[ alarm ].alarmID); + lineNumber += alarm; + printf(\"\\\"AlarmDefs.h\\\", line %d: error #9999: Alarm %i NOT MATCH Alarm Table ID %i!\n\", lineNumber, alarm, ALARM_TABLE[ alarm ].alarmID); exit(1); } }