#!/bin/bash ########################################################################### # # Copyright (c) 2024-2025 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) Sean Nash # @date (last) 01-Aug-2024 # @author (original) Sean Nash # @date (original) 01-Aug-2024 # ############################################################################ 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++ ) { if ( 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); } } 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 ./alarmCheck