Update CANalyzer ASC loader to accept CANFD messages as well
This commit is contained in:
+11
-7
@@ -1680,12 +1680,16 @@ bool FrameFileIO::isCanalyzerASC(QString filename)
|
|||||||
//0.001371 CANFD 1 Rx 171 A0066_Unknown 0 0 8 8 00 00 07 76 23 00 00 00 230199 119 220000 62e7 46500250 460a0250 20011736 20010205
|
//0.001371 CANFD 1 Rx 171 A0066_Unknown 0 0 8 8 00 00 07 76 23 00 00 00 230199 119 220000 62e7 46500250 460a0250 20011736 20010205
|
||||||
//Version 16.0.0
|
//Version 16.0.0
|
||||||
//0.008600 1 358 Rx d 8 04 03 50 01 F0 40 54 2C Length = 233910 BitCount = 121 ID = 856
|
//0.008600 1 358 Rx d 8 04 03 50 01 F0 40 54 2C Length = 233910 BitCount = 121 ID = 856
|
||||||
|
//Version 17.3.0
|
||||||
|
//0.001684 CANFD 1 Rx 65b 1 0 d 32 f1 01 00 00 50 00 00 00 00 00 00 00 00 00 00 40 00 88 f5 77 17 78 00 00 c0 03 00 00 00 00 00 00 213797 356 303000 11729 46500250 4b140250 20011736 2001040d
|
||||||
|
|
||||||
//Time bus id dir ? len databytes (Ver 8.0)
|
//Time bus id dir ? len databytes (Ver 8.0)
|
||||||
//Time type bus dir ID ? ? length length bytes then many values of unknown type (ver 8.1)
|
//Time bus id dir ? len databytes (addl info) (ver 16.0)
|
||||||
//Time type bus dir ID SignalName ? ? length length bytes then many values of unknown type (ver 9.0)
|
//Time type bus dir ID ? ? length length (bytes) (many values of unknown type) (ver 8.1)
|
||||||
//Time bus id dir ? len databytes additional crap (ver 16.0)
|
//Time type bus dir ID SignalName ? ? length length bytes (then many values of unknown type)(ver 9.0)
|
||||||
//So it seems the file format is not entirely different based on version but rather on some other
|
//Time Type Bus Dir ID ? ? (length) (Real Length) (bytes) (many values of unknown type) (Ver 17.3)
|
||||||
//settings... Fun!
|
//0 1 2 3 4 5 6 7 8 9 10
|
||||||
|
//This seems like a rather eclectic mix. It's almost arbitrary!
|
||||||
bool FrameFileIO::loadCanalyzerASC(QString filename, QVector<CANFrame>* frames)
|
bool FrameFileIO::loadCanalyzerASC(QString filename, QVector<CANFrame>* frames)
|
||||||
{
|
{
|
||||||
QFile *inFile = new QFile(filename);
|
QFile *inFile = new QFile(filename);
|
||||||
@@ -1736,7 +1740,7 @@ bool FrameFileIO::loadCanalyzerASC(QString filename, QVector<CANFrame>* frames)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (inHeader) continue;
|
if (inHeader) continue;
|
||||||
if (line.length() > 2)
|
if (line.length() > 2 && !line.startsWith("//"))
|
||||||
{
|
{
|
||||||
tokens = line.simplified().split(' ');
|
tokens = line.simplified().split(' ');
|
||||||
|
|
||||||
@@ -1766,7 +1770,7 @@ bool FrameFileIO::loadCanalyzerASC(QString filename, QVector<CANFrame>* frames)
|
|||||||
int payloadLen = tokens[8].toInt();
|
int payloadLen = tokens[8].toInt();
|
||||||
qDebug() << "PayloadLen: " << payloadLen << " Tokens: " << tokens;
|
qDebug() << "PayloadLen: " << payloadLen << " Tokens: " << tokens;
|
||||||
QByteArray bytes(payloadLen, 0);
|
QByteArray bytes(payloadLen, 0);
|
||||||
if (payloadLen > 8)
|
if (payloadLen > 64)
|
||||||
{
|
{
|
||||||
qDebug() << "Payload length too long. Original line: " << line;
|
qDebug() << "Payload length too long. Original line: " << line;
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user