Add double support for sensor interface

Add support for reading sensors that produce a double
as the value. Use a visitor to pull out the sensor value
so type doesn't matter.

Change-Id: I37c05e7077ead6f3084ab9704a1b2c62becb5e19
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/dbus/dbuspassive.cpp b/dbus/dbuspassive.cpp
index daeef62..da9b387 100644
--- a/dbus/dbuspassive.cpp
+++ b/dbus/dbuspassive.cpp
@@ -97,7 +97,7 @@
 int HandleSensorValue(sdbusplus::message::message& msg, DbusPassive* owner)
 {
     std::string msgSensor;
-    std::map<std::string, sdbusplus::message::variant<int64_t>> msgData;
+    std::map<std::string, sdbusplus::message::variant<int64_t, double>> msgData;
 
     msg.read(msgSensor, msgData);
 
@@ -106,10 +106,10 @@
         auto valPropMap = msgData.find("Value");
         if (valPropMap != msgData.end())
         {
-            int64_t rawValue = sdbusplus::message::variant_ns::get<int64_t>(
-                valPropMap->second);
+            double value = mapbox::util::apply_visitor(VariantToDoubleVisitor(),
+                                                       valPropMap->second);
 
-            double value = rawValue * std::pow(10, owner->getScale());
+            value *= std::pow(10, owner->getScale());
 
             owner->setValue(value);
         }