PaulStoffregen 2017-10-21 08:45:09 -07:00
parent 5c6d3c9e32
commit f890ec1955
2 changed files with 9 additions and 3 deletions

View File

@ -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) {

View File

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