Lines Matching full:sensor

86         for (auto& sensor : _sensors)  in Fan()  local
87 sensor->setFunctional(true); in Fan()
180 std::for_each(_sensors.begin(), _sensors.end(), [this](auto& sensor) { in startMonitor() argument
183 // Force a getProperty call to check if the tach sensor is in startMonitor()
188 sensor->updateTachAndTarget(); in startMonitor()
189 tachChanged(*sensor); in startMonitor()
194 // sensor is nonfunctional, but skip creating an in startMonitor()
197 "Monitoring starting but {} sensor value not on D-Bus", in startMonitor()
198 sensor->name())); in startMonitor()
200 sensor->setFunctional(false, true); in startMonitor()
230 void Fan::tachChanged(TachSensor& sensor) in tachChanged() argument
239 if (!_trustManager->checkTrust(sensor)) in tachChanged()
246 // to an out of range sensor the count timer will take over in calling in tachChanged()
247 // process() until the sensor is healthy again. in tachChanged()
248 if (!sensor.countTimerRunning()) in tachChanged()
250 process(sensor); in tachChanged()
254 void Fan::countTimerExpired(TachSensor& sensor) in countTimerExpired() argument
256 if (_trustManager->active() && !_trustManager->checkTrust(sensor)) in countTimerExpired()
260 process(sensor); in countTimerExpired()
263 void Fan::process(TachSensor& sensor) in process() argument
265 // If this sensor is out of range at this moment, start in process()
269 // If this sensor is OK, put everything back into a good state. in process()
271 if (outOfRange(sensor)) in process()
273 if (sensor.functional()) in process()
275 switch (sensor.getMethod()) in process()
279 sensor.startTimer(TimerMode::nonfunc); in process()
283 if (!sensor.countTimerRunning()) in process()
285 sensor.startCountTimer(); in process()
287 sensor.setCounter(true); in process()
288 if (sensor.getCounter() >= sensor.getThreshold()) in process()
290 updateState(sensor); in process()
298 switch (sensor.getMethod()) in process()
301 if (sensor.functional()) in process()
303 if (sensor.timerRunning()) in process()
305 sensor.stopTimer(); in process()
311 sensor.startTimer(TimerMode::func); in process()
315 sensor.setCounter(false); in process()
316 if (sensor.getCounter() == 0) in process()
318 if (!sensor.functional()) in process()
320 updateState(sensor); in process()
323 sensor.stopCountTimer(); in process()
333 // The sensor doesn't support a target, in findTargetSpeed()
334 // so get it from another sensor. in findTargetSpeed()
354 bool Fan::outOfRange(const TachSensor& sensor) in outOfRange() argument
356 if (!sensor.hasOwner()) in outOfRange()
361 auto actual = static_cast<uint64_t>(sensor.getInput()); in outOfRange()
362 auto range = sensor.getRange(_deviation, _upperDeviation); in outOfRange()
368 void Fan::updateState(TachSensor& sensor) in updateState() argument
375 auto range = sensor.getRange(_deviation, _upperDeviation); in updateState()
382 // Skip starting the error timer if the sensor in updateState()
384 sensor.setFunctional(!sensor.functional(), !sensor.hasOwner()); in updateState()
387 "Setting tach sensor {} functional state to {}. " in updateState()
390 sensor.name(), sensor.functional(), sensor.getTarget(), in updateState()
391 sensor.getInput(), range.first, rangeMax, sensor.hasOwner())); in updateState()
394 // with fan FRU functional status, only sensor functional status. in updateState()
422 // Skip the power off rule checks if the sensor isn't in updateState()
424 _system.fanStatusChange(*this, !sensor.hasOwner()); in updateState()
482 std::for_each(_sensors.begin(), _sensors.end(), [](auto& sensor) { in presenceChanged() argument
483 sensor->setFunctional(true); in presenceChanged()
484 sensor->resetMethod(); in presenceChanged()
505 void Fan::sensorErrorTimerExpired(const TachSensor& sensor) in sensorErrorTimerExpired() argument
509 _system.sensorErrorTimerExpired(*this, sensor); in sensorErrorTimerExpired()
522 std::for_each(_sensors.begin(), _sensors.end(), [this](auto& sensor) { in powerStateChanged() argument
525 // Force a getProperty call. If sensor is on D-Bus, in powerStateChanged()
527 sensor->updateTachAndTarget(); in powerStateChanged()
534 if (!sensor->functional()) in powerStateChanged()
536 sensor->setFunctional(true); in powerStateChanged()
541 if (sensor->getMethod() == MethodMode::count) in powerStateChanged()
543 sensor->resetMethod(); in powerStateChanged()
553 "At power on, tach sensor {} value not on D-Bus", in powerStateChanged()
554 sensor->name())); in powerStateChanged()
597 std::for_each(_sensors.begin(), _sensors.end(), [](auto& sensor) { in powerStateChanged() argument
598 if (sensor->timerRunning()) in powerStateChanged()
600 sensor->stopTimer(); in powerStateChanged()
603 sensor->stopCountTimer(); in powerStateChanged()