Files
duooomi-ios-sdk/Sources/DuooomiBleSDK/DuooomiBleConfig.swift
km2023 09088121b5 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>
2026-05-20 14:02:04 +08:00

50 lines
1.8 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import Foundation
/// SDK
public struct DuooomiBleConfig {
/// API
public let apiHost: URL
/// API keyLoomart x-api-key
public let apiKey: String
/// RPC `x-owner` header
public let brand: String
/// CDN `/`
public let cdnHost: String
/// ANI
public let aniWidth: Int
/// ANI
public let aniHeight: Int
/// ANI
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")!,
apiKey: String,
brand: String,
cdnHost: String = "https://cdn.bowong.cc/",
aniWidth: Int = 360,
aniHeight: Int = 360,
aniFps: String = "24",
scanNamePrefix: String,
frameIntervalMs: Int = 35
) {
self.apiHost = apiHost
self.apiKey = apiKey
self.brand = brand
self.cdnHost = cdnHost.hasSuffix("/") ? cdnHost : cdnHost + "/"
self.aniWidth = aniWidth
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
}
}