P1和P2已开发完成并验证了大部分功能都没问题
This commit is contained in:
@@ -67,6 +67,9 @@ void usr_ble_adv_updata(void);
|
||||
|
||||
static int le_timer_handle = 0;
|
||||
|
||||
/* 广播门控:扫描分时期间暂停广播发送(见 app_th_scan),仅门控不断连 */
|
||||
static u8 s_adv_paused = 0;
|
||||
|
||||
/**
|
||||
* @brief BLE 是否已连接
|
||||
* @return 1=已连接,0=未连接
|
||||
@@ -216,6 +219,36 @@ u8 usr_get_pair_flag(void)
|
||||
return usr_auth_data.paired_flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 暂停/恢复广播发送(扫描分时射频仲裁,见 app_th_scan)
|
||||
* @note adv data 仍注册在协议栈,恢复时续发无需重新编码;仅门控发送,不断连接。
|
||||
* 只动广播(bt_ble_adv_enable 内部有 con_handle 保护),不动模块使能位,
|
||||
* 因此已连接时误调不会断开已有链路。
|
||||
* @param pause 1=暂停(扫描期让出射频),0=恢复
|
||||
*/
|
||||
void usr_le_set_adv_pause(u8 pause)
|
||||
{
|
||||
extern void bt_ble_adv_enable(u8 enable);
|
||||
|
||||
if (pause == s_adv_paused) {
|
||||
return;
|
||||
}
|
||||
if (pause && usr_ble_is_connected()) {
|
||||
return; /* 扫描只允许断连态;已连接保持广播 */
|
||||
}
|
||||
s_adv_paused = pause;
|
||||
bt_ble_adv_enable(pause ? 0 : 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 查询广播是否处于暂停态
|
||||
* @return 1=暂停中(扫描期),0=正常广播
|
||||
*/
|
||||
u8 usr_le_adv_is_paused(void)
|
||||
{
|
||||
return s_adv_paused;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 周期处理广播刷新(由 500ms 定时器调用)
|
||||
* @note 仅当 usr_adv_flag==1 时:停广播 → 写入 muti_adv_data → 再开广播
|
||||
@@ -224,6 +257,12 @@ void usr_ble_adv_updata(void)
|
||||
{
|
||||
static u16 usr_goto_slow_adv = 0;
|
||||
|
||||
if (usr_le_adv_is_paused()) {
|
||||
/* 扫描期(app_th_scan 分时):不刷广播、不切快慢,只跑协议周期 */
|
||||
usr_timer_loop();
|
||||
return;
|
||||
}
|
||||
|
||||
if (usr_var.usr_adv_flag)
|
||||
{
|
||||
ble_trans_module_enable(0);
|
||||
|
||||
@@ -43,12 +43,31 @@ void usr_clear_pair_info(void);
|
||||
*/
|
||||
uint8_t usr_get_pair_flag(void);
|
||||
|
||||
/**
|
||||
* @brief 查询 BLE 是否已连接
|
||||
* @return 1=已连接,0=未连接
|
||||
*/
|
||||
uint8_t usr_ble_is_connected(void);
|
||||
|
||||
/**
|
||||
* @brief 启动应用侧 OTA 流程
|
||||
* @note 置位 usr_goto_updata,并创建 1s 周期定时器驱动断连与 OTA 广播切换
|
||||
*/
|
||||
void usr_app_ota_init(void);
|
||||
|
||||
/**
|
||||
* @brief 暂停/恢复广播发送(扫描分时射频仲裁,见 app_th_scan)
|
||||
* @note 仅门控发送,不断开连接;恢复后按注册数据续发,无需重新编码
|
||||
* @param pause 1=暂停(扫描期让出射频),0=恢复
|
||||
*/
|
||||
void usr_le_set_adv_pause(uint8_t pause);
|
||||
|
||||
/**
|
||||
* @brief 查询广播是否处于暂停态
|
||||
* @return 1=暂停中(扫描期),0=正常广播
|
||||
*/
|
||||
uint8_t usr_le_adv_is_paused(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user