Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -r93a5ad88c7754e2d64d11d3425571aa27fe12652 -r7d4711edd7b40cd3e29f43e766f79a8a09586fe9 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 93a5ad88c7754e2d64d11d3425571aa27fe12652) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 7d4711edd7b40cd3e29f43e766f79a8a09586fe9) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2019-2023 Diality Inc. - All Rights Reserved. +* Copyright (c) 2019-2024 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file OperationModes.c * -* @author (last) Michael Garthwaite -* @date (last) 24-Aug-2023 +* @author (last) Dara Navaei +* @date (last) 24-Oct-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -65,7 +65,7 @@ { // from to-> FAULT SERVICE INIT STANBY STBY-SOLO GEN-IDLE FILL DRAIN FLUSH HEAT DIS CHEM DIS CHEM_FLUSH HEAT_COOL RO_PER_SAMPLE /* FAUL */{ DG_MODE_FAUL, DG_MODE_SERV, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG }, - /* SERV */{ DG_MODE_FAUL, DG_MODE_SERV, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_ROPS }, + /* SERV */{ DG_MODE_NLEG, DG_MODE_SERV, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG }, /* INIT */{ DG_MODE_FAUL, DG_MODE_NLEG, DG_MODE_INIT, DG_MODE_STAN, DG_MODE_SOLO, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG }, /* STAN */{ DG_MODE_FAUL, DG_MODE_SERV, DG_MODE_INIT, DG_MODE_STAN, DG_MODE_SOLO, DG_MODE_GENE, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_FLUS, DG_MODE_HEAT, DG_MODE_CHEM, DG_MODE_CHFL, DG_MODE_HCOL, DG_MODE_ROPS }, /* SOLO */{ DG_MODE_FAUL, DG_MODE_SERV, DG_MODE_INIT, DG_MODE_STAN, DG_MODE_SOLO, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_FLUS, DG_MODE_HEAT, DG_MODE_NLEG, DG_MODE_NLEG, DG_MODE_HCOL, DG_MODE_ROPS }, @@ -168,6 +168,9 @@ lastMode = currentMode; transitionToNewOperationMode( newMode ); currentMode = newMode; + // Set the last sub mode to 0 + // to ensure events cover the transition from submode 0 -> 1 -> 2 + priorSubMode = 0; sendOperationStatusEvent(); } @@ -237,8 +240,11 @@ break; } +#ifndef _VECTORCAST_ // Send operation status event when appropriate + // The second part of the OR in this if statement is not reachable in VectorCAST if ( ( priorSubMode != currentSubMode ) || ( priorSubState != currentSubState ) ) +#endif { sendOperationStatusEvent(); SEND_EVENT_WITH_2_U32_DATA( DG_EVENT_SUB_MODE_CHANGE, priorSubMode, currentSubMode ) @@ -478,7 +484,6 @@ * status event. * @details Inputs: currentMode, currentSubMode, currentSubState * @details Outputs: dat1, dat2. - * @param none * @return none *************************************************************************/ static void sendOperationStatusEvent()