Index: WatchdogMgmt.c =================================================================== diff -u -r0b8f91f84aebe54470508381ec6381088901eeba -r6ec1c6d0fd0b35c2aa3960924e9a57230cc6419b --- WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 0b8f91f84aebe54470508381ec6381088901eeba) +++ WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 6ec1c6d0fd0b35c2aa3960924e9a57230cc6419b) @@ -19,6 +19,7 @@ #include "CpldInterface.h" #include "FpgaTD.h" #include "OperationModes.h" +#include "SyringePump.h" #endif #ifdef _DD_ #include "FpgaDD.h" @@ -189,7 +190,8 @@ * The execWatchdogTest function executes the watchdog self-test. * @warning This function should be called periodically until a pass or fail * result is returned. - * @details \b Inputs: watchdogSelfTestState, watchdogSelfTestTimerCount + * @details \b Inputs: watchdogSelfTestState, watchdogSelfTestTimerCount, + * ALARM_ID_TD_WATCHDOG_POST_TEST_FAILED, ALARM_ID_TD_SOFTWARE_FAULT * @details \b Outputs: watchdogSelfTestState, watchdogSelfTestTimerCount, * watchdogSelfTestStatus * @details \b Alarm: ALARM_ID_XX_WATCHDOG_POST_TEST_FAILED if self-test fails. @@ -213,82 +215,84 @@ // Waiting here for w.d. test period to prevent this task from checking in - watchdog should expire } #ifdef _TD_ -// if ( PIN_SIGNAL_LOW == getCPLDSafety() ) + if ( PIN_SIGNAL_LOW == getCPLDSafety() ) #else -// if ( TBD ) + if ( TBD ) #endif -// { -// F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS ); -// F32 audioCurrent = getFPGABackupAlarmAudioCurrent(); -// -// // Verify 24V is down when w.d. expired -// if ( v24 > MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED ) -// { -// SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED, 2.0F, v24 ); -// watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; -// } -// // Verify backup alarm audio is on when w.d. expired -// else if ( audioCurrent < MIN_BACKUP_ALARM_CURRENT_MA ) -// { -//#ifndef _RELEASE_ -// if ( getTestConfigStatus( TEST_CONFIG_DISABLE_ALARM_AUDIO ) != TRUE ) -//#endif -// { -// SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED, 3.0F, audioCurrent ); -// watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; -// } -// } -// } -// else -// { -// SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED, 1 ); -// watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; -// } -// watchdogSelfTestTimerCount = getMSTimerCount(); -// watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_RECOVER; + { + F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS_1 ); //ToDo confirmation from hardware + F32 audioCurrent = getFPGABackupAlarmAudioCurrent(); + + // Verify 24V is down when w.d. expired + if ( v24 > MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED ) + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_TD_WATCHDOG_POST_TEST_FAILED, 2.0F, v24 ); + watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + // Verify backup alarm audio is on when w.d. expired + else if ( audioCurrent < MIN_BACKUP_ALARM_CURRENT_MA ) + { +#ifndef _RELEASE_ + //ToDo Below line have to uncomment after NVData implementation +// if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_ALARM_AUDIO ) != SW_CONFIG_ENABLE_VALUE ) +#endif + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_TD_WATCHDOG_POST_TEST_FAILED, 3.0F, audioCurrent ); + watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + } + } + else + { + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_TD_WATCHDOG_POST_TEST_FAILED, 1 ); + watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + watchdogSelfTestTimerCount = getMSTimerCount(); + watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_RECOVER; break; case WATCHDOG_SELF_TEST_STATE_RECOVER: if ( TRUE == didTimeout( watchdogSelfTestTimerCount, WATCHDOG_RECOVERY_TIME_MS ) ) { // Verify watchdog expired signal no longer active #ifdef _TD_ -// if ( PIN_SIGNAL_HIGH == getCPLDSafety() ) + if ( PIN_SIGNAL_HIGH == getCPLDSafety() ) #else -// if ( TBD ) + if ( TBD ) #endif -// { -// F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS ); -// F32 audioCurrent = getFPGABackupAlarmAudioCurrent(); -// -// // Verify 24V is down when w.d. recovered -// if ( v24 < MIN_24V_LEVEL_ON_WATCHDOG_RECOVER ) -// { -// SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED, 4.0F, v24 ); -// watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; -// } -// // Verify backup alarm audio is on when w.d. recovered -// else if ( audioCurrent > MAX_BACKUP_ALARM_CURRENT_MA ) -// { -//#ifndef _RELEASE_ -// if ( getTestConfigStatus( TEST_CONFIG_DISABLE_ALARM_AUDIO ) != TRUE ) -//#endif -// { -// SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED, 5.0F, audioCurrent ); -// watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; -// } -// } -// else -// { -// watchdogSelfTestStatus = SELF_TEST_STATUS_PASSED; -// } -// } -// else -// { -// SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED, 6 ); -// watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; -// } -// result = watchdogSelfTestStatus; -// watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_COMPLETE; + { + F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS_1 ); //ToDo confirmation from hardware + F32 audioCurrent = getFPGABackupAlarmAudioCurrent(); + + // Verify 24V is down when w.d. recovered + if ( v24 < MIN_24V_LEVEL_ON_WATCHDOG_RECOVER ) + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_TD_WATCHDOG_POST_TEST_FAILED, 4.0F, v24 ); + watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + // Verify backup alarm audio is on when w.d. recovered + else if ( audioCurrent > MAX_BACKUP_ALARM_CURRENT_MA ) + { +#ifndef _RELEASE_ + //ToDo Below line have to uncomment after NVData implementation +// if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_ALARM_AUDIO ) != SW_CONFIG_ENABLE_VALUE ) +#endif + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_TD_WATCHDOG_POST_TEST_FAILED, 5.0F, audioCurrent ); + watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + } + else + { + watchdogSelfTestStatus = SELF_TEST_STATUS_PASSED; + } + } + else + { + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_TD_WATCHDOG_POST_TEST_FAILED, 6 ); + watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + result = watchdogSelfTestStatus; + watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_COMPLETE; } break;