Added a bitfield histogram to the frame details screen.
This commit is contained in:
+24
-1
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user