Barometer: added settings for sensor selection.

Part of #1424.
This commit is contained in:
Dennis Guse
2023-11-22 20:24:12 +01:00
parent 892c56389b
commit 490141db2a
12 changed files with 111 additions and 27 deletions
@@ -7,6 +7,8 @@ import java.util.UUID;
import de.dennisguse.opentracks.data.models.AtmosphericPressure;
import de.dennisguse.opentracks.sensors.sensorData.Aggregator;
import de.dennisguse.opentracks.sensors.sensorData.AggregatorBarometer;
import de.dennisguse.opentracks.sensors.sensorData.Raw;
import de.dennisguse.opentracks.sensors.sensorData.SensorHandlerInterface;
public class BluetoothHandlerBarometricPressure implements SensorHandlerInterface {
@@ -23,12 +25,14 @@ public class BluetoothHandlerBarometricPressure implements SensorHandlerInterfac
@Override
public Aggregator<?, ?> createEmptySensorData(String address, String name) {
return null; //TODO
return new AggregatorBarometer(address, name);
}
@Override
public void handlePayload(SensorManager.SensorDataChangedObserver observer, ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
//TODO
AtmosphericPressure value = parseEnvironmentalSensing(characteristic);
if (value == null) return;
observer.onChange(new Raw<>(value));
}
public static AtmosphericPressure parseEnvironmentalSensing(BluetoothGattCharacteristic characteristic) {
@@ -29,7 +29,7 @@ public class GainManager implements SensorConnector {
driver.connect(context, handler, this);
if (driver.isConnected()) {
listener.onConnect(new AggregatorBarometer("internal"));
listener.onConnect(new AggregatorBarometer("internal", null));
}
}
@@ -37,7 +37,7 @@ public class GainManager implements SensorConnector {
Log.d(TAG, "Stop");
driver.disconnect(context);
listener.onDisconnect(new AggregatorBarometer("internal"));
listener.onDisconnect(new AggregatorBarometer("internal", null));
}
public void onSensorValueChanged(AtmosphericPressure currentSensorValue) {
@@ -11,8 +11,8 @@ public class AggregatorBarometer extends Aggregator<AtmosphericPressure, Altitud
private AtmosphericPressure lastAcceptedSensorValue;
public AggregatorBarometer(String sensorAddress) {
super(sensorAddress);
public AggregatorBarometer(String sensorAddress, String sensorName) {
super(sensorAddress, sensorName);
}
@Override