515 lines
19 KiB
C
515 lines
19 KiB
C
#include "include.h"
|
||
#include "func.h"
|
||
#include "app_variable.h"
|
||
#include "common/func_lowpwr.h"
|
||
|
||
#define TRACE_EN 0
|
||
|
||
#if TRACE_EN
|
||
#define TRACE(...) printf(__VA_ARGS__)
|
||
#else
|
||
#define TRACE(...)
|
||
#endif
|
||
|
||
#define TEST_EN 0
|
||
|
||
#if TEST_EN
|
||
static u16 test_value = 0;
|
||
#define BAT_PERCENT_VALUE test_value // 电量百分比数值
|
||
#else
|
||
#define BAT_PERCENT_VALUE bsp_vbat_percent_get() // 电量百分比数值
|
||
#endif
|
||
|
||
#define LAMP_ANIM_CNT 5 // 天气类型数量
|
||
#define LAMP_TIME_CNT 11 // 天气类型数量
|
||
#define LAMP_DATE_CNT 10 // 天气类型数量
|
||
#define LAMP_WEEK_CNT 7 // 天气类型数量
|
||
|
||
#define LOWPWR_PERCENT 25 // 低电百分比阈值
|
||
#define NUM_PERCENT_MARGIN 6 // 数字和百分号间距
|
||
#define GUI_CHARGE_SCREEN_Y (GUI_SCREEN_HEIGHT / 2)
|
||
|
||
enum
|
||
{
|
||
/* 图像id */
|
||
COMPO_ID_PIC_LOWPWR = 1, // 红色底图
|
||
COMPO_ID_PIC_LOWPWR1, // 20%红圈
|
||
COMPO_ID_PIC_LOWPWR2, // 1/10红圈
|
||
|
||
COMPO_ID_PIC_QUARTER, // 绿色底图
|
||
COMPO_ID_PIC_QUARTER1, // 50%部分
|
||
COMPO_ID_PIC_QUARTER2, // 75%部分
|
||
COMPO_ID_PIC_QUARTER3, // 1/4绿圈
|
||
|
||
/* 数字 */
|
||
COMPO_ID_BED_LAMP_ANIM,
|
||
COMPO_ID_BED_LAMP_HOUR_1,
|
||
COMPO_ID_BED_LAMP_HOUR_2,
|
||
COMPO_ID_BED_LAMP_MIN_1,
|
||
COMPO_ID_BED_LAMP_MIN_2,
|
||
COMPO_ID_BED_LAMP_MIN_COLON,
|
||
COMPO_ID_BED_LAMP_DATE,
|
||
COMPO_ID_BED_LAMP_WEEK,
|
||
};
|
||
|
||
typedef struct f_charge_t_
|
||
{
|
||
u8 bed_lamp_idx;
|
||
u8 charge_anim_index;
|
||
bool charge_full_flag;
|
||
u32 charge_anim_tick;
|
||
u32 charge_sleep_temp;
|
||
u8 charge_level_temp;
|
||
} f_charge_t;
|
||
|
||
|
||
//返回床头钟充电图标的当前索引
|
||
static u8 update_lamp_pic_index(u16 vbat_percent)
|
||
{
|
||
switch(tjd_charging_show_bat_ui_level())
|
||
{
|
||
#if(LAMP_ANIM_CNT == 5)
|
||
case 0:
|
||
case 1:
|
||
return 0;
|
||
case 2:
|
||
case 3:
|
||
return 1;
|
||
case 4:
|
||
case 5:
|
||
case 6:
|
||
return 2;
|
||
case 7:
|
||
case 8:
|
||
case 9:
|
||
return 3;
|
||
default:
|
||
return LAMP_ANIM_CNT - 1;
|
||
}
|
||
#else if(LAMP_ANIM_CNT == 11)
|
||
return tjd_charging_show_bat_ui_level();
|
||
#endif
|
||
}
|
||
|
||
//根据百分比计算四分之一圈旋转的角度(0-2700)
|
||
static u16 func_charge_percent_to_deg(u16 percent)
|
||
{
|
||
percent = MIN(100, MAX(25, percent));
|
||
return (2700 * (percent - 25) / (100 - 25));
|
||
}
|
||
|
||
static u16 func_low_power_percent_to_deg(u16 percent)
|
||
{
|
||
percent = MIN(100, MAX(10, percent));
|
||
return (3240 * (percent - 10) / (100 - 10));
|
||
}
|
||
|
||
// 创建充电窗体,创建窗体中不要使用功能结构体 func_cb.f_cb
|
||
compo_form_t *func_charge_form_create(void)
|
||
{
|
||
// 新建窗体和背景
|
||
compo_form_t *frm = compo_form_create(true);
|
||
|
||
char week_en_text[][4] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
|
||
#if defined(__LANGUAGE_SM_CHINESE__)
|
||
char week_ch_text[][12] = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"};
|
||
#endif
|
||
|
||
|
||
// 新建图像
|
||
#ifdef TJD_GUI_CHARING_WATCH_SHOW
|
||
|
||
if (SysVariable.charingWatchSwitch == 1)
|
||
{
|
||
|
||
compo_picturebox_t *pic = compo_picturebox_create(frm, UI_BUF_BEDLAMP_BAT_ANIM_BIN);
|
||
compo_picturebox_cut(pic, update_lamp_pic_index(BAT_PERCENT_VALUE), LAMP_ANIM_CNT);//电量动画图
|
||
compo_setid(pic, COMPO_ID_BED_LAMP_ANIM);
|
||
compo_picturebox_set_pos(pic, 30, 75);
|
||
|
||
pic = compo_picturebox_create(frm, UI_BUF_BEDLAMP_TIME_NUM_BIN);
|
||
compo_picturebox_cut(pic, 0, LAMP_TIME_CNT); // 时-十位
|
||
compo_picturebox_set_pos(pic, 136, 95);
|
||
compo_bonddata(pic, COMPO_BOND_HOUR_H);
|
||
|
||
pic = compo_picturebox_create(frm, UI_BUF_BEDLAMP_TIME_NUM_BIN);
|
||
compo_picturebox_cut(pic, 0, LAMP_TIME_CNT); // 时-个位
|
||
compo_picturebox_set_pos(pic, 199, 95);
|
||
compo_bonddata(pic, COMPO_BOND_HOUR_L);
|
||
|
||
pic = compo_picturebox_create(frm, UI_BUF_BEDLAMP_TIME_NUM_BIN);
|
||
compo_picturebox_cut(pic, 0, LAMP_TIME_CNT); // 分-十位
|
||
compo_picturebox_set_pos(pic, 136, 222);
|
||
compo_bonddata(pic, COMPO_BOND_MINUTE_H);
|
||
|
||
pic = compo_picturebox_create(frm, UI_BUF_BEDLAMP_TIME_NUM_BIN);
|
||
compo_picturebox_cut(pic, 0, LAMP_TIME_CNT); // 分-个位
|
||
compo_picturebox_set_pos(pic, 199, 222);
|
||
compo_bonddata(pic, COMPO_BOND_MINUTE_L);
|
||
|
||
pic = compo_picturebox_create(frm, UI_BUF_BEDLAMP_TIME_NUM_BIN);
|
||
compo_picturebox_cut(pic, 10, LAMP_TIME_CNT); // 冒号
|
||
compo_setid(pic, COMPO_ID_BED_LAMP_MIN_COLON);
|
||
compo_picturebox_set_pos(pic, 76, 222);
|
||
|
||
compo_textbox_t *txt;
|
||
txt = compo_textbox_create(frm, 10);
|
||
compo_textbox_set_font(txt,UI_BUF_BEDLAMP_DATE_WEEK_NUM_BIN);
|
||
compo_textbox_set_forecolor(txt,make_color(82,235,105));
|
||
compo_textbox_set_location(txt, 132, 21, 100, 30);
|
||
compo_bonddata(txt, COMPO_BOND_DAY);//日期
|
||
|
||
//星期
|
||
txt = compo_textbox_create(frm, 12);
|
||
compo_textbox_set_font(txt,UI_BUF_BEDLAMP_DATE_WEEK_NUM_BIN);
|
||
compo_textbox_set_forecolor(txt,make_color(82,235,105));
|
||
compo_textbox_set_location(txt, 181, 21,GUI_SCREEN_WIDTH/3,40);
|
||
#if defined(__LANGUAGE_SM_CHINESE__)
|
||
if (tjd_Get_Language_Current_Index() == LANGUAGE_TYPE_Chinese)
|
||
compo_textbox_set(txt, week_ch_text[SysVariable.Rtc.weekday]);
|
||
else
|
||
#endif
|
||
compo_textbox_set(txt, week_en_text[SysVariable.Rtc.weekday]);
|
||
|
||
|
||
|
||
// pic = compo_picturebox_create(frm, UI_BUF_BEDLAMP_DATE_NUM_BIN);
|
||
// compo_picturebox_cut(pic, 0, LAMP_DATE_CNT); // 默认第1张图
|
||
// compo_picturebox_set_pos(pic, 128, 21);
|
||
// compo_bonddata(pic, COMPO_BOND_DAY_H);
|
||
|
||
// pic = compo_picturebox_create(frm, UI_BUF_BEDLAMP_DATE_NUM_BIN);
|
||
// compo_picturebox_cut(pic, 0, LAMP_DATE_CNT); // 默认第1张图
|
||
// compo_picturebox_set_pos(pic, 139, 21);
|
||
// compo_bonddata(pic, COMPO_BOND_DAY_L);
|
||
|
||
// pic = compo_picturebox_create(frm, UI_BUF_BEDLAMP_WEEK_BIN);
|
||
// #if defined(__LANGUAGE_SM_CHINESE__)
|
||
// compo_picturebox_cut(pic, SysVariable.deviceInfo.language == LANGUAGE_TYPE_Chinese ? 0 : 6, LAMP_WEEK_CNT); // 默认第1张图
|
||
// #else
|
||
// compo_picturebox_cut(pic, 0, LAMP_WEEK_CNT); // 默认第1张图
|
||
// #endif
|
||
// compo_picturebox_set_pos(pic, 181, 21);
|
||
// compo_bonddata(pic, COMPO_BOND_WEEKDAY);
|
||
|
||
// compo_textbox_t *date = compo_textbox_create(frm, 5);
|
||
// compo_textbox_set_font(date, UI_BUF_0FONT_FONT_BIN);
|
||
// compo_textbox_set_pos(date, 144, 21);
|
||
// compo_textbox_set_forecolor(date, make_color(255,255,255));
|
||
// compo_bonddata(date, COMPO_BOND_DATE);
|
||
|
||
// compo_textbox_t *week = compo_textbox_create(frm, 15);
|
||
// compo_textbox_set_font(week, UI_BUF_0FONT_FONT_BIN);
|
||
// compo_textbox_set_pos(week, 201, 21);
|
||
// compo_textbox_set_forecolor(week, make_color(255,255,255));
|
||
// compo_bonddata(week, COMPO_BOND_WEEKDAY);
|
||
}
|
||
else
|
||
#endif
|
||
{
|
||
/* 低电红色动画 */
|
||
s16 center_x = 0;
|
||
s16 center_y = 6;
|
||
compo_picturebox_t *pic = NULL;
|
||
|
||
pic = compo_picturebox_create(frm, UI_BUF_CHARGE_BJ_LOW_BATTERY_BIN);
|
||
compo_setid(pic, COMPO_ID_PIC_LOWPWR);
|
||
compo_picturebox_set_pos(pic, GUI_SCREEN_CENTER_X, GUI_CHARGE_SCREEN_Y);
|
||
compo_picturebox_set_visible(pic, BAT_PERCENT_VALUE <= LOWPWR_PERCENT);
|
||
|
||
center_x = gui_image_get_size(UI_BUF_CHARGE_LOW_BATTERY_BIN).wid - 6;
|
||
pic = compo_picturebox_create(frm, UI_BUF_CHARGE_LOW_BATTERY_BIN);
|
||
compo_setid(pic, COMPO_ID_PIC_LOWPWR1);
|
||
compo_picturebox_set_rotation_center(pic, center_x, center_y);
|
||
compo_picturebox_set_rotation(pic, 360);
|
||
compo_picturebox_set_pos(pic, GUI_SCREEN_CENTER_X, GUI_CHARGE_SCREEN_Y);
|
||
compo_picturebox_set_visible(pic, BAT_PERCENT_VALUE > 20);
|
||
|
||
pic = compo_picturebox_create(frm, UI_BUF_CHARGE_LOW_BATTERY_BIN);
|
||
compo_setid(pic, COMPO_ID_PIC_LOWPWR2);
|
||
compo_picturebox_set_rotation_center(pic, center_x, center_y);
|
||
compo_picturebox_set_rotation(pic, func_low_power_percent_to_deg(BAT_PERCENT_VALUE));
|
||
compo_picturebox_set_pos(pic, GUI_SCREEN_CENTER_X, GUI_CHARGE_SCREEN_Y);
|
||
compo_picturebox_set_visible(pic, FALSE);
|
||
|
||
/* 电量大于25%绿色动画 */
|
||
pic = compo_picturebox_create(frm, UI_BUF_CHARGE_BJ_BATTERY_BIN);
|
||
compo_setid(pic, COMPO_ID_PIC_QUARTER);
|
||
compo_picturebox_set_pos(pic, GUI_SCREEN_CENTER_X, GUI_CHARGE_SCREEN_Y);
|
||
compo_picturebox_set_visible(pic, BAT_PERCENT_VALUE > LOWPWR_PERCENT);
|
||
|
||
center_x = gui_image_get_size(UI_BUF_CHARGE_CHARGING_BIN).wid - 6;
|
||
pic = compo_picturebox_create(frm, UI_BUF_CHARGE_CHARGING_BIN);
|
||
compo_setid(pic, COMPO_ID_PIC_QUARTER1);
|
||
compo_picturebox_set_rotation_center(pic, center_x, center_y);
|
||
compo_picturebox_set_rotation(pic, 900);
|
||
compo_picturebox_set_pos(pic, GUI_SCREEN_CENTER_X, GUI_CHARGE_SCREEN_Y);
|
||
compo_picturebox_set_visible(pic, BAT_PERCENT_VALUE > 50);
|
||
|
||
pic = compo_picturebox_create(frm, UI_BUF_CHARGE_CHARGING_BIN);
|
||
compo_setid(pic, COMPO_ID_PIC_QUARTER2);
|
||
compo_picturebox_set_rotation_center(pic, center_x, center_y);
|
||
compo_picturebox_set_rotation(pic, 1800);
|
||
compo_picturebox_set_pos(pic, GUI_SCREEN_CENTER_X, GUI_CHARGE_SCREEN_Y);
|
||
compo_picturebox_set_visible(pic, BAT_PERCENT_VALUE > 75);
|
||
|
||
pic = compo_picturebox_create(frm, UI_BUF_CHARGE_CHARGING_BIN);
|
||
compo_setid(pic, COMPO_ID_PIC_QUARTER3);
|
||
compo_picturebox_set_rotation_center(pic, center_x, center_y);
|
||
compo_picturebox_set_rotation(pic, func_charge_percent_to_deg(BAT_PERCENT_VALUE));
|
||
compo_picturebox_set_pos(pic, GUI_SCREEN_CENTER_X, GUI_CHARGE_SCREEN_Y);
|
||
compo_picturebox_set_visible(pic, BAT_PERCENT_VALUE > LOWPWR_PERCENT);
|
||
}
|
||
return frm;
|
||
}
|
||
|
||
// 充电功能事件处理
|
||
static void func_charge_process(void)
|
||
{
|
||
f_charge_t *f_charge = (f_charge_t *)func_cb.f_cb;
|
||
compo_picturebox_t *pic;
|
||
// compo_textbox_t *txt;
|
||
// char str_buff[8];
|
||
static bool colon_show = false;
|
||
|
||
/* 防止移除充电器后界面未退出问题 */
|
||
if (!bsp_charge_sta_get()) {
|
||
if (func_cb.sta == FUNC_CHARGE) {
|
||
func_directly_back_to();
|
||
}
|
||
return;
|
||
}
|
||
|
||
#if TEST_EN
|
||
static u32 tick = 0;
|
||
if (tick_check_expire(func_cb.enter_tick, 3000) && tick_check_expire(tick, 300)) {
|
||
tick = tick_get();
|
||
test_value += test_value >= 100 ? 0 : 1;
|
||
}
|
||
#endif // TEST_EN
|
||
#ifdef TJD_GUI_CHARING_WATCH_SHOW
|
||
if (SysVariable.charingWatchSwitch == 1)
|
||
{
|
||
reset_sleep_delay();
|
||
reset_pwroff_delay();
|
||
|
||
if (tick_check_expire(func_cb.enter_tick, 1000)) {
|
||
func_cb.enter_tick = tick_get();
|
||
|
||
if (BAT_PERCENT_VALUE < 100)
|
||
{
|
||
f_charge->bed_lamp_idx++;
|
||
if (f_charge->bed_lamp_idx >= LAMP_ANIM_CNT)
|
||
{
|
||
f_charge->bed_lamp_idx = update_lamp_pic_index(BAT_PERCENT_VALUE);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
f_charge->bed_lamp_idx = (LAMP_ANIM_CNT - 1);
|
||
}
|
||
pic = compo_getobj_byid(COMPO_ID_BED_LAMP_ANIM);
|
||
compo_picturebox_cut(pic, f_charge->bed_lamp_idx, LAMP_ANIM_CNT);
|
||
|
||
colon_show = colon_show ? false : true;
|
||
pic = compo_getobj_byid(COMPO_ID_BED_LAMP_MIN_COLON);
|
||
compo_picturebox_set_visible(pic, colon_show);
|
||
}
|
||
}
|
||
else
|
||
#endif
|
||
{
|
||
if (BAT_PERCENT_VALUE >= 100)
|
||
{
|
||
if (!f_charge->charge_full_flag)
|
||
{
|
||
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_LOWPWR);
|
||
compo_picturebox_set_visible(pic, FALSE);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_LOWPWR1);
|
||
compo_picturebox_set_visible(pic, FALSE);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_LOWPWR2);
|
||
compo_picturebox_set_visible(pic, FALSE);
|
||
|
||
/* 满电停止动画 */
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_QUARTER);
|
||
compo_picturebox_set_visible(pic, TRUE);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_QUARTER1);
|
||
compo_picturebox_set_visible(pic, TRUE);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_QUARTER2);
|
||
compo_picturebox_set_visible(pic, TRUE);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_QUARTER3);
|
||
compo_picturebox_set_rotation(pic, func_charge_percent_to_deg(BAT_PERCENT_VALUE));
|
||
compo_picturebox_set_visible(pic, TRUE);
|
||
|
||
f_charge->charge_full_flag = TRUE;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
/* 充电过程循环动画 */
|
||
if (tick_check_expire(f_charge->charge_anim_tick, (BAT_PERCENT_VALUE > LOWPWR_PERCENT ? 100 : 150))) // 低电红色动画周期150ms,绿色周期100ms
|
||
{
|
||
if (f_charge->charge_anim_index < (BAT_PERCENT_VALUE > LOWPWR_PERCENT ? 100 : LOWPWR_PERCENT))
|
||
f_charge->charge_anim_index++;
|
||
else
|
||
f_charge->charge_anim_index = BAT_PERCENT_VALUE;
|
||
|
||
if (BAT_PERCENT_VALUE > LOWPWR_PERCENT)
|
||
{
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_LOWPWR);
|
||
compo_picturebox_set_visible(pic, FALSE);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_LOWPWR1);
|
||
compo_picturebox_set_visible(pic, FALSE);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_LOWPWR2);
|
||
compo_picturebox_set_visible(pic, FALSE);
|
||
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_QUARTER);
|
||
compo_picturebox_set_visible(pic, TRUE);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_QUARTER1);
|
||
compo_picturebox_set_visible(pic, f_charge->charge_anim_index > 50);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_QUARTER2);
|
||
compo_picturebox_set_visible(pic, f_charge->charge_anim_index > 75);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_QUARTER3);
|
||
compo_picturebox_set_rotation(pic, func_charge_percent_to_deg(f_charge->charge_anim_index));
|
||
compo_picturebox_set_visible(pic, f_charge->charge_anim_index > LOWPWR_PERCENT);
|
||
}
|
||
else
|
||
{
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_QUARTER);
|
||
compo_picturebox_set_visible(pic, FALSE);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_QUARTER1);
|
||
compo_picturebox_set_visible(pic, FALSE);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_QUARTER2);
|
||
compo_picturebox_set_visible(pic, FALSE);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_QUARTER3);
|
||
compo_picturebox_set_visible(pic, FALSE);
|
||
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_LOWPWR);
|
||
compo_picturebox_set_visible(pic, TRUE);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_LOWPWR1);
|
||
compo_picturebox_set_visible(pic, f_charge->charge_anim_index > 20);
|
||
pic = compo_getobj_byid(COMPO_ID_PIC_LOWPWR2);
|
||
compo_picturebox_set_rotation(pic, func_low_power_percent_to_deg(f_charge->charge_anim_index));
|
||
compo_picturebox_set_visible(pic, TRUE);
|
||
}
|
||
|
||
f_charge->charge_anim_tick = tick_get();
|
||
}
|
||
}
|
||
}
|
||
func_process();
|
||
}
|
||
|
||
// 充电功能消息处理
|
||
static void func_charge_message(size_msg_t msg)
|
||
{
|
||
static u32 res_tick = 0;
|
||
|
||
switch (msg) {
|
||
#if TEST_EN
|
||
case MSG_CTP_CLICK:
|
||
test_value = 0;
|
||
TRACE("test_value:%d\n", test_value);
|
||
break;
|
||
#endif // TEST_EN
|
||
|
||
case MSG_CTP_SHORT_UP:
|
||
case MSG_CTP_SHORT_DOWN:
|
||
case MSG_CTP_SHORT_LEFT:
|
||
// case MSG_CTP_SHORT_RIGHT:
|
||
case MSG_CTP_LONG:
|
||
break;
|
||
|
||
case MSG_QDEC_FORWARD:
|
||
case MSG_QDEC_BACKWARD:
|
||
break;
|
||
|
||
/* 不响应处理触摸滑动事件 */
|
||
case MSG_CTP_SHORT_RIGHT:
|
||
break;
|
||
|
||
/* 不响应按键事件 */
|
||
case KU_BACK:
|
||
case KU_RIGHT:
|
||
case KU_LEFT:
|
||
break;
|
||
|
||
/* 8s长按强制重启 */
|
||
case K_BACK:
|
||
res_tick = tick_get();
|
||
break;
|
||
case KL_BACK:
|
||
case KH_BACK:
|
||
case KLH_BACK:
|
||
if (tick_check_expire(res_tick, 8000)) {
|
||
user_cfg_info_write();
|
||
WDT_RST();
|
||
}
|
||
break;
|
||
|
||
default:
|
||
func_message(msg);
|
||
break;
|
||
}
|
||
}
|
||
|
||
// 进入充电功能
|
||
static void func_charge_enter(void)
|
||
{
|
||
func_cb.f_cb = func_zalloc(sizeof(f_charge_t));
|
||
func_cb.frm_main = func_charge_form_create();
|
||
|
||
f_charge_t *f_charge = (f_charge_t *)func_cb.f_cb;
|
||
f_charge->charge_anim_tick = tick_get();
|
||
f_charge->charge_full_flag = FALSE;
|
||
f_charge->charge_anim_index = BAT_PERCENT_VALUE;
|
||
f_charge->bed_lamp_idx = update_lamp_pic_index(BAT_PERCENT_VALUE);
|
||
if(SysVariable.charingWatchSwitch == 1)
|
||
{
|
||
f_charge->charge_sleep_temp = SysVariable.sleep_time;
|
||
SysVariable.sleep_time = -1;
|
||
SysVariable.sleep_delay = SysVariable.sleep_time;
|
||
SysVariable.guioff_delay = SysVariable.sleep_time;
|
||
|
||
}
|
||
|
||
f_charge->charge_level_temp = SysVariable.light_level;
|
||
SysVariable.light_level = 1;
|
||
tft_bglight_set_level(SysVariable.light_level,TRUE);
|
||
func_cb.enter_tick = tick_get();
|
||
}
|
||
|
||
// 退出充电功能
|
||
static void func_charge_exit(void)
|
||
{
|
||
func_cb.last = FUNC_CHARGE;
|
||
f_charge_t *f_charge = (f_charge_t *)func_cb.f_cb;
|
||
if(SysVariable.charingWatchSwitch == 1)
|
||
{
|
||
SysVariable.sleep_time = f_charge->charge_sleep_temp;
|
||
SysVariable.guioff_delay = SysVariable.sleep_time;
|
||
SysVariable.sleep_delay = SysVariable.sleep_time;
|
||
|
||
}
|
||
SysVariable.light_level = f_charge->charge_level_temp;
|
||
tft_bglight_set_level(SysVariable.light_level,false);
|
||
}
|
||
|
||
// 充电功能
|
||
void func_charge(void)
|
||
{
|
||
printf("%s\n", __func__);
|
||
func_charge_enter();
|
||
while (func_cb.sta == FUNC_CHARGE) {
|
||
func_charge_process();
|
||
func_charge_message(msg_dequeue());
|
||
|
||
/* 防止移除充电仍未退出充电界面,返回表盘 */
|
||
// if (!sys_cb.charge_sta) {
|
||
// func_cb.sta = FUNC_CLOCK;
|
||
// }
|
||
}
|
||
func_charge_exit();
|
||
}
|