/* * ThermalXmlParser.h * * Copyright (C) 2016 Spreadtrum Communications Inc. */ #ifndef THERMALXMLPARSER_H_ #define THERMALXMLPARSER_H_ #include #include "tinyxml2.h" namespace android { class ThermalSensor; class ThermalZoneLevel; class ThermalTrip; class ThermalXmlParser { public: ThermalXmlParser(); ~ThermalXmlParser(); std::deque& initSensorsFromXml(void); private: bool matchChipInfo(int id, int mask, const char* chip_file); ThermalSensor* getSensorArgs(tinyxml2::XMLElement* pSensorChild); ThermalZoneLevel* getZoneLevelArgs(tinyxml2::XMLElement* pLevelNode); ThermalTrip* getTripArgs(tinyxml2::XMLElement* pActionNode); int matchBinInfo(tinyxml2::XMLElement* pLevelNode, ThermalSensor* pSensor, int levelId); bool binIsMatched(int value, int block, int mask, const char* file); int searchSensor(tinyxml2::XMLElement* element, ThermalSensor* pSensor, const char* type); int matchSensorFile(ThermalSensor* pSensor, const char* type, bool isBackup); bool isTempValid(const char* tempPath); int matchActionFile(std::string& file, std::string name); const char* CONFIG_FILE_PATH = "/etc/thermalSensorsConfig.xml"; const char* CONFIG_DEBUG_FILE_PATH = "/home/root/thermalSensorsConfig.xml"; const char* CONFIG_FILE_SENSOR_PATH = "/sys/class/thermal"; const char* CONFIG_CHIP_INFO = "chip_info"; const char* CONFIG_SENSOR = "sensor"; const char* CONFIG_CHIPID = "chip_id"; const char* CONFIG_SENSOR_TYPE = "sensor_type"; const char* CONFIG_BACKUP_SENSOR = "backup_sensor"; const char* CONFIG_SENSOR_NAME = "sensor_name"; const char* CONFIG_SENSOR_FILE = "sensor_file"; const char* CONFIG_SENSOR_POLLING_DELAY = "polling_delay"; const char* CONFIG_SENSOR_AVG_PERIOD = "AvgPeriod"; const char* CONFIG_SENSOR_DRO_PERIOD = "DroPeriod"; const char* CONFIG_ZONE_LEVEL = "zone_level"; const char* CONFIG_BINNING = "binning"; const char* CONFIG_TEMP = "temp"; const char* CONFIG_HYST_TEMP = "hyst_temp"; const char* CONFIG_TRIP = "trip"; const char* CONFIG_ACTION = "action"; const char* CONFIG_BIN = "bin"; const char* CONFIG_LIMIT_TRIP = "limit_trip"; const char* CONFIG_INIT_TRIP = "init_trip"; const char* CONFIG_PERF_TRIP = "perf_trip"; const char* CONFIG_ACTION_NAME = "name"; const char* CONFIG_ACTION_ARG = "arg"; const char* CONFIG_ACTION_FILE = "file"; const char* CPU_TYPE0 = "soc-thmzone"; const char* CPU_TYPE1 = "cpu-thmzone"; const char* COOLING_TYPE0 = "thermal-cpu-0"; const char* COOLING_TYPE1 = "thermal-cpu-1"; const char* COOLING_TYPE2 = "thermal-cpu-2"; std::deque mSensorDeque; }; }; // namespace android #endif // THERMALXMLPARSER_H_