Index: sources/canbus/caninterface.cpp =================================================================== diff -u -r94f7349bd073a732dba5295250fc0e26f740743c -rbb8f39a014644c70b832dd2a784f62fa9f6b6106 --- sources/canbus/caninterface.cpp (.../caninterface.cpp) (revision 94f7349bd073a732dba5295250fc0e26f740743c) +++ sources/canbus/caninterface.cpp (.../caninterface.cpp) (revision bb8f39a014644c70b832dd2a784f62fa9f6b6106) @@ -25,8 +25,6 @@ // stl #include -#define FrameCount_MAX UINT64_MAX - // namespace using namespace Can; @@ -269,32 +267,37 @@ * \details count received frames up the size of the FrameCount type size * \return frame count */ -CanInterface::FrameCount CanInterface::rxCount() +FrameCount CanInterface::rxCount() { - if ( _rxFrameCount <= FrameCount_MAX ) { - ++_rxFrameCount; - } else { - _rxFrameCount = 1; - } + Types::safeIncrement(_rxFrameCount); return _rxFrameCount; + } /*! * \brief CanInterface::txCount * \details count transmitted frames up the size of the FrameCount type size * \return frame count */ -CanInterface::FrameCount CanInterface::txCount() +FrameCount CanInterface::txCount() { - if ( _txFrameCount <= FrameCount_MAX ) { - ++_txFrameCount; - } else { - _txFrameCount = 1; - } + Types::safeIncrement(_txFrameCount); return _txFrameCount; } /*! + * \brief CanInterface::erCount + * \details count errors happened + * \return error count + */ +FrameCount CanInterface::erCount() +{ + Types::safeIncrement(_erFrameCount); + return _erFrameCount; + +} + +/*! * \brief frameFlags * \details CANBUS message frame type as flags * \param vFrame - CANBUS message frame @@ -321,13 +324,15 @@ */ void CanInterface::onFrameError(QCanBusDevice::CanBusError vError) { + erCount(); switch (vError) { case QCanBusDevice::ReadError: case QCanBusDevice::WriteError: case QCanBusDevice::ConnectionError: case QCanBusDevice::ConfigurationError: case QCanBusDevice::UnknownError: _canStatus = _canDevice->errorString(); + LOG_ERROR(QString("%1 - %2").arg(_erFrameCount).arg(_canStatus)); break; default: break; @@ -343,10 +348,11 @@ * \param vFramesCount - The framesCount argument is set to the number of frames * that were written in this payload. */ -void CanInterface::onFrameWritten(qint64 /*vFramesCount*/) +void CanInterface::onFrameWritten(qint64 vFramesCount) { - //_txFrameCount = vFramesCount; - //qDebug() << "onFrameWritten::FramesCount : " << vFramesCount; + static FrameCount mFrameCount = 0; + Types::safeIncrement(mFrameCount, vFramesCount); + emit didFrameWritten(vFramesCount); } /*!