diff --git a/framefileio.cpp b/framefileio.cpp index 89163f0..3971c5b 100644 --- a/framefileio.cpp +++ b/framefileio.cpp @@ -1978,8 +1978,9 @@ bool FrameFileIO::loadCabanaFile(QString filename, QVector* frames) QFile *inFile = new QFile(filename); CANFrame thisFrame; QByteArray line; - int fileVersion = 1; - long long timeStamp = Utility::GetTimeMS(); + bool timeStampBaseSet = false; + uint64_t timeStampBase = 0; + uint64_t lastTimeStamp = 0; int lineCounter = 0; bool foundErrors = false; thisFrame.remote = false; @@ -2006,15 +2007,30 @@ bool FrameFileIO::loadCabanaFile(QString filename, QVector* frames) QList tokens = line.split(','); if (tokens.length() >= 3) { - if (tokens[0].length() > 3) + if (tokens[0].length() > 1) { - long long temp = tokens[0].toLongLong(); - thisFrame.timestamp = temp; + double temp = tokens[0].toDouble(); + temp = temp * 1000000; + + if(!timeStampBaseSet) + { + timeStampBase = (uint64_t)(temp); + timeStampBaseSet = true; + } + + if(timeStampBaseSet) { + thisFrame.timestamp = ((uint64_t)(temp) - timeStampBase); + lastTimeStamp = thisFrame.timestamp; + } else { + thisFrame.timestamp = (lastTimeStamp + 1); + lastTimeStamp = thisFrame.timestamp; + } + } else { - timeStamp += 5; - thisFrame.timestamp = timeStamp; + thisFrame.timestamp = (lastTimeStamp + 1); + lastTimeStamp = thisFrame.timestamp; } thisFrame.ID = tokens[1].toInt(); @@ -2073,10 +2089,14 @@ bool FrameFileIO::saveCabanaFile(QString filename, const QVector* fram lineCounter = 0; } - outFile->write(QString::number(frames->at(c).timestamp).toUtf8()); + double tempTimeStamp = frames->at(c).timestamp; + tempTimeStamp /= 1000000; + + outFile->write(QString::number(tempTimeStamp, 'f').toUtf8()); + outFile->write(".0"); outFile->putChar(44); - outFile->write(QString::number(frames->at(c).ID, 10).toUpper().rightJustified(8, '0').toUtf8()); + outFile->write(QString::number(frames->at(c).ID, 10).toUpper().toUtf8()); outFile->putChar(44); outFile->write(QString::number(frames->at(c).bus).toUtf8()); @@ -2089,7 +2109,6 @@ bool FrameFileIO::saveCabanaFile(QString filename, const QVector* fram else outFile->write("00"); } - outFile->putChar(44); outFile->write("\n"); diff --git a/framefileio.h b/framefileio.h index ed7e8ef..c60e1c7 100644 --- a/framefileio.h +++ b/framefileio.h @@ -45,7 +45,7 @@ public: static bool loadCanalyzerASC(QString, QVector*); static bool loadCanalyzerBLF(QString, QVector*); static bool loadCANHackerFile(QString filename, QVector* frames); - static bool loadCabanaFile(QSting filename, QVector* frames); + static bool loadCabanaFile(QString filename, QVector* frames); static bool saveCRTDFile(QString, const QVector*); static bool saveNativeCSVFile(QString, const QVector*); static bool saveGenericCSVFile(QString, const QVector*); @@ -56,7 +56,7 @@ public: static bool saveCANDOFile(QString, const QVector*); static bool saveVehicleSpyFile(QString, const QVector*); static bool saveCanDumpFile(QString filename, const QVector * frames); - static bool saveCabanaFile(QSting filename, const QVector* frames); + static bool saveCabanaFile(QString filename, const QVector* frames); static bool openContinuousNative(); static bool closeContinuousNative(); static bool writeContinuousNative(const QVector*, int);