Handle power state changes
We need to check if power is on as the hsbp goes away
during power off. This copies the power logic from
dbus-sensors and uses it to avoid scanning when power
is off.
Tested: Warnings go away
Change-Id: Ie949e7a98eb70592318710f3eecdfe766f71f110
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/hsbp-manager/src/hsbp_manager.cpp b/hsbp-manager/src/hsbp_manager.cpp
index 08874e9..83ebdf3 100644
--- a/hsbp-manager/src/hsbp_manager.cpp
+++ b/hsbp-manager/src/hsbp_manager.cpp
@@ -95,10 +95,18 @@
{
return 1;
}
+
+ if (!isPowerOn())
+ {
+ std::cerr << "Can't change blink state when power is off\n";
+ throw std::runtime_error(
+ "Can't change blink state when power is off");
+ }
BlinkPattern pattern =
req ? BlinkPattern::error : BlinkPattern::terminate;
if (!self->set(pattern))
{
+ std::cerr << "Can't change blink pattern\n";
throw std::runtime_error("Cannot set blink pattern");
}
val = req;
@@ -281,6 +289,13 @@
std::cerr << "timer error " << ec.message() << "\n";
return;
}
+
+ if (!isPowerOn())
+ {
+ // can't access hsbp when power is off
+ runTimer();
+ return;
+ }
uint8_t curPresence = 0;
uint8_t curIFDET = 0;
uint8_t curFailed = 0;
@@ -857,5 +872,6 @@
});
io.post([]() { populate(); });
+ setupPowerMatch(conn);
io.run();
}