Index: firmware/App/Controllers/AlarmLamp.c =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Controllers/AlarmLamp.c (.../AlarmLamp.c) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Controllers/AlarmLamp.c (.../AlarmLamp.c) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -262,6 +262,18 @@ } return result; +} + +/*********************************************************************//** + * @brief + * The resetAlarmLampPOSTState function resets the alarm lamp post state. + * @details Inputs: none + * @details Outputs: alarmLampSelfTestState + * @return none + *************************************************************************/ +void resetAlarmLampPOSTState( void ) +{ + alarmLampSelfTestState = ALARM_LAMP_SELF_TEST_STATE_START; } /*********************************************************************//** Index: firmware/App/Controllers/AlarmLamp.h =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Controllers/AlarmLamp.h (.../AlarmLamp.h) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Controllers/AlarmLamp.h (.../AlarmLamp.h) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -48,7 +48,8 @@ void initAlarmLamp( void ); void execAlarmLamp( void ); void requestAlarmLampPattern( LAMP_PATTERN_T lampPattern ); -SELF_TEST_STATUS_T execAlarmLampTest( void ); +SELF_TEST_STATUS_T execAlarmLampTest( void ); +void resetAlarmLampPOSTState( void ); LAMP_PATTERN_T getCurrentAlarmLampPattern( void ); BOOL getAlarmLampOn( void ); Index: firmware/App/Controllers/Buttons.c =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Controllers/Buttons.c (.../Buttons.c) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Controllers/Buttons.c (.../Buttons.c) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -260,6 +260,18 @@ /*********************************************************************//** * @brief + * The resetStuckButtonPOSTState function resets the stuck button POST state. + * @details Inputs: none + * @details Outputs: buttonSelfTestState + * @return none + *************************************************************************/ +void resetStuckButtonPOSTState( void ) +{ + buttonSelfTestState = BUTTON_SELF_TEST_STATE_START; +} + +/*********************************************************************//** + * @brief * The userConfirmOffButton function handles user confirmation of the off * button. The off request will be initiated here if confirmed or cancelled * if rejected by user. Index: firmware/App/Controllers/Buttons.h =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Controllers/Buttons.h (.../Buttons.h) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Controllers/Buttons.h (.../Buttons.h) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -57,7 +57,8 @@ void execButtons( void ); BOOL isStopButtonPressed( void ); void userConfirmOffButton( U08 response ); -SELF_TEST_STATUS_T execStuckButtonTest( void ); +SELF_TEST_STATUS_T execStuckButtonTest( void ); +void resetStuckButtonPOSTState( void ); BUTTON_STATE_T getOffButtonState( void ); BUTTON_STATE_T getStopButtonState( void ); Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -478,6 +478,19 @@ /*********************************************************************//** * @brief + * The resetValvesPOSTState function resets the valves POST state; + * @details Inputs: none + * @details Outputs: valveSelfTestState, valvesSelfTestResult + * @return none + *************************************************************************/ +void resetValvesPOSTState( void ) +{ + valveSelfTestState = VALVE_SELF_TEST_ENABLE_VALVES; + valvesSelfTestResult = SELF_TEST_STATUS_IN_PROGRESS; +} + +/*********************************************************************//** + * @brief * The execValves function executes the valves exec state machine. * @details Inputs: valvesStatus * @details Outputs: valvesStatus Index: firmware/App/Controllers/Valves.h =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Controllers/Valves.h (.../Valves.h) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Controllers/Valves.h (.../Valves.h) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -87,6 +87,8 @@ SELF_TEST_STATUS_T execValvesSelfTest( void ); +void resetValvesPOSTState( void ); + void execValves( void ); BOOL homeValve( VALVE_T valve ); Index: firmware/App/Drivers/SafetyShutdown.c =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -199,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 Index: firmware/App/Drivers/SafetyShutdown.h =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Drivers/SafetyShutdown.h (.../SafetyShutdown.h) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Drivers/SafetyShutdown.h (.../SafetyShutdown.h) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -42,6 +42,7 @@ void activateSafetyShutdown( void ); BOOL isSafetyShutdownActivated( void ); SELF_TEST_STATUS_T execSafetyShutdownTest( void ); +void resetSafetyShutdownPOSTState( void ); BOOL testSetSafetyShutdownOverride( U32 value ); BOOL testResetSafetyShutdownOverride( void ); Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -r660876bca7ae34f862ae9cc6feef9a30ec02fe94 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 660876bca7ae34f862ae9cc6feef9a30ec02fe94) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -118,11 +118,23 @@ *************************************************************************/ U32 transitionToInitAndPOSTMode( void ) { + initInitAndPOSTMode(); + // Set user alarm recovery actions allowed in this mode setAlarmUserActionEnabled( ALARM_USER_ACTION_RESUME, FALSE ); setAlarmUserActionEnabled( ALARM_USER_ACTION_RINSEBACK, FALSE ); setAlarmUserActionEnabled( ALARM_USER_ACTION_END_TREATMENT, FALSE ); + resetRTCPOSTState(); + resetNVDataMgmtPOSTState(); + resetAccelPOSTState(); + resetWatchdogPOSTState(); + resetSafetyShutdownPOSTState(); + resetValvesPOSTState(); + resetAlarmAudioPOSTState(); + resetAlarmLampPOSTState(); + resetStuckButtonPOSTState(); + return postState; } @@ -162,14 +174,14 @@ postState = handlePOSTStatus( testStatus ); break; + // NOTE: all the actuators and sensors must execute their POST after NVDataMgmt + // NVDataMgmt must load all the calibration data into RAM so the actuators + // can query their corresponding calibration values successfully case POST_STATE_NVDATAMGMT: testStatus = execNVDataMgmtSelfTest(); postState = handlePOSTStatus( testStatus ); break; - // NOTE: all the actuators and sensors must execute their POST after NVDataMgmt - // NVDataMgmt must load all the calibration data into RAM so the actuators - // can query their corresponding calibration values successfully case POST_STATE_WATCHDOG: testStatus = execWatchdogTest(); postState = handlePOSTStatus( testStatus ); Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -77,7 +77,7 @@ /* FAUL */{ MODE_FAUL, MODE_SERV, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, }, /* SERV */{ MODE_FAUL, MODE_SERV, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, }, /* INIT */{ MODE_FAUL, MODE_NLEG, MODE_INIT, MODE_STAN, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, }, -/* STAN */{ MODE_FAUL, MODE_SERV, MODE_NLEG, MODE_STAN, MODE_TPAR, MODE_NLEG, MODE_NLEG, MODE_NLEG, }, +/* STAN */{ MODE_FAUL, MODE_SERV, MODE_INIT, MODE_STAN, MODE_TPAR, MODE_NLEG, MODE_NLEG, MODE_NLEG, }, /* TPAR */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_STAN, MODE_TPAR, MODE_PRET, MODE_NLEG, MODE_NLEG, }, /* PRET */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_STAN, MODE_NLEG, MODE_PRET, MODE_TREA, MODE_POST, }, /* TREA */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_TREA, MODE_POST, }, Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -1412,6 +1412,18 @@ return result; } + +/*********************************************************************//** + * @brief + * The resetAlarmAudioPOSTState function resets the alarm audio POST state. + * @details Inputs: none + * @details Outputs: alarmAudioSelfTestState + * @return none + *************************************************************************/ +void resetAlarmAudioPOSTState( void ) +{ + alarmAudioSelfTestState = ALARM_AUDIO_SELF_TEST_STATE_START; +} /************************************************************************* Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -209,6 +209,7 @@ F32 getAlarmAudioPrimaryLowGainCurrent( void ); F32 getAlarmAudioBackupCurrent( void ); SELF_TEST_STATUS_T execAlarmAudioSelfTest( void ); +void resetAlarmAudioPOSTState( void ); BOOL testSetAlarmStateOverride( U32 alarmID, BOOL value ); BOOL testResetAlarmStateOverride( U32 alarmID ); Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -250,6 +250,18 @@ } return result; +} + +/*********************************************************************//** + * @brief + * The resetWatchdogPOSTState function resets the watchdog POST state. + * @details Inputs: none + * @details Outputs: watchdogSelfTestState + * @return none + *************************************************************************/ +void resetWatchdogPOSTState( void ) +{ + watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_START; } /*********************************************************************//** Index: firmware/App/Services/WatchdogMgmt.h =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r78f072a9cb6acc3a007171562f6e63efb8b9ae23 --- firmware/App/Services/WatchdogMgmt.h (.../WatchdogMgmt.h) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Services/WatchdogMgmt.h (.../WatchdogMgmt.h) (revision 78f072a9cb6acc3a007171562f6e63efb8b9ae23) @@ -46,7 +46,8 @@ void initWatchdogMgmt( void ); void execWatchdogMgmt( void ); void checkInWithWatchdogMgmt( TASK_T task ); -SELF_TEST_STATUS_T execWatchdogTest( void ); +SELF_TEST_STATUS_T execWatchdogTest( void ); +void resetWatchdogPOSTState( void ); BOOL testSetWatchdogTaskCheckInOverride( U32 task, BOOL value ); BOOL testResetWatchdogTaskCheckInOverride( U32 task );