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

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;
}