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. 图标也需要做相应的修改