From b5f45d20e6d433e9fbfa42ecd1ea04283c8277a5 Mon Sep 17 00:00:00 2001 From: Stefan Schake Date: Tue, 13 Jan 2015 21:21:14 +0100 Subject: [PATCH] Periodically refresh Tacx Vortex load setpoint to avoid dropouts Signed-off-by: Stefan Schake --- src/ANT.cpp | 9 +++++++++ src/ANT.h | 1 + src/ANTChannel.cpp | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/src/ANT.cpp b/src/ANT.cpp index de97f22fa..f7512a876 100644 --- a/src/ANT.cpp +++ b/src/ANT.cpp @@ -266,6 +266,15 @@ ANT::setLoad(double load) sendMessage(ANTMessage::tacxVortexSetPower(vortexChannel, vortexID, (int)load)); } } + +void ANT::refreshVortexLoad() +{ + if (vortexChannel == -1) + return; + + sendMessage(ANTMessage::tacxVortexSetPower(vortexChannel, vortexID, (int)load)); +} + void ANT::setGradient(double gradient) { diff --git a/src/ANT.h b/src/ANT.h index 59ec795f1..3629e8358 100644 --- a/src/ANT.h +++ b/src/ANT.h @@ -415,6 +415,7 @@ public: } void setVortexData(int channel, int id); + void refreshVortexLoad(); private: diff --git a/src/ANTChannel.cpp b/src/ANTChannel.cpp index 26df20dd8..34a373e03 100644 --- a/src/ANTChannel.cpp +++ b/src/ANTChannel.cpp @@ -661,6 +661,11 @@ void ANTChannel::broadcastEvent(unsigned char *ant_message) // Tacx Vortex trainer case CHANNEL_TYPE_TACX_VORTEX: { + static int loadRefreshCounter = 1; + + if (((loadRefreshCounter++) % 10) == 0) + parent->refreshVortexLoad(); + if (antMessage.vortexPage == TACX_VORTEX_DATA_CALIBRATION) parent->setVortexData(number, antMessage.vortexId); else if (antMessage.vortexPage == TACX_VORTEX_DATA_SPEED)