monitor: Allow missing sensors
Don't count sensors that don't exist as nonfunctional. Let some
other application decide if missing sensors are a problem or not.
Change-Id: Ie3d438c92df16bfd86ddc86db8a9dd143bf2cfb0
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/monitor/tach_sensor.cpp b/monitor/tach_sensor.cpp
index 0ec52ba..a4ebcd9 100644
--- a/monitor/tach_sensor.cpp
+++ b/monitor/tach_sensor.cpp
@@ -77,11 +77,21 @@
_timer(events, [this, &fan](){ fan.timerExpired(*this); })
{
//Load in starting Target and Input values
- readProperty(FAN_SENSOR_VALUE_INTF,
- FAN_VALUE_PROPERTY,
- _name,
- _bus,
- _tachInput);
+
+ try
+ {
+ // Use getProperty directly to allow a missing sensor object
+ // to abort construction.
+ _tachInput = util::SDBusPlus::getProperty<decltype(_tachInput)>(
+ _bus,
+ _name,
+ FAN_SENSOR_VALUE_INTF,
+ FAN_VALUE_PROPERTY);
+ }
+ catch (std::exception& e)
+ {
+ throw InvalidSensorError();
+ }
if (_hasTarget)
{