1、喷淋器 P1/P2功能实现
2、红灯按连接态慢闪
This commit is contained in:
@@ -78,6 +78,39 @@ uint8_t usr_ble_is_connected(void)
|
||||
return (usr_get_conn_service() != 0) ? 1u : 0u;
|
||||
}
|
||||
|
||||
/* 广播门控:扫描分时期间暂停广播发送(见 app_th_scan),仅门控不断连 */
|
||||
static u8 s_adv_paused = 0;
|
||||
|
||||
/**
|
||||
* @brief 暂停/恢复广播发送(扫描分时射频仲裁,见 app_th_scan)
|
||||
* @note adv data 仍注册在协议栈,恢复时续发无需重新编码;仅门控发送,
|
||||
* 不动模块使能位,因此已连接时误调不会断开已有链路。
|
||||
* @param pause 1=暂停(扫描期让出射频),0=恢复
|
||||
* @return 无
|
||||
*/
|
||||
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 从 VM 读取配对信息到 usr_auth_data
|
||||
* @note 失败则清零,并将 paired_flag 置 0 写回
|
||||
@@ -230,6 +263,12 @@ void usr_ble_adv_updata(void)
|
||||
const u16 slow_ticks = (u16)((BOARD_BLE_SLOW_ADV_SEC) * (1000u / 500u));
|
||||
#endif
|
||||
|
||||
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