OpenHarmony子系統開發 - 電池管理(二)
五、充電限流限壓定制開發指導
概述
簡介
OpenHarmony默認提供了充電限流限壓的特性。在對終端設備進行充電時,由于環境影響,可能會導致電池溫度過高,因此需要對充電電流或電壓進行限制,從而保證終端設備使用的安全性。但是充電時的電流電壓對安全性的影響在不同的產品上規格是不同的,產品希望根據產品的設計規格來定制此特性。為此OpenHarmony提供了充電限流限壓的定制方式,產品定制開發者可根據產品的設計規格來定制此特性。
約束與限制
配置策略: 產品定制的配置路徑,需要根據配置策略決定。本開發指導中的定制路徑以/vendor進行舉例,請開發者根據具體的產品配置策略,修改定制路徑。
開發指導
搭建環境
設備要求:
標準系統開發板,如DAYU200/Hi3516DV300開源套件。
環境要求:
Linux調測環境,相關要求和配置可參考《快速入門》。
開發步驟
本文以DAYU200為例介紹充電限流限壓的定制方法。
-
在產品目錄(/vendor/hihope/rk3568)下創建battery文件夾。
-
參考默認充電限流限壓配置文件夾創建目標文件夾,并安裝到
//vendor/hihope/rk3568/battery
目錄下,文件格式如下:profile ├── BUILD.gn ├── battery_config.json
-
參考默認充電限流限壓的配置文件夾中的battery_config.json編寫定制的battery_config.json,包含定制后的充電限流限壓配置如下:
{"charger": {"current_limit":{"path": "/data/service/el0/battery/current_limit"},"voltage_limit":{"path": "/data/service/el0/battery/voltage_limit"}} }
-
參考默認充電限流限壓的配置文件夾中的BUILD.gn編寫BUILD.gn文件,將battery_config.json打包到
//vendor/etc/battery
目錄下,配置如下:import("//build/ohos.gni") #引用build/ohos.gniohos_prebuilt_etc("battery_config") {source = "battery_config.json"relative_install_dir = "battery"install_images = [ chipset_base_dir ] #安裝到vendor目錄下的必要配置part_name = "product_rk3568" #part_name為product_rk3568,以實現后續編譯 }
-
將編譯目標添加到
/vendor/hihope/rk3568
目錄下ohos.build的"module_list"中,例如:{ "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/battery/profile:battery_config" #添加battery_config的編譯]} }, "subsystem": "product_hihope" }
“//vendor/hihope/rk3568/battery/”為文件夾路徑,“profile”為創建的文件夾名字,“battery_config”為編譯目標。
-
參考《快速入門》編譯定制版本,編譯命令如下:
./build.sh --product-name rk3568 --ccache
-
將定制版本燒錄到DAYU200開發板中。
調測驗證
-
編譯battery對應的hats測試用例,編譯命令與框架搭建參考XTS子系統。
-
用框架執行測試,輸出測試報告。
參考
開發過程中可參考默認充電限流限壓的配置文件夾中的battery_config.json
默認配置:
{"charger": {"current_limit":{"path": "/data/service/el0/battery/current_limit"},"voltage_limit":{"path": "/data/service/el0/battery/voltage_limit"}}
}
打包路徑:/system/etc/battery
六、充電類型定制開發指導
概述
簡介
OpenHarmony默認提供了充電類型的特性。在對終端設備進行充電時,可以使用不同的充電器類型,如有線快充、無線快充等。系統可以根據當前的充電類型展示相應的動畫或處理相關業務,但是不同產品支持的充電類型不同,需要根據產品的設計規格來定制此特性。為此OpenHarmony提供了充電類型的定制方式,產品定制開發者可根據產品的設計規格來定制此特性。
約束與限制
配置策略: 產品定制的配置路徑,需要根據配置策略決定。本開發指導中的定制路徑以/vendor進行舉例,請開發者根據具體的產品配置策略,修改定制路徑。
開發指導
搭建環境
設備要求:
標準系統開發板,如DAYU200/Hi3516DV300開源套件。
環境要求:
Linux調測環境,相關要求和配置可參考《快速入門》。
開發步驟
本文以DAYU200為例介紹充電類型的定制方法。
-
在產品目錄(/vendor/hihope/rk3568)下創建battery文件夾。
-
參考默認充電類型配置文件夾創建目標文件夾,并安裝到
//vendor/hihope/rk3568/battery
目錄下,文件格式如下:profile ├── BUILD.gn ├── battery_config.json
-
參考默認充電類型的配置文件夾中的battery_config.json編寫定制的battery_config.json,包含定制后的充電類型配置如下:
{"charger": {"type": {"path": "/data/service/el0/battery/charger_type"}} }
-
參考默認充電類型的配置文件夾中的BUILD.gn編寫BUILD.gn文件,將battery_config.json打包到
//vendor/etc/battery
目錄下,配置如下:import("//build/ohos.gni") #引用build/ohos.gniohos_prebuilt_etc("battery_config") {source = "battery_config.json"relative_install_dir = "battery"install_images = [ chipset_base_dir ] #安裝到vendor目錄下的必要配置part_name = "product_rk3568" #part_name為product_rk3568,以實現后續編譯 }
-
將編譯目標添加到
/vendor/hihope/rk3568
目錄下ohos.build的"module_list"中,例如:{ "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/battery/profile:battery_config" #添加battery_config的編譯]} }, "subsystem": "product_hihope" }
“//vendor/hihope/rk3568/battery/”為文件夾路徑,“profile”為創建的文件夾名字,“battery_config”為編譯目標。
-
參考《快速入門》編譯定制版本,編譯命令如下:
./build.sh --product-name rk3568 --ccache
-
將定制版本燒錄到DAYU200開發板中。
調測驗證
-
開機后,進入shell命令行:
hdc shell
-
進入電池電量的節點路徑(以當前DAYU開發版路徑為例)。
cd /data/service/el0/battery/
-
默認充電類型的映射配置數據為例,修改充電狀態,模擬電池信息上報,觀察是否發送對應充電類型廣播。
- 修改充電類型
echo 1 > charger_type
- 上報改變充電狀態,觸發映射
hidumper -s 3302 -a -r
- 輸出定制后的充電類型
hidumper -s 3302 -a -i
-------------------------------[ability]---------------------------- ------------------------------BatteryService------------------------ capacity: 11 batteryLevel: 4 chargingStatus: 1 healthState: 1 pluggedType: 2 voltage: 4123456 present: 0 technology: Li-ion nowCurrent: 1000 currentAverage: 1000 totalEnergy: 4000000 remainingEnergy: 4000000 remainingChargeTime: 0 temperature: 222 chargeType: 1
參考
開發過程中可參考的配置文件路徑:充電類型的配置bundle.json
默認配置
```shell
{"charger": {"type": {"path": "/data/service/el0/battery/charger_type"}}
}
```
打包路徑:/system/etc/battery