• Home
Name Date Size #Lines LOC

..--

application/12-May-2024-2,7792,080

figures/12-May-2024-

frameworks/12-May-2024-966681

interfaces/inner_api/12-May-2024-647345

sa_profile/12-May-2024-3229

services/12-May-2024-9,7677,385

test/12-May-2024-13,5909,634

utils/12-May-2024-885596

.clang-formatD12-May-20241.3 KiB3836

LICENSED12-May-20249.9 KiB177150

OAT.xmlD12-May-2024982 2610

README.mdD12-May-20246.6 KiB133113

README_zh.mdD12-May-20245.8 KiB132113

bundle.jsonD12-May-20243 KiB109108

thermalmgr.gniD12-May-20241.2 KiB2623

thermalmgr.yamlD12-May-20241.4 KiB3517

README.md

1# Thermal Manager
2
3-   [Introduction](#section0056945901)
4-   [Directory Structure](#section0056945902)
5-   [Configuration Description](#section0056945903)
6-   [Repositories Involved](#section0056945904)
7
8## Introduction<a name="section0056945901"></a>
9
10The Thermal Manager module provides the device temperature management and control capabilities to ensure the thermal safety and experience of the entire system.
11
12**Figure 1** Architecture of the Thermal Manager module
13
14![](figures/thermal_manager_architecture.png "Architecture of the thermal manager module")
15
16**Key components of the Thermal Manager module**:
17
181. Thermal Manager: provides temperature query and callback APIs for applications and other subsystems.
192. Thermal Service: implements core temperature control functions, such as temperature detection, temperature level arbitration, and action delivery, according to the configuration file.
203. Thermal HDI: implements temperature driver information reporting and driver instruction delivery according to the configuration file.
214. Thermal Protector: implements simplified temperature control in the non-running state according to the configuration file.
22
23## Directory Structure<a name="section0056945902"></a>
24```
25/base/powermgr/thermal_manager
26├── application                  # Native application
27│   ├── init                     # Init configuration
28│   └── protector                # Thermal Protector code
29├── figures                      # Architecture
30├── frameworks                   # Framework layer
31│   ├── napi                     # NAPI layer
32│   └── native                   # Native layer
33├── interface                    # API layer
34│   └── inner_api                # Internal APIs
35├── sa_profile                   # SA profile
36├── services                     # Thermal Service code
37│   ├── native                   # Native layer
38│   └── zidl                     # Zidl layer
39├── test                         # Test code
40│   ├── fuzztest                 # Fuzz test
41│   ├── unittest                 # Unit test
42│   ├── systemtest               # System test
43│   └── utils                    # Test tools
44└── utils                        # Utilities
45```
46
47## Configuration Description<a name="section0056945903"></a>
48**thermal_service_config.xml**
49Configuration example:
50
51```
52<?xml version="1.0" encoding="UTF-8"?>
53<thermal version="0.99" product="ipx">
54    <base>
55        <item tag="temperature_query_enum" value="soc,battery,shell,ambient"/>
56    </base>
57    <level>
58        <sensor_cluster name="warm_base" sensor="shell">
59            <item level="1" threshold="35000" threshold_clr="33000"/>
60            <item level="2" threshold="37000" threshold_clr="35000"/>
61            <item level="3" threshold="40000" threshold_clr="38000"/>
62        </sensor_cluster>
63        <sensor_cluster name="warm_safe" sensor="battery,pa">
64            <item level="1" threshold="48000,60000" threshold_clr="45000,55000"/>
65        </sensor_cluster>
66    </level>
67    <state>
68        <item name="screen"/>
69        <item name="charge"/>
70    </state>
71    <action>
72        <item name="cpu"/>
73        <item name="current"/>
74        <item name="shut_down" param="100"/>
75        <item name="thermal_level" strict="1"/>
76    </action>
77    <policy>
78        <config name="warm_base" level="1">
79            <cpu screen="1">2800000</cpu>
80            <cpu screen="0">2400000</cpu>
81            <current charge="1">1500</current>
82            <thermal_level>3</thermal_level>
83        </config>
84        <config name="warm_base" level="2">
85            <cpu screen="1">2200000</cpu>
86            <cpu screen="0">1800000</cpu>
87            <current charge="1">1200</current>
88            <thermal_level>4</thermal_level>
89        </config>
90        <config name="warm_base" level="3">
91            <cpu screen="1">1600000</cpu>
92            <cpu screen="0">1200000</cpu>
93            <current charge="1">1000</current>
94            <thermal_level>5</thermal_level>
95        </config>
96        <config name="warm_safe" level="1">
97            <shut_down>1</shut_down>
98        </config>
99    </policy>
100</thermal>
101```
102```
103thermal                          # Root directory. Wherein, version indicates the version number, and product indicates the product name.
104├── base                         # base directory, used to configure basic parameters.
105│   └── item                     # item directory. Wherein, tag indicates the configuration tag, and value indicates the configuration value.
106├── level                        # level directory, used to store the temperature level information.
107│   └── sensor_cluster           # sensor_cluster directory, used to configure a cluster of sensors. Wherein, name indicates the cluster name, and sensor indicates the sensor name.
108│       └── item                 # item directory, used to configure the temperature level information. Wherein, level indicates the temperature level, threshold indicates the triggering temperature, and xxx_clr indicates the setback temperature.
109├── state                        # state directory, used to configure the state machine. Wherein, name indicates the name of the state machine.
110├── action                       # action directory, used to configure actions. Wherein, name indicates the name of the action, param indicates the action parameter, and strict indicates the arbitration scheme.
111└── policy                       # policy directory, used to configure the policy for the corresponding temperature level.
112    └── config                   # config directory, used to configure the action for the corresponding temperature level. Wherein, name is that of sensor_cluster, and the level is that of the item in sensor_cluster.
113        └── <action_name>        # action name corresponding to the action value. The state condition and its value can be configured in this attribute.
114```
115
116
117## Repositories Involved<a name="section0056945904"></a>
118[Power Management Subsystem](https://gitee.com/openharmony/docs/blob/master/en/readme/power-management.md)
119
120[powermgr_power_manager](https://gitee.com/openharmony/powermgr_power_manager)
121
122[powermgr_display_manager](https://gitee.com/openharmony/powermgr_display_manager)
123
124[powermgr_battery_manager](https://gitee.com/openharmony/powermgr_battery_manager)
125
126**powermgr_thermal_manager**
127
128[powermgr_battery_statistics](https://gitee.com/openharmony/powermgr_battery_statistics)
129
130[powermgr_battery_lite](https://gitee.com/openharmony/powermgr_battery_lite)
131
132[powermgr_powermgr_lite](https://gitee.com/openharmony/powermgr_powermgr_lite)
133

README_zh.md

1# 热管理服务
2
3-   [简介](#section0056945901)
4-   [目录](#section0056945902)
5-   [配置说明](#section0056945903)
6-   [相关仓](#section0056945904)
7
8## 简介<a name="section0056945901"></a>
9
10热管理服务提供设备温度管理控制能力,保障整机热安全及热体验。
11
12**图 1**  热管理服务架构图<br>
13![](figures/thermal_manager_architecture.png "热管理服务架构图")
14
15**热管理服务模块功能说明**:
16
171. 温控管理中心(Thermal Manager):提供对应用及其他子系统的温控查询及回调接口。
182. 温控核心服务(Thermal Service):提供温度检测、档位仲裁及动作下发等温控核心功能,附配置文件。
193. 内核连接模块(Thermal HDI):提供温度驱动信息上报及驱动指令下发等功能,附配置文件。
204. 非运行态温控模块(Thermal Protector):提供非运行态时的简化温控服务,附配置文件。
21
22## 目录<a name="section0056945902"></a>
23```
24/base/powermgr/thermal_manager
25├── application                  # Native应用
26│   ├── init                     # Init配置
27│   └── protector                # Thermal Protector代码
28├── figures                      # 架构图
29├── frameworks                   # Framework层
30│   ├── napi                     # NAPI层
31│   └── native                   # Native层
32├── interface                    # 接口层
33│   └── inner_api                # 内部接口
34├── sa_profile                   # SA配置文件
35├── services                     # Thermal Service代码
36│   ├── native                   # Native层
37│   └── zidl                     # Zidl层
38├── test                         # 测试代码
39│   ├── fuzztest                 # Fuzz 测试
40│   ├── unittest                 # 单元测试
41│   ├── systemtest               # 系统测试
42│   └── utils                    # 测试工具
43└── utils                        # 工具和通用层
44```
45
46## 配置说明<a name="section0056945903"></a>
47**thermal_service_config.xml**
48配置示例:
49
50```
51<?xml version="1.0" encoding="UTF-8"?>
52<thermal version="0.99" product="ipx">
53    <base>
54        <item tag="temperature_query_enum" value="soc,battery,shell,ambient"/>
55    </base>
56    <level>
57        <sensor_cluster name="warm_base" sensor="shell">
58            <item level="1" threshold="35000" threshold_clr="33000"/>
59            <item level="2" threshold="37000" threshold_clr="35000"/>
60            <item level="3" threshold="40000" threshold_clr="38000"/>
61        </sensor_cluster>
62        <sensor_cluster name="warm_safe" sensor="battery,pa">
63            <item level="1" threshold="48000,60000" threshold_clr="45000,55000"/>
64        </sensor_cluster>
65    </level>
66    <state>
67        <item name="screen"/>
68        <item name="charge"/>
69    </state>
70    <action>
71        <item name="cpu"/>
72        <item name="current"/>
73        <item name="shut_down" param="100"/>
74        <item name="thermal_level" strict="1"/>
75    </action>
76    <policy>
77        <config name="warm_base" level="1">
78            <cpu screen="1">2800000</cpu>
79            <cpu screen="0">2400000</cpu>
80            <current charge="1">1500</current>
81            <thermal_level>3</thermal_level>
82        </config>
83        <config name="warm_base" level="2">
84            <cpu screen="1">2200000</cpu>
85            <cpu screen="0">1800000</cpu>
86            <current charge="1">1200</current>
87            <thermal_level>4</thermal_level>
88        </config>
89        <config name="warm_base" level="3">
90            <cpu screen="1">1600000</cpu>
91            <cpu screen="0">1200000</cpu>
92            <current charge="1">1000</current>
93            <thermal_level>5</thermal_level>
94        </config>
95        <config name="warm_safe" level="1">
96            <shut_down>1</shut_down>
97        </config>
98    </policy>
99</thermal>
100```
101```
102thermal                          # 根目录,version为版本号;product为产品名
103├── base                         # base目录,配置基本参数
104│   └── item                     # item目录,tag为配置标签,value为配置值
105├── level                        # level目录,配置温度档位信息
106│   └── sensor_cluster           # sensor_cluster目录,表示一个sensor集合,name为集合名,sensor为传感器名
107│       └── item                 # item目录,配置具体档位信息,level为等级,threshold为触发温度,xxx_clr为回退温度
108├── state                        # state目录,配置状态机,name为状态机名称
109├── action                       # action目录,配置动作,name为加载动作名称,param为加载参数,strict为仲裁方案
110└── policy                       # policy目录,配置档位对应的动作
111    └── config                   # config目录,配置对应档位的动作,name对应sensor_cluster的name,level对应其item中的level
112        └── <action_name>        # 标签值对应动作的动作值,属性中可以配置state条件及对应的值
113```
114
115
116## 相关仓<a name="section0056945904"></a>
117[电源管理子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E7%94%B5%E6%BA%90%E7%AE%A1%E7%90%86%E5%AD%90%E7%B3%BB%E7%BB%9F.md)
118
119[powermgr_power_manager](https://gitee.com/openharmony/powermgr_power_manager)
120
121[powermgr_display_manager](https://gitee.com/openharmony/powermgr_display_manager)
122
123[powermgr_battery_manager](https://gitee.com/openharmony/powermgr_battery_manager)
124
125**powermgr_thermal_manager**
126
127[powermgr_battery_statistics](https://gitee.com/openharmony/powermgr_battery_statistics)
128
129[powermgr_battery_lite](https://gitee.com/openharmony/powermgr_battery_lite)
130
131[powermgr_powermgr_lite](https://gitee.com/openharmony/powermgr_powermgr_lite)
132