From bdec7373b358239521703995c5220e995dee289c Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 05 三月 2020 14:20:42 +0800
Subject: [PATCH] 2020-03-05 1.增加简易编程搜索回复

---
 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java |  119 +++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 98 insertions(+), 21 deletions(-)

diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java
index f8ede67..0b21663 100644
--- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java
+++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java
@@ -66,30 +66,19 @@
     public static List<String> rcuIpList = new ArrayList<>();//缁熻Rcu ip鍦板潃鍒楄〃
     public static List<DevicesData> devicesDataList = new ArrayList<>();//缁熻鎼滅储鍒楄〃
     public static List<DevicesData> realDevicesDataList = new ArrayList<>();//缁熻鎼滅储鍒楄〃
-
-
     private static Context viewContext;
     public static List<ListRemarks> listRemarks = new ArrayList<>();
     public static List<RcuLight> rcuLightList = new ArrayList<>();
     public static List<RcuCurtain> rcuCurtainList = new ArrayList<>();
     public static boolean isLogicCtrl = false;
     public static ConcurrentHashMap<String, Boolean> ctrlSuccessStateHashMap = new ConcurrentHashMap<>();//2019-8-2
-
-//    public static byte[] air1Info = null;
-//    public static byte[] air2Info = null;
-//    public static byte[] air3Info = null;
-//    public static byte[] air4Info = null;
-    //        air4Info[寮�鍏崇姸鎬侊紝妯″紡锛岃缃俯搴︼紝椋庨�燂紝褰撳墠娓╁害锛屾槸鍚︽憜椋� ];
-
     public static boolean isGetRcuIpSuccess = false;
     public static boolean isGetDeviceStateSuccess = false; //鍒ゆ柇鑾峰彇璁惧鐘舵�佹槸鍚︽帶鍒舵垚鍔�
-
-//    public static boolean isLightCtrlSuccess = false; //鍒ゆ柇鐏厜鏄惁鎺у埗鎴愬姛
-//    public static boolean isCurtainCtrlSuccess = false; //鍒ゆ柇绐楀笜鏄惁鎺у埗鎴愬姛
-//    public static boolean isACCtrlSuccess = false; //鍒ゆ柇绌鸿皟鏄惁鎺у埗鎴愬姛
-//    public static boolean isSceneCtrlSuccess = false; //鍒ゆ柇鍦烘櫙鏄惁鎺у埗鎴愬姛
-//    public static boolean isFreshAirCtrlSuccess = false; //鍒ゆ柇鏂伴绯荤粺鏄惁鎺у埗鎴愬姛
-//    public static boolean isGeothermalCtrlSuccess = false; //鍒ゆ柇鍦扮儹妯″潡鏄惁鎺у埗鎴愬姛
+    //鏄惁鍏佽琚畝鏄撶紪绋嬫悳绱㈤儴鍒�
+    private static boolean isAllowEasyProgrammingSearch = false;//鏄惁鍏佽琚畝鏄撶紪绋嬫悳绱�
+    private static int SDKLocalBigClass = 9; //SDK 褰撳墠閰嶇疆妯℃嫙璁惧鐨勫ぇ绫伙紝榛樿涓洪煶涔愩�佽儗鏅煶涔愬姛鑳�
+    private static int SDKLocalSmallClass = 1; //SDK 褰撳墠閰嶇疆妯℃嫙璁惧鐨勫皬绫伙紝绗笁鏂硅儗鏅煶涔愭ā鍧�
+    private static String SDKLocalRemark = "鐗规畩璁惧"; //SDK 褰撳墠閰嶇疆妯℃嫙璁惧澶囨敞
 
 
     /**
@@ -100,12 +89,10 @@
     public static void init(Context context) {
         viewContext = context;
 //        HDLUdpCore.initMulticastSocket();
-
-
         HandleSearch.rcuIp = (String) SPUtils.getParam(context, SPUtils.KEY_RCU_IP_, "");
         Crc.localSubnetID = (int) SPUtils.getParam(context, SPUtils.KEY_SUB_ID_, 254);
         Crc.localDeviceID = (int) SPUtils.getParam(context, SPUtils.KEY_DEVICE_ID, 80);
-
+        SDKLocalRemark = (String) SPUtils.getParam(viewContext, SPUtils.KEY_LOCAL_REMARK, SPUtils.DEFAULT_REMARK);
 //        HandleSearch.curSearchMode = HandleSearch.GET_BUS_DEVICES;
 //        HDLUdpCore.initMulticastSocket6000();
     }
@@ -122,6 +109,32 @@
         HDLUdpCore.closeSocket6000();
     }
 
+    /**
+     * 閰嶇疆绠�鏄撶紪绋嬫悳绱㈣繑鍥炵殑榛樿鍙傛暟
+     * @param mSDKLocalBigClass
+     * @param mSDKLocalSmallClass
+     * @param mSDKLocalRemark
+     */
+    public static void setEasyProgrammingSearchLocalData(int mSDKLocalBigClass, int mSDKLocalSmallClass, String mSDKLocalRemark){
+        SDKLocalBigClass = mSDKLocalBigClass;
+        SDKLocalSmallClass = mSDKLocalSmallClass;
+        if(mSDKLocalRemark != null){
+            SDKLocalRemark = mSDKLocalRemark;
+        }
+        isAllowEasyProgrammingSearch = true;
+    }
+
+    public static void setEasyProgrammingSearchLocalData(int mSDKLocalBigClass, int mSDKLocalSmallClass){
+        setEasyProgrammingSearchLocalData(mSDKLocalBigClass, mSDKLocalSmallClass,null);
+    }
+
+    /**
+     * 璁剧疆鏄惁鍏佽琚畝鏄撶紪绋嬫悳绱�
+     * @param isAllow
+     */
+    public static void setIsAllowEasyProgrammingSearch(boolean isAllow){
+        isAllowEasyProgrammingSearch = isAllow;
+    }
 
     /**
      * 澶勭悊CommandData骞惰繑鍥炴悳绱㈡垨鎺у埗鐨勬湁鐢ㄤ俊鎭�
@@ -147,6 +160,10 @@
                         handleSearchData(getDatas);
                     }
                 }
+                break;
+            //绠�鏄撶紪绋嬭澶囨悳绱㈡搷浣滅爜銆佽澶囪鍙栨搷浣滅爜 鍥炲
+            case Configuration.DEVICES_SEARCH_COMMAND:
+                handleDeviceSearchBackData(getDatas);
                 break;
 //          鎺у埗璁惧
             case Configuration.LIGHT_CTRL_BACK_COMMAND:
@@ -279,6 +296,64 @@
 
 
     /**
+     * 鍥炲绠�鏄撶紪绋嬫悳绱㈤潪缃戠粶璁惧锛岃繑鍥炲綋鍓峉DK淇℃伅
+     *
+     * @param getDatas
+     */
+    private static void sendDeviceSearchBackInfo(UdpDataBean getDatas) {
+        byte[]  remarkByte = StringUtil.stringtoBytes(SDKLocalRemark);
+        byte[] addBytes = new byte[25];
+        addBytes[0] = getDatas.addBytes[0];
+        addBytes[1] = getDatas.addBytes[1];
+        System.arraycopy(remarkByte, 0, addBytes, 2, remarkByte.length > 20 ? 20 : remarkByte.length);
+        addBytes[22] = (byte) SDKLocalBigClass;
+        addBytes[23] = (byte) SDKLocalSmallClass;
+        addBytes[24] = (byte) 1;
+
+        HDLCommand.cusSendCommand(Configuration.DEVICES_SEARCH_BACK_COMMAND,
+                getDatas.sourceSubnetID,
+                getDatas.sourceDeviceID,
+                addBytes,
+                getDatas.port, getDatas.ipAddress);
+
+
+//        HDLCommand.cusSendCommand(Configuration.DEVICES_SEARCH_BACK_COMMAND,
+//                getDatas.sourceSubnetID,
+//                getDatas.sourceDeviceID,
+//                addBytes,
+//                getDatas.port,  NetWorkUtil.getLocalBroadCast());
+
+    }
+
+    /**
+     * 鏀跺埌绠�鏄撶紪绋嬫悳绱㈤潪缃戠粶璁惧
+     * @param getDatas
+     */
+    public static void handleDeviceSearchBackData(UdpDataBean getDatas){
+        //鍒ゆ柇鏄惁鍏佽琚畝鏄撶紪绋嬫悳绱㈠拰鍥炲
+        if(!isAllowEasyProgrammingSearch) return;
+
+        if (getDatas.addBytes.length == 2) {
+            sendDeviceSearchBackInfo(getDatas);
+        } else {
+
+            for (int i = 2, len = getDatas.addBytes.length; i < len; i++) {
+                if (i % 2 == 0) {
+                    if ((getDatas.addBytes[i] & 0xFF) == Crc.localSubnetID
+                            && (getDatas.addBytes[i + 1] & 0xFF) ==  Crc.localDeviceID
+                    ) {
+                        sendDeviceSearchBackInfo(getDatas);
+                        break;
+                    }
+                }
+            }
+        }
+
+    }
+
+
+
+    /**
      * 澶勭悊RCU鎼滅储鏁版嵁
      *
      * @param getDatas
@@ -342,9 +417,9 @@
         }
 
         byte[] remarkByte;
-        String remarkString = (String) SPUtils.getParam(viewContext, SPUtils.KEY_LOCAL_REMARK, SPUtils.DEFAULT_REMARK);
+//        String remarkString = (String) SPUtils.getParam(viewContext, SPUtils.KEY_LOCAL_REMARK, SPUtils.DEFAULT_REMARK);
 
-        remarkByte = StringUtil.stringtoBytes(remarkString);
+        remarkByte = StringUtil.stringtoBytes(SDKLocalRemark);
 
         byte[] addBytes = new byte[53];
         addBytes[0] = getDatas.addBytes[0];
@@ -2540,4 +2615,6 @@
     }
 
 
+
+
 }

--
Gitblit v1.8.0