陀螺仪和视觉扫地机

更新时间:2023-05-25 06:23:51

扫地机 SDK 提供接口请求和实时通道两种数据查询方式。

  • 查询、删除历史记录等数据需要请求通用接口。
  • 扫地机清扫中传递的数据可以通过注册实时通道监听查询。

通用接口

类名 说明
ThingSmartSweeperDevice 涂鸦扫地机设备相关的类

查询最新一次清扫记录

接口说明

- (void)queryLatestCleanRecord:(NSString *)devId start:(NSString *)start size:(NSInteger)size complete:(void(^)(ThingSmartSweeperRecordDetail *model, NSError *error))complete;

入参说明

字段名 类型 描述
devId String 设备 ID。
start String 开始位置。第一次传空,之后取下一页时填上一页返回值里的 startRow 值。
size Integer 查询数据的大小,最大为 500

响应参数:ThingSmartSweeperRecordDetail

字段名 类型 描述
devId String 设备 ID
startRow String 分页查询索引
dataList Array 流数据
subRecordId String 清扫记录 ID
hasNext BOOL 是否有下一页数据
startTime long 开始时间
endTime long 结束时间

响应示例

{
	"devId":"6ccdd506b7186ee85avntm",
	"startRow":"mtnva58ee6817b605ddcc6_35_1535629239586",
	"dataList":[
		"373702373700",
		"383702383802373901383901383800",
		"373802373901373800",
		"373802363901363801373800",
		"373702373602373600",
		"373502373500",
		"373502373402373301363301373400",
		"363502363500",
		"363502363500"
	],
	"subRecordId":35,
	"hasNext":true,
	"startTime":1535629049,
	"endTime":1535629244,
	"status":2
}

历史清扫记录列表

接口说明

- (void)getHistoryCleanRecordList:(NSString *)devId offset:(NSInteger )offset limit:(NSInteger)limit startTime:(long long)startTime endTime:(long long)endTime complete:(void(^)(NSArray <ThingSmartSweeperRecordList *> *list, NSError *error))complete;

入参说明

字段名 类型 描述
devId String 设备 ID
offset Integer 分页偏移量
limit Integer 分页大小
startTime Long 开始时间
endTime Long 结束时间

响应参数:NSArray <ThingSmartSweeperRecordList *> *list 数组,其中 ThingSmartSweeperRecordList 字段如下

字段名 类型 描述
recordId String 地图 ID
gid int 家庭组 ID
dpId int 涂鸦 IoT 平台 配置的清扫记录的 DP ID
gmtCreate long 创建时间
value String 地图信息,解析 subRecordId
uuid String 设备 ID

响应示例

{
	"recordId":"162992AAXKaZCdL2tDvVcWYecT9AA9630150",
	"gid":38498424,
	"dpId":15,
	"gmtCreate":1629929630203,
	"value":"20210826052504804100145",
	"uuid":"ecc8c633ef1d9ede"
}

清扫记录详情

接口说明

- (void)getCleanRecordDetail:(NSString *)devId subRecordId:(NSInteger)subRecordId start:(NSString *)start size:(NSInteger)size complete:(void(^)(ThingSmartSweeperRecordDetail *model, NSError *error))complete;

入参说明

字段名 类型 描述
devId String 设备 ID。
subRecordId Integer 清扫记录 ID,通过解析历史记录列表的 value 数据,根据数据长度使用不同的解析规则,规则见下表。
start String 开始位置。第一次传空,之后取下一页时填上一页返回值里的 startRow 值。
size Integer 查询数据的大小,最大为 500

value 解析协议

记录时间
长度 12 位
清扫时间
长度 3 位
清扫面积
长度 3 位
subRecordId
长度 5 位
举例 说明
20200319202500300200123
  • 取 MCU 上报的时间在面板中显示
  • 点击对应记录可以显示地图
没有 00300200123
  • 取 DP 上报的云端时间戳时间在面板中显示
  • 点击对应记录可以显示地图
没有 202003192025003002
  • 取 MCU 上报的时间在面板中显示
  • 点击对应记录不可以显示地图
没有 没有 003002
  • 取 DP 上报的云端时间戳时间在面板中显示
  • 点击对应记录不可以显示地图

提供一种解析方法,参考 ThingSmartSweeperRecordList 类:

+ (NSString *)subRecordIdObtainFromValue:(NSString *)value;

您也可以按照 value 解析协议自行转换。

响应参数:ThingSmartSweeperRecordDetail

字段名 类型 描述
devId String 设备 ID
startRow String 分页查询索引
dataList Array 流数据
subRecordId String 清扫记录 ID
hasNext BOOL 是否有下一页数据
startTime long 开始时间
endTime long 结束时间

响应示例

{
	"devId":"6ccdd506b7186ee85avntm",
	"startRow":"mtnva58ee6817b605ddcc6_31_1535622776561",
	"dataList":[
		"3e3f02403e013e3f00",
		"3f3f024040013f3f00",
		"3f3f02403f014040013f3f00",
		"3f40024140014040013f3f024041013f41013f3f00",
		"3f3f024040014041013f41013f3f00"
	],
	"subRecordId":31,
	"hasNext":true,
	"startTime":1535621566,
	"endTime":1535623017,
	"status":2
}

删除历史清扫记录

接口说明

- (void)deleteHistoryCleanRecord:(NSString *)devId recordId:(NSString *)recordId complete:(void(^)(BOOL success, NSError *error))complete;

入参说明

字段名 类型 描述
devId String 设备 ID
recordId String 清扫记录 ID(清扫记录标识,从历史记录列表接口中获取)

响应示例

{
	"result":true,
	"success":true,
	"status":"ok",
	"t":1557740732829
}

实时通道

数据流程

陀螺仪和视觉扫地机

功能简介

涂鸦陀螺仪型或视觉型的扫地机是使用流通道来传输地图数据,实现 ThingSmartSweeperDeviceDelegate 代理协议接收用来接收地图流数据回调。

类名 说明
ThingSmartSweeperDevice 涂鸦扫地机设备相关的类

订阅地图流数据

接口说明

订阅设备的地图流数据。

- (void)subscribeDeviceDataTransfer;

示例代码

Objc:

- (void)subscribeDevice {

	[self.sweeperDevice subscribeDeviceDataTransfer];
}

Swift:

func subscribeDevice() {
	sweeperDevice?.subscribeDeviceDataTransfer()
}

取消订阅地图流数据

接口说明

取消订阅设备的地图流数据。

- (void)unsubscribeDeviceDataTransfer;

示例代码

Objc:

- (void)unsubscribeDevice {

	[self.sweeperDevice unsubscribeDeviceDataTransfer];
}

Swift:

func unsubscribeDevice() {
	sweeperDevice?.unsubscribeDeviceDataTransfer()
}

流数据回调

接口说明

设备上报的流数据实时回调。

- (void)sweeperDevice:(ThingSmartSweeperDevice *)sweeperDevice didReceiveStreamData:(NSData *)data;

参数说明

参数 说明
sweeperDevice ThingSmartSweeperDevice 实例对象。
data 流数据(NSData 类型)。0~3 位数据为地图的 subRecordId,4~12 位数据非业务数据,不参与解析。
注意,从 13 位数据开始为地图实际数据,每 3 位数据为一个地图点,分别为地图的 x 坐标、y 坐标和地图点的点类型。

示例代码

Objc:

self.sweeperDevice = [ThingSmartSweeperDevice deviceWithDeviceId:<#devId#>];
self.sweeperDevice.delegate = self;

// 实现代理方法
- (void)sweeperDevice:(ThingSmartSweeperDevice *)sweeperDevice didReceiveStreamData:(NSData *)data {

}

Swift:

sweeperDevice = ThingSmartSweeperDevice.init(deviceId: "your_devId")
sweeperDevice?.delegate = self

func sweeperDevice(_ sweeperDevice: ThingSmartSweeperDevice, didReceiveStreamData data: Data) {

}