https://forum.pjrc.com/threads/43110-Ant-libarary-and-USB-driver-for-Teensy-3-5-6?p=157155&viewfull=1#post157155main
| @@ -877,12 +877,18 @@ public: | |||
| user_onHeartRateMonitor = f; | |||
| } | |||
| void onSpeedCadence(void (*f)(float speed, float distance, float rpm), uint32_t devid=0) { | |||
| profileSetup_SPDCAD(&ant.dcfg[PROFILE_SPDCAD], devid); | |||
| memset(&spdcad, 0, sizeof(spdcad)); | |||
| user_onSpeedCadence = f; | |||
| } | |||
| void onSpeed(void (*f)(float speed, float distance), uint32_t devid=0) { | |||
| profileSetup_SPEED(&ant.dcfg[PROFILE_SPEED], devid); | |||
| memset(&spd, 0, sizeof(spd)); | |||
| user_onSpeed = f; | |||
| } | |||
| void onCadence(void (*f)(float rpm), uint32_t devid=0) { | |||
| profileSetup_CADENCE(&ant.dcfg[PROFILE_CADENCE], devid); | |||
| memset(&cad, 0, sizeof(cad)); | |||
| user_onCadence = f; | |||
| } | |||
| void setWheelCircumference(float meters) { | |||
| @@ -1130,9 +1130,9 @@ void AntPlus::payload_SPDCAD(TDCONFIG *cfg, const uint8_t *data, const size_t da | |||
| uint16_t speedTime = data[5] | (data[6] << 8); | |||
| uint16_t speedCt = data[7] | (data[8] << 8); | |||
| if (cadenceTime == spdcad.previous.cadenceTime | |||
| && cadenceCt != spdcad.previous.cadenceCt | |||
| && speedTime != spdcad.previous.speedTime | |||
| && speedCt != spdcad.previous.speedCt) { | |||
| && cadenceCt == spdcad.previous.cadenceCt | |||
| && speedTime == spdcad.previous.speedTime | |||
| && speedCt == spdcad.previous.speedCt) { | |||
| return; // no change | |||
| } | |||
| uint16_t cadence = (60 * (cadenceCt - spdcad.previous.cadenceCt) * 1024) / (cadenceTime - spdcad.previous.cadenceTime); | |||