feat(sdk): upgradeFirmware 下发前校验电量 ≥40%,不足抛 .batteryTooLow
OTA 烧录前主动拉新鲜 getDeviceInfo 取实时电量,<40% 直接以 .batteryTooLow(current:required:) 失败、不发任何字节,防烧录中途断电变砖。 新增常量 minBatteryForUpgrade=40;烧录体抽出私有 performFirmwareTransfer。 README 补可用方法/属性汇总表。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -39,6 +39,7 @@ public enum DuooomiBleError: LocalizedError {
|
||||
case permissionDenied
|
||||
case unsupportedFormat(String)
|
||||
case firmwareUpgradeUnavailable(String)
|
||||
case batteryTooLow(current: Int, required: Int)
|
||||
case brandMismatch(expected: String, actual: String)
|
||||
|
||||
public var errorDescription: String? {
|
||||
@@ -77,6 +78,8 @@ public enum DuooomiBleError: LocalizedError {
|
||||
return "Unsupported file format: \(ext). Supported: jpeg, png, gif, mp4, webm, webp"
|
||||
case .firmwareUpgradeUnavailable(let reason):
|
||||
return "Firmware upgrade unavailable: \(reason)"
|
||||
case .batteryTooLow(let current, let required):
|
||||
return "设备电量不足,无法升级 (当前 \(current)%,需 ≥ \(required)%)"
|
||||
case .brandMismatch(let expected, let actual):
|
||||
return "不支持该品牌设备 (expected=\(expected), actual=\(actual))"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user