Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -rd19f70066e9d3503c5d2d4fd26a43c7dfa00f873 -r28b6e281605c1a944c982d0ec7dcdb6f28aac82b --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision d19f70066e9d3503c5d2d4fd26a43c7dfa00f873) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 28b6e281605c1a944c982d0ec7dcdb6f28aac82b) @@ -15,11 +15,13 @@ * ***************************************************************************/ -#include + #include "Messaging.h" #include "ModeInitPOST.h" #include "ModeFault.h" #include "ModeStandby.h" +#include "ModeWaterGen.h" +#include "ModeWaterPreGen.h" #include "OperationModes.h" #include "TaskGeneral.h" @@ -48,12 +50,13 @@ /// 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 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 } }; +// From to-> FAULT SERVICE INIT STANBY PGEN GENW +/* FAUL */{ RO_MODE_FAUL, RO_MODE_SERV, RO_MODE_NLEG, 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, RO_MODE_NLEG }, +/* INIT */{ RO_MODE_FAUL, RO_MODE_NLEG, RO_MODE_INIT, RO_MODE_STAN, RO_MODE_NLEG, RO_MODE_NLEG }, +/* STAN */{ RO_MODE_FAUL, RO_MODE_SERV, RO_MODE_NLEG, RO_MODE_STAN, RO_MODE_NLEG, RO_MODE_GENW }, +/* PGEN */{ RO_MODE_FAUL, RO_MODE_NLEG, RO_MODE_NLEG, RO_MODE_STAN, RO_MODE_PGEN, RO_MODE_GENW }, +/* GENW */{ RO_MODE_FAUL, RO_MODE_NLEG, RO_MODE_NLEG, RO_MODE_STAN, RO_MODE_NLEG, RO_MODE_GENW } }; // ********** private function prototypes ********** @@ -93,6 +96,7 @@ // initServiceMode(); initInitAndPOSTMode(); initStandbyMode(); + initPreGenWMode(); initGenWaterMode(); } @@ -116,7 +120,7 @@ newMode = MODE_TRANSITION_TABLE[ currentMode ][ newMode ]; // Is requested new mode valid and legal at this time? - if ( newMode >= RO_MODE_NLEG ) + if ( ( newMode >= RO_MODE_NLEG ) && ( isTestingActivated() != TRUE ) ) { SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_OP_MODES_ILLEGAL_MODE_TRANSITION_REQUESTED, newMode ) newMode = currentMode; @@ -140,7 +144,7 @@ break; case RO_MODE_SERV: -// currentSubMode = execServiceMode(); +// currentSubMode = execServiceMode(); break; case RO_MODE_INIT: @@ -151,10 +155,14 @@ currentSubMode = execStandbyMode(); break; - case RO_MODE_GENP: - currentSubMode = execGenPermeateMode(); + case RO_MODE_PGEN: + currentSubMode = execPreGenWMode(); break; + case RO_MODE_GENW: + currentSubMode = execGenWaterMode(); + 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; @@ -305,10 +313,14 @@ currentSubMode = transitionToStandbyMode(); break; - case RO_MODE_GENP: - currentSubMode = transitionToGenPermeateMode(); + case RO_MODE_PGEN: + currentSubMode = transitionToPreGenWMode(); break; + case RO_MODE_GENW: + currentSubMode = transitionToGenWaterMode(); + 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;