From 755e2893c12b79649ee12dec2b7d832d58b9265b Mon Sep 17 00:00:00 2001 From: 562935844@qq.com Date: 星期三, 18 十月 2023 16:19:26 +0800 Subject: [PATCH] 上报oid列表新增parentoid --- HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java | 154 ++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 127 insertions(+), 27 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 c2a71fb..5b9e0ec 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 @@ -2,13 +2,9 @@ import android.os.Build; import android.text.TextUtils; -import android.util.Log; - -import androidx.annotation.RequiresApi; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; -import com.hdl.sdk.common.HDLSdk; import com.hdl.sdk.common.config.TopicConstant; import com.hdl.sdk.common.event.EventDispatcher; import com.hdl.sdk.common.event.EventListener; @@ -16,33 +12,29 @@ import com.hdl.sdk.common.exception.HDLLinkException; import com.hdl.sdk.common.utils.IdUtils; import com.hdl.sdk.common.utils.LogUtils; -import com.hdl.sdk.common.utils.SPUtils; import com.hdl.sdk.common.utils.ThreadToolUtils; import com.hdl.sdk.common.utils.gson.GsonConvert; import com.hdl.sdk.connect.HDLLink; -import com.hdl.sdk.connect.bean.LoginRequest; -import com.hdl.sdk.connect.bean.request.AuthenticateRequest; -import com.hdl.sdk.connect.bean.request.BroadcastRequest; -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.BaseLocalCodeResponse; -import com.hdl.sdk.connect.bean.response.BaseLocalResponse; -import com.hdl.sdk.connect.bean.request.DeviceControlRequest; -import com.hdl.sdk.connect.bean.request.FunctionAttributeRequest; import com.hdl.sdk.connect.bean.LinkRequest; import com.hdl.sdk.connect.bean.LinkResponse; +import com.hdl.sdk.connect.bean.LoginRequest; +import com.hdl.sdk.connect.bean.request.BroadcastRequest; +import com.hdl.sdk.connect.bean.request.DeviceAuthRequest; +import com.hdl.sdk.connect.bean.request.DeviceControlRequest; +import com.hdl.sdk.connect.bean.request.FunctionAttributeRequest; +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.request.PropertyReadRequest; +import com.hdl.sdk.connect.bean.response.BaseLocalCodeResponse; +import com.hdl.sdk.connect.bean.response.BaseLocalResponse; import com.hdl.sdk.connect.bean.response.DeviceInfoResponse; import com.hdl.sdk.connect.callback.HDLLinkCallBack; import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack; import com.hdl.sdk.connect.config.HDLLinkConfig; import com.hdl.sdk.connect.protocol.LinkMessageDecoder; import com.hdl.sdk.connect.protocol.LinkMessageEncoder; -import com.hdl.sdk.connect.utils.AesUtil; import com.hdl.sdk.socket.SocketBoot; import com.hdl.sdk.socket.SocketOptions; import com.hdl.sdk.socket.client.IHeartbeat; @@ -52,7 +44,6 @@ import com.hdl.sdk.socket.listener.SendListener; import java.util.ArrayList; -import java.util.Base64; import java.util.List; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -123,13 +114,17 @@ } BroadcastRequest request = new BroadcastRequest(IdUtils.getUUId(), time, HDLLinkConfig.getInstance().getDeviceInfoBean(), "200"); HDLAuthSocket.getInstance().udpSendMsg(TopicConstant.BROADCAST, GsonConvert.getGson().toJson(request), true, new HDLLinkResponseCallBack() { - @RequiresApi(api = Build.VERSION_CODES.O) + // @RequiresApi(api = Build.VERSION_CODES.O) @Override public void onSuccess(LinkResponse msg) { String data = msg.getData(); if (!TextUtils.isEmpty(data)) { DeviceInfoResponse response = GsonConvert.getGson().fromJson(data, new TypeToken<DeviceInfoResponse>() { }.getType()); + + if ((response == null) || (response.getObjects() == null) || (response.getObjects().getIPAddress() == null)) + return; + HDLLinkConfig.getInstance().setIpAddress(response.getObjects().getIPAddress()); LogUtils.i("---getIpAddress=" + HDLLinkConfig.getInstance().getIpAddress()); @@ -655,12 +650,62 @@ 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)); @@ -896,14 +941,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)); } @@ -942,7 +986,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() { @@ -951,8 +999,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)); } } }); @@ -1011,7 +1059,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 { @@ -1061,4 +1109,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