mirror of
https://github.com/tumic0/GPXSee.git
synced 2025-06-27 03:29:16 +02:00
Added "enable pause detection" setting
This commit is contained in:
@ -8,6 +8,7 @@ int Track::_heartRateWindow = 3;
|
||||
int Track::_cadenceWindow = 3;
|
||||
int Track::_powerWindow = 3;
|
||||
|
||||
bool Track::_detectPauses = true;
|
||||
bool Track::_automaticPause = true;
|
||||
qreal Track::_pauseSpeed = 0.5;
|
||||
int Track::_pauseInterval = 10;
|
||||
@ -181,32 +182,33 @@ Track::Track(const TrackData &data) : _pause(0)
|
||||
if (!hasTime)
|
||||
continue;
|
||||
|
||||
if (_detectPauses) {
|
||||
// get stop-points + pause duration
|
||||
int pauseInterval;
|
||||
qreal pauseSpeed;
|
||||
|
||||
// get stop-points + pause duration
|
||||
int pauseInterval;
|
||||
qreal pauseSpeed;
|
||||
if (_automaticPause) {
|
||||
pauseSpeed = (avg(seg.speed) > 2.8) ? 0.40 : 0.15;
|
||||
pauseInterval = 10;
|
||||
} else {
|
||||
pauseSpeed = _pauseSpeed;
|
||||
pauseInterval = _pauseInterval;
|
||||
}
|
||||
|
||||
if (_automaticPause) {
|
||||
pauseSpeed = (avg(seg.speed) > 2.8) ? 0.40 : 0.15;
|
||||
pauseInterval = 10;
|
||||
} else {
|
||||
pauseSpeed = _pauseSpeed;
|
||||
pauseInterval = _pauseInterval;
|
||||
}
|
||||
int ss = 0, la = 0;
|
||||
for (int j = 1; j < seg.time.size(); j++) {
|
||||
if (seg.speed.at(j) > pauseSpeed)
|
||||
ss = -1;
|
||||
else if (ss < 0)
|
||||
ss = j-1;
|
||||
|
||||
int ss = 0, la = 0;
|
||||
for (int j = 1; j < seg.time.size(); j++) {
|
||||
if (seg.speed.at(j) > pauseSpeed)
|
||||
ss = -1;
|
||||
else if (ss < 0)
|
||||
ss = j-1;
|
||||
|
||||
if (ss >= 0 && seg.time.at(j) > seg.time.at(ss) + pauseInterval) {
|
||||
int l = qMax(ss, la);
|
||||
_pause += seg.time.at(j) - seg.time.at(l);
|
||||
for (int k = l; k <= j; k++)
|
||||
seg.stop.insert(k);
|
||||
la = j;
|
||||
if (ss >= 0 && seg.time.at(j) > seg.time.at(ss) + pauseInterval) {
|
||||
int l = qMax(ss, la);
|
||||
_pause += seg.time.at(j) - seg.time.at(l);
|
||||
for (int k = l; k <= j; k++)
|
||||
seg.stop.insert(k);
|
||||
la = j;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -44,6 +44,7 @@ public:
|
||||
static void setHeartRateFilter(int window) {_heartRateWindow = window;}
|
||||
static void setCadenceFilter(int window) {_cadenceWindow = window;}
|
||||
static void setPowerFilter(int window) {_powerWindow = window;}
|
||||
static void detectPauses(bool detect) {_detectPauses = detect;}
|
||||
static void setAutomaticPause(bool set) {_automaticPause = set;}
|
||||
static void setPauseSpeed(qreal speed) {_pauseSpeed = speed;}
|
||||
static void setPauseInterval(int interval) {_pauseInterval = interval;}
|
||||
@ -84,6 +85,7 @@ private:
|
||||
static int _heartRateWindow;
|
||||
static int _cadenceWindow;
|
||||
static int _powerWindow;
|
||||
static bool _detectPauses;
|
||||
static bool _automaticPause;
|
||||
static qreal _pauseSpeed;
|
||||
static int _pauseInterval;
|
||||
|
Reference in New Issue
Block a user