Add critical sensor units to lcd display
Get sensor type from path and add its unit to output
on debug card LCD display.
Tested: verified with lcd debug card screen.
Change-Id: I7caf7d7b58d25662614ee38b1c84d5d32808d2f3
Signed-off-by: Vijay Khemka <vijaykhemka@fb.com>
diff --git a/src/storagecommands.cpp b/src/storagecommands.cpp
index d38008e..3c11372 100644
--- a/src/storagecommands.cpp
+++ b/src/storagecommands.cpp
@@ -860,6 +860,37 @@
return 0;
}
+const static boost::container::flat_map<const char *, std::string, CmpStr>
+ sensorUnitStr{{{"temperature", "C"},
+ {"voltage", "V"},
+ {"current", "mA"},
+ {"fan_tach", "RPM"},
+ {"fan_pwm", "RPM"},
+ {"power", "W"}}};
+
+int getSensorUnit(std::string &name, std::string &unit)
+{
+ std::string connection;
+ std::string path;
+ int ret = -1;
+
+ ret = getSensorConnectionByName(name, connection, path);
+ if (ret < 0)
+ {
+ return ret;
+ }
+
+ std::string sensorTypeStr = getSensorTypeStringFromPath(path);
+ auto findSensor = sensorUnitStr.find(sensorTypeStr.c_str());
+ if (findSensor != sensorUnitStr.end())
+ {
+ unit = findSensor->second;
+ return 0;
+ }
+ else
+ return -1;
+}
+
void registerStorageFunctions()
{
// <READ FRU Data>