package com.hdl.sdk.connect; import com.hdl.sdk.connect.config.HDLLinkConfig; import com.hdl.sdk.common.event.EventDispatcher; import com.hdl.sdk.common.event.EventListener; import com.hdl.sdk.connect.bean.AuthenticateRequest; import com.hdl.sdk.connect.socket.HDLAuthSocket; /** * Created by jlchen on 11/15/21. * * @Description : HDLLink */ public class HDLLink { /** * instance */ private volatile static HDLLink instance; /** * getInstance * * @return HDLLink */ public static synchronized HDLLink getInstance() { if (instance == null) { synchronized (HDLLink.class) { if (instance == null) { instance = new HDLLink(); } } } return instance; } /** * 注册所有主题消息的监听 * @param listener */ public synchronized void registerAllTopicsListener(EventListener listener){ EventDispatcher.getInstance().registerAllTopicsListener(listener); } /** * 取消所有主题消息的监听 * @param listener */ public synchronized void removeAllTopicsListener(EventListener listener) { EventDispatcher.getInstance().removeAllTopicsListener(listener); } /** * 检测是否已经认证过 * 认证通过才能进行设备控制 * @return */ public boolean checkIfCertified(){ return HDLLinkConfig.getInstance().checkIfCertified(); } /** * 发送入网及认证请求 * * @param ip 网关IP * @param request 认证请求信息 * @param callBack 结果回调 */ public void sendAuthenticateRequest(String ip, AuthenticateRequest request, HDLAuthSocket.CallBack callBack) { HDLAuthSocket.getInstance().sendAuthenticateRequest(ip,request,callBack); } /** * 搜索指定网关是否在线,搜索到则返回指定的网关对象 * * @param callBack 回调 */ public void searchGateway(HDLAuthSocket.SearchGatewayCallBack callBack) { HDLAuthSocket.getInstance().searchGateway(HDLLinkConfig.getInstance().getGatewayId(), callBack); } }