#include "include.h" #include "func_menu.h" #if TRACE_EN #define TRACE(...) printf(__VA_ARGS__) #else #define TRACE(...) #endif extern void func_bt(void); func_cb_t func_cb AT(.buf.func_cb); AT(.text.func.process) void func_process(void) { WDT_CLR(); #if VBAT_DETECT_EN bsp_vbat_lpwr_process(); #endif #if FOT_EN bsp_fot_process(); #endif } void evt_message(size_msg_t msg) { switch (msg) { default: break; } } //func common message process void func_message(size_msg_t msg) { switch (msg) { case EVT_READY_EXCHANGE_MTU: ble_exchange_mtu_request(); break; #if SOFT_POWER_ON_OFF case KLH_BACK: case KLH_LEFT: case KLH_RIGHT: func_cb.sta = FUNC_PWROFF; break; #endif case KU_MODE: func_cb.sta = FUNC_NULL; break; case MSG_SYS_500MS: break; case MSG_SYS_1S: break; default: evt_message(msg); break; } // //调节音量,3秒后写入flash // if ((sys_cb.cm_vol_change) && (sys_cb.cm_times >= 6)) { // sys_cb.cm_vol_change = 0; // cm_sync(); // } } ///进入一个功能的总入口 AT(.text.func) void func_enter(void) { //检查Func Heap u32 heap_size = func_heap_get_free_size(); if (heap_size != HEAP_FUNC_SIZE) { TRACE("Func heap leak (%d -> %d): %d\n", func_cb.last, func_cb.sta, heap_size); // halt(HALT_FUNC_HEAP); } // param_sync(); reset_sleep_delay_all(); reset_pwroff_delay(); func_cb.mp3_res_play = NULL; func_cb.set_vol_callback = NULL; AMPLIFIER_SEL_D(); } AT(.text.func) void func_exit(void) { //释放FUNC控制结构体 if (func_cb.f_cb != NULL) { func_free(func_cb.f_cb); } func_cb.f_cb = NULL; } AT(.text.func) void func_run(void) { printf("%s\n", __func__); memset(func_cb.tbl_sort, 0, sizeof(func_cb.tbl_sort)); func_cb.tbl_sort[0] = FUNC_CLOCK; func_cb.tbl_sort[1] = FUNC_HEARTRATE; func_cb.tbl_sort[2] = FUNC_BT; func_cb.sort_cnt = 3; func_cb.sta = FUNC_BT; for (;;) { func_enter(); switch (func_cb.sta) { #if FUNC_BT_EN case FUNC_BT: func_bt(); break; #endif #if FUNC_BT_DUT_EN case FUNC_BT_DUT: func_bt_dut(); break; #endif #if FUNC_IDLE_EN case FUNC_IDLE: func_idle(); break; #endif // FUNC_IDLE_EN // case FUNC_PWROFF: // func_pwroff(1); // break; default: break; } func_exit(); } }