mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-13 16:18:42 +00:00
Add ResponseIndex and EfficiencyFactor
modified: src/BikeScore.cpp modified: src/Coggan.cpp modified: src/DBAccess.cpp
This commit is contained in:
@@ -205,7 +205,39 @@ class BikeScore : public RideMetric {
|
||||
RideMetric *clone() const { return new BikeScore(*this); }
|
||||
};
|
||||
|
||||
static bool addAllFour() {
|
||||
class ResponseIndex : public RideMetric {
|
||||
double ri;
|
||||
|
||||
public:
|
||||
|
||||
ResponseIndex() : ri(0.0)
|
||||
{
|
||||
setSymbol("skiba_response_index");
|
||||
setName(tr("Response Index"));
|
||||
setType(RideMetric::Average);
|
||||
setMetricUnits(tr(""));
|
||||
setImperialUnits(tr(""));
|
||||
setPrecision(3);
|
||||
}
|
||||
|
||||
void compute(const RideFile *, const Zones *, int,
|
||||
const HrZones *, int,
|
||||
const QHash<QString,RideMetric*> &deps,
|
||||
const MainWindow *) {
|
||||
assert(deps.contains("skiba_xpower"));
|
||||
assert(deps.contains("average_hr"));
|
||||
XPower *xp = dynamic_cast<XPower*>(deps.value("skiba_xpower"));
|
||||
assert(xp);
|
||||
RideMetric *ah = dynamic_cast<RideMetric*>(deps.value("average_hr"));
|
||||
assert(ah);
|
||||
ri = xp->value(true) / ah->value(true);
|
||||
|
||||
setValue(ri);
|
||||
}
|
||||
RideMetric *clone() const { return new ResponseIndex(*this); }
|
||||
};
|
||||
|
||||
static bool addAllFive() {
|
||||
RideMetricFactory::instance().addMetric(XPower());
|
||||
QVector<QString> deps;
|
||||
deps.append("skiba_xpower");
|
||||
@@ -216,8 +248,12 @@ static bool addAllFour() {
|
||||
deps.append("skiba_xpower");
|
||||
deps.append("average_power");
|
||||
RideMetricFactory::instance().addMetric(VariabilityIndex(), &deps);
|
||||
deps.clear();
|
||||
deps.append("skiba_xpower");
|
||||
deps.append("average_hr");
|
||||
RideMetricFactory::instance().addMetric(ResponseIndex(), &deps);
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool allFourAdded = addAllFour();
|
||||
static bool allFiveAdded = addAllFive();
|
||||
|
||||
|
||||
@@ -185,6 +185,38 @@ class TSS : public RideMetric {
|
||||
RideMetric *clone() const { return new TSS(*this); }
|
||||
};
|
||||
|
||||
class EfficiencyFactor : public RideMetric {
|
||||
double ef;
|
||||
|
||||
public:
|
||||
|
||||
EfficiencyFactor() : ef(0.0)
|
||||
{
|
||||
setSymbol("friel_efficiency_factor");
|
||||
setName(tr("EF"));
|
||||
setType(RideMetric::Average);
|
||||
setMetricUnits(tr(""));
|
||||
setImperialUnits(tr(""));
|
||||
setPrecision(3);
|
||||
}
|
||||
|
||||
void compute(const RideFile *, const Zones *, int,
|
||||
const HrZones *, int,
|
||||
const QHash<QString,RideMetric*> &deps,
|
||||
const MainWindow *) {
|
||||
assert(deps.contains("coggan_np"));
|
||||
assert(deps.contains("average_hr"));
|
||||
NP *np = dynamic_cast<NP*>(deps.value("coggan_np"));
|
||||
assert(np);
|
||||
RideMetric *ah = dynamic_cast<RideMetric*>(deps.value("average_hr"));
|
||||
assert(ah);
|
||||
ef = np->value(true) / ah->value(true);
|
||||
|
||||
setValue(ef);
|
||||
}
|
||||
RideMetric *clone() const { return new EfficiencyFactor(*this); }
|
||||
};
|
||||
|
||||
static bool addAllCoggan() {
|
||||
RideMetricFactory::instance().addMetric(NP());
|
||||
QVector<QString> deps;
|
||||
@@ -196,6 +228,10 @@ static bool addAllCoggan() {
|
||||
deps.append("coggan_np");
|
||||
deps.append("average_power");
|
||||
RideMetricFactory::instance().addMetric(VI(), &deps);
|
||||
deps.clear();
|
||||
deps.append("coggan_np");
|
||||
deps.append("average_hr");
|
||||
RideMetricFactory::instance().addMetric(EfficiencyFactor(), &deps);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -44,12 +44,14 @@
|
||||
|
||||
// Revision History
|
||||
// Rev Date Who What Changed
|
||||
//-----------------------------------------------------------------------
|
||||
// 29 5th Sep 2011 Mark Liversedge Added color to the ride fields
|
||||
// 30 8th Sep 2011 Mark Liversedge Metadata 'data' field for data present string
|
||||
// 31 22 Nov 2011 Mark Liversedge Added Average WPK metric
|
||||
// 32 9th Dec 2011 Damien Grauser Temperature data flag (metadata field 'Data')
|
||||
// 33 17 Dec 2011 Damien Grauser Added ResponseIndex and EfficiencyFactor
|
||||
|
||||
static int DBSchemaVersion = 32;
|
||||
static int DBSchemaVersion = 33;
|
||||
|
||||
DBAccess::DBAccess(MainWindow* main, QDir home) : main(main), home(home)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user