Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -rbf3ba65cafc8cbfb34e03d9fb2fc248069a8addb -rcecaee70fe37b4622df8d1f10811a1d6721077a4 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision bf3ba65cafc8cbfb34e03d9fb2fc248069a8addb) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision cecaee70fe37b4622df8d1f10811a1d6721077a4) @@ -18,6 +18,7 @@ #include "Messaging.h" #include "ModeInitPOST.h" #include "ModeFault.h" +#include "ModeGenPermeate.h" #include "ModeStandby.h" #include "OperationModes.h" #include "TaskGeneral.h" @@ -47,11 +48,12 @@ /// This matrix determines legal transitions from one mode to another static const RO_OP_MODE_T MODE_TRANSITION_TABLE[ NUM_OF_RO_MODES - 1 ][ NUM_OF_RO_MODES - 1 ] = { -// From to-> FAULT SERVICE INIT STANBY -/* FAUL */{ RO_MODE_FAUL, RO_MODE_SERV, RO_MODE_NLEG, RO_MODE_NLEG }, -/* SERV */{ RO_MODE_FAUL, RO_MODE_SERV, RO_MODE_NLEG, RO_MODE_NLEG }, -/* INIT */{ RO_MODE_FAUL, RO_MODE_NLEG, RO_MODE_INIT, RO_MODE_STAN }, -/* STAN */{ RO_MODE_FAUL, RO_MODE_SERV, RO_MODE_NLEG, RO_MODE_STAN } }; +// From to-> FAULT SERVICE INIT STANBY GENP +/* FAUL */{ RO_MODE_FAUL, RO_MODE_SERV, RO_MODE_NLEG, RO_MODE_NLEG, RO_MODE_NLEG }, +/* SERV */{ RO_MODE_FAUL, RO_MODE_SERV, RO_MODE_NLEG, RO_MODE_NLEG, RO_MODE_NLEG }, +/* INIT */{ RO_MODE_FAUL, RO_MODE_NLEG, RO_MODE_INIT, RO_MODE_STAN, RO_MODE_NLEG }, +/* STAN */{ RO_MODE_FAUL, RO_MODE_SERV, RO_MODE_NLEG, RO_MODE_STAN, RO_MODE_GENP }, +/* GENP */{ RO_MODE_FAUL, RO_MODE_NLEG, RO_MODE_NLEG, RO_MODE_STAN, RO_MODE_GENP } }; // ********** private function prototypes ********** @@ -91,6 +93,7 @@ // initServiceMode(); initInitAndPOSTMode(); initStandbyMode(); + initGenPermeateMode(); } /*********************************************************************//** @@ -148,6 +151,10 @@ currentSubMode = execStandbyMode(); break; + case RO_MODE_GENP: + currentSubMode = execGenPermeateMode(); + break; + default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RO_SOFTWARE_FAULT, SW_FAULT_ID_OP_MODES_INVALID_MODE_STATE, currentMode ) currentMode = RO_MODE_FAUL; @@ -285,15 +292,23 @@ case RO_MODE_FAUL: currentSubMode = transitionToFaultMode(); break; + case RO_MODE_SERV: // currentSubMode = transitionToServiceMode(); break; + case RO_MODE_INIT: currentSubMode = transitionToInitAndPOSTMode(); break; + case RO_MODE_STAN: currentSubMode = transitionToStandbyMode(); break; + + case RO_MODE_GENP: + currentSubMode = transitionToGenPermeateMode(); + break; + default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RO_SOFTWARE_FAULT, SW_FAULT_ID_OP_MODES_INVALID_MODE_TO_TRANSITION_TO, newMode ) break;