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