mac
2023-11-22 3f41182984d69d7fae703776edd1591f48dff93f
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
package com.hdl.linkpm.sdk.home;
 
 
import com.hdl.linkpm.sdk.core.callback.IDefaultCallBack;
import com.hdl.linkpm.sdk.core.callback.IResponseCallBack;
import com.hdl.linkpm.sdk.home.bean.GatewayBindBean;
import com.hdl.linkpm.sdk.home.bean.GatewayInfoBean;
import com.hdl.linkpm.sdk.home.bean.HomeInfoBean;
import com.hdl.linkpm.sdk.home.bean.RoomInfoBean;
import com.hdl.linkpm.sdk.home.bean.logic.LogicInfoBean;
import com.hdl.linkpm.sdk.home.bean.logic.SecurityInfoBean;
import com.hdl.linkpm.sdk.home.callback.IAddRoomListCallBack;
import com.hdl.linkpm.sdk.home.callback.IRoomListCallBack;
import com.hdl.linkpm.sdk.home.controller.HDLPMHomeController;
 
import java.util.List;
 
import io.reactivex.rxjava3.disposables.Disposable;
 
/**
 * Created by jlchen on 12/2/21.
 */
public class HDLLinkPMHome {
    //instance
    private volatile static HDLLinkPMHome instance;
 
    /**
     * getInstance
     *
     * @return HDLLinkPMHome
     */
    public static synchronized HDLLinkPMHome getInstance() {
        if (instance == null) {
            synchronized (HDLLinkPMHome.class) {
                if (instance == null) {
                    instance = new HDLLinkPMHome();
                }
            }
        }
        return instance;
    }
 
 
    /**
     * house表的数据没有同步到home表、数据存在两张表里面,需要客户端调接口同步
     *
     * @param homeInfoBean 住宅Info
     * @param callBack
     * @return
     */
    public void synchHouseToHome(HomeInfoBean homeInfoBean, IDefaultCallBack callBack) {
        HDLPMHomeController.getInstance().synchHouseToHome(homeInfoBean, callBack);
    }
 
    /**
     * 获取住宅下房间表
     *
     * @param homeId   住宅ID
     * @param roomType 房屋类型 FLOOR  ROOM、为空的时候查全部
     * @param pageNo   哪一页
     * @param pageSize 页面大小
     * @param callBack
     * @return
     */
    public void getRoomList(String homeId, String roomType, int pageNo, int pageSize, IRoomListCallBack callBack) {
        HDLPMHomeController.getInstance().getRoomList(homeId, roomType, pageNo, pageSize, callBack);
    }
 
    /**
     * 房间列表全量更新、添加、编辑、删除都用该接口
     *
     * @param homeId   住宅ID
     * @param roomList 最新的房间列表
     * @param callBack
     * @return
     */
    public void fullAddOrEditRoomList(String homeId, List<RoomInfoBean> roomList, IAddRoomListCallBack callBack) {
        HDLPMHomeController.getInstance().fullAddOrEditRoomList(homeId, roomList, callBack);
    }
 
 
    /***************3.网关管理***************/
    /**
     * 绑定网关到住宅
     *
     * @param bean     网关信息
     * @param callBack
     * @return
     */
    public void bindGateway(GatewayBindBean bean, IResponseCallBack<GatewayInfoBean> callBack) {
        HDLPMHomeController.getInstance().bindGateway(bean, callBack);
    }
 
    /**
     * 强制绑定网关
     * 如果绑定网关返回10510 已经被绑定了,则调这个接口强制换绑
     *
     * @param homeId   住宅ID
     * @param mac      网关MAC
     * @param callBack
     * @return
     */
    public void forceBindGateway(String homeId, String mac, IResponseCallBack<GatewayInfoBean> callBack) {
        HDLPMHomeController.getInstance().forceBindGateway(homeId, mac, callBack);
    }
 
    /**
     * 解绑网关
     *
     * @param homeId   住宅id
     * @param gateWayId  gatewayId
     * @param callBack
     * @return
     */
    public void unbindGateway(String homeId, String gateWayId, IResponseCallBack<Boolean> callBack) {
        HDLPMHomeController.getInstance().unbindGateway(homeId, gateWayId, callBack);
    }
    /**
     * 解绑从网关
     *
     * @param homeId   住宅id
     * @param oid      设备oid
     * @param callBack
     * @return
     */
    public void unbindFalseGateway(String homeId, String oid, IResponseCallBack<Boolean> callBack) {
        HDLPMHomeController.getInstance().unbindFalseGateway(homeId, oid, callBack);
    }
    /**
     * 网关绑定住宅信息
     *
     * @param mac   网关mac
     * @param callBack
     * @return
     */
    public void getGatewayHomeInfo(String mac,IResponseCallBack<GatewayInfoBean> callBack) {
        HDLPMHomeController.getInstance().getGatewayHomeInfo(mac, callBack);
    }
 
    /**
     * 获取网关列表
     *
     * @param homeId   住宅id
     * @param callBack
     * @return
     */
    public void getGatewayList(String homeId, IResponseCallBack<List<GatewayInfoBean>> callBack) {
        HDLPMHomeController.getInstance().getGatewayList(homeId, callBack);
    }
 
    /**
     * 网关替换
     *
     * @param homeId    住宅id
     * @param gatewayId 旧网关id
     * @param newMac    新网关mac
     * @param callBack
     * @return
     */
    public void replaceGateway(String homeId, String gatewayId, String newMac, IDefaultCallBack callBack) {
        HDLPMHomeController.getInstance().replaceGateway(homeId, gatewayId, newMac, callBack);
    }
 
    /***************6.自动化增删改查管理***************/
    /**
     * 全量更新同步自动化、存在不变,不存在新增
     *
     * @param homeId   住宅id
     * @param logics   自动化列表
     * @param callBack
     * @return
     */
    public void fullAddLogicList(String homeId, List<LogicInfoBean> logics, IDefaultCallBack callBack) {
        HDLPMHomeController.getInstance().fullAddLogicList(homeId, logics, callBack);
    }
 
    /***************7.安防化增删改查管理***************/
    /**
     * 全量更新同步安防、存在不变,不存在新增
     *
     * @param homeId    住宅id
     * @param gatewayId 网关ID
     * @param securitys 安防列表
     * @param callBack
     * @return
     */
    public void fullAddSecurityList(String homeId, String gatewayId, List<SecurityInfoBean> securitys, IDefaultCallBack callBack) {
        HDLPMHomeController.getInstance().fullAddSecurityList(homeId, gatewayId, securitys, callBack);
    }
 
}