74 lines
2.7 KiB
C++
74 lines
2.7 KiB
C++
/*
|
|
* ThermalXmlParser.h
|
|
*
|
|
* Copyright (C) 2016 Spreadtrum Communications Inc.
|
|
*/
|
|
#ifndef THERMALXMLPARSER_H_
|
|
#define THERMALXMLPARSER_H_
|
|
|
|
#include <deque>
|
|
#include "tinyxml2.h"
|
|
|
|
namespace android {
|
|
|
|
class ThermalSensor;
|
|
class ThermalZoneLevel;
|
|
class ThermalTrip;
|
|
|
|
class ThermalXmlParser {
|
|
public:
|
|
ThermalXmlParser();
|
|
~ThermalXmlParser();
|
|
std::deque<ThermalSensor*>& 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<ThermalSensor*> mSensorDeque;
|
|
};
|
|
}; // namespace android
|
|
|
|
#endif // THERMALXMLPARSER_H_
|