From 7cf678307e683dd3ab75ab218123cbefac9bf7c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20Gr=C3=B8nfeldt?= Date: Sun, 11 Nov 2018 07:25:35 +0100 Subject: [PATCH] Support for x-Trainer (http://www.x-trainer.dk) added. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Committer: Mikael Grønfeldt Signed-off-by: grauser --- src/FileIO/CsvRideFile.cpp | 64 ++++++++++++++++++++++++++++++++++++-- src/FileIO/CsvRideFile.h | 2 +- 2 files changed, 63 insertions(+), 3 deletions(-) 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;