1、开机按满 5s 绿灯先切配对快闪提示,松手才清绑定并进配网,继续按到 12s 仍可改道 OTA
2、app_led_init 提前到按键判定前,3s 常亮 / 5s 快闪 / 拒绝开机低电闪统一走灯效事件表,去掉开机阶段手搓 GPIO 闪烁
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
* @file usr_jb_main.c
|
||||
* @brief CBC2 业务组合根:只做“先后调用谁、谁通知谁”,不含具体业务算法
|
||||
* @author cyWu <1917507415@qq.com>
|
||||
* @date 2026.08.25
|
||||
* @version V2.1.0
|
||||
* @date 2026.08.27
|
||||
* @version V2.2.0
|
||||
* @history
|
||||
* - V1.0.0, 2026.08.21, cyWu, 首次发布
|
||||
* - V1.1.0, 2026.08.24, cyWu, 收口未接线模块;DP2 仅第 1 字节点动 1s
|
||||
@@ -18,6 +18,9 @@
|
||||
* 换向死区判定改用阈值检查而非精确计时,
|
||||
* 取消专门的 1ms 高频档,全系统统一 20ms 节拍,
|
||||
* 只保留"能不能休眠"这一个维度
|
||||
* - V2.2.0, 2026.08.27, cyWu, app_led_init() 提前到 app_boot_wait_key() 之前,
|
||||
* 开机 3s/5s/拒绝开机低电闪直接用灯效事件表,
|
||||
* 不用再各自摸裸 GPIO 手搓一份闪烁定时
|
||||
*
|
||||
* @note 协议生成文件 jb_product.c 不要填业务。APP 下行写 gDevData。
|
||||
* usr_timer_loop 由 BLE 回调,勿再注册第二份。
|
||||
@@ -256,9 +259,12 @@ static void usr_log_boot_version(void)
|
||||
/**
|
||||
* @brief 业务初始化(在 BLE 栈起来之前由 app_main 调用)
|
||||
* @note 内部会等按键 3s/5s;不足 3s 直接深睡,不会启动业务定时器。
|
||||
* 按键判定只摸 bsp_hw 的裸 GPIO,不经过协议栈/灯效表/电机状态机,
|
||||
* 所以只有 bsp_hw_init() 需要排在它前面——一旦判定要睡回去,
|
||||
* boot_sleep() 原地喂狗不再返回,后面这些初始化不会被浪费。
|
||||
* 按键判定只摸 bsp_hw 的裸 GPIO 和 led_manager 的事件表(3s 常亮 /
|
||||
* 5s 配对快闪 / 拒绝开机低电闪都要用灯),不经过协议栈/电机状态机,
|
||||
* 所以 app_led_init() 要排在它前面(跟 bsp_hw_init() 一样)——一旦
|
||||
* 判定要睡回去,boot_sleep() 原地喂狗不再返回,后面这些初始化不会
|
||||
* 被浪费。app_led_init() 内部有已初始化判断,这里提前调不会导致
|
||||
* 后面重复初始化出问题。
|
||||
* @return 无
|
||||
*/
|
||||
void usr_jb_init(void)
|
||||
@@ -266,14 +272,14 @@ void usr_jb_init(void)
|
||||
usr_log_boot_version(); /* UART 已在 app_main 起来,按键判定前就能看到版本 */
|
||||
|
||||
bsp_hw_init();
|
||||
app_led_init(); /* 提前到按键判定之前:3s/5s/拒绝开机低电闪都要直接用灯效事件表 */
|
||||
|
||||
app_boot_wait_key(); /* 深睡分支不会返回;返回即代表确定要开机 */
|
||||
|
||||
jbInit();
|
||||
userInit();
|
||||
app_led_init();
|
||||
if (usr_var.usr_goto_updata) {
|
||||
/* 开机 12s 已进 OTA:灯表刚起来,立刻挂红绿交替 */
|
||||
/* 开机 12s 已进 OTA:立刻挂红绿交替 */
|
||||
app_led_request_ota();
|
||||
}
|
||||
app_mode_init();
|
||||
|
||||
Reference in New Issue
Block a user