Index: firmware/App/Drivers/SafetyShutdown.c =================================================================== diff -u -r2140a55e7bba381ec3b62aa2af47b967c8adaa31 -r0f9838d6b8606a6a9853ccb6157e4c25d70ddd02 --- firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision 2140a55e7bba381ec3b62aa2af47b967c8adaa31) +++ firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision 0f9838d6b8606a6a9853ccb6157e4c25d70ddd02) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2019-2022 Diality Inc. - All Rights Reserved. +* Copyright (c) 2019-2023 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 SafetyShutdown.c * * @author (last) Dara Navaei -* @date (last) 11-Sep-2022 +* @date (last) 18-Jan-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -129,17 +129,16 @@ { case SAFETY_SHUTDOWN_SELF_TEST_STATE_START: { + F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS ); + safetyShutdownSelfTestState = SAFETY_SHUTDOWN_SELF_TEST_STATE_IN_PROGRESS; -#ifndef DISABLE_WD_AND_SFTY_POST_TESTS - F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS ); - // Verify 24V is up - if ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) - { - SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED, (F32)SAFETY_POST_24V_INITIAL, v24 ) - safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; - } -#endif + // Verify 24V is up + if ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED, (F32)SAFETY_POST_24V_INITIAL, v24 ) + safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; + } safetyShutdownSelfTestTimerCount = getMSTimerCount(); activateSafetyShutdown(); } @@ -151,14 +150,12 @@ F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS ); F32 audioCurrent = getFPGABackupAlarmAudioCurrent(); -#ifndef DISABLE_WD_AND_SFTY_POST_TESTS // Verify 24V is down when w.d. expired if ( v24 > MAX_24V_LEVEL_ON_SAFETY_SHUTDOWN ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED, (F32)SAFETY_POST_24V_NOT_CUT, v24 ) safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; } -#endif safetyShutdownSelfTestTimerCount = getMSTimerCount(); CLR_SAFETY_SHUTDOWN(); safetyShutdownActivated = FALSE; @@ -172,15 +169,13 @@ F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS ); F32 audioCurrent = getFPGABackupAlarmAudioCurrent(); -#ifndef DISABLE_WD_AND_SFTY_POST_TESTS // Verify 24V is down when w.d. recovered if ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED, (F32)SAFETY_POST_NO_24V_RESTORE, v24 ) safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; } else -#endif { safetyShutdownSelfTestStatus = SELF_TEST_STATUS_PASSED; } @@ -204,6 +199,18 @@ return result; } +/*********************************************************************//** + * @brief + * The resetSafetyShutdownPOSTState function resets safety shutdown POST state. + * @details Inputs: none + * @details Outputs: safetyShutdownSelfTestState + * @return none + *************************************************************************/ +void resetSafetyShutdownPOSTState( void ) +{ + safetyShutdownSelfTestState = SAFETY_SHUTDOWN_SELF_TEST_STATE_START; +} + /*********************************************************************//** * @brief * The testSetSafetyShutdownOverride function overrides the HD safety