Added a bitfield histogram to the frame details screen.

This commit is contained in:
Collin Kidder
2015-06-04 20:31:14 -04:00
parent 498d07fbe9
commit 3bef1950b1
+24 -1
View File
@@ -81,6 +81,7 @@ void FrameInfoWindow::updateDetailsWindow(QString newID)
int minData[8]; int minData[8];
int maxData[8]; int maxData[8];
int dataHistogram[256][8]; int dataHistogram[256][8];
int bitfieldHistogram[64];
QTreeWidgetItem *baseNode, *dataBase, *histBase, *numBase, *tempItem; QTreeWidgetItem *baseNode, *dataBase, *histBase, *numBase, *tempItem;
targettedID = newID.toInt(NULL, 16); targettedID = newID.toInt(NULL, 16);
@@ -160,6 +161,7 @@ void FrameInfoWindow::updateDetailsWindow(QString newID)
maxData[i] = -1; maxData[i] = -1;
for (int k = 0; k < 256; k++) dataHistogram[k][i] = 0; for (int k = 0; k < 256; k++) dataHistogram[k][i] = 0;
} }
for (int j = 0; j < 64; j++) bitfieldHistogram[j] = 0;
//then find all data points //then find all data points
for (int j = 0; j < frameCache.count(); j++) for (int j = 0; j < frameCache.count(); j++)
@@ -174,6 +176,14 @@ void FrameInfoWindow::updateDetailsWindow(QString newID)
if (minData[c] > dat) minData[c] = dat; if (minData[c] > dat) minData[c] = dat;
if (maxData[c] < dat) maxData[c] = dat; if (maxData[c] < dat) maxData[c] = dat;
dataHistogram[dat][c]++; //add one to count for this dataHistogram[dat][c]++; //add one to count for this
for (int l = 0; l < 8; l++)
{
int bit = dat & (1 << l);
if (bit == (1 << l))
{
bitfieldHistogram[c * 8 + l]++;
}
}
} }
} }
@@ -213,8 +223,21 @@ void FrameInfoWindow::updateDetailsWindow(QString newID)
tempItem->setText(0, QString::number(d) + "/0x" + QString::number(d, 16) +": " + QString::number(dataHistogram[d][c])); tempItem->setText(0, QString::number(d) + "/0x" + QString::number(d, 16) +": " + QString::number(dataHistogram[d][c]));
histBase->addChild(tempItem); histBase->addChild(tempItem);
} }
} }
} }
dataBase = new QTreeWidgetItem();
dataBase->setText(0, tr("Bitfield Histogram"));
for (int c = 0; c < 64; c++)
{
tempItem = new QTreeWidgetItem();
tempItem->setText(0, QString::number(c) + " (" + QString::number(c / 8) + "-"
+ QString::number(c % 8) + ") :" + QString::number(bitfieldHistogram[c]));
dataBase->addChild(tempItem);
}
baseNode->addChild(dataBase);
ui->treeDetails->insertTopLevelItem(0, baseNode); ui->treeDetails->insertTopLevelItem(0, baseNode);
} }
else else