Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -reef41b7363d82763095a1317f1757f360f0d9ec1 -r838bd7060d127e6967559bc2b3998eac201bf738 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision eef41b7363d82763095a1317f1757f360f0d9ec1) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 838bd7060d127e6967559bc2b3998eac201bf738) @@ -24,6 +24,7 @@ #include "ModeStandby.h" #include "ModePreTreat.h" #include "ModeTreatment.h" +#include "ModeUpdate.h" //#include "ModePostTreat.h" //#include "NVDataMgmt.h" #include "OperationModes.h" @@ -71,14 +72,15 @@ /// This matrix determines legal transitions from one mode to another static const TD_OP_MODE_T MODE_TRANSITION_TABLE[ NUM_OF_MODES - 1 ][ NUM_OF_MODES - 1 ] = { -// From to-> FAULT SERVICE INIT STANBY PRE-TREAT TREATMENT POST_TREA -/* FAUL */{ MODE_FAUL, MODE_SERV, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, }, -/* SERV */{ MODE_NLEG, MODE_SERV, 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, }, -/* STAN */{ MODE_FAUL, MODE_SERV, MODE_INIT, MODE_STAN, MODE_PRET, MODE_NLEG, MODE_NLEG, }, -/* PRET */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_STAN, MODE_PRET, MODE_TREA, MODE_POST, }, // From Standby to next mode is pretreatment -/* TREA */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_TREA, MODE_POST, }, -/* POST */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_STAN, MODE_NLEG, MODE_NLEG, MODE_POST, }, }; +// From to-> FAULT SERVICE INIT STANBY PRE-TREAT TREATMENT POST_TREA UPDATE +/* FAUL */{ MODE_FAUL, MODE_SERV, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_UPDT, }, +/* SERV */{ MODE_NLEG, 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_UPDT, }, +/* STAN */{ MODE_FAUL, MODE_SERV, MODE_INIT, MODE_STAN, MODE_PRET, MODE_NLEG, MODE_NLEG, MODE_UPDT, }, +/* PRET */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_STAN, MODE_PRET, MODE_TREA, MODE_POST, MODE_POST, }, // From Standby to next mode is pretreatment +/* TREA */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_TREA, MODE_POST, MODE_POST, }, +/* POST */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_STAN, MODE_NLEG, MODE_NLEG, MODE_POST, MODE_POST, }, +/* UPDT */{ MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_STAN, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_UPDT, }, }; // ********** private function prototypes ********** @@ -124,6 +126,7 @@ initStandbyMode(); initPreTreatmentMode(); initTreatmentMode(); + initUpdateMode(); // initPostTreatmentMode(); } @@ -212,6 +215,10 @@ // currentSubMode = execPostTreatmentMode(); // break; + case MODE_UPDT: + currentSubMode = execUpdateMode(); + break; + default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_OP_MODES_INVALID_MODE_STATE, currentMode ) currentMode = MODE_FAUL; @@ -411,6 +418,9 @@ // case MODE_POST: // currentSubMode = transitionToPostTreatmentMode(); // break; + case MODE_UPDT: + currentSubMode = transitionToUpdateMode(); + break; default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_OP_MODES_INVALID_MODE_TO_TRANSITION_TO, newMode ) break;