Skip to content

Commit 365abbb

Browse files
authored
Add jump rope FIT session metrics: total_cycles, avg_cadence, max_cadence (#4232)
1 parent d3f5268 commit 365abbb

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

src/qfit.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,11 @@ void qfit::save(const QString &filename, QList<SessionLine> session, BLUETOOTH_T
162162
double watt_sum = 0;
163163
int watt_count = 0;
164164

165+
// Variables for jump rope cadence
166+
double cadence_sum = 0;
167+
int cadence_count = 0;
168+
uint8_t max_cadence = 0;
169+
165170
for (int i = firstRealIndex; i < session.length(); i++) {
166171
if (session.at(i).coordinate.isValid()) {
167172
gps_data = true;
@@ -204,6 +209,15 @@ void qfit::save(const QString &filename, QList<SessionLine> session, BLUETOOTH_T
204209
watt_sum += session.at(i).watt;
205210
watt_count++;
206211
}
212+
213+
// Collect cadence data for jump rope
214+
if (type == JUMPROPE && session.at(i).cadence > 0) {
215+
cadence_sum += session.at(i).cadence;
216+
cadence_count++;
217+
if (session.at(i).cadence > max_cadence) {
218+
max_cadence = session.at(i).cadence;
219+
}
220+
}
207221
}
208222

209223
if (speed_count > 0) {
@@ -448,6 +462,15 @@ void qfit::save(const QString &filename, QList<SessionLine> session, BLUETOOTH_T
448462
sessionMesg.SetSubSport(FIT_SUB_SPORT_GENERIC);
449463
if (session.last().stepCount)
450464
sessionMesg.SetJumpCount(session.last().stepCount);
465+
// Total cycles
466+
if (session.last().stepCount)
467+
sessionMesg.SetTotalCycles(session.last().stepCount);
468+
// Avg cadence (jump rate)
469+
if (cadence_count > 0)
470+
sessionMesg.SetAvgCadence((uint8_t)(cadence_sum / cadence_count));
471+
// Max cadence (max jump rate)
472+
if (max_cadence > 0)
473+
sessionMesg.SetMaxCadence(max_cadence);
451474
} else {
452475

453476
sessionMesg.SetSport(FIT_SPORT_CYCLING);

0 commit comments

Comments
 (0)