diff options
Diffstat (limited to 'control/fan.cpp')
-rw-r--r-- | control/fan.cpp | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/control/fan.cpp b/control/fan.cpp index d4303cf..c86186f 100644 --- a/control/fan.cpp +++ b/control/fan.cpp @@ -65,13 +65,25 @@ void Fan::setSpeed(uint64_t speed) for (auto& sensor : _sensors) { auto value = speed; - util::SDBusPlus::setProperty<uint64_t>( - _bus, - sensor.second, - sensor.first, - _interface, - FAN_TARGET_PROPERTY, - std::move(value)); + try + { + util::SDBusPlus::setProperty<uint64_t>( + _bus, + sensor.second, + sensor.first, + _interface, + FAN_TARGET_PROPERTY, + std::move(value)); + } + catch (const sdbusplus::exception::SdBusError&) + { + throw util::DBusPropertyError{ + "DBus set property failed", + sensor.second, + sensor.first, + _interface, + FAN_TARGET_PROPERTY}; + } } _targetSpeed = speed; |