1、运行中空电关机改看显示百分比,到 5% 立刻停电机、关绿灯,红灯闪 5 下后再深睡,避免电压先掉、APP 还没到 5% 就关机
2、充电/放电电量缓冲加快,放电突变拦截先关掉,电量曲线满电点收到 4.12V 3、上电串口打印软硬件版本和编译时间
This commit is contained in:
@@ -94,6 +94,7 @@ static UsrSchedulerCtx_t s_sched;
|
||||
|
||||
static void usr_timer_tick(void *priv);
|
||||
static void usr_timer_rearm(UsrTickMode_t mode);
|
||||
static void usr_log_boot_version(void);
|
||||
|
||||
/**
|
||||
* @brief USB 插拔的联动:插入即停电机,拔出即软关并刷新系统电源图标
|
||||
@@ -116,13 +117,18 @@ static void usr_on_power_evt(AppPowerEvt_t evt)
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 深睡请求钩子:立即停电机、灯全灭(真正掉电在 50ms 后)
|
||||
* @brief 深睡请求钩子:立刻停电机;空电路径挂红闪,按键关机则灯全灭
|
||||
* @return 无
|
||||
*/
|
||||
static void usr_poweroff_request_hook(void)
|
||||
{
|
||||
app_function_stop_all();
|
||||
app_led_clear();
|
||||
if (app_power_empty_off_pending()) {
|
||||
/* 电量到 5%:关绿灯,红灯闪 5 下,真正掉电等闪完 */
|
||||
app_led_request_empty_off();
|
||||
} else {
|
||||
app_led_clear();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -220,8 +226,8 @@ static void usr_timer_tick(void *priv)
|
||||
|
||||
/* 重新查询而非复用上面的判断:user_key_handle() 可能在本拍内刚请求关机,
|
||||
* 要用最新状态决定这一拍还要不要播灯效,否则会多播一帧才熄灭。
|
||||
* OTA 期间灯效优先:关机钩子也不要把红绿交替清掉。 */
|
||||
if (app_led_is_ota()) {
|
||||
* OTA / 空电红闪期间灯效优先:关机钩子不要把提示灯清掉。 */
|
||||
if (app_led_is_ota() || app_led_is_empty_off()) {
|
||||
app_led_run(dt, app_function_is_power_on());
|
||||
} else if (app_power_poweroff_pending()) {
|
||||
app_led_clear();
|
||||
@@ -235,6 +241,18 @@ static void usr_timer_tick(void *priv)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 上电打印固件版本与编译时间,方便串口对应当前是哪一包
|
||||
* @return 无
|
||||
*/
|
||||
static void usr_log_boot_version(void)
|
||||
{
|
||||
log_info("sw V%d.%d.%d hw V%d.%d.%d build %s %s\n",
|
||||
JB_MCU_SW_VERSION_MAJOR, JB_MCU_SW_VERSION_MINOR, JB_MCU_SW_VERSION_PATCH,
|
||||
JB_MCU_HW_VERSION_MAJOR, JB_MCU_HW_VERSION_MINOR, JB_MCU_HW_VERSION_PATCH,
|
||||
__DATE__, __TIME__);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 业务初始化(在 BLE 栈起来之前由 app_main 调用)
|
||||
* @note 内部会等按键 3s/5s;不足 3s 直接深睡,不会启动业务定时器。
|
||||
@@ -245,6 +263,8 @@ static void usr_timer_tick(void *priv)
|
||||
*/
|
||||
void usr_jb_init(void)
|
||||
{
|
||||
usr_log_boot_version(); /* UART 已在 app_main 起来,按键判定前就能看到版本 */
|
||||
|
||||
bsp_hw_init();
|
||||
|
||||
app_boot_wait_key(); /* 深睡分支不会返回;返回即代表确定要开机 */
|
||||
|
||||
Reference in New Issue
Block a user