From 0fd4ca9b3fce529270b1b713c746fef956bb2ac0 Mon Sep 17 00:00:00 2001 From: Collin Kidder Date: Sun, 20 Aug 2017 18:22:50 -0400 Subject: [PATCH] Changed frames per second display to work better in overwrite mode --- canframemodel.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/canframemodel.cpp b/canframemodel.cpp index d8fbf94..f146066 100644 --- a/canframemodel.cpp +++ b/canframemodel.cpp @@ -365,6 +365,8 @@ void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false) tempFrame = frame; tempFrame.timestamp -= timeOffset; + lastUpdateNumFrames++; + //if this ID isn't found in the filters list then add it and show it by default if (!filters.contains(tempFrame.ID)) { @@ -382,7 +384,7 @@ void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false) if (autoRefresh) endInsertRows(); } } - else + else //yes, overwrite dups { bool found = false; for (int i = 0; i < frames.count(); i++) @@ -453,7 +455,7 @@ void CANFrameModel::sendRefresh() filteredFrames.reserve(preallocSize); filteredFrames.append(tempContainer); - lastUpdateNumFrames = filteredFrames.count(); + lastUpdateNumFrames = 0; endResetModel(); mutex.unlock(); } @@ -469,19 +471,20 @@ void CANFrameModel::sendRefresh(int pos) //have to send thousands of messages per second int CANFrameModel::sendBulkRefresh() { - int num = filteredFrames.count() - lastUpdateNumFrames; - if (num <= 0) return 0; + //int num = filteredFrames.count() - lastUpdateNumFrames; + if (lastUpdateNumFrames <= 0) return 0; - if (num == 0 && !overwriteDups) return 0; + if (lastUpdateNumFrames == 0 && !overwriteDups) return 0; if (filteredFrames.count() == 0) return 0; - lastUpdateNumFrames += num; //done this way to avoid asking for filteredFrames.count() again - - qDebug() << "Bulk refresh of " << num; + qDebug() << "Bulk refresh of " << lastUpdateNumFrames; beginResetModel(); endResetModel(); + int num = lastUpdateNumFrames; + lastUpdateNumFrames = 0; + return num; } @@ -528,6 +531,7 @@ void CANFrameModel::insertFrames(const QVector &newFrames) filteredFrames.append(newFrames[i]); } } + lastUpdateNumFrames = newFrames.count(); mutex.unlock(); //endResetModel(); //beginInsertRows(QModelIndex(), filteredFrames.count() + 1, filteredFrames.count() + insertedFiltered);