修复了配网时进入休眠导致配网时间变成的问题,同时增加配网时间到了之后停止广播
This commit is contained in:
+18
-3
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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__
|
||||
|
||||
Reference in New Issue
Block a user