bailuk / AAT

Another Activity Tracker for Android
https://bailu.ch/aat
GNU General Public License v3.0
158 stars 41 forks source link

BLE Cadence & Speed sensor issue #56

Closed arsab closed 5 years ago

arsab commented 5 years ago

In my case the HR sensor work as expected but

the Cadence & Speed sensor state to have connected but does not show value nor record Gpx (it is able to report data to other applications)

These does not show yet on the release note but will be nice features moving forward

arsab commented 5 years ago

I tried to debug and found few point which might help: I have Sunding - 515 which is quite standard, I made Arduino driver for ESP32 http://www.sunding.com/en/plus/view.php?aid=45.

By putting traces and changing few simple code: I do not master Android ;-( realized that the main issue for that is on setting of following flags:

arsab commented 5 years ago

Got it : the bit 2 on CSC Feature is more about location rather then capability so changing readCscFeature as follows solve the problem.

private void readCscFeature(byte[] v) {
    if (v.length > 0) {
        byte b = v[0];
        isCadenceSensor = ID.isBitSet(b, BIT_CADENCE);
        isSpeedSensor = ID.isBitSet(b, BIT_SPEED);
    }
}

https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=261450 Section 3.2, 3.3

Bit |   CSC Feature Bit |   Static Requirement 0 | Wheel Revolution Data Supported | Lifetime 1 | Crank Revolution Data Supported | Lifetime 2 | Multiple Sensor Locations Supported | Lifetime 3-15 | Reserved for Future Use | Not defined.

bailuk commented 5 years ago

Thank you for this detailed bug report. Detection of multiple sensors should now work.