本文共 1429 字,大约阅读时间需要 4 分钟。
如何将电池电量格数显示由四格修改为八格,当电量低于30%,20%,10%时,pop框给予提示? 请在(1)(2)两处做修改,根据(3)的提示show popup框: (1)增加battery level voltage 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 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 = 11 } battery_level_enum; (3)VBAT的值是通过ADC channel 0检测得到。在ADC检测完成adc_sche_task_complete_callback,UEM收到消息MSG_ID_BMT_ADC_MEASURE_DONE_CONF,消息内容中包含voltage。 在uembmt_adc_measure_done_cnf_hdlr函数中,通过uem_set_bat_status(bmt_status)将以下值保存在SRAM中。 bmt_status.status = PMIC_VBAT_STATUS; bmt_status.adc = msg_ptr->adc_value; bmt_status.volt = msg_ptr->volt; 然后uem_vbat_level_convert将voltage转换成对应的level。接着将这个level通过发消息MSG_ID_MMI_EQ_BATTERY_STATUS_IND给MMI, 在mmi_charbat_main_evt_hdlr 中case到PMIC_VBAT_STATUS, 最后call BatteryStatusIndication来update电池电量信号栏。 在目前的设计中,只有连续三次检测到电池电量的等级无变化时,才会将电池电量更新,VBAT_HIT_COUNT_BOUND=3。 Popup框的显示,例如BATTERY_LOW_WARNING,vapp_charger_other_evt_hdlr中收到EVT_ID_SRV_CHARBAT_REMIND_LOW_POWER通知,就会通过vapp_charger_notify show相应的popup框。转载地址:http://asgdi.baihongyu.com/