Refine BridgeGpio object creation logic

This commit refines BridgeGpio object creation logic by using explicit
std::move to prevent object copy. Also, for cases of rescanning of
ADCSensors, it adjusts timing of destroying for the previous ADCSensor
to avoid double request of a gpio line.

Tested: adcsensor service was started without making a below error
even in case of a recreation sensors caused by rescanning:
  Error requesting gpio: P3VBAT_BRIDGE_EN
  terminate called after throwing an instance of 'std::system_error'
  what():  error setting GPIO line values: Operation not permitted

Change-Id: I26ca059f8fe6eea2c60605f19ec49a3e365dc66f
Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
3 files changed
tree: 2c13ac14e3eebd1621c3a8dd43964d9e564b8822
  1. cmake/
  2. include/
  3. service_files/
  4. src/
  5. tests/
  6. .clang-format
  7. .gitignore
  8. cmake-format.json
  9. CMakeLists.txt
  10. Jenkinsfile
  11. LICENSE
  12. MAINTAINERS
  13. 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