1
0
mirror of https://github.com/gdsports/USBHost_t36 synced 2024-11-27 03:22:24 -05:00
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; user_onHeartRateMonitor = f;
} }
void onSpeedCadence(void (*f)(float speed, float distance, float rpm), uint32_t devid=0) { 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; user_onSpeedCadence = f;
} }
void onSpeed(void (*f)(float speed, float distance), uint32_t devid=0) { 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; user_onSpeed = f;
} }
void onCadence(void (*f)(float rpm), uint32_t devid=0) { 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; user_onCadence = f;
} }
void setWheelCircumference(float meters) { 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 speedTime = data[5] | (data[6] << 8);
uint16_t speedCt = data[7] | (data[8] << 8); uint16_t speedCt = data[7] | (data[8] << 8);
if (cadenceTime == spdcad.previous.cadenceTime if (cadenceTime == spdcad.previous.cadenceTime
&& cadenceCt != spdcad.previous.cadenceCt && cadenceCt == spdcad.previous.cadenceCt
&& speedTime != spdcad.previous.speedTime && speedTime == spdcad.previous.speedTime
&& speedCt != spdcad.previous.speedCt) { && speedCt == spdcad.previous.speedCt) {
return; // no change return; // no change
} }
uint16_t cadence = (60 * (cadenceCt - spdcad.previous.cadenceCt) * 1024) / (cadenceTime - spdcad.previous.cadenceTime); uint16_t cadence = (60 * (cadenceCt - spdcad.previous.cadenceCt) * 1024) / (cadenceTime - spdcad.previous.cadenceTime);