Changed frames per second display to work better in overwrite mode

This commit is contained in:
Collin Kidder
2017-08-20 18:22:50 -04:00
parent 4b73cb2e26
commit 0fd4ca9b3f
+12 -8
View File
@@ -365,6 +365,8 @@ void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false)
tempFrame = frame; tempFrame = frame;
tempFrame.timestamp -= timeOffset; tempFrame.timestamp -= timeOffset;
lastUpdateNumFrames++;
//if this ID isn't found in the filters list then add it and show it by default //if this ID isn't found in the filters list then add it and show it by default
if (!filters.contains(tempFrame.ID)) if (!filters.contains(tempFrame.ID))
{ {
@@ -382,7 +384,7 @@ void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false)
if (autoRefresh) endInsertRows(); if (autoRefresh) endInsertRows();
} }
} }
else else //yes, overwrite dups
{ {
bool found = false; bool found = false;
for (int i = 0; i < frames.count(); i++) for (int i = 0; i < frames.count(); i++)
@@ -453,7 +455,7 @@ void CANFrameModel::sendRefresh()
filteredFrames.reserve(preallocSize); filteredFrames.reserve(preallocSize);
filteredFrames.append(tempContainer); filteredFrames.append(tempContainer);
lastUpdateNumFrames = filteredFrames.count(); lastUpdateNumFrames = 0;
endResetModel(); endResetModel();
mutex.unlock(); mutex.unlock();
} }
@@ -469,19 +471,20 @@ void CANFrameModel::sendRefresh(int pos)
//have to send thousands of messages per second //have to send thousands of messages per second
int CANFrameModel::sendBulkRefresh() int CANFrameModel::sendBulkRefresh()
{ {
int num = filteredFrames.count() - lastUpdateNumFrames; //int num = filteredFrames.count() - lastUpdateNumFrames;
if (num <= 0) return 0; if (lastUpdateNumFrames <= 0) return 0;
if (num == 0 && !overwriteDups) return 0; if (lastUpdateNumFrames == 0 && !overwriteDups) return 0;
if (filteredFrames.count() == 0) return 0; if (filteredFrames.count() == 0) return 0;
lastUpdateNumFrames += num; //done this way to avoid asking for filteredFrames.count() again qDebug() << "Bulk refresh of " << lastUpdateNumFrames;
qDebug() << "Bulk refresh of " << num;
beginResetModel(); beginResetModel();
endResetModel(); endResetModel();
int num = lastUpdateNumFrames;
lastUpdateNumFrames = 0;
return num; return num;
} }
@@ -528,6 +531,7 @@ void CANFrameModel::insertFrames(const QVector<CANFrame> &newFrames)
filteredFrames.append(newFrames[i]); filteredFrames.append(newFrames[i]);
} }
} }
lastUpdateNumFrames = newFrames.count();
mutex.unlock(); mutex.unlock();
//endResetModel(); //endResetModel();
//beginInsertRows(QModelIndex(), filteredFrames.count() + 1, filteredFrames.count() + insertedFiltered); //beginInsertRows(QModelIndex(), filteredFrames.count() + 1, filteredFrames.count() + insertedFiltered);