Index: sources/canbus/MessageDispatcher.cpp =================================================================== diff -u -rebc82b5efe26c1081606fab06a1c99bb4f9c0098 -r73d6d02c19467735e92f7c451ca5d3b47a2a90e4 --- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision ebc82b5efe26c1081606fab06a1c99bb4f9c0098) +++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision 73d6d02c19467735e92f7c451ca5d3b47a2a90e4) @@ -754,7 +754,7 @@ * \param vActionId - The ActionID of the message * \param vData - The data of the Message */ -void MessageDispatcher::actionTransmit(GuiActionType vActionId, const QVariantList &vData, Sequence vSequence) +void MessageDispatcher::actionTransmit(GuiActionType vActionId, const QVariantList &vData, Sequence vSequence, Can_Id vCanId) { txCount(); if (vSequence == 0) { // initialize @@ -765,7 +765,7 @@ } QByteArray mData; - Can_Id canid; + Can_Id canid = vCanId; if (! _interpreter.interpretMessage(vActionId, vData, mData, canid)) { LOG_DEBUG(QString("Incorrect Message, can't be interpreted, %1").arg(Format::toHexString(vActionId))); // TODO : LogInfo Improvement return; @@ -837,15 +837,15 @@ return true; } -bool MessageDispatcher::checkAcknowReceived(const Message &vMessage, const char *src) +bool MessageDispatcher::checkAcknowReceived(const Message &vMessage, const QString &vSrcText) { GuiActionType mActionId = vMessage.actionId; Sequence mSequence = vMessage.sequence; bool ok = false; if ( mActionId == GuiActionType::ID_Acknow ) { ok = true; #ifndef DISABLE_ACKNOW_CHECKIN_MESSAGE_LOG - LOG_EVENT(tr("%1,Ack Bak, Sq:%2").arg(src).arg(mSequence)); + LOG_EVENT(tr("%1,Ack Bak, Sq:%2").arg(vSrcText).arg(mSequence)); #endif #ifdef DEBUG_ACKBACK_HD_TO_UI qDebug() << tr(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HD AckBak : %1 %2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ").arg(mSequence).arg(vMessage.actionId); @@ -855,23 +855,25 @@ return ok; } -bool MessageDispatcher::checkAcknowTransmit(const Message &vMessage, const char *src) +bool MessageDispatcher::checkAcknowTransmit(const Message &vMessage, const QString &vSrcText) { bool ok = false; GuiActionType mActionId = vMessage.actionId; Sequence mSequence = vMessage.sequence; if (mSequence < 0) { ok = true; #ifndef DISABLE_ACKNOW_CHECKIN_MESSAGE_LOG - LOG_EVENT(tr("%1,Ack Req, Sq:%2, ID:%3").arg(src).arg(mSequence).arg(Format::toHexString(mActionId))); + LOG_EVENT(tr("%1,Ack Req, Sq:%2, ID:%3").arg(vSrcText).arg(mSequence).arg(Format::toHexString(mActionId))); #endif #ifdef DEBUG_ACKBACK_HD_TO_UI qDebug() << tr(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HD AckReq : %1 %2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ").arg(mSequence).arg(vMessage.actionId); #endif // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ UI AckBak is immediately handled at the same place. - actionTransmit(GuiActionType::ID_Acknow, {}, -mSequence); + QString dstText; + Can_Id dstID = MessageInterpreter::identifyDestination(vMessage.can_id, &dstText); + actionTransmit(GuiActionType::ID_Acknow, {}, -mSequence, dstID); #ifndef DISABLE_ACKNOW_CHECKIN_MESSAGE_LOG - LOG_EVENT(tr("UI,Ack Bak, Sq:%1").arg(-mSequence)); + LOG_EVENT(tr("UI,Ack Bak, Sq:%1, Dst:%2").arg(-mSequence).arg(dstText)); #endif #ifdef DEBUG_ACKBACK_HD_TO_UI qDebug() << tr(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ UI AckBak : %1 %2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ").arg(-mSequence).arg(vMessage.actionId); @@ -892,8 +894,8 @@ { bool ok = false; QVariantList mData; - Can_Source srcID = MessageInterpreter::identifySource(vMessage.can_id); - const char *srcText = (srcID == Can_Source::eCan_HD) ? "HD" : ((srcID == Can_Source::eCan_DG) ? "DG" : "XX"); + QString srcText; + MessageInterpreter::identifySource(vMessage.can_id, &srcText); if ( ! checkAcknowReceived(vMessage, srcText) ) { // check if the message was an acknowledge. checkAcknowTransmit(vMessage, srcText); // then if needs acknow send it immediately. }