未验证 提交 5b08ec6c 编写于 作者: O openharmony_ci 提交者: Gitee

!16978 docs: 新增thermal_manager开发定制文档

Merge pull request !16978 from yangziyong/thermal_docs
......@@ -100,7 +100,7 @@
- [hdc使用指导](subsys-toolchain-hdc-guide.md)
- [hiperf使用指导](subsys-toolchain-hiperf.md)
- [HiDumper使用指导](subsys-dfx-hidumper.md)
- 电源管理
- 电源
- 显示管理
- [系统亮度范围定制开发指导](subsys-power-brightness-customization.md)
- 电池管理
......@@ -112,3 +112,11 @@
- [关机充电动画开发指导](subsys-power-poweroff-charge-animation.md)
- 耗电统计
- [耗电统计定制开发指导](subsys-power-stats-power-average-customization.md)
- 热管理
- [充电空闲状态定制开发指导](subsys-thermal_charging_idle_state.md)
- [热管控定制开发指导](subsys-thermal_control.md)
- [热检测定制开发指导](subsys-thermal_detection.md)
- [热等级定制开发指导](subsys-thermal_level.md)
- [热日志定制开发指导](subsys-thermal_log.md)
- [热策略定制开发指导](subsys-thermal_policy.md)
- [热场景定制开发指导](subsys-thermal_scene.md)
# 充电空闲状态定制开发指导
## 概述
### 简介
OpenHarmony默认提供了充电空闲状态的特性。根据设备的热等级、电量、充电状态和充电电流,来决策当前设备是否处于空闲状态,处于此种状态的设备可以执行一些重度的后台任务。但是各设备达到充电空闲状态的条件在不同的产品上规格是不同的,产品希望根据产品的设计规格来定制此特性。OpenHarmony提供了充电空闲状态的定制方式,产品定制开发者可根据产品的设计规格来定制这些特性。
### 约束与限制
产品定制的配置路径,需要根据[配置策略](https://gitee.com/openharmony/customization_config_policy)决定。本开发指导中的定制路径以`/vendor`进行举例,请开发者根据具体的产品配置策略,修改定制路径。
## 开发指导
### 搭建环境
设备要求:
标准系统开发板,如DAYU200/Hi3516DV300开源套件。
环境要求:
Linux调测环境,相关要求和配置可参考《[快速入门](../quick-start/quickstart-overview.md)》。
### 开发步骤
本文以[DAYU200](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)为例介绍充电空闲状态的定制方法。
1. 在产品目录[(/vendor/hihope/rk3568)](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)下创建thermal文件夹。
2. 参考[默认充电空闲状态的配置文件夹](https://gitee.com/openharmony/powermgr_thermal_manager/tree/master/services/native/profile)创建目标文件夹,并安装到`//vendor/hihope/rk3568/thermal`,文件格式如下:
```text
profile
├── BUILD.gn
├── thermal_service_config.xml
```
3. 参考[默认充电空闲状态的配置文件夹中的thermal_service_config.xml](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/thermal_service_config.xml)编写定制的thermal_service_config.xml。包含充电空闲状态配置说明及定制后的充电空闲状态配置如下:
**表1** 充电空闲状态配置说明
| 配置项 | 描述 | 数据类型 | 取值范围 |
| -------- | -------- | -------- | -------- |
| thermallevel | 热等级阈值 | int | 根据产品的热等级进行定义,当设备热等级小于等于该阈值时,其状态为充电空闲状态。 |
| soc | 电池电量阈值 | int | 0~100,当设备电量大于等于该阈值时,其状态为充电空闲状态。 |
| charging | 电池是否在充电 | int | 1为正在充电,0为不在充电。 |
| current | 电池充电电流阈值 | int | 单位为mA,当电池充电电流大于等于该阈值时,其状态为充电空闲状态。 |
```shell
<idle name="charging">
<thermallevel>1</thermallevel>
<soc>90</soc>
<charging>1</charging>
<current>1000</current>
</idle>
```
4. 参考[默认充电空闲状态配置文件夹中的BUILD.gn](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/BUILD.gn)编写BUILD.gn文件,将thermal_service_config.xml打包到`/vendor/etc/thermal_config`目录下
```shell
import("//build/ohos.gni") # 引用build/ohos.gni
ohos_prebuilt_etc("thermal_service_config") {
source = "thermal_service_config.xml"
relative_install_dir = "thermal_config"
install_images = [ chipset_base_dir ] # 安装到vendor目录下的必要配置
part_name = "product_rk3568" # part_name暂定为product_rk3568,以实现后续编译,产品定制根据需要自行修改
}
```
5. 将编译目标添加到[ohos.build](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568/ohos.build)的"module_list"中,例如:
```json
{
"parts": {
"product_rk3568": {
"module_list": [
"//vendor/hihope/rk3568/default_app_config:default_app_config",
"//vendor/hihope/rk3568/image_conf:custom_image_conf",
"//vendor/hihope/rk3568/preinstall-config:preinstall-config",
"//vendor/hihope/rk3568/resourceschedule:resourceschedule",
"//vendor/hihope/rk3568/etc:product_etc_conf",
"//vendor/hihope/rk3568/thermal/profile:thermal_service_config", // 添加thermal_service_config的编译
]
}
},
"subsystem": "product_hihope"
}
```
“//vendor/hihope/rk3568/thermal/”为文件夹路径,“profile”为创建的文件夹名字,“thermal_hdf_config”为编译目标。
6. 参考《[快速入门](../quick-start/quickstart-overview.md)》编译定制版本,编译命令如下:
```shell
./build.sh --product-name rk3568 --ccache
```
7. 将定制版本烧录到DAYU200开发板中。
### 调测验证
1. 开机后,进入shell命令行:
```shell
hdc shell
```
2. 获取当前充电空闲状态。
```shell
hidumper -s 3303 -a -i
```
查看定制后的充电空闲状态结果如下:
```shell
-------------------------------[ability]-------------------------------
----------------------------------ThermalService---------------------------------
thermallevel: 1
soc: 100
charging: 1
current: 1000
```
## 参考
开发过程中可参考的配置文件路径:[默认充电空闲状态源码路径](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/thermal_service_config.xml)
打包路径:`/vendor/etc/thermal_config/hdf`
# 热管控定制开发指导
## 概述
### 简介
OpenHarmony默认提供了热管控的特性。设备在使用的过程中如果发热过多,则需要对发热的器件进行管控,如充电时电池温度过高,则需要对充电进行限制。但是管控动作在不同的产品上规格是不同的,产品希望根据产品的设计规格来定制此特性。为此OpenHarmony提供了热管控的定制方式,产品定制开发者可根据产品的设计规格来定制这些特性。
### 约束与限制
产品定制的配置路径,需要根据[配置策略](https://gitee.com/openharmony/customization_config_policy)决定。本开发指导中的定制路径以`/vendor`进行举例,请开发者根据具体的产品配置策略,修改定制路径。
## 开发指导
### 搭建环境
设备要求:
标准系统开发板,如DAYU200/Hi3516DV300开源套件。
环境要求:
Linux调测环境,相关要求和配置可参考《[快速入门](../quick-start/quickstart-overview.md)》。
### 开发步骤
本文以[DAYU200](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)为例介绍热管控的定制方法。
1. 在产品目录[(/vendor/hihope/rk3568)](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)下创建thermal文件夹。
2. 参考[默认热管控的配置文件夹](https://gitee.com/openharmony/powermgr_thermal_manager/tree/master/services/native/profile)创建目标profile文件夹,并安装到`//vendor/hihope/rk3568/thermal`,文件格式如下:
```text
profile
├── BUILD.gn
├── thermal_service_config.xml
```
3. 参考[默认热管控的配置文件夹中的thermal_service_config.xml](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/thermal_service_config.xml)编写定制的thermal_service_config.xml。包含热管控配置说明及定制后的热管控配置如下:
**表1** 热管控配置说明
| 管控动作配置项名称 | 管控动作配置项描述 | 管控动作配置项参数 | 管控动作配置项参数描述 | 数据类型 |取值范围 |
| -------- | -------- | -------- | -------- | -------- | -------- |
| name="cpu_big" | 大核CPU管控动作(控制大核CPU频率) | 无 | 无 | 无 | 无 |
| name="cpu_med" | 中核CPU管控动作(控制中核CPU频率) | 无 | 无 | 无 | 无 |
| name="cpu_lit" | 小核CPU管控动作(控制小核CPU频率) | 无 | 无 | 无 | 无 |
| name="gpu" | GPU管控动作(控制GPU频率) | 无 | 无 | 无 | 无 |
| name="lcd" | LCD管控动作(控制屏幕亮度) | 无 | 无 | 无 | 无 |
| name="volume" | 声音管控动作(控制音量大小) | uid | 用户id | int | 根据产品定义 |
| name="current" | 充电电流管控动作(控制快充和慢充时的充电电流大小) | protocol | 支持的充电协议,快充(sc)和慢充(buck) | string | sc,buck |
| name="current" | 充电电流管控动作 | event | 为1时发送事件,为0时不发送事件 | int | 0,1 |
| name="voltage" | 充电电压管控动作(控制快充和慢充时的充电电压大小) | protocol | 支持的充电协议,快充(sc)和慢充(buck) | string | sc,buck |
| name="voltage" | 充电电压管控动作 | event | 为1时发送事件,为0时不发送事件 | int | 0,1 |
| name="process_ctrl" | 进程管控动作(控制前台和后台进程存活状态) | event | 为1时发送事件,为0时不发送事件 | int | 0,1 |
| name="shut_down" | 关机管控动作(控制是否关机) | event | 为1时发送事件,为0时不发送事件 | int | 0,1 |
| name="thermallevel" | 热等级管控动作(控制热等级上报) | event | 为1时发送事件,为0时不发送事件 | int | 0,1 |
| name="popup" | 弹窗管控动作(控制是否弹窗) | 无 | 无 | 无 | 无 |
```shell
<action>
<item name="cpu_big"/>
<item name="cpu_med"/>
<item name="cpu_lit"/>
<item name="gpu"/>
<item name="lcd"/>
<item name="volume" uid="2001,2002"/>
<item name="current" protocol="sc,buck" event="1"/>
<item name="voltage" protocol="sc,buck" event="1"/>
<item name="process_ctrl" param="32,64,128,256" event=""/>
<item name="shut_down" event="0"/>
<item name="thermallevel" event="0"/>
<item name="popup"/>
</action>
```
4. 参考[默认热管控配置文件夹中的BUILD.gn](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/BUILD.gn)编写BUILD.gn文件,将thermal_service_config.xml打包到`/vendor/etc/thermal_config`目录下
```shell
import("//build/ohos.gni") # 引用build/ohos.gni
ohos_prebuilt_etc("thermal_service_config") {
source = "thermal_service_config.xml"
relative_install_dir = "thermal_config"
install_images = [ chipset_base_dir ] # 安装到vendor目录下的必要配置
part_name = "product_rk3568" # part_name暂定为product_rk3568,以实现后续编译,产品定制根据需要自行修改
}
```
5. 将编译目标添加到[ohos.build](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568/ohos.build)的"module_list"中,例如:
```json
{
"parts": {
"product_rk3568": {
"module_list": [
"//vendor/hihope/rk3568/default_app_config:default_app_config",
"//vendor/hihope/rk3568/image_conf:custom_image_conf",
"//vendor/hihope/rk3568/preinstall-config:preinstall-config",
"//vendor/hihope/rk3568/resourceschedule:resourceschedule",
"//vendor/hihope/rk3568/etc:product_etc_conf",
"//vendor/hihope/rk3568/thermal/profile:thermal_service_config", // 添加thermal_service_config的编译
]
}
},
"subsystem": "product_hihope"
}
```
“//vendor/hihope/rk3568/thermal/”为文件夹路径,“profile”为创建的文件夹名字,“thermal_hdf_config”为编译目标。
6. 参考《[快速入门](../quick-start/quickstart-overview.md)》编译定制版本,编译命令如下:
```shell
./build.sh --product-name rk3568 --ccache
```
7. 将定制版本烧录到DAYU200开发板中。
### 调测验证
1. 开机后,进入shell命令行:
```shell
hdc shell
```
2. 获取当前热管控信息。
```shell
hidumper -s 3303 -a -a
```
查看定制后的热管控结果如下:
```shell
-------------------------------[ability]-------------------------------
----------------------------------ThermalService---------------------------------
name: cpu_big strict: 0 enableEvent: 0
name: cpu_med strict: 0 enableEvent: 0
name: cpu_lit strict: 0 enableEvent: 0
name: gpu strict: 0 enableEvent: 0
name: boost strict: 0 enableEvent: 0
name: lcd strict: 0 enableEvent: 0
name: volume uid: 2001,2002 strict: 0 enableEvent: 0
name: current protocol: sc,buck strict: 0 enableEvent: 1
name: voltage protocol: sc,buck strict: 0 enableEvent: 1
name: process_ctrl params: 32,64,128,256 strict: 0 enableEvent: 0
name: shut_down strict: 0 enableEvent: 0
name: thermallevel strict: 0 enableEvent: 0
name: popup strict: 0 enableEvent: 0
```
## 参考
开发过程中可参考的配置文件路径:[默认热管控源码路径](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/thermal_service_config.xml)
打包路径:`/vendor/etc/thermal_config/hdf`
# 热检测定制开发指导
## 概述
### 简介
OpenHarmony默认提供了热检测的特性。设备在运行过程中会产生热量,如CPU发热、电池发热等,此时器件会通过相应的温度传感器,将其温度进行实时上报。热检测特性是实时检测器件的温度,为热管理模块提供温度输入。但是在不同产品中,对不同器件进行热检测的规格是不同的,针对此种情况,OpenHarmony提供了热检测的定制方式,产品定制开发者可根据产品的设计规格来定制这些特性。
### 约束与限制
产品定制的配置路径,需要根据[配置策略](https://gitee.com/openharmony/customization_config_policy)决定。本开发指导中的定制路径以`/vendor`进行举例,请开发者根据具体的产品配置策略,修改定制路径。
## 开发指导
### 搭建环境
设备要求:
标准系统开发板,如DAYU200/Hi3516DV300开源套件。
环境要求:
Linux调测环境,相关要求和配置可参考《[快速入门](../quick-start/quickstart-overview.md)》。
### 开发步骤
本文以[DAYU200](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)为例介绍热检测的定制方法。
1. 在产品目录[(/vendor/hihope/rk3568)](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)下创建thermal文件夹。
2. 参考[默认热检测的配置文件夹](https://gitee.com/openharmony/drivers_peripheral/tree/master/thermal/interfaces/hdi_service/profile)创建目标文件夹,并安装到`//vendor/hihope/rk3568/thermal`,文件格式如下:
```text
profile
├── BUILD.gn
├── thermal_hdi_config.xml
```
3. 参考[默认热检测的配置文件夹中的thermal_hdi_config.xml](https://gitee.com/openharmony/drivers_peripheral/blob/master/thermal/interfaces/hdi_service/profile/thermal_hdi_config.xml)编写定制的thermal_hdi_config.xml。包含热检测配置说明及定制后的热检测配置如下:
**表1** 热检测配置说明
|节点名称| 配置项名称 | 配置项描述 | 值的类型 |
| -------- | -------- | -------- | -------- |
| item | tag | 获取真实节点或模拟节点温度值标志位的名称 | string |
| item | value | 为1时获取模拟节点温度值,为0时获取真实节点温度值 | int |
| group | name | 真实节点组(actual)或模拟节点组(sim)的名称 | string |
| group | interval | 轮询时间间隔(默认单位为ms) | int |
| thermal_zone | type | thermal zone名称 | string |
| thermal_zone | path | 获取真实节点thermal zone温度值的路径 | string |
| thermal_node | type | thermal node名称 | string |
| thermal_node | path | 获取模拟节点thermal node温度值的路径 | string |
```shell
<base>
<item tag="sim_tz" value="0"/>
</base>
<polling>
<group name="actual" interval="30000">
<thermal_zone type="soc-thermal" path="sys/class/thermal/thermal_zone0/temp"/>
<thermal_zone type="gpu-thermal" path="sys/class/thermal/thermal_zone0/temp"/>
</group>
<group name="sim" interval="30000">
<thermal_node type="soc" path="data/service/el0/thermal/sensor/soc/temp"/>
<thermal_node type="cpu" path="data/service/el0/thermal/sensor/cpu/temp"/>
<thermal_node type="ap" path="data/service/el0/thermal/sensor/ap/temp"/>
<thermal_node type="pa" path="data/service/el0/thermal/sensor/pa/temp"/>
<thermal_node type="ambient" path="data/service/el0/thermal/sensor/ambient/temp"/>
<thermal_node type="charger" path="data/service/el0/thermal/sensor/charger/temp"/>
<thermal_node type="battery" path="data/service/el0/thermal/sensor/battery/temp"/>
<thermal_node type="shell" path="data/service/el0/thermal/sensor/shell/temp"/>
</group>
</polling>
```
获取真实节点温度的路径参考[热日志文档](../subsystems/subsys-thermal_log.md)中获取thermal zone温度的路径,获取模拟节点温度的路径参考[热检测的默认配置](https://gitee.com/openharmony/drivers_peripheral/blob/master/thermal/interfaces/hdi_service/profile/thermal_hdi_config.xml)
5. 参考[默认热检测配置文件夹中的BUILD.gn](https://gitee.com/openharmony/drivers_peripheral/blob/master/thermal/interfaces/hdi_service/profile/BUILD.gn)编写BUILD.gn文件,将thermal_hdi_config.xml打包到`//vendor/etc/thermal_config/hdf`目录下:
```shell
import("//build/ohos.gni")
ohos_prebuilt_etc("thermal_hdf_config") {
source = "thermal_hdi_config.xml"
relative_install_dir = "thermal_config/hdf"
install_images = [ chipset_base_dir ] # 安装到vendor目录下的必要配置
part_name = "product_rk3568" # part_name暂定为product_rk3568,以实现后续编译,产品定制根据需要自行修改
}
```
6. 将编译目标添加到[ohos.build](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568/ohos.build)的"module_list"中,例如:
```json
{
"parts": {
"product_rk3568": {
"module_list": [
"//vendor/hihope/rk3568/default_app_config:default_app_config",
"//vendor/hihope/rk3568/image_conf:custom_image_conf",
"//vendor/hihope/rk3568/preinstall-config:preinstall-config",
"//vendor/hihope/rk3568/resourceschedule:resourceschedule",
"//vendor/hihope/rk3568/etc:product_etc_conf",
"//vendor/hihope/rk3568/thermal/profile:thermal_hdf_config", // 添加thermal_hdf_config的编译
]
}
},
"subsystem": "product_hihope"
}
```
“//vendor/hihope/rk3568/thermal/”为文件夹路径,“profile”为创建的文件夹名字,“thermal_hdf_config”为编译目标。
7. 参考《[快速入门](../quick-start/quickstart-overview.md)》编译定制版本,编译命令如下:
```shell
./build.sh --product-name rk3568 --ccache
```
8. 将定制版本烧录到DAYU200开发板中。
### 调测验证
1. 开机后,进入shell命令行:
```shell
hdc shell
```
2. 获取thermal zone的热检测结果:
```shell
hidumper -s 3303 -a -t
```
成功获取thermal zone的热检测结果如下,其中Temperature的默认温度单位为0.001摄氏度:
```shell
-------------------------------[ability]-------------------------------
----------------------------------ThermalService---------------------------------
······(省略其他,只显示定制后的热检测结果)
Type: gpu-thermal
Temperature: 35555
Type: soc-thermal
Temperature: 35000
······
```
## 参考
开发过程中可参考的配置文件路径:[默认热检测的配置源码路径](https://gitee.com/openharmony/drivers_peripheral/tree/master/thermal/interfaces/hdi_service/profile/)
打包路径:`/vendor/etc/thermal_config/hdf`
# 热等级定制开发指导
## 概述
### 简介
OpenHarmony默认提供了热等级的特性。不同的硬件设备发热量和所能承受的最大温度都不相同,因此需要根据不同器件的温度,来定义系统的热等级标准,从而清晰的表明当前设备的发热状态,给热策略提供输入。但是器件在不同温度下对应的热等级在不同的产品上规格是不同的,产品希望根据产品的设计规格来定制此特性。OpenHarmony提供了热等级的定制方式,产品定制开发者可根据产品的设计规格来定制这些特性。
### 约束与限制
产品定制的配置路径,需要根据[配置策略](https://gitee.com/openharmony/customization_config_policy)决定。本开发指导中的定制路径以`/vendor`进行举例,请开发者根据具体的产品配置策略,修改定制路径。
## 开发指导
### 搭建环境
设备要求:
标准系统开发板,如DAYU200/Hi3516DV300开源套件。
环境要求:
Linux调测环境,相关要求和配置可参考《[快速入门](../quick-start/quickstart-overview.md)》。
### 开发步骤
本文以[DAYU200](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)为例介绍热等级的定制方法。
1. 在产品目录[(/vendor/hihope/rk3568)](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)下创建thermal文件夹。
2. 参考[默认热等级的配置文件夹](https://gitee.com/openharmony/powermgr_thermal_manager/tree/master/services/native/profile)创建目标文件夹,并安装到`//vendor/hihope/rk3568/thermal`,文件格式如下:
```text
profile
├── BUILD.gn
├── thermal_service_config.xml
```
3. 参考[默认热等级的配置文件夹中的thermal_service_config.xml](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/thermal_service_config.xml)编写定制的thermal_service_config.xml。包含热等级配置说明及定制后的热等级配置如下:
**表1** base配置说明
| 配置项 | 配置项描述 | 配置项参数 | 配置项参数描述 | 参数类型 | 参数取值范围 |
| -------- | -------- | -------- | -------- | -------- | -------- |
| tag="history_temp_count" | 历史上报温度次数标签的名称 | value | 历史上报温度次数 | int | >0 |
| tag="temperature_query_enum" | 获取温度的设备列表的标签名称 | value | 要获取温度的设备列表 | enum | soc,battery,shell,cpu,charger,ambient,ap,pa |
**表2** sensor_cluster配置说明
| 配置项名称 | 配置项描述 | 数据类型 | 取值范围 |
| -------- | -------- | -------- | -------- |
| name | 传感器集合名称 | string | 无 |
| sensor | 集合内的传感器 | string | soc,battery,shell,cpu,charger,ambient,ap,pa |
| aux_sensor | 集合内的辅助传感器 | string | soc,battery,shell,cpu,charger,ambient,ap,pa |
**表3** item配置说明
| 配置项名称 | 配置项描述 | 数据类型 | 取值范围 |
| -------- | -------- | -------- | -------- |
| level | 各传感器集合下定义的热等级 | int | >0 |
| threshold | 集合内每个传感器达到对应热等级的温度阈值(默认单位0.001摄氏度,开发者可定制) | int | 根据产品定制 |
| threshold_clr | 集合内每个传感器回退到上一热等级的温度阈值 | int | 根据产品定制 |
| temp_rise_rate | 温度升高频率 | double | 根据产品定制 |
```shell
<thermal version="0.01" product="lya">
<base>
<item tag="history_temp_count" value="10"/>
<item tag="temperature_query_enum" value="soc,battery,shell,cpu,charger,ambient,ap,pa"/>
</base>
<level>
<sensor_cluster name="base_safe" sensor="battery,charger,cpu,soc">
<item level="1" threshold="42000,40000,30000,40000" threshold_clr="38000,36000,28000,38000"/>
<item level="2" threshold="43000,41000,32000,42000" threshold_clr="41000,39000,30000,40000"/>
<item level="3" threshold="46000,44000,34000,44000" threshold_clr="44000,42000,32000,42000"/>
<item level="4" threshold="48000,46000,36000,46000" threshold_clr="46000,44000,34000,44000"/>
</sensor_cluster>
</level>
```
4. 参考[默认热等级配置文件夹中的BUILD.gn](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/BUILD.gn)编写BUILD.gn文件,将thermal_service_config.xml打包到`/vendor/etc/thermal_config`目录下
```shell
import("//build/ohos.gni") # 引用build/ohos.gni
ohos_prebuilt_etc("thermal_service_config") {
source = "thermal_service_config.xml"
relative_install_dir = "thermal_config"
install_images = [ chipset_base_dir ] # 安装到vendor目录下的必要配置
part_name = "product_rk3568" # part_name暂定为product_rk3568,以实现后续编译,产品定制根据需要自行修改
}
```
5. 将编译目标添加到[ohos.build](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568/ohos.build)的"module_list"中,例如:
```json
{
"parts": {
"product_rk3568": {
"module_list": [
"//vendor/hihope/rk3568/default_app_config:default_app_config",
"//vendor/hihope/rk3568/image_conf:custom_image_conf",
"//vendor/hihope/rk3568/preinstall-config:preinstall-config",
"//vendor/hihope/rk3568/resourceschedule:resourceschedule",
"//vendor/hihope/rk3568/etc:product_etc_conf",
"//vendor/hihope/rk3568/thermal/profile:thermal_service_config", // 添加thermal_service_config的编译
]
}
},
"subsystem": "product_hihope"
}
```
“//vendor/hihope/rk3568/thermal/”为文件夹路径,“profile”为创建的文件夹名字,“thermal_hdf_config”为编译目标。
6. 参考《[快速入门](../quick-start/quickstart-overview.md)》编译定制版本,编译命令如下:
```shell
./build.sh --product-name rk3568 --ccache
```
7. 将定制版本烧录到DAYU200开发板中。
### 调测验证
1. 开机后,进入shell命令行:
```shell
hdc shell
```
2. 进入`data/service/el0/thermal/sensor/soc/`路径:
```shell
cd data/service/el0/thermal/sensor/soc
```
3. 修改soc的温度:
```shell
echo 42000 > temp
```
4. 获取当前热等级信息:
```shell
hidumper -s 3303 -a -l
```
成功获取热等级信息如下:
```shell
-------------------------------[ability]-------------------------------
----------------------------------ThermalService---------------------------------
name: base_safe level: 2
name: cold_safe level: 0
name: high_safe level: 0
name: warm_5G level: 0
name: warm_safe level: 1
```
## 参考
开发过程中可参考的配置文件路径:[默认热等级源码路径](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/thermal_service_config.xml)
打包路径:`/vendor/etc/thermal_config/hdf`
# 热日志定制开发指导
## 概述
### 简介
OpenHarmony默认提供了热日志的特性。热日志是设备器件在使用过程中温度的流水日志。由于热日志输出的内容和路径在不同的产品上规格是不同的,产品希望根据产品的设计规格来定制此特性。OpenHarmony提供了热日志的定制方式,产品定制开发者可根据产品的设计规格来定制这些特性。
### 约束与限制
产品定制的配置路径,需要根据[配置策略](https://gitee.com/openharmony/customization_config_policy)决定。本开发指导中的定制路径以`/vendor`进行举例,请开发者根据具体的产品配置策略,修改定制路径。
## 开发指导
### 搭建环境
设备要求:
标准系统开发板,如DAYU200/Hi3516DV300开源套件。
环境要求:
Linux调测环境,相关要求和配置可参考《[快速入门](../quick-start/quickstart-overview.md)》。
### 开发步骤
本文以[DAYU200](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)为例介绍热日志的定制方法。
1. 在产品目录[(/vendor/hihope/rk3568)](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)下创建thermal文件夹。
2. 参考[默认热日志的配置文件夹](https://gitee.com/openharmony/drivers_peripheral/tree/master/thermal/interfaces/hdi_service/profile)创建目标文件夹,并安装到`//vendor/hihope/rk3568/thermal`,文件格式如下:
```text
profile
├── BUILD.gn
├── thermal_hdi_config.xml
```
3. 参考[默认热日志的参数配置文件夹](https://gitee.com/openharmony/drivers_peripheral/tree/master/thermal/etc)创建目标文件夹,并安装到`//vendor/hihope/rk3568/thermal`,文件格式如下:
```text
etc
├── BUILD.gn
├── thermal.para
├── thermal.para.dac
```
4. 参考[默认热日志的配置文件夹中的thermal_hdi_config.xml](https://gitee.com/openharmony/drivers_peripheral/blob/master/thermal/interfaces/hdi_service/profile/thermal_hdi_config.xml)编写定制的thermal_hdi_config.xml。包含热日志配置说明及定制后的热日志配置如下:
**表1** tracing配置说明
| 配置项名称 | 配置项描述 | 数据类型 | 取值范围 |
| -------- | -------- | -------- | -------- |
| interval | 温度跟踪日志的时间间隔,单位为毫秒 | int | >0 |
| width | 温度跟踪日志的宽度,单位为字符 | int | >0 |
| outpath | 温度跟踪日志输出的路径 | string | 无 |
**表2** node配置说明
| 节点名称 | 配置项名称 | 配置项描述 |
| -------- | -------- | -------- |
| title | path | 获取thermal zone名称的路径 |
| title | name | thermal zone名称 |
| value | path | 获取thermal zone温度的路径 |
```shell
<tracing interval="5000" width="20" outpath="/data/log/thermal-log">
<node>
<title path="sys/class/thermal/thermal_zone0/type"/>
<value path="sys/class/thermal/thermal_zone0/temp"/>
</node>
<node>
<title name="gpu-thermal"/>
<value path="sys/class/thermal/thermal_zone1/temp"/>
</node>
</tracing>
```
5. 参考默认热日志的参数配置文件夹中的[thermal.para](https://gitee.com/openharmony/drivers_peripheral/blob/master/thermal/etc/thermal.para)[thermal.para.dac](https://gitee.com/openharmony/drivers_peripheral/blob/master/thermal/etc/thermal.para.dac)编写定制的thermal.para和thermal.para.dac。包含定制后的配置如下:
thermal.para:
```text
persist.thermal.log.enable=true # 打开thermal log
persist.thermal.log.interval=5000 # 温度跟踪日志的时间间隔,单位为毫秒
persist.thermal.log.width=20 # 温度跟踪日志的宽度,单位为字符
```
thermal.para.dac:
```text
persist.thermal.log.="power_host:power_host:600" # 控制访问权限
```
6. 参考[默认热日志配置文件夹中的BUILD.gn](https://gitee.com/openharmony/drivers_peripheral/blob/master/thermal/interfaces/hdi_service/profile/BUILD.gn)编写BUILD.gn文件,将thermal_hdi_config.xml打包到`//vendor/etc/thermal_config/hdf`目录下:
```shell
import("//build/ohos.gni")
ohos_prebuilt_etc("thermal_hdf_config") {
source = "thermal_hdi_config.xml"
relative_install_dir = "thermal_config/hdf"
install_images = [ chipset_base_dir ] # 安装到vendor目录下的必要配置
part_name = "product_rk3568" # part_name暂定为product_rk3568,以实现后续编译,产品定制根据需要自行修改
}
```
7. 参考[默认热日志的参数配置文件夹的BUILD.gn](https://gitee.com/openharmony/drivers_peripheral/blob/master/thermal/etc/BUILD.gn)编写BUILD.gn文件,将thermal.para和thermal.para.dac打包到`//vendor/etc/param/thermal.para`目录下
```shell
import("//build/ohos.gni")
## Install thermal.para to /vendor/etc/param/thermal.para
ohos_prebuilt_etc("thermal.para") {
source = "thermal.para"
relative_install_dir = "param"
install_images = [ chipset_base_dir ]
part_name = "product_rk3568"
}
ohos_prebuilt_etc("thermal.para.dac") {
source = "thermal.para.dac"
relative_install_dir = "param"
install_images = [ chipset_base_dir ]
part_name = "product_rk3568"
}
group("param_files") {
deps = [
":thermal.para",
":thermal.para.dac",
]
}
```
8. 将编译目标添加到[ohos.build](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568/ohos.build)的"module_list"中,例如:
```json
{
"parts": {
"product_rk3568": {
"module_list": [
"//vendor/hihope/rk3568/default_app_config:default_app_config",
"//vendor/hihope/rk3568/image_conf:custom_image_conf",
"//vendor/hihope/rk3568/preinstall-config:preinstall-config",
"//vendor/hihope/rk3568/resourceschedule:resourceschedule",
"//vendor/hihope/rk3568/etc:product_etc_conf",
"//vendor/hihope/rk3568/thermal/profile:thermal_hdf_config", // 添加thermal_hdf_config的编译
"//vendor/hihope/rk3568/thermal/etc:param_files" // 添加thermal.para和thermal.para.dac的编译
]
}
},
"subsystem": "product_hihope"
}
```
“//vendor/hihope/rk3568/thermal/”为文件夹路径,“profile”、“etc”为创建的文件夹名字,“thermal_hdf_config”、“param_files”为编译目标。
9. 参考《[快速入门](../quick-start/quickstart-overview.md)》编译定制版本,编译命令如下:
```shell
./build.sh --product-name rk3568 --ccache
```
10. 将定制版本烧录到DAYU200开发板中。
### 调测验证
1. 开机后,进入shell命令行:
```shell
hdc shell
```
2. 进入定制后的目录。
```shell
cd /data/log/thermal/
```
查看热日志。
```shell
cat thermal.000.20170805-175756
```
成功获取热日志内容
```shell
timestamp soc-thermal gpu-thermal
2017-08-05 17:57:56 37777 37222
2017-08-05 17:58:01 38333 37777
2017-08-05 17:58:06 36666 37222
2017-08-05 17:58:11 36666 37222
2017-08-05 17:58:16 36666 37222
2017-08-05 17:58:21 36111 37222
2017-08-05 17:58:26 36111 37222
2017-08-05 17:58:31 36666 37222
2017-08-05 17:58:36 36111 37222
2017-08-05 17:58:41 36111 37222
2017-08-05 17:58:46 36666 36666
```
## 参考
开发过程中可参考的配置文件路径:[默认热日志的配置源码路径](https://gitee.com/openharmony/drivers_peripheral/tree/master/thermal/interfaces/hdi_service/profile/)[默认热日志的参数配置源码路径](https://gitee.com/openharmony/drivers_peripheral/tree/master/thermal/etc)
打包路径:`/vendor/etc/thermal_config/hdf`
# 热策略定制开发指导
## 概述
### 简介
OpenHarmony默认提供了热策略的特性。设备上发热的器件种类繁多,因此需要结合热等级和热场景,针对各类发热器件定制统一的管控策略。但是不同热等级下的管控动作在不同的产品上规格是不同的,产品希望根据产品的设计规格来定制此特性。OpenHarmony提供了热策略的定制方式,产品定制开发者可根据产品的设计规格来定制这些特性。
### 约束与限制
产品定制的配置路径,需要根据[配置策略](https://gitee.com/openharmony/customization_config_policy)决定。本开发指导中的定制路径以`/vendor`进行举例,请开发者根据具体的产品配置策略,修改定制路径。
## 开发指导
### 搭建环境
设备要求:
标准系统开发板,如DAYU200/Hi3516DV300开源套件。
环境要求:
Linux调测环境,相关要求和配置可参考《[快速入门](../quick-start/quickstart-overview.md)》。
### 开发步骤
本文以[DAYU200](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)为例介绍热策略的定制方法。
1. 在产品目录[(/vendor/hihope/rk3568)](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)下创建thermal文件夹。
2. 参考[默认热策略的配置文件夹](https://gitee.com/openharmony/powermgr_thermal_manager/tree/master/services/native/profile)创建目标文件夹,并安装到`//vendor/hihope/rk3568/thermal`,文件格式如下:
```text
profile
├── BUILD.gn
├── thermal_service_config.xml
```
3. 参考[默认热策略的配置文件夹中的thermal_service_config.xml](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/thermal_service_config.xml)编写定制的thermal_service_config.xml。包含热策略配置说明及定制后的热策略配置如下,以其中两个热等级为例:
**表1** config配置说明
| 配置项名称 | 配置项描述 | 配置项类型 | 配置项范围 |
| -------- | -------- | -------- | -------- |
| name | 定义热策略对应的传感器集合名称 | string | 对应[热等级文档](../subsystems/subsys-thermal_level.md)中定义的传感器集合名称 |
| level | 定义热策略对应的热等级 | int | 对应[热等级文档](../subsystems/subsys-thermal_level.md)中传感器集合下定义的热等级 |
**表2** 配置项说明
| 配置项名称 | 配置项描述 | 配置项类型 | 配置项范围 |
| -------- | -------- | -------- | -------- |
| scene | 使用场景 | string | 对应[热场景文档](../subsystems/subsys-thermal_scene.md)中定义的使用场景 |
| charge | 是否在充电 | int | 0(不在充电),1(正在充电) |
| screen | 是否亮屏 | int | 0(灭屏),1(亮屏) |
**表3** 节点配置说明
| 节点名称 | 节点值类型 | 节点值范围 | 节点描述 |
| -------- | -------- | -------- | -------- |
| lcd | double | 0.00~1.00 | 屏幕亮度的百分比(用浮点数表示) |
| cpu_big | int | 根据产品定义 | CPU大核频率 |
| cpu_med | int | 根据产品定义 | CPU中核频率 |
| cpu_lit | int | 根据产品定义 | CPU小核频率 |
| process_ctrl | enum | 1:KILL_FG_PROCESS_APP<br>2:KILL_BG_PROCESS_APP<br>3:KILL_ALL_PROCESS_APP | 进程控制 |
| gpu | int | 根据产品定义 | GPU频率 |
| thermallevel | int | 对应config节点中的level | 热等级 |
| current_sc | int | 根据产品定义 | 快充电流 |
| current_buck | int | 根据产品定义 | 慢充电流 |
| voltage_sc | int | 根据产品定义 | 快充电压 |
| voltage_buck | int | 根据产品定义 | 慢充电压 |
| volume | double | 0.00~1.00 | 音量百分比(用浮点数表示) |
```shell
<policy>
<config name="base_safe" level="1">
<lcd>1.00</lcd>
<lcd scene="cam">0.99</lcd>
<lcd scene="call">0.98</lcd>
<lcd scene="game">0.95</lcd>
<cpu_big>1992000</cpu_big>
<cpu_med>1991500</cpu_med>
<cpu_lit>1991200</cpu_lit>
<process_ctrl>3</process_ctrl>
<cpu_big scene="cam" charge="1">1991800</cpu_big>
<cpu_big scene="cam" charge="0">1991600</cpu_big>
<gpu screen="0">524288</gpu>
<gpu screen="1">512000</gpu>
<thermallevel>1</thermallevel>
<current_sc>1800</current_sc>
<current_sc scene="cam">1200</current_sc>
<current_buck>1200</current_buck>
<voltage_sc>4000</voltage_sc>
<voltage_buck>3000</voltage_buck>
<volume>1.0</volume>
</config>
<policy>
<config name="base_safe" level="2">
<lcd>0.90</lcd>
<lcd scene="cam">0.89</lcd>
<lcd scene="call">0.88</lcd>
<lcd scene="game">0.87</lcd>
<cpu_big>1991000</cpu_big>
<cpu_med>1990500</cpu_med>
<cpu_lit>1990200</cpu_lit>
<process_ctrl>2</process_ctrl>
<cpu_big scene="cam" charge="1">1990800</cpu_big>
<cpu_big scene="cam" charge="0">1990600</cpu_big>
<gpu screen="0">499712</gpu>
<gpu screen="1">487424</gpu>
<thermallevel>2</thermallevel>
<current_sc>1500</current_sc>
<current_sc scene="cam">1000</current_sc>
<current_buck>1000</current_buck>
<voltage_sc>3000</voltage_sc>
<voltage_buck>2000</voltage_buck>
<volume>0.8</volume>
</config>
</policy>
```
4. 参考[默认热策略配置文件夹中的BUILD.gn](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/BUILD.gn)编写BUILD.gn文件,将thermal_service_config.xml打包到`/vendor/etc/thermal_config`目录下
```shell
import("//build/ohos.gni") # 引用build/ohos.gni
ohos_prebuilt_etc("thermal_service_config") {
source = "thermal_service_config.xml"
relative_install_dir = "thermal_config"
install_images = [ chipset_base_dir ] # 安装到vendor目录下的必要配置
part_name = "product_rk3568" # part_name暂定为product_rk3568,以实现后续编译,产品定制根据需要自行修改
}
```
5. 将编译目标添加到[ohos.build](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568/ohos.build)的"module_list"中,例如:
```json
{
"parts": {
"product_rk3568": {
"module_list": [
"//vendor/hihope/rk3568/default_app_config:default_app_config",
"//vendor/hihope/rk3568/image_conf:custom_image_conf",
"//vendor/hihope/rk3568/preinstall-config:preinstall-config",
"//vendor/hihope/rk3568/resourceschedule:resourceschedule",
"//vendor/hihope/rk3568/etc:product_etc_conf",
"//vendor/hihope/rk3568/thermal/profile:thermal_service_config", // 添加thermal_service_config的编译
]
}
},
"subsystem": "product_hihope"
}
```
“//vendor/hihope/rk3568/thermal/”为文件夹路径,“profile”为创建的文件夹名字,“thermal_hdf_config”为编译目标。
6. 参考《[快速入门](../quick-start/quickstart-overview.md)》编译定制版本,编译命令如下:
```shell
./build.sh --product-name rk3568 --ccache
```
7. 将定制版本烧录到DAYU200开发板中。
### 调测验证
1. 开机后,进入shell命令行:
```shell
hdc shell
```
2. 获取当前热策略信息。
```shell
hidumper -s 3303 -a -p
```
查看定制后的热策略结果如下:
```shell
-------------------------------[ability]-------------------------------
----------------------------------ThermalService---------------------------------
name: base_safe level: 1
actionName: lcd actionValue: 1.00 isProp: 0
actionName: lcd actionValue: 0.99 scene: cam isProp: 1
actionName: lcd actionValue: 0.98 scene: call isProp: 1
actionName: lcd actionValue: 0.95 scene: game isProp: 1
actionName: cpu_big actionValue: 1992000 isProp: 0
actionName: cpu_med actionValue: 1991500 isProp: 0
actionName: cpu_lit actionValue: 1991200 isProp: 0
actionName: process_ctrl actionValue: 3 isProp: 0
actionName: cpu_big actionValue: 1991800 charge: 1 scene: cam isProp: 1
actionName: cpu_big actionValue: 1991600 charge: 0 scene: cam isProp: 1
actionName: gpu actionValue: 524288 screen: 0 isProp: 1
actionName: gpu actionValue: 512000 screen: 1 isProp: 1
actionName: thermallevel actionValue: 1 isProp: 0
actionName: current_sc actionValue: 1800 isProp: 0
actionName: current_sc actionValue: 1200 scene: cam isProp: 1
actionName: current_buck actionValue: 1200 isProp: 0
actionName: voltage_sc actionValue: 4000 isProp: 0
actionName: voltage_buck actionValue: 3000 isProp: 0
actionName: volume actionValue: 1.0 isProp: 0
actionName: boost actionValue: 1 isProp: 0
level: 2
actionName: lcd actionValue: 0.90 isProp: 0
actionName: lcd actionValue: 0.89 scene: cam isProp: 1
actionName: lcd actionValue: 0.88 scene: call isProp: 1
actionName: lcd actionValue: 0.87 scene: game isProp: 1
actionName: cpu_big actionValue: 1991000 isProp: 0
actionName: cpu_med actionValue: 1990500 isProp: 0
actionName: cpu_lit actionValue: 1990200 isProp: 0
actionName: process_ctrl actionValue: 2 isProp: 0
actionName: cpu_big actionValue: 1990800 charge: 1 scene: cam isProp: 1
actionName: cpu_big actionValue: 1990600 charge: 0 scene: cam isProp: 1
actionName: gpu actionValue: 499712 screen: 0 isProp: 1
actionName: gpu actionValue: 487424 screen: 1 isProp: 1
actionName: thermallevel actionValue: 2 isProp: 0
actionName: current_sc actionValue: 1500 isProp: 0
actionName: current_sc actionValue: 1000 scene: cam isProp: 1
actionName: current_buck actionValue: 1000 isProp: 0
actionName: voltage_sc actionValue: 3000 isProp: 0
actionName: voltage_buck actionValue: 2000 isProp: 0
actionName: volume actionValue: 0.8 isProp: 0
actionName: boost actionValue: 1 isProp: 0
```
## 参考
开发过程中可参考的配置文件路径:[默认热策略源码路径](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/thermal_service_config.xml)
打包路径:`/vendor/etc/thermal_config/hdf`
# 热场景定制开发指导
## 概述
### 简介
OpenHarmony默认提供了热场景的特性。在设备使用过程中,比如游戏、拍照、通话时需要保证性能、温度和功耗的平衡。在不同场景下,热管理的策略会有所不同,如游戏场景下不会降低屏幕亮度,但是在不同的产品上对热场景的定义是不同的,产品希望根据产品的设计规格来定制此特性。OpenHarmony提供了热场景的定制方式,产品定制开发者可根据产品的设计规格来定制这些特性。
### 约束与限制
产品定制的配置路径,需要根据[配置策略](https://gitee.com/openharmony/customization_config_policy)决定。本开发指导中的定制路径以`/vendor`进行举例,请开发者根据具体的产品配置策略,修改定制路径。
## 开发指导
### 搭建环境
设备要求:
标准系统开发板,如DAYU200/Hi3516DV300开源套件。
环境要求:
Linux调测环境,相关要求和配置可参考《[快速入门](../quick-start/quickstart-overview.md)》。
### 开发步骤
本文以[DAYU200](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)为例介绍热场景的定制方法。
1. 在产品目录[(/vendor/hihope/rk3568)](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)下创建thermal文件夹。
2. 参考[默认热场景的配置文件夹](https://gitee.com/openharmony/powermgr_thermal_manager/tree/master/services/native/profile)创建目标文件夹,并安装到`//vendor/hihope/rk3568/thermal`,文件格式如下:
```text
profile
├── BUILD.gn
├── thermal_service_config.xml
```
3. 参考[默认热场景的配置文件夹中的thermal_service_config.xml](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/thermal_service_config.xml)编写定制的thermal_service_config.xml。包含热场景配置说明及定制后的热场景配置如下:
**表1** 热场景配置说明
| 配置项 | 配置项描述 | 配置项参数 | 配置项参数描述 | 配置项参数类型 | 配置项参数取值范围 |
| -------- | -------- | -------- | -------- | -------- | -------- |
| name="scene" | 配置一种或多种使用场景,可以在枚举中任选 | param | 具体的使用场景:拍照、电话、游戏 | enum | cam,call,game |
screen和charge是配置的使用场景的状态,分别为是否亮屏和是否充电。
```shell
<state>
<item name="scene" param="cam,call,game"/>
<item name="screen"/>
<item name="charge"/>
</state>
```
4. 参考[默认热场景配置文件夹中的BUILD.gn](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/BUILD.gn)编写BUILD.gn文件,将thermal_service_config.xml打包到`/vendor/etc/thermal_config`目录下
```shell
import("//build/ohos.gni") # 引用build/ohos.gni
ohos_prebuilt_etc("thermal_service_config") {
source = "thermal_service_config.xml"
relative_install_dir = "thermal_config"
install_images = [ chipset_base_dir ] # 安装到vendor目录下的必要配置
part_name = "product_rk3568" # part_name暂定为product_rk3568,以实现后续编译,产品定制根据需要自行修改
}
```
5. 将编译目标添加到[ohos.build](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568/ohos.build)的"module_list"中,例如:
```json
{
"parts": {
"product_rk3568": {
"module_list": [
"//vendor/hihope/rk3568/default_app_config:default_app_config",
"//vendor/hihope/rk3568/image_conf:custom_image_conf",
"//vendor/hihope/rk3568/preinstall-config:preinstall-config",
"//vendor/hihope/rk3568/resourceschedule:resourceschedule",
"//vendor/hihope/rk3568/etc:product_etc_conf",
"//vendor/hihope/rk3568/thermal/profile:thermal_service_config", // 添加thermal_service_config的编译
]
}
},
"subsystem": "product_hihope"
}
```
“//vendor/hihope/rk3568/thermal/”为文件夹路径,“profile”为创建的文件夹名字,“thermal_hdf_config”为编译目标。
6. 参考《[快速入门](../quick-start/quickstart-overview.md)》编译定制版本,编译命令如下:
```shell
./build.sh --product-name rk3568 --ccache
```
7. 将定制版本烧录到DAYU200开发板中。
### 调测验证
1. 开机后,进入shell命令行:
```shell
hdc shell
```
2. 获取当前热场景信息。
```shell
hidumper -s 3303 -a -s
```
查看定制后的热场景结果如下:
```shell
-------------------------------[ability]-------------------------------
----------------------------------ThermalService---------------------------------
name: scene params: cam,call,game
name: screen
name: charge
```
## 参考
开发过程中可参考的配置文件路径:[默认热场景源码路径](https://gitee.com/openharmony/powermgr_thermal_manager/blob/master/services/native/profile/thermal_service_config.xml)
打包路径:`/vendor/etc/thermal_config/hdf`
......@@ -478,6 +478,21 @@
- 电源
- 耗电统计
- [耗电统计定制开发指导](subsystems/subsys-power-stats-power-average-customization.md)
- 电池管理
- [电量与LED灯颜色的定制开发指导](subsystems/subsys-power-level-LED-color.md)
- [电池温度保护定制开发指导](subsystems/subsys-power-temperature-protection.md)
- [电量等级定制开发指导](subsystems/subsys-power-battery-level-customization.md)
- [充电限流限压定制开发指导](subsystems/subsys-power-charge-current-voltage-limit.md)
- [充电类型定制开发指导](subsystems/subsys-power-charge-type-customization.md)
- [关机充电动画开发指导](subsystems/subsys-power-poweroff-charge-animation.md)
- 热管理
- [充电空闲状态定制开发指导](subsystems/subsys-thermal_charging_idle_state.md)
- [热管控定制开发指导](subsystems/subsys-thermal_control.md)
- [热检测定制开发指导](subsystems/subsys-thermal_detection.md)
- [热等级定制开发指导](subsystems/subsys-thermal_level.md)
- [热日志定制开发指导](subsystems/subsys-thermal_log.md)
- [热策略定制开发指导](subsystems/subsys-thermal_policy.md)
- [热场景定制开发指导](subsystems/subsys-thermal_scene.md)
- 专题
- HPM Part
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册