From e14517762589c966ca6e8da8962f7197204b172a Mon Sep 17 00:00:00 2001 From: payton Date: Thu, 1 Feb 2024 13:43:43 +0800 Subject: [PATCH] =?UTF-8?q?1.rtos=E4=B8=8B=E7=94=B5=E9=87=8F=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=BC=A0=E9=80=92=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/System/sys_linuxboot.c | 2 +- rtos/code/driver/na51089/include/sf_battery.h | 2 +- .../driver/na51089/source/mcu/sf_battery.c | 27 +++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c b/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c index 1615806e6..16e45ef5e 100644 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c @@ -855,7 +855,7 @@ static int make_bootargs(LINUXTMP_PARTITION *p_linuxtmp, unsigned int bootts_beg // } // } - snprintf(PowerOnModeStr, sizeof(PowerOnModeStr), "Mode=%d UpFw=%d mcu=%d sf=%d",sf_get_power_on_mode(), sf_in_update() , sf_in_mcu_update(), sf_battery_level_get()); + snprintf(PowerOnModeStr, sizeof(PowerOnModeStr), "Mode=%d UpFw=%d mcu=%d sf=%d",sf_get_power_on_mode(), sf_in_update() , sf_in_mcu_update(), sf_get_battery_level()); linuxboot_set_extra_bootarg(PowerOnModeStr); #endif p_linuxtmp->bootargs_addr = p_linuxtmp->tmp_curr; diff --git a/rtos/code/driver/na51089/include/sf_battery.h b/rtos/code/driver/na51089/include/sf_battery.h index f221cbc75..d7c79974c 100755 --- a/rtos/code/driver/na51089/include/sf_battery.h +++ b/rtos/code/driver/na51089/include/sf_battery.h @@ -28,7 +28,7 @@ UINT32 sf_battery_level_get(void); void sf_view_osd_battery_draw(UINT8 bShow); UINT8 sf_battery_value_get(UINT8 nightMode); UINT8 sf_battery_type_get(void); - +UINT32 sf_get_battery_level(void); BOOL sf_battery_check_init(void); void sf_set_need_check_first(void); BOOL sf_is_enough_power_to_update(void); diff --git a/rtos/code/driver/na51089/source/mcu/sf_battery.c b/rtos/code/driver/na51089/source/mcu/sf_battery.c index 20ec89584..1993222c3 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_battery.c +++ b/rtos/code/driver/na51089/source/mcu/sf_battery.c @@ -977,6 +977,33 @@ void sf_set_night_led_flag(UINT8 flag) IsNightLedOn = flag; } +/************************************************* + Function: sf_battery_type_get + Description: Get battery type. + Input: N/A + Output: N/A + Return: value: battery type, 0:normal 1:LiPolymer + Others: N/A +*************************************************/ +UINT16 sf_battery_val_get(void) +{ + if(IsPowerDcIn) + return (UINT16)DcVoltageVal; + else if(LiPolymerVoltageVal) + return (UINT16)LiPolymerVoltageVal; + else if(BatVoltageVal) + return (UINT16)BatVoltageVal; + else + return 0; +} + +UINT32 sf_get_battery_level(void) +{ + UINT32 tmp = ((UINT32) (sf_battery_value_get(sf_get_night_led_flag()) << 18) | (((sf_battery_type_get()) << 16) | (sf_battery_val_get()))); + // printf("[%s:%d] tmp:%ld\n", __FUNCTION__, __LINE__, tmp); + return tmp; +} + /************************************************* Function: sf_battery_level_get Description: get battery level