123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- #include "include.h"
- #include "func.h"
- #include "hlw_func.h"
- #if HLW_UI
- AT(.text.func.charge.msg)
- void func_charge_message(u16 msg)
- {
- switch (msg) {
- #if HLW_UI
- case KU_ANC:
- //no ANC
- break;
- #endif
- case EVT_NTC_CONTROL:
- hlw_func_ntc_control_handle();
- break;
- case EVT_PC_INSERT:
- //printf("EVT_PC_INSERT %d\n",dev_is_online(DEV_USBPC));
- if (dev_is_online(DEV_USBPC)) {
- func_cb.sta = FUNC_USBDEV;
- }
- break;
- default:
- //func_message(msg);
- break;
- }
- }
- #endif
- AT(.text.func.charge)
- void func_charge_process(void)
- {
- while (1) {
- WDT_CLR();
- #if HLW_UI
- func_charge_message(msg_dequeue());
- #endif
- #if QTEST_EN
- if(qtest_get_mode() || qtest_cb.sta){
- func_cb.sta = func_cb.last;
- break;;
- }
- #endif
- #if CHARGE_LOW_POWER_EN
- delay_us(200);
- #else
- delay_5ms(1);
- #endif
- #if CHARGE_EN
- if (charge_charge_on_process()) {
- func_cb.sta = func_cb.last;
- break;
- }
- #endif
- #if HLW_UI
- if(func_cb.sta == FUNC_USBDEV)
- {
- break;
- }
- if(hlw_func_exit_charge_handle())
- {
- break;
- }
- #endif
- }
- }
- AT(.text.func.charge)
- static void func_charge_enter(void)
- {
- #if ANC_EN
- if(xcfg_cb.anc_en && sys_cb.anc_user_mode) {
- bsp_anc_stop(); //bsp_anc_set_mode(0);
- }
- #endif
- #if BT_MUSIC_EFFECT_EN
- music_effect_alg_suspend(MUSIC_EFFECT_SUSPEND_FOR_CHARGE);
- #endif // BT_MUSIC_EFFECT_EN
- dac_power_off();
- lock_code_charge();
- #if CHARGE_EN
- charge_enter(1);
- #endif
- #if HLW_UI
- led_init();
- hlw_func_charge_init_handle();
- hlw_func_charge_electric_init();
- hlw_func_ntc_var_init();
- hlw_cb.charge_qian30s_flag = true;
- hlw_cb.charge_qian30s_count = 0;
- hlw_cb.charging_flag = true;
- hlw_cb.exit_charge_count = 0;
- vusb4s_reset_en();
- #endif
- }
- AT(.text.func.charge)
- static void func_charge_exit(void)
- {
- #if CHARGE_EN
- charge_exit();
- #endif
- unlock_code_charge();
- printf("dc out\n");
- #if HLW_UI
- hlw_func_charge_electric_control_handle(0);
- hlw_func_charge_enable_handle(0);
- #endif
- bsp_res_set_enable(true);
- func_bt_init();
- en_auto_pwroff();
- if (xcfg_cb.bt_tws_pair_mode > 1) {
- bt_tws_set_scan(0x03);
- }
- if (!bsp_dac_off_for_bt_conn()) {
- dac_restart();
- }
- #if BT_MUSIC_EFFECT_EN
- music_effect_alg_restart();
- #endif // BT_MUSIC_EFFECT_EN
- #if !HLW_UI
- #if ANC_EN
- if(sys_cb.anc_user_mode) {
- bsp_anc_set_mode(sys_cb.anc_user_mode);
- }
- dac_fade_in();
- #endif
- if (xcfg_cb.bt_outbox_voice_pwron_en) {
- mp3_res_play(RES_BUF_POWERON, RES_LEN_POWERON);
- }
- #endif
- }
- AT(.text.func.charge)
- void func_charge(void)
- {
- printf("%s\n", __func__);
- func_charge_enter();
- func_charge_process();
- func_charge_exit();
- }
|