diff options
Diffstat (limited to 'monitor/fan.cpp')
-rw-r--r-- | monitor/fan.cpp | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/monitor/fan.cpp b/monitor/fan.cpp index a6af74a..f24312d 100644 --- a/monitor/fan.cpp +++ b/monitor/fan.cpp @@ -134,34 +134,32 @@ void Fan::tachChanged(TachSensor& sensor) } -uint64_t Fan::getTargetSpeed(const TachSensor& sensor) +uint64_t Fan::findTargetSpeed() { uint64_t target = 0; - - if (sensor.hasTarget()) - { - target = sensor.getTarget(); - } - else + //The sensor doesn't support a target, + //so get it from another sensor. + auto s = std::find_if(_sensors.begin(), _sensors.end(), + [](const auto& s) + { + return s->hasTarget(); + }); + + if (s != _sensors.end()) { - //The sensor doesn't support a target, - //so get it from another sensor. - auto s = std::find_if(_sensors.begin(), _sensors.end(), - [](const auto& s) - { - return s->hasTarget(); - }); - - if (s != _sensors.end()) - { - target = (*s)->getTarget(); - } + target = (*s)->getTarget(); } return target; } +uint64_t Fan::getTargetSpeed(const TachSensor& sensor) +{ + return sensor.getTarget(); +} + + bool Fan::tooManySensorsNonfunctional() { size_t numFailed = std::count_if(_sensors.begin(), _sensors.end(), |