Index: Utilities.c =================================================================== diff -u -r527e5b84c94f89391b3c9023066f5a1bda270afc -r5c80aa8c892acedea15ef45b2dd887257e7787d4 --- Utilities.c (.../Utilities.c) (revision 527e5b84c94f89391b3c9023066f5a1bda270afc) +++ Utilities.c (.../Utilities.c) (revision 5c80aa8c892acedea15ef45b2dd887257e7787d4) @@ -174,7 +174,23 @@ } else { - timeWindowedCountsInitialized[ cnt ] = FALSE; + if ( cnt < NUM_OF_TIME_WINDOWED_COUNTS ) + { + timeWindowedCountsInitialized[ cnt ] = FALSE; +#ifdef _DG_ + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_UTIL_INVALID_WIN_MAX_COUNT, maxCnt ) +#else + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_UTIL_INVALID_WIN_MAX_COUNT, maxCnt ) +#endif + } + else + { +#ifdef _DG_ + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_UTIL_INVALID_WIN_COUNT, cnt ) +#else + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_UTIL_INVALID_WIN_COUNT, cnt ) +#endif + } } } @@ -215,9 +231,9 @@ else { #ifdef _DG_ - //SET_ALARM_WITH_1_U32_DATA ( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_UTIL_TIME_WINDOWED_COUNT_ERROR ); + SET_ALARM_WITH_2_U32_DATA ( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_UTIL_TIME_WINDOWED_COUNT_ERROR, cnt ); #else - SET_ALARM_WITH_1_U32_DATA ( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_UTIL_TIME_WINDOWED_COUNT_ERROR ); + SET_ALARM_WITH_2_U32_DATA ( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_UTIL_TIME_WINDOWED_COUNT_ERROR, cnt ); #endif } @@ -246,9 +262,9 @@ result = d.data; // verify data integrity - if ( ( ~d.data.uInt != d.comp ) && - ( TRUE == d.set ) && - ( data->typ < NUM_OF_CRITICAL_DATA_TYPES ) ) + if ( ( ~d.data.uInt != d.comp ) || + ( TRUE != d.set ) || + ( data->typ >= NUM_OF_CRITICAL_DATA_TYPES ) ) { result.uInt = 0; SET_ALARM_WITH_2_U32_DATA( ALARM_ID_CRITICAL_DATA_ERROR, (U32)&data[0], 0 )