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