mirror of
https://github.com/dyuri/garmin-repafield.git
synced 2025-12-18 04:04:02 +00:00
#2 pace/speed switch
This commit is contained in:
parent
50d65c7858
commit
35524dd9ba
@ -24,5 +24,6 @@ Trail running focused Garmin watch DataField (for myself)
|
|||||||
- 3 theme colors
|
- 3 theme colors
|
||||||
- set primary theme color to 0 to use the HR color instead
|
- set primary theme color to 0 to use the HR color instead
|
||||||
- HR display type (value, percentage, zone)
|
- HR display type (value, percentage, zone)
|
||||||
|
- Display speed instead of pace
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
3
TODO.md
3
TODO.md
@ -1,6 +1,3 @@
|
|||||||
- settings
|
|
||||||
- pace/speed switch
|
|
||||||
|
|
||||||
- cadence => vertical speed (might be a setting?)
|
- cadence => vertical speed (might be a setting?)
|
||||||
- also might save vertical speed to fit
|
- also might save vertical speed to fit
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
<properties>
|
<properties>
|
||||||
<property id="appVersion" type="string">1.1.1</property>
|
<property id="appVersion" type="string">1.1.2</property>
|
||||||
<property id="themeColor" type="string">0</property>
|
<property id="themeColor" type="string">0</property>
|
||||||
<property id="themeColor2" type="string">0088FF</property>
|
<property id="themeColor2" type="string">0088FF</property>
|
||||||
<property id="themeColor3" type="string">FFFF00</property>
|
<property id="themeColor3" type="string">FFFF00</property>
|
||||||
<property id="hrDisplay" type="number">0</property>
|
<property id="hrDisplay" type="number">0</property>
|
||||||
|
<property id="speedNotPace" type="boolean">false</property>
|
||||||
</properties>
|
</properties>
|
||||||
|
|||||||
@ -19,5 +19,7 @@
|
|||||||
<listEntry value="2">@Strings.HrZone</listEntry>
|
<listEntry value="2">@Strings.HrZone</listEntry>
|
||||||
</settingConfig>
|
</settingConfig>
|
||||||
</setting>
|
</setting>
|
||||||
|
<setting propertyKey="@Properties.speedNotPace" title="@Strings.SpeedNotPace">
|
||||||
|
<settingConfig type="boolean" />
|
||||||
|
</setting>
|
||||||
</settings>
|
</settings>
|
||||||
@ -8,4 +8,5 @@
|
|||||||
<string id="HrValue">Value</string>
|
<string id="HrValue">Value</string>
|
||||||
<string id="HrPercentage">Percentage</string>
|
<string id="HrPercentage">Percentage</string>
|
||||||
<string id="HrZone">Zone</string>
|
<string id="HrZone">Zone</string>
|
||||||
|
<string id="SpeedNotPace">Show speed instead of pace</string>
|
||||||
</strings>
|
</strings>
|
||||||
|
|||||||
@ -38,6 +38,7 @@ class RepaFieldView extends WatchUi.DataField {
|
|||||||
hidden var themeColor2 as Number;
|
hidden var themeColor2 as Number;
|
||||||
hidden var themeColor3 as Number;
|
hidden var themeColor3 as Number;
|
||||||
hidden var hrDisplayType as Number;
|
hidden var hrDisplayType as Number;
|
||||||
|
hidden var speedNotPace as Boolean;
|
||||||
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>;
|
||||||
@ -45,6 +46,7 @@ class RepaFieldView extends WatchUi.DataField {
|
|||||||
hidden var cadenceZoneColors as Array<Number>;
|
hidden var cadenceZoneColors as Array<Number>;
|
||||||
hidden var isDistanceMetric as Boolean;
|
hidden var isDistanceMetric as Boolean;
|
||||||
hidden var isElevationMetric as Boolean;
|
hidden var isElevationMetric as Boolean;
|
||||||
|
hidden var isPaceMetric as Boolean;
|
||||||
hidden var mileToKm as Float = 1.609344f;
|
hidden var mileToKm as Float = 1.609344f;
|
||||||
hidden var meterToFeet as Float = 3.28084f;
|
hidden var meterToFeet as Float = 3.28084f;
|
||||||
|
|
||||||
@ -92,6 +94,7 @@ class RepaFieldView extends WatchUi.DataField {
|
|||||||
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);
|
||||||
hrDisplayType = Application.Properties.getValue("hrDisplay").toNumber();
|
hrDisplayType = Application.Properties.getValue("hrDisplay").toNumber();
|
||||||
|
speedNotPace = Application.Properties.getValue("speedNotPace");
|
||||||
|
|
||||||
hrValue = 0;
|
hrValue = 0;
|
||||||
ahrValue = 0;
|
ahrValue = 0;
|
||||||
@ -119,6 +122,7 @@ class RepaFieldView extends WatchUi.DataField {
|
|||||||
var settings = System.getDeviceSettings();
|
var settings = System.getDeviceSettings();
|
||||||
isDistanceMetric = settings.distanceUnits == System.UNIT_METRIC;
|
isDistanceMetric = settings.distanceUnits == System.UNIT_METRIC;
|
||||||
isElevationMetric = settings.elevationUnits == System.UNIT_METRIC;
|
isElevationMetric = settings.elevationUnits == System.UNIT_METRIC;
|
||||||
|
isPaceMetric = settings.paceUnits == System.UNIT_METRIC;
|
||||||
}
|
}
|
||||||
|
|
||||||
function tickHr(v as Number) {
|
function tickHr(v as Number) {
|
||||||
@ -256,22 +260,22 @@ class RepaFieldView extends WatchUi.DataField {
|
|||||||
offCourse = 0.0f;
|
offCourse = 0.0f;
|
||||||
}
|
}
|
||||||
if (info.currentSpeed != null) {
|
if (info.currentSpeed != null) {
|
||||||
speed = info.currentSpeed as Float;
|
speed = info.currentSpeed * 3.6;
|
||||||
if (speed == 0) {
|
if (speed == 0) {
|
||||||
pace = 0.0f;
|
pace = 0.0f;
|
||||||
} else {
|
} else {
|
||||||
pace = 1000 / 60 / speed;
|
pace = 60 / speed;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
speed = 0.0f;
|
speed = 0.0f;
|
||||||
pace = 0.0f;
|
pace = 0.0f;
|
||||||
}
|
}
|
||||||
if (info.averageSpeed != null) {
|
if (info.averageSpeed != null) {
|
||||||
aspeed = info.averageSpeed as Float;
|
aspeed = info.averageSpeed * 3.6;
|
||||||
if (aspeed == 0) {
|
if (aspeed == 0) {
|
||||||
apace = 0.0f;
|
apace = 0.0f;
|
||||||
} else {
|
} else {
|
||||||
apace = 1000 / 60 / aspeed;
|
apace = 60 / aspeed;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
aspeed = 0.0f;
|
aspeed = 0.0f;
|
||||||
@ -302,14 +306,18 @@ class RepaFieldView extends WatchUi.DataField {
|
|||||||
if (!isDistanceMetric) {
|
if (!isDistanceMetric) {
|
||||||
distance = distance / mileToKm;
|
distance = distance / mileToKm;
|
||||||
toDestination = toDestination / mileToKm;
|
toDestination = toDestination / mileToKm;
|
||||||
pace = pace * mileToKm;
|
|
||||||
apace = apace * mileToKm;
|
|
||||||
}
|
}
|
||||||
if (!isElevationMetric) {
|
if (!isElevationMetric) {
|
||||||
altitude = altitude * meterToFeet;
|
altitude = altitude * meterToFeet;
|
||||||
egain = (egain * meterToFeet).toNumber();
|
egain = (egain * meterToFeet).toNumber();
|
||||||
edrop = (edrop * meterToFeet).toNumber();
|
edrop = (edrop * meterToFeet).toNumber();
|
||||||
}
|
}
|
||||||
|
if (!isPaceMetric) {
|
||||||
|
pace = pace * mileToKm;
|
||||||
|
apace = apace * mileToKm;
|
||||||
|
speed = speed / mileToKm;
|
||||||
|
aspeed = aspeed / mileToKm;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Display the value you computed here. This will be called
|
// Display the value you computed here. This will be called
|
||||||
@ -383,6 +391,9 @@ class RepaFieldView extends WatchUi.DataField {
|
|||||||
|
|
||||||
// pace
|
// pace
|
||||||
if (fPace != null) {
|
if (fPace != null) {
|
||||||
|
if (speedNotPace) {
|
||||||
|
fPace.setText(speed.format("%.1f"));
|
||||||
|
} else {
|
||||||
if (speed != 0) {
|
if (speed != 0) {
|
||||||
var pmin = pace.toNumber();
|
var pmin = pace.toNumber();
|
||||||
var psec = (pace - pmin) * 60;
|
var psec = (pace - pmin) * 60;
|
||||||
@ -391,7 +402,11 @@ class RepaFieldView extends WatchUi.DataField {
|
|||||||
fPace.setText("--:--");
|
fPace.setText("--:--");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (fAPace != null) {
|
if (fAPace != null) {
|
||||||
|
if (speedNotPace) {
|
||||||
|
fAPace.setText(aspeed.format("%.1f"));
|
||||||
|
} else {
|
||||||
if (aspeed != 0) {
|
if (aspeed != 0) {
|
||||||
var apmin = apace.toNumber();
|
var apmin = apace.toNumber();
|
||||||
var apsec = (apace - apmin) * 60;
|
var apsec = (apace - apmin) * 60;
|
||||||
@ -400,6 +415,7 @@ class RepaFieldView extends WatchUi.DataField {
|
|||||||
fAPace.setText("--:--");
|
fAPace.setText("--:--");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// alt/egain/edrop
|
// alt/egain/edrop
|
||||||
if (fElevation != null) {
|
if (fElevation != null) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user