From 516f68195c0b50438088803e60240c7b90019cb4 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期六, 03 二月 2024 18:28:07 +0800
Subject: [PATCH] 备份代码

---
 HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/gateway/HDLLinkLocalGateway.java |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 53 insertions(+), 6 deletions(-)

diff --git a/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/gateway/HDLLinkLocalGateway.java b/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/gateway/HDLLinkLocalGateway.java
index 1f50858..a35f93a 100644
--- a/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/gateway/HDLLinkLocalGateway.java
+++ b/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/gateway/HDLLinkLocalGateway.java
@@ -158,7 +158,8 @@
         }
         for (GatewayBean gatewayBean : this.getGatewayList()) {
             if (macAndSid.equals(gatewayBean.getDevice_mac())
-                    || macAndSid.equals(gatewayBean.getSid())) {
+                    || macAndSid.equals(gatewayBean.getSid())
+                    || macAndSid.equals(gatewayBean.getOid())) {
                 return gatewayBean;
             }
         }
@@ -235,7 +236,7 @@
         ThreadToolUtils.getInstance().newFixedThreadPool(1).execute(new Runnable() {
             @Override
             public void run() {
-                int count = 5;
+                int count = 10;
                 while (0 < count--) {
                     try {
                         //鎼滅储缃戝叧
@@ -263,10 +264,11 @@
      *
      * @param callBack 鍥炶皟
      */
-    public void refreshGateway(GatewayCallBack callBack) {
+    public void refreshGateway(GatewayCallBack callBack, List<String> spks) {
         String topicReply = TopicConstant.GATEWAY_SEARCH_REPLY;
         final List<GatewayBean> tempGatewayBeanList = new ArrayList<>();
-        EventListener eventListener = getSearchGatewayEvent(this.getGatewayTypeList(), tempGatewayBeanList);
+        EventListener eventListener = getSearchGatewayEvent(spks, tempGatewayBeanList);
+//        EventListener eventListener = getSearchGatewayEvent(this.getGatewayTypeList(), tempGatewayBeanList);
         EventDispatcher.getInstance().register(topicReply, eventListener);
         ThreadToolUtils.getInstance().newFixedThreadPool(1).execute(new Runnable() {
             @Override
@@ -364,7 +366,7 @@
                 if (homeId.equals(gateway.getHomeId()) || (needEmptyHomeIdGateway == true && TextUtils.isEmpty(gateway.getHomeId()))) {
                     //鏇存柊缂撳瓨缃戝叧锛屼細璁板綍鎵�鏈夋敹鍒扮殑缃戝叧锛屼互涓轰簡淇濆瓨缃戝叧鐨処P淇℃伅
                     updateGatewayList(gatewayBeanList, gateway);
-                    //闈炴悳绱㈢殑缃戝叧绫讳技杩斿洖
+                    //闈炴悳绱㈢殑缃戝叧绫诲瀷杩斿洖
                     if (spk.contains(gateway.getGatewayType())) {
                         //鏇存柊褰撳墠璇诲彇缃戝叧鐨勫垪琛紝杩欎釜鍒楄〃姣忔閮芥槸娓呯┖鍐嶈鍙�
                         updateGatewayList(tempGatewayBeanList, gateway);
@@ -726,7 +728,7 @@
                                       String topic, Object jObject, String sendPath, HDLLinkCallBack callBack) {
         GatewayBean gatewayBean = this.getLocalGateway(mac);
         if (gatewayBean == null) {
-            callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+            callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_FOUND_LOCALLY));
             return;
         }
         String topicSend = topic.replace("%s", gatewayBean.getOid());
@@ -760,6 +762,51 @@
     }
 
     /**
+     * 鍙戦�佹暟鎹埌Link缃戝叧
+     *
+     * @param mac      缃戝叧mac
+     * @param topic    璇锋眰涓婚
+     * @param jObject  璐熻浇鏁版嵁<娌℃湁濉玭ull></>
+     * @param sendPath 鍙戦�佽矾寰�<绫诲悕+鏂规硶鍚�>class->methodName</>
+     */
+    public void sendDataToLinkGateway(String mac,
+                                      String topic, Object jObject, String sendPath, HDLLinkCallBack callBack) {
+        GatewayBean gatewayBean = this.getLocalGateway(mac);
+        if (gatewayBean == null) {
+            callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_FOUND_LOCALLY));
+            return;
+        }
+        String topicSend = topic.replace("%s", gatewayBean.getOid());
+        //缁勮闇�瑕佸彂閫佺殑鏁版嵁
+        String sendStr = createSendData(jObject);
+//        LogUtils.i("sendDataToLinkGateway->" + sendPath + "->鏈湴鍙戦�乗r\n" + topicSend + "\r\n" + sendStr);
+        LinkRequest message = new LinkRequest(topicSend, sendStr, gatewayBean.getIsLocalEncrypt());
+        message.setCloudTopic(topic.replace("%s", gatewayBean.getGatewayId()));
+        new HDLConnectHelper(gatewayBean.getIp_address(), message, new HDLConnectHelper.HdlSocketListener() {
+            @Override
+            public void onSucceed(Object msg) {
+                if (callBack == null) return;
+                try {
+                    JSONObject jsonObject = new JSONObject(new Gson().toJson(msg));
+                    if (jsonObject.has("data")) {
+                        callBack.onSuccess(jsonObject.getString("data"));
+                    }
+                } catch (Exception e) {
+                    callBack.onSuccess(e.getMessage());
+                }
+//                LogUtils.i("sendDataToLinkGateway->"+sendPath+"->鏈湴鎺ユ敹鏁版嵁\r\n"+msg.toString());
+            }
+
+            @Override
+            public void onFailure(HDLLinkCode hdlLinkCode) {
+                if (callBack == null) return;
+                callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+//                LogUtils.i("sendDataToLinkGateway->" + sendPath + "->鏈湴鎺ユ敹鏁版嵁->澶辫触(-200)");
+            }
+        }, true, mac).send();
+    }
+
+    /**
      * 缁勮闇�瑕佸彂閫佺殑鏁版嵁
      *
      * @param jObject 璐熻浇鏁版嵁<娌℃湁濉玭ull>

--
Gitblit v1.8.0