Index: firmware/App/Controllers/BloodLeak.c =================================================================== diff -u -r0444258d6627e442d76ae6519802a334c73a141d -rcb50f6e0c61a64fdaeb80a4c335178e6823c4905 --- firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 0444258d6627e442d76ae6519802a334c73a141d) +++ firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision cb50f6e0c61a64fdaeb80a4c335178e6823c4905) @@ -172,7 +172,7 @@ static U08 bloodLeakEmbModeCmdQCount; ///< Blood leak embedded mode command queue count. static BOOL bloodLeakEmbModeHasZeroBeenRqustd; ///< Blood leak embedded mode flag to indicate zero has been requested. static U32 bloodLeakEmbModeCmdEnqueueCount; ///< Blood leak embedded mode command enqueue count. -static U32 bloodLeakEmbModeInfoCmdEnqueueTimer; ///< Blood leak embedded mode informative command (i.e. I, V, D) timer. +static U32 bloodLeakEmbModeInfoCmdEnqLastTimeStamp; ///< Blood leak embedded mode informative command (i.e. I, V, D) timer. static U32 bloodLeakEmbModeInfoCmdCounter; ///< Blood leak embedded mode informative command counter. // ********** private function prototypes ********** @@ -207,42 +207,43 @@ * bloodLeakDataPublicationTimerCounter, bloodLeakEmbModeHasZeroBeenRqustd * bloodLeakEmbModeSubstate, bloodLeakEmbModeCmdEnqueueCount * bloodLeakPersistenceCtr, bloodLeakSignalEmbModeReq, - * bloodLeakEmbModeRqstedCmd, bloodLeakEmbModeOpsStartTime, bloodLeakEmbModeRespBuffer, - * bloodLeakEmbModeRespIndex, bloodLeakExitNormalRequested, - * bloodLeakEmbModeCmdSeqLength, bloodLeakEmbModeHasRxRqstBeenSent, - * bloodLeakEmbModeInfoCmdEnqueueTimer, bloodLeakEmbModeInfoCmdCounter + * bloodLeakEmbModeRqstedCmd, bloodLeakEmbModeOpsStartTime, + * bloodLeakEmbModeRespBuffer, bloodLeakEmbModeRespIndex, + * bloodLeakExitNormalRequested, bloodLeakEmbModeCmdSeqLength, + * bloodLeakEmbModeHasRxRqstBeenSent, bloodLeakEmbModeInfoCmdEnqLastTimeStamp, + * bloodLeakEmbModeInfoCmdCounter * @return none *************************************************************************/ void initBloodLeak( void ) { // Initialize the embedded mode specifications initEmbModeSpecs(); - bloodLeakDataPublicationCounter = DATA_PUBLISH_COUNTER_START_COUNT; - bloodLeakState = BLOOD_LEAK_WAIT_FOR_POST_STATE; - bloodLeakStatus.data = BLOOD_LEAK_NOT_DETECTED; - bloodLeakStatus.ovInitData = BLOOD_LEAK_NOT_DETECTED; - bloodLeakStatus.ovData = BLOOD_LEAK_NOT_DETECTED; - bloodLeakStatus.override = OVERRIDE_RESET; - bloodLeakSelfTestStatus = SELF_TEST_STATUS_IN_PROGRESS; - bloodLeakUARTCmdIndex = 0; - bloodLeakSetPointSeqLength = 0; - bloodLeakPersistenceCtr = 0; - bloodLeakSignalEmbModeReq = FALSE; - bloodLeakEmbModeRqstedCmd = NU_EMB_MODE_CMD; - bloodLeakEmbModeSubstate = BLOOD_LEAK_EMB_MODE_WAIT_FOR_COMAND_STATE; - bloodLeakEmbModeOpsStartTime = 0; - bloodLeakEmbModeRespIndex = 0; - bloodLeakExitNormalRequested = FALSE; - bloodLeakEmbModeCmdSeqLength = 0; - bloodLeakEmbModeHasRxRqstBeenSent = FALSE; - bloodLeakEmbModeCmdQFrontIndex = 0; - bloodLeakEmbModeCmdQRearIndex = 0; - bloodLeakEmbModeCmdQCount = 0; - bloodLeakEmbModeHasZeroBeenRqustd = FALSE; - bloodLeakEmbModeCmdEnqueueCount = 0; - bloodLeakEmbModeInfoCmdEnqueueTimer = getMSTimerCount(); - bloodLeakEmbModeInfoCmdCounter = 0; + bloodLeakDataPublicationCounter = DATA_PUBLISH_COUNTER_START_COUNT; + bloodLeakState = BLOOD_LEAK_WAIT_FOR_POST_STATE; + bloodLeakStatus.data = BLOOD_LEAK_NOT_DETECTED; + bloodLeakStatus.ovInitData = BLOOD_LEAK_NOT_DETECTED; + bloodLeakStatus.ovData = BLOOD_LEAK_NOT_DETECTED; + bloodLeakStatus.override = OVERRIDE_RESET; + bloodLeakSelfTestStatus = SELF_TEST_STATUS_IN_PROGRESS; + bloodLeakUARTCmdIndex = 0; + bloodLeakSetPointSeqLength = 0; + bloodLeakPersistenceCtr = 0; + bloodLeakSignalEmbModeReq = FALSE; + bloodLeakEmbModeRqstedCmd = NU_EMB_MODE_CMD; + bloodLeakEmbModeSubstate = BLOOD_LEAK_EMB_MODE_WAIT_FOR_COMAND_STATE; + bloodLeakEmbModeOpsStartTime = 0; + bloodLeakEmbModeRespIndex = 0; + bloodLeakExitNormalRequested = FALSE; + bloodLeakEmbModeCmdSeqLength = 0; + bloodLeakEmbModeHasRxRqstBeenSent = FALSE; + bloodLeakEmbModeCmdQFrontIndex = 0; + bloodLeakEmbModeCmdQRearIndex = 0; + bloodLeakEmbModeCmdQCount = 0; + bloodLeakEmbModeHasZeroBeenRqustd = FALSE; + bloodLeakEmbModeCmdEnqueueCount = 0; + bloodLeakEmbModeInfoCmdEnqLastTimeStamp = getMSTimerCount(); + bloodLeakEmbModeInfoCmdCounter = 0; // Set the blood leak embedded mode command queue to zero memset( bloodLeakEmbModeCmdQ, 0x0, BLOOD_LEAK_EMB_MODE_CMD_Q_MAX_SIZE ); @@ -1417,15 +1418,15 @@ * @brief * The enqueueInfoEmbModeCmds function enqueues the informative embedded * mode commands. - * @details Inputs: bloodLeakEmbModeInfoCmdEnqueueTimer, bloodLeakState, + * @details Inputs: bloodLeakEmbModeInfoCmdEnqueueLastTimeStamp, bloodLeakState, * bloodLeakEmbModeInfoCmdCounter - * @details Outputs: bloodLeakEmbModeInfoCmdEnqueueTimer, bloodLeakState, + * @details Outputs: bloodLeakEmbModeInfoCmdEnqueueLastTimeStamp, bloodLeakState, * bloodLeakEmbModeInfoCmdCounter * @return none *************************************************************************/ static void enqueueInfoEmbModeCmds( void ) { - if ( ( TRUE == didTimeout( bloodLeakEmbModeInfoCmdEnqueueTimer, BLOOD_LEAK_EMB_MODE_INFO_CMD_TIMOUE_MS ) ) && + if ( ( TRUE == didTimeout( bloodLeakEmbModeInfoCmdEnqLastTimeStamp, BLOOD_LEAK_EMB_MODE_INFO_CMD_TIMOUE_MS ) ) && ( bloodLeakState >= BLOOD_LEAK_INIT_STATE ) ) { // Enqueue the next command. Make sure the blood leak state is greater than init state since in the post state and @@ -1445,8 +1446,8 @@ // Set the timer for the next time out to enqueue // Reset the counter. The counter starts from 0 - bloodLeakEmbModeInfoCmdEnqueueTimer = getMSTimerCount(); - bloodLeakEmbModeInfoCmdCounter = INC_WRAP( bloodLeakEmbModeInfoCmdCounter, 0, BLOOD_LEAK_EMB_MODE_NUM_OF_INFO_CMDS - 1 ); + bloodLeakEmbModeInfoCmdEnqLastTimeStamp = getMSTimerCount(); + bloodLeakEmbModeInfoCmdCounter = INC_WRAP( bloodLeakEmbModeInfoCmdCounter, 0, BLOOD_LEAK_EMB_MODE_NUM_OF_INFO_CMDS - 1 ); } } Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r0444258d6627e442d76ae6519802a334c73a141d -rcb50f6e0c61a64fdaeb80a4c335178e6823c4905 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 0444258d6627e442d76ae6519802a334c73a141d) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision cb50f6e0c61a64fdaeb80a4c335178e6823c4905) @@ -802,7 +802,7 @@ } else { - sendAckResponseMsg( (MSG_ID_T)message->hdr.msgID, COMM_BUFFER_OUT_CAN_HD_2_UI, ACK_NOT_REQUIRED ); + sendAckResponseMsg( (MSG_ID_T)message->hdr.msgID, COMM_BUFFER_OUT_CAN_HD_2_UI, FALSE ); } }