From d451118d4be05f180cfe1f99bc5904f74db8cc3f Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期四, 22 二月 2024 15:40:58 +0800
Subject: [PATCH] 引用线上库

---
 HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/HDLLinkLocalSdk.java |  839 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 835 insertions(+), 4 deletions(-)

diff --git a/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/HDLLinkLocalSdk.java b/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/HDLLinkLocalSdk.java
index b308e0b..c2bddca 100644
--- a/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/HDLLinkLocalSdk.java
+++ b/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/HDLLinkLocalSdk.java
@@ -2,6 +2,7 @@
 
 import android.content.Context;
 import android.text.TextUtils;
+import android.widget.Toast;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -10,9 +11,11 @@
 import com.google.gson.JsonObject;
 import com.google.gson.reflect.TypeToken;
 import com.hdl.sdk.link.bean.GatewayLocationBean;
+import com.hdl.sdk.link.bean.LinkGroupControlCreateBean;
 import com.hdl.sdk.link.bean.LinkIrDeviceBean;
 import com.hdl.sdk.link.bean.LinkOtaBean;
 import com.hdl.sdk.link.bean.LinkSidNameBean;
+import com.hdl.sdk.link.bean.MMWAreaBean;
 import com.hdl.sdk.link.common.config.TopicConstant;
 import com.hdl.sdk.link.common.exception.HDLLinkCode;
 import com.hdl.sdk.link.common.exception.HDLLinkException;
@@ -91,7 +94,7 @@
         return instance;
     }
 
-    private Context context;
+    private static Context context;
 
 
     public void init(Context context) {
@@ -118,6 +121,26 @@
             return true;
         else
             return false;
+    }
+
+    public static void showToast(String msg){
+//        runOnUiThread(new Runnable() {
+//            @Override
+//            public void run() {
+//                try {
+//                    if (toast == null) {
+//                        toast = Toast.makeText(HDLGlobal.getInstance().getContext(), message, Toast.LENGTH_SHORT);
+//                    } else {
+//                        toast.setText(message);
+//                    }
+//                    toast.show();
+//                } catch (Exception ignored) {
+//
+//                }
+//            }
+//
+//        });
+        Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
     }
 
     /**
@@ -233,6 +256,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -277,6 +301,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -321,6 +346,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -365,6 +391,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -407,6 +434,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -417,6 +445,39 @@
                 callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
             }
         }
+    }
+
+    public void controlDevice(Object object, String gatewayId, String ipAddress, String mac, boolean encrypt, HDLLinkTCallBack<String> callBack) {
+        if (null == callBack) {
+            return;
+        }
+
+        String time = String.valueOf(System.currentTimeMillis());
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("id", IdUtils.getUUId());
+        jsonObject.put("time_stamp", time);
+        List<Object> stringList = new ArrayList<>();
+        stringList.add(object);
+        jsonObject.put("objects", stringList);
+        String topic = String.format(TopicConstant.PROPERTY_DOWN, gatewayId);
+        LinkRequest request = new LinkRequest(topic, jsonObject.toString(), encrypt);
+        new HDLConnectHelper(ipAddress, request, new HDLConnectHelper.HdlSocketListener() {
+            @Override
+            public void onSucceed(Object msg) {
+                if (msg instanceof LinkResponse) {
+                    LogUtils.i("controlDevice onSuccess");
+                    callBack.onSuccess("");
+                }
+            }
+
+            @Override
+            public void onFailure(HDLLinkCode hdlLinkCode) {
+                //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+                if (callBack != null) {
+                    callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                }
+            }
+        }, true, mac).send();
     }
 
     /**
@@ -448,6 +509,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -489,6 +551,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -528,6 +591,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -538,6 +602,36 @@
                 callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
             }
         }
+    }
+
+    public void sidNameChange(List<LinkSidNameBean> bean, String gatewayId, String ipaddress, boolean isLocalEncrypt, HDLLinkTCallBack<String> callBack) {
+        if (null == callBack) {
+            return;
+        }
+        String time = String.valueOf(System.currentTimeMillis());
+        final BaseLocalResponse<List<LinkSidNameBean>> data = new BaseLocalResponse<>();
+        data.setId(IdUtils.getUUId());
+        data.setTime_stamp(time);
+        data.setObjects(bean);
+        String topic = String.format(TopicConstant.EDIT_FUNCTION, gatewayId);
+        LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), isLocalEncrypt);
+        new HDLConnectHelper(ipaddress, request, new HDLConnectHelper.HdlSocketListener() {
+            @Override
+            public void onSucceed(Object msg) {
+                if (msg instanceof LinkResponse) {
+                    LogUtils.i("sidNameChange onSuccess");
+                    callBack.onSuccess("");
+                }
+            }
+
+            @Override
+            public void onFailure(HDLLinkCode hdlLinkCode) {
+                //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+                if (callBack != null) {
+                    callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                }
+            }
+        }, true).send();
     }
 
     /**
@@ -567,6 +661,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -577,6 +672,39 @@
                 callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
             }
         }
+    }
+
+    /**
+     * sid缁戝畾鎴块棿
+     */
+    public void sidBindUid(List<LinkSidUidBean> bean, String gatewayId, String ipaddress, boolean isLocalEncrypt, HDLLinkTCallBack<String> callBack) {
+        if (null == callBack) {
+            return;
+        }
+        String time = String.valueOf(System.currentTimeMillis());
+        final BaseLocalResponse<List<LinkSidUidBean>> data = new BaseLocalResponse<>();
+        data.setId(IdUtils.getUUId());
+        data.setTime_stamp(time);
+        data.setObjects(bean);
+        String topic = String.format(TopicConstant.SID_BIND_ROOM, gatewayId);
+        LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), isLocalEncrypt);
+        new HDLConnectHelper(ipaddress, request, new HDLConnectHelper.HdlSocketListener() {
+            @Override
+            public void onSucceed(Object msg) {
+                if (msg instanceof LinkResponse) {
+                    LogUtils.i("sidBindUid onSuccess");
+                    callBack.onSuccess("Success");
+                }
+            }
+
+            @Override
+            public void onFailure(HDLLinkCode hdlLinkCode) {
+                //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+                if (callBack != null) {
+                    callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                }
+            }
+        }, true).send();
     }
 
     /**
@@ -606,6 +734,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -645,6 +774,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -685,6 +815,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -725,6 +856,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -773,6 +905,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -813,6 +946,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -862,6 +996,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -913,6 +1048,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -953,6 +1089,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -993,6 +1130,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1033,6 +1171,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1076,6 +1215,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1120,6 +1260,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1164,6 +1305,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1208,6 +1350,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1262,6 +1405,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1315,6 +1459,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1368,6 +1513,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1409,6 +1555,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1450,6 +1597,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1491,6 +1639,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1543,6 +1692,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1595,6 +1745,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1636,6 +1787,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1697,6 +1849,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1741,6 +1894,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1754,6 +1908,230 @@
         }
 
     }
+
+    /**
+     * 鏈嶅姟璋冪敤
+     *
+     * @param topic    涓婚
+     * @param callBack 鍥炶皟
+     */
+    public void serviceDown(String topic, JSONArray jsonArray, String ipAddress, boolean encrypt, HDLLinkCallBack callBack) {
+        if (null == callBack) {
+            return;
+        }
+
+        String time = String.valueOf(System.currentTimeMillis());
+        final BaseLocalResponse<JSONArray> data = new BaseLocalResponse<>();
+        data.setId(IdUtils.getUUId());
+        data.setTime_stamp(time);
+        data.setObjects(jsonArray);
+
+        LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), encrypt);
+        new HDLConnectHelper(ipAddress, request, new HDLConnectHelper.HdlSocketListener() {
+            @Override
+            public void onSucceed(Object msg) {
+                if (msg instanceof LinkResponse) {
+                    LogUtils.i("propertyRead onSuccess");
+                    callBack.onSuccess(msg.toString());
+                }
+            }
+
+            @Override
+            public void onFailure(HDLLinkCode hdlLinkCode) {
+                //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+
+                if (callBack != null) {
+                    callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                }
+            }
+        }, true).send();
+    }
+
+    /**
+     * 鏈嶅姟璋冪敤
+     *
+     * @param topic    涓婚
+     * @param callBack 鍥炶皟
+     */
+    public void serviceDown(String topic, JSONArray jsonArray, HDLLinkCallBack callBack) {
+        if (null == callBack) {
+            return;
+        }
+        String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
+
+        if (!TextUtils.isEmpty(gatewayId)) {
+            String time = String.valueOf(System.currentTimeMillis());
+            final BaseLocalResponse<JSONArray> data = new BaseLocalResponse<>();
+            data.setId(IdUtils.getUUId());
+            data.setTime_stamp(time);
+            data.setObjects(jsonArray);
+
+            LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
+            new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
+                @Override
+                public void onSucceed(Object msg) {
+                    if (msg instanceof LinkResponse) {
+                        LogUtils.i("propertyRead onSuccess");
+                        callBack.onSuccess(msg.toString());
+                    }
+                }
+
+                @Override
+                public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+
+                    if (callBack != null) {
+                        callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                    }
+                }
+            }, true).send();
+        } else {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
+            }
+        }
+    }
+
+
+    /**
+     * 鏈嶅姟鐘舵�佽幏鍙�
+     *
+     * @param topic    涓婚
+     * @param callBack 鍥炶皟
+     */
+    public void serviceRead(String topic, JSONArray jsonArray, String ipAddress, boolean encrypt, HDLLinkCallBack callBack) {
+        if (null == callBack) {
+            return;
+        }
+        String time = String.valueOf(System.currentTimeMillis());
+        final BaseLocalResponse<JSONArray> data = new BaseLocalResponse<>();
+        data.setId(IdUtils.getUUId());
+        data.setTime_stamp(time);
+        data.setObjects(jsonArray);
+
+        LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), encrypt);
+        new HDLConnectHelper(ipAddress, request, new HDLConnectHelper.HdlSocketListener() {
+            @Override
+            public void onSucceed(Object msg) {
+                if (msg instanceof LinkResponse) {
+                    LogUtils.i("propertyRead onSuccess");
+                    callBack.onSuccess(msg.toString());
+                }
+            }
+
+            @Override
+            public void onFailure(HDLLinkCode hdlLinkCode) {
+                //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+
+                if (callBack != null) {
+                    callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                }
+            }
+        }, true).send();
+    }
+
+    /**
+     * 鏈嶅姟鐘舵�佽幏鍙�
+     *
+     * @param topic    涓婚
+     * @param callBack 鍥炶皟
+     */
+    public void serviceRead(String topic, JSONArray jsonArray, HDLLinkCallBack callBack) {
+        if (null == callBack) {
+            return;
+        }
+        String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
+
+        if (!TextUtils.isEmpty(gatewayId)) {
+            String time = String.valueOf(System.currentTimeMillis());
+            final BaseLocalResponse<JSONArray> data = new BaseLocalResponse<>();
+            data.setId(IdUtils.getUUId());
+            data.setTime_stamp(time);
+            data.setObjects(jsonArray);
+
+            LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
+            new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
+                @Override
+                public void onSucceed(Object msg) {
+                    if (msg instanceof LinkResponse) {
+                        LogUtils.i("propertyRead onSuccess");
+                        callBack.onSuccess(msg.toString());
+                    }
+                }
+
+                @Override
+                public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+
+                    if (callBack != null) {
+                        callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                    }
+                }
+            }, true).send();
+        } else {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
+            }
+        }
+    }
+
+    /**
+     * 鑾峰彇姣背娉㈠尯鍩�
+     *
+     * @param sid      璇锋眰鍙傛暟 鎸囧畾璇诲彇鐨勮澶噑id
+     * @param callBack 鍥炶皟
+     */
+    public void getMillimeterArea(String sid, HDLLinkTCallBack<List<MMWAreaBean>> callBack) {
+        if (null == callBack) {
+            return;
+        }
+        String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
+
+        if (!TextUtils.isEmpty(gatewayId)) {
+            String time = String.valueOf(System.currentTimeMillis());
+            final BaseLocalResponse<List<PropertyReadRequest>> data = new BaseLocalResponse<>();
+            data.setId(IdUtils.getUUId());
+            data.setTime_stamp(time);
+
+            List<PropertyReadRequest> list = new ArrayList<>();
+            list.add(new PropertyReadRequest(sid));
+            data.setObjects(list);
+
+            String topic = String.format(TopicConstant.MMW_AREA_GET, gatewayId);
+
+            LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
+            new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
+                @Override
+                public void onSucceed(Object msg) {
+                    if (msg instanceof LinkResponse) {
+                        LogUtils.i("propertyRead onSuccess");
+                        Type type = new TypeToken<BaseLocalResponse<List<MMWAreaBean>>>() {
+                        }.getType();
+                        List<MMWAreaBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
+                        if (list == null) {
+                            callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
+                        } else {
+                            callBack.onSuccess(list);
+                        }
+                    }
+                }
+
+                @Override
+                public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+
+                    if (callBack != null) {
+                        callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                    }
+                }
+            }, true).send();
+        } else {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
+            }
+        }
+    }
+
 
     /**
      * 璇诲彇鐘舵��
@@ -1787,12 +2165,20 @@
                 public void onSucceed(Object msg) {
                     if (msg instanceof LinkResponse) {
                         LogUtils.i("propertyRead onSuccess");
-                        callBack.onSuccess(msg.toString());
+                        Type type = new TypeToken<BaseLocalResponse<String>>() {
+                        }.getType();
+                        String list = LinkResponseUtils.convertLinkResponse(msg, type);
+                        if (list == null) {
+                            callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
+                        } else {
+                            callBack.onSuccess(list);
+                        }
                     }
                 }
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1804,6 +2190,58 @@
                 callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
             }
         }
+    }
+
+    /**
+     * 璇诲彇鐘舵��
+     *
+     * @param sids     璇锋眰鍙傛暟 鎸囧畾璇诲彇鐨勮澶噑id鍒楄〃
+     * @param callBack 鍥炶皟
+     */
+    public void propertyRead(List<String> sids, String gatewayId, String ipAddress, String mac, boolean encrypt, HDLLinkCallBack callBack) {
+        if (null == callBack) {
+            return;
+        }
+
+        String time = String.valueOf(System.currentTimeMillis());
+        final BaseLocalResponse<List<PropertyReadRequest>> data = new BaseLocalResponse<>();
+        data.setId(IdUtils.getUUId());
+        data.setTime_stamp(time);
+
+        List<PropertyReadRequest> list = new ArrayList<>();
+        for (String s : sids) {
+            list.add(new PropertyReadRequest(s));
+        }
+        data.setObjects(list);
+
+        String topic = String.format(TopicConstant.PROPERTY_READ, gatewayId);
+
+        LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), encrypt);
+        new HDLConnectHelper(ipAddress, request, new HDLConnectHelper.HdlSocketListener() {
+            @Override
+            public void onSucceed(Object msg) {
+                if (msg instanceof LinkResponse) {
+                    LogUtils.i("propertyRead onSuccess");
+                    Type type = new TypeToken<BaseLocalResponse<String>>() {
+                    }.getType();
+                    String list = LinkResponseUtils.convertLinkResponse(msg, type);
+                    if (list == null) {
+                        callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
+                    } else {
+                        callBack.onSuccess(list);
+                    }
+                }
+            }
+
+            @Override
+            public void onFailure(HDLLinkCode hdlLinkCode) {
+                //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+
+                if (callBack != null) {
+                    callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                }
+            }
+        }, true, mac).send();
     }
 
     /**
@@ -1845,6 +2283,105 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+
+                    if (callBack != null) {
+                        callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                    }
+                }
+            }, true).send();
+        } else {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
+            }
+        }
+    }
+
+    public void getSceneListaa(HDLLinkTCallBack<List<LinkSceneBean>> callBack) {
+        if (null == callBack) {
+            return;
+        }
+
+        if (!TextUtils.isEmpty("18FE8588AC73E526")) {
+            String time = String.valueOf(System.currentTimeMillis());
+            JsonObject jsonObject = new JsonObject();
+            jsonObject.addProperty("id", IdUtils.getUUId());
+            jsonObject.addProperty("time_stamp", time);
+
+            String topic = String.format(TopicConstant.SCENE_LIST_GET, "18FE8588AC73E526");
+
+            LinkRequest request = new LinkRequest(topic, jsonObject.toString(), HDLLinkConfig.getInstance().isLocalEncrypt());
+            new HDLConnectHelper("192.168.1.100", request, new HDLConnectHelper.HdlSocketListener() {
+                @Override
+                public void onSucceed(Object msg) {
+                    if (msg instanceof LinkResponse) {
+                        LogUtils.i("getSceneList onSuccess");
+                        if (callBack != null) {
+                            Type type = new TypeToken<BaseLocalResponse<List<LinkSceneBean>>>() {
+                            }.getType();
+                            List<LinkSceneBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
+                            if (list == null) {
+                                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
+                            } else {
+                                callBack.onSuccess(list);
+                            }
+
+                        }
+                    }
+                }
+
+                @Override
+                public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+
+                    if (callBack != null) {
+                        callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                    }
+                }
+            }, true).send();
+        } else {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
+            }
+        }
+    }
+
+    public void getSceneListAiks(GatewayBean bean, HDLLinkTCallBack<List<LinkSceneBean>> callBack) {
+        if (null == callBack) {
+            return;
+        }
+
+        if (!TextUtils.isEmpty(bean.getDevice_mac())) {
+            String time = String.valueOf(System.currentTimeMillis());
+            JsonObject jsonObject = new JsonObject();
+            jsonObject.addProperty("id", IdUtils.getUUId());
+            jsonObject.addProperty("time_stamp", time);
+
+            String topic = String.format(TopicConstant.SCENE_LIST_GET, bean.getDevice_mac());
+
+            LinkRequest request = new LinkRequest(topic, jsonObject.toString(), false);
+            new HDLConnectHelper(bean.getIp_address(), request, new HDLConnectHelper.HdlSocketListener() {
+                @Override
+                public void onSucceed(Object msg) {
+                    if (msg instanceof LinkResponse) {
+                        LogUtils.i("getSceneList onSuccess");
+                        if (callBack != null) {
+                            Type type = new TypeToken<BaseLocalResponse<List<LinkSceneBean>>>() {
+                            }.getType();
+                            List<LinkSceneBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
+                            if (list == null) {
+                                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
+                            } else {
+                                callBack.onSuccess(list);
+                            }
+
+                        }
+                    }
+                }
+
+                @Override
+                public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1896,6 +2433,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1944,6 +2482,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -1956,6 +2495,244 @@
             }
         }
     }
+
+    /**
+     * 鍦烘櫙鎺у埗
+     *
+     * @param sids     鍦烘櫙sid鍒楄〃
+     * @param callBack 鍥炶皟
+     */
+    public void controlAiksScene(GatewayBean bean, List<String> sids, HDLLinkCallBack callBack) {
+        if (null == callBack) {
+            return;
+        }
+        String device_mac = bean.getDevice_mac();
+        if (!TextUtils.isEmpty(device_mac)) {
+            String time = String.valueOf(System.currentTimeMillis());
+            final BaseLocalResponse<List<PropertyReadRequest>> data = new BaseLocalResponse<>();
+            data.setId(IdUtils.getUUId());
+            data.setTime_stamp(time);
+
+            List<PropertyReadRequest> list = new ArrayList<>();
+            for (String s : sids) {
+                list.add(new PropertyReadRequest(s));
+            }
+            data.setObjects(list);
+            String topic = String.format(TopicConstant.SCENE_CONTROL, device_mac);
+            LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), false);
+            new HDLConnectHelper(bean.getIp_address(), request, new HDLConnectHelper.HdlSocketListener() {
+                @Override
+                public void onSucceed(Object msg) {
+                    if (msg instanceof LinkResponse) {
+                        LogUtils.i("controlScene onSuccess");
+                        callBack.onSuccess(msg.toString());
+                    }
+                }
+
+                @Override
+                public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+
+                    if (callBack != null) {
+                        callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                    }
+                }
+            }, true).send();
+        } else {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
+            }
+        }
+    }
+
+    /**
+     * 缇ゆ帶澧炲垹
+     */
+    public void groupControlEdit(List<LinkGroupControlCreateBean> list, HDLLinkCallBack callBack) {
+        if (null == callBack) {
+            return;
+        }
+        String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
+
+        if (!TextUtils.isEmpty(gatewayId)) {
+            String time = String.valueOf(System.currentTimeMillis());
+            final BaseLocalResponse<List<LinkGroupControlCreateBean>> data = new BaseLocalResponse<>();
+            data.setId(IdUtils.getUUId());
+            data.setTime_stamp(time);
+            data.setObjects(list);
+            String topic = String.format(TopicConstant.GROUPCONTROL_EDIT, gatewayId);
+
+            LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
+            new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
+                @Override
+                public void onSucceed(Object msg) {
+                    if (msg instanceof LinkResponse) {
+                        LogUtils.i("getSceneDetail onSuccess");
+                        if (callBack != null) {
+                            callBack.onSuccess(msg.toString());
+                        }
+                    }
+                }
+
+                @Override
+                public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+                    if (callBack != null) {
+                        callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                    }
+                }
+            }, true).send();
+        } else {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
+            }
+        }
+    }
+
+    /**
+     * 缇ゆ帶鎺у埗
+     */
+    public void groupControlControl(JSONObject object, HDLLinkCallBack callBack) {
+        if (null == callBack) {
+            return;
+        }
+        String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
+
+        if (!TextUtils.isEmpty(gatewayId)) {
+            String time = String.valueOf(System.currentTimeMillis());
+            final BaseLocalResponse<List<JSONObject>> data = new BaseLocalResponse<>();
+            data.setId(IdUtils.getUUId());
+            data.setTime_stamp(time);
+            List<JSONObject> objectList = new ArrayList<>();
+            objectList.add(object);
+            data.setObjects(objectList);
+            String topic = String.format(TopicConstant.GROUPCONTROL_CONTROL, gatewayId);
+
+            LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
+            new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
+                @Override
+                public void onSucceed(Object msg) {
+                    if (msg instanceof LinkResponse) {
+                        LogUtils.i("getSceneDetail onSuccess");
+                        if (callBack != null) {
+                            callBack.onSuccess(msg.toString());
+                        }
+                    }
+                }
+
+                @Override
+                public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+                    if (callBack != null) {
+                        callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                    }
+                }
+            }, true).send();
+        } else {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
+            }
+        }
+    }
+
+    /**
+     * 缇ゆ帶鍒犻櫎
+     */
+    public void groupControlDelete(JSONObject object, HDLLinkCallBack callBack) {
+        if (null == callBack) {
+            return;
+        }
+        String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
+
+        if (!TextUtils.isEmpty(gatewayId)) {
+            String time = String.valueOf(System.currentTimeMillis());
+            final BaseLocalResponse<List<JSONObject>> data = new BaseLocalResponse<>();
+            data.setId(IdUtils.getUUId());
+            data.setTime_stamp(time);
+            List<JSONObject> objectList = new ArrayList<>();
+            objectList.add(object);
+            data.setObjects(objectList);
+            String topic = String.format(TopicConstant.GROUPCONTROL_DELETE, gatewayId);
+
+            LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
+            new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
+                @Override
+                public void onSucceed(Object msg) {
+                    if (msg instanceof LinkResponse) {
+                        LogUtils.i("getSceneDetail onSuccess");
+                        if (callBack != null) {
+                            callBack.onSuccess(msg.toString());
+                        }
+                    }
+                }
+
+                @Override
+                public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+                    if (callBack != null) {
+                        callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                        HDLLinkLocalSdk.showToast(hdlLinkCode.getMsg());
+                    }
+                }
+            }, true).send();
+        } else {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
+            }
+        }
+    }
+
+    /**
+     * 缇ゆ帶鍒楄〃鑾峰彇
+     */
+    public void getGroupControlList(List<JSONObject> list, HDLLinkTCallBack<List<LinkGroupControlCreateBean>> callBack) {
+        if (null == callBack) {
+            return;
+        }
+        String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
+
+        if (!TextUtils.isEmpty(gatewayId)) {
+            String time = String.valueOf(System.currentTimeMillis());
+            final BaseLocalResponse<List<JSONObject>> data = new BaseLocalResponse<>();
+            data.setId(IdUtils.getUUId());
+            data.setTime_stamp(time);
+            data.setObjects(list);
+            String topic = String.format(TopicConstant.GROUPCONTROL_LIST_GET, gatewayId);
+
+            LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(data), HDLLinkConfig.getInstance().isLocalEncrypt());
+            new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
+                @Override
+                public void onSucceed(Object msg) {
+                    if (msg instanceof LinkResponse) {
+                        LogUtils.i("getSceneDetail onSuccess");
+                        if (callBack != null) {
+                            Type type = new TypeToken<BaseLocalResponse<List<LinkGroupControlCreateBean>>>() {
+                            }.getType();
+                            List<LinkGroupControlCreateBean> list = LinkResponseUtils.convertLinkResponse(msg, type);
+                            if (list == null) {
+                                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_PARSING_ERROR));
+                            } else {
+                                callBack.onSuccess(list);
+                            }
+                        }
+                    }
+                }
+
+                @Override
+                public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+                    if (callBack != null) {
+                        callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                    }
+                }
+            }, true).send();
+        } else {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
+            }
+        }
+    }
+
 
     /**
      * 閫氱敤UDP鍙戦�佹寚浠�
@@ -2038,10 +2815,13 @@
      *
      * @param callBack 鍥炶皟鎵�鏈夎鍙栧埌鐨勭綉鍏冲垪琛�
      */
+    public void refreshGateway(GatewayCallBack callBack) {
+        HDLLinkLocalGateway.getInstance().refreshGateway(callBack);
+    }
+
     public void refreshGateway(GatewayCallBack callBack,List<String> spks) {
         HDLLinkLocalGateway.getInstance().refreshGateway(callBack,spks);
     }
-
     /**
      * 鑾峰彇褰撳墠浣忓畢缂撳瓨鐨勬墍鏈夌綉鍏筹紝涓�鑸槸璋冭瘯杞欢浣跨敤锛屼笁鏂逛笉鐢ㄨ皟璇曟鏂规硶
      * 濡傛灉涔嬪墠杩樻病鏈夎鍙栬繃缃戝叧锛屽厛璋冪敤鏂规硶refreshGatewayByHome璇诲彇涓�娆�
@@ -2090,6 +2870,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -2133,6 +2914,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -2145,6 +2927,51 @@
             }
         }
     }
+
+    /**
+     * 鍏ㄩ噺鏇存柊鎴块棿鍒楄〃
+     *
+     * @param callBack
+     */
+    public void getGatewaylist(HDLLinkCallBack callBack) {
+        if (null == callBack) {
+            return;
+        }
+        String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
+        if (!TextUtils.isEmpty(gatewayId)) {
+            String time = String.valueOf(System.currentTimeMillis());
+            final BaseLocalResponse<JSONObject> senData = new BaseLocalResponse<>();
+            senData.setId(IdUtils.getUUId());
+            senData.setTime_stamp(time);
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("device_mac", "0C811A93EA13F1F5");
+            senData.setObjects(jsonObject);
+            String topic = String.format(TopicConstant.GATEWAY_INFO, gatewayId);
+            LinkRequest request = new LinkRequest(topic, GsonConvert.getGson().toJson(senData), HDLLinkConfig.getInstance().isLocalEncrypt());
+            new HDLConnectHelper(HDLLinkConfig.getInstance().getIpAddress(), request, new HDLConnectHelper.HdlSocketListener() {
+                @Override
+                public void onSucceed(Object msg) {
+                    if (msg instanceof LinkResponse) {
+                        callBack.onSuccess(msg.toString());
+                    }
+                }
+
+                @Override
+                public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
+
+                    if (callBack != null) {
+                        callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
+                    }
+                }
+            }, true).send();
+        } else {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_NOT_EXIST));
+            }
+        }
+    }
+
 
     /**
      * 鑾峰彇鎴块棿缁戝畾鍏崇郴
@@ -2185,6 +3012,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
 
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
@@ -2230,6 +3058,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -2272,6 +3101,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }
@@ -2287,7 +3117,7 @@
     /**
      * 鍒氬垰缁戝畾缃戝叧鐨勬椂鍊欒缃綉鍏崇粡绾害  涓嶉渶瑕佸姞瀵�
      */
-    public void gatewayLocation(String mGatewayId, String longitude, String lat, boolean isEncrypt,HDLLinkTCallBack<String> callBack) {
+    public void gatewayLocation(String mGatewayId, String longitude, String lat, boolean isEncrypt, HDLLinkTCallBack<String> callBack) {
         if (null == callBack) {
             return;
         }
@@ -2314,6 +3144,7 @@
 
                 @Override
                 public void onFailure(HDLLinkCode hdlLinkCode) {
+                    //HDLExceptionSubmitUtils.submit(topic, request, HDLLinkCopyException.getErrorWithCode(hdlLinkCode.getCode(), hdlLinkCode.getMsg()));
                     if (callBack != null) {
                         callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode));
                     }

--
Gitblit v1.8.0