diff --git a/src/NullController.cpp b/src/NullController.cpp index ff3d59f8e..3c7280ffd 100644 --- a/src/NullController.cpp +++ b/src/NullController.cpp @@ -26,8 +26,8 @@ #include NullController::NullController(TrainTool *parent, - DeviceConfiguration *) - : RealtimeController(parent), parent(parent), load(100) + DeviceConfiguration *dc) + : RealtimeController(parent, dc), parent(parent), load(100) { } @@ -49,11 +49,12 @@ int NullController::restart() { void NullController::getRealtimeData(RealtimeData &rtData) { rtData.setName((char *)"Null"); - rtData.setWatts(load + ((rand()%25)-15)); + rtData.setWatts(load + ((rand()%25)-15)); // for testing virtual power rtData.setLoad(load); - rtData.setSpeed(45 + ((rand()%5)-2)); + rtData.setSpeed(25 + ((rand()%5)-2)); rtData.setCadence(85 + ((rand()%10)-5)); rtData.setHr(145 + ((rand()%3)-2)); + processRealtimeData(rtData); // for testing virtual power etc } void NullController::pushRealtimeData(RealtimeData &) { diff --git a/src/RealtimeController.cpp b/src/RealtimeController.cpp index f95127ee7..a6274e5a9 100644 --- a/src/RealtimeController.cpp +++ b/src/RealtimeController.cpp @@ -102,9 +102,12 @@ RealtimeController::processRealtimeData(RealtimeData &rtData) // for the data / analysis see: http://wattagetraining.com/forum/viewtopic.php?f=2&t=335 rtData.setWatts((0.21*pow(V,3))+(4.25*V)); } + break; default : // unknown - do nothing break; } + // if calculating but no cadence then power must be set to zero + if (dc->postProcess && !rtData.getCadence()) rtData.setWatts(0); } // for future devices, we may need to setup algorithmic tables etc