diff --git a/src/ANTChannel.cpp b/src/ANTChannel.cpp index c6232ada3..9e0871d6a 100644 --- a/src/ANTChannel.cpp +++ b/src/ANTChannel.cpp @@ -442,10 +442,19 @@ void ANTChannel::broadcastEvent(unsigned char *ant_message) // case ANT_STANDARD_POWER: // 0x10 - standard power { - if (lastStdPwrMessage.type != 0) { + uint8_t events = antMessage.eventCount - lastStdPwrMessage.eventCount; + if (lastStdPwrMessage.type && events) { + stdNullCount = 0; is_alt ? parent->setAltWatts(antMessage.instantPower) : parent->setWatts(antMessage.instantPower); value2 = value = antMessage.instantPower; parent->setCadence(antMessage.instantCadence); // cadence + } else { + stdNullCount++; + if (stdNullCount >= 2) { //XXX 2 for standard power? + parent->setCadence(0); + is_alt ? parent->setAltWatts(0) : parent->setWatts(0); + value2 = value = 0; + } } lastStdPwrMessage = antMessage; savemessage = false; diff --git a/src/ANTChannel.h b/src/ANTChannel.h index 6e8874ef1..dc99c80b2 100644 --- a/src/ANTChannel.h +++ b/src/ANTChannel.h @@ -81,7 +81,7 @@ class ANTChannel : public QObject { ANT *parent; ANTMessage lastMessage, lastStdPwrMessage; - int dualNullCount, nullCount; + int dualNullCount, nullCount, stdNullCount; double last_message_timestamp; double blanking_timestamp; int blanked;