1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2024-10-06 06:43:22 +02:00

Do not show the session end as (a single) lap

This commit is contained in:
Martin Tůma 2024-09-05 07:33:05 +02:00
parent 0b6daad28f
commit 96044fd8da
2 changed files with 17 additions and 4 deletions

View File

@ -238,6 +238,7 @@ bool FITParser::parseData(CTX &ctx, const MessageDefinition *def)
bool valid;
Event event;
Waypoint waypoint;
int trigger = -1;
if (!def->fields.size() && !def->devFields.size()) {
_errorString = "Undefined data message";
@ -359,8 +360,8 @@ bool FITParser::parseData(CTX &ctx, const MessageDefinition *def)
case 7:
waypoint.setDescription(Format::timeSpan(val.toUInt() / 1000));
break;
case 254:
waypoint.setName("#" + QString::number(val.toUInt()));
case 24:
trigger = val.toInt();
break;
}
}
@ -384,7 +385,7 @@ bool FITParser::parseData(CTX &ctx, const MessageDefinition *def)
ctx.segment.append(ctx.trackpoint);
ctx.trackpoint = Trackpoint();
}
} else if (def->globalId == COURSEPOINT || def->globalId == LAP) {
} else if (def->globalId == COURSEPOINT) {
if (waypoint.coordinates().isValid())
ctx.waypoints.append(waypoint);
} else if (def->globalId == LOCATION) {
@ -393,6 +394,17 @@ bool FITParser::parseData(CTX &ctx, const MessageDefinition *def)
+ 631065600, Qt::UTC));
ctx.waypoints.append(waypoint);
}
} else if (def->globalId == LAP && trigger >= 0) {
if (waypoint.coordinates().isValid()) {
if (trigger == 7)
waypoint.setName("Finish");
else
waypoint.setName("Lap " + QString::number(++ctx.laps));
waypoint.setTimestamp(QDateTime::fromSecsSinceEpoch(ctx.timestamp
+ 631065600, Qt::UTC));
if (trigger != 7 || ctx.laps > 1)
ctx.waypoints.append(waypoint);
}
}
return true;

View File

@ -52,7 +52,7 @@ private:
struct CTX {
CTX(QFile *file, QVector<Waypoint> &waypoints)
: file(file), waypoints(waypoints), len(0), endian(0), timestamp(0),
ratio(NAN) {}
ratio(NAN), laps(0) {}
QFile *file;
QVector<Waypoint> &waypoints;
@ -63,6 +63,7 @@ private:
qreal ratio;
Trackpoint trackpoint;
SegmentData segment;
unsigned laps;
};
bool readData(QFile *file, char *data, size_t size);