更新时间:2025-11-07 09:48:00下载pdf
用于替换故障的子设备。
业务包版本要在 v6.11.0 以上。
source 'https://github.com/tuya/tuya-pod-specs.git'
platform :ios, '11.0'
target 'Your_Project_Name' do
pod "ThingSmartBusinessExtensionKit"
end
子设备替换管理类
open class ThingSubDeviceReplaceManager : NSObject {
....
}
子设备替换的角色
public enum ThingSubDeviceReplaceRole : UInt, @unchecked Sendable {
case replacer = 0 // 作为替换者进行工作,则通常意味着这是一个无故障的设备
case replacee = 1 // 作为被替换者进行工作,则通常意味着这是一个故障的设备
}
子设备替换结果
public enum ThingSubDeviceReplaceStatus : Int, @unchecked Sendable {
case replaceFailure = -1
case replacing = 0
case replaceSuccess = 1
}
open class ThingSubDeviceReplaceResult : NSObject {
open var status: ThingSubDeviceReplaceStatus
open var failReason: String
}
子设备替换回调事件
public protocol ThingSubDeviceReplaceManagerListener : NSObjectProtocol {
func manager(_ manager: ThingSubDeviceReplaceManager, replaceDidCompleteWithResult success: Bool, error: (any Error)?)
}
初始化子设备替换管理类
public init(deviceId: String, role: ThingSubDeviceReplaceRole)
role 通常根据入口设备是否有故障而决定。如果入口设备没有故障,则其通常用来替换其他设备,role 通常为 replacer;相反,如果入口设备有故障设备,则其通常被别的设备替换,role 通常为 replacee。
| 入参 | 类型 | 说明 |
|---|---|---|
| deviceId | String | 入口设备 ID |
| role | ThingSubDeviceReplaceRole | 设备角色 |
判断设备是否支持子设备替换
open func supportReplace(success: @escaping (Bool) -> Void, failure: @escaping (any Error) -> Void)
| 入参 | 类型 | 说明 |
|---|---|---|
| success | Bool | 成功回调。true 表示支持,false 表示不支持 |
| failure | error | 错误信息 |
获取兼容的子设备列表
open func getCompatibleSubDevices(success: @escaping ([String]) -> Void, failure: @escaping (any Error) -> Void)
| 入参 | 类型 | 说明 |
|---|---|---|
| success | [String] | 成功回调,子设备 ID 列表 |
| failure | error | 错误信息 |
进行子设备替换
open func replace(withOtherDevice deviceId: String, timeout: Int, success: @escaping (String) -> Void, failure: @escaping (any Error) -> Void)
如果 role 是 replacer,则此设备将会被入口设备替换。相反,如果 role 是 replacee,则此设备将会替换入口设备。
| 入参 | 类型 | 说明 |
|---|---|---|
| deviceId | String | 用来替换的子设备 ID |
| timeout | Int | 超时时间,单位。最少 30 秒,如果小于 30 秒则默认 30 秒 |
| success | string | 替换 ID |
| failure | error | 错误信息 |
获取替换结果
open func replaceResult(withReplaceId replaceId: String, success: @escaping (ThingSubDeviceReplaceResult) -> Void, failure: @escaping (any Error) -> Void)
通常不会用到此方法,通过 addListener 即可监听到结果事件。当网络异常导致 mq 消息丢失、listener 不回调时,可以通过此方法进行获取。
| 入参 | 类型 | 说明 |
|---|---|---|
| replaceId | String | 替换 ID |
| success | ThingSubDeviceReplaceResult | 替换结果 |
| failure | error | 错误信息 |
添加替换结果监听
open func add(_ listener: any ThingSubDeviceReplaceManagerListener)
| 入参 | 类型 | 说明 |
|---|---|---|
| listener | ThingSubDeviceReplaceManagerListener | 监听器 |
移除替换结果监听
open func remove(_ listener: any ThingSubDeviceReplaceManagerListener)
| 入参 | 类型 | 说明 |
|---|---|---|
| listener | ThingSubDeviceReplaceManagerListener | 监听器 |
更多信息,请参考 Demo。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈