diff --git a/src/FileIO/CsvRideFile.cpp b/src/FileIO/CsvRideFile.cpp index 2181149d9..4aebcac75 100644 --- a/src/FileIO/CsvRideFile.cpp +++ b/src/FileIO/CsvRideFile.cpp @@ -164,6 +164,19 @@ RideFile *CsvFileReader::openRideFile(QFile &file, QStringList &errors, QListsetDeviceType("xtrainCSV"); + rideFile->setFileFormat("xtrainCSV"); + unitsHeader = 2; + xTrainVersion = line.section( ',', 1, 1 ).toInt(); + + ++lineno; + continue; + } + + else if(motoActvCSV.indexIn(line) != -1) { csvType = motoactv; rideFile->setDeviceType("MotoACTV"); @@ -755,6 +783,26 @@ RideFile *CsvFileReader::openRideFile(QFile &file, QStringList &errors, QListsetStartTime(datetime); } else { + // Could be Tryyyyddmmhhmm.csv (case insensitive) + // X-trainer file + rideTime.setPattern("Tr(\\d\\d\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)[^\\.]*\\.csv$"); + if (rideTime.indexIn(file.fileName()) >= 0) { + QDateTime datetime(QDate(rideTime.cap(1).toInt(), + rideTime.cap(2).toInt(), + rideTime.cap(3).toInt()), + QTime(rideTime.cap(4).toInt(), + rideTime.cap(5).toInt())); + rideFile->setStartTime(datetime); + } else { + // is it in poweragent format "name yyyy-mm-dd hh-mm-ss.csv" rideTime.setPattern("(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d) (\\d\\d)-(\\d\\d)-(\\d\\d)\\.csv$"); if (rideTime.indexIn(file.fileName()) >=0) { @@ -1203,7 +1263,7 @@ RideFile *CsvFileReader::openRideFile(QFile &file, QStringList &errors, QListsetTag("Sport","Row"); if (trainSeries != NULL) { diff --git a/src/FileIO/CsvRideFile.h b/src/FileIO/CsvRideFile.h index d0efe0f86..4ea1cb901 100644 --- a/src/FileIO/CsvRideFile.h +++ b/src/FileIO/CsvRideFile.h @@ -23,7 +23,7 @@ #include "RideFile.h" struct CsvFileReader : public RideFileReader { - enum csvtypes { generic, gc, powertap, joule, ergomo, motoactv, ibike, moxy, freemotion, peripedal, cpexport, bsx, rowpro, wprime, wahooMA, rp3, opendata }; + enum csvtypes { generic, gc, powertap, joule, ergomo, motoactv, ibike, xtrain, moxy, freemotion, peripedal, cpexport, bsx, rowpro, wprime, wahooMA, rp3, opendata }; typedef enum csvtypes CsvType; virtual RideFile *openRideFile(QFile &file, QStringList &errors, QList* = 0) const;