package com.sandu.ximon.admin.manager.iot.rrpc.topic; import com.aliyuncs.iot.model.v20180120.BatchGetDeviceStateResponse; import com.aliyuncs.iot.model.v20180120.BatchQueryDeviceDetailResponse; import com.aliyuncs.iot.model.v20180120.QueryDeviceDetailResponse; import com.aliyuncs.iot.model.v20180120.RegisterDeviceResponse; import java.util.List; /** * @author chenjiantian * @date 2021/12/3 11:42 * 基础通信topic */ public interface IBaseTopic { /** * 注册设备 * https://help.aliyun.com/document_detail/69470.htm?spm=a2c4g.11186623.0.0.25b366d8EyOkmb#reference-pc2-kpz-wdb * 注册设备指在物联网平台产品下添加设备。在指定产品下成功注册设备后,阿里云物联网平台为设备颁发全局唯一的设备ID(IotId),用来标识该设备。在进行与设备相关的操作时,您可能需要提供目标设备的IotId。 * 您也可以使用ProductKey和DeviceName组合来标识一个设备。其中ProductKey是新建产品时,物联网平台为产品颁发的ProductKey,DeviceName是注册设备时,由您指定或由系统随机生成的设备名称。IotId的优先级高于ProductKey和DeviceName组合。 * @param deviceName 设备名 如果不传入该参数,则由系统随机生成设备名称。 * @return 返回的结果 */ RegisterDeviceResponse.Data registerDevice(String deviceName); /** * 删除设备 * @param deviceName 设备名 * @return 是否成功。 */ boolean deleteDevice(String deviceName); // /** // * 查询设备属性快照 // * @param deviceName 设备名 // * @param lotId 要查询属性所属的设备ID或数字孪生节点ID:如果传入该参数,则无需传入ProductKey和DeviceName。IotId作为设备唯一标识符,和ProductKey与DeviceName组合是一一对应的关系。如果您同时传入IotId和ProductKey与DeviceName组合,则以IotId为准。 // */ // void queryDeviceProperty(String deviceName,String lotId); /** * https://help.aliyun.com/document_detail/69594.htm?spm=a2c4g.11186623.0.0.25b366d8EyOkmb#reference-rrg-lpz-wdb * 调用该接口查询指定设备的详细信息。 * 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。 * @param deviceName 设备名 * @param lotId 要查询属性所属的设备ID或数字孪生节点ID:如果传入该参数,则无需传入ProductKey和DeviceName。IotId作为设备唯一标识符,和ProductKey与DeviceName组合是一一对应的关系。如果您同时传入IotId和ProductKey与DeviceName组合,则以IotId为准。 * @return 设备详情 */ QueryDeviceDetailResponse.Data queryDeviceDetail(String deviceName, String lotId); /** * https://help.aliyun.com/document_detail/123470.htm?spm=a2c4g.11186623.0.0.25b366d8EyOkmb#doc-api-Iot-BatchQueryDeviceDetail * 单次调用最多能查询100个设备。 * 只能批量查询当前阿里云账号下的设备详情。如果传入的设备信息中,有设备不属于当前账号,则直接返回失败结果。 * 若传入的设备信息中,包含不存在的设备,则只返回存在的设备详情。 * 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。 * @param deviceNames 设备名列表 * @return 设备详情列表 */ List batchQueryDeviceDetail(List deviceNames); /** * 为指定设备设置标签。 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。 * Props的总大小不超过5 KB。单个设备的设备标签总数不超过100个。单次修改或新增的设备标签数不超过100个 * https://help.aliyun.com/document_detail/69618.htm?spm=a2c4g.11186623.0.0.25b366d8EyOkmb#reference-xd3-qrz-wdb * @param deviceName 设备名 * @param props JSON格式{"color":"red","shape":"round"} * @return 是否成功 */ boolean saveDeviceProp(String deviceName,String props); /** * 查看同一产品下指定设备的运行状态。 * 该接口用于查看一个产品下多个设备的运行状态,单次最多可查询50个设备。 * 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。 * @param deviceNames 设备名列表 * @return 设备状态列表 */ List batchGetDeviceState(List deviceNames); }