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);
|
}
|
|
}
|