激光扫地机

更新时间:2023-05-22 06:38:30

激光扫地机历史记录数据。以文件的形式存储在涂鸦 IoT 开发平台上。

  • 实时数据的地图和路径是分别存储在不同文件内的。

  • 历史数据的地图和路径是存储在同一个文件内的,根据指定规则进行拆分读取地图和路径数据。

    扫地机 SDK v3.1.0 及以后版本,不再支持对象存储 OSS 实时数据功能。请使用 P2P 获取实时数据。

  • 建议所有接口在 initCloudConfig 成功之后调用,配置信息的有效期半个小时失败后可以调用 updateCloudConfig

初始化云存储配置

获取文件存储的 bucket 信息。

/**
*
* @param devId     设备 ID
* @param callback  
*/
void initCloudConfig(String devId, ITuyaCloudConfigCallback callback);

示例代码

TuyaOptimusSdk.getManager(ITuyaSweeperKitSdk.class).getSweeperInstance().initCloudConfig("xxx", new ITuyaCloudConfigCallback() {
    @Override
    public void onConfigSuccess(String bucket) {
        
    }

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

    }
});

更新云存储配置

获取最新 bucket 信息。获取到的文件地址有时效性限制。如果文件地址失效,您可以调用以下接口更新云配置。

/**
 *
 * @param devId    设备ID
 * @param callback
 */
void updateCloudConfig(String devId, ITuyaCloudConfigCallback callback);

示例代码

TuyaOptimusSdk.getManager(ITuyaSweeperKitSdk.class).getSweeperInstance().updateCloudConfig("", new ITuyaCloudConfigCallback() {
    @Override
    public void onConfigSuccess(String bucket) {
        
    }

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

    }
});

获取完整文件地址

获取地图文件在服务器上完整的路径,可自行下载解析。

接口说明

/**
 *
 * @param bucket 文件存储的 Bucket
 * @param path   文件相对路径(startConnectSweeperDataChannel)
 */
String getCloudFileUrl(String bucket, String path);

代码示例

TuyaOptimusSdk.getManager(ITuyaSweeperKitSdk.class).getSweeperInstance().getCloudFileUrl("bucket","path");

获取数据内容

获取历史数据时,可以直接调用该接口读取云端的文件内容。

接口说明

/**
 * 获取数据内容(byte[])
 *
 * @param bucket
 * @param path
 * @param listener
 */
void getSweeperByteData(String bucket, String path, ITuyaByteDataListener listener);

代码示例

TuyaOptimusSdk.getManager(ITuyaSweeperKitSdk.class).getSweeperInstance().getSweeperByteData("bucket", "path", new ITuyaByteDataListener() {
    @Override
    public void onSweeperByteData(byte[] data) {

    }

    @Override
    public void onFailure(int code, String msg) {

    }
});

获取历史清扫记录

接口说明

/**
 *
 * @param devId    设备 ID
 * @param limit    一次获取数据的数量(建议最大不要超过 100)
 * @param offset   获取数据的偏移量(用于分页)
 * @param callback
 */
void getSweeperHistoryData(String devId, int limit, int offset,ITuyaResultCallback<SweeperHistory> callback);

/**
 *
 * @param devId     设备 ID
 * @param limit     一次获取数据的数量(建议最大不要超过 100)
 * @param offset    获取数据的偏移量(用于分页)
 * @param startTime 起始时间戳
 * @param endTime   结束时间戳
 * @param callback
 */
void getSweeperHistoryData(String devId, int limit, int offset, long startTime, long endTime,ITuyaResultCallback<SweeperHistory> callback);

回调数据 SweeperHistory

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

历史数据 SweeperHistoryBean

字段 类型 描述
id String 地图 ID
time long 文件上传时间戳
bucket String 文件存储的 Bucket
file String 文件路径
extend String 扩展字段

extend 是一个扩展字段可以和设备透传。例如 {"map_id":123, "layout_size":4589, "route_size":1024}

  • layout_size:地图文件数据大小。
  • route_size:路径文件数据大小。

读取历史数据的文件时,根据 layout_sizeroute_size 分别读取地图数据和路径数据。

代码示例

TuyaOptimusSdk.getManager(ITuyaSweeperKitSdk.class).getSweeperInstance().getSweeperHistoryData("devId", 10, 0, new ITuyaResultCallback<SweeperHistory>() {
    @Override
    public void onSuccess(SweeperHistory result) {

    }

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

    }
});

删除历史清扫记录

删除云端历史记录以及存储的数据。最多可以删除 100 条记录。

接口说明

/**
* @param devId      设备 ID
* @param fileIdList 历史记录 ID 集合
* @param callback
*/
void deleteSweeperHistoryData(String devId, List<String> fileIdList, final ITuyaDelHistoryCallback callback);

代码示例

List<String> list = new ArrayList<>();
list.add("10");
list.add("11");

TuyaOptimusSdk.getManager(ITuyaSweeperKitSdk.class).getSweeperInstance().deleteSweeperHistoryData("devId", list, new ITuyaDelHistoryCallback() {
    @Override
    public void onSuccess() {

    }

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

    }
});

获取多楼层地图数据

接口说明

/**
 * 获取扫地机历史记录(多地图)
 * @param devId    设备 ID
 * @param limit    一次获取数据的数量(建议最大不要超过 100)
 * @param offset   获取数据的偏移量(用于分页)
 * @param callback
 */
void getSweeperMultiMapHistoryData(String devId, int limit, int offset,
                                   ITuyaResultCallback<SweeperHistory> callback);

/**
 * 获取扫地机历史记录 (适用于多地图)
 * @param devId     设备 ID
 * @param limit     一次获取数据的数量(建议最大不要超过 100)
 * @param offset    获取数据的偏移量(用于分页)
 * @param startTime 起始时间戳
 * @param endTime   结束时间戳
 * @param callback
 */
void getSweeperMultiMapHistoryData(String devId, int limit, int offset, long startTime, long endTime,
                                   ITuyaResultCallback<SweeperHistory> callback);

代码示例

TuyaOptimusSdk.getManager(ITuyaSweeperKitSdk.class).getSweeperInstance().getSweeperMultiMapHistoryData("devId", 20, 0, new ITuyaResultCallback<SweeperHistory>() {
    @Override
    public void onSuccess(SweeperHistory result) {

    }

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

    }
});

多楼层地图命名

针对激光型扫地机一次清扫记录有多个地图的情况,提供多楼层地图命名的接口。

接口说明

    /**
     * 多楼层地图命名
     * @param devId 设备 ID
     * @param id 地图 ID
     * @param name 地图名称
     * @param callback 命名回调
     */
    void sweeperFileNameUpdateWithDevId(String devId, long id, String name,final ITuyaSweeperNameUpdateCallback callback);

代码示例

TuyaOptimusSdk.getManager(ITuyaSweeperKitSdk.class).getSweeperInstance().sweeperFileNameUpdateWithDevId("devId",id,"name", new ITuyaSweeperNameUpdateCallback() {
    @Override
    public void onNameUpdate(boolean result){

    }

    @Override
    public void void onFailure(String code, String msg){

    }
});