Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -r6d5a23b275903587f400bc686aed4d2709cf3e78 -rdcbd821e41803adc6e582d909207bc97f85ff939 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 6d5a23b275903587f400bc686aed4d2709cf3e78) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision dcbd821e41803adc6e582d909207bc97f85ff939) @@ -14,7 +14,10 @@ * **************************************************************************/ +#include +#include #include +#include #include "gio.h" #include "Common.h" @@ -23,40 +26,28 @@ #include "ModeFault.h" #include "ModeFill.h" #include "ModeInitPOST.h" -#include "ModeOpParams.h" #include "ModePostTreat.h" -#include "ModePreTreat.h" #include "ModeService.h" #include "ModeStandby.h" -#include "ModeTreatment.h" // ********** private data ********** static volatile BOOL modeRequest[NUM_OF_MODES - 1]; static OP_MODE currentMode = MODE_INIT; // this matrix determines legal transitions from one mode to another -static const OP_MODE MODE_TRANSITION_TABLE[NUM_OF_MODES - 1][NUM_OF_MODES - 1] = { -// from to-> FAULT SERVICE INIT STANBY FILL OP.PARAMS PRE-TREAT TREATMENT -// POST_TREA - /* FAUL */{ MODE_FAUL, MODE_SERV, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, - MODE_NLEG, }, - /* SERV */{ MODE_FAUL, MODE_SERV, MODE_NLEG, 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_NLEG, - MODE_NLEG, }, - /* STAN */{ MODE_FAUL, MODE_SERV, MODE_NLEG, MODE_STAN, MODE_FILL, MODE_NLEG, MODE_NLEG, MODE_NLEG, - MODE_NLEG, }, - /* FILL */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_STAN, MODE_FILL, MODE_NLEG, MODE_NLEG, MODE_NLEG, - MODE_NLEG, }, - /* OPAR */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_FILL, MODE_OPAR, MODE_PRET, MODE_NLEG, - MODE_NLEG, }, - /* PRET */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_PRET, MODE_TREA, - MODE_NLEG, }, - /* TREA */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, 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_NLEG, MODE_NLEG, - MODE_POST, }, }; +static const OP_MODE MODE_TRANSITION_TABLE[NUM_OF_MODES - 1][NUM_OF_MODES - 1] = +{ +// from to-> FAULT SERVICE INIT STANBY FILL DRAI FLUS DISI + /* FAUL */{ MODE_FAUL, MODE_SERV, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_NLEG }, + /* SERV */{ MODE_FAUL, 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_NLEG }, + /* STAN */{ MODE_FAUL, MODE_SERV, MODE_NLEG, MODE_STAN, MODE_FILL, MODE_NLEG, MODE_NLEG, MODE_NLEG }, + /* FILL */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_STAN, MODE_FILL, MODE_NLEG, MODE_NLEG, MODE_NLEG }, + /* DRAI */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_STAN, MODE_NLEG, MODE_DRAI, MODE_NLEG, MODE_NLEG }, + /* FLUS */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_STAN, MODE_NLEG, MODE_NLEG, MODE_FLUS, MODE_NLEG }, + /* DISI */{ MODE_FAUL, MODE_NLEG, MODE_NLEG, MODE_STAN, MODE_NLEG, MODE_NLEG, MODE_NLEG, MODE_DISI } +}; // ********** private function prototypes ********** @@ -92,10 +83,9 @@ initInitAndPOSTMode(); initStandbyMode(); initFillMode(); - initOpParamsMode(); - initPreTreatmentMode(); - initTreatmentMode(); - initPostTreatmentMode(); + initDrainMode(); + initFlushMode(); + initDisinfectMode(); } /************************************************************************* @@ -153,22 +143,18 @@ execFillMode(); break; - case MODE_OPAR: - execOpParamsMode(); + case MODE_DRAI: + execDrainMode(); break; - case MODE_PRET: - execPreTreatmentMode(); + case MODE_FLUS: + execFlushMode(); break; - case MODE_TREA: - execTreatmentMode(); + case MODE_DISI: + execDisinfectMode(); break; - case MODE_POST: - execPostTreatmentMode(); - break; - default: currentMode = MODE_FAUL; // TODO - trigger s/w fault @@ -281,18 +267,15 @@ case MODE_FILL: transitionToFillMode(); break; - case MODE_OPAR: - transitionToOpParamsMode(); + case MODE_DRAI: + transitionToDrainMode(); break; - case MODE_PRET: - transitionToPreTreatmentMode(); + case MODE_FLUS: + transitionToFlushMode(); break; - case MODE_TREA: - transitionToTreatmentMode(); + case MODE_DISI: + transitionToDisinfectMode(); break; - case MODE_POST: - transitionToPostTreatmentMode(); - break; default: // TODO - s/w fault break;