Index: sources/canbus/MessageDispatcher.cpp =================================================================== diff -u -rcbb246d6efa242f927f88ac5da518dedb2d63320 -rb7c9de054c6b7a1ca4bac9fbb0ec5d4ac06620a9 --- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision cbb246d6efa242f927f88ac5da518dedb2d63320) +++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision b7c9de054c6b7a1ca4bac9fbb0ec5d4ac06620a9) @@ -874,6 +874,10 @@ bool ok = false; GuiActionType mActionId = vMessage.actionId; Sequence mSequence = vMessage.sequence; + + // UI shall acknowledge the messages is intended for UI. + if ( ! needsAcknow(vMessage.can_id)) return ok; // false + if (mSequence < 0) { ok = true; #ifndef DISABLE_ACKNOW_CHECKIN_MESSAGE_LOG @@ -969,3 +973,27 @@ { return _needsAcknow.contains(vActionId); } + +/*! + * \brief MessageDispatcher::needsAcknow + * \details List of the CAN channels which need Acknow + * \param vCan_Id - The message CANBus id + * \return true if needs an Acknow + */ +bool MessageDispatcher::needsAcknow(Can_Id vCan_Id) +{ + bool ok = true; + switch(vCan_Id) { // list if the channels UI shall not Ack + case eChlid_HD_DG : // 0x008, ///< HD => DG + case eChlid_DG_HD : // 0x010, ///< DG => HD + case eDialin_HD : // 0x400, ///< dialin => HD + case eHD_Dialin : // 0x401, ///< HD => dialin + case eDialin_DG : // 0x402, ///< dialin => DG + case eDG_Dialin : // 0x403, ///< DG => dialin + ok = false; break; + + default: break; + } + + return ok; +}