From 04cb57bda3bc780bded3586df73fffef11dfd287 Mon Sep 17 00:00:00 2001 From: Alejandro Martinez Date: Wed, 20 Nov 2024 19:29:48 -0300 Subject: [PATCH] Fix Lap Swims - Ignore lengths shorter than Min Rest This adds a minimum rest parameter to Fix Lap Swims DP to ignore lengths shorter than a configured minimum value, the corresponding time is added to the next length where it is assumed to belong. Minimum rest length default value is 3 secs, but it can be changed in DP config. Test files contributed by Jean Div at the users forum. Fixes #4571 --- src/Core/Settings.h | 1 + src/FileIO/FixLapSwim.cpp | 38 +++++++++++++++++- ...2024-10-14-070422-Pool Swim-BingiWatch.fit | Bin 0 -> 71489 bytes ...2024-10-20-104352-Pool Swim-BingiWatch.fit | Bin 0 -> 39552 bytes 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 test/swims/2024-10-14-070422-Pool Swim-BingiWatch.fit create mode 100644 test/swims/2024-10-20-104352-Pool Swim-BingiWatch.fit diff --git a/src/Core/Settings.h b/src/Core/Settings.h index 29cc761e6..d9c0459e8 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -198,6 +198,7 @@ #define GC_CAD2SMO2 "dataprocess/fixmoxy/cad2smo2" #define GC_SPD2THB "dataprocess/fixmoxy/spd2thb" #define GC_DPFLS_PL "dataprocess/fixlapswim/pool_length" +#define GC_DPFLS_MR "dataprocess/fixlapswim/min_rest" #define GC_RR_MAX "dataprocess/filterhrv/rr_max" // #define GC_RR_MIN "dataprocess/filterhrv/rr_min" // #define GC_RR_FILT "dataprocess/filterhrv/rr_filt" // diff --git a/src/FileIO/FixLapSwim.cpp b/src/FileIO/FixLapSwim.cpp index 95da0207c..4adbccb1c 100644 --- a/src/FileIO/FixLapSwim.cpp +++ b/src/FileIO/FixLapSwim.cpp @@ -38,6 +38,8 @@ class FixLapSwimConfig : public DataProcessorConfig QHBoxLayout *layout; QLabel *plLabel; QSpinBox *pl; + QLabel *minRestLabel; + QSpinBox *minRest; public: FixLapSwimConfig(QWidget *parent) : DataProcessorConfig(parent) { @@ -59,6 +61,16 @@ class FixLapSwimConfig : public DataProcessorConfig layout->addWidget(plLabel); layout->addWidget(pl); layout->addStretch(); + + minRestLabel = new QLabel(tr("Min Rest (s)")); + + minRest = new QSpinBox(); + minRest->setMaximum(10); + minRest->setMinimum(1); + minRest->setSingleStep(1); + layout->addWidget(minRestLabel); + layout->addWidget(minRest); + layout->addStretch(); } //~FixLapSwimConfig() {} // deliberately not declared since Qt will @@ -72,17 +84,22 @@ class FixLapSwimConfig : public DataProcessorConfig "in Editor SWIM tab: TYPE, DURATION and STROKES.\n" "This tool recompute accumulated time, distance " "and sample Speed/Cadence from the updated lengths.\n" - "Laps are recreated using pause lengths as markers\n\n" + "Laps are recreated using length distance changes as markers\n\n" "Pool Length (in meters) allows to re-define the " - "field if value is > 0"); + "field if value is > 0\n\n" + "Lengths shorter than Min Rest (in seconds) " + "are removed and their duration carried to " + "the next length.\n\n"); } void readConfig() { pl->setValue(appsettings->value(NULL, GC_DPFLS_PL, "0").toDouble()); + minRest->setValue(appsettings->value(NULL, GC_DPFLS_MR, "3").toDouble()); } void saveConfig() { appsettings->setValue(GC_DPFLS_PL, pl->value()); + appsettings->setValue(GC_DPFLS_MR, minRest->value()); } }; @@ -120,11 +137,14 @@ FixLapSwim::postProcess(RideFile *ride, DataProcessorConfig *config=0, QString o { // get settings double pl; + double minRest; if (config == NULL) { // being called automatically // when the file is created use poll length in the file pl = (op == "NEW") ? 0.0 : appsettings->value(NULL, GC_DPFLS_PL, "0").toDouble(); + minRest = appsettings->value(NULL, GC_DPFLS_MR, "3").toDouble(); } else { // being called manually pl = ((FixLapSwimConfig*)(config))->pl->value(); + minRest = ((FixLapSwimConfig*)(config))->minRest->value(); } if (pl == 0.0) // If Pool Length is not configured, get from metadata @@ -151,6 +171,20 @@ FixLapSwim::postProcess(RideFile *ride, DataProcessorConfig *config=0, QString o // Stroke Type or Duration are mandatory, Strokes only to compute cadence if (typeIdx == -1 || durationIdx == -1) return false; + // Remove lengths shorter than minRest secs and carry that time over the next length + double prev_length_duration = 0.0; + for (int i=0; i< series->datapoints.count(); i++) { + + double length_duration = series->datapoints.at(i)->number[durationIdx]; + if (length_duration < minRest) { + ride->command->deleteXDataPoints("SWIM", i, 1); + prev_length_duration += length_duration; + } else if (prev_length_duration > 0.0) { + ride->command->setXDataPointValue("SWIM", i, durationIdx, prev_length_duration + length_duration); + prev_length_duration = 0.0; + } + } + QVariant GarminHWM = appsettings->value(NULL, GC_GARMIN_HWMARK); if (GarminHWM.isNull() || GarminHWM.toInt() == 0) GarminHWM.setValue(25); // default to 25 seconds. diff --git a/test/swims/2024-10-14-070422-Pool Swim-BingiWatch.fit b/test/swims/2024-10-14-070422-Pool Swim-BingiWatch.fit new file mode 100644 index 0000000000000000000000000000000000000000..9df553278e47655d1e270533199e8f4ea32d4f7d GIT binary patch literal 71489 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 Q577ictAt;*lFN$!4?3Pmng9R* literal 0 HcmV?d00001 diff --git a/test/swims/2024-10-20-104352-Pool Swim-BingiWatch.fit b/test/swims/2024-10-20-104352-Pool Swim-BingiWatch.fit new file mode 100644 index 0000000000000000000000000000000000000000..bba81e9b8fee0879cc71eddc6f758123cea6969d GIT binary patch literal 39552 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 literal 0 HcmV?d00001