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