Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -reef41b7363d82763095a1317f1757f360f0d9ec1 -rebf3fd80dd88d7f940f1c50d88b4601f79688452 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision eef41b7363d82763095a1317f1757f360f0d9ec1) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision ebf3fd80dd88d7f940f1c50d88b4601f79688452) @@ -7,8 +7,8 @@ * * @file OperationModes.c * -* @author (last) Varshini Nagabooshanam -* @date (last) 29-Jan-2026 +* @author (last) Praneeth Bunne +* @date (last) 19-May-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 @@ -18,13 +18,14 @@ #include "gio.h" #include "Messaging.h" +#include "ModeFault.h" #include "ModeInitPOST.h" +#include "ModePostTreat.h" +#include "ModePreTreat.h" #include "ModeService.h" -#include "ModeFault.h" #include "ModeStandby.h" -#include "ModePreTreat.h" #include "ModeTreatment.h" -//#include "ModePostTreat.h" +#include "ModeUpdate.h" //#include "NVDataMgmt.h" #include "OperationModes.h" #include "TaskGeneral.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,7 +126,8 @@ initStandbyMode(); initPreTreatmentMode(); initTreatmentMode(); -// initPostTreatmentMode(); + initUpdateMode(); + initPostTreatmentMode(); } /*********************************************************************//** @@ -208,10 +211,14 @@ currentSubMode = execTreatmentMode(); break; -// case MODE_POST: -// currentSubMode = execPostTreatmentMode(); -// break; + case MODE_POST: + 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; @@ -319,9 +326,9 @@ case MODE_STAN: signalAlarmActionToStandbyMode( action ); break; -// case MODE_PRET: -// signalAlarmActionToPreTreatmentMode( action ); -// break; + case MODE_PRET: + signalAlarmActionToPreTreatmentMode( action ); + break; case MODE_TREA: signalAlarmActionToTreatmentMode( action ); break; @@ -408,9 +415,14 @@ case MODE_TREA: currentSubMode = transitionToTreatmentMode(); break; -// case MODE_POST: -// currentSubMode = transitionToPostTreatmentMode(); -// break; + + case MODE_UPDT: + currentSubMode = transitionToUpdateMode(); + break; + + case MODE_POST: + currentSubMode = transitionToPostTreatmentMode(); + 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;