更新时间:2023-06-05 02:49:26下载pdf
激光型扫地机借助 MQTT 和云存储传输数据。扫地机将地图或清扫路径以文件的形式保存在云端,其中涉及到获取云存储配置信息、接收文件上传完成的实时消息、文件下载功能。
推荐您优先使用 扫地机 P2P 获取接收文件上传完成的实时消息。
扫地机设备所有功能对应 ThingSmartSweeperDevice
类,需要使用设备 ID 进行初始化。错误的设备 ID 会导致初始化失败,返回 nil。
类名 | 说明 |
---|---|
ThingSmartSweeperDevice | 扫地机设备相关的类 |
从云端获取云存储配置信息。
- (void)initCloudConfigWithSuccess:(void (^)(NSString *bucket))success
failure:(void (^)(NSError * _Nullable error))failure;
参数说明
类名 | 说明 |
---|---|
success | 成功回调,返回 bucket 文件存储空间信息 |
failure | 失败回调 |
示例代码
Objective-C:
[self.sweeperDevice initCloudConfigWithSuccess:^(NSString * _Nonnull bucket) {
} failure:^(NSError * _Nullable error) {
}];
Swift:
sweeperDevice?.initCloudConfig(success: { (bucket) in
}, failure: { (error) in
})
由于获取到的文件地址有时效性,当文件地址失效时,需要调用接口更新云存储配置。
- (void)updateCloudConfigWithSuccess:(void (^)(NSString *bucket))success
failure:(void (^)(NSError * _Nullable error))failure;
参数说明
类名 | 说明 |
---|---|
success | 成功回调,返回 bucket 文件存储空间信息 |
failure | 失败回调 |
示例代码
Objective-C:
[self.sweeperDevice updateCloudConfigWithSuccess:^(NSString * _Nonnull bucket) {
} failure:^(NSError * _Nullable error) {
}];
Swift:
sweeperDevice?.updateCloudConfig(success: { (bucket) in
}, failure: { (error) in
})
获取地图文件在存储服务器上完整的路径,您可以自行下载解析。
接口说明
- (nullable NSString *)getCloudFileDownloadURLWithBucket:(NSString *)bucket path:(NSString *)path;
参数说明
参数 | 说明 |
---|---|
bucket | 文件存储空间 |
path | 地图、清扫路径等文件的存储相对路径 |
示例代码
Objective-C:
NSString *url = [self.sweeperDevice getCloudFileDownloadURLWithBucket:<#bucket#> path:<#path#>];
Swift:
let url = sweeperDevice?.getCloudFileDownloadURL(withBucket: "", path: "")
根据地图、清扫路径等文件在云端存储的相对路径,下载文件数据。
接口说明
- (void)getSweeperDataWithBucket:(NSString *)bucket
path:(NSString *)path
success:(void (^)(NSData *data))success
failure:(void (^)(NSError * _Nullable error))failure;
参数说明
参数 | 说明 |
---|---|
bucket | 文件存储空间 |
path | 地图、清扫路径等文件等的存储相对路径 |
success | 成功回调,返回文件具体内容的 data |
failure | 失败回调 |
示例代码
Objective-C:
[self.sweeperDevice getSweeperDataWithBucket:<#bucket#> path:<#path#> success:^(NSData * _Nonnull data) {
} failure:^(NSError * _Nullable error) {
}];
Swift:
sweeperDevice?.getSweeperData(withBucket: "", path: "", success: { (data) in
}, failure: { (error) in
})
获取当前清扫中的文件(地图、清扫路径)在云端存储的相对路径。
- (void)getSweeperCurrentPathWithSuccess:(void (^)(NSString *bucket, NSDictionary<ThingSmartSweeperCurrentPathKey, NSString *> *paths))success
failure:(void (^)(NSError * _Nullable error))failure;
参数说明
ThingSmartSweeperCurrentPathKey | 说明 |
---|---|
ThingSmartSweepCurrentMapPathKey | 当前地图的相对路径对应的 key |
ThingSmartSweepCurrentRoutePathKey | 当前清扫路径的相对路径对应的 key |
参数 | 说明 |
---|---|
success | 成功回调
|
failure | 失败回调 |
示例代码
Objective-C:
[self.sweeperDevice getSweeperCurrentPathWithSuccess:^(NSString * _Nonnull bucket, NSDictionary<ThingSmartSweeperCurrentPathKey,NSString *> * _Nonnull paths) {
NSString *mapPath = paths[ThingSmartSweepCurrentMapPathKey];
NSString *routePath = paths[ThingSmartSweepCurrentRoutePathKey];
} failure:^(NSError * _Nullable error) {
}];
Swift:
sweeperDevice?.getSweeperCurrentPath(success: { (bucket, paths) in
let mapPath = paths[ThingSmartSweepCurrentMapPathKey]
let routePath = paths[ThingSmartSweepCurrentRoutePathKey]
}, failure: { (error) in
})
从云端获取激光型扫地机的历史清扫记录。
接口说明
- (void)getSweeperHistoryDataWithLimit:(NSUInteger)limit
offset:(NSUInteger)offset
startTime:(long)startTime
endTime:(long)endTime
success:(void (^)(NSArray<ThingSmartSweeperHistoryModel *> *datas, NSUInteger totalCount))success
failure:(void (^)(NSError * _Nullable error))failure;
参数说明
类名 | 说明 |
---|---|
ThingSmartSweeperHistoryModel | 历史清扫记录 |
属性 | 类型 | 说明 |
---|---|---|
fileId | NSString | 清扫记录文件 ID |
time | long | 清扫记录文件时间戳 |
extend | NSString | 清扫记录拆分读取规则 |
bucket | NSString | 清扫记录文件的存储空间 |
file | NSString | 清扫记录文件存储的相对路径 |
参数 | 说明 |
---|---|
limit | 一次获取数据的数量,建议最大不要超过 100 |
offset | 获取数据的偏移量,用于分页 |
startTime | 起始时间戳,默认不传 |
endTime | 结束时间戳,默认不传 |
success | 成功回调,返回清扫记录数组的 datas 和历史清扫记录总数 totalCount |
failure | 失败回调 |
示例代码
Objective-C:
[self.sweeperDevice getSweeperHistoryDataWithLimit:50 offset:0 startTime:-1 endTime:-1 success:^(NSArray<ThingSmartSweeperHistoryModel *> * _Nonnull datas, NSUInteger totalCount) {
} failure:^(NSError * _Nullable error) {
}];
Swift:
sweeperDevice?.getSweeperHistoryData(withLimit: 50, offset: 0, success: { (datas, count) in
}, failure: { (error) in
})
删除当前激光型扫地机设备指定的历史清扫记录。最多可以删除 100 条记录。
接口说明
- (void)removeSweeperHistoryDataWithFileIds:(NSArray<NSString *> *)fileIds
success:(void (^)(void))success
failure:(void (^)(NSError * _Nullable error))failure;
参数说明
参数 | 说明 |
---|---|
fileIds | 清扫记录文件 ID 的字符串数组 |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.sweeperDevice removeSweeperHistoryDataWithFileIds:<#fileIds#> success:^{
} failure:^(NSError * _Nullable error) {
}];
Swift:
sweeperDevice?.removeSweeperHistoryData(withFileIds: [""], success: {
}, failure: { (error) in
})
针对激光型扫地机一次清扫记录有多个地图的情况,提供从云端获取多地图的历史清扫记录。
接口说明
- (void)getSweeperMultiHistoryDataWithLimit:(NSUInteger)limit
offset:(NSUInteger)offset
startTime:(long)startTime
endTime:(long)endTime
success:(void(^)(NSArray<ThingSmartSweeperHistoryModel *> *datas, NSUInteger totalCount))success
failure:(void(^)(NSError * _Nullable error))failure;
参数说明
参数 | 说明 |
---|---|
limit | 一次获取数据的数量,建议最大不要超过 100 |
offset | 获取数据的偏移量,用于分页 |
startTime | 起始时间戳,默认不传 |
endTime | 结束时间戳,默认不传 |
success | 成功回调,返回清扫记录数组的 datas 和历史清扫记录总数 totalCount |
failure | 失败回调 |
示例代码
Objective-C:
[self.sweeperDevice getSweeperMultiHistoryDataWithLimit:50 offset:0 startTime:-1 endTime:-1 success:^(NSArray<ThingSmartSweeperHistoryModel *> * _Nonnull datas, NSUInteger totalCount) {
} failure:^(NSError * _Nullable error) {
}];
Swift:
sweeperDevice?.getSweeperMultiHistoryData(withLimit: 50, offset: 0, success: { (datas, count) in
}, failure: { (error) in
})
针对激光型扫地机一次清扫记录有多个地图的情况,可以使用多楼层地图命名的接口。
接口说明
- (void)sweeperFileNameUpdateWithFileId:(NSNumber *)fileId
fileName:(NSString *)fileName
success:(void (^)(id result))success
failure:(void (^)(NSError * _Nullable error))failure;
参数说明
参数 | 说明 |
---|---|
fileId | 地图 ID |
fileName | 地图名称 |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.sweeperDevice sweeperFileNameUpdateWithFileId:@1 fileName:@"" success:^(id _Nonnull result) {
} failure:^(NSError * _Nullable error) {
}];
Swift:
sweeperDevice?.sweeperFileNameUpdate(withFileId: 1, fileName: "", success: { (success) in
}, failure: { (error) in
})
2.2.1 及以后版本的扫地机 SDK 下架了此功能,如有需要,请使用 P2P 通道获取实时数据。
激光型扫地机在工作中,实时地图或清扫路径数据上传到云端完成的消息回调。通过设置 ThingSmartSweeperDeviceDelegate
代理协议,监听实时消息回调。
MQTT 通知消息数据模型
类名 | 说明 |
---|---|
ThingSmartSweeperMQTTMessage | 设备上传完文件发送的 MQTT 通知消息 |
属性 | 类型 | 说明 |
---|---|---|
mapId | NSString | 地图、清扫路径的文件 ID |
mapType | ThingSmartSweeperMQTTMessageType | 文件类型
|
mapPath | NSString | 地图、清扫路径文件存储的相对路径 |
文件上传的消息回调
- (void)sweeperDevice:(ThingSmartSweeperDevice *)sweeperDevice didReceiveMessage:(ThingSmartSweeperMQTTMessage *)message;
参数说明
参数 | 说明 |
---|---|
sweeperDevice | 扫地机设备实例 |
message | 设备上传完成后,推送的 MQTT 消息 |
示例代码
Objective-C:
self.sweeperDevice = [ThingSmartSweeperDevice deviceWithDeviceId:<#devId#>];
self.sweeperDevice.delegate = self;
// 实现代理方法
- (void)sweeperDevice:(ThingSmartSweeperDevice *)sweeperDevice didReceiveMessage:(ThingSmartSweeperMQTTMessage *)message {
}
Swift:
sweeperDevice = ThingSmartSweeperDevice.init(deviceId: "your_devId")
sweeperDevice?.delegate = self
func sweeperDevice(_ sweeperDevice: ThingSmartSweeperDevice, didReceive message: ThingSmartSweeperMQTTMessage) {
}
2.2.1 及以后版本的扫地机 SDK 下架了此功能,请使用 P2P 获取实时数据。
设备上传完文件之后的消息回调,设置 shouldAutoDownloadData
为 YES
后,触发该回调下载文件内容。
- (void)sweeperDevice:(ThingSmartSweeperDevice *)sweeperDevice didReceiveMessage:(ThingSmartSweeperMQTTMessage *)message downloadData:(nullable NSData *)data downloadError:(nullable NSError *)error;
参数说明
参数 | 说明 |
---|---|
sweeperDevice | 扫地机设备实例 |
message | 设备上传完成后,推送的 MQTT 消息 |
data | 文件下载后 NSData 类型的具体内容 |
error | 文件下载出错的错误信息 |
示例代码
Objective-C:
self.sweeperDevice = [ThingSmartSweeperDevice deviceWithDeviceId:<#devId#>];
self.sweeperDevice.delegate = self;
// 实现代理方法
- (void)sweeperDevice:(ThingSmartSweeperDevice *)sweeperDevice didReceiveMessage:(ThingSmartSweeperMQTTMessage *)message downloadData:(nullable NSData *)data downloadError:(nullable NSError *)error {
}
Swift:
sweeperDevice = ThingSmartSweeperDevice.init(deviceId: "your_devId")
sweeperDevice?.delegate = self
func sweeperDevice(_ sweeperDevice: ThingSmartSweeperDevice, didReceive message: ThingSmartSweeperMQTTMessage, downloadData data: Data?, downloadError error: Error?) {
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈