2021与蓝度共同重构项目,服务端
chenjiantian
2021-12-06 295411fed71f1ea1286316ccc395d28cc5743fa8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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<BatchQueryDeviceDetailResponse.DataItem> batchQueryDeviceDetail(List<String> 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<BatchGetDeviceStateResponse.DeviceStatus> batchGetDeviceState(List<String> deviceNames);
}