- 所有公开 API 改为 completion handler (Result<T, Error>) - 状态通知改为 DuooomiBleSDKDelegate 协议 - 移除 Sendable、@MainActor、AsyncStream、CheckedContinuation - 网络请求改为 URLSession.dataTask 回调 - BLE 通信改为 delegate + 闭包模式 - deployment target 降至 iOS 12.2 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
42 lines
1.3 KiB
Swift
42 lines
1.3 KiB
Swift
import Foundation
|
||
|
||
/// SDK 全局配置,在初始化时一次性传入。
|
||
public struct DuooomiBleConfig {
|
||
/// API 服务地址
|
||
public let apiHost: URL
|
||
/// API 鉴权 key
|
||
public let apiKey: String
|
||
/// CDN 资源地址(末尾带 `/`)
|
||
public let cdnHost: String
|
||
/// 固件查询标识,如 "duomi"
|
||
public let firmwareIdentifier: String
|
||
/// 固件查询状态,如 "DRAFT" / "PUBLISHED"
|
||
public let firmwareStatus: String
|
||
/// ANI 转换宽度(像素)
|
||
public let aniWidth: Int
|
||
/// ANI 转换高度(像素)
|
||
public let aniHeight: Int
|
||
/// ANI 转换帧率
|
||
public let aniFps: String
|
||
|
||
public init(
|
||
apiHost: URL = URL(string: "https://api.duooomi.com")!,
|
||
apiKey: String,
|
||
cdnHost: String = "https://cdn.bowong.cc/",
|
||
firmwareIdentifier: String = "duomi",
|
||
firmwareStatus: String = "DRAFT",
|
||
aniWidth: Int = 360,
|
||
aniHeight: Int = 360,
|
||
aniFps: String = "24"
|
||
) {
|
||
self.apiHost = apiHost
|
||
self.apiKey = apiKey
|
||
self.cdnHost = cdnHost.hasSuffix("/") ? cdnHost : cdnHost + "/"
|
||
self.firmwareIdentifier = firmwareIdentifier
|
||
self.firmwareStatus = firmwareStatus
|
||
self.aniWidth = aniWidth
|
||
self.aniHeight = aniHeight
|
||
self.aniFps = aniFps
|
||
}
|
||
}
|