summaryrefslogtreecommitdiffstats
path: root/presence/tach_detect.cpp
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2017-07-12 15:57:14 -0400
committerPatrick Williams <patrick@stwcx.xyz>2017-08-02 20:18:19 +0000
commit372b22c3ebcdfa606c95f4b9afac5cfcbb7eaebb (patch)
tree62c25bdd9f4d9ad4772185b0b1026c7aae8f4ef8 /presence/tach_detect.cpp
parent76596b2190d82ff00707ff6fb4e751cfff4c8ae8 (diff)
downloadphosphor-fan-presence-372b22c3ebcdfa606c95f4b9afac5cfcbb7eaebb.tar.gz
phosphor-fan-presence-372b22c3ebcdfa606c95f4b9afac5cfcbb7eaebb.zip
presence: Switch to new framework
Switch the main application logic to the output produced by the new parser previously. Remove unused code. Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> Change-Id: If8b262bd80fd0f0135aeea55e578fb3c7f44339a
Diffstat (limited to 'presence/tach_detect.cpp')
-rw-r--r--presence/tach_detect.cpp73
1 files changed, 10 insertions, 63 deletions
diff --git a/presence/tach_detect.cpp b/presence/tach_detect.cpp
index 6ec5a5c..da0f40f 100644
--- a/presence/tach_detect.cpp
+++ b/presence/tach_detect.cpp
@@ -13,79 +13,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <phosphor-logging/log.hpp>
-#include <vector>
-#include "fan_enclosure.hpp"
-#include "fan_detect_defs.hpp"
#include "generated.hpp"
#include "sdbusplus.hpp"
-#include "tach_sensor.hpp"
+#include "sdevent.hpp"
int main(void)
{
using namespace phosphor::fan;
- using namespace std::literals::string_literals;
- using namespace phosphor::logging;
- std::vector<std::unique_ptr<phosphor::fan::presence::FanEnclosure>> fans;
+ auto& event = util::SDEvent::getEvent();
+ event.attach(util::SDBusPlus::getBus());
- for (auto const& detectMap: fanDetectMap)
+ for (auto& p: presence::ConfigPolicy::get())
{
- if (detectMap.first == "tach")
- {
- for (auto const& fanProp: detectMap.second)
- {
- auto path = "/xyz/openbmc_project/inventory"s +
- std::get<0>(fanProp);
-
- auto state = presence::UNKNOWN;
- try
- {
- auto boolstate = util::SDBusPlus::getProperty<bool>(
- path,
- "xyz.openbmc_project.Inventory.Item"s,
- "Present"s);
- state = boolstate ?
- presence::PRESENT : presence::NOT_PRESENT;
- }
- catch (const std::exception& err)
- {
- log<level::INFO>(err.what());
- }
-
- auto fan = std::make_unique<
- phosphor::fan::presence::FanEnclosure>(fanProp,
- state);
- for (auto const &fanSensor: std::get<2>(fanProp))
- {
- auto initialSpeed = static_cast<int64_t>(0);
- auto sensorPath =
- "/xyz/openbmc_project/sensors/fan_tach/"s +
- fanSensor;
- initialSpeed = util::SDBusPlus::getProperty<int64_t>(
- sensorPath,
- "xyz.openbmc_project.Sensor.Value"s,
- "Value"s);
-
- auto sensor = std::make_unique<
- phosphor::fan::presence::TachSensor>(fanSensor,
- *fan,
- initialSpeed != 0);
- fan->addSensor(std::move(sensor));
- }
-
- fan->updInventory();
- fans.push_back(std::move(fan));
- }
- }
+ p->monitor();
}
- while (true)
- {
- // Respond to dbus signals
- util::SDBusPlus::getBus().process_discard();
- util::SDBusPlus::getBus().wait();
- }
- return 0;
+ event.loop();
+
+ // The loop should never exit. Exit with
+ // non zero status just in case.
+ return 1;
}
OpenPOWER on IntegriCloud