Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -rc48a99d2d1c852adcc986253b6c420a90dab7bfe -rf5b02f03b6695c0c76fd8a4d902a13114e1a8aca --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision c48a99d2d1c852adcc986253b6c420a90dab7bfe) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision f5b02f03b6695c0c76fd8a4d902a13114e1a8aca) @@ -27,27 +27,16 @@ // ********** private definitions ********** -/// Enumeration of init & POST mode states. -typedef enum POST_States -{ - POST_STATE_START = 0, ///< Start initialize & POST mode state. - POST_STATE_FPGA, ///< FPGA POST test state. - POST_STATE_WATCHDOG, ///< Watchdog POST test state. - POST_STATE_COMPLETED, ///< POST completed successfully state. - POST_STATE_FAILED, ///< POST failed state. - NUM_OF_POST_STATES ///< Number of initialize & POST mode states. -} POST_STATE_T; - // ********** private data ********** -static POST_STATE_T postState = POST_STATE_START; ///< Currently active initialize & POST state. +static DG_POST_STATE_T postState = DG_POST_STATE_START; ///< Currently active initialize & POST state. static BOOL postCompleted = FALSE; ///< Flag indicating POST completed. static BOOL postPassed = FALSE; ///< Flag indicating all POST tests passed. static BOOL tempPOSTPassed = TRUE; ///< Temporary flag indicating all POST tests completed so far have passed. // ********** private function prototypes ********** -static POST_STATE_T handlePOSTStatus( SELF_TEST_STATUS_T testStatus ); +static DG_POST_STATE_T handlePOSTStatus( SELF_TEST_STATUS_T testStatus ); /*********************************************************************//** * @brief @@ -59,7 +48,7 @@ *************************************************************************/ void initInitAndPOSTMode( void ) { - postState = POST_STATE_START; + postState = DG_POST_STATE_START; postCompleted = FALSE; postPassed = FALSE; tempPOSTPassed = TRUE; @@ -84,38 +73,38 @@ * @details * Inputs : none * Outputs : - * @return none + * @return current state. *************************************************************************/ -void execInitAndPOSTMode( void ) +U32 execInitAndPOSTMode( void ) { SELF_TEST_STATUS_T testStatus = SELF_TEST_STATUS_IN_PROGRESS; // execute current POST state switch ( postState ) { - case POST_STATE_START: - postState = POST_STATE_FPGA; + case DG_POST_STATE_START: + postState = DG_POST_STATE_FPGA; break; - case POST_STATE_FPGA: + case DG_POST_STATE_FPGA: testStatus = execFPGATest(); postState = handlePOSTStatus( testStatus ); break; - case POST_STATE_WATCHDOG: + case DG_POST_STATE_WATCHDOG: testStatus = execWatchdogTest(); handlePOSTStatus( testStatus ); // ignoring return value because last test if ( TRUE == tempPOSTPassed ) { - postState = POST_STATE_COMPLETED; + postState = DG_POST_STATE_COMPLETED; } else { - postState = POST_STATE_FAILED; + postState = DG_POST_STATE_FAILED; } break; - case POST_STATE_COMPLETED: + case DG_POST_STATE_COMPLETED: // set overall HD POST status to "passed" postPassed = TRUE; // set overall HD POST completed status to TRUE @@ -125,17 +114,19 @@ requestNewOperationMode( MODE_STAN ); break; - case POST_STATE_FAILED: + case DG_POST_STATE_FAILED: // TODO - send POST status on CAN // will want POST faults to wait for us to get here before sending us to fault mode requestNewOperationMode( MODE_FAUL ); break; default: - postState = POST_STATE_FAILED; // TODO - s/w fault + postState = DG_POST_STATE_FAILED; break; } + + return postState; } /*********************************************************************//** @@ -177,13 +168,13 @@ * @param testStatus * @return recommended next POST state *************************************************************************/ -static POST_STATE_T handlePOSTStatus( SELF_TEST_STATUS_T testStatus ) +static DG_POST_STATE_T handlePOSTStatus( SELF_TEST_STATUS_T testStatus ) { - POST_STATE_T result = postState; + DG_POST_STATE_T result = postState; if ( ( testStatus == SELF_TEST_STATUS_PASSED ) || ( testStatus == SELF_TEST_STATUS_FAILED ) ) { - result = (POST_STATE_T)((int)postState + 1); // move on to next POST test + result = (DG_POST_STATE_T)((int)postState + 1); // move on to next POST test if ( testStatus == SELF_TEST_STATUS_FAILED ) { tempPOSTPassed = FALSE; @@ -193,4 +184,18 @@ return result; } +/*********************************************************************//** + * @brief + * The getCurrentInitAndPOSTState function returns the current state of the \n + * initialize & POST mode. + * @details + * Inputs : postState + * Outputs : none + * @return the current state of initialize & POST mode. + *************************************************************************/ +DG_POST_STATE_T getCurrentInitAndPOSTState( void ) +{ + return postState; +} + /**@}*/