Add support for dbus parameter
Added support for parameter type dbus sensor and utility functions
to read dbus sensor value.
Signed-off-by: Vijay Khemka <vijaykhemka@fb.com>
Change-Id: I04db0016f312edea095442a693500c3b4e571d6c
diff --git a/virtualSensor.cpp b/virtualSensor.cpp
index ef8543f..501d9cd 100644
--- a/virtualSensor.cpp
+++ b/virtualSensor.cpp
@@ -39,6 +39,9 @@
case constParam:
return value;
break;
+ case dbusParam:
+ return dbusSensor->getSensorValue();
+ break;
default:
throw std::invalid_argument("param type not supported");
}
@@ -92,7 +95,30 @@
}
}
- /* TODO: Check for dbus parameter */
+ /* Check for dbus parameter */
+ auto dbusParams = params.value("DbusParam", empty);
+ if (!dbusParams.empty())
+ {
+ for (auto& j : dbusParams)
+ {
+ /* Get parameter dbus sensor descriptor */
+ auto desc = j.value("Desc", empty);
+ if ((!desc.empty()) && (j.find("ParamName") != j.end()))
+ {
+ std::string sensorType = desc.value("SensorType", "");
+ std::string name = desc.value("Name", "");
+
+ if (!sensorType.empty() && !name.empty())
+ {
+ std::string objPath(sensorDbusPath);
+ objPath += sensorType + "/" + name;
+
+ auto paramPtr = std::make_unique<SensorParam>(bus, objPath);
+ paramMap.emplace(j["ParamName"], std::move(paramPtr));
+ }
+ }
+ }
+ }
/* Print all parameters for debug purpose only */
if (DEBUG)