summaryrefslogtreecommitdiff
path: root/hsbp-manager/src/hsbp_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'hsbp-manager/src/hsbp_manager.cpp')
-rw-r--r--hsbp-manager/src/hsbp_manager.cpp16
1 files changed, 16 insertions, 0 deletions
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 @@ struct Led : std::enable_shared_from_this<Led>
{
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 @@ struct Backplane
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 @@ int main()
});
io.post([]() { populate(); });
+ setupPowerMatch(conn);
io.run();
}