Index: firmware/checkAlarms.sh =================================================================== diff -u -r25698c7b702dbc1ebdd209eebdb908dbeb1594ae -rcd5be724d5a3ba7457e761191d82f278654d7f5c --- firmware/checkAlarms.sh (.../checkAlarms.sh) (revision 25698c7b702dbc1ebdd209eebdb908dbeb1594ae) +++ firmware/checkAlarms.sh (.../checkAlarms.sh) (revision cd5be724d5a3ba7457e761191d82f278654d7f5c) @@ -1,20 +1,45 @@ #!/bin/bash +########################################################################### +# +# Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. +# +# THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN +# WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. +# +# @file checkAlarms.sh +# +# @author (last) Dara Navaei +# @date (last) 17-Nov-2022 +# @author (original) Quang Nguyen +# @date (original) 27-May-2021 +# +############################################################################ lineno=$(grep -n "ALARM_ID_NO_ALARM = 0" ../Common/AlarmDefs.h) lineno=${lineno%%:*} +alarmRankLineNo=$(grep -n "ALARM_RANK_TABLE" ../Common/AlarmDefs.h) +alarmRankLineNo=${alarmRankLineNo%%:*} + +alarmManualLineNo=$(grep -n "ALARM_MANUAL_TABLE" ../Common/AlarmDefs.h) +alarmManualLineNo=${alarmManualLineNo%%:*} + echo " #include #include #define __ALARM_MGMT_C__ +#define __MANUAL_ALARMS__ #include \"Common.h\" #include \"AlarmDefs.h\" int main() { ALARM_ID_T alarm; U32 lineNumber = $lineno; + U32 alarmRankLineNumber = $alarmRankLineNo; + U32 alarmManualLineNumber = $alarmManualLineNo; + U32 index; for ( alarm = ALARM_ID_NO_ALARM; alarm < NUM_OF_ALARM_IDS; alarm++ ) { @@ -26,6 +51,38 @@ } } printf(\"Alarm table check completed!\n\"); + + for ( alarm = ALARM_ID_NO_ALARM; alarm < NUM_OF_ALARM_IDS; alarm++ ) + { + if ( ALARM_RANK_TABLE[ alarm ].alarmSubRank != ALARM_TABLE[ ALARM_RANK_TABLE[ alarm ].alarmID ].alarmSubRank ) + { + printf(\"\\\"AlarmDefs.h\\\", line %d: error #9999: Alarm has different rank from alarm property table!\n\", alarmRankLineNumber + alarm + 2 ); + exit(1); + } + } + + for ( index = 1; index < NUM_OF_ALARM_IDS; index++ ) + { + if ( ALARM_RANK_TABLE[ index - 1 ].alarmSubRank > ALARM_RANK_TABLE[ index ].alarmSubRank ) + { + alarmRankLineNumber += index + 1; + printf(\"\\\"AlarmDefs.h\\\", line %d: error #9999: Alarm Rank Index %i has higher rank than Index %i!\n\", alarmRankLineNumber, index, index - 1); + exit(1); + } + } + + for ( alarm = ALARM_ID_NO_ALARM; alarm < NUM_OF_ALARM_IDS; alarm++ ) + { + if ( alarm != ALARM_MANUAL_TABLE[ alarm ].alarmID ) + { + // The current alarm number is the starting line number of the ALARM_MANUAL_TABLE + 2 since the alarms enum start from 0 + alarmManualLineNumber += alarm + 2; + printf(\"\\\"AlarmDefs.h\\\", line %d: error #9999: Alarm %i NOT MATCH Alarm Table ID %i!\n\", alarmManualLineNumber, alarm, ALARM_TABLE[ alarm ].alarmID); + exit(1); + } + } + + printf(\"Alarm rank table check completed!\n\"); }" > alarmCheck.c gcc -o alarmCheck alarmCheck.c -I../App -I../App/Services -I../Common -I../FWCommon -I../include