From 67b7de48a671a0109be7957a99ef80a9d66a70d5 Mon Sep 17 00:00:00 2001 From: Collin Kidder Date: Wed, 10 Apr 2019 20:29:13 -0400 Subject: [PATCH] Add frame count so that overwrite mode can show it. Frame count replaces remote frame indicator when in overwrite mode. --- can_structs.h | 13 +++++++++++++ canframemodel.cpp | 9 +++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/can_structs.h b/can_structs.h index da60766..74e5b0a 100644 --- a/can_structs.h +++ b/can_structs.h @@ -16,11 +16,24 @@ public: uint32_t len; unsigned char data[8]; uint64_t timestamp; + uint32_t frameCount; //used in overwrite mode friend bool operator<(const CANFrame& l, const CANFrame& r) { return l.timestamp < r.timestamp; } + + CANFrame() + { + ID = 0; + bus = 0; + extended = false; + remote = false; + isReceived = true; + len = 0; + timestamp = 0; + frameCount = 1; + } }; class CANFltObserver diff --git a/canframemodel.cpp b/canframemodel.cpp index 4221e4f..5da2b2e 100644 --- a/canframemodel.cpp +++ b/canframemodel.cpp @@ -293,7 +293,8 @@ QVariant CANFrameModel::data(const QModelIndex &index, int role) const case Column::Extended: return QString::number(thisFrame.extended); case Column::Remote: - return QString::number(thisFrame.remote); + if (!overwriteDups) return QString::number(thisFrame.remote); + return QString::number(thisFrame.frameCount); case Column::Direction: if (thisFrame.isReceived) return QString(tr("Rx")); return QString(tr("Tx")); @@ -387,7 +388,8 @@ QVariant CANFrameModel::headerData(int section, Qt::Orientation orientation, case Column::Extended: return QString(tr("Ext")); case Column::Remote: - return QString(tr("Rem")); + if (!overwriteDups) return QString(tr("Rem")); + return QString(tr("Cnt")); case Column::Direction: return QString(tr("Dir")); case Column::Bus: @@ -433,6 +435,7 @@ void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false) if (filters[tempFrame.ID]) { if (autoRefresh) beginInsertRows(QModelIndex(), filteredFrames.count(), filteredFrames.count()); + tempFrame.frameCount = 1; filteredFrames.append(tempFrame); if (autoRefresh) endInsertRows(); } @@ -444,6 +447,7 @@ void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false) { if (frames[i].ID == tempFrame.ID) { + tempFrame.frameCount = frames[i].frameCount + 1; frames.replace(i, tempFrame); found = true; break; @@ -455,6 +459,7 @@ void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false) if (filters[tempFrame.ID]) { if (autoRefresh) beginInsertRows(QModelIndex(), filteredFrames.count(), filteredFrames.count()); + tempFrame.frameCount = 1; filteredFrames.append(tempFrame); if (autoRefresh) endInsertRows(); }