Commit Graph

3 Commits

Author SHA1 Message Date
km2023
1657b925ef feat(sdk): 添加大小写不敏感的 HTTP 响应头读取方法 2026-06-04 10:51:20 +08:00
km2023
ed7de42e61 fix(sdk): transferMedia 入口立即把 transferProgress 归零
旧实现里 transferProgress 只在 transferFile() 内部才置 0,但
transferMedia 要先走 validateMediaFormat → aniConverter.convert →
getRemoteFileSize → prepareTransfer 这条数秒级异步链,期间字段还停
留在上次结束的 100。集成方 UI 一接上观察就看到旧值 100,体感像「上
次进度被带过来」。

修法:transferMedia 在 connectedDevice 守卫通过后立即 transferProgress = 0,
delegate 立即收到 didUpdateProgress(0);后续 transferFile() 内部的 = 0
因 didSet 的 oldValue 守卫被自然跳过,不会重复广播。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 16:02:41 +08:00
km2023
d5729a1a41 feat(sdk): OTA 升级流程对齐 expo + 拆 extension 文件分层 + 秘钥本地化
主要改动:
- 新增 fetchLatestFirmware/upgradeFirmware/tryReportPendingUpgrade
  三段 OTA 接口,对齐 expo bindDeviceWithOrchestration 行为
- bind 仅做硬绑+getVersion,软绑/对账上报/拉最新固件搬到
  fetchLatestFirmware 内部串;软绑失败自动硬解回滚
- UpgradeRecord 复合主键 (sn, firmwareId) 持久化 + sn 级 in-flight 互斥
- DuooomiBleSDKDelegate 新增 didUpdateUpgradeRecords,集成方
  可观察对账上报结果(reported/outcome 状态)
- DuooomiBleSDK 主类按职责拆 5 个 extension 文件,公开 API 不变
- TargetFirmware 简化为只取必要字段 + 新增 forceUpgrade
- scanNamePrefix 改为必填 String
- demo 秘钥移至本地 DemoSecrets.swift (gitignored)
- README 重写:完整 OTA 流程示例 + 上报状态判定表

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 14:46:41 +08:00