| | |
| | | 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; |
| | |
| | | import com.hdl.sdk.connect.socket.HDLSocket; |
| | | |
| | | import java.util.List; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * Created by jlchen on 11/15/21. |
| | |
| | | /** |
| | | * 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; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 通用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); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @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); |
| | | } |
| | | } |