From: SnickerSun Date: Sat, 30 Mar 2024 14:44:51 +0000 (+0800) Subject: 添加电池调试信息 X-Git-Tag: release_V1.2.70_20241020_135402~1245^2~1 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=f809993f40463825139d6b244ec69ddb95f1a2a1;p=mirrors%2FFD230.git 添加电池调试信息 --- diff --git a/code/sdk/application/battery/service/battery_driver.cpp b/code/sdk/application/battery/service/battery_driver.cpp index 16b0ca3ed..12649d58b 100644 --- a/code/sdk/application/battery/service/battery_driver.cpp +++ b/code/sdk/application/battery/service/battery_driver.cpp @@ -514,7 +514,13 @@ void enable_02c(void) // PRINT("GPIO_PIN_ENABLE_CHARGE_0_2C uapi_gpio_get_output_val %d\r\n",level); } - +uint8_t get_02c_value(void) +{ + if (GPIO_LEVEL_LOW == uapi_gpio_get_output_val(GPIO_PIN_ENABLE_CHARGE_0_2C)) + return 0; + else + return 1; +} void disable_02c(void) { // PRINT("disable_charge_02c\r\n"); diff --git a/code/sdk/application/battery/service/battery_service.cpp b/code/sdk/application/battery/service/battery_service.cpp index 3a9cbc6b9..62c22afa4 100644 --- a/code/sdk/application/battery/service/battery_service.cpp +++ b/code/sdk/application/battery/service/battery_service.cpp @@ -75,7 +75,7 @@ static unsigned long g_app_queue; #define BATTERY_LOWPOWER_ALARM_POWERLEVEL 15 #define BATTERY_LOWPOWER_ALARM_SHUTDOWNLEVEL 5 -#define BATTERY_DISABLE_CHARGE_HI_TEMP_VALUE 50 //停止充电温度 +#define BATTERY_DISABLE_CHARGE_HI_TEMP_VALUE (50.0f) //停止充电温度 #define BATTERY_VOLTAGE_DEBOUNCE 2 @@ -146,6 +146,13 @@ static void battery_check_voltage(void) batteryservice_get_voltage_by_channel(¤t_battery_info->pcb_ntc_temp,ADC_CHANNEL_PCB_TEMP); uapi_tcxo_delay_ms(20); } + +static int g_chargestatus =0; + +int get_charge_current_status(void) +{ + return g_chargestatus; +} /** * 充电中则使能充电IC,并根据电量确认充电电流. * 未插入充电线,则停止充电IC @@ -155,35 +162,56 @@ static void battery_check_chargement(void) { float voltage; float bat_temp; + //获取电量 uint8_t percent = batteryservice_get_voltage(&voltage); + //获取电池温度 batteryservice_get_battery_temp(&bat_temp); - if(uapi_get_charger_plug_status()){ + if(get_charge_stat() == 1){ + PRINT("charging enable charge ! bat-temp %.2f Vs highest temp value %.2f !\n",bat_temp,BATTERY_DISABLE_CHARGE_HI_TEMP_VALUE); /** * 如果充电过程中,电池温度>=BATTERY_DISABLE_CHARGE_HI_TEMP_VALUE,则停止充电 * 否则按正常流程充电 */ + if(bat_temp >= BATTERY_DISABLE_CHARGE_HI_TEMP_VALUE) { + PRINT("battery temp is too high : %.2f >= %.2f, disable charge!\n",bat_temp,BATTERY_DISABLE_CHARGE_HI_TEMP_VALUE); disable_charge(); + g_chargestatus = 0; }else{ - enable_charge(); + /** * check and control charge current event * larger than 90%, use low charge current * other stat , use high charge current * pay attention to : debounce */ - if(percent >=90) enable_02c(); - else disable_02c(); - PRINT("%d\r\n",BATTERY_VOLTAGE_DEBOUNCE); + + if(percent >=90) + { + PRINT("%d >= 90 percent , enable low current charge !\r\n",percent); + enable_charge(); + enable_02c(); + g_chargestatus = 1; + } + else + { + PRINT("%d < 90 percent , enable normal current charge !\r\n",percent); + enable_charge(); + disable_02c(); + g_chargestatus = 2; + } + // PRINT("%d\r\n",BATTERY_VOLTAGE_DEBOUNCE); } }else{ //冗余操作,理论上不必在此关闭充电IC - disable_charge(); + PRINT("charger not plugged ,disable charge !\r\n"); + disable_charge(); + g_chargestatus = 0; /** * if no in_charge then : * check and report low power event @@ -210,7 +238,7 @@ static void battery_check_task(void *arg) /**开机初始化电量及充电状态 Start*/ - if(uapi_get_charger_plug_status()) + if(get_charge_stat() == 1) { //如果充电线插入状态,为了获取准确电池数据,需要先停止充电一秒,再继续获取电量。 disable_charge(); uapi_tcxo_delay_ms(1000); diff --git a/code/sdk/application/battery/service/battery_service.h b/code/sdk/application/battery/service/battery_service.h index 21a52e938..028a1a366 100644 --- a/code/sdk/application/battery/service/battery_service.h +++ b/code/sdk/application/battery/service/battery_service.h @@ -32,6 +32,9 @@ void disable_02c(void); void enable_charge(void); void disable_charge(void); +//0 停止充电 , 1 低电流充电, 2 正常电流充电 +int get_charge_current_status(void); +uint8_t get_02c_value(void); #ifdef __cplusplus #if __cplusplus } diff --git a/code/sdk/application/battery/test/battery_at_cmd.cpp b/code/sdk/application/battery/test/battery_at_cmd.cpp index a32b5da5a..e7cb6dfc8 100644 --- a/code/sdk/application/battery/test/battery_at_cmd.cpp +++ b/code/sdk/application/battery/test/battery_at_cmd.cpp @@ -64,6 +64,9 @@ static uint32_t battery_do_test(uint8_t *para, uint32_t paraLen, char *strCommon return ERRCODE_FAIL; } char *mode = (char*)argv[0]; + + PRINT("BATTERYTEST ATCMD %s\n",mode); + if (strcmp(mode, "enable") == 0) { enable_charge(); } else if (strcmp(mode, "disable") == 0) { diff --git a/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testmagnetic.cpp b/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testmagnetic.cpp index 50472e979..c901d7e78 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testmagnetic.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testmagnetic.cpp @@ -4,7 +4,11 @@ #include "producttest/include/testmagnetic.h" #include "mag_service.h" #include "cmsis_os2.h" - +// #define TEST_BATTERY +#ifdef TEST_BATTERY +#include "battery_service.h" +#include "battery_hal.h" +#endif namespace OHOS { @@ -66,10 +70,31 @@ namespace OHOS testMagicView::GetInstance()->set_data(); } uint8_t MG_TEST_FALG=0; + char buf[128]={0}; void testMagicView ::set_data(void) { - - MG_TEST_FALG++; +#ifdef TEST_BATTERY + + float battery_voltage ; + + uint8_t charge_stat = get_charge_stat(); + int charge_current_status = get_charge_current_status(); + float battery_temp; + battery_get_battery_temp(&battery_temp); + uint8_t percent = battery_get_voltage(&battery_voltage); + uint8_t _02c_vaule = get_02c_value(); + memset(buf,0,sizeof(buf)); + sprintf(buf,"V:%d,P:%d,T:%d,CS:%d,S:%d,2c:%d", + (int)(100.0f*battery_voltage), + percent, + (int)(100*battery_temp), + charge_current_status, + charge_stat, + _02c_vaule); + x->SetText(buf); + RootView::GetInstance()->Invalidate(); +#else + MG_TEST_FALG++; uint16_t angle_value= (int16_t)mag_service_get_fAzimuth(); char buf[16]={0}; sprintf(buf,"angle:%d",angle_value); @@ -78,6 +103,7 @@ namespace OHOS if(MG_TEST_FALG>10) CompassModel::GetInstance()->CloseCompassSensor(); +#endif } UILabel *testMagicView::InitLabel(LabelConfig &labelConfig) @@ -103,9 +129,9 @@ namespace OHOS { uint32_t tick; osStatus_t retTimer; - +#ifndef TEST_BATTERY CompassModel::GetInstance()->OpenCompassSensor(); - +#endif testmagicScrollView = new UIScrollView(); if (testmagicScrollView == nullptr) { @@ -162,11 +188,19 @@ namespace OHOS char buf[16]={0}; sprintf(buf,"angle:%d",angle_value); Config = { +#ifdef TEST_BATTERY + .left = 30, + .top = 160, + .width = 400, + .height = 35, + .fontSize = 20, +#else .left = 173, .top = 160, .width = 120, .height = 35, .fontSize = 50, +#endif .lineHeigh = 35, .text = buf, .lineBreakMode = UILabel::LINE_BREAK_ADAPT,