Index: firmware/App/Drivers/SafetyShutdown.c =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -17,7 +17,7 @@ #include "mibspi.h" -//#include "InternalADC.h" +#include "InternalADC.h" #include "Messaging.h" #include "SafetyShutdown.h" #include "Timers.h" @@ -129,15 +129,15 @@ case SAFETY_SHUTDOWN_SELF_TEST_STATE_IN_PROGRESS: if ( TRUE == didTimeout( safetyShutdownSelfTestTimerCount, SAFETY_SHUTDOWN_POST_TIMEOUT_MS ) ) { -// F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); -// F32 isolatedV24 = getRawIsolatedPowerSupplyVoltage(); -// -// // Verify 24V is down when w.d. expired -// if ( ( v24 > MAX_24V_LEVEL_ON_SAFETY_SHUTDOWN ) || ( isolatedV24 > MAX_ISOLATED_24V_LEVEL_ON_SS_EXPIRED ) ) -// { -// SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DD_SAFETY_SHUTDOWN_POST_TEST_FAILED, 1.0, v24 ); -// safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; -// } + F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); + F32 isolatedV24 = getRawIsolatedPowerSupplyVoltage(); + + // Verify 24V is down when w.d. expired + if ( ( v24 > MAX_24V_LEVEL_ON_SAFETY_SHUTDOWN ) || ( isolatedV24 > MAX_ISOLATED_24V_LEVEL_ON_SS_EXPIRED ) ) + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DD_SAFETY_SHUTDOWN_POST_TEST_FAILED, 1.0, v24 ); + safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; + } safetyShutdownSelfTestTimerCount = getMSTimerCount(); clear_saftety_shutdown(); safetyShutdownActivated = FALSE; @@ -148,20 +148,20 @@ case SAFETY_SHUTDOWN_SELF_TEST_STATE_RECOVER: if ( TRUE == didTimeout( safetyShutdownSelfTestTimerCount, SAFETY_SHUTDOWN_RECOVERY_TIME_MS ) ) { -// F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); -// F32 isolatedV24 = getRawIsolatedPowerSupplyVoltage(); -// -// // Verify 24V is down when w.d. recovered -// if ( ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) || ( isolatedV24 < MAX_ISOLATED_24V_LEVEL_ON_SS_EXPIRED ) ) -// { -// // TODO - If issue persisted talk with systems why 24V does not recover fully. -// SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DD_SAFETY_SHUTDOWN_POST_TEST_FAILED, 2.0, v24 ); -// safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; -// } -// else -// { -// safetyShutdownSelfTestStatus = SELF_TEST_STATUS_PASSED; -// } + F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); + F32 isolatedV24 = getRawIsolatedPowerSupplyVoltage(); + + // Verify 24V is down when w.d. recovered + if ( ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) || ( isolatedV24 < MAX_ISOLATED_24V_LEVEL_ON_SS_EXPIRED ) ) + { + // TODO - If issue persisted talk with systems why 24V does not recover fully. + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DD_SAFETY_SHUTDOWN_POST_TEST_FAILED, 2.0, v24 ); + safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + else + { + safetyShutdownSelfTestStatus = SELF_TEST_STATUS_PASSED; + } safetyShutdownSelfTestState = SAFETY_SHUTDOWN_SELF_TEST_STATE_COMPLETE; result = safetyShutdownSelfTestStatus; }