Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -rb6d20d9e5c704a9f7ebceea9bb12731dac61fc2a -r5422509f9d8db102b62952ba9f5923e832d6b2fa --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision b6d20d9e5c704a9f7ebceea9bb12731dac61fc2a) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 5422509f9d8db102b62952ba9f5923e832d6b2fa) @@ -18,6 +18,8 @@ #include "ModeFault.h" #include "ModeInitPOST.h" #include "ModeGenDialysate.h" +#include "ModePreGenDialysate.h" +#include "ModePostGenDialysate.h" #include "ModeService.h" #include "ModeStandby.h" #include "MessageSupport.h" @@ -52,15 +54,17 @@ /// This matrix determines legal transitions from one mode to another. static const DD_OP_MODE_T MODE_TRANSITION_TABLE[ NUM_OF_DD_MODES - 1 ][ NUM_OF_DD_MODES - 1 ] = { - // from to-> FAULT SERVICE INIT STANBY GEND HEAT HCOL ROPS - /* FAUL */{ DD_MODE_FAUL, DD_MODE_SERV, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG }, - /* SERV */{ DD_MODE_NLEG, DD_MODE_SERV, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG }, - /* INIT */{ DD_MODE_FAUL, DD_MODE_NLEG, DD_MODE_INIT, DD_MODE_STAN, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG }, - /* STAN */{ DD_MODE_FAUL, DD_MODE_SERV, DD_MODE_INIT, DD_MODE_STAN, DD_MODE_GEND, DD_MODE_HEAT, DD_MODE_HCOL, DD_MODE_ROPS }, - /* GEND */{ DD_MODE_FAUL, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_STAN, DD_MODE_GEND, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG }, - /* HEAT */{ DD_MODE_FAUL, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_STAN, DD_MODE_NLEG, DD_MODE_HEAT, DD_MODE_HCOL, DD_MODE_NLEG }, - /* HCOL */{ DD_MODE_FAUL, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_STAN, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_HCOL, DD_MODE_NLEG }, - /* ROPS */{ DD_MODE_FAUL, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_STAN, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_ROPS }, + // from to-> FAULT SERVICE INIT STANBY PREG GEND POSG HEAT HCOL ROPS + /* FAUL */{ DD_MODE_FAUL, DD_MODE_SERV, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG }, + /* SERV */{ DD_MODE_NLEG, DD_MODE_SERV, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG }, + /* INIT */{ DD_MODE_FAUL, DD_MODE_NLEG, DD_MODE_INIT, DD_MODE_STAN, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG }, + /* STAN */{ DD_MODE_FAUL, DD_MODE_SERV, DD_MODE_INIT, DD_MODE_STAN, DD_MODE_PREG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_HEAT, DD_MODE_HCOL, DD_MODE_ROPS }, + /* PREG */{ DD_MODE_FAUL, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_STAN, DD_MODE_PREG, DD_MODE_GEND, DD_MODE_POSG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG }, + /* GEND */{ DD_MODE_FAUL, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_GEND, DD_MODE_POSG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG }, + /* POSG */{ DD_MODE_FAUL, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_STAN, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_POSG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG }, + /* HEAT */{ DD_MODE_FAUL, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_STAN, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_HEAT, DD_MODE_HCOL, DD_MODE_NLEG }, + /* HCOL */{ DD_MODE_FAUL, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_STAN, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_HCOL, DD_MODE_NLEG }, + /* ROPS */{ DD_MODE_FAUL, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_STAN, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_NLEG, DD_MODE_ROPS }, }; // ********** private function prototypes ********** @@ -103,6 +107,8 @@ initInitAndPOSTMode(); initStandbyMode(); initGenDialysateMode(); + initPreGenDialysateMode(); + initPostGenDialysateMode(); // initFlushMode(); // initHeatDisinfectMode(); // initHeatDisinfectActiveCoolMode(); @@ -177,9 +183,17 @@ currentSubMode = execStandbyMode(); break; + case DD_MODE_PREG: + currentSubMode = execPreGenDialysateMode(); + break; + case DD_MODE_GEND: currentSubMode = execGenDialysateMode(); break; + + case DD_MODE_POSG: + currentSubMode = execPostGenDialysateMode(); + break; // // case DD_MODE_FLUS: // currentSubMode = execFlushMode(); @@ -351,10 +365,18 @@ currentSubMode = transitionToStandbyMode(); break; + case DD_MODE_PREG: + currentSubMode = transitionToPreGenDialysateMode(); + break; + case DD_MODE_GEND: currentSubMode = transitionToGenDialysateMode(); break; + case DD_MODE_POSG: + currentSubMode = transitionToPostGenDialysateMode(); + break; + // case DD_MODE_FLUS: // currentSubMode = transitionToFlushMode(); // break;