Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rfceea216e64fa6ed06b58625e40c9a9f19ef3d14 -rceccf84de0d3518691abcf0ed94389777c6fd055 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision fceea216e64fa6ed06b58625e40c9a9f19ef3d14) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision ceccf84de0d3518691abcf0ed94389777c6fd055) @@ -758,25 +758,25 @@ { if ( ( TRUE == pendingAckList[ i ].used ) && ( pendingAckList[ i ].seqNo == seqNo ) ) { - if ( ( ( getU32OverrideValue( &pendingACKOverride ) == PENDING_ACK_LIST_OVERRIDE_UI_CHANNEL ) && ( pendingAckList[ i ].channel == COMM_BUFFER_OUT_CAN_DG_2_UI ) ) || - ( ( getU32OverrideValue( &pendingACKOverride ) == PENDING_ACK_LIST_OVERRIDE_HD_CHANNEL ) && ( pendingAckList[ i ].channel == COMM_BUFFER_OUT_CAN_DG_2_HD ) ) ) + result = TRUE; + // Remove message pending ACK from list + if ( 0 == ( getU32OverrideValue( &pendingACKOverride ) ) { - pendingAckList[ i ].used = TRUE; - result = FALSE; + pendingAckList[ i ].used = FALSE; + } - else // Remove message pending ACK from list + if ( ( ( getU32OverrideValue( &pendingACKOverride ) == PENDING_ACK_LIST_OVERRIDE_UI_CHANNEL ) && ( pendingAckList[ i ].channel == COMM_BUFFER_OUT_CAN_HD_2_UI ) ) || + ( ( getU32OverrideValue( &pendingACKOverride ) == PENDING_ACK_LIST_OVERRIDE_DG_CHANNEL ) && ( pendingAckList[ i ].channel == COMM_BUFFER_OUT_CAN_HD_2_DG ) ) ) { - pendingAckList[ i ].used = FALSE; - result = TRUE; } + break; } } return result; } - /*********************************************************************//** * @brief * The checkPendingACKList function searches the pending ACK list to see if @@ -795,7 +795,7 @@ { for ( i = 0; i < PENDING_ACK_LIST_SIZE; i++ ) { // pending ACK expired? - if ( ( TRUE == pendingAckList[ i ].used ) && ( ( TRUE == didTimeout( pendingAckList[ i ].timeStamp, MSG_NOT_ACKED_TIMEOUT_MS ) ) ) ) + if ( ( TRUE == pendingAckList[ i ].used ) && ( TRUE == didTimeout( pendingAckList[ i ].timeStamp, MSG_NOT_ACKED_TIMEOUT_MS ) ) ) { // if retries left, reset and resend pending message. Do not retry when in POST since the UI might not still be responsive if ( pendingAckList[ i ].retries > 0 ) {