| #include "SensorPaths.hpp" |
| |
| #include <regex> |
| #include <string> |
| |
| namespace sensor_paths |
| { |
| |
| // This is an allowlist of the units a sensor can measure. Should be in sync |
| // with |
| // phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Sensor/Value.interface.yaml#L38 |
| |
| std::string getPathForUnits(const std::string& units) |
| { |
| if (units == "DegreesC" || units == unitDegreesC) |
| { |
| return "temperature"; |
| } |
| if (units == "RPMS" || units == unitRPMs) |
| { |
| return "fan_tach"; |
| } |
| if (units == "Volts" || units == unitVolts) |
| { |
| return "voltage"; |
| } |
| if (units == "Meters" || units == unitMeters) |
| { |
| return "altitude"; |
| } |
| if (units == "Amperes" || units == unitAmperes) |
| { |
| return "current"; |
| } |
| if (units == "Watts" || units == unitWatts) |
| { |
| return "power"; |
| } |
| if (units == "Joules" || units == unitJoules) |
| { |
| return "energy"; |
| } |
| if (units == "Percent" || units == unitPercent) |
| { |
| return "utilization"; |
| } |
| if (units == "Pascals" || units == unitPascals) |
| { |
| return "pressure"; |
| } |
| return ""; |
| } |
| |
| std::string escapePathForDbus(const std::string& name) |
| { |
| return std::regex_replace(name, std::regex("[^a-zA-Z0-9_/]+"), "_"); |
| } |
| |
| } // namespace sensor_paths |