精简 usr_app 架构:去掉关机/休眠死代码,按键复用 key.c 状态机,ISR 重活统一延后到任务上下文
Type-C 长供电、上电即工作、无软关机,删除 app_boot/app_power 及 DP0 开关相关逻辑, 去掉空占位 app_fan_run 和无效的 usr_timer_pick_mode/rearm(数码管 4ms 扫描已 priority=1, 系统本来就不会进低功耗)。按键 5s 配对 / 12s OTA 改走 key.c 长按分级,去掉自计时与 1~5s 死区。 新增 app_defer,NVM/配对/OTA 只在 ISR 置位、在 500ms 任务上下文落地,避免再在 usr_timer 里写 flash。 规格书与注释同步精简。
This commit is contained in:
+31
-6
@@ -2,10 +2,9 @@
|
||||
* @file app_led.c
|
||||
* @brief CBR3 灯效适配:单灯 PC2,OTA/配对/常亮
|
||||
* @author cyWu <1917507415@qq.com>
|
||||
* @date 2026.08.29
|
||||
* @version V1.0.0
|
||||
* @history
|
||||
* - V1.0.0, 2026.08.29, cyWu, 首次发布(移植门夹,删红绿双通道/充电/低电/空电)
|
||||
* @date 2026.08.31
|
||||
* @version V1.1.0,新增 s_pair_hint:长按满 5s 到松手提交配对这段窗口内维持
|
||||
* 配对快闪,避免被 app_led_run 叠上开机常亮
|
||||
******************************************************************************/
|
||||
|
||||
#include "app_led.h"
|
||||
@@ -15,7 +14,8 @@
|
||||
#include "app_pair.h"
|
||||
|
||||
static uint8_t s_initialized;
|
||||
static uint8_t s_ota; /* 1=OTA 灯效中,app_led_run 不再叠其它灯 */
|
||||
static uint8_t s_ota; /* 1=OTA 灯效中,app_led_run 不再叠其它灯 */
|
||||
static uint8_t s_pair_hint; /* 1=长按已满 5s 但还没松手提交配对,维持配对快闪 */
|
||||
|
||||
/**
|
||||
* @brief 重新播放一次「一次性/限时」灯效,让它从第 0 帧重新开始
|
||||
@@ -64,6 +64,30 @@ void app_led_hint_power_on(void)
|
||||
led_restart(LED_EVENT_STANDBY);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 长按满 5s:挂配对快闪,提示"松手即配网,继续按到 12s 进 OTA"
|
||||
* @return 无
|
||||
*/
|
||||
void app_led_hint_pair(void)
|
||||
{
|
||||
if (!s_initialized || s_ota) {
|
||||
return;
|
||||
}
|
||||
s_pair_hint = 1;
|
||||
LED_EventAllDelete();
|
||||
bsp_led_set(0);
|
||||
LED_EventAdd(LED_EVENT_PAIRING);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 结束"将配网"提示,交回 app_led_run 按 app_pair 状态接管
|
||||
* @return 无
|
||||
*/
|
||||
void app_led_clear_pair_hint(void)
|
||||
{
|
||||
s_pair_hint = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 进入 OTA:清掉其它灯,挂 200ms 闪一直闪
|
||||
* @return 无
|
||||
@@ -74,6 +98,7 @@ void app_led_request_ota(void)
|
||||
return;
|
||||
}
|
||||
s_ota = 1;
|
||||
s_pair_hint = 0; /* 已改判 OTA,撤销配网提示 */
|
||||
LED_EventAllDelete();
|
||||
bsp_led_set(0);
|
||||
LED_EventAdd(LED_EVENT_OTA);
|
||||
@@ -122,7 +147,7 @@ void app_led_run(uint16_t dt, uint8_t power_on)
|
||||
if (!power_on) {
|
||||
LED_EventDelete(LED_EVENT_STANDBY);
|
||||
LED_EventDelete(LED_EVENT_PAIRING);
|
||||
} else if (app_pair_is_active()) {
|
||||
} else if (s_pair_hint || app_pair_is_active()) {
|
||||
LED_EventAdd(LED_EVENT_PAIRING);
|
||||
LED_EventDelete(LED_EVENT_STANDBY);
|
||||
} else if (!LED_IsEventExist(LED_EVENT_PAIR_OK) && !LED_IsEventExist(LED_EVENT_PAIR_FAIL)) {
|
||||
|
||||
Reference in New Issue
Block a user