From 9841aeddebadd501d68bb77068ccfca1e58d6920 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 17 May 2024 13:16:45 +0100 Subject: [PATCH] really try and fix csc - it was so broken! --- apps/cscsensor/cscsensor.app.js | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/apps/cscsensor/cscsensor.app.js b/apps/cscsensor/cscsensor.app.js index 5b837e2c9..c0f09a509 100644 --- a/apps/cscsensor/cscsensor.app.js +++ b/apps/cscsensor/cscsensor.app.js @@ -161,17 +161,7 @@ class CSCSensor { var qChanged = false; if (event.target.uuid == "0x2a5b") { let flags = event.target.value.getUint8(0); - if (flags & 2) { - // crank revolution - if enabled - const crankRevs = event.target.value.getUint16(1, true); - const crankTime = event.target.value.getUint16(3, true); - if (crankTime > this.lastCrankTime) { - this.cadence = (crankRevs-this.lastCrankRevs)/(crankTime-this.lastCrankTime)*(60*1024); - qChanged = true; - } - this.lastCrankRevs = crankRevs; - this.lastCrankTime = crankTime; - } + let offs = 0; if (flags & 1) { // wheel revolution var wheelRevs = event.target.value.getUint32(1, true); @@ -208,8 +198,21 @@ class CSCSensor { } this.lastSpeed = this.speed; if (this.speed>this.maxSpeed && (this.movingTime>3 || this.speed<20) && this.speed<50) this.maxSpeed = this.speed; + offs += 6; + } + if (flags & 2) { + // crank revolution - if enabled + const crankRevs = event.target.value.getUint16(offs + 1, true); + const crankTime = event.target.value.getUint16(offs + 3, true); + if (crankTime > this.lastCrankTime) { + this.cadence = (crankRevs-this.lastCrankRevs)/(crankTime-this.lastCrankTime)*(60*1024); + qChanged = true; + } + this.lastCrankRevs = crankRevs; + this.lastCrankTime = crankTime; } } + if (qChanged) this.updateScreen(); } }