Files
LPT26x-HSF-4MB-Hilink_14.2.…/logs/device_after3.png
ekko.bao 53ba39e35d 优化开关与渐变的无缝衔接,消除‘先黑一下再变亮’突变
问题:关灯渐变进行中途点击开灯,会出现先熄灭再从0渐变的突变。

方案(A+B+C):
A. ‘开灯’打断‘关灯渐变’时,沿用当前渐变中的即时亮度作为起点,反向渐变到目标(不再强制从0起步)。
B. 渐变任务收尾保护:关灯渐变完成前若已被开灯抢占,跳过PWM关断收尾,避免黑场。
C. 取消逻辑加固:取消当前渐变时清除 is_fading/is_closing_fade/fade_completed,避免旧渐变回调误关灯。

实现点:
- set_light:记录 was_closing_fade 与当前即时亮度;开灯时根据 was_closing_fade 决定起点(即时亮度或0)。
- fade_task:在关灯完成分支检查 g_device_control.on,已被开灯抢占则不关断,交由开灯渐变接管。
- cancel_current_light_fade:补充状态清理,防止回调残留。

验证:亮→关(渐变中)→开、末尾抢占、快速连点关/开、单色↔双色切换夹杂开关,均无‘黑一下’突变。
2025-11-17 07:27:44 +08:00

1.3 MiB
1240x2772px