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
+17 -9
View File
@@ -6,18 +6,23 @@
SnifferItem::SnifferItem(const CANFrame& pFrame, quint32 seq):
mID(pFrame.frameId())
{
for (int i = 0; i < 8; i++) {
mNotch[i] =0;
unsigned char *data = reinterpret_cast<unsigned char *>(pFrame.payload().data());
int dataLen = pFrame.payload().length();
for (int i = 0; i < 0; i++) {
mNotch[i] = 0;
mMarker.data[i] = 0;
mMarker.dataTimestamp[i] = 0;
mCurrent.data[i] = pFrame.payload()[i];
if (i < dataLen) mCurrent.data[i] = data[i];
else mCurrent.data[i] = 0;
mCurrent.dataTimestamp[i] = seq;
}
mLastMarker = mMarker;
mCurrent.len = pFrame.payload().length();
mCurrent.len = dataLen;
/* that's dirty */
update(pFrame, seq, false);
update(pFrame, seq, false);
update(pFrame, seq, false); //anyone know why we're doing this twice?!
}
@@ -112,20 +117,23 @@ void SnifferItem::update(const CANFrame& pFrame, quint32 timeSeq, bool mute)
mLastTime = mCurrentTime;
mCurrSeqVal = timeSeq;
unsigned char *data = reinterpret_cast<unsigned char *>(pFrame.payload().data());
int dataLen = pFrame.payload().length();
/* copy new value */
for (int i = 0; i < 8; i++)
for (int i = 0; i < dataLen; i++)
{
maskedData = pFrame.payload()[i];
maskedData = data[i];
if (mute) maskedData &= ~mNotch[i];
maskedCurr = mCurrent.data[i];
if (mute) maskedCurr &= ~mNotch[i];
if (maskedCurr != maskedData)
{
mCurrent.data[i] = pFrame.payload()[i];
mCurrent.data[i] = data[i];
mCurrent.dataTimestamp[i] = timeSeq;
}
}
mCurrent.len = pFrame.payload().length();
mCurrent.len = dataLen;
mCurrentTime = pFrame.timeStamp().microSeconds();
/* update marker */