Bugfix: process cycling power sensor data correctly.

Fixes #1802.
This commit is contained in:
Dennis Guse
2023-12-30 20:29:09 +01:00
parent 9b2126550e
commit 310ac8c06e
3 changed files with 6 additions and 7 deletions
@@ -1,7 +1,6 @@
package de.dennisguse.opentracks.sensors; package de.dennisguse.opentracks.sensors;
import android.bluetooth.BluetoothGattCharacteristic; import android.bluetooth.BluetoothGattCharacteristic;
import android.util.Log;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@@ -33,7 +32,7 @@ public class BluetoothHandlerBarometricPressure implements SensorHandlerInterfac
public void handlePayload(SensorManager.SensorDataChangedObserver observer, ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) { public void handlePayload(SensorManager.SensorDataChangedObserver observer, ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
AtmosphericPressure value = parseEnvironmentalSensing(characteristic); AtmosphericPressure value = parseEnvironmentalSensing(characteristic);
if (value == null) return; if (value == null) return;
Log.i("ZXCV", "VALUE: " + value);
observer.onChange(new Raw<>(value)); observer.onChange(new Raw<>(value));
} }
@@ -3,16 +3,17 @@ package de.dennisguse.opentracks.sensors.sensorData;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import de.dennisguse.opentracks.data.models.Power; import de.dennisguse.opentracks.data.models.Power;
import de.dennisguse.opentracks.sensors.BluetoothHandlerManagerCyclingPower;
public class AggregatorCyclingPower extends Aggregator<Power, Power> { public class AggregatorCyclingPower extends Aggregator<BluetoothHandlerManagerCyclingPower.Data, Power> {
public AggregatorCyclingPower(String name, String address) { public AggregatorCyclingPower(String name, String address) {
super(name, address); super(name, address);
} }
@Override @Override
public void computeValue(Raw<Power> current) { public void computeValue(Raw<BluetoothHandlerManagerCyclingPower.Data> current) {
this.value = current.value(); this.value = current.value().power();
} }
@NonNull @NonNull
@@ -10,7 +10,6 @@ import androidx.annotation.VisibleForTesting;
import de.dennisguse.opentracks.data.models.AtmosphericPressure; import de.dennisguse.opentracks.data.models.AtmosphericPressure;
import de.dennisguse.opentracks.data.models.Cadence; import de.dennisguse.opentracks.data.models.Cadence;
import de.dennisguse.opentracks.data.models.HeartRate; import de.dennisguse.opentracks.data.models.HeartRate;
import de.dennisguse.opentracks.data.models.Power;
import de.dennisguse.opentracks.data.models.Speed; import de.dennisguse.opentracks.data.models.Speed;
import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.data.models.TrackPoint;
import de.dennisguse.opentracks.sensors.BluetoothHandlerCyclingCadence; import de.dennisguse.opentracks.sensors.BluetoothHandlerCyclingCadence;
@@ -116,7 +115,7 @@ public final class SensorDataSet {
return; return;
} }
if (value instanceof BluetoothHandlerManagerCyclingPower.Data) { if (value instanceof BluetoothHandlerManagerCyclingPower.Data) {
this.cyclingPower.add((Raw<Power>) data); this.cyclingPower.add((Raw<BluetoothHandlerManagerCyclingPower.Data>) data);
return; return;
} }
if (value instanceof AtmosphericPressure) { if (value instanceof AtmosphericPressure) {