From e91af284643d5e370b0d18c384fe8de65f59d9b3 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 24 九月 2020 12:01:10 +0800
Subject: [PATCH] 2020-09-24 1.修改MQTTSDK引用方式,修复闪退问题。

---
 Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommandText.java      |  314 ++++++++--------
 Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLZigbeeMqtt.java       |   50 +-
 Android_HDL_SDK_XW/app/build.gradle                                                                          |    6 
 Android_HDL_SDK_XW/build.gradle                                                                              |    9 
 Android_HDL_SDK_XW/hdl_core/build.gradle                                                                     |   59 +-
 org.eclipse.paho.client.mqttv3-1.2.0.jar                                                                     |    0 
 /dev/null                                                                                                    |   17 
 Android_HDL_SDK_XW/hdl_core/proguard-rules.pro                                                               |    3 
 Android_HDL_SDK_XW/README.md                                                                                 |   63 ---
 Android_HDL_SDK_XW/app/libs/HDL_ZigBeeSDK_V1.0.1.B1.20200923.aar                                             |    0 
 Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/SearchZigbeeGateway.java |  191 +++++-----
 Android_HDL_SDK_XW/gradle/wrapper/gradle-wrapper.properties                                                  |    2 
 Android_HDL_SDK_XW/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlActivity.java                          |   75 +--
 Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java          |  294 +++++++-------
 org.eclipse.paho.client.mqttv3-1.2.5.jar                                                                     |    0 
 打包aar/2020-09-23/HDL_ZigBeeSDK_V1.0.1.B1.20200923.aar                                                        |    0 
 Android_HDL_SDK_XW/.idea/jarRepositories.xml                                                                 |   50 ++
 17 files changed, 549 insertions(+), 584 deletions(-)

diff --git a/Android_HDL_SDK_XW/.idea/encodings.xml b/Android_HDL_SDK_XW/.idea/encodings.xml
deleted file mode 100644
index 15a15b2..0000000
--- a/Android_HDL_SDK_XW/.idea/encodings.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Encoding" addBOMForNewFiles="with NO BOM" />
-</project>
\ No newline at end of file
diff --git a/Android_HDL_SDK_XW/.idea/jarRepositories.xml b/Android_HDL_SDK_XW/.idea/jarRepositories.xml
new file mode 100644
index 0000000..b50f2da
--- /dev/null
+++ b/Android_HDL_SDK_XW/.idea/jarRepositories.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RemoteRepositoriesConfiguration">
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="MavenRepo" />
+      <option name="name" value="MavenRepo" />
+      <option name="url" value="https://repo.maven.apache.org/maven2/" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="maven" />
+      <option name="name" value="maven" />
+      <option name="url" value="https://maven.google.com" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="BintrayJCenter" />
+      <option name="name" value="BintrayJCenter" />
+      <option name="url" value="https://jcenter.bintray.com/" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="Google" />
+      <option name="name" value="Google" />
+      <option name="url" value="https://dl.google.com/dl/android/maven2/" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="$USER_HOME$/Library/Android/sdk/extras/google/m2repository" />
+      <option name="name" value="$USER_HOME$/Library/Android/sdk/extras/google/m2repository" />
+      <option name="url" value="file:$USER_HOME$/Library/Android/sdk/extras/google/m2repository" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository" />
+      <option name="name" value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository" />
+      <option name="url" value="file:$USER_HOME$/Library/Android/sdk/extras/android/m2repository/" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="$USER_HOME$/Library/Android/sdk/extras/m2repository" />
+      <option name="name" value="$USER_HOME$/Library/Android/sdk/extras/m2repository" />
+      <option name="url" value="file:$USER_HOME$/Library/Android/sdk/extras/m2repository" />
+    </remote-repository>
+  </component>
+</project>
\ No newline at end of file
diff --git a/Android_HDL_SDK_XW/README.md b/Android_HDL_SDK_XW/README.md
index 1e3026a..20a716b 100644
--- a/Android_HDL_SDK_XW/README.md
+++ b/Android_HDL_SDK_XW/README.md
@@ -2,66 +2,7 @@
 
 HDL XW Android SDK  Copyright (c) 2019 HDL Inc.
 
-SDK 鐗堟湰锛歨dl_lib_v1.6.9.20200316_beta
-1.澧炲姞灏忕被鏄�3鐨勯煶涔愭挱鏀惧櫒鏀寔;
-2.鍔犲湴鐑ā鍧楀崟鐙帶鍒舵俯搴︽帴鍙o紝鎺ュ彛鑷姩鏍规嵁褰撳墠妯″紡璁剧疆褰撳墠妯″紡鐨勬俯搴﹀弬鏁帮紝涓嶉渶瑕佷笂灞傝嚜宸卞垽鏂�;(HDLCommand.geothermalCtrlTemp())
-3.澧炲姞绠�鏄撶紪绋嬫悳绱㈠洖澶�,閫氳繃閰嶇疆澶х被灏忕被锛岃澹板繀鍙澶囨ā鎷熸垚绗笁鏂归煶涔愭挱鏀惧櫒琚悳绱� ;
-//閰嶇疆绠�鏄撶紪绋嬫悳绱㈢殑鍙傛暟 (SDK 鍒濆鍖栫殑鏃跺�欓厤缃竴娆�)
-/**
- * 閰嶇疆绠�鏄撶紪绋嬫悳绱㈣繑鍥炵殑榛樿鍙傛暟
- * @param mSDKLocalBigClass 澶х被ID
- * @param mSDKLocalSmallClass 灏忕被ID
- * @param mSDKLocalRemark 澶囨敞
- */
-public static void setEasyProgrammingSearchLocalData(int mSDKLocalBigClass, int mSDKLocalSmallClass, String mSDKLocalRemark);
-澹板繀鍙澶噑etEasyProgrammingSearchLocalData(9,1,"澹板繀鍙煶涔�");
-
-鍘熷湴鐑搴斿叧绯�  
-HDL 澹板繀鍙�
-鏅�� 鑷姩
-鐧藉ぉ 鎵嬪姩
-绂诲紑 浼戠湢
-2020-03-15 淇敼涓�
-HDL 澹板繀鍙�
-鏅�� 鎵嬪姩
-鐧藉ぉ 鑷姩
-绂诲紑 浼戠湢
-
-SDK 鐗堟湰锛歨dl_lib_v1.6.9.20200118_beta
-1.淇RCU娣峰悎璋冨厜娣峰悎寮�鍏� 绫绘ā鍧楋紝浣跨敤鐗╃悊鍥炶矾闂;
-2.澧炲姞榛樿鑾峰彇WiFi杩炴帴鐨勫箍鎾厤缃柟娉�;
-
-
-SDK 鐗堟湰锛歨dl_lib_v1.6.8.20191016_beta
-1.鎺у埗閮芥敼鎴愬箍鎾舰寮忎簡锛屼笉璁板綍涓�绔彛鐨処P銆�
-
-
-SDK 鐗堟湰锛歨dl_lib_v1.6.4.20191015_beta
-1.澧炲姞鎼滅储瀹岃澶囨垨鑰呭娉ㄥ埛鏂板畬锛岃嚜鍔ㄤ繚瀛樹竴娆℃暟鎹埌鏈湴銆�
-2.澧炲姞璇诲彇鏈湴鏁版嵁鎺ュ彛锛�
-3.澧炲姞鍒锋柊鎵�鏈夎澶囩殑澶囨敞鍜岀姸鎬佹帴鍙o紱
-
-鎺ュ彛璇存槑锛�
-    /**
-     * 璇诲彇鍜屽姞杞芥湰鍦版暟鎹�
-     */
-    private void getLocalDevicesDataList() {
-        devicesDatas = HDLDeviceManager.getLocalDevicesDataList();
-        if (devicesDatas.size() > 0) {
-            updateDeviceListView();
-            HandleSearch.refreshAllDevicesStateAndRemarks();//濡傛灉鏈湴鏈夋暟鎹紝鍙互璋冪敤璇ユ柟娉曪紝閬嶅巻鍙戦�佹寚浠わ紝鍒锋柊鎵�鏈夎澶囩殑澶囨敞鍜岀姸鎬�
-        } else {
-            //showToast("鏈湴鏁版嵁涓虹┖");
-        }
-    }
-
-/**淇濆瓨鏁版嵁鍒版湰鍦版帴鍙o紝闄DK鑷姩淇濆瓨鍚庯紝涓婂眰鍙互閫夋嫨鎵嬪姩璋冪敤淇濆瓨*/
-HDLDeviceManager.saveDevicesDataList();
-
-
 鎻愪緵澹板繀鍙疭DK椤圭洰
 
-##Version 1.0.2
-1.鏂板鍦扮儹妯″潡鍜屾柊椋庣郴缁熸帶鍒跺拰璇诲彇鐘舵�佹帴鍙o紱
-2.鏂板鍦扮儹妯″潡鍜屾柊椋庣郴缁熸帶鍒舵紨绀洪〉闈紱
-3.targetSdkVersion 28锛�
+##Version HDL_ZigBeeSDK_V1.0.1.B1.20200923.aar
+1.淇敼org.eclipse.paho.client.mqttv3寮曠敤鏂瑰紡锛岃В鍐崇綏瀹朵箰涔嬪墠锛屾墦鍖呮柟娉曚細涓㈠けmqtt jar璧勬簮鏂囦欢锛屽鑷撮棯閫�闂銆�
diff --git a/Android_HDL_SDK_XW/app/build.gradle b/Android_HDL_SDK_XW/app/build.gradle
index 7e631d3..e3fc9b2 100644
--- a/Android_HDL_SDK_XW/app/build.gradle
+++ b/Android_HDL_SDK_XW/app/build.gradle
@@ -21,12 +21,14 @@
 }
 
 dependencies {
-    implementation fileTree(include: ['*.jar'], dir: 'libs')
+    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
+//    implementation fileTree(include: ['*.jar'], dir: 'libs')
     implementation 'com.android.support:appcompat-v7:28+'
     implementation 'com.android.support.constraint:constraint-layout:1.1.0'
     testImplementation 'junit:junit:4.12'
     androidTestImplementation 'com.android.support.test:runner:1.0.2'
     androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
-    implementation project(':hdl_core')
+//    implementation project(':hdl_core')
     implementation 'org.greenrobot:eventbus:3.0.0'
+    implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5'
 }
diff --git a/Android_HDL_SDK_XW/app/libs/HDL_ZigBeeSDK_V1.0.1.B1.20200923.aar b/Android_HDL_SDK_XW/app/libs/HDL_ZigBeeSDK_V1.0.1.B1.20200923.aar
new file mode 100644
index 0000000..d2f7d80
--- /dev/null
+++ b/Android_HDL_SDK_XW/app/libs/HDL_ZigBeeSDK_V1.0.1.B1.20200923.aar
Binary files differ
diff --git a/Android_HDL_SDK_XW/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlActivity.java b/Android_HDL_SDK_XW/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlActivity.java
index c20bfca..6d4d53c 100644
--- a/Android_HDL_SDK_XW/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlActivity.java
+++ b/Android_HDL_SDK_XW/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlActivity.java
@@ -60,7 +60,6 @@
     private boolean isZigbee = false;
 
 
-
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -71,13 +70,12 @@
 
 
 //        姝ゆ柟娉曚负涓诲姩鑾峰彇鍗曚竴璁惧鐘舵�侊紝閫昏緫妯″潡銆佽儗鏅煶涔愭ā鍧楁病鏈夎繖涓猘pi锛屼粎鏀寔鐏厜锛岀獥甯橈紝绌鸿皟銆備竴鑸笉闇�瑕佺敤鍒般��
- //       HDLCommand.getDeviceState(appliancesInfo);
+        //       HDLCommand.getDeviceState(appliancesInfo);
 
 
         initcurState();
         initView();
         initClickOnEvent();
-
 
 
     }
@@ -433,9 +431,9 @@
     private void initcurState() {
         appliancesInfo = (AppliancesInfo) getIntent().getSerializableExtra("hdl");
         isZigbee = getIntent().getExtras().getBoolean("isZigbee2Item");
-        if (isZigbee){
-            HDLCommand.getDeviceState(CtrlActivity.this,appliancesInfo,isZigbee);//濡傛灉鏄痾igbee鐨勯渶瑕佽皟鐢ㄥ崟涓�鐘舵�佸洖澶�
-        }else {
+        if (isZigbee) {
+            HDLCommand.getDeviceState(CtrlActivity.this, appliancesInfo, isZigbee);//濡傛灉鏄痾igbee鐨勯渶瑕佽皟鐢ㄥ崟涓�鐘舵�佸洖澶�
+        } else {
             //        lightState = 100;//鍒濆鍖栫伅鍏変寒搴�100
             curtainState = CurtainCtrlParser.curtainOff;
 //        鑾峰彇鎵�鏈夎澶囩殑鐘舵�併�俤eviceStateBeanList涓烘墍鏈夎澶囩殑鐘舵�佸垪琛�
@@ -516,7 +514,7 @@
         lightBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                    HDLCommand.lightCtrl(appliancesInfo, 50,isZigbee);//state鍊间唬琛ㄨ皟鍏夊ぇ灏�0-100
+                HDLCommand.lightCtrl(appliancesInfo, 50, isZigbee);//state鍊间唬琛ㄨ皟鍏夊ぇ灏�0-100
 //                HDLCommand.lightCtrl(appliancesInfo,50,isZigbee);
             }
         });
@@ -525,7 +523,7 @@
             @Override
             public void onClick(View view) {
                 //绐楀笜妯″潡绗簩涓弬鏁� 涓篊urtainCtrlParser.curtainOn锛孋urtainCtrlParser.curtainOff锛孋urtainCtrlParser.curtainPause鍏朵腑涓�涓�
-                HDLCommand.curtainCtrl(appliancesInfo, curtainState,isZigbee);
+                HDLCommand.curtainCtrl(appliancesInfo, curtainState, isZigbee);
                 if (curtainState == CurtainCtrlParser.curtainOn) {
                     curtainState = CurtainCtrlParser.curtainOff;
                 } else {
@@ -538,14 +536,14 @@
         curtainBtn2.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOn,isZigbee);
+                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOn, isZigbee);
             }
         });
 
         curtainBtn3.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOff,isZigbee);
+                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOff, isZigbee);
 
             }
         });
@@ -553,14 +551,14 @@
         curtainBtn4.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainPause,isZigbee);
+                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainPause, isZigbee);
             }
         });
 
         curtainBtn5.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                HDLCommand.curtainCtrl(appliancesInfo, 20,isZigbee);
+                HDLCommand.curtainCtrl(appliancesInfo, 20, isZigbee);
             }
         });
 
@@ -568,11 +566,11 @@
             @Override
             public void onClick(View view) {
                 //婕旂ず褰撳墠鐘舵�佷负鍏筹紝璁剧疆涓哄紑銆傚紑锛岃缃负鍏炽��
-                    if (airSwitchState == 0) {
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOn,isZigbee);//绌鸿皟寮�
-                    } else {
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOff,isZigbee);//绌鸿皟鍏�
-                    }
+                if (airSwitchState == 0) {
+                    HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOn, isZigbee);//绌鸿皟寮�
+                } else {
+                    HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOff, isZigbee);//绌鸿皟鍏�
+                }
             }
         });
 
@@ -583,26 +581,26 @@
                 switch (airModeState) {
                     case 0:
                         //鑻ュ綋鍓嶇┖璋冩ā寮忎负鍒跺喎锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓哄埗鐑�
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeHeatTem,isZigbee);//绌鸿皟妯″紡鍒剁儹
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeHeatTem, isZigbee);//绌鸿皟妯″紡鍒剁儹
                         break;
                     case 1:
                         //鑻ュ綋鍓嶇┖璋冩ā寮忎负鍒剁儹锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓洪�氶
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeVen,isZigbee);//绌鸿皟妯″紡閫氶
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeVen, isZigbee);//绌鸿皟妯″紡閫氶
                         break;
                     case 2:
                         //鑻ュ綋鍓嶇┖璋冩ā寮忎负閫氶锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓鸿嚜鍔�
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeAuto,isZigbee);//绌鸿皟妯″紡鑷姩
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeAuto, isZigbee);//绌鸿皟妯″紡鑷姩
                         break;
                     case 3:
                         //鑻ュ綋鍓嶇┖璋冩ā寮忎负鑷姩锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓烘娊婀�
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeDehum,isZigbee);//绌鸿皟妯″紡鎶芥箍
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeDehum, isZigbee);//绌鸿皟妯″紡鎶芥箍
                         break;
                     case 4:
                         //鑻ュ綋鍓嶇┖璋冩ā寮忎负鎶芥箍锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓哄埗鍐�
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeRefTem,isZigbee);//绌鸿皟妯″紡鍒跺喎
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeRefTem, isZigbee);//绌鸿皟妯″紡鍒跺喎
                         break;
                     default:
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeRefTem,isZigbee);//绌鸿皟妯″紡鍒跺喎
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeRefTem, isZigbee);//绌鸿皟妯″紡鍒跺喎
                         break;
 
                 }
@@ -617,19 +615,19 @@
                 switch (airSpeedState) {
                     case 0:
                         //鑻ュ綋鍓嶇┖璋冮閫熶负鑷姩锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓洪珮椋�
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedHigh,isZigbee);//椋庨�熼珮椋�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedHigh, isZigbee);//椋庨�熼珮椋�
                         break;
                     case 1:
                         //鑻ュ綋鍓嶇┖璋冮閫熶负楂橀锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓轰腑椋�
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedMid,isZigbee);//椋庨�熶腑椋�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedMid, isZigbee);//椋庨�熶腑椋�
                         break;
                     case 2:
                         //鑻ュ綋鍓嶇┖璋冮閫熶负涓锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓轰綆椋�
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedLow,isZigbee);//椋庨�熶綆椋�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedLow, isZigbee);//椋庨�熶綆椋�
                         break;
                     case 3:
                         //鑻ュ綋鍓嶇┖璋冮閫熶负浣庨锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓鸿嚜鍔�
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedAuto,isZigbee);//椋庨�熻嚜鍔�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedAuto, isZigbee);//椋庨�熻嚜鍔�
                         break;
                 }
             }
@@ -653,11 +651,11 @@
                 switch (airModeState) {
                     case 0:
                         //褰撳墠绌鸿皟妯″紡涓哄埗鍐�
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.refTem, tempInt,isZigbee);//鍒跺喎娓╁害
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.refTem, tempInt, isZigbee);//鍒跺喎娓╁害
                         break;
                     case 1:
                         //褰撳墠绌鸿皟妯″紡涓哄埗鐑�
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.heatTem, tempInt,isZigbee);//鍒剁儹娓╁害
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.heatTem, tempInt, isZigbee);//鍒剁儹娓╁害
                         break;
                     case 2:
                         //褰撳墠绌鸿皟妯″紡涓洪�氶
@@ -665,11 +663,11 @@
                         break;
                     case 3:
                         //褰撳墠绌鸿皟妯″紡涓鸿嚜鍔�
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.autoTem, tempInt,isZigbee);//鑷姩娓╁害
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.autoTem, tempInt, isZigbee);//鑷姩娓╁害
                         break;
                     case 4:
                         //褰撳墠绌鸿皟妯″紡涓烘娊婀�
-                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.dehumTem, tempInt,isZigbee);//鎶芥箍娓╁害
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.dehumTem, tempInt, isZigbee);//鎶芥箍娓╁害
                         break;
                     default:
                         break;
@@ -685,14 +683,14 @@
         logicBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                HDLCommand.logicCtrl(appliancesInfo,isZigbee);
+                HDLCommand.logicCtrl(appliancesInfo, isZigbee);
             }
         });
 
         sensorBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                HDLCommand.getDeviceState(CtrlActivity.this,appliancesInfo,isZigbee);
+                HDLCommand.getDeviceState(CtrlActivity.this, appliancesInfo, isZigbee);
             }
         });
     }
@@ -712,7 +710,7 @@
                 && event.getLightCtrlBackInfo().getChannelNum() == appliancesInfo.getChannelNum()
                 && event.getLightCtrlBackInfo().getPhysicsChannelNum() == appliancesInfo.getPhysicsChannelNum()
                 && event.getLightCtrlBackInfo().getAppliancesInfo().getDeviceType() == appliancesInfo.getDeviceType()
-                ) {
+        ) {
             //        鍏堝垽鏂槸鍚﹁秴鏃�
             if (!event.isSuccess()) {
                 showToast("鐏厜鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
@@ -739,7 +737,7 @@
         if (event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
                 && event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
                 && event.getCurtainCtrlBackInfo().getNum() == appliancesInfo.getChannelNum()
-                ) {
+        ) {
 
             if (!event.isSuccess()) {
                 showToast("绐楀笜鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
@@ -790,7 +788,7 @@
         if (event.getAirCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
                 && event.getAirCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
                 && event.getAirCtrlBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()
-                ) {
+        ) {
             //        鍏堝垽鏂槸鍚﹁秴鏃�
             if (!event.isSuccess()) {
                 showToast("绌鸿皟鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
@@ -932,7 +930,7 @@
 //        鍏堝垽鏂槸鍚﹁秴鏃�
         if (event.getLogicCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
                 && event.getLogicCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
-                ) {
+        ) {
             if (!event.isSuccess()) {
                 showToast("鍦烘櫙鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
                 return;
@@ -946,7 +944,7 @@
     public void onDeviceStateEventMain(DeviceStateEvent event) {
         if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
                 && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
-                ) {
+        ) {
             //杩欎釜杩斿洖鐨勪俊鎭槸褰撳墠鐘舵�佺殑
             switch (event.getAppliancesInfo().getDeviceType()) {
                 case HDLApConfig.TYPE_LIGHT_DIMMER:
@@ -1409,7 +1407,6 @@
             }
         }
     }
-
 
 
     public void showToast(String text) {
diff --git a/Android_HDL_SDK_XW/build.gradle b/Android_HDL_SDK_XW/build.gradle
index 0f1c794..cff36d7 100644
--- a/Android_HDL_SDK_XW/build.gradle
+++ b/Android_HDL_SDK_XW/build.gradle
@@ -1,15 +1,14 @@
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
 
 buildscript {
-    
+
     repositories {
         google()
-        mavenCentral()
-        maven { url 'https://maven.google.com' }
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0'
+        classpath 'com.android.tools.build:gradle:3.4.1'
+//        classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0'
 //        classpath 'com.novoda:bintray-release:+'
 
 
@@ -19,8 +18,6 @@
 allprojects {
     repositories {
         google()
-        mavenCentral()
-        maven { url 'https://maven.google.com' }
         jcenter()
     }
 }
diff --git a/Android_HDL_SDK_XW/gradle/wrapper/gradle-wrapper.properties b/Android_HDL_SDK_XW/gradle/wrapper/gradle-wrapper.properties
index 8cc2e36..ec5c9f7 100644
--- a/Android_HDL_SDK_XW/gradle/wrapper/gradle-wrapper.properties
+++ b/Android_HDL_SDK_XW/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
\ No newline at end of file
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
\ No newline at end of file
diff --git a/Android_HDL_SDK_XW/hdl_core/build.gradle b/Android_HDL_SDK_XW/hdl_core/build.gradle
index 3c659f2..8ef2596 100644
--- a/Android_HDL_SDK_XW/hdl_core/build.gradle
+++ b/Android_HDL_SDK_XW/hdl_core/build.gradle
@@ -1,15 +1,13 @@
 apply plugin: 'com.android.library'
-//apply plugin: 'com.novoda.bintray-release'
 
 android {
     compileSdkVersion 28
     defaultConfig {
         minSdkVersion 17
         targetSdkVersion 28
-        versionCode 2
-        versionName "1.0.8"
+        versionCode 1
+        versionName "1.0.1"
 
-        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
 
     }
     buildTypes {
@@ -20,47 +18,34 @@
     }
     buildToolsVersion '28.0.3'
 
+    /**
+     * 鎵撳寘鑷姩鍛藉悕
+     */
+    android.libraryVariants.all { variant ->
+        variant.outputs.all {
+            outputFileName = "HDL_ZigBeeSDK_V" +
+                    defaultConfig.versionName + ".B" + defaultConfig.versionCode + "." + releaseTime() + ".aar"
+        }
+    }
+
+
 //    lintOptions {
 //        abortOnError false
 //        warning 'InvalidPackage'
 //    }
 }
 
-dependencies {
-    implementation fileTree(include: ['*.jar'], dir: 'libs')
-    implementation 'com.android.support:appcompat-v7:28+'
-    api 'org.greenrobot:eventbus:3.0.0'
-    testImplementation 'junit:junit:4.12'
-    androidTestImplementation 'com.android.support.test:runner:1.0.2'
-    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
-    implementation files('libs/org.eclipse.paho.client.mqttv3-1.2.0.jar')
+def releaseTime() {
+    return new Date().format("yyyyMMdd")
 }
 
-
-//task makeJar(type: Copy) {
-////鍒犻櫎瀛樺湪鐨�
-//      delete'build/libs/test.jar'
-////璁剧疆鎷疯礉鐨勬枃浠�
-//      from('build/intermediates/packaged-classes/release/')
-////鎵撹繘jar鍖呭悗鐨勬枃浠剁洰褰�
-//      into('build/libs/')
-////灏哻asses.jar鏀惧叆build/libs/鐩綍涓�
-////include ,exclude鍙傛暟鏉ヨ缃繃婊�
-////锛堟垜浠彧鍏冲績classes.jar杩欎釜鏂囦欢锛�
-//      include('classes.jar')
-////閲嶅懡鍚�
-//    rename ('classes.jar','test.jar')
-//}
-//makeJar.dependsOn(build)
+dependencies {
+    implementation fileTree(include: ['*.jar'], dir: 'libs')
+    implementation 'com.android.support:appcompat-v7:28.0.0'
+    api 'org.greenrobot:eventbus:3.0.0'
+    api 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5'
+    testImplementation 'junit:junit:4.12'
 
 
-
-
-//publish {
-//    userOrg = 'tommydai'
-//    groupId = 'com.hdl.sdk'
-//    artifactId = 'hdlsdk'
-//    publishVersion = '1.5.8'
-//    desc = 'HDL core libray'
-//}
+}
 
diff --git a/Android_HDL_SDK_XW/hdl_core/proguard-rules.pro b/Android_HDL_SDK_XW/hdl_core/proguard-rules.pro
index f1b4245..2276dd2 100644
--- a/Android_HDL_SDK_XW/hdl_core/proguard-rules.pro
+++ b/Android_HDL_SDK_XW/hdl_core/proguard-rules.pro
@@ -19,3 +19,6 @@
 # If you keep the line number information, uncomment this to
 # hide the original source file name.
 #-renamesourcefileattribute SourceFile
+
+#-keep class org.eclipse.paho.client.mqttv3.logging.JSR47Logger { *; }
+#-keep class org.eclipse.paho.* { *; }
\ No newline at end of file
diff --git a/Android_HDL_SDK_XW/hdl_core/src/androidTest/java/com/hdl/sdk/hdl_core/ExampleInstrumentedTest.java b/Android_HDL_SDK_XW/hdl_core/src/androidTest/java/com/hdl/sdk/hdl_core/ExampleInstrumentedTest.java
deleted file mode 100644
index 6fbc106..0000000
--- a/Android_HDL_SDK_XW/hdl_core/src/androidTest/java/com/hdl/sdk/hdl_core/ExampleInstrumentedTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.hdl.sdk.hdl_core;
-
-import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
-    @Test
-    public void useAppContext() {
-        // Context of the app under test.
-        Context appContext = InstrumentationRegistry.getTargetContext();
-
-        assertEquals("com.hdl.sdk.hdl_core.test", appContext.getPackageName());
-    }
-}
diff --git a/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java b/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java
index 5420b7b..ebdcc53 100644
--- a/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java
+++ b/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java
@@ -84,7 +84,6 @@
     }
 
 
-
 //    /**
 //     * 鑾峰彇鏈湴骞挎挱IP
 //     * @return
@@ -95,15 +94,17 @@
 
     /**
      * 鑾峰彇鏈湴骞挎挱IP
+     *
      * @return
      */
-    public static String getLocalBroadCastIp(){
+    public static String getLocalBroadCastIp() {
         return NetWorkUtil.getLocalBroadCast();
     }
 
     /**
      * 鏄惁寮�鍚疭DK鏃ュ織鎵撳嵃
      * 2019-07-10鏂板
+     *
      * @param bOpen
      */
     public static void setHDLLogOpen(boolean bOpen) {
@@ -123,7 +124,6 @@
 //    }
 
 
-
     /**
      * 鑾峰彇RCU妯″潡鐨勮澶�
      *
@@ -138,14 +138,13 @@
     }
 
 
-
     /**
      * 鑾峰彇瀹跺眳璁惧
      *
      * @param context
      */
-    public static void getHomeDevices(Context context ,Boolean isZigbee) {
-        HandleSearch.getHomeDevices(context,isZigbee);
+    public static void getHomeDevices(Context context, Boolean isZigbee) {
+        HandleSearch.getHomeDevices(context, isZigbee);
     }
 
 //    public static void cancelSearching(){
@@ -173,31 +172,31 @@
      * @param info
      * @param state
      */
-    public static void lightCtrl(final AppliancesInfo info, int state,boolean isZigbee) {
-        if (isZigbee){
-            if (statusReadBackBean != null){
-                if (info.getBigType() == Configuration.LIGTH_BIG_TYPE  && info.getLittleType() == 1){//缁х數鍣� 寮�鍏�
-                    if (statusReadBackBean.getValue() == Configuration.RELAY_ON){
-                        HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.OnOffOutput,Configuration.RELAY_OFF);
-                    }else {
-                        HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.OnOffOutput,Configuration.RELAY_ON);
+    public static void lightCtrl(final AppliancesInfo info, int state, boolean isZigbee) {
+        if (isZigbee) {
+            if (statusReadBackBean != null) {
+                if (info.getBigType() == Configuration.LIGTH_BIG_TYPE && info.getLittleType() == 1) {//缁х數鍣� 寮�鍏�
+                    if (statusReadBackBean.getValue() == Configuration.RELAY_ON) {
+                        HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.OnOffOutput, Configuration.RELAY_OFF);
+                    } else {
+                        HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.OnOffOutput, Configuration.RELAY_ON);
                     }
                 }
-                if (info.getBigType() == Configuration.LIGTH_BIG_TYPE  && info.getLittleType() == 0){//璋冨厜鍣� 寮�鍒板浐瀹氱殑鍊兼垨鑰呭紑鍒�0
+                if (info.getBigType() == Configuration.LIGTH_BIG_TYPE && info.getLittleType() == 0) {//璋冨厜鍣� 寮�鍒板浐瀹氱殑鍊兼垨鑰呭紑鍒�0
                     int value = (int) (state * 2.55);
-                    if (statusReadBackBean.getValue()!=0){
+                    if (statusReadBackBean.getValue() != 0) {
                         //lightStatus = 0;
-                        HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.DimmableLight,0);
-                    }else {
+                        HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.DimmableLight, 0);
+                    } else {
                         //lightStatus = value;
-                        HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.DimmableLight,value);
+                        HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.DimmableLight, value);
                     }
                 }
-            }else {
+            } else {
                 HDLLog.info("涓鸿幏鍙栧埌璁惧鐘舵��");
             }
 
-        }else {
+        } else {
             //        HDLDeviceManager.isLightCtrlSuccess = false;
             HDLDeviceManager.setDeviceCtrlSuccessStateWithInfo(info, false);
             if (lightCtrlFailTimer != null) {
@@ -261,23 +260,23 @@
      * @param info
      * @param state 璋冩暣鐨勫��
      */
-    public static void curtainCtrl(final AppliancesInfo info, int state,boolean isZigbee) {
-        if (isZigbee){
-            switch (state){
-                case  CurtainCtrlParser.curtainOn:
-                    HDLCommandText.sendCurtainStatus(zigbeeDeviceBean,ZigbeeDeviceID.WindowCoveringDevice,0,0);//value = 0涓哄紑锛宼ag = 0涓烘爣璁版帶鍒�
+    public static void curtainCtrl(final AppliancesInfo info, int state, boolean isZigbee) {
+        if (isZigbee) {
+            switch (state) {
+                case CurtainCtrlParser.curtainOn:
+                    HDLCommandText.sendCurtainStatus(zigbeeDeviceBean, ZigbeeDeviceID.WindowCoveringDevice, 0, 0);//value = 0涓哄紑锛宼ag = 0涓烘爣璁版帶鍒�
                     break;
-                case  CurtainCtrlParser.curtainOff:
-                    HDLCommandText.sendCurtainStatus(zigbeeDeviceBean,ZigbeeDeviceID.WindowCoveringDevice,1,0);//value = 1涓哄叧锛宼ag = 0涓烘爣璁版帶鍒�
+                case CurtainCtrlParser.curtainOff:
+                    HDLCommandText.sendCurtainStatus(zigbeeDeviceBean, ZigbeeDeviceID.WindowCoveringDevice, 1, 0);//value = 1涓哄叧锛宼ag = 0涓烘爣璁版帶鍒�
                     break;
                 case CurtainCtrlParser.curtainPause:
-                    HDLCommandText.sendCurtainStatus(zigbeeDeviceBean,ZigbeeDeviceID.WindowCoveringDevice,2,0);//value = 2涓烘殏鍋滐紝tag = 0涓烘爣璁版帶鍒�
+                    HDLCommandText.sendCurtainStatus(zigbeeDeviceBean, ZigbeeDeviceID.WindowCoveringDevice, 2, 0);//value = 2涓烘殏鍋滐紝tag = 0涓烘爣璁版帶鍒�
                     break;
                 default:
-                    HDLCommandText.sendCurtainStatus(zigbeeDeviceBean,ZigbeeDeviceID.WindowCoveringDevice,state,1);//value = state涓鸿皟鏁存暟鍊硷紝tag = 1涓烘爣璁版暟鍊兼帶鍒�
+                    HDLCommandText.sendCurtainStatus(zigbeeDeviceBean, ZigbeeDeviceID.WindowCoveringDevice, state, 1);//value = state涓鸿皟鏁存暟鍊硷紝tag = 1涓烘爣璁版暟鍊兼帶鍒�
                     break;
             }
-        }else {
+        } else {
             HDLDeviceManager.setDeviceCtrlSuccessStateWithInfo(info, false);
             if (curtainCtrlFailTimer != null) {
                 curtainCtrlFailTimer.cancel();
@@ -336,69 +335,69 @@
      * @param type
      * @param state
      */
-    public static void airCtrl(final AppliancesInfo info, int type, int state , boolean isZigbee) {
-        if (isZigbee){
-            switch (type){
+    public static void airCtrl(final AppliancesInfo info, int type, int state, boolean isZigbee) {
+        if (isZigbee) {
+            switch (type) {
                 case AirCtrlParser.airSwich:
                     //寮�鍏抽�夋嫨
-                    switch (state){
+                    switch (state) {
                         case AirCtrlParser.airOn://绌鸿皟寮�
-                            HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,1,0,0);//value = 1涓虹┖璋冨紑 tag = 0涓烘爣蹇椾负寮�鍏虫帶鍒� mode蹇界暐
+                            HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 1, 0, 0);//value = 1涓虹┖璋冨紑 tag = 0涓烘爣蹇椾负寮�鍏虫帶鍒� mode蹇界暐
                             break;
                         case AirCtrlParser.airOff://绌鸿皟鍏�
-                            HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,0,0,0);//value = 0涓虹┖璋冨紑 tag = 0涓烘爣蹇椾负寮�鍏虫帶鍒� mode蹇界暐
+                            HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 0, 0, 0);//value = 0涓虹┖璋冨紑 tag = 0涓烘爣蹇椾负寮�鍏虫帶鍒� mode蹇界暐
                             break;
                     }
                     break;
                 case AirCtrlParser.airMode:
                     //鎭掓俯鍣ㄦā寮忛�夋嫨
-                    switch (state){
+                    switch (state) {
                         case AirCtrlParser.airModeHeatTem://绌鸿皟妯″紡鍒剁儹
-                            HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,4,1,0);//value = 4涓烘亽娓╁櫒鍒剁儹 tag = 1涓烘爣蹇椾负鎭掓俯鍣ㄦ帶鍒� mode蹇界暐
+                            HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 4, 1, 0);//value = 4涓烘亽娓╁櫒鍒剁儹 tag = 1涓烘爣蹇椾负鎭掓俯鍣ㄦ帶鍒� mode蹇界暐
                             break;
                         case AirCtrlParser.airModeVen://绌鸿皟妯″紡閫氶
-                            HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,7,1,0);//value = 7涓烘亽娓╁櫒閫氶 tag = 1涓烘爣蹇椾负鎭掓俯鍣ㄦ帶鍒� mode蹇界暐
+                            HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 7, 1, 0);//value = 7涓烘亽娓╁櫒閫氶 tag = 1涓烘爣蹇椾负鎭掓俯鍣ㄦ帶鍒� mode蹇界暐
                             break;
                         case AirCtrlParser.airModeAuto://绌鸿皟妯″紡鑷姩
-                            HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,1,1,0);//value = 1涓烘亽娓╁櫒鑷姩 tag = 1涓烘爣蹇椾负鎭掓俯鍣ㄦ帶鍒� mode蹇界暐
+                            HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 1, 1, 0);//value = 1涓烘亽娓╁櫒鑷姩 tag = 1涓烘爣蹇椾负鎭掓俯鍣ㄦ帶鍒� mode蹇界暐
                             break;
                         case AirCtrlParser.airModeDehum://绌鸿皟妯″紡鎶芥箍
-                            HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,8,1,0);//value = 8涓烘亽娓╁櫒鎶芥箍 tag = 1涓烘爣蹇椾负鎭掓俯鍣ㄦ帶鍒� mode蹇界暐
+                            HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 8, 1, 0);//value = 8涓烘亽娓╁櫒鎶芥箍 tag = 1涓烘爣蹇椾负鎭掓俯鍣ㄦ帶鍒� mode蹇界暐
                             break;
                         case AirCtrlParser.airModeRefTem://绌鸿皟妯″紡鍒跺喎
-                            HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,3,1,0);//value = 3涓烘亽娓╁櫒鍒跺喎 tag = 1涓烘爣蹇椾负鎭掓俯鍣ㄦ帶鍒� mode蹇界暐
+                            HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 3, 1, 0);//value = 3涓烘亽娓╁櫒鍒跺喎 tag = 1涓烘爣蹇椾负鎭掓俯鍣ㄦ帶鍒� mode蹇界暐
                             break;
                     }
                     break;
                 case AirCtrlParser.airSpeed:
                     //椋庨�熸ā寮忛�夋嫨
-                    switch (state){
+                    switch (state) {
                         case AirCtrlParser.airSpeedHigh://椋庨�熼珮椋�
-                            HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,3,2,0);//value = 3涓洪閫熼珮椋� tag = 2涓烘爣蹇椾负椋庨�熸帶鍒� mode蹇界暐
+                            HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 3, 2, 0);//value = 3涓洪閫熼珮椋� tag = 2涓烘爣蹇椾负椋庨�熸帶鍒� mode蹇界暐
                             break;
                         case AirCtrlParser.airSpeedMid://椋庨�熶腑椋�
-                            HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,2,2,0);//value = 2涓洪閫熶腑椋� tag = 2涓烘爣蹇椾负椋庨�熸帶鍒� mode蹇界暐
+                            HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 2, 2, 0);//value = 2涓洪閫熶腑椋� tag = 2涓烘爣蹇椾负椋庨�熸帶鍒� mode蹇界暐
                             break;
                         case AirCtrlParser.airSpeedLow://椋庨�熶綆椋�
-                            HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,1,2,0);//value = 1涓洪閫熶綆椋� tag = 2涓烘爣蹇椾负椋庨�熸帶鍒� mode蹇界暐
+                            HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 1, 2, 0);//value = 1涓洪閫熶綆椋� tag = 2涓烘爣蹇椾负椋庨�熸帶鍒� mode蹇界暐
                             break;
                         case AirCtrlParser.airSpeedAuto://椋庨�熻嚜鍔�
-                            HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,5,2,0);//value = 5涓洪閫熻嚜鍔� tag = 2涓烘爣蹇椾负椋庨�熸帶鍒� mode蹇界暐
+                            HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, 5, 2, 0);//value = 5涓洪閫熻嚜鍔� tag = 2涓烘爣蹇椾负椋庨�熸帶鍒� mode蹇界暐
                             break;
                     }
                     break;
                 case AirCtrlParser.dehumTem://褰撳墠绌鸿皟妯″紡涓烘娊婀�
                 case AirCtrlParser.refTem: //褰撳墠绌鸿皟妯″紡涓哄埗鍐�
-                    HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,state,3,1);//value = state涓烘俯搴﹀�� tag = 3涓烘爣蹇椾负娓╁害鎺у埗 mode = 1涓哄埗鍐�
+                    HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, state, 3, 1);//value = state涓烘俯搴﹀�� tag = 3涓烘爣蹇椾负娓╁害鎺у埗 mode = 1涓哄埗鍐�
                     break;
                 case AirCtrlParser.heatTem://褰撳墠绌鸿皟妯″紡涓哄埗鐑�
-                    HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,state,3,0);//value = state涓烘俯搴﹀�� tag = 3涓烘爣蹇椾负娓╁害鎺у埗 mode = 0涓哄埗鐑�
+                    HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, state, 3, 0);//value = state涓烘俯搴﹀�� tag = 3涓烘爣蹇椾负娓╁害鎺у埗 mode = 0涓哄埗鐑�
                     break;
                 case AirCtrlParser.autoTem://褰撳墠绌鸿皟妯″紡涓鸿嚜鍔�
-                    HDLCommandText.sendAirStatus(zigbeeDeviceBean,ZigbeeDeviceID.Thermostat,state,3,2);//value = state涓烘俯搴﹀�� tag = 3涓烘爣蹇椾负娓╁害鎺у埗 mode = 2涓鸿嚜鍔�
+                    HDLCommandText.sendAirStatus(zigbeeDeviceBean, ZigbeeDeviceID.Thermostat, state, 3, 2);//value = state涓烘俯搴﹀�� tag = 3涓烘爣蹇椾负娓╁害鎺у埗 mode = 2涓鸿嚜鍔�
                     break;
             }
-        }else {
+        } else {
             //        HDLDeviceManager.isACCtrlSuccess = false;
             HDLDeviceManager.setDeviceCtrlSuccessStateWithInfo(info, false);
             if (acCtrlFailTimer != null) {
@@ -451,32 +450,32 @@
      * @param type
      * @param state 2019-07-09
      */
-    public static void freshAirCtrl(final AppliancesInfo info, int type, int state,boolean isZigbee) {
-        if (isZigbee){
-            switch (type){
+    public static void freshAirCtrl(final AppliancesInfo info, int type, int state, boolean isZigbee) {
+        if (isZigbee) {
+            switch (type) {
                 case FreshAirParser.freshAirSwich:
-                switch (state){
-                    case  FreshAirParser.freshAirOn:
-                        HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.AirPanel,1);//value = 1涓烘柊椋庡紑
-                        break;
-                    case  FreshAirParser.freshAirOff:
-                        HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.AirPanel,0);//value = 0涓烘柊椋庡叧
-                        break;
-                }
-                break;
+                    switch (state) {
+                        case FreshAirParser.freshAirOn:
+                            HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.AirPanel, 1);//value = 1涓烘柊椋庡紑
+                            break;
+                        case FreshAirParser.freshAirOff:
+                            HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.AirPanel, 0);//value = 0涓烘柊椋庡叧
+                            break;
+                    }
+                    break;
                 case FreshAirParser.freshAirSpeed://楂橀銆佷綆椋�
-                    switch (state){
+                    switch (state) {
                         case FreshAirParser.freshAirSpeedMid://鎺у埗鎴愰珮椋�
-                            HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.AirPanel,3);//value = 3涓烘柊椋庨珮椋�
+                            HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.AirPanel, 3);//value = 3涓烘柊椋庨珮椋�
                             break;
                         case FreshAirParser.freshAirSpeedLow://鎺у埗鎴愪綆閫�
                         case FreshAirParser.freshAirSpeedOff:
-                            HDLCommandText.sendStatus(zigbeeDeviceBean,ZigbeeDeviceID.AirPanel,1);//value = 1涓烘柊椋庝綆椋�
+                            HDLCommandText.sendStatus(zigbeeDeviceBean, ZigbeeDeviceID.AirPanel, 1);//value = 1涓烘柊椋庝綆椋�
                             break;
                     }
                     break;
             }
-        }else {
+        } else {
             //        HDLDeviceManager.isFreshAirCtrlSuccess = false;
             HDLDeviceManager.setDeviceCtrlSuccessStateWithInfo(info, false);
             if (freshAirCtrlFailTimer != null) {
@@ -513,10 +512,10 @@
      *
      * @param info
      */
-    public static void logicCtrl(final AppliancesInfo info,final boolean isZigbee) {
-        if (isZigbee){
-                HDLCommandText.sendSceneStatus(zigbeeSceneBean.getScenesId(),0);//鎺у埗鍦烘櫙鐨刬d锛屽欢鏃舵椂闂翠负0
-        }else {
+    public static void logicCtrl(final AppliancesInfo info, final boolean isZigbee) {
+        if (isZigbee) {
+            HDLCommandText.sendSceneStatus(zigbeeSceneBean.getScenesId(), 0);//鎺у埗鍦烘櫙鐨刬d锛屽欢鏃舵椂闂翠负0
+        } else {
             //        HDLDeviceManager.isSceneCtrlSuccess = false;
             HDLDeviceManager.setDeviceCtrlSuccessStateWithInfo(info, false);
 
@@ -678,16 +677,17 @@
 //        }, 5000);
 //
 //    }
+
     /**
      * 鑾峰彇鍗曚竴璁惧鐘舵��
      */
-    public static void getDeviceState(Context context,final AppliancesInfo appliancesInfo,boolean isZigbee) {
-        if (isZigbee){
-            zigbeeDeviceDatas = SPUtils.getZigbeeDeviceSaveBean(context,SPUtils.KEY_ZIGBEE_IP);
-            zigbeeSceneDatas = SPUtils.getZigbeeSceneSaveBean(context,SPUtils.KEY_ZIGBEE_SCENE_IP);
+    public static void getDeviceState(Context context, final AppliancesInfo appliancesInfo, boolean isZigbee) {
+        if (isZigbee) {
+            zigbeeDeviceDatas = SPUtils.getZigbeeDeviceSaveBean(context, SPUtils.KEY_ZIGBEE_IP);
+            zigbeeSceneDatas = SPUtils.getZigbeeSceneSaveBean(context, SPUtils.KEY_ZIGBEE_SCENE_IP);
             HDLCommandText hdlCommandText = new HDLCommandText();
-            for (ZigbeeDeviceSaveBean zigbeeDeviceSaveBean : zigbeeDeviceDatas){
-                if (appliancesInfo.getBigType() == Configuration.LIGTH_BIG_TYPE && appliancesInfo.getLittleType() == 1){
+            for (ZigbeeDeviceSaveBean zigbeeDeviceSaveBean : zigbeeDeviceDatas) {
+                if (appliancesInfo.getBigType() == Configuration.LIGTH_BIG_TYPE && appliancesInfo.getLittleType() == 1) {
                     //缁х數鍣�
                     type = ZigbeeDeviceID.OnOffOutput;
                     if (zigbeeDeviceSaveBean.getmSubnetID() == appliancesInfo.getDeviceSubnetID() &&
@@ -701,7 +701,7 @@
                     }
                 }
 
-                if (appliancesInfo.getBigType() == Configuration.LIGTH_BIG_TYPE && appliancesInfo.getLittleType() == 0){
+                if (appliancesInfo.getBigType() == Configuration.LIGTH_BIG_TYPE && appliancesInfo.getLittleType() == 0) {
                     //璋冨厜鍣�
                     type = ZigbeeDeviceID.DimmableLight;
                     if (zigbeeDeviceSaveBean.getmSubnetID() == appliancesInfo.getDeviceSubnetID() &&
@@ -714,7 +714,7 @@
                         HDLCommandText.initStatus(zigbeeDeviceSaveBean, ZigbeeDeviceID.DimmableLight);
                     }
                 }
-                if (appliancesInfo.getBigType() == Configuration.CURTAIN_BIG_TYPE && appliancesInfo.getLittleType() == 0){
+                if (appliancesInfo.getBigType() == Configuration.CURTAIN_BIG_TYPE && appliancesInfo.getLittleType() == 0) {
                     //绐楀笜
                     type = ZigbeeDeviceID.WindowCoveringDevice;
                     if (zigbeeDeviceSaveBean.getmSubnetID() == appliancesInfo.getDeviceSubnetID() &&
@@ -727,7 +727,7 @@
                         HDLCommandText.initStatus(zigbeeDeviceSaveBean, ZigbeeDeviceID.WindowCoveringDevice);
                     }
                 }
-                if (appliancesInfo.getBigType() ==Configuration.AIR_BIG_TYPE && appliancesInfo.getLittleType() == 0){
+                if (appliancesInfo.getBigType() == Configuration.AIR_BIG_TYPE && appliancesInfo.getLittleType() == 0) {
                     //绌鸿皟
                     type = ZigbeeDeviceID.Thermostat;
                     if (zigbeeDeviceSaveBean.getmSubnetID() == appliancesInfo.getDeviceSubnetID() &&
@@ -740,7 +740,7 @@
                         HDLCommandText.initStatus(zigbeeDeviceSaveBean, ZigbeeDeviceID.Thermostat);
                     }
                 }
-                if (appliancesInfo.getBigType() ==Configuration.FRESH_AIR_BIG_TYPE && appliancesInfo.getLittleType() == 0){
+                if (appliancesInfo.getBigType() == Configuration.FRESH_AIR_BIG_TYPE && appliancesInfo.getLittleType() == 0) {
                     //鏂伴
                     type = ZigbeeDeviceID.AirPanel;
                     if (zigbeeDeviceSaveBean.getmSubnetID() == appliancesInfo.getDeviceSubnetID() &&
@@ -754,8 +754,8 @@
                     }
                 }
             }
-            for (ZigbeeSceneSaveBean zigbeeSceneSaveBean : zigbeeSceneDatas){
-                if (appliancesInfo.getBigType() == Configuration.GLOBAL_LOGIC_BIG_TYPE && appliancesInfo.getLittleType() == 0){
+            for (ZigbeeSceneSaveBean zigbeeSceneSaveBean : zigbeeSceneDatas) {
+                if (appliancesInfo.getBigType() == Configuration.GLOBAL_LOGIC_BIG_TYPE && appliancesInfo.getLittleType() == 0) {
                     //鍦烘櫙
                     type = ZigbeeDeviceID.SceneMark;
                     if (zigbeeSceneSaveBean.getSubnetId() == appliancesInfo.getDeviceSubnetID() &&
@@ -767,133 +767,133 @@
                     }
                 }
             }
-            Log.d("11113", "type: "+type);
+            Log.d("11113", "type: " + type);
             //璇诲啓鐘舵�佷俊鎭洖璋�
             HDLCommandText.setStateListener(new StateListener() {
                 @Override
                 public void onData(final StateEvent event) {
                     //涓婃姤zigbee鍥為淇℃伅
                     Log.d("11113", "zigbee 鍥為json:" + event.getJson());
-                    switch (type){
+                    switch (type) {
                         case ZigbeeDeviceID.OnOffOutput:
                             //缁х數鍣ㄨ澶囧洖璋�
                             statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusReadBackBean.class);
-                            if (statusReadBackBean.getValue() == Configuration.RELAY_ON){
+                            if (statusReadBackBean.getValue() == Configuration.RELAY_ON) {
                                 //缁х數鍣ㄥ叧
                                 appliancesInfo.setCurState(0);
                                 EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo, true));
-                            }else {
+                            } else {
                                 //缁х數鍣ㄥ紑
                                 appliancesInfo.setCurState(100);
                                 EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo, true));
                             }
                             break;
-                         case ZigbeeDeviceID.WindowCoveringDevice:
-                             //绐楀笜璁惧鍥炶皟
-                             statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusReadBackBean.class);
+                        case ZigbeeDeviceID.WindowCoveringDevice:
+                            //绐楀笜璁惧鍥炶皟
+                            statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusReadBackBean.class);
                             appliancesInfo.setCurState(statusReadBackBean.getValue());
-                            EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo,true));
+                            EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo, true));
                             break;
                         case ZigbeeDeviceID.DimmableLight:
                             //璋冨厜鍣ㄨ澶�
                             statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusReadBackBean.class);
-                            Log.d("2222", "鍥炶皟鏁版嵁: "+statusReadBackBean.getValue());
+                            Log.d("2222", "鍥炶皟鏁版嵁: " + statusReadBackBean.getValue());
                             appliancesInfo.setCurState(statusReadBackBean.getValue());
-                            EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo,true));
+                            EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo, true));
                             break;
                         case ZigbeeDeviceID.Thermostat:
                             //娓╁害璁惧
-                            thermostatReadBean = JsonUtil.parseJsonWithGson(event.getJson(),StatusThermostatReadBean.class);
+                            thermostatReadBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusThermostatReadBean.class);
                             int fanMode = thermostatReadBean.getFanmode(); //鏂伴妯″紡 0锛歄ff銆�1锛歀ow銆�2锛歁edium銆�3锛欻igh銆�4锛歄n銆�5锛欰uto銆�6锛歋mart
                             int thermostatMode = thermostatReadBean.getThermostatmode();//鎭掓俯妯″紡 0锛歄ff銆�1锛欰uto銆�3锛欳ool銆�4锛欻eat銆�5锛欵mergency heating銆�6锛歅recooling銆�7锛欶an only銆�8锛欴ry銆�9锛歋leep锛�
                             int coolingSetpoint = thermostatReadBean.getCoolingSetpoint();//鍒跺喎娓╁害
                             int heatingSetpoint = thermostatReadBean.getHeatingSetpoint();//鍒剁儹娓╁害
                             int tag = thermostatReadBean.getTag();
-                            switch (tag){
+                            switch (tag) {
                                 case 0://寮�鍏虫ā寮忚繑鍥�
-                                    if (fanMode == 0 && thermostatMode == 0){
-                                        appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich,AirCtrlParser.airOff)); //绌鸿皟鍏�
-                                    }else {
-                                       appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich,AirCtrlParser.airOn));//绌鸿皟寮�
+                                    if (fanMode == 0 && thermostatMode == 0) {
+                                        appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich, AirCtrlParser.airOff)); //绌鸿皟鍏�
+                                    } else {
+                                        appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich, AirCtrlParser.airOn));//绌鸿皟寮�
                                     }
                                     break;
                                 case 1://鎭掓俯鍣ㄦā寮忚繑鍥�
-                                        if (fanMode ==0 && thermostatMode == 0){
-                                            appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich,AirCtrlParser.airOff));//绌鸿皟鍏�
-                                        }else {
-                                            switch (thermostatMode){
-                                                case 1://鑷姩妯″紡
-                                                    appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode,AirCtrlParser.airModeAuto));
-                                                    break;
-                                                case 3://鍒跺喎妯″紡
-                                                    appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode,AirCtrlParser.airModeRefTem));
-                                                    break;
-                                                case 4://鍒剁儹妯″紡
-                                                    appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode,AirCtrlParser.airModeHeatTem));
-                                                    break;
-                                                case 7://閫氶妯″紡
-                                                    appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode,AirCtrlParser.airModeVen));
-                                                    break;
-                                                case 8://鎶芥箍妯″紡
-                                                    appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode,AirCtrlParser.airModeDehum));
-                                                    break;
-                                            }
+                                    if (fanMode == 0 && thermostatMode == 0) {
+                                        appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich, AirCtrlParser.airOff));//绌鸿皟鍏�
+                                    } else {
+                                        switch (thermostatMode) {
+                                            case 1://鑷姩妯″紡
+                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode, AirCtrlParser.airModeAuto));
+                                                break;
+                                            case 3://鍒跺喎妯″紡
+                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode, AirCtrlParser.airModeRefTem));
+                                                break;
+                                            case 4://鍒剁儹妯″紡
+                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode, AirCtrlParser.airModeHeatTem));
+                                                break;
+                                            case 7://閫氶妯″紡
+                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode, AirCtrlParser.airModeVen));
+                                                break;
+                                            case 8://鎶芥箍妯″紡
+                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airMode, AirCtrlParser.airModeDehum));
+                                                break;
                                         }
+                                    }
 
                                     break;
                                 case 2://閫氶鍣ㄦā寮忚繑鍥�
-                                    if (fanMode == 0 && thermostatMode == 0){
-                                        appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich,AirCtrlParser.airOff)); //绌鸿皟鍏�
-                                    }else {
-                                        switch (fanMode){
+                                    if (fanMode == 0 && thermostatMode == 0) {
+                                        appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich, AirCtrlParser.airOff)); //绌鸿皟鍏�
+                                    } else {
+                                        switch (fanMode) {
                                             case 1://浣庨
-                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed,AirCtrlParser.airSpeedLow));
+                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed, AirCtrlParser.airSpeedLow));
                                                 break;
                                             case 2://涓
-                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed,AirCtrlParser.airSpeedMid));
+                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed, AirCtrlParser.airSpeedMid));
                                                 break;
                                             case 3://楂橀
-                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed,AirCtrlParser.airSpeedHigh));
+                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed, AirCtrlParser.airSpeedHigh));
                                                 break;
                                             case 5://鑷姩
-                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed,AirCtrlParser.airSpeedAuto));
+                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSpeed, AirCtrlParser.airSpeedAuto));
                                                 break;
                                         }
                                     }
                                     break;
                                 case 3://璁剧疆娓╁害妯″紡杩斿洖
-                                    if (fanMode == 0 && thermostatMode == 0){
-                                        appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich,AirCtrlParser.airOff)); //绌鸿皟鍏�
-                                    }else {
-                                        switch (thermostatMode){
+                                    if (fanMode == 0 && thermostatMode == 0) {
+                                        appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.airSwich, AirCtrlParser.airOff)); //绌鸿皟鍏�
+                                    } else {
+                                        switch (thermostatMode) {
                                             case 1://TODO 鑷姩妯″紡娓╁害杩斿洖闇�瑕佸崗璁笂鐨�
-                                                if (coolingSetpoint !=0 && heatingSetpoint ==0 ){
-                                                    appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.autoTem,coolingSetpoint));
-                                                }else {
-                                                    appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.autoTem,heatingSetpoint));
+                                                if (coolingSetpoint != 0 && heatingSetpoint == 0) {
+                                                    appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.autoTem, coolingSetpoint));
+                                                } else {
+                                                    appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.autoTem, heatingSetpoint));
                                                 }
                                                 break;
                                             case 3://鍒跺喎妯″紡
-                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.refTem,coolingSetpoint));
+                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.refTem, coolingSetpoint));
                                                 break;
                                             case 4://鍒剁儹妯″紡
-                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.heatTem,heatingSetpoint));
+                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.heatTem, heatingSetpoint));
                                                 break;
                                             case 8://鎶芥箍妯″紡
-                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.dehumTem,coolingSetpoint));
+                                                appliancesInfo.setArrCurState(AirCtrlParser.getAirPanelAddByte(AirCtrlParser.dehumTem, coolingSetpoint));
                                                 break;
                                         }
                                     }
                                     break;
                             }
-                            EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo,true));
+                            EventBus.getDefault().post(new DeviceStateEvent(appliancesInfo, true));
                             break;
                         case ZigbeeDeviceID.AirPanel:
                             //鏂伴璁惧鍥炶皟
                             statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusReadBackBean.class);
                             FreshAirBackInfo freshAirBackInfo = new FreshAirBackInfo();
                             freshAirBackInfo.setAppliancesInfo(appliancesInfo);
-                            switch (statusReadBackBean.getValue()){
+                            switch (statusReadBackBean.getValue()) {
                                 case 0://椋庢墖鍏�
                                     freshAirBackInfo.setIsOn(0);
                                     freshAirBackInfo.setFreshAirSpeed(0);
@@ -909,12 +909,12 @@
                                 case 255:
                                     break;
                             }
-                            EventBus.getDefault().post(new FreshAirFeedBackEvent(freshAirBackInfo,true));
+                            EventBus.getDefault().post(new FreshAirFeedBackEvent(freshAirBackInfo, true));
                             break;
                         case ZigbeeDeviceID.SceneMark:
                             //鍦烘櫙鍥炶皟
-                            statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(),StatusReadBackBean.class);
-                            if (statusReadBackBean.getValue() == 1){
+                            statusReadBackBean = JsonUtil.parseJsonWithGson(event.getJson(), StatusReadBackBean.class);
+                            if (statusReadBackBean.getValue() == 1) {
                                 LogicCtrlBackInfo logicCtrlBackInfo = new LogicCtrlBackInfo();
                                 logicCtrlBackInfo.setAppliancesInfo(appliancesInfo);
                                 EventBus.getDefault().post(new LogicFeedBackEvent(logicCtrlBackInfo, true));
@@ -923,7 +923,7 @@
                     }
                 }
             });
-        }else {
+        } else {
             if (appliancesInfo == null) {
                 return;
             }
@@ -1131,8 +1131,8 @@
                             && info.getChannelNum() == infos.get(j).getChannelNum()
                     ) {
                         //杩欓噷搴旇鏄淇鐨勶紝鏆傛椂鏈壘鍒般��
-                         //20190712瑙e喅寮哄埗杞崲int绫诲瀷闂��
-                        int  state = HDLUtlis.getIntegerByObject(infos.get(j).getCurStateObject());
+                        //20190712瑙e喅寮哄埗杞崲int绫诲瀷闂��
+                        int state = HDLUtlis.getIntegerByObject(infos.get(j).getCurStateObject());
                         switch (state) {
                             case -1:
                                 curState = 0;
diff --git a/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommandText.java b/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommandText.java
index ab4e1fb..59422a0 100644
--- a/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommandText.java
+++ b/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommandText.java
@@ -1,6 +1,7 @@
 package com.hdl.sdk.hdl_core.HDLDeviceManger.Core;
 
 import android.util.Log;
+
 import com.google.gson.Gson;
 import com.hdl.sdk.hdl_core.Config.ZigbeeDeviceID;
 import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.ZigbeeBean.CommonErrorBean;
@@ -39,7 +40,7 @@
     private static boolean isFinished = false;//鏍囪鍥炶皟鍜屽満鏅澶囨暟鎹�
     public static Timer timer = null;//璁剧疆璁惧鍜屽満鏅洖璋�
     private static String ipAddr;//璁惧畾鎺у埗鏃剁殑ip鍦板潃
-    private static boolean is1 = false,is2 = false;//鏍囪鑾峰彇鐨勬俯搴﹀拰椋庢墖寮哄害
+    private static boolean is1 = false, is2 = false;//鏍囪鑾峰彇鐨勬俯搴﹀拰椋庢墖寮哄害
     private static int airTag = 0;//鏍囪浼犺繘鏉ユ帶鍒剁┖璋冪殑鏄粈涔堟柟寮忥紙寮�鍏炽�佹ā寮忋�侀閫熴�佽瀹氭俯搴︼級
     private static int airMode = 1;//鏍囨敞鏇存敼娓╁害鏃讹紝鎺у埗鐨勬ā寮�
     private static int scenesId = 0;//鍙戝満鏅椂浼犲叆锛屾柟渚挎敹鍦烘櫙
@@ -53,12 +54,12 @@
         this.ipAddr = ipAddr;
     }
 
-    public static void initData(){
+    public static void initData() {
         zigbeeDeviceListBeans = new ArrayList<>();//鎼滅储鎴栨帶鍒舵椂鍊欓渶鍒濆鍖�
     }
 
-    public interface DataCallBack{
-        void onSuccess( List<ZigbeeDeviceListBean> zigbeeDeviceListBeans,ZigbeeSceneListBean zigbeeSceneListBeans);
+    public interface DataCallBack {
+        void onSuccess(List<ZigbeeDeviceListBean> zigbeeDeviceListBeans, ZigbeeSceneListBean zigbeeSceneListBeans);
     }
 
     //澶勭悊鎺ユ敹鐨勬暟鎹�
@@ -70,24 +71,24 @@
         //鎵�鏈変俊鎭幏鍙栧畬澶勭悊
         //閫夋嫨缃戝叧鐨勮瘽瑕佸湪鍒ゆ柇涓姞)
 
-        if (topic.contains("Scene/GetInfo_Respon")){
+        if (topic.contains("Scene/GetInfo_Respon")) {
             //澶勭悊鎼滅储鍒扮殑鍦烘櫙
             handleSceneList(message);
         }
 
-        if (topic.contains("DeviceInfoRespon")){
+        if (topic.contains("DeviceInfoRespon")) {
             //澶勭悊鑾峰彇鍒扮殑璁惧
             handleDeviceList(message);
         }
 
-        if (topic.contains("Scene/Open_Respon")){
+        if (topic.contains("Scene/Open_Respon")) {
             //杩斿洖鍦烘櫙琚墽琛�
             reportSceneStatus(message);
             return;
         }
 
-        if (topic.contains("DeviceInfoResponEnd")&&
-                zigbeeDeviceListBeans.get(0).getData().getGwId().equals(gatewayId)){
+        if (topic.contains("DeviceInfoResponEnd") &&
+                zigbeeDeviceListBeans.get(0).getData().getGwId().equals(gatewayId)) {
             Log.d("11113", "绋嬪簭鎺ュ彈瀹岃繘鏉ュ鐞�: ");
             isFinished = true;
         }
@@ -97,14 +98,14 @@
             return;
         }
 
-        ZigbeeReportBean zigbeeReportBean =JsonUtil.parseJsonWithGson(message, ZigbeeReportBean.class);
+        ZigbeeReportBean zigbeeReportBean = JsonUtil.parseJsonWithGson(message, ZigbeeReportBean.class);
         int cluterId = zigbeeReportBean.getData().getCluterID();
-        if (!(cluterId == 6 || cluterId==8 || cluterId == 258 || cluterId == 513 || cluterId == 514)) {
+        if (!(cluterId == 6 || cluterId == 8 || cluterId == 258 || cluterId == 513 || cluterId == 514)) {
             HDLLog.info("涓嶅鐞嗙殑cluterId:" + cluterId);
             return;
         }
         int deviceID = zigbeeReportBean.getDevice_ID();
-        switch (deviceID){
+        switch (deviceID) {
             case ZigbeeDeviceID.OnOffOutput:
                 //鐏厜璁惧
                 StatusReadBackBean lightReadBackBean = new StatusReadBackBean();
@@ -121,28 +122,28 @@
                 }
                 break;
             case ZigbeeDeviceID.WindowCoveringDevice:
-                 //绐楀笜璁惧
-                 StatusReadBackBean curtainReadBackBean = new StatusReadBackBean();
-                  for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean : zigbeeReportBean.getData()
-                     .getAttriBute()){
-                     if (attriButeBean.getAttriButeId() == 8){
-                         curtainReadBackBean.setValue(attriButeBean.getAttriButeData());
-                     }
-                  }
-                  String curtainReadBackJson = JsonUtil.toJson(curtainReadBackBean);
-                  if (stateListener != null) {
-                      StateEvent event = new StateEvent(curtainReadBackJson);
-                      stateListener.onData(event);
-                  }
+                //绐楀笜璁惧
+                StatusReadBackBean curtainReadBackBean = new StatusReadBackBean();
+                for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean : zigbeeReportBean.getData()
+                        .getAttriBute()) {
+                    if (attriButeBean.getAttriButeId() == 8) {
+                        curtainReadBackBean.setValue(attriButeBean.getAttriButeData());
+                    }
+                }
+                String curtainReadBackJson = JsonUtil.toJson(curtainReadBackBean);
+                if (stateListener != null) {
+                    StateEvent event = new StateEvent(curtainReadBackJson);
+                    stateListener.onData(event);
+                }
                 break;
             case ZigbeeDeviceID.DimmableLight:
                 //璋冨厜鍣ㄨ澶�
                 StatusReadBackBean dimmableLightReadBackBean = new StatusReadBackBean();
                 for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean : zigbeeReportBean.getData()
                         .getAttriBute()) {
-                    if (attriButeBean.getAttriButeId() == 0 && cluterId==8 ) {
-                        Log.d("2222", "璋冨厜鍣ㄦ暟鎹�: "+attriButeBean.getAttriButeData());
-                        dimmableLightReadBackBean.setValue((int) (attriButeBean.getAttriButeData()/2.55));
+                    if (attriButeBean.getAttriButeId() == 0 && cluterId == 8) {
+                        Log.d("2222", "璋冨厜鍣ㄦ暟鎹�: " + attriButeBean.getAttriButeData());
+                        dimmableLightReadBackBean.setValue((int) (attriButeBean.getAttriButeData() / 2.55));
                     }
                 }
                 String dimmableLightReadBackJson = JsonUtil.toJson(dimmableLightReadBackBean);
@@ -153,42 +154,43 @@
                 break;
             case ZigbeeDeviceID.Thermostat:
                 //绌鸿皟璁惧
-                for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean:zigbeeReportBean.getData().getAttriBute()){
+                for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean : zigbeeReportBean.getData().getAttriBute()) {
 
-                    if (attriButeBean.getAttriButeId() == 28 && attriButeBean.getAttriButeDataType() == 48){
+                    if (attriButeBean.getAttriButeId() == 28 && attriButeBean.getAttriButeDataType() == 48) {
                         //褰撳墠鐨勭┖璋冩ā寮�
                         int thermostatmode = attriButeBean.getAttriButeData();
                         thermostatReadBackBean.setThermostatmode(thermostatmode);
                         is1 = true;
                     }
 
-                    if (attriButeBean.getAttriButeId() == 0 && attriButeBean.getAttriButeDataType() == 0x30){
+                    if (attriButeBean.getAttriButeId() == 0 && attriButeBean.getAttriButeDataType() == 0x30) {
                         //褰撳墠鐨勬柊椋庢ā寮�
                         int fanmode = attriButeBean.getAttriButeData();
                         thermostatReadBackBean.setFanmode(fanmode);
                         is2 = true;
                     }
-                    if (attriButeBean.getAttriButeId() == 17 && attriButeBean.getAttriButeDataType() == 41){
+                    if (attriButeBean.getAttriButeId() == 17 && attriButeBean.getAttriButeDataType() == 41) {
                         //鍒跺喎娓╁害
-                        int coolingSetpoint = attriButeBean.getAttriButeData()/100;
+                        int coolingSetpoint = attriButeBean.getAttriButeData() / 100;
                         thermostatReadBackBean.setCoolingSetpoint(coolingSetpoint);
                         //Log.d("11113", "鍒跺喎娓╁害涓�: "+coolingSetpoint);
 
                     }
-                    if (attriButeBean.getAttriButeId() == 18 && attriButeBean.getAttriButeDataType() == 41){
+                    if (attriButeBean.getAttriButeId() == 18 && attriButeBean.getAttriButeDataType() == 41) {
                         //鍒剁儹娓╁害
-                        int heatingSetpoint = attriButeBean.getAttriButeData()/100;
+                        int heatingSetpoint = attriButeBean.getAttriButeData() / 100;
                         thermostatReadBackBean.setHeatingSetpoint(heatingSetpoint);
                         //Log.d("11113", "鍒剁儹娓╁害涓�: "+heatingSetpoint);
 
                     }
                 }
-                if (is1 && is2 ){ //浠h〃鑾峰彇鎭掓俯鍣ㄥ拰椋庢墖鐨勭姸鎬佸悗鐨勫洖璋�
-                    is1 = false;is2 = false;
+                if (is1 && is2) { //浠h〃鑾峰彇鎭掓俯鍣ㄥ拰椋庢墖鐨勭姸鎬佸悗鐨勫洖璋�
+                    is1 = false;
+                    is2 = false;
                     thermostatReadBackBean.setTag(airTag);
                     String thermostatReadJson = JsonUtil.toJson(thermostatReadBackBean);
                     //Log.d("11113", "鏁版嵁鏁版嵁鏁版嵁"+thermostatReadJson);
-                    if (stateListener != null ){
+                    if (stateListener != null) {
                         StateEvent event = new StateEvent(thermostatReadJson);
                         stateListener.onData(event);
                     }
@@ -197,8 +199,8 @@
             case ZigbeeDeviceID.AirPanel:
                 //鏂伴璁惧
                 StatusReadBackBean airPanelReadBackBean = new StatusReadBackBean();
-                for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean : zigbeeReportBean.getData().getAttriBute()){
-                    if (attriButeBean.getAttriButeId() == 0 && attriButeBean.getAttriButeDataType() == 0x30){
+                for (ZigbeeReportBean.DataBean.AttriButeBean attriButeBean : zigbeeReportBean.getData().getAttriBute()) {
+                    if (attriButeBean.getAttriButeId() == 0 && attriButeBean.getAttriButeDataType() == 0x30) {
                         //褰撳墠鐨勬柊椋庢ā寮�
                         int fanmode = attriButeBean.getAttriButeData();
                         airPanelReadBackBean.setValue(fanmode);
@@ -213,10 +215,10 @@
         }
     }
 
-    public static void sendThirdPartyJson(final ZigbeeDeviceSaveBean zigbeeJson, String statusJson, int type){
+    public static void sendThirdPartyJson(final ZigbeeDeviceSaveBean zigbeeJson, String statusJson, int type) {
         HDLZigbeeMqtt.connect1(ipAddr);
         // 鍒ゆ柇鏄痺rite 杩樻槸 read锛屾帶鍒舵椂鍒ゆ柇浼犻�掑弬鏁�
-        switch (type){
+        switch (type) {
             case ZigbeeDeviceID.OnOffOutput:
                 //缁х數鍣�
                 GatewayCommondBean gatewayCommondBean = JsonUtil.parseJsonWithGson(statusJson, GatewayCommondBean.class);
@@ -224,10 +226,10 @@
                     reportError("cmd parameter error, please check it out");
                     return;
                 }
-                switch (gatewayCommondBean.getCmd()){
+                switch (gatewayCommondBean.getCmd()) {
                     case "write":
                         // 鐏厜鎺у埗锛�0鍏� 1寮�
-                        if (!(gatewayCommondBean.getValue()==1||gatewayCommondBean.getValue()==0)){
+                        if (!(gatewayCommondBean.getValue() == 1 || gatewayCommondBean.getValue() == 0)) {
                             reportError("Wrong lighting control parameters");
                             return;
                         }
@@ -241,7 +243,7 @@
                         new Thread(new Runnable() {
                             @Override
                             public void run() {
-                                HDLZigbeeMqtt.sendMqttData1( "DeviceControl", ctrlLightjson);
+                                HDLZigbeeMqtt.sendMqttData1("DeviceControl", ctrlLightjson);
                             }
                         }).start();
                         break;
@@ -272,14 +274,14 @@
                     return;
                 }
                 //绐楀笜鎺у埗
-                switch (gatewayCurtainBean.getCmd()){
+                switch (gatewayCurtainBean.getCmd()) {
                     case "write":
                         ZigbeeCtrlBean curtainCtrl = new ZigbeeCtrlBean();
                         curtainCtrl.setCluster_ID(258);
                         int curtainCmd;
-                        switch (gatewayCurtainBean.getTag()){
+                        switch (gatewayCurtainBean.getTag()) {
                             case 0:
-                                switch (gatewayCurtainBean.getValue()){
+                                switch (gatewayCurtainBean.getValue()) {
                                     case 0:
                                         curtainCmd = 0;
                                         break;
@@ -328,53 +330,53 @@
                         curtainBean.setAttriBute(curtainAttriButeBeanList);
                         curtainReadBean.setData(curtainBean);
                         String curtainReadJson = JsonUtil.toJson(curtainReadBean);
-                        HDLZigbeeMqtt.sendMqttData1("GetDeviceStatus",curtainReadJson);
+                        HDLZigbeeMqtt.sendMqttData1("GetDeviceStatus", curtainReadJson);
                         break;
                 }
                 break;
-                case ZigbeeDeviceID.DimmableLight:
-                    //璋冨厜鐏�
-                    GatewayCommondBean dimmableLightBean = JsonUtil.parseJsonWithGson(statusJson, GatewayCommondBean.class);
-                    if (dimmableLightBean.getCmd() == null) {
-                        reportError("cmd parameter error, please check it out");
-                        return;
-                    }
-                    switch (dimmableLightBean.getCmd()){
-                        case "write":
-                            // 璋冨厜鎺у埗
-                            ZigbeeDimmableCtrlBean light = new ZigbeeDimmableCtrlBean();
-                            ZigbeeDimmableCtrlBean.Data data = new ZigbeeDimmableCtrlBean.Data();
-                            light.setCluster_ID(8);
-                            light.setSendMode(2);
-                            light.setCommand(4);
-                            light.setDeviceAddr(zigbeeJson.getDeviceAddr());
-                            light.setEpoint(zigbeeJson.getEpoint());
-                            data.setLevel(dimmableLightBean.getValue());
-                            data.setTransitionTime(2);
-                            light.setData(data);
-                            String ctrlLightjson = JsonUtil.toJson(light);
-                            HDLZigbeeMqtt.sendMqttData1( "DeviceControl", ctrlLightjson);
-                            break;
-                        case "read":
-                            ZigbeeReadBean lightReadBean = new ZigbeeReadBean();
-                            lightReadBean.setDeviceAddr(zigbeeJson.getDeviceAddr());
-                            lightReadBean.setEpoint(zigbeeJson.getEpoint());
-                            lightReadBean.setCluster_ID(8);
-                            lightReadBean.setCommand(108);
-                            lightReadBean.setSendMode(2);
+            case ZigbeeDeviceID.DimmableLight:
+                //璋冨厜鐏�
+                GatewayCommondBean dimmableLightBean = JsonUtil.parseJsonWithGson(statusJson, GatewayCommondBean.class);
+                if (dimmableLightBean.getCmd() == null) {
+                    reportError("cmd parameter error, please check it out");
+                    return;
+                }
+                switch (dimmableLightBean.getCmd()) {
+                    case "write":
+                        // 璋冨厜鎺у埗
+                        ZigbeeDimmableCtrlBean light = new ZigbeeDimmableCtrlBean();
+                        ZigbeeDimmableCtrlBean.Data data = new ZigbeeDimmableCtrlBean.Data();
+                        light.setCluster_ID(8);
+                        light.setSendMode(2);
+                        light.setCommand(4);
+                        light.setDeviceAddr(zigbeeJson.getDeviceAddr());
+                        light.setEpoint(zigbeeJson.getEpoint());
+                        data.setLevel(dimmableLightBean.getValue());
+                        data.setTransitionTime(2);
+                        light.setData(data);
+                        String ctrlLightjson = JsonUtil.toJson(light);
+                        HDLZigbeeMqtt.sendMqttData1("DeviceControl", ctrlLightjson);
+                        break;
+                    case "read":
+                        ZigbeeReadBean lightReadBean = new ZigbeeReadBean();
+                        lightReadBean.setDeviceAddr(zigbeeJson.getDeviceAddr());
+                        lightReadBean.setEpoint(zigbeeJson.getEpoint());
+                        lightReadBean.setCluster_ID(8);
+                        lightReadBean.setCommand(108);
+                        lightReadBean.setSendMode(2);
 
-                            ZigbeeReadBean.DataBean lightBean = new ZigbeeReadBean.DataBean();
-                            List<ZigbeeReadBean.DataBean.AttriButeBean> lightAttriButeBeanList = new ArrayList<>();
-                            ZigbeeReadBean.DataBean.AttriButeBean lightAttriButeBean = new ZigbeeReadBean.DataBean.AttriButeBean();
-                            lightAttriButeBean.setAttriButeId(0);
-                            lightAttriButeBeanList.add(lightAttriButeBean);
-                            lightBean.setAttriBute(lightAttriButeBeanList);
-                            lightReadBean.setData(lightBean);
-                            String lightReadJson = JsonUtil.toJson(lightReadBean);
-                            HDLZigbeeMqtt.sendMqttData1("GetDeviceStatus", lightReadJson);
-                            break;
-                    }
-                    break;
+                        ZigbeeReadBean.DataBean lightBean = new ZigbeeReadBean.DataBean();
+                        List<ZigbeeReadBean.DataBean.AttriButeBean> lightAttriButeBeanList = new ArrayList<>();
+                        ZigbeeReadBean.DataBean.AttriButeBean lightAttriButeBean = new ZigbeeReadBean.DataBean.AttriButeBean();
+                        lightAttriButeBean.setAttriButeId(0);
+                        lightAttriButeBeanList.add(lightAttriButeBean);
+                        lightBean.setAttriBute(lightAttriButeBeanList);
+                        lightReadBean.setData(lightBean);
+                        String lightReadJson = JsonUtil.toJson(lightReadBean);
+                        HDLZigbeeMqtt.sendMqttData1("GetDeviceStatus", lightReadJson);
+                        break;
+                }
+                break;
             case ZigbeeDeviceID.Thermostat:
                 //绌鸿皟
                 final GatewayCommondBean thermostatBean = JsonUtil.parseJsonWithGson(statusJson, GatewayCommondBean.class);
@@ -382,17 +384,17 @@
                     reportError("cmd parameter error, please check it out");
                     return;
                 }
-                switch (thermostatBean.getCmd()){
-                    case  "write":
-                        switch (airTag){
+                switch (thermostatBean.getCmd()) {
+                    case "write":
+                        switch (airTag) {
                             case 0://寮�鍏�,寮�鍏充紶鍏ュ紑鍏�01
-                                switch (thermostatBean.getValue()){
+                                switch (thermostatBean.getValue()) {
                                     case 0://绌鸿皟鍏�
                                         new Thread(new Runnable() {
                                             @Override
                                             public void run() {
-                                                sendFan(zigbeeJson,0);//鍙戦�侀鎵囨帶鍒�
-                                                sendThermostat(zigbeeJson,0);//鍙戦�佹亽娓╁櫒
+                                                sendFan(zigbeeJson, 0);//鍙戦�侀鎵囨帶鍒�
+                                                sendThermostat(zigbeeJson, 0);//鍙戦�佹亽娓╁櫒
                                             }
                                         }).start();
                                         break;
@@ -400,8 +402,8 @@
                                         new Thread(new Runnable() {
                                             @Override
                                             public void run() {
-                                                sendThermostat(zigbeeJson,1);
-                                                sendFan(zigbeeJson,4);
+                                                sendThermostat(zigbeeJson, 1);
+                                                sendFan(zigbeeJson, 4);
                                             }
                                         }).start();
 
@@ -412,7 +414,7 @@
                                 new Thread(new Runnable() {
                                     @Override
                                     public void run() {
-                                        sendThermostat(zigbeeJson,thermostatBean.getValue());
+                                        sendThermostat(zigbeeJson, thermostatBean.getValue());
                                     }
                                 }).start();
                                 break;
@@ -420,17 +422,17 @@
                                 new Thread(new Runnable() {
                                     @Override
                                     public void run() {
-                                        sendFan(zigbeeJson,thermostatBean.getValue());
+                                        sendFan(zigbeeJson, thermostatBean.getValue());
                                     }
                                 }).start();
                                 break;
                             case 3://鎺у埗娓╁害
-                                switch (airMode){
+                                switch (airMode) {
                                     case 0://鍒剁儹
                                         new Thread(new Runnable() {
                                             @Override
                                             public void run() {
-                                                contrlThermostat(zigbeeJson,thermostatBean.getValue(),0);
+                                                contrlThermostat(zigbeeJson, thermostatBean.getValue(), 0);
                                             }
                                         }).start();
                                         break;
@@ -438,7 +440,7 @@
                                         new Thread(new Runnable() {
                                             @Override
                                             public void run() {
-                                                contrlThermostat(zigbeeJson,thermostatBean.getValue(),1);
+                                                contrlThermostat(zigbeeJson, thermostatBean.getValue(), 1);
                                             }
                                         }).start();
                                         break;
@@ -446,7 +448,7 @@
                                         new Thread(new Runnable() {
                                             @Override
                                             public void run() {
-                                                contrlThermostat(zigbeeJson,thermostatBean.getValue(),2);
+                                                contrlThermostat(zigbeeJson, thermostatBean.getValue(), 2);
                                             }
                                         }).start();
                                         break;
@@ -493,9 +495,9 @@
                     reportError("cmd parameter error, please check it out");
                     return;
                 }
-                switch (airpanelBean.getCmd()){
-                    case  "write":
-                        sendNewFan(zigbeeJson,airpanelBean.getValue());
+                switch (airpanelBean.getCmd()) {
+                    case "write":
+                        sendNewFan(zigbeeJson, airpanelBean.getValue());
                         break;
                     case "read":
                         readFan(zigbeeJson);
@@ -507,49 +509,50 @@
     }
 
     //鍒濆鍖栫姸鎬佷俊鎭�
-    public static void initStatus(final ZigbeeDeviceSaveBean zigbeeDevice, final int type){
+    public static void initStatus(final ZigbeeDeviceSaveBean zigbeeDevice, final int type) {
         initData();
         airTag = 0;
         new Thread(new Runnable() {
             @Override
             public void run() {
-                String sendStatus = HDLCommandText.setSendStatus("read",0);//璇讳笉闇�瑕佺煡閬撶姸鎬侊紝闅忎究濉竴涓�
-                HDLCommandText.sendThirdPartyJson(zigbeeDevice,sendStatus, type);
+                String sendStatus = HDLCommandText.setSendStatus("read", 0);//璇讳笉闇�瑕佺煡閬撶姸鎬侊紝闅忎究濉竴涓�
+                HDLCommandText.sendThirdPartyJson(zigbeeDevice, sendStatus, type);
             }
         }).start();
     }
 
     //鏇存柊绌鸿皟鐘舵��
-    public static void initAirStatus(final ZigbeeDeviceSaveBean zigbeeDevice,final int type ,int tag){
+    public static void initAirStatus(final ZigbeeDeviceSaveBean zigbeeDevice, final int type, int tag) {
         airTag = tag;
-        String sendStatus = HDLCommandText.setSendStatus("read",0);//璇讳笉闇�瑕佺煡閬撶姸鎬侊紝闅忎究濉竴涓�
-        HDLCommandText.sendThirdPartyJson(zigbeeDevice,sendStatus, type);
+        String sendStatus = HDLCommandText.setSendStatus("read", 0);//璇讳笉闇�瑕佺煡閬撶姸鎬侊紝闅忎究濉竴涓�
+        HDLCommandText.sendThirdPartyJson(zigbeeDevice, sendStatus, type);
     }
 
 
     //鍙戦�佺┖璋冩帶鍒�
-    public static void sendAirStatus(final ZigbeeDeviceSaveBean zigbeeDevice,final int type ,final int value,
-                                     int tag,int mode){
-        airTag = tag;  airMode = mode;
-        String sendStatus = HDLCommandText.setSendStatus("write",value);
-        HDLCommandText.sendThirdPartyJson(zigbeeDevice,sendStatus,type);
+    public static void sendAirStatus(final ZigbeeDeviceSaveBean zigbeeDevice, final int type, final int value,
+                                     int tag, int mode) {
+        airTag = tag;
+        airMode = mode;
+        String sendStatus = HDLCommandText.setSendStatus("write", value);
+        HDLCommandText.sendThirdPartyJson(zigbeeDevice, sendStatus, type);
     }
 
     //鍙戦�佸紑鍏虫帶鍒舵帶鍒�
-    public static void sendStatus(final ZigbeeDeviceSaveBean zigbeeDevice,final int type,final int value){
-        String sendStatus = HDLCommandText.setSendStatus("write",value);
-        HDLCommandText.sendThirdPartyJson(zigbeeDevice,sendStatus,type);
+    public static void sendStatus(final ZigbeeDeviceSaveBean zigbeeDevice, final int type, final int value) {
+        String sendStatus = HDLCommandText.setSendStatus("write", value);
+        HDLCommandText.sendThirdPartyJson(zigbeeDevice, sendStatus, type);
     }
 
     //鍒濆鍖栫獥甯樻帶鍒�
-    public static void sendCurtainStatus(final ZigbeeDeviceSaveBean zigbeeDevice,final int type,
-                                         final int value,final int tag){
-        String sendStatus = HDLCommandText.setSendCurtainStatus("write",value,tag);
-        HDLCommandText.sendThirdPartyJson(zigbeeDevice,sendStatus,type);
+    public static void sendCurtainStatus(final ZigbeeDeviceSaveBean zigbeeDevice, final int type,
+                                         final int value, final int tag) {
+        String sendStatus = HDLCommandText.setSendCurtainStatus("write", value, tag);
+        HDLCommandText.sendThirdPartyJson(zigbeeDevice, sendStatus, type);
     }
 
     //璁剧疆缁х數鍣ㄧ殑鐘舵��
-    private static String setSendStatus(String status,int value){
+    private static String setSendStatus(String status, int value) {
         GatewayCommondBean gatewayCommondBean = new GatewayCommondBean();
         gatewayCommondBean.setCmd(status);
         gatewayCommondBean.setValue(value);
@@ -558,7 +561,7 @@
     }
 
     //璁剧疆绐楀笜鐨勭姸鎬�
-    private static String setSendCurtainStatus(String status,int value,int tag){
+    private static String setSendCurtainStatus(String status, int value, int tag) {
         GatewayCurtainBean gatewayCurtainBean = new GatewayCurtainBean();
         gatewayCurtainBean.setCmd(status);
         gatewayCurtainBean.setValue(value);
@@ -568,7 +571,7 @@
     }
 
     //鍙戦�佹亽娓╁櫒妯″紡
-    private static void sendThermostat(ZigbeeDeviceSaveBean zigbeeJson,int value){
+    private static void sendThermostat(ZigbeeDeviceSaveBean zigbeeJson, int value) {
         ZigbeeWriteCtrlBean zigbeeOffBean = new ZigbeeWriteCtrlBean();
         zigbeeOffBean.setDeviceAddr(zigbeeJson.getDeviceAddr());
         zigbeeOffBean.setEpoint(zigbeeJson.getEpoint());
@@ -580,12 +583,12 @@
         zigbeeOffDataBean.setAttributeData(value);
         zigbeeOffBean.setData(zigbeeOffDataBean);
         String zigbeeoffJson = JsonUtil.toJson(zigbeeOffBean);
-        HDLZigbeeMqtt.sendMqttData1("SetWritableValue",zigbeeoffJson);
-        initAirStatus(zigbeeJson,ZigbeeDeviceID.Thermostat,airTag);
+        HDLZigbeeMqtt.sendMqttData1("SetWritableValue", zigbeeoffJson);
+        initAirStatus(zigbeeJson, ZigbeeDeviceID.Thermostat, airTag);
     }
 
     //鍙戦�侀妯″紡
-    private static void sendFan(final ZigbeeDeviceSaveBean zigbeeJson, int value){
+    private static void sendFan(final ZigbeeDeviceSaveBean zigbeeJson, int value) {
         ZigbeeWriteCtrlBean zigbeeOffBean = new ZigbeeWriteCtrlBean();
         zigbeeOffBean.setDeviceAddr(zigbeeJson.getDeviceAddr());
         zigbeeOffBean.setEpoint(zigbeeJson.getEpoint());
@@ -597,12 +600,12 @@
         zigbeeOffDataBean.setAttributeData(value);
         zigbeeOffBean.setData(zigbeeOffDataBean);
         String zigbeeoffJson = JsonUtil.toJson(zigbeeOffBean);
-        HDLZigbeeMqtt.sendMqttData1("SetWritableValue",zigbeeoffJson);
-        initAirStatus(zigbeeJson,ZigbeeDeviceID.Thermostat,airTag);
+        HDLZigbeeMqtt.sendMqttData1("SetWritableValue", zigbeeoffJson);
+        initAirStatus(zigbeeJson, ZigbeeDeviceID.Thermostat, airTag);
     }
 
     //鏂伴鐘舵�佷笅鍙戦�佹柊椋庢ā寮�
-    private static void sendNewFan(final ZigbeeDeviceSaveBean zigbeeJson, int value){
+    private static void sendNewFan(final ZigbeeDeviceSaveBean zigbeeJson, int value) {
         ZigbeeWriteCtrlBean zigbeeOffBean = new ZigbeeWriteCtrlBean();
         zigbeeOffBean.setDeviceAddr(zigbeeJson.getDeviceAddr());
         zigbeeOffBean.setEpoint(zigbeeJson.getEpoint());
@@ -614,12 +617,12 @@
         zigbeeOffDataBean.setAttributeData(value);
         zigbeeOffBean.setData(zigbeeOffDataBean);
         String zigbeeoffJson = JsonUtil.toJson(zigbeeOffBean);
-        HDLZigbeeMqtt.sendMqttData1("SetWritableValue",zigbeeoffJson);
-        initStatus(zigbeeJson,ZigbeeDeviceID.AirPanel);
+        HDLZigbeeMqtt.sendMqttData1("SetWritableValue", zigbeeoffJson);
+        initStatus(zigbeeJson, ZigbeeDeviceID.AirPanel);
     }
 
     //娓╁害鎺у埗
-    private static void contrlThermostat(ZigbeeDeviceSaveBean zigbeeJson,int value, int mode){
+    private static void contrlThermostat(ZigbeeDeviceSaveBean zigbeeJson, int value, int mode) {
         ZigbeeThermostatCtrlBean zigbeeThermostatCtrlBean = new ZigbeeThermostatCtrlBean();
         zigbeeThermostatCtrlBean.setDeviceAddr(zigbeeJson.getDeviceAddr());
         zigbeeThermostatCtrlBean.setEpoint(zigbeeJson.getEpoint());
@@ -631,12 +634,12 @@
         zigbeeData.setAmount(value);
         zigbeeThermostatCtrlBean.setData(zigbeeData);
         String zigbeeCtrlJson = JsonUtil.toJson(zigbeeThermostatCtrlBean);
-        HDLZigbeeMqtt.sendMqttData1("DeviceControl",zigbeeCtrlJson);
-        initAirStatus(zigbeeJson,ZigbeeDeviceID.Thermostat,airTag);
+        HDLZigbeeMqtt.sendMqttData1("DeviceControl", zigbeeCtrlJson);
+        initAirStatus(zigbeeJson, ZigbeeDeviceID.Thermostat, airTag);
     }
 
     //鏌ョ湅椋庨��
-    private static void readFan(ZigbeeDeviceSaveBean zigbeeJson){
+    private static void readFan(ZigbeeDeviceSaveBean zigbeeJson) {
 
         //鑾峰彇褰撳墠閫氶淇℃伅
         ZigbeeReadBean fanBean = new ZigbeeReadBean();
@@ -657,7 +660,7 @@
     }
 
     //鍙戦�佸満鏅暟鎹�
-    public static void sendSceneStatus(int ScenesId,int DelayTime){
+    public static void sendSceneStatus(int ScenesId, int DelayTime) {
         scenesId = ScenesId;
         ZigbeeSceneCtrlBean zigbeeSceneCtrlBean = new ZigbeeSceneCtrlBean();
         zigbeeSceneCtrlBean.setCluster_ID(0);
@@ -667,19 +670,19 @@
         dataBean.setDelayTime(DelayTime);
         zigbeeSceneCtrlBean.setData(dataBean);
         String json = JsonUtil.toJson(zigbeeSceneCtrlBean);
-        HDLZigbeeMqtt.sendMqttData1("Scene/Open",json);
+        HDLZigbeeMqtt.sendMqttData1("Scene/Open", json);
     }
 
     //澶勭悊璁惧淇℃伅
     private static void handleDeviceList(String message) {
-        ZigbeeDeviceListBean zigbeeDeviceListBean = JsonUtil.parseJsonWithGson(message,ZigbeeDeviceListBean.class);
+        ZigbeeDeviceListBean zigbeeDeviceListBean = JsonUtil.parseJsonWithGson(message, ZigbeeDeviceListBean.class);
         zigbeeDeviceListBeans.add(zigbeeDeviceListBean);
     }
 
     //澶勭悊鍦烘櫙淇℃伅
     private static void handleSceneList(String message) {
         Gson gson = new Gson();
-        zigbeeSceneListBean = gson.fromJson(message,ZigbeeSceneListBean.class);
+        zigbeeSceneListBean = gson.fromJson(message, ZigbeeSceneListBean.class);
     }
 
     //澶勭悊鍦烘櫙鐨勬暟鎹�
@@ -690,11 +693,11 @@
             return;
         }
         StatusReadBackBean statusReadBackBean = new StatusReadBackBean();
-        if (sceneCtrlBackBean.getData().getScenesId() == scenesId){
+        if (sceneCtrlBackBean.getData().getScenesId() == scenesId) {
             statusReadBackBean.setValue(sceneCtrlBackBean.getData().getResult());
         }
         String Json = JsonUtil.toJson(statusReadBackBean);
-        Log.d("11114", "澶勭悊鏁版嵁鍥炶皟: "+Json);
+        Log.d("11114", "澶勭悊鏁版嵁鍥炶皟: " + Json);
         if (stateListener != null) {
             StateEvent event = new StateEvent(Json);
             stateListener.onData(event);
@@ -702,25 +705,26 @@
     }
 
     //鍥炶皟鑾峰彇鍒扮殑璁惧淇℃伅
-    public static void handleDeviceData(final DataCallBack dataCallBack){
+    public static void handleDeviceData(final DataCallBack dataCallBack) {
         timer = new Timer();
         timer.schedule(new TimerTask() {
             @Override
             public void run() {
-                if (!isFinished){
+                if (!isFinished) {
                     Log.d("11112", "run: 绋嬪簭鎵ц涓�");
-                }else {
+                } else {
                     timer.cancel();
                     timer.purge();
                     timer = null;
                     isFinished = false;
-                    dataCallBack.onSuccess(zigbeeDeviceListBeans,zigbeeSceneListBean);
+                    dataCallBack.onSuccess(zigbeeDeviceListBeans, zigbeeSceneListBean);
                 }
             }
-        },1,500);
+        }, 1, 500);
     }
-    public static void reSearch(){
-        if (timer != null){
+
+    public static void reSearch() {
+        if (timer != null) {
             timer.cancel();
             timer.purge();
             timer = null;
@@ -734,7 +738,7 @@
             CommonErrorBean errorBean = new CommonErrorBean();
             errorBean.setCmd("error");
             errorBean.setReason(reason);
-            String errorJson =JsonUtil.toJson(errorBean);
+            String errorJson = JsonUtil.toJson(errorBean);
             StateEvent event = new StateEvent(errorJson);
             stateListener.onData(event);
         }
diff --git a/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLZigbeeMqtt.java b/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLZigbeeMqtt.java
index 2495919..6c3a3b4 100644
--- a/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLZigbeeMqtt.java
+++ b/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLZigbeeMqtt.java
@@ -9,6 +9,7 @@
 import org.eclipse.paho.client.mqttv3.MqttException;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
 import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
+
 import com.hdl.sdk.hdl_core.HDLDeviceManger.Callback.PushCallback;
 import com.hdl.sdk.hdl_core.Util.LogUtil.HDLLog;
 
@@ -17,7 +18,8 @@
 
     private static final String clientid = "HDLZigbeeDriver";
     private static MqttClient client;
-    private static boolean isCancel  = false;
+    private static boolean isCancel = false;
+
     public static void setIsCancel(boolean isCancel) {
         HDLZigbeeMqtt.isCancel = isCancel;
     }
@@ -28,25 +30,25 @@
      */
     public static void connect1(String host) {
         try {
-                    client = new MqttClient("tcp://"+host+":1883", clientid, new MemoryPersistence());
-                    MqttConnectOptions options = new MqttConnectOptions();
-                    options.setCleanSession(false);
-                    options.setUserName("admin");
-                    options.setPassword("password".toCharArray());
-                    //璁剧疆鑷姩閲嶈繛
-                    options.setAutomaticReconnect(true);
-                    // 璁剧疆瓒呮椂鏃堕棿
-                    options.setConnectionTimeout(10);
-                    // 璁剧疆浼氳瘽蹇冭烦鏃堕棿
-                    options.setKeepAliveInterval(20);
-                    PushCallback pushCallback = new PushCallback();
-                    pushCallback.setHost(host);
-                    client.setCallback(pushCallback);
-                    client.connect(options);
-                    if (isCancel){
-                        client.close();
-                        isCancel = false;
-                    }
+            client = new MqttClient("tcp://" + host + ":1883", clientid, new MemoryPersistence());
+            MqttConnectOptions options = new MqttConnectOptions();
+            options.setCleanSession(false);
+            options.setUserName("admin");
+            options.setPassword("password".toCharArray());
+            //璁剧疆鑷姩閲嶈繛
+            options.setAutomaticReconnect(true);
+            // 璁剧疆瓒呮椂鏃堕棿
+            options.setConnectionTimeout(10);
+            // 璁剧疆浼氳瘽蹇冭烦鏃堕棿
+            options.setKeepAliveInterval(20);
+            PushCallback pushCallback = new PushCallback();
+            pushCallback.setHost(host);
+            client.setCallback(pushCallback);
+            client.connect(options);
+            if (isCancel) {
+                client.close();
+                isCancel = false;
+            }
         } catch (MqttException e) {
             e.printStackTrace();
         }
@@ -55,9 +57,9 @@
     /**
      * 鍙戦�乵qtt淇℃伅
      */
-    public static void sendMqttData1(String topic, String json)  {
-        HDLLog.info("send Mqtt to gateway:"+json);
-        Log.d("111133", "sendMqttData1: "+json);
+    public static void sendMqttData1(String topic, String json) {
+        HDLLog.info("send Mqtt to gateway:" + json);
+        Log.d("111133", "sendMqttData1: " + json);
         try {
             MqttMessage message = new MqttMessage();
             message.setQos(2);
@@ -68,7 +70,7 @@
             Log.d("111133", "宸茬粡鍙戦��");
             HDLLog.info("message is published completely!");
         } catch (MqttException e) {
-            Log.d("111133", "sendMqttData1: "+e.getMessage());
+            Log.d("111133", "sendMqttData1: " + e.getMessage());
             HDLLog.info("鍙戦�乵qtt淇℃伅鍑洪敊");
             e.printStackTrace();
         }
diff --git a/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/SearchZigbeeGateway.java b/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/SearchZigbeeGateway.java
index c7c367d..11018a1 100644
--- a/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/SearchZigbeeGateway.java
+++ b/Android_HDL_SDK_XW/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/SearchZigbeeGateway.java
@@ -12,7 +12,6 @@
 import java.util.TimerTask;
 
 
-
 import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.ZigbeeBean.ZigbeeGatewayInfoBean;
 import com.hdl.sdk.hdl_core.HDLDeviceManger.Callback.PushCallback;
 import com.hdl.sdk.hdl_core.Util.LogUtil.HDLLog;
@@ -30,13 +29,15 @@
     public static Timer searchTimer = null;
     private static DatagramSocket datagramSocket; // 鏁版嵁鎶ュ鎺ュ瓧
     private static boolean isStop = false;
-    public interface OnSearchListener{
-         void onSuccess( List<ZigbeeGatewayInfoBean> zigbeeGatewayInfoBeanList);
-         void onEorror(Exception e);
+
+    public interface OnSearchListener {
+        void onSuccess(List<ZigbeeGatewayInfoBean> zigbeeGatewayInfoBeanList);
+
+        void onEorror(Exception e);
     }
 
     public static void release() {
-        if (datagramSocket != null){
+        if (datagramSocket != null) {
             isStop = true;
             datagramSocket.disconnect();
             datagramSocket = null;
@@ -58,99 +59,99 @@
             public void run() {
                 if (zigbeeGatewayInfoBean.getCount() < 20) {
                     zigbeeGatewayInfoBean.setCount(zigbeeGatewayInfoBean.getCount() + 1);
-                            try {
-                                    byte[] sendBytes = new byte[44];
-                                    sendBytes[0] = (byte) 0xFE;
-                                    sendBytes[1] = 0x29;
-                                    sendBytes[2] = 0;
-                                    sendBytes[3] = 0;
-                                    sendBytes[4] = 0;
-                                    sendBytes[5] = 0;
-                                    sendBytes[6] = 0;
-                                    //鑾峰彇鎵�鏈夌綉鍏筹紙鏃犻渶houseID妯″紡锛夛紝鍚庨潰瑕佹敼
-                                    sendBytes[7] = 0x67;
-                                    sendBytes[8] = 0x65;
-                                    sendBytes[9] = 0x74;
-                                    sendBytes[10] = 0x61;
-                                    sendBytes[11] = 0x6c;
-                                    sendBytes[12] = 0x6c;
-                                    sendBytes[13] = 0x67;
-                                    sendBytes[14] = 0x77;
-                                    for (int i = 15; i<sendBytes.length-1;i++){
-                                        sendBytes[i] = 0;
-                                    }
-                                    sendBytes[sendBytes.length - 1] = 0x02;
-                                    //Log.d(TAG, "sendBytes: "+StringUtil.ByteArrToHex(sendBytes,0,sendBytes.length));
-                                    InetAddress address = InetAddress.getByName(NetWorkUtil.getLocalBroadCast());
-                                    DatagramPacket packet = new DatagramPacket(
-                                            sendBytes,
-                                            sendBytes.length,
-                                            address, 7624);
-                                    datagramSocket= new DatagramSocket();
-                                    datagramSocket.send(packet);
+                    try {
+                        byte[] sendBytes = new byte[44];
+                        sendBytes[0] = (byte) 0xFE;
+                        sendBytes[1] = 0x29;
+                        sendBytes[2] = 0;
+                        sendBytes[3] = 0;
+                        sendBytes[4] = 0;
+                        sendBytes[5] = 0;
+                        sendBytes[6] = 0;
+                        //鑾峰彇鎵�鏈夌綉鍏筹紙鏃犻渶houseID妯″紡锛夛紝鍚庨潰瑕佹敼
+                        sendBytes[7] = 0x67;
+                        sendBytes[8] = 0x65;
+                        sendBytes[9] = 0x74;
+                        sendBytes[10] = 0x61;
+                        sendBytes[11] = 0x6c;
+                        sendBytes[12] = 0x6c;
+                        sendBytes[13] = 0x67;
+                        sendBytes[14] = 0x77;
+                        for (int i = 15; i < sendBytes.length - 1; i++) {
+                            sendBytes[i] = 0;
+                        }
+                        sendBytes[sendBytes.length - 1] = 0x02;
+                        //Log.d(TAG, "sendBytes: "+StringUtil.ByteArrToHex(sendBytes,0,sendBytes.length));
+                        InetAddress address = InetAddress.getByName(NetWorkUtil.getLocalBroadCast());
+                        DatagramPacket packet = new DatagramPacket(
+                                sendBytes,
+                                sendBytes.length,
+                                address, 7624);
+                        datagramSocket = new DatagramSocket();
+                        datagramSocket.send(packet);
 
-                                    byte[] receiveBytes = new byte[1024];
-                                    DatagramPacket dataPacket = new DatagramPacket(receiveBytes, receiveBytes.length);
-                                    datagramSocket.receive(dataPacket);
-                                    //鏄惁涓荤綉鍏�-01涓轰富缃戝叧-00涓轰粠缃戝叧
-                                    String IsDomain = StringUtil.Byte2Hex(dataPacket.getData()[44]);
-                                    int headLength = 1 + 2 + 4 + 36 + 1 + 1 + 4 ;
-                                    if (receiveBytes.length > headLength) {
-                                        //缃戝叧鍚嶇О闀垮害
-                                        String str = StringUtil.Byte2Hex(dataPacket.getData()[49]);
-                                        int GwNameLength = Integer.parseInt(str,16);
+                        byte[] receiveBytes = new byte[1024];
+                        DatagramPacket dataPacket = new DatagramPacket(receiveBytes, receiveBytes.length);
+                        datagramSocket.receive(dataPacket);
+                        //鏄惁涓荤綉鍏�-01涓轰富缃戝叧-00涓轰粠缃戝叧
+                        String IsDomain = StringUtil.Byte2Hex(dataPacket.getData()[44]);
+                        int headLength = 1 + 2 + 4 + 36 + 1 + 1 + 4;
+                        if (receiveBytes.length > headLength) {
+                            //缃戝叧鍚嶇О闀垮害
+                            String str = StringUtil.Byte2Hex(dataPacket.getData()[49]);
+                            int GwNameLength = Integer.parseInt(str, 16);
 
-                                        //缃戝叧鍚嶇О
-                                        byte[] gwnamebyte = new byte[GwNameLength];
-                                        for (int i = 0 ;i< GwNameLength ; i++){
-                                            gwnamebyte[i] = dataPacket.getData()[i+50];
-                                        }
-                                        String GwName =new String(gwnamebyte,0,gwnamebyte.length);
-
-                                        //缃戝叧id闀垮害
-                                        String str1 = StringUtil.Byte2Hex(dataPacket.getData()[50+GwNameLength]);
-                                        int GwIdLength = Integer.parseInt(str1,16);
-
-                                        //鑾峰彇缃戝叧id
-                                        byte[] gatewayId = new byte[GwIdLength];
-                                        for (int i = 0 ;i< GwIdLength ; i++){
-                                            gatewayId[i] = dataPacket.getData()[i+51+GwNameLength];
-                                        }
-
-                                        if (gatewayId.length > 1) {
-                                            String stringGateWayId = new String(gatewayId,0,gatewayId.length);
-                                            Log.d(TAG, "缃戝叧id: "+stringGateWayId);
-
-                                            ZigbeeGatewayInfoBean zigbeeGatewayInfoBean = new ZigbeeGatewayInfoBean();
-                                            zigbeeGatewayInfoBean.setGatewayId(stringGateWayId);
-                                            zigbeeGatewayInfoBean.setIpAddress(dataPacket.getAddress().getHostAddress());
-                                            if (IsDomain.equals("01")){
-                                                zigbeeGatewayInfoBean.setDomain(true);
-                                            }else {
-                                                zigbeeGatewayInfoBean.setDomain(false);
-                                            }
-                                            zigbeeGatewayInfoBean.setGatewayName(GwName);
-                                            boolean isExit = false;
-                                            for (int i = 0; i < zigbeeGatewayInfoBeanList.size(); i++) {
-                                                if (zigbeeGatewayInfoBeanList.get(i).getGatewayId()
-                                                        .equals(zigbeeGatewayInfoBean.getGatewayId())) {
-                                                        isExit = true;
-                                                        break;
-                                                }
-                                            }
-                                            if (!isExit) {
-                                                zigbeeGatewayInfoBeanList.add(zigbeeGatewayInfoBean);
-                                                Log.d(TAG, "addList:鎴愬姛娣诲姞 ");
-                                            }
-                                        }
-                                    }
-                                datagramSocket.close();
-                            } catch (Exception e) {
-                                Log.d(TAG, "run: "+e.toString());
-                                e.printStackTrace();
-                                datagramSocket.close();
-                                onSearchListener.onEorror(e);
+                            //缃戝叧鍚嶇О
+                            byte[] gwnamebyte = new byte[GwNameLength];
+                            for (int i = 0; i < GwNameLength; i++) {
+                                gwnamebyte[i] = dataPacket.getData()[i + 50];
                             }
+                            String GwName = new String(gwnamebyte, 0, gwnamebyte.length);
+
+                            //缃戝叧id闀垮害
+                            String str1 = StringUtil.Byte2Hex(dataPacket.getData()[50 + GwNameLength]);
+                            int GwIdLength = Integer.parseInt(str1, 16);
+
+                            //鑾峰彇缃戝叧id
+                            byte[] gatewayId = new byte[GwIdLength];
+                            for (int i = 0; i < GwIdLength; i++) {
+                                gatewayId[i] = dataPacket.getData()[i + 51 + GwNameLength];
+                            }
+
+                            if (gatewayId.length > 1) {
+                                String stringGateWayId = new String(gatewayId, 0, gatewayId.length);
+                                Log.d(TAG, "缃戝叧id: " + stringGateWayId);
+
+                                ZigbeeGatewayInfoBean zigbeeGatewayInfoBean = new ZigbeeGatewayInfoBean();
+                                zigbeeGatewayInfoBean.setGatewayId(stringGateWayId);
+                                zigbeeGatewayInfoBean.setIpAddress(dataPacket.getAddress().getHostAddress());
+                                if (IsDomain.equals("01")) {
+                                    zigbeeGatewayInfoBean.setDomain(true);
+                                } else {
+                                    zigbeeGatewayInfoBean.setDomain(false);
+                                }
+                                zigbeeGatewayInfoBean.setGatewayName(GwName);
+                                boolean isExit = false;
+                                for (int i = 0; i < zigbeeGatewayInfoBeanList.size(); i++) {
+                                    if (zigbeeGatewayInfoBeanList.get(i).getGatewayId()
+                                            .equals(zigbeeGatewayInfoBean.getGatewayId())) {
+                                        isExit = true;
+                                        break;
+                                    }
+                                }
+                                if (!isExit) {
+                                    zigbeeGatewayInfoBeanList.add(zigbeeGatewayInfoBean);
+                                    Log.d(TAG, "addList:鎴愬姛娣诲姞 ");
+                                }
+                            }
+                        }
+                        datagramSocket.close();
+                    } catch (Exception e) {
+                        Log.d(TAG, "run: " + e.toString());
+                        e.printStackTrace();
+                        datagramSocket.close();
+                        onSearchListener.onEorror(e);
+                    }
                 } else {
                     if (searchTimer != null) {
                         //鎵ц瀹屾悳绱㈠悗鍒拌繖
diff --git a/Android_HDL_SDK_XW/hdl_core/src/test/java/com/hdl/sdk/hdl_core/ExampleUnitTest.java b/Android_HDL_SDK_XW/hdl_core/src/test/java/com/hdl/sdk/hdl_core/ExampleUnitTest.java
deleted file mode 100644
index 1ac296d..0000000
--- a/Android_HDL_SDK_XW/hdl_core/src/test/java/com/hdl/sdk/hdl_core/ExampleUnitTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.hdl.sdk.hdl_core;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
- */
-public class ExampleUnitTest {
-    @Test
-    public void addition_isCorrect() {
-        assertEquals(4, 2 + 2);
-    }
-}
\ No newline at end of file
diff --git a/Android_HDL_SDK_XW/hdl_core/libs/org.eclipse.paho.client.mqttv3-1.2.0.jar b/org.eclipse.paho.client.mqttv3-1.2.0.jar
similarity index 100%
rename from Android_HDL_SDK_XW/hdl_core/libs/org.eclipse.paho.client.mqttv3-1.2.0.jar
rename to org.eclipse.paho.client.mqttv3-1.2.0.jar
Binary files differ
diff --git a/org.eclipse.paho.client.mqttv3-1.2.5.jar b/org.eclipse.paho.client.mqttv3-1.2.5.jar
new file mode 100644
index 0000000..66f1278
--- /dev/null
+++ b/org.eclipse.paho.client.mqttv3-1.2.5.jar
Binary files differ
diff --git "a/\346\211\223\345\214\205aar/2020-09-23/HDL_ZigBeeSDK_V1.0.1.B1.20200923.aar" "b/\346\211\223\345\214\205aar/2020-09-23/HDL_ZigBeeSDK_V1.0.1.B1.20200923.aar"
new file mode 100644
index 0000000..d2f7d80
--- /dev/null
+++ "b/\346\211\223\345\214\205aar/2020-09-23/HDL_ZigBeeSDK_V1.0.1.B1.20200923.aar"
Binary files differ

--
Gitblit v1.8.0