A iOS SDK form Telink BLE Mesh devices.
需求:
- 修复设备时 Device Scanning 展示设备信号强度
- 开始修复时,传入当前所有的节点,以便修复更彻底
更新:
- 在
MeshNode
中增加:
public enum RssiLevel {
case excellent
case good
case fair
case poor
case none
}
- 在
MeshManager
中增加:
public protocol MeshManagerNodeRssiDelegate: NSObjectProtocol {
func meshManager(_ manager: MeshManager, didDiscoverNode node: MeshNode, rssiLevel: RssiLevel)
}
public class MeshManager: NSObject {
/// If you want to monitor RSSI levels of the node you need to set this delegate.
public weak var nodeRssiDelegate: MeshManagerNodeRssiDelegate?
...
- 实际使用
当前配置为每 2 秒更新 RSSI,超过 5 秒没有再次查找到设备,则信号认定为 none。
// 设置代理
MeshManager.shared.nodeRssiDelegate = self
// 不要再监听这个方法
// func meshManager(_ manager: MeshManager, didDiscoverNode node: MeshNode) { ...
// 监听新的方法以获取实时 RssiLevel
func meshManager(_ manager: MeshManager, didDiscoverNode node: MeshNode, rssiLevel: RssiLevel) { ...