Index: sources/canbus/frameinterface.cpp =================================================================== diff -u -r4836b003eb45d7f8cb98ea4c7999d068f0beb0d2 -rf7dfb1584c0cef395be168832f809fc0f8c863d8 --- sources/canbus/frameinterface.cpp (.../frameinterface.cpp) (revision 4836b003eb45d7f8cb98ea4c7999d068f0beb0d2) +++ sources/canbus/frameinterface.cpp (.../frameinterface.cpp) (revision f7dfb1584c0cef395be168832f809fc0f8c863d8) @@ -45,9 +45,8 @@ initConnections(); - startTimer(10); + startTimer(1, Qt::PreciseTimer); // _interval - LOG_EVENT(QObject::tr("%1 Initialized").arg(metaObject()->className())); return true; @@ -148,9 +147,6 @@ */ void FrameInterface::transmitFrame(Can_Id vFrameId, const QByteArray &vData) { - qDebug() << " + " << _fc; - ++_fc; - qDebug() << " + " << _fc; QCanBusFrame mFrame; mFrame.setFrameId(vFrameId); if (vData.length() > Can::eLenCanFrame) { @@ -215,52 +211,54 @@ */ void FrameInterface::onFrameTransmit(Can_Id vCan_Id, const QByteArray &vData) { - //QMutexLocker locker(&_mutexTransmit1); - QString mtime = QTime::currentTime().toString("HH:mm:ss.zzz"); - _frameList.append(Frame(vCan_Id, vData)); - qDebug() << mtime << "1 - Send Queued #" << _frameList.count(); - - //transmitFrame(vCan_Id, vData); - - //qDebug() << " ~ " << _fc; - //if ( _waitSend ) { - // _frameList.append(Frame(vCan_Id, vData)); - // qDebug() << mtime << "2 - Send postponed #" << _frameList.count(); - //} else { - // if (_frameList.isEmpty()) { - // transmitFrame(vCan_Id, vData); - // qDebug() << mtime << "1 - Send immediate #" << _frameList.count(); - // } else { - // Frame frame = _frameList.first(); - // transmitFrame(frame.can_Id, frame.data); - // qDebug() << mtime << "3 - Send From Q #" << _frameList.count(); - // } - //} - //qDebug() << " ~ " << _fc; + appendHead(vCan_Id, vData); + qDebug() << _time << "apnd #" << _frameList.count(); } void FrameInterface::onFrameWritten(qint64 vCount) { - //QMutexLocker locker(&_mutexTransmit2); - QString mtime = QTime::currentTime().toString("HH:mm:ss.zzz"); - qDebug() << mtime << "4 - Send frame #" << _frameList.count() << vCount; - if (!_frameList.isEmpty()) _frameList.removeFirst(); - // qDebug() << " - " << _fc; - // _fc -= vCount; - // qDebug() << " - " << _fc; + _transmitted = true; + removeHead(); + qDebug() << _time << "Sent #" << _frameList.count() << vCount; } void FrameInterface::timerEvent(QTimerEvent *) { - //QMutexLocker locker(&_mutexTransmit3); - //transmitFrame(eChlid_LOWEST, QByteArray()); - if (_frameList.isEmpty()) return; - QString mtime = QTime::currentTime().toString("HH:mm:ss.zzz"); + static quint8 count = 0; + _time = QTime::currentTime().toString("HH:mm:ss.zzz"); + + + if (++count != _interval) return; + qDebug() << _time; + count = 0; + _transmitted = false; + trnsmtHead(); +} + +void FrameInterface::trnsmtHead() +{ + if (_frameList.isEmpty() ) { + transmitFrame(eChlid_LOWEST,QByteArray()); + return; + } Frame frame = _frameList.first(); transmitFrame(frame.can_Id, frame.data); - qDebug() << mtime << "2 - Send From Q #" << _frameList.count(); + qDebug() << _time << "Tsmt #" << _frameList.count(); } +void FrameInterface::removeHead() +{ + if (!_frameList.isEmpty() ) { + _frameList.removeFirst(); + } +} + +void FrameInterface::appendHead(Can_Id vCan_Id, const QByteArray &vData) +{ + Frame frame = Frame(vCan_Id, vData); + _frameList.append(frame); +} + /*! * \brief FrameInterface::onFrameReceive * \details This the slot connected to the CanInterface didFrameReceive signal. @@ -275,7 +273,7 @@ quint32 mFrameId = vFrame.frameId(); ChannelGroup channelGroup = checkChannel(mFrameId, &ok); - if (!ok){ + if (!ok) { LOG_ERROR("Unexpected Channel\r\n" + Format::toHexString(mFrameId, false, eLenChannelDigits) + " -- " + vFrame.payload().toHex(' ')); return;