MTK 关于电池等级问题

    技术2025-11-18  17

    Q:关于电池等级的问题。我们如果想把目前的电池格数由3级改为4级,把每级对应的电池强度(值)重新定义的话, 要该那些codes:

    MSG_ID_MMI_EQ_BATTERY_STATUS_IND

    A:1、修改NVRAM_EF_CUST_HW_LEVEL_TBL_DEFAULT:kal_uint32 const NVRAM_EF_CUST_HW_LEVEL_TBL_DEFAULT[] = { ......                  /* Battery voltage Level */                  3350000, /* Low Battery Power off */                  3500000, /* Low Battery */                  /* battery level 1 ~ 8 */

                      3550000, 3600000, 3650000, 3700000,                   3750000, 3800000, 3850000, 3900000,       ......         };

    2、修改battery_level_enum:typedef enum {   BATTERY_LOW_POWEROFF = 0,   BATTERY_LOW_TX_PROHIBIT,   BATTERY_LOW_WARNING,   BATTERY_LEVEL_0, //battery level 1   BATTERY_LEVEL_1,   BATTERY_LEVEL_2,   BATTERY_LEVEL_3,    BATTERY_LEVEL_4,    BATTERY_LEVEL_5,    BATTERY_LEVEL_6,    BATTERY_LEVEL_7,    BATTERY_LEVEL_LAST = 10} battery_level_enum;

    3、修改函数BatteryStatusIndication:void BatteryStatusIndication(U8 battery_voltage){    /*----------------------------------------------------------------*/    /* Local Variables                                                */    /*----------------------------------------------------------------*/ U8 level_percentage = 0;     U8 max_level = BATTERY_LEVEL_4; //电池总格数(此处一定要改),BATTERY_LEVEL_4即表示满格为四格。    /*----------------------------------------------------------------*/    /* Code Body                                                      */    /*----------------------------------------------------------------*/    if (battery_voltage == BATTERY_LOW_POWEROFF || battery_voltage == BATTERY_LOW_TX_PROHIBIT ||      battery_voltage == BATTERY_LOW_WARNING || battery_voltage == BATTERY_LEVEL_0 )     {      level_percentage = 0;     }    else if ( battery_voltage >= BATTERY_LEVEL_1 && battery_voltage <= max_level)     {      level_percentage = (battery_voltage - BATTERY_LEVEL_0) * 100  / (max_level - BATTERY_LEVEL_0);     }    else     {      level_percentage = 100;     }

     ChangeStatusIconLevel(STATUS_ICON_BATTERY_STRENGTH, level_percentage); #ifdef __MMI_SUBLCD__ ChangeStatusIconLevel(STATUS_ICON_SUBLCD_BATTERY_STRENGTH, level_percentage); #endif }

     

    4. 图标也需要做相应的修改

    最新回复(0)