Commit Graph

24 Commits

Author SHA1 Message Date
dcef9664ae fix(spotlight): 优化PWM调光算法解决低亮度抖动
1. 修改PWM频率为4000Hz,与80MHz基准时钟形成整数倍关系(20000 ticks),消除计算取整导致的物理层抖动。
2. 实现基于时间轴的渐变算法替代原有的步进累加逻辑,消除累积误差,确保渐变时长精确且不受系统负载影响。
3. 调整渐变刷新间隔为8ms,提升视觉平滑度。
2025-11-22 13:43:45 +08:00
46cdd963a9 重构渐变控制(第一阶段):引入配网互斥与开关/属性抢占策略
- 增加 is_in_breath_mode() 工具,明确配网(BREATHING)期间禁止普通渐变的取消与启动,避免干扰配网呼吸。
- set_light:
  * 未指定字段保持不变的策略保留。
  * 在关灯渐变期间,属性/模式变更不取消渐变,仅更新目标。
  * 开灯(非配网)打断关灯渐变时,从当前即时亮度起步反向渐变,避免黑场;真正关→开或上电仍从0渐变。
  * 配网期的开/关/改模式/改属性:仅更新目标与上报,不启动普通渐变。
- cancel_current_light_fade:补充清理 is_fading/is_closing_fade/fade_completed,杜绝过期回调收尾副作用。
- fade_task:关灯渐变完成时,如已被开灯抢占且非配网,跳过 PWM 关断收尾,避免‘先黑一下’。

覆盖场景:开关灯、场景模式、颜色模式、单独色温/亮度变更、各类中途打断;同时不影响配网呼吸。
2025-11-17 08:04:38 +08:00
7013b0949a 回滚:撤销‘优化开关与渐变的无缝衔接’修改
原因:该修改导致配网场景下的灯效渐变异常(持续闪烁)。
范围:还原 application/ws63/user_main/spotlight/spotlight_main.c 的相关改动;同时移除本次提交新增的 docs/ 与 logs/ 资源文件。
说明:仍保留上一笔‘修复灯光渐变与状态保持逻辑’提交,不影响‘未指定字段保持不变’与‘关灯态只更新目标不推进渐变’的修复。
2025-11-17 07:39:45 +08:00
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
cb1ef39108 修复灯光渐变与状态保持逻辑
主要变更:
- 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 顺序与次数合理。
2025-11-16 21:55:18 +08:00
8270708ef2 1. 解决本地注册设备的流程无法正常控制设备的问题
2. 修改之前的 版本固件命名不对的问题
3. 增加debug kit,但是默认不开启(还在调试中)
2025-11-04 21:27:55 +08:00
21c6d05bad 1. 解决PWM 更新导致周期混乱继而亮度抖动的问题
2. 增加无论何种状态都能强制复位的机制
3. 添加设备注册检查机制,如果设备已经处于配网但是还是注册的状态,强制进行一次复位
4. 添加串口控制协议
2025-10-26 17:49:12 +08:00
b6567e34a9 修复亮度不能到最大的问题,解决app删除不能配网的问题 2025-08-11 13:14:37 +08:00
3165aafe83 去除提前开机的亮灯的策略,确保开机渐变。 2025-08-08 07:58:54 +08:00
51c4af5a86 新增强制复位功能 2025-08-07 09:02:36 +08:00
adaa09caf0 新增关灯渐变功能 2025-08-07 09:01:58 +08:00
745e6399ae 解决低亮度闪烁的问题 2025-08-05 08:12:39 +08:00
4ae4967cef 更新SDK到 SR_Light_Hilink_14.2.1.312_20250704 2025-07-11 07:50:14 +08:00
3dc430b62b 1. 解决ble 冷启动不能局域网控制的问题
之前的版本只能应对中途断网的情况。现在的应该可以应对无网启动的情况
2025-07-09 21:49:09 +08:00
a3bedc1ab2 解决开灯可能存在的单双色温状态异常的问题,主动上报一次 2025-07-06 15:01:44 +08:00
0321d8ecbf 解决开灯状态未同步的问题 2025-07-06 10:57:32 +08:00
e600ac3f22 1. 新增单双色温的支持 =》 已测试
2. 新增离家模式的支持 => 等待测试
2025-07-03 23:37:14 +08:00
1f57b11676 1. 取消了独立升级
2. 修复了渐变时会打断会导致显示中间值的问题
2025-06-26 00:07:45 +08:00
a4b68ffadb 添加
1. 更改模式时进行渐变
2. 开灯渐变
3. 提高亮灯的速度,从flashboot中开始亮灯
4. spotlight_main 调整到app_main中来
2025-06-25 23:14:48 +08:00
c2ac3319f2 添加渐变时长为0的时候无法进行保存导致升级后灯打开的问题 2025-06-18 07:55:36 +08:00
fa4907e34e 1. 修复频繁上下线问题
2. 修复会bind会有两个设备的问题
3. 其他若干体验问题
4. 增加产测功能
2025-06-10 08:58:50 +08:00
5ec8b9380c 1. 解决频繁频繁掉线的问题:原因是因为ble
sdk需要一开始就初始化,配网的时候只是去控制其广播是否开启。不然会导致一直掉线
2025-06-02 21:31:39 +08:00
f915eb634a 基本完成功能,去除了独立升级功能的支持 2025-05-24 15:32:33 +08:00
e4c030b0c0 初始提交 2025-05-13 22:00:58 +08:00