Converted more code to be easier to generalize to larger CAN payloads

for CAN-FD. Improved some code to be faster. Fixed up some compile
time warnings.
This commit is contained in:
Collin Kidder
2019-12-15 15:02:06 -05:00
parent ef24036d1c
commit 8beb0e31a0
28 changed files with 589 additions and 435 deletions
+18 -9
View File
@@ -138,7 +138,7 @@ FrameInfoWindow::~FrameInfoWindow()
void FrameInfoWindow::closeEvent(QCloseEvent *event)
{
Q_UNUSED(event);
Q_UNUSED(event)
writeSettings();
}
@@ -260,10 +260,10 @@ void FrameInfoWindow::updateDetailsWindow(QString newID)
uint8_t referenceBits[8];
QTreeWidgetItem *baseNode, *dataBase, *histBase, *tempItem;
targettedID = static_cast<int>(Utility::ParseStringToNum(newID));
if (modelFrames->count() == 0) return;
targettedID = static_cast<int>(Utility::ParseStringToNum(newID));
qDebug() << "Started update details window with id " << targettedID;
avgInterval = 0;
@@ -278,6 +278,9 @@ void FrameInfoWindow::updateDetailsWindow(QString newID)
if (thisFrame.frameId() == static_cast<uint32_t>(targettedID)) frameCache.append(thisFrame);
}
unsigned char *data = reinterpret_cast<unsigned char *>(frameCache.at(0).payload().data());
int dataLen = frameCache.at(0).payload().length();
ui->treeDetails->clear();
if (frameCache.count() == 0) return;
@@ -364,10 +367,13 @@ void FrameInfoWindow::updateDetailsWindow(QString newID)
}
for (int j = 0; j < 64; j++) bitfieldHistogram[j] = 0;
for (int c = 0; c < 8; c++)
data = reinterpret_cast<unsigned char *>(frameCache.at(0).payload().data());
dataLen = frameCache.at(0).payload().length();
for (int c = 0; c < dataLen; c++)
{
changedBits[c] = 0;
referenceBits[c] = frameCache.at(0).payload()[c];
referenceBits[c] = data[c];
//qDebug() << referenceBits[c];
}
@@ -377,10 +383,13 @@ void FrameInfoWindow::updateDetailsWindow(QString newID)
//then find all data points
for (int j = 0; j < frameCache.count(); j++)
{
data = reinterpret_cast<unsigned char *>(frameCache.at(j).payload().data());
dataLen = frameCache.at(j).payload().length();
byteGraphX.append(j);
for (uint32_t bytcnt = 0; bytcnt < frameCache[j].payload().length(); bytcnt++)
for (uint32_t bytcnt = 0; bytcnt < dataLen; bytcnt++)
{
byteGraphY[bytcnt].append(frameCache[j].payload()[bytcnt]);
byteGraphY[bytcnt].append(data[bytcnt]);
}
if (j != 0)
@@ -398,12 +407,12 @@ void FrameInfoWindow::updateDetailsWindow(QString newID)
if (thisInterval < minInterval) minInterval = thisInterval;
avgInterval += thisInterval;
}
thisLen = frameCache.at(j).payload().length();
thisLen = dataLen;
if (thisLen > maxLen) maxLen = thisLen;
if (thisLen < minLen) minLen = thisLen;
for (int c = 0; c < thisLen; c++)
{
unsigned char dat = frameCache.at(j).payload()[c];
unsigned char dat = data[c];
if (minData[c] > dat) minData[c] = dat;
if (maxData[c] < dat) maxData[c] = dat;
dataHistogram[dat][c]++; //add one to count for this