diff --git a/connections/canconmanager.cpp b/connections/canconmanager.cpp index af37356..e9c3736 100644 --- a/connections/canconmanager.cpp +++ b/connections/canconmanager.cpp @@ -216,14 +216,11 @@ bool CANConManager::addTargettedFrame(int pBusId, uint32_t ID, uint32_t mask, QO foreach (CANConnection* conn, mConns) { if (pBusId == -1) conn->addTargettedFrame(pBusId, ID, mask, receiver); - else + else if (pBusId < (uint32_t)(busBase + conn->getNumBuses())) { - tempBusVal = pBusId >> busBase; - tempBusVal &= ((1 << conn->getNumBuses()) - 1); - if (tempBusVal) { - qDebug() << "Forwarding targetted frame setting to a connection object"; - conn->addTargettedFrame(tempBusVal, ID, mask, receiver); - } + qDebug() << "Forwarding targetted frame setting to a connection object"; + conn->addTargettedFrame(pBusId - busBase, ID, mask, receiver); + } busBase += conn->getNumBuses(); } @@ -238,11 +235,11 @@ bool CANConManager::removeTargettedFrame(int pBusId, uint32_t ID, uint32_t mask, foreach (CANConnection* conn, mConns) { if (pBusId == -1) conn->removeTargettedFrame(pBusId, ID, mask, receiver); - else + else if (pBusId < (uint32_t)(busBase + conn->getNumBuses())) { - tempBusVal = pBusId >> busBase; - tempBusVal &= ((1 << conn->getNumBuses()) - 1); - if (tempBusVal) conn->removeTargettedFrame(tempBusVal, ID, mask, receiver); + qDebug() << "Forwarding targetted frame setting to a connection object"; + conn->removeTargettedFrame(pBusId - busBase, ID, mask, receiver); + } busBase += conn->getNumBuses(); } diff --git a/connections/canconnection.cpp b/connections/canconnection.cpp index 6ea055f..43aebc4 100644 --- a/connections/canconnection.cpp +++ b/connections/canconnection.cpp @@ -285,20 +285,15 @@ bool CANConnection::addTargettedFrame(int pBusId, uint32_t ID, uint32_t mask, QO } */ /* sanity checks */ - if(pBusId < -1 || pBusId >= (1 << getNumBuses())) + if(pBusId < -1 || pBusId >= getNumBuses()) return false; - for (int i = 0; i < getNumBuses(); i++) - { - if ( (pBusId == -1) || (pBusId && (1 << i)) ) { - qDebug() << "Connection is registering a new targetted frame filter, local bus " << i; - CANFlt target; - target.id = ID; - target.mask = mask; - target.observer = receiver; - mBusData_p[i].mTargettedFrames.append(target); - } - } + qDebug() << "Connection is registering a new targetted frame filter, local bus " << pBusId; + CANFlt target; + target.id = ID; + target.mask = mask; + target.observer = receiver; + mBusData_p[pBusId].mTargettedFrames.append(target); return true; } @@ -319,20 +314,14 @@ bool CANConnection::removeTargettedFrame(int pBusId, uint32_t ID, uint32_t mask, } */ /* sanity checks */ - if(pBusId < -1 || pBusId >= (1 << getNumBuses())) + if(pBusId < -1 || pBusId >= getNumBuses()) return false; - for (int i = 0; i < getNumBuses(); i++) - { - if (pBusId == -1 || (pBusId && (1 << i))) - { - CANFlt target; - target.id = ID; - target.mask = mask; - target.observer = receiver; - mBusData_p[i].mTargettedFrames.removeAll(target); - } - } + CANFlt target; + target.id = ID; + target.mask = mask; + target.observer = receiver; + mBusData_p[pBusId].mTargettedFrames.removeAll(target); return true; }