diff options
author | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2017-07-12 15:57:14 -0400 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2017-08-02 20:18:19 +0000 |
commit | 372b22c3ebcdfa606c95f4b9afac5cfcbb7eaebb (patch) | |
tree | 62c25bdd9f4d9ad4772185b0b1026c7aae8f4ef8 /presence/tach_detect.cpp | |
parent | 76596b2190d82ff00707ff6fb4e751cfff4c8ae8 (diff) | |
download | phosphor-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.cpp | 73 |
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; } |