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); |