From e2b362d11ae69f961bd702e26e22b7553704b81f Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期三, 22 七月 2020 17:27:32 +0800
Subject: [PATCH] 2020-07-22 1.更新

---
 Android_HDL_SDK_TTL_DOC/src/api_control_air.md        |    2 
 Android_HDL_SDK_TTL_DOC/src/api_control_freshair.md   |  384 ++++++++++++++++++++++++++++++++++
 Android_HDL_SDK_TTL_DOC/src/update_log.md             |    5 
 Android_HDL_SDK_TTL_DOC/README.md                     |    3 
 Android_HDL_SDK_TTL_DOC/src/api_build_device.md       |   14 
 Android_HDL_SDK_TTL_DOC/SUMMARY.md                    |    2 
 Android_HDL_SDK_TTL_DOC/src/api_build_device_about.md |   12 
 Android_HDL_SDK_TTL_DOC/src/api_control.md            |   20 +
 Android_HDL_SDK_TTL_DOC/src/api_control_geothermal.md |  170 +++++++++++++++
 9 files changed, 601 insertions(+), 11 deletions(-)

diff --git a/Android_HDL_SDK_TTL_DOC/README.md b/Android_HDL_SDK_TTL_DOC/README.md
index d97bb1d..e5fccca 100755
--- a/Android_HDL_SDK_TTL_DOC/README.md
+++ b/Android_HDL_SDK_TTL_DOC/README.md
@@ -14,5 +14,8 @@
     - 鑳屾櫙闊充箰鍔熻兘绫绘ā鍧�(涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱紝闇�瑕佹墜鍔ㄦ坊鍔�)
     - 瀹夐槻鍔熻兘绫绘ā鍧�(涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱紝闇�瑕佹墜鍔ㄦ坊鍔�)
     - 閫氱敤寮�鍏崇被妯″潡(涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱紝闇�瑕佹墜鍔ㄦ坊鍔�)
+    - 鏂伴绫绘ā鍧�
+    - 鍦扮儹绫绘ā鍧�
+
 
 - 鎵嬪姩娣诲姞锛屾ā鎷熺敓鎴愯澶囧垪琛紙鍦ㄤ笉鏀寔绠�鏄撶紪绋嬫悳绱㈡儏鍐典笅浣跨敤锛屼緥濡傦細RCU閰掑簵妯″潡锛�
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/SUMMARY.md b/Android_HDL_SDK_TTL_DOC/SUMMARY.md
index e6a6cc4..d2d106b 100755
--- a/Android_HDL_SDK_TTL_DOC/SUMMARY.md
+++ b/Android_HDL_SDK_TTL_DOC/SUMMARY.md
@@ -11,6 +11,8 @@
     * [瀹夐槻绫绘ā鍧梋(./src/api_control_security.md)
     * [鍦烘櫙鎺у埗锛堥�昏緫妯″潡锛塢(./src/api_control_scenes.md)
     * [閫氱敤寮�鍏虫ā鍧梋(./src/api_control_switch.md)
+    * [鏂伴绫绘ā鍧梋(./src/api_control_freshair.md)
+    * [鍦扮儹绫绘ā鍧梋(./src/api_control_geothermal.md)
 * [MCU鍔熻兘鎺ュ彛](./src/api_mcu_about.md)
     * [MCU閫氫俊](./src/api_mcu.md)
 * [闈炴悳绱㈣澶囪В鍐虫柟妗圿(./src/api_build_device.md)
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_build_device.md b/Android_HDL_SDK_TTL_DOC/src/api_build_device.md
index 0e8db68..c57bc42 100755
--- a/Android_HDL_SDK_TTL_DOC/src/api_build_device.md
+++ b/Android_HDL_SDK_TTL_DOC/src/api_build_device.md
@@ -16,16 +16,20 @@
  * Configuration.GLOBAL_LOGIC_BIG_TYPE
  * Configuration.SECURITY_BIG_TYPE
  * Configuration.COMMON_SWITCH_BIG_TYPE
+ * Configuration.FRESH_AIR_BIG_TYPE
+ * Configuration.GEOTHERMAL_BIG_TYPE
  * 
- * 鐏厜绫�1锛�0 锛�1锛�9锛�10 锛堝悗闈负灏忕被ID鍙凤級
- * 绐楀笜绫�2锛�0锛�1锛�2
- * 浼犳劅鍣�5锛�0~24
- * 绌鸿皟绫�7锛�0锛�3
+ * 鐏厜绫�1锛�0 锛�1锛�9锛�10 锛堝悗闈负灏忕被ID鍙凤級****璋冨厜鍥炶矾锛�0锛� 寮�鍏冲洖璺紙1锛� 娣峰悎璋冨厜绫伙紙9锛� 娣峰悎寮�鍏崇被锛�10锛�
+ * 绐楀笜绫�2锛�0锛�1锛�2       ****寮�鍚堝笜鐢垫満锛�0锛� 鍗峰笜鐢垫満锛�1锛� 绐楀笜妯″潡锛�2锛�
+ * 浼犳劅鍣�5锛�2锛�10锛�12锛�26锛�27锛�28  **** 绾㈠鎰熷簲浼犳劅鍣紙2锛夌叅姘斾紶鎰熷櫒锛�10锛� 鐑熼浘浼犳劅鍣紙12锛夋按娴镐紶鎰熷櫒锛�26锛� 闂ㄧ浼犳劅鍣紙27锛� 绱ф�ユ寜閽紙28锛�
+ * 绌鸿皟绫�7锛�0锛�3          ****HVAC 妯″潡(0) 閫氱敤绌鸿皟闈㈡澘(3) 
  * 鑳屾櫙闊充箰鍔熻兘9锛�0
  * 閫昏緫鍔熻兘12锛�0
  * 鍏ㄥ眬鍦烘櫙17锛�0
  * 瀹夐槻10锛�0
- * 閫氱敤寮�鍏�100锛�0
+ * 閫氱敤寮�鍏�100锛�0        
+ * 鏂伴绫昏澶�19锛�0锛�1     ****鏍囧噯鏂伴绯荤粺(0) 瀹氬埗鏂伴鍗忚璁惧(1) 
+ * 鍦扮儹绫�8锛�0            ****鍦扮儹妯″潡(0) 
  *
  * 璇ユ柟娉曞簲鐢ㄤ簬鎻愪緵椤圭洰浜や粯鍓嶇殑鎻愬彇鎵归噺鏁版嵁鐢熸垚濂芥暟鎹��
  * 妯℃嫙鐢熸垚璁惧鍥炶矾鏁版嵁锛屽湪椤圭洰涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱㈡儏鍐典笅锛屽彲浠ラ�氳繃璇ユ柟娉曪紝鍏堝揩鎹风敓鎴愮洰鏍囨暟鎹� 寰楀埌 List<DevicesData> 鏍煎紡鐨勮澶囧垪琛ㄦ暟鎹�
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_build_device_about.md b/Android_HDL_SDK_TTL_DOC/src/api_build_device_about.md
index 243b5a4..ccb65ae 100755
--- a/Android_HDL_SDK_TTL_DOC/src/api_build_device_about.md
+++ b/Android_HDL_SDK_TTL_DOC/src/api_build_device_about.md
@@ -13,16 +13,20 @@
  * Configuration.GLOBAL_LOGIC_BIG_TYPE
  * Configuration.SECURITY_BIG_TYPE
  * Configuration.COMMON_SWITCH_BIG_TYPE
+ * Configuration.FRESH_AIR_BIG_TYPE
+ * Configuration.GEOTHERMAL_BIG_TYPE
  *
- * 鐏厜绫�1锛�0 锛�1锛�9锛�10
- * 绐楀笜绫�2锛�0锛�1锛�2
- * 浼犳劅鍣�5锛�0~24
- * 绌鸿皟绫�7锛�0锛�3
+ * 鐏厜绫�1锛�0 锛�1锛�9锛�10 锛堝悗闈负灏忕被ID鍙凤級****璋冨厜鍥炶矾锛�0锛� 寮�鍏冲洖璺紙1锛� 娣峰悎璋冨厜绫伙紙9锛� 娣峰悎寮�鍏崇被锛�10锛�
+ * 绐楀笜绫�2锛�0锛�1锛�2       ****寮�鍚堝笜鐢垫満锛�0锛� 鍗峰笜鐢垫満锛�1锛� 绐楀笜妯″潡锛�2锛�
+ * 浼犳劅鍣�5锛�2锛�10锛�12锛�26锛�27锛�28  **** 绾㈠鎰熷簲浼犳劅鍣紙2锛夌叅姘斾紶鎰熷櫒锛�10锛� 鐑熼浘浼犳劅鍣紙12锛夋按娴镐紶鎰熷櫒锛�26锛� 闂ㄧ浼犳劅鍣紙27锛� 绱ф�ユ寜閽紙28锛�
+ * 绌鸿皟绫�7锛�0锛�3          ****HVAC 妯″潡(0) 閫氱敤绌鸿皟闈㈡澘(3) 
  * 鑳屾櫙闊充箰鍔熻兘9锛�0
  * 閫昏緫鍔熻兘12锛�0
  * 鍏ㄥ眬鍦烘櫙17锛�0
  * 瀹夐槻10锛�0
  * 閫氱敤寮�鍏�100锛�0
+ * 鏂伴绫昏澶�19锛�0锛�1     ****鏍囧噯鏂伴绯荤粺(0) 瀹氬埗鏂伴鍗忚璁惧(1) 
+ * 鍦扮儹绫�8锛�0            ****鍦扮儹妯″潡(0) 
  *
  * 璇ユ柟娉曞簲鐢ㄤ簬鎻愪緵椤圭洰浜や粯鍓嶇殑鎻愬彇鎵归噺鏁版嵁鐢熸垚濂芥暟鎹��
  * 妯℃嫙鐢熸垚璁惧鍥炶矾鏁版嵁锛屽湪椤圭洰涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱㈡儏鍐典笅锛屽彲浠ラ�氳繃璇ユ柟娉曪紝鍏堝揩鎹风敓鎴愮洰鏍囨暟鎹� 寰楀埌 List<DevicesData> 鏍煎紡鐨勮澶囧垪琛ㄦ暟鎹�
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_control.md b/Android_HDL_SDK_TTL_DOC/src/api_control.md
index 7a65694..fce1248 100755
--- a/Android_HDL_SDK_TTL_DOC/src/api_control.md
+++ b/Android_HDL_SDK_TTL_DOC/src/api_control.md
@@ -48,10 +48,28 @@
     case Configuration.SECURITY_BIG_TYPE:
         //瀹夐槻妯″潡
         break;
-
+    case Configuration.SENSOR_BIG_TYPE:
+        //澶х被鏄紶鎰熷櫒
+        break;
+    case Configuration.COMMON_SWITCH_BIG_TYPE:
+        //澶х被鏄�氱敤寮�鍏�
+        break;
+    case Configuration.FRESH_AIR_BIG_TYPE:
+        //鏂伴妯″潡
+        if(appliancesInfos.get(position).getDeviceType() == HDLApConfig.TYPE_FRESH_AIR_JINMAO){
+            //瀹氬埗鏂伴璁惧
+        }else {
+            //鏍囧噯鏂伴璁惧
+        }
+        break;
+    case Configuration.GEOTHERMAL_BIG_TYPE:
+        //澶х被鏄湴鐑ā鍧�
+         
+        break;
     default:
         break;
 }
+
 ```
 
 
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_control_air.md b/Android_HDL_SDK_TTL_DOC/src/api_control_air.md
index e68a348..2946cd8 100755
--- a/Android_HDL_SDK_TTL_DOC/src/api_control_air.md
+++ b/Android_HDL_SDK_TTL_DOC/src/api_control_air.md
@@ -79,7 +79,7 @@
 
 state锛氶渶瑕佹帶鍒跺姛鑳藉搴旂殑鐘舵�佸��
 
-璋冪敤璇ユ帴鍙o紝鍙互鎺у埗鏀瑰彉HVAC绌鸿皟妯″潡鐨勶紝寮�銆佸厜銆佹ā寮忋�侀閫熴�佹俯搴︾瓑鐘舵�併��
+璋冪敤璇ユ帴鍙o紝鍙互鎺у埗鏀瑰彉HVAC绌鸿皟妯″潡鐨勶紝寮�銆佸叧銆佹ā寮忋�侀閫熴�佹俯搴︾瓑鐘舵�併��
 
 妯″紡锛氬埗鍐枫�佸埗鐑�侀�氶銆佽嚜鍔ㄣ�佹娊婀�5绉嶆ā寮忋��
 
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_control_freshair.md b/Android_HDL_SDK_TTL_DOC/src/api_control_freshair.md
new file mode 100755
index 0000000..de53149
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_control_freshair.md
@@ -0,0 +1,384 @@
+# 鏂伴绫绘ā鍧�
+
+**鏂伴绫绘ā鍧楁敮鎸佹悳绱㈠拰鎺у埗鐨勭被鍨�**
+
+鏍囧噯鏂伴璁惧锛堝ぇ绫� 19 灏忕被 0锛�
+瀹氬埗鏂伴璁惧锛堝ぇ绫� 19 灏忕被 1锛�
+
+### 涓�銆佹爣鍑嗘柊椋庢ā鍧楁煡璇㈢姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.getFreshAirDeviceStateFromNetwork(AppliancesInfo info)
+
+璋冪敤璇ユ帴鍙o紝鑾峰彇鏍囧噯鏂伴璁惧鐘舵�併��
+
+
+**浠g爜鑼冧緥**
+
+```java
+    //鏌ヨ鏂伴妯″潡鐘舵�佷俊鎭�
+    HDLCommand.getFreshAirDeviceStateFromNetwork(appliancesInfo);
+```
+
+**鏌ヨ鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鏌ヨ鐘舵�佽秴鏃舵垨鎴愬姛锛岄兘浼氭敹鍒癉eviceStateEvent璁㈤槄浜嬩欢锛孲DK鎵�鏈夌姸鎬佸洖璋冮兘缁熶竴鐢ㄨ繖涓簨浠讹紝濡傛灉event.isSuccess()鍊间负false锛屽垯浠h〃鏌ヨ瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+寮�鍙戣�呭彲浠ュ湪鎵�闇�瑕佽幏鍙栫姸鎬佸洖璋冪殑鍦版柟锛岃闃呰浜嬩欢锛�
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夈�丄ppliancesInfo閲岄潰鐨勮澶囩被鍨嬶紙getDeviceType锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨煡璇㈢姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+
+
+**浠g爜鑼冧緥**
+```java
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onDeviceStateEventMain(DeviceStateEvent event) {
+        proDialog.dismiss();
+        if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+        ) {
+            //杩欎釜杩斿洖鐨勪俊鎭槸褰撳墠鐘舵�佺殑
+            switch (event.getAppliancesInfo().getDeviceType()) {
+                case HDLApConfig.TYPE_FRESH_AIR:
+                    if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) {
+                        if (!event.isSuccess()) {
+                            showToast("鑾峰彇鏂伴鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+                        String message = "";
+                        FreshAirBackInfo mFreshAirBackInfo = new FreshAirBackInfo(event.getAppliancesInfo());
+                        if (mFreshAirBackInfo == null) {
+                            showToast("鑾峰彇鏂伴鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+
+                        if(mFreshAirBackInfo.getIsOn() == FreshAirParser.freshAirOn) {
+                            message = getSwichStateString(mFreshAirBackInfo.getIsOn());
+                            message += "\n" + getSpeedStateString(mFreshAirBackInfo.getFreshAirSpeed());
+                            message += "\n" + getModeStateString(mFreshAirBackInfo.getFreshAirMode());
+
+                            message += "\n" + "瀹ゅ唴娓╁害锛�" + mFreshAirBackInfo.getInTemp();
+                            message += "\n" + "瀹ゅ娓╁害锛�" + mFreshAirBackInfo.getOutTemp();
+                            message += "\n" + "瀹ゅ唴婀垮害锛�" + mFreshAirBackInfo.getHumidty();
+                            message += "\n" + "PM2.5锛�" + mFreshAirBackInfo.getInTemp();
+                            message += "\n" + "TVOC锛�" + mFreshAirBackInfo.getInTemp();
+                            message += "\n" + "CO2锛�" + mFreshAirBackInfo.getInTemp();
+                        }else {
+                            message = getSwichStateString(mFreshAirBackInfo.getIsOn());
+                        }
+
+                        mTextView.setText(message);
+                        showToast(message);
+                        HDLLog.I(message);
+
+                    }
+                    break;
+            }
+        }
+    }
+
+```
+
+
+### 浜屻�佹爣鍑嗘柊椋庢ā鍧楁帶鍒舵敼鍙樼姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.freshAirCtrl(AppliancesInfo info, int type, int state)
+
+type锛氶渶瑕佹帶鍒跺姛鑳藉懡浠ゅ弬鏁�
+
+state锛氶渶瑕佹帶鍒跺姛鑳藉搴旂殑鐘舵�佸��
+
+璋冪敤璇ユ帴鍙o紝鍙互鎺у埗鏀瑰彉鏍囧噯鏂伴妯″潡鐨勶紝寮�銆佸叧銆佹ā寮忋�侀閫熺瓑鐘舵�併��
+
+妯″紡锛�0鎵嬪姩锛�1 鑷姩, 2鏅鸿兘锛�3 瀹氭椂銆�
+
+椋庨�燂細0鑷姩锛�1浣庯紝2涓紝3楂�
+
+**浠g爜鑼冧緥**
+
+```java
+    .......
+    //鍙戦�佹帶鍒舵爣鍑嗘柊椋庢墦寮�鎸囦护 
+    //鏂伴寮�
+    HDLCommand.freshAirCtrl(appliancesInfo, FreshAirParser.freshAirSwich, FreshAirParser.freshAirOn);
+    .......
+
+    .......
+    //鍙戦�佹帶鍒舵爣鍑嗘柊椋庢ā鍧楁敼鍙樻ā寮忔寚浠� 
+    HDLCommand.freshAirCtrl(appliancesInfo, FreshAirParser.freshAirMode, FreshAirParser.freshAirModeManual);//鎵嬪姩妯″紡
+    .......
+
+    .......
+    //鍙戦�佹帶鍒舵爣鍑嗘柊椋庢ā鍧楁敼鍙橀閫熸寚浠� 
+    HDLCommand.freshAirCtrl(appliancesInfo, FreshAirParser.freshAirSpeed, FreshAirParser.freshAirSpeedHigh);//椋庨�熼珮椋�
+    .......
+
+
+```
+
+**鎺у埗鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鎺у埗鐘舵�佽秴鏃舵垨鎴愬姛锛岄兘浼氭敹鍒癋reshAirFeedBackEvent璁㈤槄浜嬩欢锛屽鏋渆vent.isSuccess()鍊间负false锛屽垯浠h〃鎺у埗瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨帶鍒剁姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+**浠g爜鑼冧緥**
+```java
+    /**
+     * 鏍囧噯鏂伴璁惧鎺у埗鍥炶皟Event
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onFreshAirFeedBackEventMain(FreshAirFeedBackEvent event) {
+        proDialog.dismiss();
+        if (event.getFreshAirBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getFreshAirBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getFreshAirBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()
+        ) {
+            //鍏堝垽鏂槸鍚﹁秴鏃�
+            if (!event.isSuccess()) {
+                showToast("鏂伴鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+                return;
+            }
+
+            String message = "";
+            FreshAirBackInfo mFreshAirBackInfo = event.getFreshAirBackInfo();
+            switch (ctrlId) {   //ctrlId 褰撳墠鎺у埗绫诲瀷
+                case FreshAirParser.freshAirSwich:
+                    message = getSwichStateString(mFreshAirBackInfo.getIsOn());
+                    break;
+                case FreshAirParser.freshAirSpeed:
+                    message = getSpeedStateString(mFreshAirBackInfo.getFreshAirSpeed());
+                    break;
+                case FreshAirParser.freshAirMode:
+                    message = getModeStateString(mFreshAirBackInfo.getFreshAirMode());
+                    break;
+                default:
+                    break;
+
+            }
+
+            //*********鏍规嵁闇�姹傛樉绀�*********
+            message += "\n" + "瀹ゅ唴娓╁害锛�" + mFreshAirBackInfo.getInTemp();
+            message += "\n" + "瀹ゅ娓╁害锛�" + mFreshAirBackInfo.getOutTemp();
+            message += "\n" + "瀹ゅ唴婀垮害锛�" + mFreshAirBackInfo.getHumidty();
+            message += "\n" + "PM2.5锛�" + mFreshAirBackInfo.getInTemp();
+            message += "\n" + "TVOC锛�" + mFreshAirBackInfo.getInTemp();
+            message += "\n" + "CO2锛�" + mFreshAirBackInfo.getInTemp();
+            //*********鏍规嵁闇�姹傛樉绀�*********
+
+            mTextView.setText(message);
+            showToast(message);
+            HDLLog.I(message);
+        }
+    }
+
+```
+
+
+
+### 涓夈�佸畾鍒舵柊椋庤澶囨煡璇㈢姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.getFreshAirDeviceStateFromNetwork(AppliancesInfo info)
+
+璋冪敤璇ユ帴鍙o紝鑾峰彇鏂伴璁惧鐘舵�併��
+
+
+**浠g爜鑼冧緥**
+
+```java
+    //鏌ヨ瀹氬埗鏂伴妯″潡鐘舵�佷俊鎭�
+    HDLCommand.getFreshAirDeviceStateFromNetwork(appliancesInfo);
+```
+
+**鏌ヨ鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鏌ヨ鐘舵�佽秴鏃舵垨鎴愬姛锛岄兘浼氭敹鍒癉eviceStateEvent璁㈤槄浜嬩欢锛孲DK鎵�鏈夌姸鎬佸洖璋冮兘缁熶竴鐢ㄨ繖涓簨浠讹紝濡傛灉event.isSuccess()鍊间负false锛屽垯浠h〃鏌ヨ瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+寮�鍙戣�呭彲浠ュ湪鎵�闇�瑕佽幏鍙栫姸鎬佸洖璋冪殑鍦版柟锛岃闃呰浜嬩欢锛�
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夈�丄ppliancesInfo閲岄潰鐨勮澶囩被鍨嬶紙getDeviceType锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨煡璇㈢姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+
+
+**浠g爜鑼冧緥**
+```java
+    /**
+     * 鑾峰彇鍗曚竴璁惧鐘舵�佸洖璋僂vent
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onDeviceStateEventMain(DeviceStateEvent event) {
+        if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+        ) {
+            //杩欎釜杩斿洖鐨勪俊鎭槸褰撳墠鐘舵�佺殑
+            switch (event.getAppliancesInfo().getDeviceType()) {
+                case HDLApConfig.TYPE_FRESH_AIR_JINMAO://瀹氬埗鏂伴璁惧绫诲瀷
+                    if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) {
+                        if (!event.isSuccess()) {
+                            showToast("鑾峰彇鏂伴鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+                        FreshAirJinMaoBackInfo mFreshAirJinMaoBackInfo = new FreshAirJinMaoBackInfo(event.getAppliancesInfo());
+
+                        if (mFreshAirJinMaoBackInfo == null) {
+                            showToast("鑾峰彇鏂伴鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+                        showFreshAirJinMaoBackInfo(mFreshAirJinMaoBackInfo);
+                    }
+                    break;
+                default:
+                    //涓嶅鐞�
+                    break;
+            }
+        }
+    }
+
+    
+
+```
+
+### 鍥涖�佸畾鍒舵柊椋庤澶囨帶鍒舵敼鍙樼姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.freshAirJinMaoCtrl(AppliancesInfo info, int type, int state)
+
+type锛氶渶瑕佹帶鍒跺姛鑳藉懡浠ゅ弬鏁�
+
+state锛氶渶瑕佹帶鍒跺姛鑳藉搴旂殑鐘舵�佸��
+
+璋冪敤璇ユ帴鍙o紝鍙互鎺у埗鏀瑰彉瀹氬埗鏂伴璁惧鐨勶紝寮�銆佸叧銆佽繍琛屾ā寮忋�佽妭鑳芥ā寮忋�侀閫熴�佹箍搴︾瓑鐘舵�併��
+
+杩愯妯″紡锛�	    1-閫氶锛�2-鍔犳箍
+
+鑺傝兘鑸掗�傞�夋嫨锛�	 1-鑸掗�傦紝2-鑺傝兘
+
+椋庨�熸。浣嶏細	    0-鑷姩锛�1-浣庨�燂紝2-涓�燂紝3-楂橀��
+
+婀垮害锛氭箍搴﹁寖鍥�   0~100%
+
+
+**浠g爜鑼冧緥**
+
+```java
+    .......
+    //鍙戦�佹帶鍒跺畾鍒舵柊椋庤澶� 鎵撳紑鎸囦护 
+    HDLCommand.freshAirJinMaoCtrl(appliancesInfo, FreshAirJinMaoParser.SetSwich, FreshAirJinMaoParser.freshAirOn);//鎵撳紑
+    .......
+
+    .......
+    //鍙戦�佹帶鍒跺畾鍒舵柊椋庤澶� 杩愯妯″紡鎸囦护 
+    //鑻ュ綋鍓嶆柊椋庤繍琛屾ā寮忎负閫氶锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓哄姞婀�
+    HDLCommand.freshAirJinMaoCtrl(appliancesInfo, FreshAirJinMaoParser.SetMode, FreshAirJinMaoParser.freshAirModeHumidify);
+    .......
+
+    .......
+    //鍙戦�佹帶鍒跺畾鍒舵柊椋庤澶� 鑺傝兘鑸掗�傞�夋嫨
+    //鑻ュ綋鍓嶆柊椋庝负鑺傝兘锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓鸿垝閫�
+    HDLCommand.freshAirJinMaoCtrl(appliancesInfo, FreshAirJinMaoParser.SetEnergySavingMode, FreshAirJinMaoParser.energySavingModeComfortable);
+    .......
+
+    .......
+    //鍙戦�佹帶鍒跺畾鍒舵柊椋庤澶� 鏀瑰彉椋庨�熸寚浠� 
+    //璁剧疆涓鸿嚜鍔�
+    HDLCommand.freshAirJinMaoCtrl(appliancesInfo, FreshAirJinMaoParser.SetSpeed, FreshAirJinMaoParser.freshAirSpeedAuto);
+    .......
+
+    .......
+    //鍙戦�佹帶鍒跺畾鍒舵柊椋庤澶� 鏀瑰彉婀垮害鎸囦护 
+   HDLCommand.freshAirJinMaoCtrl(appliancesInfo, FreshAirJinMaoParser.SetHumidty, mHumidtyInt);
+    .......
+
+```
+
+**鎺у埗鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鎺у埗鐘舵�佽秴鏃舵垨鎴愬姛锛岄兘浼氭敹鍒癋reshAirJinMaoFeedBackEvent璁㈤槄浜嬩欢锛屽鏋渆vent.isSuccess()鍊间负false锛屽垯浠h〃鎺у埗瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨帶鍒剁姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+
+**浠g爜鑼冧緥**
+```java
+    /**
+     * 瀹氬埗鏂伴璁惧鎺у埗鍥炶皟Event
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onFreshAirJinMaoFeedBackEventEventMain(FreshAirJinMaoFeedBackEvent event) {
+        if (event.getFreshAirJinMaoBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getFreshAirJinMaoBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getFreshAirJinMaoBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()
+        ) {
+            //        鍏堝垽鏂槸鍚﹁秴鏃�
+            if (!event.isSuccess()) {
+                showToast("鏂伴鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+                return;
+            }
+            FreshAirJinMaoBackInfo mFreshAirJinMaoBackInfo = event.getFreshAirJinMaoBackInfo();
+            showFreshAirJinMaoBackInfo(mFreshAirJinMaoBackInfo);
+
+        }
+    }
+
+    .......
+    /**
+     * 澶勭悊璁惧鐘舵��
+     * @param mFreshAirJinMaoBackInfo
+     */
+    private void showFreshAirJinMaoBackInfo(FreshAirJinMaoBackInfo mFreshAirJinMaoBackInfo){
+        if(mFreshAirJinMaoBackInfo != null) {
+            String message = "";
+            if (mFreshAirJinMaoBackInfo.getIsOn() == FreshAirJinMaoParser.freshAirOn) {
+                message = getSwichStateString(mFreshAirJinMaoBackInfo.getIsOn());
+                message += "\n" + getModeStateString(mFreshAirJinMaoBackInfo.getFreshAirMode());//杩愯妯″紡
+                message += "\n" + getMode2StateString(mFreshAirJinMaoBackInfo.getEnergySavingMode());//鑺傝兘妯″紡
+                message += "\n" + getSpeedStateString(mFreshAirJinMaoBackInfo.getFreshAirSpeed());//椋庨��
+                message += "\n褰撳墠璁剧疆婀垮害锛�" + mFreshAirJinMaoBackInfo.getSetHumidty();//褰撳墠婀垮害璁剧疆鍊�
+                refreshState(mFreshAirJinMaoBackInfo);
+            } else {
+                message = getSwichStateString(mFreshAirJinMaoBackInfo.getIsOn());
+            }
+            mesText.setText(message);
+            showToast(message);
+            HDLLog.Log(message);
+        }else{
+            mesText.setText("鏈幏鍙栧埌鏂伴鐘舵��");
+        }
+    }
+
+    /**
+     * 鍒锋柊璁惧鐘舵��
+     */
+    private void refreshState(FreshAirJinMaoBackInfo mFreshAirJinMaoBackInfo){
+        switchState = mFreshAirJinMaoBackInfo.getIsOn();
+        modeState = mFreshAirJinMaoBackInfo.getFreshAirMode();
+        mode2State = mFreshAirJinMaoBackInfo.getEnergySavingMode();
+        speedState = mFreshAirJinMaoBackInfo.getFreshAirSpeed();
+        humidtyState = mFreshAirJinMaoBackInfo.getSetHumidty();
+
+
+        tv_nowInTemp.setText(mFreshAirJinMaoBackInfo.getNowInTemp()+"鈩�");
+        tv_nowInHumidty.setText(mFreshAirJinMaoBackInfo.getNowInHumidty() + "%");
+        tv_filterRemaining.setText(mFreshAirJinMaoBackInfo.getFilterRemaining() + "%");
+        String timeoutStateStr = mFreshAirJinMaoBackInfo.getUseTimeoutState() > 0 ? "瓒呮椂锛岃鏇存崲" : "姝e父";
+        tv_timeout.setText(timeoutStateStr);
+        if(mFreshAirJinMaoBackInfo.getUseTimeoutState() > 0) {
+            showToast("鎶ヨ淇℃伅锛氭护缃戜娇鐢ㄨ秴鏃讹紝闇�瑕佹洿鎹紒");
+        }
+    }
+
+    .......
+
+```
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_control_geothermal.md b/Android_HDL_SDK_TTL_DOC/src/api_control_geothermal.md
new file mode 100755
index 0000000..2c371d1
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_control_geothermal.md
@@ -0,0 +1,170 @@
+# 鍦扮儹绫绘ā鍧�
+
+**鍦扮儹绫绘ā鍧楁敮鎸佹悳绱㈠拰鎺у埗鐨勭被鍨�**
+
+鍦扮儹妯″潡锛堝ぇ绫� 8 灏忕被 0锛�
+
+### 涓�銆佸湴鐑ā鍧楁煡璇㈢姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.getGeothermalStateFromNetwork(AppliancesInfo info)
+
+璋冪敤璇ユ帴鍙o紝鑾峰彇鍦扮儹妯″潡璁惧鐘舵�併��
+
+**浠g爜鑼冧緥**
+
+```java
+    //鏌ヨ鍦扮儹妯″潡鐘舵�佷俊鎭�
+    HDLCommand.getGeothermalStateFromNetwork(appliancesInfo);
+```
+
+**鏌ヨ鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鏌ヨ鐘舵�佽秴鏃舵垨鎴愬姛锛岄兘浼氭敹鍒癉eviceStateEvent璁㈤槄浜嬩欢锛孲DK鎵�鏈夌姸鎬佸洖璋冮兘缁熶竴鐢ㄨ繖涓簨浠讹紝濡傛灉event.isSuccess()鍊间负false锛屽垯浠h〃鏌ヨ瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+寮�鍙戣�呭彲浠ュ湪鎵�闇�瑕佽幏鍙栫姸鎬佸洖璋冪殑鍦版柟锛岃闃呰浜嬩欢锛�
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夈�丄ppliancesInfo閲岄潰鐨勮澶囩被鍨嬶紙getDeviceType锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨煡璇㈢姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+
+
+**浠g爜鑼冧緥**
+```java
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onDeviceStateEventMain(DeviceStateEvent event) {
+        proDialog.dismiss();
+        if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+        ) {
+            //杩欎釜杩斿洖鐨勪俊鎭槸褰撳墠鐘舵�佺殑
+            switch (event.getAppliancesInfo().getDeviceType()) {
+                case HDLApConfig.TYPE_GEOTHERMAL_MODULE:
+                    if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) {
+                        if (!event.isSuccess()) {
+                            showToast("鑾峰彇鍦扮儹鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+                        String message = "";
+                        GeothermalBackInfo mGeothermalBackInfo = new GeothermalBackInfo(event.appliancesInfo, false);
+
+                        if (mGeothermalBackInfo == null) {
+                            showToast("鑾峰彇鍦扮儹鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+
+                        showGeothermalBackInfo(mGeothermalBackInfo);
+
+                    }
+                    break;
+            }
+        }
+    }
+
+
+```
+
+
+### 浜屻�佸湴鐑ā鍧楁帶鍒舵敼鍙樼姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.geothermalCtrl(AppliancesInfo info, int type, int state)
+
+type锛氶渶瑕佹帶鍒跺姛鑳藉懡浠ゅ弬鏁�
+
+state锛氶渶瑕佹帶鍒跺姛鑳藉搴旂殑鐘舵�佸��
+
+璋冪敤璇ユ帴鍙o紝鍙互鎺у埗鏀瑰彉鍦扮儹妯″潡鐨勶紝寮�銆佸叧銆佹ā寮忋�佹俯搴︾瓑鐘舵�併��
+
+妯″紡锛�1 = 鏅�氭ā寮�, 2 = 鐧藉ぉ妯″紡 , 3 = 澶滈棿妯″紡, 4 = 绂诲紑妯″紡, 5 = 鑷姩妯″紡銆�
+
+娓╁害锛氭櫘閫氭俯搴︼紝鐧藉ぉ娓╁害锛屽闂存俯搴︼紝绂诲紑娓╁害
+
+**浠g爜鑼冧緥**
+
+```java
+    .......
+    //鍙戦�佹帶鍒跺湴鐑ā鍧� 鎵撳紑鎸囦护 
+    //鍦扮儹寮�
+    HDLCommand.geothermalCtrl(appliancesInfo, GeothermalParser.gSwich, GeothermalParser.gSwichOn);
+    .......
+
+    .......
+    //鍙戦�佹帶鍒跺湴鐑ā鍧� 鏀瑰彉妯″紡鎸囦护 
+    //鑻ュ綋鍓嶆ā寮忚嚜鍔ㄦā寮忥紝鍒欑偣鍑绘寜閽缃负鏅�氭ā寮�
+    HDLCommand.geothermalCtrl(appliancesInfo, GeothermalParser.gMode, GeothermalParser.gModeNormal);
+    .......
+
+    .......
+    //鍙戦�佹帶鍒跺湴鐑ā鍧� 鏀瑰彉娓╁害鎸囦护 
+    HDLCommand.geothermalCtrlTemp(appliancesInfo, tempInt);//鑷姩鏍规嵁褰撳墠妯″紡璁剧疆褰撳墠妯″紡鐨勬俯搴︺��
+    .......
+
+```
+
+**鎺у埗鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鎺у埗鐘舵�佽秴鏃舵垨鎴愬姛锛岄兘浼氭敹鍒癎eothermalFeedBackEvent璁㈤槄浜嬩欢锛屽鏋渆vent.isSuccess()鍊间负false锛屽垯浠h〃鎺у埗瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨帶鍒剁姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+**浠g爜鑼冧緥**
+```java
+    /**
+     * 鍦扮儹鎺у埗鍥炶皟Event
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onGeothermalFeedBackEventMain(GeothermalFeedBackEvent event) {
+        proDialog.dismiss();
+        if (event.getGeothermalBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getGeothermalBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getGeothermalBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()
+        ) {
+            //鍏堝垽鏂槸鍚﹁秴鏃�
+            if (event.getStatusID() == EventCode.FAILURE_TIMEOUT) {
+                showToast("鍦扮儹妯″潡鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+                return;
+            }
+
+            if (event.getStatusID() == EventCode.FAILURE_DATA_ERROR) {
+                showToast("鍦扮儹妯″潡,杩斿洖鏁版嵁涓虹┖");
+                return;
+            }
+            GeothermalBackInfo mGeothermalBackInfo = event.getGeothermalBackInfo();
+            showGeothermalBackInfo(mGeothermalBackInfo);
+        }
+    }
+
+    .......
+    /**
+     * showGeothermalBackInfo
+     * @param mGeothermalBackInfo
+     */
+    private void showGeothermalBackInfo(GeothermalBackInfo mGeothermalBackInfo){
+        String message = "";
+        if(mGeothermalBackInfo.getIsOn() == GeothermalParser.gSwichOn) {
+            message = getSwichStateString(mGeothermalBackInfo.getIsOn());
+
+            message += "\n" + getModeStateString(mGeothermalBackInfo.getgMode());
+            message += "\n" + "鏅�氭ā寮忔俯搴︼細" + mGeothermalBackInfo.getgNormalTemp();
+            message += "\n" + "鐧藉ぉ妯″紡娓╁害锛�" + mGeothermalBackInfo.getgDayTemp();
+            message += "\n" + "澶滈棿妯″紡娓╁害锛�" + mGeothermalBackInfo.getgNightTemp();
+            message += "\n" + "绂诲紑妯″紡娓╁害锛�" + mGeothermalBackInfo.getgLeaveTemp();
+        }else {
+            message = getSwichStateString(mGeothermalBackInfo.getIsOn());
+        }
+
+
+        mTextView.setText(message);
+        showToast(message);
+        HDLLog.I(message);
+    }
+    .......
+
+
+```
+
+
diff --git a/Android_HDL_SDK_TTL_DOC/src/update_log.md b/Android_HDL_SDK_TTL_DOC/src/update_log.md
index 3f7b764..9c50742 100755
--- a/Android_HDL_SDK_TTL_DOC/src/update_log.md
+++ b/Android_HDL_SDK_TTL_DOC/src/update_log.md
@@ -1,3 +1,8 @@
+### 1.1.2+  2020-07-20
+* 1.澧炲姞鏂伴绫诲瀷璁惧鏀寔锛堟敮鎸佹爣鍑嗘柊椋庡拰鐩墠瀹氬埗鏂伴璁惧2绉嶇被鍨嬶級銆�
+* 2.澧炲姞鍦扮儹绫诲瀷璁惧鏀寔銆�
+
+
 ### 1.0.7+  2020-4-1
 * 1.澧炲姞灏忕被鏄�3鐨勯煶涔愭挱鏀惧櫒鏀寔銆� 
 * 2.澧炲姞RCU娣峰悎璋冨厜娣峰悎寮�鍏� 绫绘ā鍧楋紝浣跨敤鐗╃悊鍥炶矾闂銆�

--
Gitblit v1.8.0