From cc6023291bc94a229b53d7c2d83bf2b39bbfa9a0 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期日, 27 三月 2022 21:27:29 +0800 Subject: [PATCH] 华尔思线上版本库 --- HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java | 204 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 190 insertions(+), 14 deletions(-) diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java index e259914..d26a345 100644 --- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java +++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java @@ -1,10 +1,18 @@ package com.hdl.sdk.connect; -import com.hdl.sdk.common.config.AuthenticateConfig; +import com.hdl.sdk.common.utils.ThreadToolUtils; +import com.hdl.sdk.connect.bean.request.DeviceControlRequest; +import com.hdl.sdk.connect.callback.HDLLinkCallBack; +import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack; +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.bean.request.AuthenticateRequest; import com.hdl.sdk.connect.socket.HDLAuthSocket; +import com.hdl.sdk.connect.socket.HDLSocket; + +import java.util.List; +import java.util.concurrent.TimeUnit; /** * Created by jlchen on 11/15/21. @@ -15,20 +23,20 @@ /** * instance */ - private volatile static HDLLink instance; + private static final HDLLink instance=new HDLLink(); /** * getInstance * * @return HDLLink */ - public static synchronized HDLLink getInstance() { - if (instance == null) { - synchronized (HDLLink.class) { - if (instance == null) { - instance = new HDLLink(); - } - } - } + public static HDLLink getInstance() { +// if (instance == null) { +// synchronized (HDLLink.class) { +// if (instance == null) { +// instance = new HDLLink(); +// } +// } +// } return instance; } @@ -44,16 +52,28 @@ * @param listener */ public synchronized void removeAllTopicsListener(EventListener listener) { + if(listener == null) return; EventDispatcher.getInstance().removeAllTopicsListener(listener); } + /***********************涓夋柟璁惧鍜岀綉鍏抽�氫俊涔嬪墠鐨勮璇佹祦绋�****************************/ /** * 妫�娴嬫槸鍚﹀凡缁忚璇佽繃 * 璁よ瘉閫氳繃鎵嶈兘杩涜璁惧鎺у埗 * @return */ public boolean checkIfCertified(){ - return AuthenticateConfig.getInstance().checkIfCertified(); + return HDLLinkConfig.getInstance().checkIfCertified(); + } + + /** + * 寮�濮嬬洃鍚拰鍙戣捣鍏ョ綉鍙婅璇佽姹� + * + * @param request 璁よ瘉璇锋眰淇℃伅 + * @param callBack 缁撴灉鍥炶皟 + */ + public void startAuthenticateRequest(AuthenticateRequest request, HDLLinkCallBack callBack) { + HDLAuthSocket.getInstance().startAuthenticateRequest(request,callBack); } /** @@ -63,8 +83,164 @@ * @param request 璁よ瘉璇锋眰淇℃伅 * @param callBack 缁撴灉鍥炶皟 */ - public void sendAuthenticateRequest(String ip, AuthenticateRequest request, HDLAuthSocket.CallBack callBack) { - HDLAuthSocket.getInstance().sendAuthenticateRequest(ip,request,callBack); + public void sendAuthenticateRequest(String ip, AuthenticateRequest request, HDLLinkCallBack callBack) { + HDLAuthSocket.getInstance().sendAuthenticateRequest(ip, request, callBack); } + // /** +// * 寮�濮嬫悳绱㈡墍鏈夌綉鍏筹紝鏈夌綉鍏冲洖澶嶅氨鍥炶皟锛屼笂灞傝嚜宸卞仛鍘婚噸鍒ゆ柇 +// * +// * @param callBack 鍥炶皟 +// */ +// public void startSearchAllGateway(HDLAuthSocket.SearchGatewayCallBack callBack) { +// +// } +// +// /** +// * 鏆傚仠鎼滅储缃戝叧 +// */ +// public void endSearchAllGateway() { +// +// } + + /***********************涓夋柟璁惧璇峰厛璁よ瘉鎴愬姛 鍐嶈皟鐢ㄤ笅闈㈢殑鎺ュ彛鍜岀綉鍏抽�氫俊****************************/ + /** + * 缁勬挱鎼滅储鎸囧畾缃戝叧鏄惁鍦ㄧ嚎锛屾悳绱㈠埌鍒欒繑鍥炴寚瀹氱殑缃戝叧瀵硅薄 + * @param callBack 鍥炶皟 + */ + public void searchGatewayMulticast(HDLAuthSocket.SearchGatewayCallBack callBack) { + HDLAuthSocket.getInstance().searchGatewayMulticast(callBack); + } + + /** + * 缁勬挱鎼滅储鎸囧畾缃戝叧鏄惁鍦ㄧ嚎锛屾悳绱㈠埌鍒欒繑鍥炴寚瀹氱殑缃戝叧瀵硅薄 + * @param callBack 鍥炶皟 + */ + public void searchGatewayBroadcast(HDLAuthSocket.SearchGatewayCallBack callBack) { + HDLAuthSocket.getInstance().searchGatewayBroadcast(callBack); + } + + /** + * 鑾峰彇璁惧鍒楄〃 + */ + public void getDeviceList(HDLLinkCallBack callBack) { + HDLSocket.getInstance().getDeviceList(callBack); + } + + /** + * 鑾峰彇鍔熻兘鍒楄〃 + */ + public void getFunctionList(HDLLinkCallBack callBack) { + HDLSocket.getInstance().getFunctionList(callBack); + } + + /** + * 鑾峰彇鍔熻兘灞炴�� + * + * @param sids + * @param callBack + */ + public void getFunctionAttribute(List<String> sids, HDLLinkCallBack callBack) { + HDLSocket.getInstance().getFunctionAttribute(sids, callBack); + } + + /** + * 璁惧鎺у埗 + * @param request 鎺у埗鐘舵�佸弬鏁� + * @param callBack 缁撴灉鍥炶皟 + */ + public void propertyDown(List<DeviceControlRequest> request, HDLLinkCallBack callBack) { + HDLSocket.getInstance().propertyDown(request, callBack); + } + + /** + * 璇诲彇鐘舵�� + * @param sids 璇锋眰鍙傛暟 鎸囧畾璇诲彇鐨勮澶噑id鍒楄〃 + * @param callBack 鍥炶皟 + */ + public void propertyRead(List<String> sids, HDLLinkCallBack callBack) { + HDLSocket.getInstance().propertyRead(sids, callBack); + } + + /** + * 鑾峰彇鍦烘櫙鍒楄〃 + */ + public void getSceneList(HDLLinkCallBack callBack) { + HDLSocket.getInstance().getSceneList(callBack); + } + + /** + * 鍦烘櫙鎺у埗 + * @param sids 鍦烘櫙sid鍒楄〃 + * @param callBack 鍥炶皟 + */ + public void controlScene(List<String> sids, HDLLinkCallBack callBack) { + HDLSocket.getInstance().controlScene(sids, callBack); + } + + /** + * 閫氱敤UDP鍙戦�佹寚浠� + * 1绉掓病鍝嶅簲灏辫浠栭噸鏂板彂閫�,閲嶈瘯3娆� + * @param topic 鍙戦�佹暟鎹� + * @param bodyStr body鍐呭 + * @param callBack 鍥炶皟 + */ + public void udpSendMsg(String topic, String bodyStr, HDLLinkResponseCallBack callBack) { + HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,false, callBack); + } + + /** + * 閫氱敤骞挎挱UDP鍙戦�佹寚浠� + * 1绉掓病鍝嶅簲灏辫浠栭噸鏂板彂閫�,閲嶈瘯3娆� + * @param topic 鍙戦�佹暟鎹� + * @param bodyStr body鍐呭 + * @param callBack 鍥炶皟 + */ + public void udpBroadcastSendMsg(String topic, String bodyStr, HDLLinkResponseCallBack callBack) { + HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,true, callBack); + } + + /** + * 閫氱敤TCP鍙戦�佹寚浠� + * 1绉掓病鍝嶅簲灏辫浠栭噸鏂板彂閫�,閲嶈瘯3娆� + * + * @param topic 鍙戦�佹暟鎹� + * @param bodyStr body鍐呭 + * @param callBack 鍥炶皟 + */ + public void tcpSendMsg(String topic, String bodyStr, HDLLinkCallBack callBack) { + HDLAuthSocket.getInstance();//閫氳繃杩欎釜鍙互鍏堝垵濮嬪寲UDP鐩戝惉浜嬩欢 + HDLSocket.getInstance().tcpSendMsg(topic, bodyStr, callBack); + } + + /** + * 閫氱敤鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙� + * + * @param topic 鍙戦�佹暟鎹� + * @param bodyStr 鍥炲鐨勪富棰� + */ + public void udpSendMsg(String topic, String bodyStr) { + HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,false); + } + + /** + * 閫氱敤骞挎挱鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙� + * + * @param topic 鍙戦�佹暟鎹� + * @param bodyStr 鍥炲鐨勪富棰� + */ + public void udpBroadcastSendMsg(String topic, String bodyStr) { + HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,true); + } + + /** + * 閫氱敤TCP鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙� + * + * @param topic 鍙戦�佹暟鎹� + * @param bodyStr 鍥炲鐨勪富棰� + */ + public void tcpSendMsg(String topic, String bodyStr) { + HDLAuthSocket.getInstance();//閫氳繃杩欎釜鍙互鍏堝垵濮嬪寲UDP鐩戝惉浜嬩欢 + HDLSocket.getInstance().tcpSendMsg(topic, bodyStr); + } } -- Gitblit v1.8.0