更新时间:2024-06-26 03:43:33下载pdf
有线设备已通过网线连接着网络,设备激活过程中,用户无需输入路由器的名称和密码。
下图以 Zigbee 有线网关为例,描述有线网关配网流程:
SDK 提供发现待配网有线设备的功能,获取设备前,手机需与设备接入同一网络。然后注册获取有线设备的通知,待 SDK 收到有线设备的广播即会通过通知转发设备信息。
转发通知
// 收到有线配网设备的广播后,会发送此通知。object 为 dictionary,@{@"productId":productId, @"gwId":gwId}
extern NSString *const ThingSmartActivatorNotificationFindGatewayDevice;
开始配网之前,SDK 需要在联网状态下从涂鸦查询配网 Token,然后才可以开始有线设备激活配网。Token 的有效期为 10 分钟,且配置成功后就会失效。再次配网时,需要重新查询 Token。
接口说明
- (void)getTokenWithHomeId:(long long)homeId
success:(ThingSuccessString)success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
homeId | 设备将要绑定的家庭的 ID |
success | 成功回调,返回配网 Token |
failure | 失败回调,返回失败原因 |
示例代码
Objective-C:
- (void)getToken {
ThingSmartActivator *wiredActivator = [[ThingSmartActivator alloc] init];
[wiredActivator getTokenWithHomeId:homeId success:^(NSString *token) {
NSLog(@"getToken success: %@", token);
// TODO: startConfigWiFi
} failure:^(NSError *error) {
NSLog(@"getToken failure: %@", error.localizedDescription);
}];
}
Swift:
func getToken() {
let wiredActivator = ThingSmartActivator()
wiredActivator.getTokenWithHomeId(homeId, success: { (token) in
print("getToken success: \(token)")
// TODO: startConfigWiFi
}, failure: { (error) in
if let e = error {
print("getToken failure: \(e)")
}
})
}
接口说明
- (void)startConfigWiFiWithToken:(NSString *)token timeout:(NSTimeInterval)timeout
参数说明
参数 | 说明 |
---|---|
token | 配网 Token |
timeout | 超时时间 |
示例代码
Objective-C:
- (void)startConfigWiFiToken:(NSString *)token {
// 设置 ThingSmartActivator 的 delegate,并实现 delegate 方法
self.wiredActivator.delegate = self;
// 开始配网
[self.wiredActivator startConfigWiFiWithToken:token timeout:100];
}
- (ThingSmartActivator *)wiredActivator {
if (!_wiredActivator) {
_wiredActivator = [[ThingSmartActivator alloc] init];
}
return _wiredActivator;
}
#pragma mark - ThingSmartActivatorDelegate
- (void)activator:(ThingSmartActivator *)activator didReceiveDevice:(ThingSmartDeviceModel *)deviceModel error:(NSError *)error {
if (!error && deviceModel) {
// 配网成功
}
if (error) {
// 配网失败
}
}
Swift:
func startConfigWifiToken(_ token: String) {
// 设置 ThingSmartActivator 的 delegate,并实现 delegate 方法
wiredActivator.delegate = self
// 开始配网
wiredActivator.startConfigWiFi(withToken: token, timeout: 100)
}
lazy var wiredActivator: ThingSmartActivator = {
let activator = ThingSmartActivator()
return activator
}()
#pragma mark - ThingSmartActivatorDelegate
func activator(_ activator: ThingSmartActivator!, didReceiveDevice deviceModel: ThingSmartDeviceModel!, error: Error!) {
if deviceModel != nil && error == nil {
//配网成功
}
if let e = error {
//配网失败
print("\(e)")
}
}
开始配网操作后,App 会持续广播配网信息,直到配网成功,或者超时。如果需要中途取消操作或配网完成,需要调用 [ThingSmartActivator stopConfigWiFi]
方法。
接口说明
- (void)stopConfigWiFi;
示例代码
Objective-C:
- (void)stopConfigWifi {
self.wiredActivator.delegate = nil;
[self.wiredActivator stopConfigWiFi];
}
Swift:
func stopConfigWifi() {
wiredActivator.delegate = nil
wiredActivator.stopConfigWiFi()
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈