Compare commits

..

No commits in common. "1e1e28f4e768fe809991ab1bb6e5302b60b54d49" and "846e40131337ba9070939ada3f1b770e434448df" have entirely different histories.

5 changed files with 7 additions and 17 deletions

View File

@ -8,5 +8,4 @@
<property id="showNextPoint" type="boolean">true</property> <property id="showNextPoint" type="boolean">true</property>
<property id="saveToFit" type="boolean">true</property> <property id="saveToFit" type="boolean">true</property>
<property id="tlFieldData" type="number">1</property> <property id="tlFieldData" type="number">1</property>
<property id="rollingAvgWindow" type="number">5</property>
</properties> </properties>

View File

@ -36,7 +36,4 @@
<setting propertyKey="@Properties.saveToFit" title="@Strings.SaveToFit"> <setting propertyKey="@Properties.saveToFit" title="@Strings.SaveToFit">
<settingConfig type="boolean" /> <settingConfig type="boolean" />
</setting> </setting>
<setting propertyKey="@Properties.rollingAvgWindow" title="@Strings.RollingAvgWindow">
<settingConfig type="numeric" />
</setting>
</settings> </settings>

View File

@ -16,7 +16,6 @@
<string id="TLFGrade">Grade</string> <string id="TLFGrade">Grade</string>
<string id="TLFGAP">Grade Adjusted Pace</string> <string id="TLFGAP">Grade Adjusted Pace</string>
<string id="TLFVSpeed">Vertical Speed</string> <string id="TLFVSpeed">Vertical Speed</string>
<string id="RollingAvgWindow">Rolling average window (~seconds)</string>
<string id="uGrade">%</string> <string id="uGrade">%</string>
<string id="uGAP">min/km</string> <string id="uGAP">min/km</string>
<string id="uVSpeed">m/min</string> <string id="uVSpeed">m/min</string>

View File

@ -11,9 +11,7 @@ const GRADE_ADJUSTMENT as Array<Array<Numeric>> = [
function adjustPaceForGrade(pace, grade) { function adjustPaceForGrade(pace, grade) {
if (grade <= GRADE_ADJUSTMENT[0][0]) { if (grade <= GRADE_ADJUSTMENT[0][0]) {
var slope = (GRADE_ADJUSTMENT[1][1] - GRADE_ADJUSTMENT[0][1]) / (GRADE_ADJUSTMENT[1][0] - GRADE_ADJUSTMENT[0][0]); return pace / GRADE_ADJUSTMENT[0][1];
var adjustment = GRADE_ADJUSTMENT[0][1] + slope * (grade - GRADE_ADJUSTMENT[0][0]);
return pace / adjustment;
} }
var size = GRADE_ADJUSTMENT.size(); var size = GRADE_ADJUSTMENT.size();
@ -29,8 +27,5 @@ function adjustPaceForGrade(pace, grade) {
} }
} }
var slope = (GRADE_ADJUSTMENT[size - 1][1] - GRADE_ADJUSTMENT[size - 2][1]) / (GRADE_ADJUSTMENT[size - 1][0] - GRADE_ADJUSTMENT[size - 2][0]); return pace / GRADE_ADJUSTMENT[size - 1][1];
var adjustment = GRADE_ADJUSTMENT[size - 1][1] + slope * (grade - GRADE_ADJUSTMENT[size - 1][0]);
return pace / adjustment;
} }

View File

@ -55,7 +55,6 @@ class RepaFieldView extends WatchUi.DataField {
hidden var speedNotPace as Boolean; hidden var speedNotPace as Boolean;
hidden var showNextPoint as Boolean; hidden var showNextPoint as Boolean;
hidden var tlFieldData as Number; hidden var tlFieldData as Number;
hidden var rollingAvgWindow as Number = 5;
hidden var hrZones as Array<Number>; hidden var hrZones as Array<Number>;
hidden var hrHist as Array<Number>; hidden var hrHist as Array<Number>;
hidden var hrZoneColors as Array<Number>; hidden var hrZoneColors as Array<Number>;
@ -130,6 +129,8 @@ class RepaFieldView extends WatchUi.DataField {
function initialize() { function initialize() {
DataField.initialize(); DataField.initialize();
var RASize = 5; // TODO: rolling average window size => settings
themeColor = Application.Properties.getValue("themeColor").toNumberWithBase(16); themeColor = Application.Properties.getValue("themeColor").toNumberWithBase(16);
themeColor2 = Application.Properties.getValue("themeColor2").toNumberWithBase(16); themeColor2 = Application.Properties.getValue("themeColor2").toNumberWithBase(16);
themeColor3 = Application.Properties.getValue("themeColor3").toNumberWithBase(16); themeColor3 = Application.Properties.getValue("themeColor3").toNumberWithBase(16);
@ -137,7 +138,6 @@ class RepaFieldView extends WatchUi.DataField {
speedNotPace = Application.Properties.getValue("speedNotPace"); speedNotPace = Application.Properties.getValue("speedNotPace");
showNextPoint = Application.Properties.getValue("showNextPoint"); showNextPoint = Application.Properties.getValue("showNextPoint");
tlFieldData = Application.Properties.getValue("tlFieldData").toNumber(); tlFieldData = Application.Properties.getValue("tlFieldData").toNumber();
rollingAvgWindow = Application.Properties.getValue("rollingAvgWindow").toNumber();
hrValue = 0; hrValue = 0;
ahrValue = 0; ahrValue = 0;
@ -170,9 +170,9 @@ class RepaFieldView extends WatchUi.DataField {
cgrade = null; cgrade = null;
cvspeed = null; cvspeed = null;
cgap = null; cgap = null;
deltaAlt = new RollingAverage(rollingAvgWindow); deltaAlt = new RollingAverage(RASize);
deltaDist = new RollingAverage(rollingAvgWindow); deltaDist = new RollingAverage(RASize);
deltaTime = new RollingAverage(rollingAvgWindow); deltaTime = new RollingAverage(RASize);
var settings = System.getDeviceSettings(); var settings = System.getDeviceSettings();
isDistanceMetric = settings.distanceUnits == System.UNIT_METRIC; isDistanceMetric = settings.distanceUnits == System.UNIT_METRIC;