From 2574334327d47d5b0d62e1e9fe442a493bbcf2bd Mon Sep 17 00:00:00 2001
From: 562935844@qq.com
Date: 星期二, 11 四月 2023 15:52:54 +0800
Subject: [PATCH] 新增接收主机退网delete/notify主题处理
---
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/request/ListOidRequest2.java | 29 +++++++
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/config/TopicConstant.java | 2
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/DeviceDeleteResponse.java | 62 +++++++++++++++
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/request/ListOidRequest.java | 9 --
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java | 28 ++++++
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java | 65 +++++++++++++++
6 files changed, 180 insertions(+), 15 deletions(-)
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/config/TopicConstant.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/config/TopicConstant.java
index f9ce88a..4ad39ac 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/config/TopicConstant.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/config/TopicConstant.java
@@ -108,6 +108,8 @@
public static final String DELETE_REQUEST = "/base/%s/thing/topo/delete/request";
//缃戝叧鍝嶅簲閫�缃戦�氱煡
+ public static final String DELETE_NOTIFY = "/base/%s/thing/topo/delete/notify";
+
public static final String DELETE_NOTIFY_REPLY = "/base/%s/thing/topo/delete/notify_reply";
//缃戝叧鐗╃悊鍒犻櫎(閫�缃�)瀛愯澶囧悗涓婃姤
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/request/ListOidRequest.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/request/ListOidRequest.java
index 164f569..32b1cd0 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/request/ListOidRequest.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/request/ListOidRequest.java
@@ -9,7 +9,6 @@
public class ListOidRequest implements Serializable {
private String oid;
- private String mac;
public String getOid() {
return oid;
@@ -17,13 +16,5 @@
public void setOid(String oid) {
this.oid = oid;
- }
-
- public String getMac() {
- return mac;
- }
-
- public void setMac(String mac) {
- this.mac = mac;
}
}
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/request/ListOidRequest2.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/request/ListOidRequest2.java
new file mode 100644
index 0000000..24aa094
--- /dev/null
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/request/ListOidRequest2.java
@@ -0,0 +1,29 @@
+package com.hdl.sdk.connect.bean.request;
+
+import java.io.Serializable;
+
+/**
+ * Created by Tong on 2022/09/23.
+ */
+
+public class ListOidRequest2 implements Serializable {
+
+ private String oid;
+ private String mac;
+
+ public String getOid() {
+ return oid;
+ }
+
+ public void setOid(String oid) {
+ this.oid = oid;
+ }
+
+ public String getMac() {
+ return mac;
+ }
+
+ public void setMac(String mac) {
+ this.mac = mac;
+ }
+}
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/DeviceDeleteResponse.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/DeviceDeleteResponse.java
new file mode 100644
index 0000000..1e9d43c
--- /dev/null
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/DeviceDeleteResponse.java
@@ -0,0 +1,62 @@
+package com.hdl.sdk.connect.bean.response;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * Created by jlchen on 11/12/21.
+ *
+ * @Description : DeviceDeleteResponse
+ */
+public class DeviceDeleteResponse extends BaseResponse {
+ private List<GatewayObjects> objects;
+
+ public List<GatewayObjects> getObjects() {
+ return objects;
+ }
+
+ public void setObjects(List<GatewayObjects> objects) {
+ this.objects = objects;
+ }
+
+ public class GatewayObjects implements Serializable {
+ private String device_name;
+ private String oid;
+ private boolean isSaveOidInfo;
+ private boolean isDeletOidInfo;
+
+ public String getOID() {
+ return oid;
+ }
+
+ public void setOID(String value) {
+ this.oid = value;
+ }
+
+ public String getDevice_name() {
+ return device_name;
+ }
+
+ public void setDevice_name(String device_name) {
+ this.device_name = device_name;
+ }
+
+ public boolean isSaveOidInfo() {
+ return isSaveOidInfo;
+ }
+
+ public void setSaveOidInfo(boolean saveOidInfo) {
+ isSaveOidInfo = saveOidInfo;
+ }
+
+ public boolean isDeletOidInfo() {
+ return isDeletOidInfo;
+ }
+
+ public void setDeletOidInfo(boolean deletOidInfo) {
+ isDeletOidInfo = deletOidInfo;
+ }
+ }
+
+
+}
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java
index e5eebc8..a227a2a 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java
@@ -17,6 +17,7 @@
import com.hdl.sdk.common.utils.gson.GsonConvert;
import com.hdl.sdk.connect.bean.LinkResponse;
import com.hdl.sdk.connect.bean.request.AuthenticateRequest;
+import com.hdl.sdk.connect.bean.response.DeviceDeleteResponse;
import com.hdl.sdk.connect.bean.response.DeviceInfoResponse;
import com.hdl.sdk.connect.callback.HDLLinkCallBack;
import com.hdl.sdk.connect.config.HDLLinkConfig;
@@ -194,7 +195,11 @@
response.setData(bodyString);
LogUtils.i("鎺ユ敹鍒版暟鎹�:" + response.getTopic() + "\r\n" + response.getData());
- String receivetopic = String.format(TopicConstant.LINK_BROADCAST, HDLLinkConfig.getInstance().getGatewayId());
+ String updateLocalSecret = String.format(TopicConstant.LINK_BROADCAST, HDLLinkConfig.getInstance().getGatewayId());
+ String deleteNetwork = "";
+ if (HDLLinkConfig.getInstance().getDeviceInfoBean() != null) {
+ deleteNetwork = String.format(TopicConstant.DELETE_NOTIFY, HDLLinkConfig.getInstance().getDeviceInfoBean().getOID());
+ }
if (response.getTopic().equals("/user/all/custom/gateway/search")) {
HDLAuthSocket.getInstance().UploadGatewayInfo(new HDLLinkCallBack() {
@@ -208,7 +213,7 @@
LogUtils.i("UploadGatewayInfo onError");
}
});
- } else if (response.getTopic().equals(receivetopic)) {
+ } else if (response.getTopic().equals(updateLocalSecret)) {
try {
DeviceInfoResponse deviceInfoResponse = GsonConvert.getGson().fromJson(response.getData(), new TypeToken<DeviceInfoResponse>() {
}.getType());
@@ -220,13 +225,30 @@
mackey = SPUtils.getString("auth_mackey_key", "");
byte[] bodyBytes = AesUtil.aesDecrypt(baseBytes, mackey.substring(mackey.length() - 16));
String localSecret = new String(bodyBytes, "utf-8");
- Log.d("panlili", "LinkMessageDecoder.java:----->localSecret= " + localSecret);
HDLLinkConfig.getInstance().setLocalSecret(localSecret);
}
}
} catch (Exception e) {
LogUtils.i("LinkMessageDecoder.java:getLocalSecret----->e= " + e.getMessage());
}
+ } else if (response.getTopic().equals(deleteNetwork)) {
+ try {
+ DeviceDeleteResponse deviceDeleteResponse = GsonConvert.getGson().fromJson(response.getData(), new TypeToken<DeviceDeleteResponse>() {
+ }.getType());
+ HDLSocket.getInstance().deleteNetwork(deviceDeleteResponse.getObjects().get(0).getOID(), new HDLLinkCallBack() {
+ @Override
+ public void onSuccess(String msg) {
+ LogUtils.i("deleteNetwork onSucceed");
+ }
+
+ @Override
+ public void onError(HDLLinkException e) {
+ LogUtils.i("deleteNetwork onError");
+ }
+ });
+ } catch (Exception e) {
+ LogUtils.i("LinkMessageDecoder.java:deleteNetwork----->e= " + e.getMessage());
+ }
}
//闈炴甯告暟鎹紝杩斿洖
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 47d5f92..82b4652 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
@@ -26,6 +26,7 @@
import com.hdl.sdk.connect.bean.request.DeviceAuthRequest;
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.ListUploadRequest;
import com.hdl.sdk.connect.bean.response.AuthenticateResponse;
import com.hdl.sdk.connect.bean.response.BaseLocalResponse;
@@ -765,13 +766,13 @@
final String msgId = IdUtils.getUUId();
String time = String.valueOf(System.currentTimeMillis());
- final BaseLocalResponse<List<ListOidRequest>> data = new BaseLocalResponse<>();
+ final BaseLocalResponse<List<ListOidRequest2>> data = new BaseLocalResponse<>();
data.setId(msgId);
data.setTime_stamp(time);
- final ListOidRequest request = new ListOidRequest();
+ final ListOidRequest2 request = new ListOidRequest2();
request.setOid(oid);
- List<ListOidRequest> list = new ArrayList<>();
+ List<ListOidRequest2> list = new ArrayList<>();
list.add(request);
data.setObjects(list);
@@ -814,6 +815,64 @@
}
}
+ /**
+ * 閫氱煡鍒犻櫎骞堕��缃戝瓙璁惧鎷撴墤鍏崇郴
+ *
+ * @param oid 浠庣綉鍏筹紙璁惧锛塷id
+ * @param callBack 缁撴灉鍥炶皟
+ */
+ public void deleteNetwork(String oid, HDLLinkCallBack callBack) {
+ if (TextUtils.isEmpty(oid)) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_NULL_ERROR));
+ }
+
+ final String msgId = IdUtils.getUUId();
+ String time = String.valueOf(System.currentTimeMillis());
+ final BaseLocalResponse<List<ListOidRequest>> data = new BaseLocalResponse<>();
+ data.setId(msgId);
+ data.setTime_stamp(time);
+
+ final ListOidRequest request = new ListOidRequest();
+ request.setOid(oid);
+ List<ListOidRequest> list = new ArrayList<>();
+ list.add(request);
+
+ data.setObjects(list);
+
+ String topic = String.format(TopicConstant.DELETE_NOTIFY_REPLY, HDLLinkConfig.getInstance().getGatewayId());
+ LinkRequest message = new LinkRequest(topic,
+ GsonConvert.getGson().toJson(data));
+
+// String replyTopic = topic + "_reply";
+
+ 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