修复了配网时进入休眠导致配网时间变成的问题,同时增加配网时间到了之后停止广播

This commit is contained in:
2026-09-10 12:14:29 +08:00
parent 5875d2a339
commit c141c7e0aa
6 changed files with 73 additions and 27 deletions
+18 -3
View File
@@ -2,10 +2,11 @@
* @file app_pair.c
* @brief 配对会话计时实现
* @author cyWu <1917507415@qq.com>
* @date 2026.08.25
* @version V1.0.0
* @date 2026.09.10
* @version V1.1.0
* @history
* - V1.0.0, 2026.08.25, cyWu, 首次发布,实现配对会话计时与成功/超时判定
* - V1.1.0, 2026.09.10, cyWu, 窗口超时停止绑定广播
******************************************************************************/
#include "app_pair.h"
@@ -26,6 +27,19 @@ typedef struct {
static AppPairCtx_t s_pair;
/**
* @brief 配对超时回调:从任务上下文停绑定广播
* @note app_pair_tick 跑在 usr_timer 硬件时基里,不断开/不停广播,
* 把 BLE 动作丢到 sys_timeout,避免占中断时间。
* @param priv 未使用
* @return 无
*/
static void pair_timeout_stop_adv(void *priv)
{
(void)priv;
usr_stop_bind_adv();
}
/**
* @brief 开始一次配对会话(计时清零)
* @return 无
@@ -59,7 +73,8 @@ AppPairEvt_t app_pair_tick_1ms(uint16_t dt)
if (s_pair.elapsed_ms >= BOARD_PAIR_TIMEOUT_MS) {
s_pair.active = 0;
s_pair.elapsed_ms = 0;
log_info("pair timeout 120s, stay on\n");
log_info("pair timeout 120s, stop bind adv\n");
sys_timeout_add(NULL, pair_timeout_stop_adv, 10);
return APP_PAIR_EVT_FAIL;
}
+6 -5
View File
@@ -1,14 +1,15 @@
/******************************************************************************
* @file app_pair.h
* @brief 配对会话计时:开机配对窗口是否成功/超时,与 BLE 配对本身解耦
* @brief 配对会话计时:开机配对窗口是否成功/超时
* @author cyWu <1917507415@qq.com>
* @date 2026.08.25
* @version V1.0.0
* @date 2026.09.10
* @version V1.1.0
* @history
* - V1.0.0, 2026.08.25, cyWu, 首次发布,实现配对会话计时与成功/超时判定
* - V1.1.0, 2026.09.10, cyWu, 窗口超时停止绑定广播
*
* @note 真正的 BLE 广播/绑定逻辑在 usr_le_code;本模块负责进入配对后
* 60s 内 usr_get_pair_flag() 是否变 1”这件事,纯状态,不碰灯/按键
* @note 真正的 BLE 广播/绑定逻辑在 usr_le_code;本模块负责进入配对后
* 120s 内 usr_get_pair_flag() 是否变 1,超时则停绑定广播
******************************************************************************/
#ifndef __APP_PAIR_H__