From 52228d44a9f1c119c5dd9d30913136d4cb447cd7 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sun, 19 Dec 2021 22:38:50 +0100 Subject: [PATCH 1/3] Cleanup. --- .../sensors/BluetoothConnectionManager.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java b/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java index 3479512c3..4731f3d0e 100644 --- a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java @@ -226,15 +226,19 @@ public abstract class BluetoothConnectionManager { @Override protected SensorDataCycling.DistanceSpeed parsePayload(String sensorName, String address, BluetoothGattCharacteristic characteristic) { SensorDataCycling.CadenceAndSpeed cadenceAndSpeed = BluetoothUtils.parseCyclingCrankAndWheel(address, sensorName, characteristic); - if (cadenceAndSpeed != null) { - // Workaround for Garmin Speed Sensor 2: provides cadence instead of speed - SensorDataCycling.DistanceSpeed result = cadenceAndSpeed.getDistanceSpeed(); - if (result == null && cadenceAndSpeed.getCadence() != null) { - result = new SensorDataCycling.DistanceSpeed(cadenceAndSpeed.getSensorAddress(), cadenceAndSpeed.getSensorName(), (int) cadenceAndSpeed.getCadence().getCrankRevolutionsCount(), cadenceAndSpeed.getCadence().getCrankRevolutionsTime()); - } - - return result; + if (cadenceAndSpeed == null) { + return null; } + + if (cadenceAndSpeed.getDistanceSpeed() != null) { + return cadenceAndSpeed.getDistanceSpeed(); + } + + // Workaround for Garmin Speed Sensor 2: provides cadence (instead of speed) + if (cadenceAndSpeed.getCadence() != null) { + return new SensorDataCycling.DistanceSpeed(cadenceAndSpeed.getSensorAddress(), cadenceAndSpeed.getSensorName(), (int) cadenceAndSpeed.getCadence().getCrankRevolutionsCount(), cadenceAndSpeed.getCadence().getCrankRevolutionsTime()); + } + return null; } } From 6fe6cee475c9e6c25c135060363bfb140c44e95c Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sun, 19 Dec 2021 22:44:37 +0100 Subject: [PATCH 2/3] BLE: CSC remove workarounds as those are not necessary. The implementation of OpenTracks for the CSC parsing was broken and fixed in 35de5b6b264ad43b1c343a8323961db18b4874f4 Fixes #1046. --- README_TESTED_SENSORS.md | 6 ------ .../services/sensors/BluetoothConnectionManager.java | 10 ---------- 2 files changed, 16 deletions(-) diff --git a/README_TESTED_SENSORS.md b/README_TESTED_SENSORS.md index db91496ae..197dcf434 100644 --- a/README_TESTED_SENSORS.md +++ b/README_TESTED_SENSORS.md @@ -22,19 +22,13 @@ However, often only one value is provided. * Garmin Speed Sensor 2 * Has updatable firmware that requires an account for garmin.com - * This sensor reports speed data as cadence. - A workaround is in place. - * Wahoo Speed (Model: WFRPMSPD) - * CooSpo cadence and speed sensor (model: BK467) ### Cadence * Garmin Cadence Sensor 2 * Wahoo Cadence (Model: WFPODCAD2) - This sensor reports cadence data as speed. - A workaround is in place. ## 0x1818: Power Measurement diff --git a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java b/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java index 4731f3d0e..835e67914 100644 --- a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java @@ -203,11 +203,6 @@ public abstract class BluetoothConnectionManager { return cadenceAndSpeed.getCadence(); } - //Workaround for Wahoo CADENCE: this sensor reports speed (instead of cadence) - if (cadenceAndSpeed.getDistanceSpeed() != null) { - return new SensorDataCycling.Cadence(cadenceAndSpeed.getDistanceSpeed()); - } - return null; } } @@ -234,11 +229,6 @@ public abstract class BluetoothConnectionManager { return cadenceAndSpeed.getDistanceSpeed(); } - // Workaround for Garmin Speed Sensor 2: provides cadence (instead of speed) - if (cadenceAndSpeed.getCadence() != null) { - return new SensorDataCycling.DistanceSpeed(cadenceAndSpeed.getSensorAddress(), cadenceAndSpeed.getSensorName(), (int) cadenceAndSpeed.getCadence().getCrankRevolutionsCount(), cadenceAndSpeed.getCadence().getCrankRevolutionsTime()); - } - return null; } } From 0ee1c7768087053c20d6e49bc01328d49883f905 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Wed, 22 Dec 2021 22:27:25 +0100 Subject: [PATCH 3/3] Sensors: added Wahoo Blue SC. --- README_TESTED_SENSORS.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README_TESTED_SENSORS.md b/README_TESTED_SENSORS.md index 197dcf434..7c7e53a8d 100644 --- a/README_TESTED_SENSORS.md +++ b/README_TESTED_SENSORS.md @@ -18,14 +18,18 @@ Please note that the according to the specification these sensors _may_ provide speed as well as cadence. However, often only one value is provided. -### Speed +### Speed & Cadence + +* Wahoo Blue SC + +### Speed only * Garmin Speed Sensor 2 * Has updatable firmware that requires an account for garmin.com * Wahoo Speed (Model: WFRPMSPD) * CooSpo cadence and speed sensor (model: BK467) -### Cadence +### Cadence only * Garmin Cadence Sensor 2 * Wahoo Cadence (Model: WFPODCAD2)