1、喷淋器 P1/P2功能实现

2、红灯按连接态慢闪
This commit is contained in:
2026-09-09 19:57:00 +08:00
parent 074960eb02
commit 0dd65e1552
31 changed files with 2805 additions and 258 deletions
+12 -6
View File
@@ -1,10 +1,11 @@
/******************************************************************************
* @file app_led.c
* @brief 灯效:绿=作业态、红=配对态;OTA / 配对失败临时占双灯(规格书 6 章)
* @brief 灯效:绿=作业态、红=连接/配网态;OTA / 配对失败临时占双灯(规格书 6 章)
* @author cyWu <1917507415@qq.com>
* @date 2026.09.09
* @version V1.0.0
* @version V1.1.0
* @history
* - V1.1.0, 2026.09.09, cyWu, 已连接常亮 / 已配对未连接慢闪,避免上电误判已联网
* - V1.0.0, 2026.09.09, cyWu, P0 独立通道版(不同于加热垫互斥灯)
*
* @note 红绿独立:喷淋/空闲只改绿灯,不要去关红灯;配网闪红灯时不要关绿灯。
@@ -84,7 +85,8 @@ void app_led_hint_pair(void)
return;
}
s_led.pair_hint = 1;
LED_EventDelete(LED_EVENT_RED_PAIRED); /* 快闪盖过"已配对常亮"(同槽换事件) */
LED_EventDelete(LED_EVENT_RED_PAIRED);
LED_EventDelete(LED_EVENT_RED_RECONN);
LED_EventAdd(LED_EVENT_RED_PAIRING);
}
@@ -150,11 +152,12 @@ void app_led_run(uint16_t dt)
s_led.pair_hint = 0;
LED_EventDelete(LED_EVENT_RED_PAIRING);
LED_EventDelete(LED_EVENT_PAIR_FAIL);
log_info("led pair ok -> red solid\n");
log_info("led pair ok\n");
} else if (pair_evt == APP_PAIR_EVT_FAIL) {
s_led.pair_hint = 0;
LED_EventDelete(LED_EVENT_RED_PAIRED);
LED_EventDelete(LED_EVENT_RED_PAIRING);
LED_EventDelete(LED_EVENT_RED_RECONN);
led_restart(LED_EVENT_PAIR_FAIL); /* 交替 3s,播完自删回常态 */
log_info("led pair fail 3s\n");
}
@@ -164,14 +167,17 @@ void app_led_run(uint16_t dt)
/* 常态双通道(高事件占双灯期间不 add,播完自删后下拍自动恢复) */
if (!high_event) {
/* 红灯通道:快闪(提示/配对中) > 常亮(已配对) > 灭(未配对) */
/* 红灯:配网快闪 > 已连接常亮 > 已配对未连接慢闪 > 未配对 */
if (s_led.pair_hint || app_pair_is_active()) {
LED_EventAdd(LED_EVENT_RED_PAIRING);
} else if (usr_get_pair_flag()) {
} else if (usr_ble_is_connected()) {
LED_EventAdd(LED_EVENT_RED_PAIRED);
} else if (usr_get_pair_flag()) {
LED_EventAdd(LED_EVENT_RED_RECONN);
} else {
LED_EventDelete(LED_EVENT_RED_PAIRED);
LED_EventDelete(LED_EVENT_RED_PAIRING);
LED_EventDelete(LED_EVENT_RED_RECONN);
}
/* 绿灯通道:作业态(含间隔)闪,否则常亮 */
if (app_spray_is_running()) {