diff --git a/app/src/main/kotlin/de/timklge/karoopowerbar/Window.kt b/app/src/main/kotlin/de/timklge/karoopowerbar/Window.kt
index e394abf..bc3ff1f 100644
--- a/app/src/main/kotlin/de/timklge/karoopowerbar/Window.kt
+++ b/app/src/main/kotlin/de/timklge/karoopowerbar/Window.kt
@@ -188,7 +188,9 @@ class Window(
SelectedSource.ROUTE_PROGRESS -> streamRouteProgress(SelectedSource.ROUTE_PROGRESS, ::getRouteProgress)
SelectedSource.REMAINING_ROUTE -> streamRouteProgress(SelectedSource.REMAINING_ROUTE, ::getRemainingRouteProgress)
SelectedSource.GRADE -> streamGrade()
- SelectedSource.POWER_BALANCE -> streamBalance()
+ SelectedSource.POWER_BALANCE -> streamBalance(PedalBalanceSmoothing.RAW)
+ SelectedSource.POWER_BALANCE_3S -> streamBalance(PedalBalanceSmoothing.SMOOTHED_3S)
+ SelectedSource.POWER_BALANCE_10S -> streamBalance(PedalBalanceSmoothing.SMOOTHED_10S)
SelectedSource.FRONT_GEAR -> streamGears(Gears.FRONT)
SelectedSource.REAR_GEAR -> streamGears(Gears.REAR)
SelectedSource.NONE -> {}
@@ -207,10 +209,10 @@ class Window(
}
}
- private suspend fun streamBalance() {
+ private suspend fun streamBalance(smoothing: PedalBalanceSmoothing) {
data class StreamData(val powerBalanceLeft: Double?, val power: Double?)
- karooSystem.streamDataFlow(DataType.Type.PEDAL_POWER_BALANCE)
+ karooSystem.streamDataFlow(smoothing.dataTypeId)
.map {
val values = (it as? StreamState.Streaming)?.dataPoint?.values
@@ -605,6 +607,12 @@ class Window(
SMOOTHED_10S(DataType.Type.SMOOTHED_10S_AVERAGE_POWER),
}
+ enum class PedalBalanceSmoothing(val dataTypeId: String){
+ RAW(DataType.Type.PEDAL_POWER_BALANCE),
+ SMOOTHED_3S(DataType.Type.SMOOTHED_3S_AVERAGE_PEDAL_POWER_BALANCE),
+ SMOOTHED_10S(DataType.Type.SMOOTHED_10S_AVERAGE_PEDAL_POWER_BALANCE),
+ }
+
private suspend fun streamPower(source: SelectedSource, smoothed: PowerStreamSmoothing) {
val powerFlow = karooSystem.streamDataFlow(smoothed.dataTypeId)
.map { (it as? StreamState.Streaming)?.dataPoint?.singleValue }
diff --git a/app/src/main/kotlin/de/timklge/karoopowerbar/screens/MainScreen.kt b/app/src/main/kotlin/de/timklge/karoopowerbar/screens/MainScreen.kt
index c2ef410..7c17c56 100644
--- a/app/src/main/kotlin/de/timklge/karoopowerbar/screens/MainScreen.kt
+++ b/app/src/main/kotlin/de/timklge/karoopowerbar/screens/MainScreen.kt
@@ -90,6 +90,8 @@ enum class SelectedSource(val id: String, val labelResId: Int) {
CADENCE_3S("cadence_3s", R.string.source_cadence_3s),
GRADE("grade", R.string.source_grade),
POWER_BALANCE("power_balance", R.string.source_power_balance),
+ POWER_BALANCE_3S("power_balance_3s", R.string.source_power_balance_3s),
+ POWER_BALANCE_10S("power_balance_10s", R.string.source_power_balance_10s),
ROUTE_PROGRESS("route_progress", R.string.source_route_progress),
REMAINING_ROUTE("route_progress_remaining", R.string.source_route_remaining),
FRONT_GEAR("front_gear", R.string.source_front_gear),
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 12ee110..7377b6e 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -47,6 +47,8 @@
Trittfrequenz (3 Sek. Ø)
Steigung
Leistungsbalance
+ Leistungsbalance (3 Sek. Ø)
+ Leistungsbalance (10 Sek. Ø)
Routenfortschritt
Verbleibende Route
Vorderer Gang
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index fc85420..4d243c5 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -47,6 +47,8 @@
Cadence (3 sec avg)
Grade
Power Balance
+ Power Balance (3 sec avg)
+ Power Balance (10 sec avg)
Route Progress
Route Remaining
Front Gear