Index: PersistentAlarm.c =================================================================== diff -u -r192c8f1aa79ad0ef4a50be44a6ba37a8939ac823 -rbfb5dbcf22ee998b6ad1e75cd9265c68e729078a --- PersistentAlarm.c (.../PersistentAlarm.c) (revision 192c8f1aa79ad0ef4a50be44a6ba37a8939ac823) +++ PersistentAlarm.c (.../PersistentAlarm.c) (revision bfb5dbcf22ee998b6ad1e75cd9265c68e729078a) @@ -215,10 +215,11 @@ else { #ifdef _DG_ - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_PERSISTENT_ALARM_INVALID_INDEX, alarmId ); -#else - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_PERSISTENT_ALARM_INVALID_INDEX, alarmId ); + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_PERSISTENT_ALARM_INVALID_INDEX, alarmId ) #endif +#ifdef _HD_ + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_PERSISTENT_ALARM_INVALID_INDEX, alarmId ) +#endif } return isErrorConditionCleared; @@ -287,36 +288,69 @@ { FPGA_ERROR_TYPE_T type = NUM_OF_FPGA_ERROR_TYPES; BOOL isReadPersTrgrd = isFPGAPersistentAlarmTriggered( &fpgaPersistentAlarmGroup[ group ], readCount, FPGA_READ_ERROR ); - BOOL isErroPersTrgrd = isFPGAPersistentAlarmTriggered( &fpgaPersistentAlarmGroup[ group ], errorCount, FPGA_ERROR_ERROR ); + BOOL isErrorPersTrgrd = isFPGAPersistentAlarmTriggered( &fpgaPersistentAlarmGroup[ group ], errorCount, FPGA_ERROR_ERROR ); if ( TRUE == isReadPersTrgrd ) { type = FPGA_READ_ERROR; } - if ( TRUE == isErroPersTrgrd ) + if ( TRUE == isErrorPersTrgrd ) { type = FPGA_ERROR_ERROR; } - if ( ( TRUE == isReadPersTrgrd ) || ( TRUE == isErroPersTrgrd ) ) + if ( ( TRUE == isReadPersTrgrd ) || ( TRUE == isErrorPersTrgrd ) ) { - SET_ALARM_WITH_2_U32_DATA( fpgaPersistentAlarmGroup[ group ].fpgaAlarm, type, group ); + SET_ALARM_WITH_2_U32_DATA( fpgaPersistentAlarmGroup[ group ].fpgaAlarm, type, group ) } } else { #ifdef _DG_ - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_FPGA_SENSOR_GROUP_SELECTED, (U32)group ); + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_FPGA_SENSOR_GROUP_SELECTED, (U32)group ) #endif #ifdef _HD_ - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_FPGA_SENSOR_GROUP_SELECTED, (U32)group ); + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_FPGA_SENSOR_GROUP_SELECTED, (U32)group ) #endif } } /*********************************************************************//** * @brief + * The checkFPGAPersistentErrorCountAlarm function checks the FPGA persistent + * error count alarm status of the provided FPGA persistent alarm group. + * @details Inputs: fpgaPersistentAlarmGroup + * @details Outputs: fpgaPersistentAlarmGroup + * @param alarmGroup which is the alarm group of the persistent alarm + * (i.e. 2-wire temperature sensor) + * @param errorCount which is the FPGA error count of the sensor group + * @return none + *************************************************************************/ +void checkFPGAPersistentErrorCountAlarm( FPGA_PERSISTENT_ALARMS_GROUP_T group, U32 errorCount ) +{ + if ( group < NUM_OF_FPGA_SENSOR_GROUPS ) + { + BOOL isErrorPersTrgrd = isFPGAPersistentAlarmTriggered( &fpgaPersistentAlarmGroup[ group ], errorCount, FPGA_ERROR_ERROR ); + + if ( TRUE == isErrorPersTrgrd ) + { + SET_ALARM_WITH_2_U32_DATA( fpgaPersistentAlarmGroup[ group ].fpgaAlarm, FPGA_ERROR_ERROR, group ) + } + } + else + { +#ifdef _DG_ + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_FPGA_SENSOR_GROUP_SELECTED, (U32)group ) +#endif +#ifdef _HD_ + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_FPGA_SENSOR_GROUP_SELECTED, (U32)group ) +#endif + } +} + +/*********************************************************************//** + * @brief * The isFPGAPersistentAlarmTriggered function checks whether persistent alarm * has been triggered or not. * @details Inputs: alarmGroup Index: PersistentAlarm.h =================================================================== diff -u -rb6fffb70532da8e18ff2cb8357a378d517052db0 -rbfb5dbcf22ee998b6ad1e75cd9265c68e729078a --- PersistentAlarm.h (.../PersistentAlarm.h) (revision b6fffb70532da8e18ff2cb8357a378d517052db0) +++ PersistentAlarm.h (.../PersistentAlarm.h) (revision bfb5dbcf22ee998b6ad1e75cd9265c68e729078a) @@ -39,8 +39,8 @@ THD_ADC_TEMP_SENSORS, ///< THd ADC temperature sensors. TDI_ADC_TEMP_SENSORS, ///< TDi ADC temperature sensors. TRO_ADC_TEMP_SENSORS, ///< TRo ADC temperature sensors. - CPI_COND_SENSOR, ///< CPi conductivity sensor. - CPO_COND_SENSOR, ///< CPo conductivity sensor. + CPI_CPO_COND_SENSORS, ///< CPi/CPo conductivity sensors. + CD1_CD2_COND_SENSORS, ///< CD1/CD2 conductivity sensors. BARO_SENSOR, ///< Barometric sensor. LOAD_CELL_A1_B1_SENSORS, ///< Load cell A1/B1 sensors. LOAD_CELL_A2_B2_SENSORS, ///< Load cell A2/B2 sensors. @@ -72,6 +72,7 @@ void resetPersistentAlarmTimer( ALARM_ID_T alarmId ); void checkFPGAPersistentAlarms( FPGA_PERSISTENT_ALARMS_GROUP_T group, U32 errorCount, U32 readCount ); +void checkFPGAPersistentErrorCountAlarm( FPGA_PERSISTENT_ALARMS_GROUP_T group, U32 errorCount ); /**@}*/