陀螺仪和视觉扫地机

更新时间:2024-06-19 07:58:47下载pdf

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

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

查询最新一次清扫记录

接口说明

查询最新一次的扫地机清扫记录。

//流服务 1.0
void queryLatestCleanRecord(String devId, String start, int size, IThingResultCallback<RecordDetaiBean> callback);
//流服务 2.0
void queryLatestCleanRecordV2(String devId, String start, int size, IThingResultCallback<RecordDetaiBean> callback);

参数说明

参数 说明
devId 设备 ID
start 起始行,第一次传空串,后续查询下一页时需要填上一页返回值里的 startRow
size 请求大小,最大值 500

RecordDetaiBean 的主要属性定义如下:

字段 类型 描述
devId Sting 设备 ID
startRow String 起始行
dataList List<String> 地图数据
subRecordId int 清扫记录 ID
hasNext boolean 是否有下一页
startTime long 开始时间
endTime long 结束时间

示例代码

//流服务 1.0
ThingOptimusSdk.getManager(IThingSweeperKitSdk.class).getGyroscopeAndVisualSweeperKit().queryLatestCleanRecord(devId, "", 500, new IThingResultCallback<RecordDetaiBean>() {
                    @Override
                    public void onSuccess(RecordDetaiBean result) {

                    }

                    @Override
                    public void onError(String errorCode, String errorMessage) {

                    }
                });
//流服务 2.0
ThingOptimusSdk.getManager(IThingSweeperKitSdk.class).getGyroscopeAndVisualSweeperKit().queryLatestCleanRecordV2(devId, "", 500, new IThingResultCallback<RecordDetaiBean>() {
                    @Override
                    public void onSuccess(RecordDetaiBean result) {

                    }

                    @Override
                    public void onError(String errorCode, String errorMessage) {

                    }
                });

查询历史清扫记录列表

接口说明

查询历史的清扫记录列表。

void getHistoryCleanRecordList(String devId, int offset, int limit, long startTime, long endTime, IThingResultCallback<HistoryResultBean> callback);

参数说明

字段 类型 描述
devId String 设备 ID
offset int 偏移值
limit int 分页数量
startTime long 开始时间
endTime long 结束时间

HistoryResultBean 的主要属性定义如下:

字段 类型 描述
datas List<RecordListBean> 历史数据列表
totalCount int 总数

RecordListBean 的主要属性定义如下:

字段 类型 描述
recordId String 地图的唯一 ID
gid long 家庭组 ID
dpId int 扫地机产品在 涂鸦开发者平台 配置的清扫记录的 DP ID
gmtCreate long 创建时间
value String 地图信息,用来解析 subRecordId
uuid String 设备唯一 ID

示例代码

ThingOptimusSdk.getManager(IThingSweeperKitSdk.class).getGyroscopeAndVisualSweeperKit().getHistoryCleanRecordList(devId, 0, 10, 0, 0, new IThingResultCallback<HistoryResultBean>() {
                    @Override
                    public void onSuccess(HistoryResultBean result) {
                    
                    }

                    @Override
                    public void onError(String errorCode, String errorMessage) {
                       
                    }
                });

查询历史记录详情

接口说明

获取历史记录列表中的详细信息。

//流服务 1.0
 void getCleanRecordDetail(String devId, int subRecordId, String start, int size, IThingResultCallback<RecordDetaiBean> callback);
//流服务 2.0
void getCleanRecordDetailV2(String devId, int subRecordId, String start, int size, int mapId, int datatype, IThingResultCallback<RecordDetaiBean> callback);

参数说明

参数 说明
devId 设备 ID
subRecordId 清扫记录 ID,通过解析历史记录列表的 value 数据,根据数据长度使用不同的解析规则,规则见下表
start 起始行,第一次传空串,后面取下一页时填上一页返回值里的 startRow
size 请求数据大小,最大值 500
mapId 子地图 ID(流服务 2.0 专用)
datatype 地图类型(流服务 2.0 专用)

value 解析协议

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

示例代码

//流服务 1.0
ThingOptimusSdk.getManager(IThingSweeperKitSdk.class).getGyroscopeAndVisualSweeperKit().getCleanRecordDetail(devId, subRecordId, "", 2, new IThingResultCallback<RecordDetaiBean>() {
                    @Override
                    public void onSuccess(RecordDetaiBean result) {
                       
                    }

                    @Override
                    public void onError(String errorCode, String errorMessage) {
                      
                    }
                });
//流服务 2.0
ThingOptimusSdk.getManager(IThingSweeperKitSdk.class).getGyroscopeAndVisualSweeperKit().getCleanRecordDetailV2(devId, subRecordId, "", 2, 0, 0, new IThingResultCallback<RecordDetaiBean>() {
                    @Override
                    public void onSuccess(RecordDetaiBean result) {
                       
                    }

                    @Override
                    public void onError(String errorCode, String errorMessage) {
                      
                    }
                });

获取清扫记录 ID

接口说明

对数值类型字符串(value)解析协议的简单封装方法,可以自行按照上述规则解析也可以使用此方法。仅支持数值类型字符串。

 int getSubRecordId(String value);

示例代码

int subId = ThingOptimusSdk.getManager(IThingSweeperKitSdk.class).getGyroscopeAndVisualSweeperKit().getSubRecordId("20200319202500300200123");

删除一条或多条历史记录

接口说明

最多可以删除 100 条记录。

void deleteHistoryCleanRecord(String devId, List<String> recordIds, IResultCallback callback);

参数说明

参数 说明
devId 设备 ID
recordIds 清扫记录标识,从历史记录列表接口中获取

示例代码

ThingOptimusSdk.getManager(IThingSweeperKitSdk.class).getGyroscopeAndVisualSweeperKit().deleteHistoryCleanRecord(devId, recodIds, new IResultCallback() {
                    @Override
                    public void onError(String code, String error) {

                    }

                    @Override
                    public void onSuccess() {

                    }
                });

实时数据通道

注册实时数据通道监听设备数据流上报,返回数据是数组形式,根据机器协议解析成可用数据,如 x 坐标、y 坐标、颜色值等。

API 入口ThingHomeSdk.getTransferInstance();

通道流程

陀螺仪和视觉扫地机

订阅地图流数据

接口说明

void registerTransferDataListener(IThingDataCallback<TransferDataBean> callback);

代码示例

ThingHomeSdk.getTransferInstance().registerTransferDataListener(new IThingDataCallback<TransferDataBean>() {
	@Override
	public void onSuccess(TransferDataBean result) {

	}

	@Override
	public void onError(String errorCode, String errorMessage) {

	}
});

TransferDataBean

字段 类型 描述
data byte[]
  • 0~3 位数据为地图的 subRecordId
  • 4~12 位数据非业务数据,不参与解析
注意,从 13 位数据开始为地图实际数据,每 3 位数据为一个地图点,分别为地图的 x 坐标、y 坐标和地图点的点类型。
devId String 设备 ID

取消订阅地图流数据

接口说明

void unRegisterTransferDataListener(IThingDataCallback<TransferDataBean> callback);

代码示例

ThingHomeSdk.getTransferInstance().unRegisterTransferDataListener(this);