Index: sources/canbus/caninterface.cpp =================================================================== diff -u -r227f28b202f81ab3dd04a81868697025ccab6220 -re58b907a69d4ca7daa77d69791593b886d1b80e8 --- sources/canbus/caninterface.cpp (.../caninterface.cpp) (revision 227f28b202f81ab3dd04a81868697025ccab6220) +++ sources/canbus/caninterface.cpp (.../caninterface.cpp) (revision e58b907a69d4ca7daa77d69791593b886d1b80e8) @@ -29,7 +29,10 @@ * \brief Caninterface Constructor * \param parent object */ -CanInterface::CanInterface(QObject *parent) : QObject(parent) { } +CanInterface::CanInterface(QObject *parent) : QObject(parent) { + FrameCount _rxFrameCountMax = pow(2, 8 * sizeof(FrameCount)) - 1;; + FrameCount _txFrameCountMax = pow(2, 8 * sizeof(FrameCount)) - 1;; +} /*! * \brief CanInterface Initialization @@ -231,7 +234,7 @@ * for debugging purposes. * \param vFrame - The CANBUS frame to be sent out */ -void CanInterface::consoleOut(const QCanBusFrame &vFrame) +void CanInterface::consoleOut(const QCanBusFrame &vFrame, QString vFrameCount) { if ( ! _enableConsoleOut ) return; @@ -248,10 +251,40 @@ else { view = vFrame.payload().toHex('.').replace(QByteArray("a5"),QByteArray("\033[1;33mA5\033[0m")); } - fprintf(stderr, "%s %s %i %s\n", time.toLatin1().constData(), flags.toLatin1().constData(), vFrame.frameId(), view.toLatin1().constData()); + fprintf(stderr, "%s %s %s %i %s\n", vFrameCount.toLatin1(), time.toLatin1().constData(), flags.toLatin1().constData(), vFrame.frameId(), view.toLatin1().constData()); } /*! + * \brief CanInterface::rxCount + * \details count received frames up the size of the FrameCount type size + * \return frame count + */ +CanInterface::FrameCount CanInterface::rxCount() +{ + if ( _rxFrameCount <= _rxFrameCountMax) { + ++_rxFrameCount; + } else { + _rxFrameCount = 1; + } + return _rxFrameCount; +} + +/*! + * \brief CanInterface::txCount + * \details count transmitted frames up the size of the FrameCount type size + * \return frame count + */ +CanInterface::FrameCount CanInterface::txCount() +{ + if ( _txFrameCount <= _rxFrameCountMax) { + ++_txFrameCount; + } else { + _txFrameCount = 1; + } + return _txFrameCount; +} + +/*! * \brief frameFlags * \details CANBUS message frame type as flags * \param vFrame - CANBUS message frame @@ -315,10 +348,10 @@ if (!_canDevice) return; while (_canDevice->framesAvailable()) { - //int i = _canDevice->framesAvailable(); const QCanBusFrame frame = _canDevice->readFrame(); - //qDebug() << "frame: #" << i << frame.toString(); - consoleOut(frame); + rxCount(); + if ( _enableConsoleOut ) + consoleOut(frame, QString("Rx:%1").arg(_rxFrameCount)); emit didFrameReceive(frame); } } @@ -332,6 +365,8 @@ void CanInterface::onFrameTransmit(const QCanBusFrame &vFrame) { bool ok = transmit(vFrame); - consoleOut(vFrame); + rxCount(); + if ( _enableConsoleOut ) + consoleOut(vFrame, QString("Tx:%1").arg(_txFrameCount)); emit didFrameTransmit(ok); }