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.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<CANFrame> &newFrames)
filteredFrames.append(newFrames[i]);
}
}
lastUpdateNumFrames = newFrames.count();
mutex.unlock();
//endResetModel();
//beginInsertRows(QModelIndex(), filteredFrames.count() + 1, filteredFrames.count() + insertedFiltered);