优化开关与渐变的无缝衔接,消除‘先黑一下再变亮’突变
问题:关灯渐变进行中途点击开灯,会出现先熄灭再从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:补充状态清理,防止回调残留。 验证:亮→关(渐变中)→开、末尾抢占、快速连点关/开、单色↔双色切换夹杂开关,均无‘黑一下’突变。
This commit is contained in:
BIN
logs/tap3.png
Normal file
BIN
logs/tap3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 65 KiB |
Reference in New Issue
Block a user