| #include "SensorPaths.hpp" |
| |
| #include <regex> |
| #include <string> |
| #include <string_view> |
| |
| 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(std::string_view units) |
| { |
| for (const auto& unit : unitsMap) |
| { |
| if (unit.dbusUnitName == units || unit.dbusPathName == units) |
| { |
| return std::string(unit.emUnitName); |
| } |
| } |
| return ""; |
| } |
| |
| std::string escapePathForDbus(const std::string& name) |
| { |
| return std::regex_replace(name, std::regex("[^a-zA-Z0-9_/]+"), "_"); |
| } |
| |
| std::string convertToFullUnits(const std::string& units) |
| { |
| for (const auto& unit : unitsMap) |
| { |
| if (unit.dbusUnitName == units) |
| { |
| return std::string(unit.dbusPathName); |
| } |
| } |
| return ""; |
| } |
| |
| } // namespace sensor_paths |