summaryrefslogtreecommitdiffstats
path: root/fan_enclosure.cpp
diff options
context:
space:
mode:
authorMatthew Barth <msbarth@us.ibm.com>2017-02-17 17:48:56 -0600
committerMatthew Barth <msbarth@us.ibm.com>2017-03-15 13:46:25 -0500
commitcd4f4d1a0a49f4ed43b3a773d2e2046cc15ef1d1 (patch)
tree968a6a326d2ccf4dac30deb5c786a2ae6833ba3b /fan_enclosure.cpp
parentd64038262e4c8743ae774efde7a8e91544ed359b (diff)
downloadphosphor-fan-presence-cd4f4d1a0a49f4ed43b3a773d2e2046cc15ef1d1.tar.gz
phosphor-fan-presence-cd4f4d1a0a49f4ed43b3a773d2e2046cc15ef1d1.zip
Enable tach signal handler
Register and handle tach change signals for each tach sensor. Inventory would be updated when all tach sensors for a specific fan enclosure have a tach value of zero. Change-Id: Idd3f53c29c68c6171d858e616fbfe868f30a4ea9 Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
Diffstat (limited to 'fan_enclosure.cpp')
-rw-r--r--fan_enclosure.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/fan_enclosure.cpp b/fan_enclosure.cpp
index 46efeb5..b02d6e1 100644
--- a/fan_enclosure.cpp
+++ b/fan_enclosure.cpp
@@ -1,3 +1,4 @@
+#include <algorithm>
#include "fan_enclosure.hpp"
@@ -13,6 +14,19 @@ void FanEnclosure::addInventory()
//TODO Add this fan to inventory
}
+void FanEnclosure::updInventory()
+{
+ auto presPred = [](auto const& s) {return s->isPresent();};
+ // Determine if all sensors show fan is not present
+ auto isPresent = std::any_of(FanEnclosure::sensors.begin(),
+ FanEnclosure::sensors.end(),
+ presPred);
+ if (!isPresent)
+ {
+ //TODO Update inventory for this fan
+ }
+}
+
void FanEnclosure::addSensor(
std::unique_ptr<Sensor>&& sensor)
{
OpenPOWER on IntegriCloud