hxb
2022-03-27 cc6023291bc94a229b53d7c2d83bf2b39bbfa9a0
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
@@ -1,5 +1,6 @@
package com.hdl.sdk.connect;
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;
@@ -11,6 +12,7 @@
import com.hdl.sdk.connect.socket.HDLSocket;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
 * Created by jlchen on 11/15/21.
@@ -21,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;
    }
@@ -177,14 +179,25 @@
    }
    /**
     * 通用UDP广播发送指令
     * 通用UDP发送指令
     * 1秒没响应就让他重新发送,重试3次
     * @param topic 发送数据
     * @param bodyStr body内容
     * @param callBack 回调
     */
    public void udpSendMsg(String topic, String bodyStr, HDLLinkResponseCallBack callBack) {
        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr, 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);
    }
    /**
@@ -196,6 +209,7 @@
     * @param callBack 回调
     */
    public void tcpSendMsg(String topic, String bodyStr, HDLLinkCallBack callBack) {
        HDLAuthSocket.getInstance();//通过这个可以先初始化UDP监听事件
        HDLSocket.getInstance().tcpSendMsg(topic, bodyStr, callBack);
    }
@@ -206,7 +220,17 @@
     * @param bodyStr  回复的主题
     */
    public void udpSendMsg(String topic, String bodyStr) {
        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr);
        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,false);
    }
    /**
     * 通用广播发送指令 只发一次,不监听回复,不重发
     *
     * @param topic    发送数据
     * @param bodyStr  回复的主题
     */
    public void udpBroadcastSendMsg(String topic, String bodyStr) {
        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,true);
    }
    /**
@@ -216,6 +240,7 @@
     * @param bodyStr  回复的主题
     */
    public void tcpSendMsg(String topic, String bodyStr) {
        HDLAuthSocket.getInstance();//通过这个可以先初始化UDP监听事件
        HDLSocket.getInstance().tcpSendMsg(topic, bodyStr);
    }
}