更新时间:2023-05-22 06:38:30下载pdf
扫地机 P2P(Peer-to-Peer)能力提供 P2P 下载通道来获取扫地机上的地图和清扫路线数据。由于数据直接来源于设备点对点的直传,所以无需将实时地图与数据上传至云存储服务器再下载,从而达到数据传输速度更快,更节省云存储成本的目的。
示例代码
Objc:
TuyaSmartSweeperDevice *sweeper = [[TuyaSmartSweeperDevice alloc] initWithDeviceId:@"devId"]
Swift:
sweeper = TuyaSmartSweeperDevice.init(deviceId: "devId")
- (void)connectDeviceByP2P:(void (^)(void))success
failure:(void (^)(NSError * _Nullable error))failure;
参数说明
参数 | 说明 |
---|---|
success | 建立 P2P 连接成功回调 |
failure | 建立 P2P 连接失败回调 |
示例代码
Objc:
[self.sweeper connectDeviceByP2P:^{
} failure:^(NSError * _Nullable error) {
}];
Swift:
sweeper?.connect(byP2P: {
}, failure: { error in
})
保证在connectDeviceByP2P
回调成功后,开启文件传输。传输过程中发生通道异常断开时会有 failure
的错误回调,回调错误码可参考末尾错误码。发生错误回调后说明设备可能出现网络异常,可重新调用 connectDeviceByP2P
接口尝试重连设备。
- (void)startObserverSweeperDataByP2P:(TuyaSmartSweeperP2PDownloadType)downloadType
receiveP2PData:(void (^)(NSDictionary *data))receiveP2PData
failure:(void (^)(NSError * _Nullable error))failure;
参数说明
参数 | 说明 |
---|---|
downloadType | P2P 数据交换方式
|
receiveP2PData | P2P 数据下载回调,返回 16 进制数据 |
failure | P2P 数据下载失败回调 |
回调说明
参数 | 说明 |
---|---|
type | 数据类型。取值:
|
data | P2P 数据 |
示例代码
Objc:
[self.sweeper startObserverSweeperDataByP2P:downloadType receiveP2PData:^(NSDictionary * _Nonnull data) {
if (data) {
NSLog(@"%@",data);
}
} failure:^(NSError * _Nullable error) {
}];
Swift:
sweeper?.startObserverSweeperData(byP2P: TuyaSmartSweeperP2PDownloadType.still, receiveP2PData: { data in
}, failure: { error in
})
检查 P2P 通道的连接状态。返回成功,则表示当前连接正常。返回失败,则表示设备异常断开,可尝试调用 connectDeviceByP2P
重连。
- (BOOL)P2PActiveCheck;
暂停 P2P 数据传输,不断开 P2P 通道,可重新使用 startObserverSweeperDataByP2P
接口继续下载。
- (void)stopObserverSweeperDataByP2P:(void (^)(void))success
failure:(void (^)(NSError * _Nullable error))failure;
参数说明
参数 | 说明 |
---|---|
success | 关闭 P2P 数据下载成功回调 |
failure | 关闭 P2P 数据下载失败回调 |
示例代码
Objc:
[self.sweeper stopObserverSweeperDataByP2P:^{
} failure:^(NSError * _Nullable error) {
}];
Swift:
sweeper?.stopObserverSweeperData(byP2P: {
}, failure: { error in
})
停止下载,并销毁通道,释放占用的内存资源和线程资源。
示例代码
Objc:
[self.sweeper onDestroyP2P];
Swift:
sweeper?.onDestroyP2P()
错误码 | 说明 |
---|---|
-9000 | 设备信息异常 |
-9001 | SDK 依赖未引入 |
-9002 | P2P 正在连接 |
-9003 | 设备离线 |
-9004 | 超时 |
-9005 | 无地图文件 |
更多错误码见垂直品类 IPC SDK 错误码。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈