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