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:
km2023
2026-05-20 14:02:04 +08:00
parent b967471532
commit 09088121b5
6 changed files with 35 additions and 11 deletions

View File

@@ -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
}
}