📄 pwroncharger.c
字号:
LowBatteryCommonAction();
break;
}
case BATTERY_LOW_WARNING:
{
if (g_charbat_context.LowBatteryFlag == 0 || g_charbat_context.LowBatteryTxProhibitFlag == 1)
{
/* Battery level changer, Change alert Threshold */
/* Battery level coming up from BATTERY_LOW_TX_PROHIBIT, reset flag */
g_charbat_context.LowBatteryTxProhibitFlag = 0;
if (GetTotalCallCount() == 0)
{
SET_LOW_BATTERY_ALARM_THRESHOLD(LBAT_IDLE_DURCNT_NORMAL);
RESET_LOW_BATTERY_ALARM_CNT();
}
else
{
SET_LOW_BATTERY_ALARM_THRESHOLD(LBAT_TALK_DURCNT_NORMAL);
RESET_LOW_BATTERY_ALARM_CNT();
}
}
LowBatteryCommonAction();
break;
}
case BATTERY_LEVEL_0: /* pass */
case BATTERY_LEVEL_1: /* pass */
case BATTERY_LEVEL_2: /* pass */
case BATTERY_LEVEL_3: /* pass */
default:
{
batteryLowCount = 0; /* reset low battery ind count */
g_charbat_context.LowBatteryFlag = 0; /* MTK added, Robin 1009 for status led history */
g_charbat_context.LowBatteryTxProhibitFlag = 0;
break;
}
}
}
/*****************************************************************************
* FUNCTION
* BatteryStatusIndication
* DESCRIPTION
* This function shows the level on status icons of mainlcd nad sublcd.
* PARAMETERS
* battery_voltage [IN] Battery level
* RETURNS
* void
*****************************************************************************/
void BatteryStatusIndication(U8 battery_voltage)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
switch (battery_voltage)
{
case BATTERY_LOW_POWEROFF: /* pass */
case BATTERY_LOW_TX_PROHIBIT: /* pass */
case BATTERY_LOW_WARNING: /* pass */
case BATTERY_LEVEL_0:
{
PRINT_INFORMATION_2((MMI_TRACE_G7_MISC, "[DevMngr-PMIC] Low Battery Warning: level = %d", battery_voltage));
ChangeStatusIconLevel(STATUS_ICON_BATTERY_STRENGTH, 0);
// wangbei add start 20071010
#ifdef __NEW_STATUS_ICONS_STYLE__
draw_submenu_statusicons();
#endif
// wangbei add end
#ifdef __MMI_SUBLCD__
ChangeStatusIconLevel(STATUS_ICON_SUBLCD_BATTERY_STRENGTH, 0);
#endif
break;
}
case BATTERY_LEVEL_1: /* pass */
case BATTERY_LEVEL_2: /* pass */
case BATTERY_LEVEL_3: /* pass */
{
PRINT_INFORMATION_2((MMI_TRACE_G7_MISC, "[DevMngr-PMIC] Battery Level = %d", battery_voltage));
ChangeStatusIconLevel((S16) STATUS_ICON_BATTERY_STRENGTH, (U8) (33 * (battery_voltage - BATTERY_LEVEL_0)));
#ifdef __MMI_SUBLCD__
ChangeStatusIconLevel(
(S16) STATUS_ICON_SUBLCD_BATTERY_STRENGTH,
(U8) (33 * (battery_voltage - BATTERY_LEVEL_0)));
#endif /* __MMI_SUBLCD__ */
// wangbei add start 20071010
#ifdef __NEW_STATUS_ICONS_STYLE__
draw_submenu_statusicons();
#endif
// wangbei add end
break;
}
default:
{
PRINT_INFORMATION(("Battery Status Indication unknown voltage "));
ChangeStatusIconLevel(STATUS_ICON_BATTERY_STRENGTH, 33);
// wangbei add start 20070930
#ifdef __NEW_STATUS_ICONS_STYLE__
draw_submenu_statusicons();
#endif
// wangbei add end
#ifdef __MMI_SUBLCD__
ChangeStatusIconLevel(STATUS_ICON_SUBLCD_BATTERY_STRENGTH, 33);
#endif
break;
}
}
}
/*****************************************************************************
* FUNCTION
* CHECK_MO_ALLOW
* DESCRIPTION
* This function checks if outgoing call is allowed or not.
* PARAMETERS
* void
* RETURNS
* MMI_TRUE: MO allowed
* MMI_FALSE: MO not allowed
*****************************************************************************/
BOOL CHECK_MO_ALLOW(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_charbat_context.LowBatteryTxProhibitFlag == 0)
{
return MMI_TRUE; /* allow MO call */
}
else
{
return MMI_FALSE; /* prohibit MO call */
}
}
/*****************************************************************************
* FUNCTION
* IS_LOW_BATTERY
* DESCRIPTION
* This function checks if battery is low.
* PARAMETERS
* void
* RETURNS
* MMI_TRUE: voltage low
* MMI_FALSE: noe voltage low
*****************************************************************************/
BOOL IS_LOW_BATTERY(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_charbat_context.LowBatteryFlag == 1)
{
return MMI_TRUE; /* Low battery */
}
else
{
return MMI_FALSE;
}
}
/*****************************************************************************
* FUNCTION
* SET_LOW_BATTERY_ALARM_THRESHOLD
* DESCRIPTION
* TThis function sets the thresh hold for low battery alarm.
* PARAMETERS
* cnt [IN] The thresh
* RETURNS
* void
*****************************************************************************/
void SET_LOW_BATTERY_ALARM_THRESHOLD(U8 cnt)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/*********************************************************/
/***** The threshold will be changed when:*****/
/*********************************************************/
/* 1. MT Call Accepted */
/* 2. Call END */
/* 3. Make MO Call */
/* 4. SAT Call setup */
/*********************************************************/
if (lowBatteryAlarmThreshold == cnt)
{
return;
}
lowBatteryAlarmThreshold = cnt;
batteryLowCount = lowBatteryAlarmThreshold;
}
/*****************************************************************************
* FUNCTION
* RESET_LOW_BATTERY_ALARM_CNT
* DESCRIPTION
* This function reset battery low alert count.
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void RESET_LOW_BATTERY_ALARM_CNT(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/*
* Set counter to threshold value so that MMI will alert at next indication
* (the indication will comes to MMI by 1 minute ( depends on custom setting)
*/
batteryLowCount = lowBatteryAlarmThreshold;
}
/*****************************************************************************
* FUNCTION
* BatteryIndicationPopup
* DESCRIPTION
* General popup fn for charger events.
* PARAMETERS
* stringId [IN] String shows in the popup screen
* RETURNS
* void
*****************************************************************************/
void BatteryIndicationPopup(U16 stringId)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 pp_flag, tone_id = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/*
* Popup screen display permisstion flag
* * Framework support Popup display permisstion flag
* * Application who wanna stop popup has to intercept related messages and set the flag
*/
pp_flag = GetInterruptPopupDisplay();
if ((pp_flag & POPUP_DSPL_ON) == 0 ||
(pp_flag & POPUP_PMIC_ON) == 0)
{
return;
}
if (pp_flag & POPUP_TONE_ON)
{
tone_id = AUX_TONE;
}
/* Call End Transition, not allow to dispaly popup */
if (GetTransitionToActiveFlag() == TRUE)
{
return;
}
DisplayPopup((U8*) GetString(stringId), IMG_GLOBAL_WARNING, 0, UI_POPUP_NOTIFYDURATION_TIME, tone_id);
}
/*****************************************************************************
* FUNCTION
* ExitChargerPopUpScr
* DESCRIPTION
* Exit Charger pop up screen.
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void ExitChargerPopUpScr(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
StopTimer(LOW_BATTERY_SCR_TIMER);
}
/*****************************************************************************
* FUNCTION
* ChargingAbnormalHandler
* DESCRIPTION
* Handle General Abnormal battery ind.
* PARAMETERS
* stringId [IN] String shows in the popup screen
* RETURNS
* void
*****************************************************************************/
void ChargingAbnormalHandler(U16 stringId)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_charbat_context.isChargerConnected && mmi_bootup_is_in_power_on_period() == MMI_FALSE)
{
AbnormalBatteryIndPopup(stringId);
StartLEDPatternBatteryWarning();
playRequestedTone(BATTERY_WARNING_TONE);
}
}
/*****************************************************************************
* FUNCTION
* AbnormalBatteryIndPopup
* DESCRIPTION
* Exit General Abnormal battery ind popup.
* PARAMETERS
* stringId [IN] String shows in the popup screen
* RETURNS
* void
*****************************************************************************/
void AbnormalBatteryIndPopup(U16 stringId)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
static U16 LocalStringId;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
g_charbat_context.ChargingAbnormal = 1;
EntryNewScreen(SCR_ABNORMAL_CHARGING, ExitAbnormalBatteryIndPopup, NULL, NULL);
ClearKeyEvents();
if (stringId != 0)
{
LocalStringId = stringId;
}
ShowCategory64Screen(LocalStringId, IMG_GLOBAL_WARNING, 0);
ShowSubLCDScreen(ShowSubLCDAbnormalPopup);
HideStatusIcon(STATUS_ICON_SUBLCD_BATTERY_STRENGTH);
ShowStatusIcon(STATUS_ICON_SUBLCD_BATTERY_STRENGTH);
ClearInputEventHandler(MMI_DEVICE_KEY);
if (g_charbat_context.PowerOnCharger == 0)
{
HideStatusIcon(STATUS_ICON_BATTERY_STRENGTH);
ShowStatusIcon(STATUS_ICON_BATTERY_STRENGTH);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -