1. 程式人生 > >如何增加電量顯示格數,並提示剩餘電量?

如何增加電量顯示格數,並提示剩餘電量?

如何將電池電量格數顯示由四格修改為八格,當電量低於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框

相關推薦

如何增加電量顯示提示剩餘電量

如何將電池電量格數顯示由四格修改為八格,當電量低於30%,20%,10%時,pop框給予提示? 請在(1)(2)兩處做修改,根據(3)的提示show popup框: (1)增加battery level voltage NVRAM_EF_CUST_HW_LEVEL_TBL_DEFAULT: kal_uint

無記錄時顯示gridview表頭增加一行顯示“沒有記錄”【綁定SqlDataSource控件時】

back 顯示 時間 delete created [0 導入 pro sys 原文發布時間為:2008-08-04 —— 來源於本人的百度文章 [由搬家工具導入]using System;using System.Data;using System.Configurati

C# DataGridView的單元輸入限制提示使用者 數字小數點

//自定義事件,檢測單價的鍵盤的輸入         private void EditingControlPrice_KeyPress(object sender, KeyPressEventArgs e)         {             //e.KeyCha

Linux查看文件總的據行按行拆分

big 數據行 查看 進行 class 利用 post 大小 linux 先利用 wc -l BLM.txt 讀出 BLM.txt 文件一共有多少行。 再 1. 以行數拆分 -l 參數: split –l 50 原始文件 拆分後文件名

mysql查看據庫中所有表的行進行排序

mysql查看數據庫中所有表的行數。mysql查看數據庫中所有表的行數,並進行排序:進行數據庫遷移或還原後,可以通過比較行數,檢查數據是否正確。mysql> use information_schema; mysql> select table_name,table_rows from table

獲取當前模塊內的所有函為每個函自動加裝裝飾器

HR star timer and UNC typeerror ttr pan 裝飾 示例代碼,用來,獲取當前模塊內的所有函數名,在為每個函數加裝飾器。 1 import sys 2 import time 3 from inspect import isfunc

sublime text 2 顯示GBK 編碼轉為 UTF-8 儲存

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

輸出1000以內的完輸出他們的因子

public class Exercise4 { public static void main(String[] args) { for (int i=1;i<=1000;i++) { int[] yz= new int[100]; int sum=0; int in

給定一個升序排列的陣列去掉重複的輸出新的陣列的長度。

給定一個升序排列的陣列,去掉重複的數,並輸出新的陣列的長度。 例如:陣列 A={1,1,2},你的程式應該輸出 2 即新陣列的長度,新陣列為 {1,2}。 要求:不能新開陣列分配額外的空間,即常數空間限制。 輸入格式 輸入一個整數 n(1≤n≤1000)。 接下來一行

SAS 統計某個數據集各個字段頻匯集到一個表中

keep val out 統計 int put nts miss 數據集 /*統計表的字段*/ PROC CONTENTS DATA=SASHELP.CLASS NOPRINT OUT=CA(KEEP=NAME); RUN; /*提取表的變量名*/

SAS 統計某個資料集各個欄位頻彙集到一個表中

/*統計表的欄位*/ PROC CONTENTS DATA=SASHELP.CLASS NOPRINT OUT=CA(KEEP=NAME); RUN; /*提取表的變數名*/ PROC SQL NOPRINT; SELECT NAME INTO:A SEPARATED BY '

在UGUI上顯示3D模型限制範圍的拖拽

通過RenderTexture實現 顯示圖片 記得在用NGUI的時候,就是用這種方式實現在UI上顯示模型的。 首先新建一張RenderTexture,右鍵點選Project視窗,Create->Render Texture; 新建一個Shader ,將剛剛新建的RenderT

ACMNO.11 一個數如果恰好等於它的因子之和這個數就稱為"完"。 例如6的因子為1、2、3而6=1+2+3因此6是"完"。 程式設計序找出N之內的所有完按下面格式輸出其因子

寫在前面,心得感悟~ 程式碼越來越有難度! 這個ACM題,我除錯了 將近50次~ 一個小時! 真的是,年紀輕輕的搞什麼ACM呀! 關於題的解決思路放在下面再寫吧! 題目描述 一個數如果恰好等於它的因子之和,這個數就稱為"完數"。 例如,6的因子為1、2、3,而6=1+2+

C語言 1. switch語句的使用2.輸出菱形3..求出0~999之間的所有”水仙花輸出

浮點型和零相比? #define EXP 0.000000……1 在不同作業系統下程式碼結果可能不一樣,所以定義一個精度 switch語句的使用: int main() { int day=0; scanf("%d",&day); switch(d

找陣列中絕對值最大的保留規定的小數點數

#include using namespace std; #include<math.h> #include float date[8] = { -200.1,-40.5,80,99.367,0,-778.354,666,454.235 }; in

Dijkstra求最短路的條輸出最短路徑和最短路經過的點的最大和

#include <cstdio> #include <algorithm> #include <iostream> #include <cstring> #include <stack> using name

向一個數組中輸入5計正數的個數求他們之和

源程式: #include <stdlib.h> #include <stdio.h> main() { int a[5]; int i; int count=0,sum=0; printf("Please input 5 numb

java 求1到n之間的所有完輸出各個因子

import java.util.Scanner; public class wanshu {/*** 一個數如果恰好等於它的因子之和,這個數就稱為 "完數 "。* 例如6=1+2+3.*/public static void main(String[] args) {//

求出1~1000之間所有能被7整除的每五個求一次和。

<span style="font-size:24px;"> int a=0,b=0,sum=0; while (a < 1000) { a++; if (a % 7

phpcms 迴圈一級導航欄顯示所有文章帶有 二級導航欄標題

{loop subcat($catid) $v}        {pc:content action="lists" catid="$v[catid]" num="10" order="updatetime DESC"  page="$page"