Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
01ad0c35
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
01ad0c35
编写于
4月 12, 2023
作者:
Y
yangziyong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: thermal_docs
Signed-off-by:
N
yangziyong
<
nsyangziyong@huawei.com
>
上级
686dd971
变更
9
显示空白变更内容
内联
并排
Showing
9 changed file
with
1182 addition
and
1 deletion
+1182
-1
zh-cn/device-dev/subsystems/Readme-CN.md
zh-cn/device-dev/subsystems/Readme-CN.md
+9
-1
zh-cn/device-dev/subsystems/subsys-thermal_charging_idle_state.md
...vice-dev/subsystems/subsys-thermal_charging_idle_state.md
+131
-0
zh-cn/device-dev/subsystems/subsys-thermal_control.md
zh-cn/device-dev/subsystems/subsys-thermal_control.md
+156
-0
zh-cn/device-dev/subsystems/subsys-thermal_detection.md
zh-cn/device-dev/subsystems/subsys-thermal_detection.md
+150
-0
zh-cn/device-dev/subsystems/subsys-thermal_level.md
zh-cn/device-dev/subsystems/subsys-thermal_level.md
+163
-0
zh-cn/device-dev/subsystems/subsys-thermal_log.md
zh-cn/device-dev/subsystems/subsys-thermal_log.md
+202
-0
zh-cn/device-dev/subsystems/subsys-thermal_policy.md
zh-cn/device-dev/subsystems/subsys-thermal_policy.md
+230
-0
zh-cn/device-dev/subsystems/subsys-thermal_scene.md
zh-cn/device-dev/subsystems/subsys-thermal_scene.md
+126
-0
zh-cn/device-dev/website.md
zh-cn/device-dev/website.md
+15
-0
未找到文件。
zh-cn/device-dev/subsystems/Readme-CN.md
浏览文件 @
01ad0c35
...
...
@@ -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
)
zh-cn/device-dev/subsystems/subsys-thermal_charging_idle_state.md
0 → 100644
浏览文件 @
01ad0c35
# 充电空闲状态定制开发指导
## 概述
### 简介
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`
zh-cn/device-dev/subsystems/subsys-thermal_control.md
0 → 100644
浏览文件 @
01ad0c35
# 热管控定制开发指导
## 概述
### 简介
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`
zh-cn/device-dev/subsystems/subsys-thermal_detection.md
0 → 100644
浏览文件 @
01ad0c35
# 热检测定制开发指导
## 概述
### 简介
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`
zh-cn/device-dev/subsystems/subsys-thermal_level.md
0 → 100644
浏览文件 @
01ad0c35
# 热等级定制开发指导
## 概述
### 简介
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`
zh-cn/device-dev/subsystems/subsys-thermal_log.md
0 → 100644
浏览文件 @
01ad0c35
# 热日志定制开发指导
## 概述
### 简介
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`
zh-cn/device-dev/subsystems/subsys-thermal_policy.md
0 → 100644
浏览文件 @
01ad0c35
# 热策略定制开发指导
## 概述
### 简介
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`
zh-cn/device-dev/subsystems/subsys-thermal_scene.md
0 → 100644
浏览文件 @
01ad0c35
# 热场景定制开发指导
## 概述
### 简介
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`
zh-cn/device-dev/website.md
浏览文件 @
01ad0c35
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录