扫地机 P2P

更新时间: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")

连接扫地机 P2P 服务

- (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

})

开启扫地机 P2P 数据下载

保证在connectDeviceByP2P回调成功后,开启文件传输。传输过程中发生通道异常断开时会有 failure 的错误回调,回调错误码可参考末尾错误码。发生错误回调后说明设备可能出现网络异常,可重新调用 connectDeviceByP2P 接口尝试重连设备。

- (void)startObserverSweeperDataByP2P:(TuyaSmartSweeperP2PDownloadType)downloadType
                       receiveP2PData:(void (^)(NSDictionary *data))receiveP2PData
                              failure:(void (^)(NSError * _Nullable error))failure;

参数说明

参数 说明
downloadType P2P 数据交换方式
  • TuyaSmartSweeperP2PDownloadTypeOnce 表示下载完当前设备的数据就会停止后续产生数据的下载
  • TuyaSmartSweeperP2PDownloadTypeStill 表示持续下载设备产生的数据,直到设备自动停止发送数据
receiveP2PData P2P 数据下载回调,返回 16 进制数据
failure P2P 数据下载失败回调

回调说明

参数 说明
type 数据类型。取值:
  • 0:地图数据
  • 1:清扫路径数据
  • 3:导航路径数据
  • -1:错误数据
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 通道状态

检查 P2P 通道的连接状态。返回成功,则表示当前连接正常。返回失败,则表示设备异常断开,可尝试调用 connectDeviceByP2P 重连。

- (BOOL)P2PActiveCheck;

关闭扫地机 P2P 数据下载

暂停 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

})

关闭扫地机 P2P 服务

停止下载,并销毁通道,释放占用的内存资源和线程资源。

示例代码

Objc:

[self.sweeper onDestroyP2P];

Swift:

sweeper?.onDestroyP2P()

错误码

错误码 说明
-9000 设备信息异常
-9001 SDK 依赖未引入
-9002 P2P 正在连接
-9003 设备离线
-9004 超时
-9005 无地图文件

更多错误码见垂直品类 IPC SDK 错误码