修复灯光渐变与状态保持逻辑
主要变更: - set_light 默认目标值改为取设备当前状态(未指定字段保持不变),避免关灯后切换模式把亮度误写为0。 - 仅对明确修改的字段回写设备状态,防止无意覆盖。 - 关灯状态下的模式/属性变更:只更新目标,不推进渐变;开灯(关→开)从0平滑渐变到目标。 - 关灯渐变进行中不再取消渐变(不被属性/模式变更打断),避免停留在低亮不灭的情况。 - 增加若干调试日志(keep brightness/cct、开灯渐变设置、off-state 变更提示)。 影响范围:application/ws63/user_main/spotlight/spotlight_main.c 的 set_light 与渐变控制流程。 回归清单(详细): 1) 基础渐变与开关 - ON→OFF:观察3s(NORMAL_FADE_TIME)内亮度平滑降为0,最终PWM关断;日志含“start close light fade/Close light fade completed”。 - OFF→ON:从0平滑拉升至目标亮度(保持当前色温),日志含“开灯渐变设置: brightness=0->X”。 - 单色/双色两种 colourMode 下分别验证上述两条。 2) 关灯状态下属性/模式变更(不推进渐变) - OFF 且非渐变中:修改亮度/色温/模式,仅更新目标,不改变当前亮度(保持0);再次开灯从0平滑到目标。 - OFF 且正在“关灯渐变”中: a. 切换 单色→双色、双色→单色; b. 修改色温(2700/中间值/最大6000); c. 修改亮度(1%、10%、80%、100%); 期望:关灯渐变不中断直至0;日志出现“off-state mode/attr change … keep/preserve …”,无新的 cancel/stop;开灯后从0渐变到变更后的目标。 3) 渐变过程中的变更 - 开灯渐变过程中修改亮度/色温/场景:应重新计算步长并继续渐变到新目标,无闪断;日志有“start fade”“fade brightness:A->B”。 - 关灯渐变过程中(is_closing_fade=true)修改模式/属性:不取消当前渐变,继续降至0(本修复重点)。 4) 场景模式 - 亮灯状态切换各场景(自定义/休闲/观影/用餐/回家/冬天/夏天):亮度、色温按预设渐变到位。 - 离家模式:切到离家立即触发关灯渐变;开灯时恢复基础模式并从0渐变到目标。 - 关灯状态切换场景:仅更新目标,不推进渐变;开灯后生效。 5) 单色↔双色互转 - 亮灯:单色→双色、双色→单色均应平滑到新目标。 - 关灯:单色→双色、双色→单色只更新目标,关灯渐变不中断;开灯后从0渐变到新目标(复现用例修复验证)。 6) 持久化与上电 - 设定亮度/色温/模式后断电重启:读取到的持久化状态与上电行为正确(若on=true,上电从0渐变到目标;若on=false,保持熄灭)。 7) 上报一致性 - 每次变更后,APP数值与进度条一致,且与设备上报一致;避免出现“进度条位置旧、数值为0”的分离。 8) 边界值与映射 - 亮度:1%/10%/11%/100% 验证 BRIGHTNESS_REMOTE2LOCAL/LOCAL2REMOTE 映射正确,无跳变。 - 色温:2700/中间值/6000,双色下比例分配正确;单色下固定 SINGLE_COLOUR_CCT。 9) 竞态与稳定性 - 快速连点:关/开/改模式/改色温混合快速操作,确保无死锁、无抖动、无残留亮度;fade 定时器单实例运行(无重复自重启)。 10) 日志关键点(用于对齐期望) - “[set_light] keep brightness/cct …”、“[set_light] 开灯渐变设置 …”、“off-state mode/attr change …”。 - “start close light fade / Fade completed”、“fade brightness: x->y … time:3s”。 - 上报触发:REPORT_SWITCH/BRIGHTNESS/CCT/LIGHT_MODE/COLOUR_MODE 顺序与次数合理。
This commit is contained in:
BIN
output/SR_light-LPT262_hilink-20251116-1.0.6.fwpkg
Normal file
BIN
output/SR_light-LPT262_hilink-20251116-1.0.6.fwpkg
Normal file
Binary file not shown.
Reference in New Issue
Block a user