From 0a8fd4aa92555875f58f67144c2c0c0a20a200af Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 20 八月 2024 09:57:13 +0800
Subject: [PATCH] 增加版本通过配置读取
---
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java | 130 +++++++++++++++++++++++++++++++++++++++---
1 files changed, 119 insertions(+), 11 deletions(-)
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
index b82dcef..56a047d 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
@@ -29,6 +29,7 @@
import com.hdl.sdk.connect.bean.request.GatewayInfoRequest;
import com.hdl.sdk.connect.bean.request.ListOidRequest;
import com.hdl.sdk.connect.bean.request.ListOidRequest2;
+import com.hdl.sdk.connect.bean.request.ListSidRequest;
import com.hdl.sdk.connect.bean.request.ListUploadRequest;
import com.hdl.sdk.connect.bean.response.AuthenticateResponse;
import com.hdl.sdk.connect.bean.response.BaseLocalCodeResponse;
@@ -108,7 +109,7 @@
public void run() {
while (true) {
try {
- Thread.sleep(1000);
+ Thread.sleep(5000);
// LogUtils.i("checkIfCertified=" + HDLLink.getInstance().checkIfCertified() + " getTcp().connected=" + getTcp().connected);
try {
if (!HDLLink.getInstance().checkIfCertified() || (!TextUtils.isEmpty(getTcpIp()) && getTcp().connected)) {
@@ -472,14 +473,15 @@
}
}
- public SocketBoot getTcp() throws RuntimeException {
- if (TextUtils.isEmpty(getTcpIp())) {
+ public synchronized SocketBoot getTcp() throws RuntimeException {
+ String gatewayIpAddress=getTcpIp();
+ if (TextUtils.isEmpty(gatewayIpAddress)) {
LogUtils.e("璇锋悳绱㈢綉鍏�");
throw new RuntimeException("璇锋悳绱㈢綉鍏�");
}
//濡傛灉娌℃湁鍒濆鍖栵紝鎴栬�呯綉鍏矷P鏇存敼浜嗭紝灏遍噸鏂板垵濮嬪寲
- if (tcpBoot == null || !getTcpOptions().getIp().equals(getTcpIp())) {
- tcpBoot = TcpClient.init(getTcpIp(), getTcpPort(), getTcpOptions());
+ if (tcpBoot == null || !getTcpOptions().getIp().equals(gatewayIpAddress)) {
+ tcpBoot = TcpClient.init(gatewayIpAddress, getTcpPort(), getTcpOptions());
tcpBoot.SetHeartbeat(new IHeartbeat() {
@Override
public void heartbeat() {
@@ -661,12 +663,63 @@
data.setId(IdUtils.getUUId());
data.setTime_stamp(time);
+ //2023.10.18淇敼锛屼笂鎶id鍒楄〃澧炲姞parentOid
+ if (request!=null && !TextUtils.isEmpty(HDLLinkConfig.getInstance().getParentOid())) {
+ request.setParentOid(HDLLinkConfig.getInstance().getParentOid());
+ }
+
List<ListUploadRequest> list = new ArrayList<>();
list.add(request);
data.setObjects(list);
String topic = String.format(TopicConstant.LIST_UPLOAD, getGatewayId());
+ LinkRequest message = new LinkRequest(topic,
+ GsonConvert.getGson().toJson(data));
+
+ String replyTopic = topic + "_reply";
+ try {
+ sendMsg(message.getSendBytes(), replyTopic, callBack, new SendListener() {
+ @Override
+ public void onSucceed() {
+
+ }
+
+ @Override
+ public void onError() {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR));
+ }
+ }
+ });
+ } catch (Exception e) {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR));
+ }
+ }
+ } else {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR));
+ }
+ }
+ }
+
+ /**
+ * 涓婃姤Sid鍒楄〃
+ *
+ * @param requestList sid鍒楄〃
+ * @param callBack 鍥炶皟
+ */
+ public void UploadSidList(List<ListSidRequest> requestList, HDLLinkCallBack callBack) {
+ if (!TextUtils.isEmpty(getGatewayId()) && !TextUtils.isEmpty(getTcpIp())) {
+ String time = String.valueOf(System.currentTimeMillis());
+ final BaseLocalResponse<List<ListSidRequest>> data = new BaseLocalResponse<>();
+ data.setId(IdUtils.getUUId());
+ data.setTime_stamp(time);
+
+ data.setObjects(requestList);
+
+ String topic = String.format(TopicConstant.LIST_SID_UPLOAD, getGatewayId());
LinkRequest message = new LinkRequest(topic,
GsonConvert.getGson().toJson(data));
@@ -902,14 +955,13 @@
// String replyTopic = topic + "_reply";
try {
- sendMsg(message.getSendBytes(), topic, callBack, new SendListener() {
+ sendMsg(message.getSendBytes(), topic, null, new SendListener() {
@Override
public void onSucceed() {
+ HDLLinkConfig.getInstance().clearConfig();
if (callBack == null) return;
try {
callBack.onSuccess("閫�缃戞垚鍔�");
- HDLLinkConfig.getInstance().clearConfig();
-
} catch (Exception e) {
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_ERROR));
}
@@ -948,7 +1000,11 @@
public void tcpSendMsg(String topic, String bodyStr, HDLLinkCallBack callBack) {
try {
LinkRequest message = new LinkRequest(topic, bodyStr);
+ if (topic != null && topic.endsWith("_reply")) {
+ callBack = null;
+ }
String replyTopic = topic + "_reply";
+ HDLLinkCallBack finalCallBack = callBack;
sendMsg(message.getSendBytes(), replyTopic, callBack, new SendListener() {
@Override
public void onSucceed() {
@@ -957,8 +1013,8 @@
@Override
public void onError() {
- if (callBack != null) {
- callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR));
+ if (finalCallBack != null) {
+ finalCallBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR));
}
}
});
@@ -1017,7 +1073,7 @@
threadPool.scheduleWithFixedDelay(new Runnable() {
@Override
public void run() {
- if (sendCount.get() < 3) {
+ if (sendCount.get() < 0) {
sendCount.set(sendCount.get() + 1);
getTcp().sendMsg(data);
} else {
@@ -1067,4 +1123,56 @@
}
+ /**
+ * 鍥炲缃戝叧閰嶇疆鍛戒护
+ *
+ * @param mac_Oid_GatewayId
+ * @param msgId 娑堟伅Id
+ * @param callBack
+ */
+ public void gatewayRemoteEditReply(String mac_Oid_GatewayId, String msgId, HDLLinkCallBack callBack) {
+ if (TextUtils.isEmpty(mac_Oid_GatewayId)) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_NULL_ERROR));
+ }
+
+ String time = String.valueOf(System.currentTimeMillis());
+ final BaseLocalCodeResponse<List<String>> data = new BaseLocalCodeResponse<>();
+ data.setId(msgId);
+ data.setTime_stamp(time);
+ data.setCode("0");
+
+
+ String topic = String.format(TopicConstant.GATEWAY_EDIT_REMOTE_REPLY, mac_Oid_GatewayId);
+ LinkRequest message = new LinkRequest(topic,
+ GsonConvert.getGson().toJson(data));
+
+
+ try {
+ sendMsg(message.getSendBytes(), topic, callBack, new SendListener() {
+ @Override
+ public void onSucceed() {
+ if (callBack == null) return;
+ try {
+ callBack.onSuccess("閫�缃戞垚鍔�");
+ HDLLinkConfig.getInstance().clearConfig();
+
+ } catch (Exception e) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_ERROR));
+ }
+ }
+
+ @Override
+ public void onError() {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR));
+ }
+ }
+ });
+ } catch (Exception e) {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR));
+ }
+ }
+ }
+
}
--
Gitblit v1.8.0