Skip to content

Commit 0f8f5ec

Browse files
cagnuleinroot
andauthored
fix: use 0x31 metrics for Apex WLT8266BM bikes (#4887)
* fix: use 0x31 metrics for Apex WLT8266BM_07E2 * fix: disable WLT8266BM distance counter parser --------- Co-authored-by: root <root@hermes.proxmox>
1 parent 13d6c9c commit 0f8f5ec

2 files changed

Lines changed: 9 additions & 8 deletions

File tree

src/devices/apexbike/apexbike.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
using namespace std::chrono_literals;
1414

1515
bool apexbike::usesWlt8266bmDistanceCounterMetrics(const QString &deviceName) {
16-
return deviceName.startsWith(QStringLiteral("WLT8266BM_"), Qt::CaseInsensitive);
16+
// WLT8266BM bikes report cadence and distance in 0x31 packets.
17+
// Their 0x30 packet is a counter and must not be used as distance.
18+
Q_UNUSED(deviceName);
19+
return false;
1720
}
1821

1922
bool apexbike::isWlt8266bmDistanceCounterMetricsPacket(const QString &deviceName, const QByteArray &newValue) {

tst/Devices/TestApexBikeParser.h

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,11 @@
66

77
#include "devices/apexbike/apexbike.h"
88

9-
TEST(ApexBikeWlt8266BmRegressionTest, DistanceCounterMetricsAreScopedToBluetoothNamePrefix) {
10-
EXPECT_TRUE(apexbike::usesWlt8266bmDistanceCounterMetrics(QStringLiteral("WLT8266BM_025B")));
11-
EXPECT_TRUE(apexbike::usesWlt8266bmDistanceCounterMetrics(QStringLiteral("wlt8266bm_025b")));
12-
EXPECT_TRUE(apexbike::usesWlt8266bmDistanceCounterMetrics(QStringLiteral("WLT8266BM_0000")));
13-
14-
EXPECT_FALSE(apexbike::usesWlt8266bmDistanceCounterMetrics(QStringLiteral("WLT8266BM")));
15-
EXPECT_FALSE(apexbike::usesWlt8266bmDistanceCounterMetrics(QStringLiteral("WLT8266BM025B")));
9+
TEST(ApexBikeWlt8266BmRegressionTest, DistanceCounterMetricsAreDisabledForWlt8266BmBikes) {
10+
EXPECT_FALSE(apexbike::usesWlt8266bmDistanceCounterMetrics(QStringLiteral("WLT8266BM_025B")));
11+
EXPECT_FALSE(apexbike::usesWlt8266bmDistanceCounterMetrics(QStringLiteral("WLT8266BM_07E2")));
12+
EXPECT_FALSE(apexbike::usesWlt8266bmDistanceCounterMetrics(QStringLiteral("WLT8266BM_1234")));
13+
EXPECT_FALSE(apexbike::usesWlt8266bmDistanceCounterMetrics(QStringLiteral("wlt8266bm_07e2")));
1614
EXPECT_FALSE(apexbike::usesWlt8266bmDistanceCounterMetrics(QStringLiteral("APEX Bike")));
1715
}
1816

0 commit comments

Comments
 (0)