Clean up logic within updateValue and checkThresholds

Work around problems with floating-point equality
Require small difference in order to publish new value
Always check thresholds, regardless of magnitude of change
This avoids problem of small change not triggering thresholds
Using "Schmitt trigger" logic to avoid threshold jitter spam
If threshold changed, threshold will always be checked next reading
This avoids problem of threshold changes not taking immediate effect
Added debugging counters for testing checkThresholds

Signed-off-by: Josh Lehan <krellan@google.com>
Change-Id: Ie8a0245382f7ce339ea3cb837a64b3fee119c71e
2 files changed
tree: 687fe5f1cd248e467ce147c136f74d0f11e4563e
  1. cmake/
  2. include/
  3. service_files/
  4. src/
  5. tests/
  6. .clang-format
  7. .clang-ignore
  8. .gitignore
  9. cmake-format.json
  10. CMakeLists.txt
  11. Jenkinsfile
  12. LICENSE
  13. MAINTAINERS
  14. README.md
README.md

dbus-sensors

dbus-sensors is a collection of sensor applications that provide the xyz.openbmc_project.Sensor collection of interfaces. They read sensor values from hwmon, d-bus, or direct driver access to provide readings. Some advance non-sensor features such as fan presence, pwm control, and automatic cpu detection (x86) are also supported.

key features

  • runtime re-configurable from d-bus (entity-manager or the like)

  • isolated: each sensor type is isolated into its own daemon, so a bug in one sensor is unlikely to affect another, and single sensor modifications are possible

  • async single-threaded: uses sdbusplus/asio bindings

  • multiple data inputs: hwmon, d-bus, direct driver access