feat(sdk): 帧间隔 frameIntervalMs 配置化(默认 35ms,[0,500] clamp)
DuooomiBleConfig 新增 frameIntervalMs,BleProtocolService 构造期注入。 顺手清死代码 FrameConstants.frameIntervalNanos、修 sendFrames 0.035 字面量 (统一走 config)。demo 加可调输入框 + UserDefaults 持久化。 越界 warn 不抛错,使用点 min/max 兜底。 设计稿:docs/superpowers/specs/2026-05-20-frame-interval-config-design.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,9 @@ public struct DuooomiBleConfig {
|
||||
public let aniFps: String
|
||||
/// 扫描时按设备蓝牙广播名前缀过滤(大小写不敏感)。**必填**,由集成方约定固件广播名前缀。
|
||||
public let scanNamePrefix: String
|
||||
/// 协议帧之间的发送间隔(毫秒)。合法区间 `[0, 500]`,越界仅 warn,使用点会 clamp。
|
||||
/// 集成方一般无需调整;调高用于排查接收端丢帧/拥塞。默认 35。
|
||||
public let frameIntervalMs: Int
|
||||
|
||||
public init(
|
||||
apiHost: URL = URL(string: "https://api.duooomi.com")!,
|
||||
@@ -27,7 +30,8 @@ public struct DuooomiBleConfig {
|
||||
aniWidth: Int = 360,
|
||||
aniHeight: Int = 360,
|
||||
aniFps: String = "24",
|
||||
scanNamePrefix: String
|
||||
scanNamePrefix: String,
|
||||
frameIntervalMs: Int = 35
|
||||
) {
|
||||
self.apiHost = apiHost
|
||||
self.apiKey = apiKey
|
||||
@@ -37,5 +41,9 @@ public struct DuooomiBleConfig {
|
||||
self.aniHeight = aniHeight
|
||||
self.aniFps = aniFps
|
||||
self.scanNamePrefix = scanNamePrefix
|
||||
if frameIntervalMs < 0 || frameIntervalMs > 500 {
|
||||
BleLog.w("frameIntervalMs=\(frameIntervalMs) out of [0,500], will clamp at use site", "Config")
|
||||
}
|
||||
self.frameIntervalMs = frameIntervalMs
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user