From 2ca94e0f7e1b5a1c197fb2063ae2973539cefe1d Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 20 七月 2020 13:52:07 +0800
Subject: [PATCH] 2020-07-20 1.备份

---
 Android_HDL_SDK_TTL_DOC/src/api_control_air.md        |  371 +++++++++
 Android_HDL_SDK_TTL_DOC/src/update_log.md             |   20 
 .gitignore                                            |   23 
 Android_HDL_SDK_TTL_DOC/src/api_control_light.md      |  132 +++
 Android_HDL_SDK_TTL_DOC/src/Integrated.md             |   92 ++
 Android_HDL_SDK_TTL_DOC/src/api_build_device_about.md |  174 ++++
 Android_HDL_SDK_TTL_DOC/src/api_control_security.md   |  141 +++
 Android_HDL_SDK_TTL_DOC/src/api_control_switch.md     |  116 ++
 Android_HDL_SDK_TTL_DOC/src/api_control_scenes.md     |  125 +++
 Android_HDL_SDK_TTL_DOC/src/api_control_curtain.md    |  205 +++++
 Android_HDL_SDK_TTL_DOC/README.md                     |   18 
 Android_HDL_SDK_TTL_DOC/src/api_build_device.md       |   38 
 Android_HDL_SDK_TTL_DOC/SUMMARY.md                    |   19 
 Android_HDL_SDK_TTL_DOC/src/api_mcu_about.md          |   57 +
 Android_HDL_SDK_TTL_DOC/src/api_control_music.md      |  213 +++++
 Android_HDL_SDK_TTL_DOC/src/api_control.md            |   82 ++
 Android_HDL_SDK_TTL_DOC/src/api_mcu.md                |  408 ++++++++++
 Android_HDL_SDK_TTL_DOC/src/api_search.md             |  157 +++
 18 files changed, 2,391 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..327fe5f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,23 @@
+
+# Created by https://www.gitignore.io/api/gitbook
+# Edit at https://www.gitignore.io/?templates=gitbook
+
+### GitBook ###
+# Node rules:
+## Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+## Dependency directory
+## Commenting this out is preferred by some people, see
+## https://docs.npmjs.com/misc/faq#should-i-check-my-node_modules-folder-into-git
+node_modules
+
+# Book build output
+_book
+
+# eBook build output
+*.epub
+*.mobi
+*.pdf
+
+# End of https://www.gitignore.io/api/gitbook
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/README.md b/Android_HDL_SDK_TTL_DOC/README.md
new file mode 100755
index 0000000..d97bb1d
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/README.md
@@ -0,0 +1,18 @@
+
+#HDL TTL Android SDK 鎺ュ叆鎸囧崡
+
+##鍔熻兘姒傝堪
+HDL TTL SDK鎻愪緵浜嗕互鎼滅储bus璁惧鍜屾帶鍒惰澶囩殑鎺ュ彛灏佽锛屽姞閫熷簲鐢ㄥ紑鍙戣繃绋嬶紝涓昏鍖呮嫭浜嗕互涓嬪姛鑳斤細
+
+- 鎼滅储璁惧
+- 鎺у埗璁惧
+- 鐩墠鏀寔璁惧
+    - 鐏厜绫绘ā鍧�
+    - 绐楀笜绫绘ā鍧�
+    - 绌鸿皟绫绘ā鍧�
+    - 閫昏緫鍔熻兘绫绘ā鍧�
+    - 鑳屾櫙闊充箰鍔熻兘绫绘ā鍧�(涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱紝闇�瑕佹墜鍔ㄦ坊鍔�)
+    - 瀹夐槻鍔熻兘绫绘ā鍧�(涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱紝闇�瑕佹墜鍔ㄦ坊鍔�)
+    - 閫氱敤寮�鍏崇被妯″潡(涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱紝闇�瑕佹墜鍔ㄦ坊鍔�)
+
+- 鎵嬪姩娣诲姞锛屾ā鎷熺敓鎴愯澶囧垪琛紙鍦ㄤ笉鏀寔绠�鏄撶紪绋嬫悳绱㈡儏鍐典笅浣跨敤锛屼緥濡傦細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
new file mode 100755
index 0000000..e6a6cc4
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/SUMMARY.md
@@ -0,0 +1,19 @@
+# Summary
+
+* [鍓嶈█](README.md)
+* [闆嗘垚SDK](./src/Integrated.md)
+* [鎼滅储璁惧](./src/api_search.md)
+* [鎺у埗璁惧](./src/api_control.md)
+    * [鐏厜绫绘ā鍧梋(./src/api_control_light.md)
+    * [绐楀笜绫绘ā鍧梋(./src/api_control_curtain.md)
+    * [绌鸿皟绫绘ā鍧梋(./src/api_control_air.md)
+    * [鑳屾櫙闊充箰鍔熻兘绫绘ā鍧梋(./src/api_control_music.md)
+    * [瀹夐槻绫绘ā鍧梋(./src/api_control_security.md)
+    * [鍦烘櫙鎺у埗锛堥�昏緫妯″潡锛塢(./src/api_control_scenes.md)
+    * [閫氱敤寮�鍏虫ā鍧梋(./src/api_control_switch.md)
+* [MCU鍔熻兘鎺ュ彛](./src/api_mcu_about.md)
+    * [MCU閫氫俊](./src/api_mcu.md)
+* [闈炴悳绱㈣澶囪В鍐虫柟妗圿(./src/api_build_device.md)
+    * [鐢熸垚鐩爣璁惧鏁版嵁](./src/api_build_device_about.md)
+* [鏇存柊鏃ュ織](./src/update_log.md)
+
diff --git a/Android_HDL_SDK_TTL_DOC/src/Integrated.md b/Android_HDL_SDK_TTL_DOC/src/Integrated.md
new file mode 100755
index 0000000..552b044
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/Integrated.md
@@ -0,0 +1,92 @@
+# 闆嗘垚SDK
+### 涓�銆佸垱寤哄伐绋�
+
+鍦ˋndroid Studio涓缓绔嬩綘鐨勫伐绋嬨��
+
+### 浜屻�乥uild.gradle 閰嶇疆
+
+灏哠DK鍖呬腑鐨刟ar鏂囦欢( 濡侶DL_TTLSDK_V1.0.1_r.arr )瀵煎叆鍒扮幇鏈夌殑宸ョ▼涓紝鏀惧叆鍒發ibs鐩綍涓嬨��
+
+
+build.gradle 鏂囦欢閲屾坊鍔犻泦鎴愬噯澶囦腑涓嬭浇鐨刣ependencies 渚濊禆搴撱��
+
+```groovy
+
+    dependencies {
+        implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
+        implementation 'org.greenrobot:eventbus:3.0.0'
+    }
+```
+
+### 涓夈�丄pplication涓垵濮嬪寲SDK銆�
+
+**浠g爜鑼冧緥**
+
+```java
+public class HDLApplication extends Application {
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        //HDL_PATH_NAME (涓插彛璺緞)
+        //HDL_BAUDRATE  (娉㈢壒鐜�)锛屾尝鐗圭巼榛樿115200
+        HDLTtlSdk.init(this, HDL_PATH_NAME, HDL_BAUDRATE);
+    }
+}
+```
+
+### 鍥涖�佹棩蹇楁墦鍗板紑鍏�
+
+SKD鎵撳嵃鏃ュ織榛樿鏄墦寮�锛岀敤鎴峰彲浠ラ厤缃负false锛屽嵆鍙叧闂璖DK鎵撳嵃鏃ュ織銆�
+
+**浠g爜鑼冧緥**
+
+```java
+public class HDLApplication extends Application {
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        HDLTtlSdk.init(this, HDL_PATH_NAME, HDL_BAUDRATE);
+        HDLTtlSdk.setHDLLogOpen(false);//鍏抽棴SDK鏃ュ織鎵撳嵃
+    }
+}
+```
+
+### 浜斻�丒ventBus 浣跨敤
+
+SKD鐨勫ぇ閮ㄥ垎鍥炶皟浜嬩欢锛岄�氳繃EventBus鍙戝竷鍥炶皟浜嬩欢锛屾墍浠ュ紑鍙戣�呴」鐩腑闇�瑕侀泦鎴怑ventBus锛屽苟鍦ㄩ渶瑕佺殑Activity涓墽琛屾敞鍐岃闃呬簨浠讹紙register锛夊拰鍙栨秷浜嬩欢璁㈤槄锛坲nregister锛夈��
+
+**浠g爜鑼冧緥**
+
+```java
+@Override
+protected void onCreate(Bundle savedInstanceState) {
+    super.onCreate(savedInstanceState);
+    initEventBusRegister();//娉ㄥ唽璁㈤槄浜嬩欢
+
+}
+/**
+ * 娉ㄥ唽浜嬩欢鍒嗗彂鍒濆鍖�
+ */
+private void initEventBusRegister() {
+    if (isRegisterEventBus()) {
+        if (!EventBus.getDefault().isRegistered(this)) {
+             EventBus.getDefault().register(this);
+        }
+    }
+}
+
+@Override
+protected void onDestroy() {
+    super.onDestroy();
+    unEventBusRegister();//鍙栨秷浜嬩欢璁㈤槄
+}
+
+/**
+* 娉ㄥ唽浜嬩欢鍒嗗彂鍙嶅鍖�
+ */
+private void unEventBusRegister() {
+    if (isRegisterEventBus()) {
+        EventBus.getDefault().unregister(this);
+    }
+}
+```
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_build_device.md b/Android_HDL_SDK_TTL_DOC/src/api_build_device.md
new file mode 100755
index 0000000..0e8db68
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_build_device.md
@@ -0,0 +1,38 @@
+# 闈炴悳绱㈣澶囪В鍐虫柟妗�
+## 鐢熸垚璁惧鍒楄〃 鎵嬪姩娣诲姞璁惧
+
+鎵嬪姩娣诲姞锛屾ā鎷熺敓鎴愯澶囧垪琛紙鍦ㄤ笉鏀寔绠�鏄撶紪绋嬫悳绱㈡儏鍐典笅浣跨敤锛屼緥濡傦細RCU閰掑簵妯″潡锛�
+
+
+### 璇存槑
+
+```java
+   /** SDK鐩墠鏀寔鐨勫ぇ绫伙細灏忕被
+ * Configuration.LIGTH_BIG_TYPE
+ * Configuration.CURTAIN_BIG_TYPE
+ * Configuration.AIR_BIG_TYPE
+ * Configuration.AUDIO_BIG_TYPE
+ * Configuration.LOGIC_BIG_TYPE
+ * Configuration.GLOBAL_LOGIC_BIG_TYPE
+ * Configuration.SECURITY_BIG_TYPE
+ * Configuration.COMMON_SWITCH_BIG_TYPE
+ * 
+ * 鐏厜绫�1锛�0 锛�1锛�9锛�10 锛堝悗闈负灏忕被ID鍙凤級
+ * 绐楀笜绫�2锛�0锛�1锛�2
+ * 浼犳劅鍣�5锛�0~24
+ * 绌鸿皟绫�7锛�0锛�3
+ * 鑳屾櫙闊充箰鍔熻兘9锛�0
+ * 閫昏緫鍔熻兘12锛�0
+ * 鍏ㄥ眬鍦烘櫙17锛�0
+ * 瀹夐槻10锛�0
+ * 閫氱敤寮�鍏�100锛�0
+ *
+ * 璇ユ柟娉曞簲鐢ㄤ簬鎻愪緵椤圭洰浜や粯鍓嶇殑鎻愬彇鎵归噺鏁版嵁鐢熸垚濂芥暟鎹��
+ * 妯℃嫙鐢熸垚璁惧鍥炶矾鏁版嵁锛屽湪椤圭洰涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱㈡儏鍐典笅锛屽彲浠ラ�氳繃璇ユ柟娉曪紝鍏堝揩鎹风敓鎴愮洰鏍囨暟鎹� 寰楀埌 List<DevicesData> 鏍煎紡鐨勮澶囧垪琛ㄦ暟鎹�
+ *
+ * 涓婂眰鍋氭湰鍦颁繚瀛樻垨鑰呬簯绔浠斤紝App鍚姩鏃惰鍙栨仮澶�
+ * 姣忔鍚姩鏃跺厛鍔犺浇鐢熸垚濂界殑璁惧鍒楄〃鏁版嵁锛岀劧鍚庡湪 SDK 鍒濆鍖栧悗锛岃祴鍊肩粰 HDLDeviceManager.devicesDataList
+ */
+
+```
+
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
new file mode 100755
index 0000000..243b5a4
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_build_device_about.md
@@ -0,0 +1,174 @@
+# 鐢熸垚璁惧鍒楄〃
+
+
+### 娣诲姞铏氭嫙鍥炶矾鏁版嵁
+
+
+ ###  SDK鐩墠鏀寔鐨勫ぇ绫伙細灏忕被
+ * Configuration.LIGTH_BIG_TYPE
+ * Configuration.CURTAIN_BIG_TYPE
+ * Configuration.AIR_BIG_TYPE
+ * Configuration.AUDIO_BIG_TYPE
+ * Configuration.LOGIC_BIG_TYPE
+ * Configuration.GLOBAL_LOGIC_BIG_TYPE
+ * Configuration.SECURITY_BIG_TYPE
+ * Configuration.COMMON_SWITCH_BIG_TYPE
+ *
+ * 鐏厜绫�1锛�0 锛�1锛�9锛�10
+ * 绐楀笜绫�2锛�0锛�1锛�2
+ * 浼犳劅鍣�5锛�0~24
+ * 绌鸿皟绫�7锛�0锛�3
+ * 鑳屾櫙闊充箰鍔熻兘9锛�0
+ * 閫昏緫鍔熻兘12锛�0
+ * 鍏ㄥ眬鍦烘櫙17锛�0
+ * 瀹夐槻10锛�0
+ * 閫氱敤寮�鍏�100锛�0
+ *
+ * 璇ユ柟娉曞簲鐢ㄤ簬鎻愪緵椤圭洰浜や粯鍓嶇殑鎻愬彇鎵归噺鏁版嵁鐢熸垚濂芥暟鎹��
+ * 妯℃嫙鐢熸垚璁惧鍥炶矾鏁版嵁锛屽湪椤圭洰涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱㈡儏鍐典笅锛屽彲浠ラ�氳繃璇ユ柟娉曪紝鍏堝揩鎹风敓鎴愮洰鏍囨暟鎹� 寰楀埌 List<DevicesData> 鏍煎紡鐨勮澶囧垪琛ㄦ暟鎹�
+ *
+ * 涓婂眰鍋氭湰鍦颁繚瀛樻垨鑰呬簯绔浠斤紝App鍚姩鏃惰鍙栨仮澶�
+ * 姣忔鍚姩鏃跺厛鍔犺浇鐢熸垚濂界殑璁惧鍒楄〃鏁版嵁锛岀劧鍚庡湪 SDK 鍒濆鍖栧悗锛岃祴鍊肩粰 HDLDeviceManager.devicesDataList
+ 
+
+### 涓�銆佹坊鍔犱笉鍚岀被鍨嬭澶囧洖璺�
+**浠g爜鑼冧緥**
+
+```java
+        /**
+         * 娣诲姞璁惧鍥炶矾
+         * 濡傛灉瀛樺湪鐩稿悓瀛愮綉鍙� 璁惧鍙凤紝鍒欏綋鎴愭贩鍚堟ā鍧楁坊鍔犲埌璇ュ洖璺笅锛屼笉瀛樺湪鍒欐柊娣诲姞妯″潡
+         * @param bigType 鍥炶矾澶х被
+         * @param littleType 鍥炶矾灏忕被
+         * @param mSubnetID  鍥炶矾瀛愮綉ID
+         * @param mDeviceID  鍥炶矾璁惧ID
+         * @param mChannelNum  鍥炶矾鍙�
+         * @param mChannelRemark 鍥炶矾澶囨敞 渚嬪锛氱獥甯樸�佸悐鐏�佸帟鎵�鐏�佺數瑙�
+         * @param parentRemarks  褰撳墠鍥炶矾妯″潡鐨勫娉� 渚嬪: 閰掑簵RCU妯″潡
+         * @param bSaveAndCallBack 鏄惁椹笂淇濆瓨鏈湴骞朵笖鎺ㄩ�丏evicesInfoEvent 浜嬩欢
+         * @return
+         */
+        //濡傛灉瀛樺湪鐩稿悓瀛愮綉鍙� 璁惧鍙凤紝鍒欏綋鎴愭贩鍚堟ā鍧楁坊鍔犲埌璇ュ洖璺笅锛屼笉瀛樺湪鍒欐柊娣诲姞妯″潡
+        DevicesData mDevicesData = DeviceParser.addDevicesListWithoutSearching(bigType, littleType, mSubnetID, mDeviceID, mChannelNum, remarksString, parentRemarks,true);
+        if (mDevicesData != null) {
+            showToast("娣诲姞鎴愬姛");
+        } else {
+            showToast("娣诲姞澶辫触");
+        }
+
+
+```
+
+娣诲姞鎴愬姛鍚庡悓鏍蜂細鏀跺埌DevicesInfoEvent璁㈤槄浜嬩欢锛屽彲浠ラ�氳繃event.getDesDataList() 鏉ヨ幏鍙栫敓鎴愬ソ鐨勬暟鎹�傛垨鑰呯洿鎺ラ�氳繃HDLDeviceManager.devicesDataList鑾峰彇
+
+**浠g爜鑼冧緥**
+
+```java
+    /**
+     * ====================EventBus 璁㈤槄浜嬩欢 ====================
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onDevicesInfoEventMain(DevicesInfoEvent event) {
+        mAllDevicesList.clear();
+        mProgressDialog.dismiss();
+        if (!event.isSuccess()) {
+            Toast.makeText(MainActivity.this, "鎼滅储瓒呮椂锛岃閲嶆柊鍐嶈瘯", Toast.LENGTH_SHORT).show();
+            tvResult.setText("鎼滅储瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+            return;
+        }
+        mDevicesDataList = event.getDesDataList();
+        updateDeviceListView();
+    }
+
+```
+
+鎵归噺娣诲姞锛屼粎鍋氭紨绀虹敤
+
+**浠g爜鑼冧緥**
+
+```java
+
+        //娣诲姞涓�涓伅
+        DeviceParser.addDevicesListWithoutSearching(Configuration.LIGTH_BIG_TYPE, 0, mSubnetID, mDeviceID, 6, "澶滅伅", parentRemarks,false);
+        //娣诲姞涓�涓伅
+        DeviceParser.addDevicesListWithoutSearching(Configuration.LIGTH_BIG_TYPE, 0, mSubnetID, mDeviceID, 7, "搴婂ご鐏�", parentRemarks,false);
+        //娣诲姞涓�涓伅
+        DeviceParser.addDevicesListWithoutSearching(Configuration.LIGTH_BIG_TYPE, 0, mSubnetID, mDeviceID, 8, "瀹㈡埧鎻掑骇", parentRemarks,false);
+        //娣诲姞涓�涓伅
+        DeviceParser.addDevicesListWithoutSearching(Configuration.LIGTH_BIG_TYPE, 0, mSubnetID, mDeviceID, 12, "琛f煖鐏�", parentRemarks,false);
+
+        //娣诲姞涓�涓獥甯�
+        DeviceParser.addDevicesListWithoutSearching(Configuration.CURTAIN_BIG_TYPE, 2, mSubnetID, mDeviceID, 1, "绐楀笜", parentRemarks,false);
+        //娣诲姞涓�涓┖璋�
+        DeviceParser.addDevicesListWithoutSearching(Configuration.AIR_BIG_TYPE, 0, mSubnetID, mDeviceID, 1, "鎴块棿绌鸿皟", parentRemarks,false);
+
+
+        //娣诲姞涓�涓満鏅� 杩欓噷鍦烘櫙鍙峰拰鍖哄彿 榛樿涓�鏍�
+        DeviceParser.addScenesDevicesListWithoutSearching(mSubnetID, mDeviceID, 1, 1, "绌虹疆鏃犲崱", parentRemarks,false);
+        //娣诲姞涓�涓満鏅�
+        DeviceParser.addScenesDevicesListWithoutSearching(mSubnetID, mDeviceID, 3, 3, "鏄庝寒鍦烘櫙", parentRemarks,false);
+        //娣诲姞涓�涓満鏅�
+        DeviceParser.addScenesDevicesListWithoutSearching(mSubnetID, mDeviceID, 4, 4, "鎴跨伅", parentRemarks,false);
+        //娣诲姞涓�涓満鏅� 鏈�鍚庝竴涓猙SaveAndCallBack 璁剧疆涓簍rue
+        DeviceParser.addScenesDevicesListWithoutSearching(mSubnetID, mDeviceID, 5, 5, "鎬诲紑鍏�", parentRemarks,true);
+
+
+```
+
+
+### 浜屻�佹坊鍔犲満鏅�
+**浠g爜鑼冧緥**
+
+```java
+ 
+    /**
+     * 娣诲姞鍦烘櫙璁惧鍥炶矾 闇�鎸囧畾 鍦烘櫙鍖哄彿 鍜� 鍦烘櫙鍙�
+     * 濡傛灉瀛樺湪鐩稿悓瀛愮綉鍙� 璁惧鍙凤紝鍒欏綋鎴愭贩鍚堟ā鍧楁坊鍔犲埌璇ュ洖璺笅锛屼笉瀛樺湪鍒欐柊娣诲姞妯″潡
+     *
+     * @param mSubnetID
+     * @param mDeviceID
+     * @param mAreaNum       //鍦烘櫙 鍖哄煙鍙�
+     * @param mAreaSceneNum  //鍦烘櫙 褰撳墠鍖哄煙鍦烘櫙鍙�
+     * @param mChannelRemark 璇诲彇鍦烘櫙鐨勫娉ㄥ悕绉� 渚嬪: 鍏ヤ綇銆佽捣搴婃ā寮忋�侀槄璇绘ā寮�
+     * @param parentRemarks  褰撳墠鍥炶矾妯″潡鐨勫娉� 渚嬪: 閰掑簵RCU妯″潡
+     * @param bSaveAndCallBack 鏄惁椹笂淇濆瓨鏈湴骞朵笖鎺ㄩ�丏evicesInfoEvent 浜嬩欢
+     * @return
+     */
+    private void AddScenesDevices(int mSubnetID, int mDeviceID, int mAreaNum, int mAreaSceneNum, String mChannelRemark, String parentRemarks, boolean bSaveAndCallBack) {
+        //娣诲姞鍦烘櫙
+        DevicesData mScenesData = DeviceParser.addScenesDevicesListWithoutSearching(mSubnetID, mDeviceID, mAreaNum, mAreaSceneNum, mChannelRemark, parentRemarks,true);
+    }
+
+
+```
+
+娣诲姞鎴愬姛鍚庡悓鏍蜂細鏀跺埌DevicesInfoEvent璁㈤槄浜嬩欢
+
+### 涓夈�佸垵濮嬪寲璁惧鍒楄〃
+
+ * 璇ユ柟娉曞簲鐢ㄤ簬鎻愪緵椤圭洰浜や粯鍓嶇殑鎻愬彇鎵归噺鏁版嵁鐢熸垚濂芥暟鎹��
+ * 妯℃嫙鐢熸垚璁惧鍥炶矾鏁版嵁锛屽湪椤圭洰涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱㈡儏鍐典笅锛屽厛蹇嵎鐢熸垚鐩爣鏁版嵁 寰楀埌 List<DevicesData> 鏍煎紡鐨勮澶囧垪琛ㄦ暟鎹�
+
+**浠g爜鑼冧緥**
+
+```java
+   /**
+     * 鍒濆鍖� HDLSDK
+     */
+    private void initHDLSDK() {
+        /**SDK鍒濆鍖� 閰嶇疆涓插彛 璺緞鍜屾尝鐗圭巼鍙傛暟*/
+        //HDL_PATH_NAME (涓插彛璺緞)
+        //HDL_BAUDRATE  (娉㈢壒鐜�)锛屾尝鐗圭巼榛樿115200
+        HDLTtlSdk.init(this, HDL_PATH_NAME, HDL_BAUDRATE);
+        //HDLTtlSdk.setHDLLogOpen(false);//閰嶇疆鏄惁寮�鍚疭DK鎵撳嵃鏃ュ織锛岄粯璁や负鎵撳紑
+
+
+        /*****涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱㈢殑椤圭洰锛屼笂灞備繚瀛樿鍙栧姞杞� 璧嬪�肩粰SDK*************************/
+        List<DevicesData> mDevicesDataList = new ArrayList<>();
+        .......
+        //mDevicesDataList 涓婂眰鍋氭湰鍦颁繚瀛樻垨鑰呬簯绔浠斤紝App鍚姩鏃惰鍙栨仮澶� 鍔犺浇璇ヨ澶囧垪琛�
+        .......
+        HDLDeviceManager.devicesDataList = mDevicesDataList;
+        /*******************涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱㈢殑椤圭洰***********************************/
+    }
+```
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_control.md b/Android_HDL_SDK_TTL_DOC/src/api_control.md
new file mode 100755
index 0000000..7a65694
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_control.md
@@ -0,0 +1,82 @@
+# 鎺у埗璁惧
+
+### 涓�銆佹帶鍒惰澶�
+
+SDK鎵�鏈夌殑璁惧鍜孧cu鎺у埗鏂规硶鍦℉DLCommand绫讳腑锛�
+
+寮�鍙戣�呭彲浠ラ�氳繃璋冪敤閲岄潰鐨勬柟娉曪紝骞朵紶鍏ュ搴旀帶鍒惰澶囩殑AppliancesInfo鍙傛暟锛屽垯鍙互鎴愬姛鍙戦�佹帶鍒舵寚浠ゃ��
+
+**浠g爜鑼冧緥**
+
+```java
+    //鍙戦�佹帶鍒剁伅鍏夋ā鍧楁寚浠� 
+    //appliancesInfo锛氫负闇�瑕佹帶鍒剁殑鐨勬ā鍧梚nfo鍙傛暟锛岄噷闈繚瀛樹簡褰撳墠鍥炶矾妯″潡鐨勬墍鏈夊弬鏁颁俊鎭�
+    //lightState锛氭帶鍒舵敼鍙樼殑浜害鍊� 0~100
+    HDLCommand.lightCtrl(appliancesInfo, lightState);
+```
+
+### 浜屻�佽澶囩被鍨嬭鏄�
+
+閫氳繃鑾峰彇璁惧appliancesInfo閲岄潰鐨刡igType鍙傛暟锛屽彲浠ュ垽鏂綋鍓嶈澶囩殑绫诲瀷锛岃烦杞姞杞藉搴旂殑鎺у埗椤甸潰锛屽苟鍙戦�佸搴旂殑鎺у埗鍛戒护銆�
+
+姣忎釜bigType澶х被鍖哄垎鍝釜澶х被妯″潡鍚庯紝鍙互鍐嶆牴鎹瓺eviceType璁惧绫诲瀷鏉ョ粏鍒嗗叿浣撴槸鍝璁惧锛屼緥濡備笅闈唬鐮佽寖渚婬VAC绌鸿皟妯″潡銆�
+
+**浠g爜鑼冧緥**
+
+```java
+switch (bigType) {
+    case Configuration.LIGTH_BIG_TYPE:
+        //鐏厜妯″潡
+        break;
+    case Configuration.CURTAIN_BIG_TYPE:
+        //绐楀笜妯″潡
+        break;
+    case Configuration.AIR_BIG_TYPE:
+        //绌鸿皟妯″潡
+        if(appliancesInfos.get(position).getDeviceType() == HDLApConfig.TYPE_AC_HVAC){
+            //HDLApConfig.TYPE_AC_HVAC涓篐VAC绌鸿皟妯″潡
+        }else {
+            //鍏朵粬绌鸿皟妯″潡    
+        }
+        break;
+    case Configuration.LOGIC_BIG_TYPE:
+        //閫昏緫妯″潡
+        break;
+    case Configuration.AUDIO_BIG_TYPE:
+        //闊充箰妯″潡
+        break;
+    case Configuration.SECURITY_BIG_TYPE:
+        //瀹夐槻妯″潡
+        break;
+
+    default:
+        break;
+}
+```
+
+
+### 涓夈�丄ppliancesInfo绫昏鏄�
+
+**绫绘弿杩�**
+
+AppliancesInfo绫绘槸SDK鎼滅储鎴栬�呮墜鏈烘坊鍔犺澶囧悗锛岀敤鏉ヤ繚瀛樺綋鍓嶅洖璺ā鍧楃殑鎵�鏈変俊鎭��
+
+
+**绫诲弬鏁拌鏄庝唬鐮佽寖渚�**
+
+```java
+    .......
+    private String deviceName;//璁惧鍚嶇О
+    private int bigType;//澶х被
+    private int littleType;//灏忕被
+    private int channelNum;//鍥炶矾鍙�
+    private int deviceSubnetID;//璁惧瀛愮綉鍙�
+    private int deviceDeviceID;//璁惧鍙�
+    private String remarks;//澶囨敞
+    private String parentRemarks;//妯″潡澶囨敞
+    private int deviceType;//璁惧绫诲瀷
+    .......
+```
+
+姣忎釜妯″潡閮戒細鏈夎嚜宸辩殑 澶х被銆佸皬绫汇�佸瓙缃戝彿銆佽澶囧彿銆佸洖璺彿銆佽澶囩被鍨嬨�佸娉ㄧ瓑鍙傛暟锛屾牴鎹繖浜涘弬鏁板彲浠ヨ瘑鍒嚭璇ヨ澶囨槸鍝被璁惧锛屽湪鍝釜瀛愮綉鍙枫�佽澶囧彿銆佷互鍙婂洖璺彿涓嬮潰锛岀敤浜庡尯鍒嗕笉鍚屽洖璺澶囥�傚悗闈㈠璁惧鎺у埗鑾峰彇鐘舵�侊紝鐩戝惉鍥炲閮介渶瑕佺敤鍒伴噷闈㈢殑杩欎簺鍙傛暟銆�
+
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_control_air.md b/Android_HDL_SDK_TTL_DOC/src/api_control_air.md
new file mode 100755
index 0000000..e68a348
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_control_air.md
@@ -0,0 +1,371 @@
+# 绌鸿皟绫绘ā鍧�
+
+**绌鸿皟绫绘ā鍧楁敮鎸佹悳绱㈠拰鎺у埗鐨勭被鍨�**
+
+HVAC 妯″潡锛�0锛�
+閫氱敤绌鸿皟闈㈡澘锛�3锛�
+
+### 涓�銆丠VAC妯″潡鏌ヨ鐘舵��
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.getHVACDeviceStateFromNetwork(AppliancesInfo info)
+
+璋冪敤璇ユ帴鍙o紝鑾峰彇HVAC绌鸿皟璁惧鐘舵�併��
+
+娉細HVAC绌鸿皟DeviceType璁惧绫诲瀷涓篐DLApConfig.TYPE_AC_HVAC銆�
+
+**浠g爜鑼冧緥**
+
+```java
+    //鏌ヨHVAC绌鸿皟妯″潡鐘舵�佷俊鎭�
+    HDLCommand.getHVACDeviceStateFromNetwork(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_AC_HVAC:
+                    if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) {
+                        if (!event.isSuccess()) {
+                            showToast("鑾峰彇绌鸿皟鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+                        AirHVACBackInfo mAirHVACBackInfo = new AirHVACBackInfo(event.getAppliancesInfo());
+                        if (mAirHVACBackInfo == null) {
+                            showToast("鑾峰彇绌鸿皟鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+                        showAirHVACBackInfo(mAirHVACBackInfo);
+                    }
+                    break;
+                default:
+                    //涓嶅鐞�
+                    break;
+            }
+        }
+    }
+
+```
+
+
+### 浜屻�丠VAC妯″潡鎺у埗鏀瑰彉鐘舵��
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.airCtrl(AppliancesInfo info, int type, int state)
+
+type锛氶渶瑕佹帶鍒跺姛鑳藉懡浠ゅ弬鏁�
+
+state锛氶渶瑕佹帶鍒跺姛鑳藉搴旂殑鐘舵�佸��
+
+璋冪敤璇ユ帴鍙o紝鍙互鎺у埗鏀瑰彉HVAC绌鸿皟妯″潡鐨勶紝寮�銆佸厜銆佹ā寮忋�侀閫熴�佹俯搴︾瓑鐘舵�併��
+
+妯″紡锛氬埗鍐枫�佸埗鐑�侀�氶銆佽嚜鍔ㄣ�佹娊婀�5绉嶆ā寮忋��
+
+椋庨�燂細鑷姩銆侀珮椋庛�佷腑椋庛�佷綆椋�
+
+娓╁害锛氭俯搴﹁寖鍥�16~30
+
+**浠g爜鑼冧緥**
+
+```java
+    .......
+    //鍙戦�佹帶鍒剁┖璋冩ā鍧楁墦寮�鎸囦护 
+    HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOn);//绌鸿皟寮�
+    .......
+
+    .......
+    //鍙戦�佹帶鍒剁┖璋冩ā鍧楁敼鍙樻ā寮忔寚浠� 
+    HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeAuto);//绌鸿皟妯″紡鑷姩
+    .......
+
+    .......
+    //鍙戦�佹帶鍒剁┖璋冩ā鍧楁敼鍙橀閫熸寚浠� 
+    HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedHigh);//椋庨�熼珮椋�
+    .......
+
+    .......
+    //鍙戦�佹帶鍒剁┖璋冩ā鍧楁敼鍙樻俯搴︽寚浠� 
+    HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.refTem, tempInt);//鍒跺喎娓╁害
+    .......
+
+```
+
+**鎺у埗鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鎺у埗鐘舵�佽秴鏃舵垨鎴愬姛锛岄兘浼氭敹鍒癆irHVACFeedBackEvent璁㈤槄浜嬩欢锛屽鏋渆vent.isSuccess()鍊间负false锛屽垯浠h〃鎺у埗瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨帶鍒剁姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+**浠g爜鑼冧緥**
+```java
+    /**
+     * 绌鸿皟妯″潡鎺у埗鍥炶皟Event
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onAirHVACFeedBackEventMain(AirHVACFeedBackEvent event) {
+        if (event.getAirHVACBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getAirHVACBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getAirHVACBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()
+        ) {
+            //        鍏堝垽鏂槸鍚﹁秴鏃�
+            if (!event.isSuccess()) {
+                showToast("绌鸿皟鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+                return;
+            }
+            AirHVACBackInfo mAirHVACBackInfo = event.getAirHVACBackInfo();
+            showAirHVACBackInfo(mAirHVACBackInfo);
+        }
+    }
+
+    .......
+    private void showAirHVACBackInfo(AirHVACBackInfo mAirHVACBackInfo){
+        String message = "";
+        if(mAirHVACBackInfo.getIsOn() == AirCtrlParser.airOn) {
+            message = getSwichStateString(mAirHVACBackInfo.getIsOn());
+            message += "\n" + getModeStateString(mAirHVACBackInfo.getAirMode());//妯″紡
+            message += "\n" + getSpeedStateString(mAirHVACBackInfo.getAirSpeed());//椋庨��
+            message += "\n鍒跺喎妯″紡娓╁害锛�" + mAirHVACBackInfo.getRefTemp();
+            message += "\n鍒剁儹妯″紡娓╁害锛�" + mAirHVACBackInfo.getHeatTemp();
+            message += "\n鑷姩妯″紡娓╁害锛�" + mAirHVACBackInfo.getAutoTemp();
+            message += "\n鎶芥箍妯″紡娓╁害锛�" + mAirHVACBackInfo.getWettedTemp();
+        }else {
+            message = getSwichStateString(mAirHVACBackInfo.getIsOn());
+        }
+        airText.setText(message);
+        showToast(message);
+        HDLLog.Log(message);
+
+    }
+
+```
+
+
+
+### 涓夈�侀�氱敤绌鸿皟闈㈡澘鏌ヨ鐘舵��
+
+**鎺ュ彛鎻忚堪**
+
+閫氱敤绌鸿皟闈㈡澘涓嶆敮鎸佹煡璇㈢姸鎬侊紝
+
+娉細閫氱敤绌鸿皟闈㈡澘绌鸿皟DeviceType璁惧绫诲瀷涓篐DLApConfig.TYPE_AC_PANEL銆�
+
+
+**鐘舵�佹敼鍙樺洖璋冧簨浠剁洃鍚�**
+
+绌鸿皟闈㈡澘鐘舵�佹敼鍙樹細鏀跺埌DeviceStateEvent璁㈤槄浜嬩欢锛孲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_AC_HVAC:
+                case HDLApConfig.TYPE_AC_PANEL:
+                    if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) {
+                        if (!event.isSuccess()) {
+                            showToast("鑾峰彇绌鸿皟鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+
+                        byte[] curState = event.getAppliancesInfo().getArrCurState();
+                        switch (curState[0] & 0xFF) {
+                            case AirCtrlParser.airSwich:
+                                //鏄┖璋冨紑鍏崇姸鎬佽繑鍥�
+                                break;
+
+                            case AirCtrlParser.airSpeed:
+                                //鏄閫熺姸鎬佽繑鍥�
+                                break;
+                            case AirCtrlParser.airMode:
+                                //鏄┖璋冩ā寮忕姸鎬佽繑鍥�
+                                break;
+                            case AirCtrlParser.refTem:
+                                //鏄┖璋冨埗鍐锋俯搴︾姸鎬佽繑鍥�
+                                break;
+                            case AirCtrlParser.heatTem:
+                                //鏄┖璋冨埗鐑俯搴︾姸鎬佽繑鍥�
+                                break;
+                            case AirCtrlParser.autoTem:
+                                //鏄┖璋冭嚜鍔ㄦ俯搴︾姸鎬佽繑鍥�
+                                break;
+                            case AirCtrlParser.dehumTem:
+                                //鏄┖璋冩娊婀挎俯搴︾姸鎬佽繑鍥�
+                                break;
+                            case AirCtrlParser.upTem:
+                                airTempState = curState[1] & 0xFF;
+                                airText.setText("绌鸿皟璋冩俯锛屼笂鍗囨俯搴︼細" + (curState[1] & 0xFF));
+                                showToast("绌鸿皟璋冩俯锛屼笂鍗囨俯搴︼細" + (curState[1] & 0xFF));
+                                HDLLog.Log("绌鸿皟璋冩俯锛屼笂鍗囨俯搴︼細" + (curState[1] & 0xFF));
+                                break;
+                            case AirCtrlParser.downTem:
+                                airTempState = curState[1] & 0xFF;
+                                airText.setText("绌鸿皟璋冩俯锛屼笅闄嶆俯搴︼細" + (curState[1] & 0xFF));
+                                showToast("绌鸿皟璋冩俯锛屼笅闄嶆俯搴︼細" + (curState[1] & 0xFF));
+                                HDLLog.Log("绌鸿皟璋冩俯锛屼笅闄嶆俯搴︼細" + (curState[1] & 0xFF));
+                                break;
+                        }
+                    }
+                    break;
+                default:
+                    //涓嶅鐞�
+                    break;
+            }
+        }
+    }
+
+
+
+```
+
+### 鍥涖�侀�氱敤绌鸿皟闈㈡澘鎺у埗鏀瑰彉鐘舵��
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.airCtrl(AppliancesInfo info, int type, int state)
+
+type锛氶渶瑕佹帶鍒跺姛鑳藉懡浠ゅ弬鏁�
+
+state锛氶渶瑕佹帶鍒跺姛鑳藉搴旂殑鐘舵�佸��
+
+璋冪敤璇ユ帴鍙o紝鍙互鎺у埗鏀瑰彉閫氱敤绌鸿皟闈㈡澘妯″潡鐨勶紝寮�銆佸厜銆佹ā寮忋�侀閫熴�佹俯搴︾瓑鐘舵�併��
+
+妯″紡锛氬埗鍐枫�佸埗鐑�侀�氶銆佽嚜鍔ㄣ�佹娊婀�5绉嶆ā寮忋��
+
+椋庨�燂細鑷姩銆侀珮椋庛�佷腑椋庛�佷綆椋�
+
+娓╁害锛氭俯搴﹁寖鍥�16~30
+
+娉細閫氱敤绌鸿皟闈㈡澘鍜孒VAC绌鸿皟妯″潡涓嶄竴鏍凤紝閫氱敤绌鸿皟闈㈡澘鎺у埗浠�涔堢姸鎬佸氨杩斿洖浠�涔堢姸鎬併��
+
+渚嬪锛氭帶鍒跺紑鍏崇姸鎬侊紝绌鸿皟闈㈡澘鍙細鍥炲褰撳墠寮�鍏崇姸鎬侊紝妯″紡銆侀閫熴�佹俯搴︾瓑鍏朵粬鐘舵�佷笉浼氳繑鍥烇紝鎵�浠ョ洃鍚洖璋冩柟娉曟椂闇�鍏堝垽鏂紝褰撳墠鍥炲鐨勬槸浠�涔堢姸鎬佸弬鏁帮紝鍐嶈繘琛屼笅涓�姝ュ鐞嗐��
+
+**浠g爜鑼冧緥**
+
+```java
+    .......
+    //鍙戦�佹帶鍒剁┖璋冩ā鍧楁墦寮�鎸囦护 
+    HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOn);//绌鸿皟寮�
+    .......
+
+    .......
+    //鍙戦�佹帶鍒剁┖璋冩ā鍧楁敼鍙樻ā寮忔寚浠� 
+    HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeAuto);//绌鸿皟妯″紡鑷姩
+    .......
+
+    .......
+    //鍙戦�佹帶鍒剁┖璋冩ā鍧楁敼鍙橀閫熸寚浠� 
+    HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedHigh);//椋庨�熼珮椋�
+    .......
+
+    .......
+    //鍙戦�佹帶鍒剁┖璋冩ā鍧楁敼鍙樻俯搴︽寚浠� 
+    HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.refTem, tempInt);//鍒跺喎娓╁害
+    .......
+
+```
+
+**鎺у埗鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鎺у埗鐘舵�佽秴鏃舵垨鎴愬姛锛岄兘浼氭敹鍒癆irFeedBackEvent璁㈤槄浜嬩欢锛屽鏋渆vent.isSuccess()鍊间负false锛屽垯浠h〃鎺у埗瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨帶鍒剁姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+
+**浠g爜鑼冧緥**
+```java
+   /**
+     * 绌鸿皟妯″潡鎺у埗鍥炶皟Event
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onAirFeedBackInfoEventMain(AirFeedBackEvent event) {
+        if (event.getAirCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getAirCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getAirCtrlBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()
+        ) {
+            //        鍏堝垽鏂槸鍚﹁秴鏃�
+            if (!event.isSuccess()) {
+                showToast("绌鸿皟鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+                return;
+            }
+
+            byte[] curState = event.getAirCtrlBackInfo().getCurState();
+            switch (curState[0] & 0xFF) {
+                case AirCtrlParser.airSwich:
+                    //鏄┖璋冨紑鍏崇姸鎬佽繑鍥�
+                    break;
+                case AirCtrlParser.airSpeed:
+                    //鏄閫熺姸鎬佽繑鍥�
+                    break;
+                case AirCtrlParser.airMode:
+                    //鏄┖璋冩ā寮忕姸鎬佽繑鍥�
+                    break;
+                case AirCtrlParser.refTem:
+                    //鏄┖璋冨埗鍐锋俯搴︾姸鎬佽繑鍥�
+                    break;
+                case AirCtrlParser.heatTem:
+                    //鏄┖璋冨埗鐑俯搴﹁繑鍥�
+                    break;
+                case AirCtrlParser.autoTem:
+                    //鏄┖璋冭嚜鍔ㄦ俯搴﹁繑鍥�
+                    break;
+                case AirCtrlParser.dehumTem:
+                    //鏄┖璋冩娊婀跨儹娓╁害杩斿洖
+                    break;
+                case AirCtrlParser.upTem:
+                    airTempState = curState[1] & 0xFF;
+                    airText.setText("绌鸿皟璋冩俯锛屼笂鍗囨俯搴︼細" + (curState[1] & 0xFF));
+                    showToast("绌鸿皟璋冩俯锛屼笂鍗囨俯搴︼細" + (curState[1] & 0xFF));
+                    HDLLog.Log("绌鸿皟璋冩俯锛屼笂鍗囨俯搴︼細" + (curState[1] & 0xFF));
+                    break;
+                case AirCtrlParser.downTem:
+                    airTempState = curState[1] & 0xFF;
+                    airText.setText("绌鸿皟璋冩俯锛屼笅闄嶆俯搴︼細" + (curState[1] & 0xFF));
+                    showToast("绌鸿皟璋冩俯锛屼笅闄嶆俯搴︼細" + (curState[1] & 0xFF));
+                    HDLLog.Log("绌鸿皟璋冩俯锛屼笅闄嶆俯搴︼細" + (curState[1] & 0xFF));
+                    break;
+
+            }
+        }
+    }
+```
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_control_curtain.md b/Android_HDL_SDK_TTL_DOC/src/api_control_curtain.md
new file mode 100755
index 0000000..552944c
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_control_curtain.md
@@ -0,0 +1,205 @@
+# 绐楀笜绫绘ā鍧�
+
+**绐楀笜绫绘ā鍧楁敮鎸佹悳绱㈠拰鎺у埗鐨勭被鍨�**
+
+寮�鍚堝笜鐢垫満锛�00锛�
+鍗峰笜鐢垫満锛�01锛�
+绐楀笜妯″潡锛�02锛� 
+
+### 涓�銆佹煡璇㈢姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.getCurtainDeviceStateFromNetwork(AppliancesInfo info)
+
+璋冪敤璇ユ帴鍙o紝鍙互鏌ヨ褰撳墠绐楀笜绫昏澶囩殑寮�鍏崇姸鎬佷俊鎭��
+
+**浠g爜鑼冧緥**
+
+```java
+    //璇锋眰鑾峰彇褰撳墠绐楀笜妯″潡鐘舵�佷俊鎭�
+    HDLCommand.getCurtainDeviceStateFromNetwork(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_CURTAIN_GLYSTRO:
+                case HDLApConfig.TYPE_CURTAIN_ROLLER:
+                case HDLApConfig.TYPE_CURTAIN_MODULE:
+                    if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) {
+                        if (!event.isSuccess()) {
+                            showToast("鑾峰彇绐楀笜鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+                        showMessage = "";
+                        //绐楀笜妯″潡锛歝urState:0=鍋滄,1=鎵撳紑,2=鍏抽棴銆�
+                        //寮�鍚堝笜鐢垫満锛屽嵎甯樼數鏈猴細curState:1-100寮�鍚堝害銆�
+                        int curState = HDLUtlis.getIntegerByObject(event.getAppliancesInfo().getCurState());
+                        if (event.getAppliancesInfo().getDeviceType() == HDLApConfig.TYPE_CURTAIN_MODULE) {//鍒ゆ柇鏄惁涓虹獥甯樻ā鍧�,鍚﹀垯涓哄紑鍚堝笜鎴栧嵎甯樼數鏈�
+                            switch (curState) {
+                                case CurtainCtrlParser.curtainOff:
+                                    showMessage = "绐楀笜鍏�";
+                                    curtainBtn.setText(showMessage);
+                                    curText1.setText(showMessage);
+                                    curtainState = curState;
+                                    break;
+                                case CurtainCtrlParser.curtainOn:
+                                    showMessage = "绐楀笜寮�";
+                                    curtainBtn.setText(showMessage);
+                                    curText1.setText(showMessage);
+                                    curtainState = curState;
+                                    break;
+                                case CurtainCtrlParser.curtainPause:
+                                    showMessage = "绐楀笜鏆傚仠";
+                                    curtainBtn.setText(showMessage);
+                                    curText1.setText(showMessage);
+                                    curtainState = curState;
+                                    break;
+                            }
+                        } else {
+                            showMessage = "绐楀笜寮�鍒�" + curState + "%";
+                            curtainBtn5.setText(showMessage);
+                            curtainState = curState;
+                        }
+
+                        showToast("鑾峰彇鎴愬姛锛�" + showMessage);
+                    }
+                    break;
+                default:
+                    //涓嶅鐞�
+                    break;
+            }
+        }
+    }
+
+```
+
+**澶囨敞**
+
+HDLApConfig.TYPE_CURTAIN_MODULE 涓虹獥甯樻ā鍧楋紝璇ョ被鍨嬫ā鍧楋紝鍙湁寮�銆佸叧銆佸仠姝� 3绉嶇姸鎬侊紱
+
+HDLApConfig.TYPE_CURTAIN_GLYSTRO 涓哄紑鍚堝笜鐢垫満锛岃绫诲瀷妯″潡锛岃繑鍥炵姸鎬�0-100%锛岃〃绀烘墦寮�鐧惧垎姣旓紱
+
+HDLApConfig.TYPE_CURTAIN_ROLLER 涓哄嵎甯樼數鏈猴紝璇ョ被鍨嬫ā鍧楋紝杩斿洖鐘舵��0-100%锛岃〃绀烘墦寮�鐧惧垎姣旓紱
+
+
+
+### 浜屻�佹帶鍒舵敼鍙樼姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.curtainCtrl(AppliancesInfo info, int state)
+
+璋冪敤璇ユ帴鍙o紝鍙互鎺у埗鏀瑰彉绐楀笜绫绘ā鍧楃殑锛屾墦寮�銆佸叧闂�佸仠姝㈠拰鎵撳紑鐧惧垎姣旓紙绐楀笜妯″潡涓嶈兘鎺у埗鐧惧垎鐧撅紝寮�鍚堝笜鐢垫満銆佸嵎甯樼數鏈烘墠鑳斤級銆�
+
+**浠g爜鑼冧緥**
+
+```java
+    ........
+    //鍙戦�佹帶鍒剁獥甯樻墦寮�鍛戒护
+    HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOn);
+    ........
+
+    ........
+    //鍙戦�佹帶鍒跺紑鍚堝笜鐢垫満鎵撳紑鍒�50%
+    HDLCommand.curtainCtrl(appliancesInfo, 50);
+    ........
+
+```
+
+**鎺у埗鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鎺у埗鐘舵�佽秴鏃舵垨鎴愬姛锛岄兘浼氭敹鍒癈urtainFeedBackEvent璁㈤槄浜嬩欢锛岀獥甯樼被鎺у埗鍥炶皟閮界粺涓�鐢ㄨ繖涓簨浠讹紝濡傛灉event.isSuccess()鍊间负false锛屽垯浠h〃鎺у埗瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨帶鍒剁姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+**浠g爜鑼冧緥**
+```java
+
+      /**
+     * 绐楀笜妯″潡鎺у埗鍥炶皟Event
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onCurtainFeedBackInfoEventMain(CurtainFeedBackEvent event) {
+//        鍏堝垽鏂槸鍚﹁秴鏃�
+        HDLLog.Log("onCurtainFeedBackInfoEventMain in");
+        if (event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getCurtainCtrlBackInfo().getNum() == appliancesInfo.getChannelNum()
+        ) {
+
+            if (!event.isSuccess()) {
+                showToast("绐楀笜鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+                return;
+            }
+
+            int curState = event.getCurtainCtrlBackInfo().getState();
+            //绐楀笜妯″潡锛歝urState:0=鍋滄,1=鎵撳紑,2=鍏抽棴銆�
+            //寮�鍚堝笜鐢垫満锛屽嵎甯樼數鏈猴細curState:1-100寮�鍚堝害銆備篃浼氳繑鍥�0锛�1锛�2鐨勭姸鎬�
+            //寤鸿寮�鍚堝笜鐢垫満锛屽嵎甯樼數鏈烘寜鍋滄鍚庡啀璇诲彇褰撳墠鐘舵�佹潵鑾峰彇褰撳墠鐘舵�佸��
+
+            String remarks = event.getCurtainCtrlBackInfo().getRemarks();
+            String parentRemarks = event.getCurtainCtrlBackInfo().getParentRemarks();
+            int num = event.getCurtainCtrlBackInfo().getNum();
+//            showToast(parentRemarks+" 鐨� "+remarks+" 鍥炶矾鍙凤細"+num+" 杩斿洖"+" 鐘舵�佷负锛�"+curState);
+            HDLLog.Log(parentRemarks + " 鐨� " + remarks + " 鍥炶矾鍙凤細" + num + " 杩斿洖" + " 鐘舵�佷负锛�" + curState);
+            if (event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceType() == HDLApConfig.TYPE_CURTAIN_MODULE) {
+                showMessage = "";
+                //鍒ゆ柇鏄惁涓虹獥甯樻ā鍧�
+                switch (curState) {
+                    case CurtainCtrlParser.curtainOff:
+                        showMessage = "绐楀笜鍏�";
+                        curtainBtn.setText(showMessage);
+                        curText1.setText(showMessage);
+                        curtainState = curState;
+                        HDLLog.Log("绐楀笜鎺у埗 锛氱獥甯樺叧" + "  鍥炶矾鍙凤細" + num);
+                        break;
+                    case CurtainCtrlParser.curtainOn:
+                        showMessage = "绐楀笜寮�";
+                        curtainBtn.setText(showMessage);
+                        curText1.setText(showMessage);
+                        curtainState = curState;
+                        HDLLog.Log("绐楀笜鎺у埗 锛氱獥甯樺紑" + "  鍥炶矾鍙凤細" + num);
+                        break;
+                    case CurtainCtrlParser.curtainPause:
+                        showMessage = "绐楀笜鏆傚仠";
+                        curtainBtn.setText(showMessage);
+                        curText1.setText(showMessage);
+                        curtainState = curState;
+                        HDLLog.Log("绐楀笜鎺у埗 锛氱獥甯樻殏鍋�" + "  鍥炶矾鍙凤細" + num);
+                        break;
+                }
+                showToast(showMessage);
+            } else {
+                //寮�鍚堝笜鎴栧嵎甯� 鏄剧ず鐧惧垎姣�
+                curtainBtn5.setText("绐楀笜寮�鍒�" + curState + "%");
+                curText2.setText("绐楀笜寮�鍒�" + curState + "%");
+                curtainState = curState;
+            }
+
+        }
+
+    }
+```
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_control_light.md b/Android_HDL_SDK_TTL_DOC/src/api_control_light.md
new file mode 100755
index 0000000..9b864b6
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_control_light.md
@@ -0,0 +1,132 @@
+# 鐏厜绫绘ā鍧�
+
+**鐏厜绫绘ā鍧楁敮鎸佹悳绱㈠拰鎺у埗鐨勭被鍨�**
+
+璋冨厜鍥炶矾锛�00锛�
+寮�鍏冲洖璺紙01锛�
+娣峰悎璋冨厜绫伙紙09锛�
+娣峰悎寮�鍏崇被锛�10锛�
+
+### 涓�銆佹煡璇㈢姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.getLightDeviceStateFromNetwork(AppliancesInfo info)
+
+璋冪敤璇ユ帴鍙o紝鍙互鏌ヨ褰撳墠鐏厜璁惧鐨勪寒搴︾姸鎬佷俊鎭��
+
+**浠g爜鑼冧緥**
+
+```java
+    //璇锋眰鑾峰彇褰撳墠鐏厜妯″潡鐘舵�佷俊鎭�
+    HDLCommand.getLightDeviceStateFromNetwork(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_LIGHT_DIMMER:
+                case HDLApConfig.TYPE_LIGHT_RELAY:
+                case HDLApConfig.TYPE_LIGHT_MIX_DIMMER:
+                case HDLApConfig.TYPE_LIGHT_MIX_RELAY:
+                    if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) {
+                        if (!event.isSuccess()) {
+                            showToast("鑾峰彇鐏厜鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+                        int brightness =  HDLUtlis.getIntegerByObject(event.getAppliancesInfo().getCurState());
+                        lightBtn.setText("浜害 = " + brightness);
+                        lightText.setText("褰撳墠浜害 = " + brightness);
+                        showToast("鑾峰彇鐘舵�佽繑鍥烇細浜害 = " +  brightness);
+                    }
+                    break;
+                default:
+                    //涓嶅鐞�
+                    break;
+            }
+        }
+    }
+```
+
+
+### 浜屻�佹帶鍒舵敼鍙樼姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.lightCtrl(AppliancesInfo info, int state)
+
+state锛氳寖鍥�0~100
+
+璋冪敤璇ユ帴鍙o紝鍙互鎺у埗鏀瑰彉鐏厜妯″潡鐨勶紝寮�鍏崇姸鎬佸拰浜害鍊笺��
+
+**浠g爜鑼冧緥**
+
+```java
+    //鍙戦�佹帶鍒剁伅鍏夋ā鍧楁寚浠� 
+    //appliancesInfo锛氫负闇�瑕佹帶鍒剁殑鐨勬ā鍧梚nfo鍙傛暟锛岄噷闈繚瀛樹簡褰撳墠鍥炶矾妯″潡鐨勬墍鏈夊弬鏁颁俊鎭�
+    //lightState锛氭帶鍒舵敼鍙樼殑浜害鍊� 0~100
+    HDLCommand.lightCtrl(appliancesInfo, lightState);
+
+```
+
+**鎺у埗鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鎺у埗鐘舵�佽秴鏃舵垨鎴愬姛锛岄兘浼氭敹鍒癓ightFeedBackEvent璁㈤槄浜嬩欢锛岀伅鍏夋帶鍒跺洖璋冮兘缁熶竴鐢ㄨ繖涓簨浠讹紝濡傛灉event.isSuccess()鍊间负false锛屽垯浠h〃鎺у埗瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨帶鍒剁姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+**浠g爜鑼冧緥**
+```java
+
+    /**
+     * 鐏厜鎺у埗鍥炶皟Event
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onLightFeedBackInfoEventMain(LightFeedBackEvent event) {
+
+        if (event.getLightCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getLightCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getLightCtrlBackInfo().getChannelNum() == appliancesInfo.getChannelNum()
+        ) {
+            //        鍏堝垽鏂槸鍚﹁秴鏃�
+            if (!event.isSuccess()) {
+                showToast("鐏厜鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+                lightBtn.setText("鐏厜鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+                return;
+            }
+            int brightness = event.getLightCtrlBackInfo().getBrightness();
+            lightState = brightness == 100 ? 0 : 100;//濡傛灉杩斿洖100閲嶇疆鐘舵�佷负0锛屽弽涔嬮噸缃姸鎬�100
+            lightBtn.setText("褰撳墠浜害 = " + brightness);
+            lightText.setText("褰撳墠浜害 = " + brightness);
+            /*浠ヤ笅涓虹伅鍏夋帹閫佺ず渚嬩唬鐮侊紝鍙互璇嗗埆鍝釜缁х數鍣紝鍝釜璋冨厜鐏紝鍝釜鍥炶矾锛屼篃鍙敤浣滄帶鍒跺洖棣堛��
+            鎸夐渶姹傝皟鐢�*/
+            String remarks = event.getLightCtrlBackInfo().getRemarks();//鑾峰彇杩斿洖鐨勭伅鍏夊娉ㄣ�傚鏋滄瘡涓伅鍏夊洖璺娉ㄩ兘鍞竴锛屽彲浠ョ洿鎺ラ�氳繃澶囨敞鍒ゆ柇
+            String parentRemarks = event.getLightCtrlBackInfo().getParentRemarks();//鑾峰彇缁х數鍣ㄦ垨璋冨厜鐏娉ㄣ�傝繖閲屽彲浠ョ煡閬撴槸鍝釜璁惧杩斿洖鐨�
+            int num = event.getLightCtrlBackInfo().getChannelNum();//鑾峰彇鍥炶矾鍙枫�傝繖閲屽彲浠ヨ幏鍙栧埌杩欎釜缁х數鍣ㄦ垨璋冨厜鐏殑鍥炶矾鍙�
+            showToast("妯″潡锛�" + parentRemarks + " 鐨� " + remarks + " 鍥炶矾锛屽洖璺彿涓猴細" + num + " 杩斿洖" + " 浜害涓猴細" + brightness);
+            HDLLog.Log("褰撳墠浜害 = " + brightness);
+        }
+    }
+```
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_control_music.md b/Android_HDL_SDK_TTL_DOC/src/api_control_music.md
new file mode 100755
index 0000000..b2531a9
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_control_music.md
@@ -0,0 +1,213 @@
+# 闊充箰绫绘ā鍧�
+
+**闊充箰绫绘ā鍧楁敮鎸佹悳绱㈠拰鎺у埗鐨勭被鍨�**
+
+鑳屾櫙闊充箰妯″潡锛�0锛� 
+
+
+### 涓�銆佽儗鏅煶涔愭帶鍒�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.audioCtrl(AppliancesInfo info, int type)
+
+info锛氶渶瑕佹帶鍒惰澶囩殑鍙傛暟
+
+type锛氶渶瑕佹帶鍒跺姛鑳藉懡浠ゅ弬鏁�
+
+璋冪敤璇ユ帴鍙o紝鍙互鎺у埗鑳屾櫙闊充箰妯″潡锛岃幏鍙栧綋鍓嶆瓕鏇蹭俊鎭�佹挱鏀�/鏆傚仠銆佹挱鏀�/鍋滄銆佷笂涓�棣栥�佷笅涓�棣栥�佸垏鎹㈡挱鏀炬ā寮忋�佽幏鍙栦笅涓�鍒楄〃銆佽幏鍙栦笂涓�鍒楄〃銆�
+
+**浠g爜鑼冧緥**
+
+```java
+    .......
+    HDLCommand.audioCtrl(appliancesInfo, HDLAudio.GET_AUDIO_CURRRENT_INFO);//鑾峰彇褰撳墠闊充箰淇℃伅銆傝繑鍥炲綋鍓嶆瓕鏇层�佹墍鏈変俊鎭��
+    HDLCommand.audioCtrl(appliancesInfo, HDLAudio.GET_AUDIO_MODE);//鑾峰彇褰撳墠闊充箰鎾斁妯″紡銆備粎杩斿洖鍗曟洸鎾斁绛夋挱鏀炬ā寮忋��
+    .......
+    .......
+    //鎾斁鎴栨殏鍋�
+    HDLCommand.audioCtrl(appliancesInfo, HDLAudio.SET_AUDIO_PLAYPAUSE);
+    .......
+    .......
+    //鎾斁鎴栧仠姝�
+    HDLCommand.audioCtrl(appliancesInfo, HDLAudio.SET_AUDIO_PLAYSTOP);
+    .......
+    .......
+    //涓婁竴棣�
+    HDLCommand.audioCtrl(appliancesInfo, HDLAudio.SET_PRE_SONG);
+    .......
+    .......
+    //涓嬩竴棣�
+    HDLCommand.audioCtrl(appliancesInfo, HDLAudio.SET_NEXT_SONG);
+    .......
+    .......
+    //鍒囨崲鎾斁妯″紡
+    HDLCommand.audioCtrl(appliancesInfo, HDLAudio.SET_AUDIO_MODE_UP);//鎾斁妯″紡+
+    //HDLCommand.HDLaudioCtrl(CtrlAudioActivity.this,appliancesInfo,HDLAudio.SET_AUDIO_MODE_DOWN);//鎾斁妯″紡-
+    .......
+    .......
+    //鑾峰彇涓嬩竴鍒楄〃锛屽綋鍓嶉煶涔愪細鍋滄鎾斁
+    HDLCommand.audioCtrl(appliancesInfo, HDLAudio.SET_NEXT_LIST);
+    .......
+    .......
+    //鑾峰彇涓婁竴鍒楄〃锛屽綋鍓嶉煶涔愪細鍋滄鎾斁
+    HDLCommand.audioCtrl(appliancesInfo, HDLAudio.SET_PRE_LIST);
+    .......
+
+```
+
+
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.audioCtrl(AppliancesInfo info, int type, int value)
+
+璋冪敤璇ユ帴鍙o紝鍙互鎺у埗鑳屾櫙闊充箰妯″潡锛岃幏鍙栧綋鍓嶆挱鏀惧垪琛ㄣ�佹帶鍒惰澶囬煶閲忋��
+
+**浠g爜鑼冧緥**
+
+```java
+
+    .......
+    //鑾峰彇褰撳墠鎾斁鍒楄〃锛屾鏂规硶濡傛灉鍦ㄦ瓕鏇叉挱鏀剧姸鎬佹椂璋冪敤鍒欎細瀵艰嚧姝屾洸鍋滄鎾斁锛岀‖浠惰璁″姝�
+    HDLCommand.audioCtrl(appliancesInfo, HDLAudio.GET_AUDIO_LIST, curListNum);
+    .......               
+    .......
+    //璁剧疆鎾斁闊抽噺
+    HDLCommand.audioCtrl(appliancesInfo, HDLAudio.SET_AUDIO_VOL, 0);//闊抽噺鏈�灏忥細0銆傚皬浜�0锛孲DK涓嶅鐞�
+    .......
+```
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.audioCtrl(AppliancesInfo info, int type, int listId, int songId)
+
+listId锛氬綋鍓嶅垪琛ㄥ彿
+
+songId锛氳鎾斁鐨勫垪琛ㄤ腑姝屾洸瀵瑰簲鐨勬瓕鏇睮D
+
+璋冪敤璇ユ帴鍙o紝鍙互鎺у埗鑳屾櫙闊充箰妯″潡锛岄�夋嫨鎸囧畾鎾斁鐨勬瓕鏇层��
+
+**浠g爜鑼冧緥**
+
+```java      
+    .......
+    //璁剧疆鎾斁闊抽噺
+    HDLCommand.audioCtrl(appliancesInfo, HDLAudio.SET_CHOOSE_PLAY_SONG, curListNum, position);
+    .......
+```
+
+
+
+
+**鏌ヨ鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鑳屾櫙闊充箰妯″潡鏌ヨ銆佹帶鍒惰秴鏃舵垨鎴愬姛锛岄兘浼氭敹鍒癆udioInfoEvent璁㈤槄浜嬩欢锛�
+
+寮�鍙戣�呭彲浠ュ湪鎵�闇�瑕佽幏鍙栫姸鎬佸洖璋冪殑鍦版柟锛岃闃呰浜嬩欢锛�
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨煡璇㈢姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+鏍规嵁杩斿洖鐨別vent.getType()绫诲瀷锛屽垽鏂槸浠�涔堢被鍨嬬姸鎬佽繑鍥炪��
+
+渚嬶細getType()绛変簬HDLAudio.CALLBACK_CURRENT_VOLUME 鐨勮瘽锛屼负杩斿洖闊抽噺绫诲瀷鍙傛暟鍙傛暟
+
+杈撳嚭鎵撳嵃锛欻DLLog.Log("褰撳墠闊抽噺鍊硷細" + event.getAudioInfoInt());
+
+
+**浠g爜鑼冧緥**
+```java
+    /**
+     * 闊充箰妯″潡鐘舵�佸洖璋僂vent
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onAudioEventMain(AudioInfoEvent event) {
+        //鍒ゆ柇鏄惁涓烘湰闊充箰妯″潡鐨勫瓙缃戝彿锛岃澶囧彿
+        if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+        ) {
+            HDLLog.Log("onAudioEventMain: " + event.getType());
+            switch (event.getType()) {
+                case HDLAudio.CALLBACK_SONG_NAME_LIST:
+                    listString.clear();
+                    for (int i = 0; i < event.getSongNameList().size(); i++) {
+                        listString.add(event.getSongNameList().get(i));
+                    }
+                    adapter.notifyDataSetChanged();
+                    break;
+                case HDLAudio.CALLBACK_CURRENT_VOLUME:
+                    HDLLog.Log("褰撳墠闊抽噺鍊硷細" + event.getAudioInfoInt());
+                    break;
+                case HDLAudio.CALLBACK_AUDIO_LIST_NUM:
+                    int[] listNum = event.getAudioListInfo();
+                    curListNum = listNum[0];
+                    HDLLog.Log("褰撳墠鍒楄〃鍙凤細" + listNum[0] + " 褰撳墠鍏辨湁鍒楄〃鏁帮細" + listNum[1]);
+                    if (isInit) {
+                        isInit = false;//姝ゆ搷浣滀负浠呭垵濮嬪寲鎵嶈姹傝幏鍙栧綋鍓嶉煶涔愬垪琛紝鍘傚晢鍙互鑷鍐冲畾浣曟椂鑾峰彇闊充箰鍒楄〃
+                        HDLCommand.audioCtrl(appliancesInfo, HDLAudio.GET_AUDIO_LIST, curListNum);//鑾峰彇褰撳墠鎾斁鍒楄〃锛屾鏂规硶濡傛灉鍦ㄦ瓕鏇叉挱鏀剧姸鎬佹椂璋冪敤鍒欎細瀵艰嚧姝屾洸鍋滄鎾斁锛岀‖浠惰璁″姝�
+                    }
+                    break;
+                case HDLAudio.CALLBACK_CURRENT_LIST_NAME:
+                    HDLLog.Log("褰撳墠鍒楄〃鍚嶏細" + event.getAudioInfoStr());
+                    break;
+                case HDLAudio.CALLBACK_CURRENT_SONG_NUM:
+                    int[] songNum = event.getAudioListInfo();
+                    HDLLog.Log("褰撳墠姝屾洸鍙凤細" + songNum[0] + " 褰撳墠鍏辨湁姝屾洸鏁帮細" + songNum[1]);
+                    break;
+                case HDLAudio.CALLBACK_CURRENT_SONG_NAME:
+                    HDLLog.Log("褰撳墠姝屾洸鍚嶏細" + event.getAudioInfoStr());
+                    curSongNameTv.setText("褰撳墠姝屾洸鍚嶏細" + event.getAudioInfoStr());
+                    break;
+                case HDLAudio.CALLBACK_CURRENT_SONG_INFO:
+                    int[] songInfo = event.getAudioListInfo();
+                    //songInfo[0],songInfo[1]鑾峰緱鐨勫�间负绉掞紝濡俿ongInfo[0]=250锛屽嵆姝屾洸鎬绘椂闀夸负250绉掋�俿ongInfo[2]鑾峰緱鐨勫�间负锛�1銆�2銆�3銆�1锛氬仠姝紝2锛氭挱鏀撅紝3锛氭殏鍋溿��
+                    String curStatus;
+                    switch (songInfo[2]) {
+                        case 1:
+                            curStatus = "鍋滄";
+                            break;
+                        case 2:
+                            curStatus = "鎾斁";
+                            break;
+                        case 3:
+                            curStatus = "鏆傚仠";
+                            break;
+                        default:
+                            curStatus = "鏈煡";
+                            break;
+                    }
+                    HDLLog.Log("褰撳墠姝屾洸鎬绘椂闀匡細" + songInfo[0] + "绉� 锛屽綋鍓嶆瓕鏇插凡鎾斁鏃堕暱锛�" + songInfo[1] + "绉掞紝 褰撳墠姝屾洸鐘舵�侊細" + curStatus);
+                    curSongInfoTv.setText("褰撳墠姝屾洸鎬绘椂闀匡細" + songInfo[0] + "绉� 锛屽綋鍓嶆瓕鏇插凡鎾斁鏃堕暱锛�" + songInfo[1] + "绉掞紝 褰撳墠姝屾洸鐘舵�侊細" + curStatus);
+                    break;
+                case HDLAudio.CALLBACK_CURRENT_MODE:
+                    String curMode;
+                    switch (event.getAudioInfoInt()) {
+                        case 1:
+                            curMode = "鍗曟洸鎾斁";
+                            break;
+                        case 2:
+                            curMode = "鍗曟洸寰幆";
+                            break;
+                        case 3:
+                            curMode = "杩炵画鎾斁";
+                            break;
+                        case 4:
+                            curMode = "杩炴挱寰幆";
+                            break;
+                        default:
+                            curMode = "鏈煡";
+                            break;
+
+                    }
+                    modeBtn.setText(curMode);
+                    break;
+                default:
+                    break;
+            }
+        }
+
+
+    }
+
+```
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_control_scenes.md b/Android_HDL_SDK_TTL_DOC/src/api_control_scenes.md
new file mode 100755
index 0000000..5597988
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_control_scenes.md
@@ -0,0 +1,125 @@
+# 鍦烘櫙鎺у埗锛堥�昏緫妯″潡锛�
+
+**鍦烘櫙鎺у埗鐨勭被鍨�**
+
+閫昏緫妯″潡锛堝ぇ绫� 12 灏忕被 0 锛�
+鍏ㄥ眬閫昏緫妯″潡锛堝ぇ绫� 17 灏忕被 0锛� 
+
+### 涓�銆佹煡璇㈢姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.getSceneNumStateFromNetwork(AppliancesInfo info)
+
+璋冪敤璇ユ帴鍙o紝鍙互鏌ヨ褰撳墠鍦烘櫙鍙蜂俊鎭��
+
+**浠g爜鑼冧緥**
+
+```java
+    //璇锋眰鑾峰彇閫氱敤寮�鍏崇姸鎬佷俊鎭�
+    HDLCommand.getSceneNumStateFromNetwork(appliancesInfo);
+```
+
+**鏌ヨ鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+    鏌ヨ鐘舵�佹垚鍔燂紝浼氭敹鍒癝cenesStateBackEvent璁㈤槄浜嬩欢锛屽悓鏃跺満鏅彉鍖栦篃浼氭敹鍒拌浜嬩欢鍥炶皟
+
+**浠g爜鑼冧緥**
+```java
+   
+      /**
+     * 褰撳墠鍦烘櫙鐘舵�佸彉鍖栭兘浼氭帹閫佽繖涓�氱煡Event
+     * 鏇村姞椤圭洰闇�瑕侊紝 杩欓噷鐨勫尯鍙锋湁鐨勬儏鍐典笅涓嶉渶澶勭悊锛屾湁鐨勮澶囧浐瀹氭槸1 鍙渶澶勭悊鍦烘櫙鍙凤紝鍒ゆ柇鐩墠鎵ц浜嗛偅涓満鏅氨琛�
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onScenesStateBackEventMain(ScenesStateBackEvent event) {
+        if (event.getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()) {
+//            //
+//            int mAreaNum = event.getAreaNum();
+//            int mSceneNum = event.getSceneNum();
+//
+//            //鍙互鑷繁閫氳繃鍖哄彿 鍜� 鍦烘櫙鍙� 鏉ュ尮閰嶅垽鏂綋鍓嶆墽琛屼簡浠�涔堝満鏅�
+//            sceneText.setText("褰撳墠妯″潡鎵ц鐨勫満鏅尯鍙�: " + mAreaNum + "  鍦烘櫙鍙�: "+mSceneNum);
+            
+            int mSceneNum = event.getSceneNum();
+            //鍙互鑷繁閫氳繃鍦烘櫙鍙� 鏉ュ尮閰嶅垽鏂綋鍓嶆墽琛屼簡浠�涔堝満鏅�
+            sceneText.setText("褰撳墠妯″潡鎵ц鐨勫満鏅彿: "+mSceneNum);
+
+        }
+    }
+
+```
+
+
+### 浜屻�佹帶鍒舵敼鍙樼姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.logicCtrl(AppliancesInfo info)
+
+璋冪敤璇ユ帴鍙o紝鍙互鎵ц鐩稿簲鐨勫満鏅��
+
+**浠g爜鑼冧緥**
+
+```java
+    //鍙戦�佸満鏅帶鍒舵寚浠� 
+    //appliancesInfo锛氫负闇�瑕佹帶鍒剁殑鐨勬ā鍧梚nfo鍙傛暟锛岄噷闈繚瀛樹簡褰撳墠鍥炶矾妯″潡鐨勬墍鏈夊弬鏁颁俊鎭�
+    HDLCommand.logicCtrl(appliancesInfo);
+
+```
+
+**鎺у埗鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鎺у埗鍦烘櫙瓒呮椂鎴栨垚鍔燂紝閮戒細鏀跺埌LogicFeedBackEvent 璁㈤槄浜嬩欢锛岄�氱敤寮�鍏虫帶鍒跺洖璋冮兘缁熶竴鐢ㄨ繖涓簨浠讹紝濡傛灉event.isSuccess()鍊间负false锛屽垯浠h〃鎺у埗瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+濡傛灉鎺у埗鎴愬姛鐨勮瘽锛屽満鏅姸鎬佸彉鍖栵紝涔熶細鏀跺埌ScenesStateBackEvent璁㈤槄浜嬩欢锛屽彲浠ヨ嚜宸遍�氳繃鍦烘櫙鍙� 鏉ュ尮閰嶅垽鏂綋鍓嶆墽琛屼簡浠�涔堝満鏅�
+
+
+**浠g爜鑼冧緥**
+```java
+      /**
+     * 閫昏緫妯″潡鎺у埗鍥炶皟Event
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onLogicFeedBackInfoEventMain(LogicFeedBackEvent event) {
+//        鍏堝垽鏂槸鍚﹁秴鏃�
+        if (event.getLogicCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getLogicCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getLogicCtrlBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()
+        ) {
+            if (!event.isSuccess()) {
+                showToast("鍦烘櫙鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+                return;
+            }
+            showToast("鍦烘櫙鎺у埗鎴愬姛");
+        }
+    }
+
+   /**
+     * 褰撳墠鍦烘櫙鐘舵�佸彉鍖栭兘浼氭帹閫佽繖涓�氱煡Event
+     * 鏇村姞椤圭洰闇�瑕侊紝 杩欓噷鐨勫尯鍙锋湁鐨勬儏鍐典笅涓嶉渶澶勭悊锛屾湁鐨勮澶囧浐瀹氭槸1 鍙渶澶勭悊鍦烘櫙鍙凤紝鍒ゆ柇鐩墠鎵ц浜嗛偅涓満鏅氨琛�
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onScenesStateBackEventMain(ScenesStateBackEvent event) {
+        if (event.getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()) {
+//            //
+//            int mAreaNum = event.getAreaNum();
+//            int mSceneNum = event.getSceneNum();
+//
+//            //鍙互鑷繁閫氳繃鍖哄彿 鍜� 鍦烘櫙鍙� 鏉ュ尮閰嶅垽鏂綋鍓嶆墽琛屼簡浠�涔堝満鏅�
+//            sceneText.setText("褰撳墠妯″潡鎵ц鐨勫満鏅尯鍙�: " + mAreaNum + "  鍦烘櫙鍙�: "+mSceneNum);
+            
+            int mSceneNum = event.getSceneNum();
+            //鍙互鑷繁閫氳繃鍦烘櫙鍙� 鏉ュ尮閰嶅垽鏂綋鍓嶆墽琛屼簡浠�涔堝満鏅�
+            sceneText.setText("褰撳墠妯″潡鎵ц鐨勫満鏅彿: "+mSceneNum);
+
+        }
+    }
+
+```
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_control_security.md b/Android_HDL_SDK_TTL_DOC/src/api_control_security.md
new file mode 100755
index 0000000..2cdd4e1
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_control_security.md
@@ -0,0 +1,141 @@
+# 瀹夐槻绫绘ā鍧�
+
+**瀹夐槻绫绘ā鍧楁敮鎸佹悳绱㈠拰鎺у埗鐨勭被鍨�**
+
+瀹夐槻妯″潡锛�0锛� 
+
+
+### 涓�銆佹煡璇㈠竷闃茬姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.getSecurityStateFromNetwork(AppliancesInfo info)
+
+璋冪敤璇ユ帴鍙o紝鍙互鏌ヨ褰撳墠瀹夐槻鐨勫竷闃茬姸鎬佷俊鎭��
+
+**浠g爜鑼冧緥**
+
+```java
+    //璇锋眰鑾峰彇褰撳墠瀹夐槻妯″潡甯冮槻鐘舵�佷俊鎭�
+    HDLCommand.getSecurityStateFromNetwork(appliancesInfo);
+```
+
+**鏌ヨ鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鏌ヨ鐘舵�佽秴鏃舵垨鎴愬姛锛岄兘浼氭敹鍒癉eviceStateEvent璁㈤槄浜嬩欢锛孲DK鎵�鏈夌姸鎬佸洖璋冮兘缁熶竴鐢ㄨ繖涓簨浠讹紝濡傛灉event.isSuccess()鍊间负false锛屽垯浠h〃鏌ヨ瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+寮�鍙戣�呭彲浠ュ湪鎵�闇�瑕佽幏鍙栫姸鎬佸洖璋冪殑鍦版柟锛岃闃呰浜嬩欢锛�
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夈�丄ppliancesInfo閲岄潰鐨勮澶囩被鍨嬶紙getDeviceType锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨煡璇㈢姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+
+
+**浠g爜鑼冧緥**
+```java
+     /**
+     * 鏌ヨ甯冮槻鐘舵�� 鍥炶皟Event
+     *
+     * @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_SECURITY_MODULE:
+                    if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) {
+                        if (!event.isSuccess()) {
+                            tv_mesSetText("鑾峰彇甯冮槻鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+
+                        SecurityArmingStateBackInfo mSecurityArmingStateBackInfo = new SecurityArmingStateBackInfo(event.getAppliancesInfo().getArrCurState());
+                        if (mSecurityArmingStateBackInfo == null) {
+                            tv_mesSetText("鑾峰彇甯冮槻鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+
+                        int armingStateBack = mSecurityArmingStateBackInfo.getArmingState();
+                        if (armingStateBack == 0) {   //璇诲彇杩斿洖0涓烘挙闃�
+                            armingState = SecurityParser.ARMING_DISARMING;
+                            spinner_arming.setSelection(armingState - 1, true);
+                            tv_mesSetText("鑾峰彇鎴愬姛锛屽綋鍓嶇姸鎬侊細" + armingTypeItems[armingState - 1]);
+                        } else if (armingStateBack >= 1 && armingStateBack <= 6) {
+                            armingState = armingStateBack;//鏇存柊鐘舵�佸��
+                            spinner_arming.setSelection(armingState - 1, true);
+                            tv_mesSetText("鑾峰彇鎴愬姛锛屽綋鍓嶇姸鎬侊細" + armingTypeItems[armingState - 1]);
+                        } else {
+                            tv_mesSetText("鑾峰彇鎴愬姛锛屾湭鐭ュ竷闃茬姸鎬�");
+                        }
+
+                    }
+                    break;
+            }
+        }
+    }
+
+```
+
+**娉細杩斿洖鐨� armingState甯冮槻鐘舵�佸搴斿叧绯伙細 5 = 鐧藉ぉ甯冮槻 4 = 鏅氫笂鏈夊甯冮槻 3 = 澶滈棿甯冮槻 2 = 绂诲紑甯冮槻 1 = 鍋囨湡甯冮槻  0 = 鎾ら槻**
+
+### 浜屻�佹帶鍒舵敼鍙樼姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.securityArmingCtrl(AppliancesInfo info, int state)
+
+璋冪敤璇ユ帴鍙o紝淇敼瀹夐槻妯″潡鐨勫竷闃茬姸鎬併��
+
+**娉細鎺у埗鐨剆tate甯冮槻鐘舵�佸搴斿叧绯伙細6 = 鎾ら槻 5 = 鐧藉ぉ甯冮槻 4 = 鏅氫笂鏈夊甯冮槻 3 = 澶滈棿甯冮槻 2 = 绂诲紑甯冮槻 1 = 鍋囨湡甯冮槻**
+    **鎾ら槻鐘舵�佷笅鎵嶈兘甯冮槻锛屾墍浠ユ兂淇敼鍏朵粬甯冮槻妯″紡闇�鍏堟挙闃�**
+
+**浠g爜鑼冧緥**
+
+```java
+    //鍙戦�佷慨鏀瑰竷闃茬姸鎬佸懡浠� 
+    HDLCommand.securityArmingCtrl(appliancesInfo, armingState);
+
+```
+
+**鎺у埗鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+甯冮槻瓒呮椂鎴栨垚鍔燂紝閮戒細鏀跺埌SecurityArmingFeedBackEvent璁㈤槄浜嬩欢锛屽鏋渆vent.isSuccess()鍊间负false锛屽垯浠h〃鎺у埗瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨帶鍒剁姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+**浠g爜鑼冧緥**
+```java
+
+    /**
+     * 甯冮槻璁剧疆鍥炶皟Event
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onSecurityArmingFeedBackEventMain(SecurityArmingFeedBackEvent event) {
+        if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()
+        ) {
+            //鍏堝垽鏂槸鍚﹁秴鏃�
+            if (!event.isSuccess()) {
+                tv_mesSetText("甯冮槻璁剧疆瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+                return;
+            }
+
+            int armingStateGet = event.getArmingState();
+            if (armingStateGet >= 1 && armingStateGet <= 6) {
+                armingState = armingStateGet;
+                spinner_arming.setSelection(armingState - 1, true);
+                tv_mesSetText("甯冮槻鎴愬姛锛屽綋鍓嶇姸鎬侊細" + armingTypeItems[armingState - 1]);
+            } else if (armingState == SecurityParser.ARMING_FAIL) {
+                tv_mesSetText("甯冮槻澶辫触");
+            } else {
+                tv_mesSetText("鏈煡甯冮槻鐘舵��");
+            }
+        }
+    }
+
+```
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_control_switch.md b/Android_HDL_SDK_TTL_DOC/src/api_control_switch.md
new file mode 100755
index 0000000..e349871
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_control_switch.md
@@ -0,0 +1,116 @@
+# 閫氱敤寮�鍏虫ā鍧�
+
+**閫氱敤寮�鍏虫ā鍧楃殑绫诲瀷**
+
+閫氱敤寮�鍏筹紙澶х被 100 灏忕被 0锛�
+
+### 涓�銆佹煡璇㈢姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.getCommonSwitchStateFromNetwork(AppliancesInfo info)
+
+璋冪敤璇ユ帴鍙o紝鍙互鏌ヨ褰撳墠閫氱敤寮�鍏宠澶囩殑寮�鍏崇姸鎬併��
+
+**浠g爜鑼冧緥**
+
+```java
+    //璇锋眰鑾峰彇閫氱敤寮�鍏崇姸鎬佷俊鎭�
+    HDLCommand.getCommonSwitchStateFromNetwork(appliancesInfo);
+```
+
+**鏌ヨ鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鏌ヨ鐘舵�佽秴鏃舵垨鎴愬姛锛岄兘浼氭敹鍒皁nCommonSwitchStateEventMain璁㈤槄浜嬩欢锛屽鏋渆vent.isSuccess()鍊间负false锛屽垯浠h〃鏌ヨ瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+寮�鍙戣�呭彲浠ュ湪鎵�闇�瑕佽幏鍙栫姸鎬佸洖璋冪殑鍦版柟锛岃闃呰浜嬩欢锛�
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夈�丄ppliancesInfo閲岄潰鐨勮澶囩被鍨嬶紙getDeviceType锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨煡璇㈢姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+
+
+**浠g爜鑼冧緥**
+```java
+    /**
+     * 閫氱敤寮�鍏崇姸鎬� 鍥炲鍥炶皟Event
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onCommonSwitchStateEventMain(CommonSwitchStateBackEvent event) {
+        if (event.getCommonSwitchBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getCommonSwitchBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getCommonSwitchBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()
+        ) {
+            if (!event.isSuccess()) {
+                showToast("閫氱敤寮�鍏宠鍙栫姸鎬佽秴鏃讹紝璇烽噸鏂板啀璇�");
+                return;
+            }
+
+//            showToast("閫氱敤寮�鍏虫帶鍒舵垚鍔�");
+
+            switchState =  event.getCommonSwitchBackInfo().getSwitchState();
+            if(switchState>0){
+                switchText.setText("褰撳墠鐘舵�侊細寮�");
+            }else{
+                switchText.setText("褰撳墠鐘舵�侊細鍏�");
+            }
+        }
+
+    }
+```
+
+
+### 浜屻�佹帶鍒舵敼鍙樼姸鎬�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.commonSwitchCtrl(AppliancesInfo info, int )
+
+璋冪敤璇ユ帴鍙o紝鍙互鎺у埗閫氱敤寮�鍏虫ā鍧楃殑寮�鍏崇姸鎬併��
+
+**浠g爜鑼冧緥**
+
+```java
+    //鍙戦�佹帶鍒堕�氱敤寮�鍏虫寚浠� 
+    //appliancesInfo锛氫负闇�瑕佹帶鍒剁殑鐨勬ā鍧梚nfo鍙傛暟锛岄噷闈繚瀛樹簡褰撳墠鍥炶矾妯″潡鐨勬墍鏈夊弬鏁颁俊鎭�
+    //0=鍏� 255=寮�
+    HDLCommand.commonSwitchCtrl(appliancesInfo, state);
+
+```
+
+**鎺у埗鐘舵�佸洖璋冧簨浠剁洃鍚�**
+
+鎺у埗瓒呮椂鎴栨垚鍔燂紝閮戒細鏀跺埌CommonSwitchCtrlBackEvent璁㈤槄浜嬩欢锛岄�氱敤寮�鍏虫帶鍒跺洖璋冮兘缁熶竴鐢ㄨ繖涓簨浠讹紝濡傛灉event.isSuccess()鍊间负false锛屽垯浠h〃鎺у埗瓒呮椂锛屾病鏀跺埌璁惧鍥炲锛�
+
+骞堕�氳繃姣旇緝鍓嶈澶囧拰鍥炶皟鐘舵�佽澶囩殑瀛愮綉鍙凤紙getDeviceSubnetID锛夈�佽澶囧彿锛坓etDeviceDeviceID锛夊拰鍥炶矾鍙凤紙getChannelNum锛夋槸鍚︿竴鑷达紝浠庤�屽垽鏂娑堟伅浜嬩欢涓哄綋鍓嶈澶囨帶鍒剁姸鎬佽繑鍥炵殑娑堟伅锛岃繘琛屼笅涓�姝ュ鐞嗭紝涓嶄竴鑷村垯杩囨护涓嶅鐞嗐��
+
+**浠g爜鑼冧緥**
+```java
+    /**
+     * 閫氱敤寮�鍏虫帶鍒跺洖璋僂vent
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onCommonSwitchCtrlEventMain(CommonSwitchCtrlBackEvent event) {
+        if (event.getCommonSwitchBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getCommonSwitchBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getCommonSwitchBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()
+        ) {
+            if (!event.isSuccess()) {
+                showToast("閫氱敤寮�鍏虫帶鍒惰秴鏃讹紝璇烽噸鏂板啀璇�");
+                return;
+            }
+
+            showToast("閫氱敤寮�鍏虫帶鍒舵垚鍔�");
+
+            switchState =  event.getCommonSwitchBackInfo().getSwitchState();
+            if(switchState>0){
+                 switchText.setText("褰撳墠鐘舵�侊細寮�");
+            }else{
+                switchText.setText("褰撳墠鐘舵�侊細鍏�");
+            }
+        }
+
+    }
+```
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_mcu.md b/Android_HDL_SDK_TTL_DOC/src/api_mcu.md
new file mode 100755
index 0000000..16ec601
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_mcu.md
@@ -0,0 +1,408 @@
+# MCU閫氫俊
+  <!-- * [璇婚厤缃俊鎭痌(./src/Integrated.md)
+  * [鍐欓厤缃俊鎭痌(./src/Integrated.md)
+  * [鐢宠鍗囩骇](./src/Integrated.md)
+  * [閲嶅惎MCU](./src/Integrated.md)
+  * [妫�娴嬩涪鍖呯姸鎬乚(./src/Integrated.md) -->
+
+### MCU鎺у埗缁熶竴鍥炶皟
+
+MCU鐨勬墍鏈夎姹傚洖璋冿紝瓒呮椂銆佸嚭閿欐垨鎴愬姛閮戒細缁熶竴鏀跺埌MCUFeedBackEvent璁㈤槄浜嬩欢锛岀敤鎴烽�氳繃鑾峰彇杩斿洖鎿嶄綔鐮侊紙event.getMCUDataBean().command锛夋潵鍒ゆ柇鏄摢绉嶅洖璋冧俊鎭紝浠庤�屽疄鐜板鐞嗕笉鍚屽洖璋冪殑鏁版嵁銆�
+
+
+**浠g爜鑼冧緥**
+
+```java
+    /**
+     * MCU鎺у埗鍥炶皟Event
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onMCUFeedBackEventMain(MCUFeedBackEvent event) {
+        if (event.getEventCode() == EventCode.FAILURE_TIMEOUT) {
+            if (TextUtils.isEmpty(event.getError())) {
+                showToast("MCU璇锋眰瓒呮椂锛岃绋嶅悗鍐嶈瘯");
+            } else {
+                showToast(event.getError());
+            }
+            return;
+        }
+
+        switch (event.getMCUDataBean().command) {
+            case MCUConstants.MCU_COMMAND_SEND_BACK:    //
+                //閫忎紶杩斿洖鐨勬暟鎹�
+                handleMCUPassThroughDataBack(event);
+                break;
+            case MCUConstants.MCU_READ_CONFIGURATION_BACK:// 璇婚厤缃繑鍥�
+            case MCUConstants.MCU_WRITE_CONFIGURATION_BACK:// 鍐欓厤缃俊鎭繑鍥�
+                handleMCUConfigurationBack(event);
+                break;
+            // case MCUConstants.MCU_DETECT_PACKET_LOSS_STATUS_BACK:// 妫�娴嬩涪鍖呯姸鎬佽繑鍥�
+            //     //寰呭鐞�
+            //     handleDetectPacketLossStatusBack(event);
+                break;
+            case MCUConstants.MCU_REQUEST_UPGRADE_BACK:   // 璇锋眰鍗囩骇杩斿洖
+                handleRequestUpgradeBack(event);
+                break;
+            case MCUConstants.MCU_RESTART_BACK:     //0x86 閲嶅惎杩斿洖
+                handleRestartBack(event);
+                break;
+            default:
+                break;
+        }
+    }
+
+```
+
+### 涓�銆佽閰嶇疆鍙傛暟
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.mcuReadConfiguration()
+
+璋冪敤璇ユ帴鍙o紝鍙互璇诲彇MCU鐨勯厤缃弬鏁帮紝鍗忚绫诲瀷銆佹尝鐗圭巼銆佹暟鎹綅銆佹牎楠屼綅鍜屽仠姝綅 銆�
+
+**浠g爜鑼冧緥**
+
+鍙戦�佽鍙朚CU閰嶇疆璇锋眰
+```java
+    //璇诲彇MCU閰嶇疆璇锋眰
+     HDLCommand.mcuReadConfiguration();
+```
+
+璇婚厤缃俊鎭洖璋�
+
+褰撶洃鍚埌command涓篗CUConstants.MCU_READ_CONFIGURATION_BACK鏃讹紝涓鸿鍙栭厤缃俊鎭殑鍥炶皟锛屾垚鍔熻幏鍙朚CU閰嶇疆鏁版嵁澶勭悊骞舵樉绀猴紱
+
+MCU鐨勯厤缃弬鏁帮細鍗忚绫诲瀷銆佹尝鐗圭巼銆佹暟鎹綅銆佹牎楠屼綅鍜屽仠姝綅 锛岄兘鍙互浠庤繑鍥瀍vent涓幏鍙栥��
+
+鑾峰彇鏂规硶锛歟vent.getMCUDataBean().getMCUConfigurationBean()
+
+**浠g爜鑼冧緥**
+
+```java
+    .......
+    case MCUConstants.MCU_READ_CONFIGURATION_BACK:// 鍐欓厤缃俊鎭繑鍥�
+        handleMCUConfigurationBack(event);//澶勭悊MCU璇诲啓閰嶇疆杩斿洖鏁版嵁
+    .......
+
+    /**
+     * 澶勭悊MCU璇诲啓閰嶇疆杩斿洖鏁版嵁
+     *
+     * @param event
+     */
+    private void handleMCUConfigurationBack(MCUFeedBackEvent event) {
+        if (event.getEventCode() != EventCode.SUCCESS) {
+            tv_config_mesSetText("MCU璇诲啓閰嶇疆鍑洪敊锛岃繑鍥炴暟鎹紓甯�");
+            return;
+        }
+        tv_config_mesSetText("鎴愬姛鑾峰彇閰嶇疆");
+        bGetMCUConfiguration = true;
+        updateMCUConfiguration(event.getMCUDataBean().getMCUConfigurationBean());//鑾峰彇閰嶇疆鍙傛暟骞舵樉绀�
+    }
+```
+
+
+
+### 浜屻�佸啓閰嶇疆鍙傛暟
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.mcuWriteConfiguration(byte[] sendBytes)
+
+璋冪敤璇ユ帴鍙o紝鍙互淇敼MCU鐨勯厤缃弬鏁帮紝鍗忚绫诲瀷銆佹尝鐗圭巼銆佹暟鎹綅銆佹牎楠屼綅鍜屽仠姝綅 銆�
+
+**浠g爜鑼冧緥**
+
+鍙戦�佸啓MCU閰嶇疆璇锋眰锛屽紑鍙戣�呴�氳繃淇敼鏇存柊mMCUConfigurationBean瀵瑰簲鐨勫弬鏁板悗锛岀洿鎺ヨ皟鐢ㄦ帴鍙e苟鍙傚叆鍙傛暟鍗冲彲銆�
+
+
+```java
+    .......
+    private MCUConfigurationBean mMCUConfigurationBean;//閰嶇疆鍙傛暟
+    .......
+
+    .......
+    mMCUConfigurationBean.setMcuDataBit(0);//淇敼鏁版嵁浣嶅弬鏁�
+    .......
+
+    //MCU鍐欓厤缃姹�
+    HDLCommand.mcuWriteConfiguration(mMCUConfigurationBean.getMCUConfigurationSendBytes());
+```
+
+鍐欓厤缃俊鎭洖璋�
+
+褰撶洃鍚埌command涓篗CUConstants.MCU_READ_CONFIGURATION_BACK鏃讹紝涓鸿鍙栭厤缃俊鎭殑鍥炶皟锛屾垚鍔熻幏鍙朚CU閰嶇疆鏁版嵁澶勭悊骞舵樉绀猴紱
+
+MCU鐨勯厤缃弬鏁帮細鍗忚绫诲瀷銆佹尝鐗圭巼銆佹暟鎹綅銆佹牎楠屼綅鍜屽仠姝綅 锛岄兘鍙互浠庤繑鍥瀍vent涓幏鍙栥��
+
+鑾峰彇鏂规硶锛歟vent.getMCUDataBean().getMCUConfigurationBean()
+
+**浠g爜鑼冧緥**
+
+```java
+    .......
+    case MCUConstants.MCU_WRITE_CONFIGURATION_BACK:// 鍐欓厤缃俊鎭繑鍥�
+        handleMCUConfigurationBack(event);//澶勭悊MCU璇诲啓閰嶇疆杩斿洖鏁版嵁
+    .......
+
+    /**
+     * 澶勭悊MCU璇诲啓閰嶇疆杩斿洖鏁版嵁
+     *
+     * @param event
+     */
+    private void handleMCUConfigurationBack(MCUFeedBackEvent event) {
+        if (event.getEventCode() != EventCode.SUCCESS) {
+            tv_config_mesSetText("MCU璇诲啓閰嶇疆鍑洪敊锛岃繑鍥炴暟鎹紓甯�");
+            return;
+        }
+        tv_config_mesSetText("鎴愬姛鑾峰彇閰嶇疆");
+        bGetMCUConfiguration = true;
+        updateMCUConfiguration(event.getMCUDataBean().getMCUConfigurationBean());//鑾峰彇閰嶇疆鍙傛暟骞舵樉绀�
+    }
+```
+
+
+### 涓夈�丮CU閲嶅惎
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.mcuSendRestart()
+
+璋冪敤璇ユ帴鍙o紝鍙互璁㎝CU閲嶅惎銆�
+
+**浠g爜鑼冧緥**
+
+鍙戦�丮CU閲嶅惎璇锋眰
+```java
+    //MCU閲嶅惎璇锋眰
+    HDLCommand.mcuSendRestart();
+```
+
+MCU閲嶅惎鍥炶皟
+
+褰撶洃鍚埌command涓篗CUConstants.MCU_RESTART_BACK鏃讹紝涓篗CU閲嶅惎鍥炶皟锛�
+
+**浠g爜鑼冧緥**
+
+```java
+    .......
+    case MCUConstants.MCU_RESTART_BACK:     //閲嶅惎杩斿洖
+                handleRestartBack(event);
+    .......
+
+    /**
+     * 澶勭悊MCU璇锋眰閲嶅惎杩斿洖鏁版嵁
+     *
+     * @param event
+     */
+    private void handleRestartBack(MCUFeedBackEvent event) {
+        if (event.getEventCode() != EventCode.SUCCESS) {
+            showToast("MCU璇锋眰閲嶅惎杩斿洖閿欒锛岄噸鍚け璐�");
+            return;
+        }
+        if (bUpdating) {
+            bUpdating = false;
+            tv_update_mes.setText("MCU閲嶅惎鎴愬姛,鍗囩骇瀹屾垚锛�");
+            tv_other_mesSetText("MCU閲嶅惎鎴愬姛,鍗囩骇瀹屾垚锛�");
+        } else {
+            tv_other_mesSetText("MCU閲嶅惎鎴愬姛锛�");
+        }
+    }
+```
+
+
+
+
+### 鍥涖�佸崌绾CU鍥轰欢
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.mcuRequestUpgradeWithFile(byte[] upgradeFileDatas)
+
+璋冪敤璇ユ帴鍙o紝鍙互鍗囩骇MCU鍥轰欢銆�
+
+**浠g爜鑼冧緥**
+
+寮�鍙戣�呴鍏堥渶閫夋嫨鏈湴bin鍗囩骇鏂囦欢锛屽苟杞崲鎴恇yte[]绫诲瀷鍗囩骇鏂囦欢鏁版嵁锛岀劧鍚庤皟鐢ㄥ崌绾ф帴鍙o紝骞朵紶鍏ュ崌绾ф枃浠跺弬鏁板嵆鍙紱
+
+```java
+    .......
+    private byte[] upgradeFileDatas;//鍗囩骇鏂囦欢鏁版嵁
+    .......
+
+    .......
+    //璇诲彇鍗囩骇鏂囦欢
+    fis = new FileInputStream(file);
+    int length = fis.available();
+    upgradeFileDatas = new byte[length];
+    fis.read(upgradeFileDatas);
+    fis.close();
+    .......
+
+    .......
+    //寮�濮嬪崌绾�
+    if (upgradeFileDatas == null) {
+        showToast("璇峰厛閫夋嫨鍗囩骇鏂囦欢");
+        return;
+    }
+    HDLCommand.mcuRequestUpgradeWithFile(upgradeFileDatas);//浼犲叆鍗囩骇鏂囦欢骞跺紑濮嬪崌绾�
+    .......
+```
+
+**鍗囩骇杩涘害鐩戝惉**
+
+棣栧厛activity缁ф壙IMcuOtaListener锛屽苟瀹炵幇瀵瑰簲鐨勬帴鍙f柟娉曪紱
+
+**浠g爜鑼冧緥**
+```java
+    .......
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        .......
+        HDLSerialPortCore.setIMcuOtaListener(this);//璁剧疆鐩戝惉
+    }
+    .......
+
+    .......
+    @Override
+    public void onSuccess() {
+        sendRestartTimer();//鍗囩骇10S瓒呮椂鎻愮ず
+        HDLLog.Log("IMcuOtaListener onSuccess");
+        runOnUiThread(new Runnable() {  //瑕佸湪涓荤嚎绋嬫洿鏂癠I
+            public void run() {
+                tv_update_mesSetText("鍗囩骇鎴愬姛锛岀瓑寰呴噸鍚�...");
+            }
+        });
+    }
+
+    @Override
+    public void onFailure(int code, final String error) {
+        HDLLog.Log("IMcuOtaListener onFailure");
+        runOnUiThread(new Runnable() {
+            public void run() {
+                tv_update_mesSetText("鍗囩骇澶辫触锛� " + error);
+            }
+        });
+
+    }
+
+    @Override
+    public void onProgress(final int progress) {
+        HDLLog.Log("IMcuOtaListener onProgress锛�" + progress);
+        runOnUiThread(new Runnable() {
+            public void run() {
+                tv_update_mes.setText("鍗囩骇杩涘害锛�" + progress + "%");
+            }
+        });
+
+    }
+    .......
+```
+
+鍗囩骇鎴愬姛鍚庯紝MCU浼氳嚜鍔ㄩ噸鍚�,鐩戝惉鍒伴噸鍚畬姣曪紝鎵嶄唬琛ㄥ畬鎴愬崌绾э紱
+
+
+**MCU鍗囩骇鐘舵�佸洖璋�**
+
+褰撶洃鍚埌command涓篗CUConstants.MCU_REQUEST_UPGRADE_BACK鏃讹紝涓篗CU鍗囩骇鐘舵�佸洖璋冿紱
+
+
+**浠g爜鑼冧緥**
+
+```java
+    .......
+    case MCUConstants.MCU_REQUEST_UPGRADE_BACK:   // 璇锋眰鍗囩骇杩斿洖
+                handleRequestUpgradeBack(event);
+    .......
+
+     /**
+     * 澶勭悊MCU璇锋眰鍗囩骇杩斿洖鏁版嵁
+     *
+     * @param event
+     */
+    private void handleRequestUpgradeBack(MCUFeedBackEvent event) {
+        if (event.getEventCode() != EventCode.SUCCESS) {
+            tv_update_mesSetText("MCU璇锋眰鍗囩骇鍑洪敊");
+            return;
+        }
+        bUpdating = true;
+        tv_update_mesSetText("MCU璇锋眰鍗囩骇鎴愬姛锛屽紑濮嬪崌绾�...");
+    }
+
+```
+
+
+### 浜斻�佸彂閫侀�忎紶鏁版嵁
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.mcuSendTransparentData(byte[] sendBytes)
+
+璋冪敤璇ユ帴鍙o紝鍙互鍙戦�侀�忎紶鏁版嵁锛屼笉璧癰us鍗忚锛岀洿鎺ヨ浆鍙戯紝涓嶅仛鏁版嵁鏍煎紡澶勭悊銆�
+
+璋冪敤璇ユ帴鍙d箣鍚庢敹鍒扮殑鏁版嵁锛岄粯璁よ蛋鏁版嵁閫忎紶涓嶅仛鏍煎紡澶勭悊锛屼笉闇�瑕佹椂鍙皟鎺ュ彛鍏抽棴銆�
+
+**浠g爜鑼冧緥**
+
+```java
+    .......
+    // 鍙戦�侀�忎紶鏁版嵁
+    byte[] sendBytes = new byte[]{(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00};
+    HDLCommand.mcuSendTransparentData(sendBytes);
+    .......
+```
+
+閫忎紶鏁版嵁鎺ユ敹
+
+褰撶洃鍚埌command涓篗CUConstants.MCU_COMMAND_SEND_BACK鏃讹紝涓鸿繑鍥炴帴鏀跺埌鐨勯�忎紶鏁版嵁锛�
+
+鎺ユ敹鐨勯�忎紶鏁版嵁鍙互鐩存帴浠巈vent鑾峰彇锛宔vent.getMCUDataBean().receiveBytes銆�
+
+**浠g爜鑼冧緥**
+
+```java
+    .......
+    case MCUConstants.MCU_COMMAND_SEND_BACK:    //
+        //閫忎紶杩斿洖鐨勬暟鎹�
+        handleMCUPassThroughDataBack(event);
+    .......
+
+    /**
+     * 澶勭悊MCU閫忎紶鍥炶皟鏁版嵁
+     * 閫忎紶鏁版嵁锛屼笉璧癰us鍗忚锛岀洿鎺ヨ浆鍙戯紝涓嶅仛鏁版嵁鏍煎紡澶勭悊
+     *
+     * @param event
+     */
+    private void handleMCUPassThroughDataBack(MCUFeedBackEvent event) {
+        if (event.getEventCode() != EventCode.SUCCESS) {
+            tv_other_mesSetText("MCU閫忎紶鏁版嵁鍑洪敊锛岃繑鍥炴暟鎹紓甯�");
+            return;
+        }
+        String receiveString = HDLStringUtils.ByteArrToHex(event.getMCUDataBean().receiveBytes, 0, event.getMCUDataBean().receiveBytes.length);
+
+        tv_other_mes.setText("鏀跺埌鐨勯�忎紶鏁版嵁锛�" + receiveString);
+        HDLLog.Log("鏀跺埌鐨勯�忎紶鏁版嵁锛�" + receiveString);
+    }
+```
+
+### 鍏�佸紑鍚拰鍏抽棴閫忎紶鏁版嵁
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.setHDLPassThroughOpen(boolean bOpen)
+
+璋冪敤璇ユ帴鍙o紝鍙互寮�鍚拰鍏抽棴閫忎紶鏁版嵁锛屽叧闂暟鎹�忎紶榛樿璧癰us鍗忚锛涘叾浠栧崗璁笅锛屽紑鍙戣�呭彲浠ユ墦寮�鏁版嵁閫忎紶锛岃嚜宸辫嚜瀹氫箟鏀跺彂鏁版嵁銆�
+
+娉細SDK姣忔閲嶆柊鍒濆鍖栧惎鍔ㄥ悗锛岄粯璁ら兘鏄叧闂紝濡傛灉瑕佹暟鎹�忎紶锛岄渶瑕佸垵濮嬪寲瀹屾瘯鍚庤皟鐢ㄦ敼鎺ュ彛鎵撳紑銆�
+
+**浠g爜鑼冧緥**
+
+```java
+    .......
+    //鍏抽棴閫忎紶鏁版嵁
+     HDLCommand.setHDLPassThroughOpen(false);
+    .......
+```
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_mcu_about.md b/Android_HDL_SDK_TTL_DOC/src/api_mcu_about.md
new file mode 100755
index 0000000..551c6ae
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_mcu_about.md
@@ -0,0 +1,57 @@
+# MCU閫氫俊
+  <!-- * [璇婚厤缃俊鎭痌(./src/Integrated.md)
+  * [鍐欓厤缃俊鎭痌(./src/Integrated.md)
+  * [鐢宠鍗囩骇](./src/Integrated.md)
+  * [閲嶅惎MCU](./src/Integrated.md)
+  * [妫�娴嬩涪鍖呯姸鎬乚(./src/Integrated.md) -->
+
+### MCU鎺у埗缁熶竴鍥炶皟
+
+MCU鐨勬墍鏈夎姹傚洖璋冿紝瓒呮椂銆佸嚭閿欐垨鎴愬姛閮戒細缁熶竴鏀跺埌MCUFeedBackEvent璁㈤槄浜嬩欢锛岀敤鎴烽�氳繃鑾峰彇杩斿洖鎿嶄綔鐮侊紙event.getMCUDataBean().command锛夋潵鍒ゆ柇鏄摢绉嶅洖璋冧俊鎭紝浠庤�屽疄鐜板鐞嗕笉鍚屽洖璋冪殑鏁版嵁銆�
+
+
+**浠g爜鑼冧緥**
+
+```java
+    /**
+     * MCU鎺у埗鍥炶皟Event
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onMCUFeedBackEventMain(MCUFeedBackEvent event) {
+        if (event.getEventCode() == EventCode.FAILURE_TIMEOUT) {
+            if (TextUtils.isEmpty(event.getError())) {
+                showToast("MCU璇锋眰瓒呮椂锛岃绋嶅悗鍐嶈瘯");
+            } else {
+                showToast(event.getError());
+            }
+            return;
+        }
+
+        switch (event.getMCUDataBean().command) {
+            case MCUConstants.MCU_COMMAND_SEND_BACK:    //
+                //閫忎紶杩斿洖鐨勬暟鎹�
+                handleMCUPassThroughDataBack(event);
+                break;
+            case MCUConstants.MCU_READ_CONFIGURATION_BACK:// 璇婚厤缃繑鍥�
+            case MCUConstants.MCU_WRITE_CONFIGURATION_BACK:// 鍐欓厤缃俊鎭繑鍥�
+                handleMCUConfigurationBack(event);
+                break;
+            // case MCUConstants.MCU_DETECT_PACKET_LOSS_STATUS_BACK:// 妫�娴嬩涪鍖呯姸鎬佽繑鍥�
+            //     //寰呭鐞�
+            //     handleDetectPacketLossStatusBack(event);
+                break;
+            case MCUConstants.MCU_REQUEST_UPGRADE_BACK:   // 璇锋眰鍗囩骇杩斿洖
+                handleRequestUpgradeBack(event);
+                break;
+            case MCUConstants.MCU_RESTART_BACK:     //0x86 閲嶅惎杩斿洖
+                handleRestartBack(event);
+                break;
+            default:
+                break;
+        }
+    }
+
+```
+
diff --git a/Android_HDL_SDK_TTL_DOC/src/api_search.md b/Android_HDL_SDK_TTL_DOC/src/api_search.md
new file mode 100755
index 0000000..779de5e
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/api_search.md
@@ -0,0 +1,157 @@
+# 鎼滅储璁惧
+
+### 涓�銆佹悳绱㈣澶�
+
+**鎺ュ彛鎻忚堪**
+
+HDLCommand.getHomeDevices()
+
+璋冪敤璇ユ帴鍙o紝浼氭竻绌哄師鏈湴璁惧鍒楄〃鏁版嵁锛岄噸鏂版悳绱㈣澶囷紙鍙互鎼滅储鍑烘敮鎸佺畝鏄撶紪绋嬫悳绱㈢殑璁惧锛夈��
+
+**浠g爜鑼冧緥**
+
+鍙戦�佹悳绱㈣澶囪姹�
+```java
+    /**鍏ㄩ儴閲嶆柊鎼滅储,娓呯┖鍘熻澶囧垪琛ㄦ暟鎹�*/
+    HDLCommand.getHomeDevices();
+```
+
+鎼滅储璁惧鍥炶皟浜嬩欢
+
+鎼滅储瓒呮椂鎴栨悳绱㈡垚鍔燂紝閮戒細鏀跺埌DevicesInfoEvent璁㈤槄浜嬩欢銆�
+
+鎼滅储鎴愬姛鍚庯紝浼氳繑鍥炴悳鍒板埌鐨勬墍鏈夋ā鍧楄澶囨暟鎹紝閫氳繃event.getDesDataList()鍙栧嚭锛屽悗闈㈢殑鎵�鏈夌殑鎺у埗璁惧鎿嶄綔閮介渶瑕佺敤鍒拌繖涓狶ist閲岄潰鐨凙ppliancesInfo璁惧鍙傛暟锛孲DK鍋氫簡鏈湴淇濆瓨鎿嶄綔锛屽悓鏍峰紑鍙戣�呭彲浠ユ牴鎹渶瑕佽嚜宸卞彟澶栦繚瀛樸��
+
+```java
+    /**
+     * ====================EventBus 璁㈤槄浜嬩欢 ====================
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onDevicesInfoEventMain(DevicesInfoEvent event) {
+        mAllDevicesList.clear();
+        mProgressDialog.dismiss();
+        if (!event.isSuccess()) {
+            Toast.makeText(MainActivity.this, "鎼滅储瓒呮椂锛岃閲嶆柊鍐嶈瘯", Toast.LENGTH_SHORT).show();
+            tvResult.setText("鎼滅储瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+            return;
+        }
+        mDevicesDataList = event.getDesDataList();
+        updateDeviceListView();
+    }
+
+```
+
+### 浜屻�佹墜鍔ㄦ坊鍔犲畨闃叉ā鍧楄澶�
+
+**鎺ュ彛鎻忚堪**
+
+HDLDeviceManager.addSecurityDevicesManually(int mSubnetID, int mDeviceID, int mChannelNum, String mRemarks)
+
+璋冪敤璇ユ帴鍙o紝鍙互鎵嬪姩娣诲姞瀹夐槻妯″潡锛堜笉鏀寔绠�鏄撶紪绋嬫悳绱㈢殑璁惧锛屽彧鑳芥墜鍔ㄦ坊鍔狅級銆�
+
+闇�瑕佷紶鍏ヨ瀹夐槻妯″潡褰撳墠鐨勫瓙缃戝彿锛岃澶囧彿锛屽洖璺彿锛屼互鍙婂畠鐨勫娉ㄥ悕銆�
+
+**浠g爜鑼冧緥**
+
+
+```java
+    .......
+    //isSuccess 杩斿洖true鍒欎唬琛ㄦ坊鍔犳垚鍔�
+    isSuccess = HDLDeviceManager.addSecurityDevicesManually(subnetID, deviceID, channelNum, "瀹夐槻妯″潡1");
+    .......
+
+```
+
+娣诲姞鎴愬姛鍚庡悓鏍蜂細鏀跺埌DevicesInfoEvent璁㈤槄浜嬩欢锛屾洿鏂拌繑鍥炲綋鍓嶆墍鏈夌殑璁惧鍒楄〃鏁版嵁
+
+**浠g爜鑼冧緥**
+
+```java
+    /**
+     * ====================EventBus 璁㈤槄浜嬩欢 ====================
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onDevicesInfoEventMain(DevicesInfoEvent event) {
+        mAllDevicesList.clear();
+        mProgressDialog.dismiss();
+        if (!event.isSuccess()) {
+            Toast.makeText(MainActivity.this, "鎼滅储瓒呮椂锛岃閲嶆柊鍐嶈瘯", Toast.LENGTH_SHORT).show();
+            tvResult.setText("鎼滅储瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+            return;
+        }
+        mDevicesDataList = event.getDesDataList();
+        updateDeviceListView();
+    }
+
+```
+
+
+### 涓夈�佹墜鍔ㄦ坊鍔犻煶涔愭ā鍧楄澶�
+
+**鎺ュ彛鎻忚堪**
+
+HDLDeviceManager.addAudioDevicesManually(int mSubnetID, int mDeviceID, int mChannelNum, String mRemarks)
+
+璋冪敤璇ユ帴鍙o紝鍙互鎵嬪姩娣诲姞瀹夐槻妯″潡锛堜笉鏀寔绠�鏄撶紪绋嬫悳绱㈢殑璁惧锛屽彧鑳芥墜鍔ㄦ坊鍔狅級銆�
+
+闇�瑕佷紶鍏ヨ瀹夐槻妯″潡褰撳墠鐨勫瓙缃戝彿锛岃澶囧彿锛屽洖璺彿锛屼互鍙婂畠鐨勫娉ㄥ悕銆�
+
+**浠g爜鑼冧緥**
+
+
+```java
+    .......
+    //isSuccess 杩斿洖true鍒欎唬琛ㄦ坊鍔犳垚鍔�
+    isSuccess = HDLDeviceManager.addAudioDevicesManually(subnetID, deviceID, channelNum, "闊充箰妯″潡1");
+    .......
+
+```
+
+娣诲姞鎴愬姛鍚庡悓鏍蜂細鏀跺埌DevicesInfoEvent璁㈤槄浜嬩欢锛屾洿鏂拌繑鍥炲綋鍓嶆墍鏈夌殑璁惧鍒楄〃鏁版嵁
+
+**浠g爜鑼冧緥**
+
+```java
+    /**
+     * ====================EventBus 璁㈤槄浜嬩欢 ====================
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onDevicesInfoEventMain(DevicesInfoEvent event) {
+        mAllDevicesList.clear();
+        mProgressDialog.dismiss();
+        if (!event.isSuccess()) {
+            Toast.makeText(MainActivity.this, "鎼滅储瓒呮椂锛岃閲嶆柊鍐嶈瘯", Toast.LENGTH_SHORT).show();
+            tvResult.setText("鎼滅储瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+            return;
+        }
+        mDevicesDataList = event.getDesDataList();
+        updateDeviceListView();
+    }
+
+```
+
+### 鍥涖�佸姞杞芥湰鍦拌澶�
+
+**鎺ュ彛鎻忚堪**
+
+HDLDeviceManager.getLocalDevicesDataList()
+
+璋冪敤璇ユ帴鍙o紝浼氳鍙栧姞杞絊DK鏈湴淇濆瓨鐨勮澶囧垪琛ㄦ暟鎹��
+
+**浠g爜鑼冧緥**
+
+
+```java
+    /**
+     * 璇诲彇鍜屽姞杞芥湰鍦版暟鎹�
+     */
+    private void getLocalDevicesDataList() {
+        mDevicesDataList = HDLDeviceManager.getLocalDevicesDataList();//鍔犺浇鏈湴鏁版嵁
+        if (mDevicesDataList.size() > 0) {
+            updateDeviceListView();
+        } else {
+            showToast("鏈湴鏁版嵁涓虹┖");
+        }
+    }
+
+```
\ No newline at end of file
diff --git a/Android_HDL_SDK_TTL_DOC/src/update_log.md b/Android_HDL_SDK_TTL_DOC/src/update_log.md
new file mode 100755
index 0000000..3f7b764
--- /dev/null
+++ b/Android_HDL_SDK_TTL_DOC/src/update_log.md
@@ -0,0 +1,20 @@
+### 1.0.7+  2020-4-1
+* 1.澧炲姞灏忕被鏄�3鐨勯煶涔愭挱鏀惧櫒鏀寔銆� 
+* 2.澧炲姞RCU娣峰悎璋冨厜娣峰悎寮�鍏� 绫绘ā鍧楋紝浣跨敤鐗╃悊鍥炶矾闂銆�
+* 3.澧炲姞閫氱敤寮�鍏崇被鍨嬭澶囨敮鎸併��
+* 4.澧炲姞鍦烘櫙鐘舵�佸洖澶嶏紝閫氱煡浜嬩欢鎺ュ彛銆�
+* 5.澧炲姞铏氭嫙娣诲姞鐢熸垚璁惧鍔熻兘鎺ュ彛锛堝簲鐢ㄤ簬涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱㈢殑椤圭洰锛�
+
+
+
+### 1.0.1+ 2019
+* 鎼滅储璁惧
+* 鎺у埗璁惧
+* 鐩墠鏀寔璁惧
+    * 鐏厜绫绘ā鍧�
+    *  绐楀笜绫绘ā鍧�
+    * 绌鸿皟绫绘ā鍧�
+    *  閫昏緫鍔熻兘绫绘ā鍧�
+    *  鑳屾櫙闊充箰鍔熻兘绫绘ā鍧�(涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱紝闇�瑕佹墜鍔ㄦ坊鍔�)
+    * 瀹夐槻鍔熻兘绫绘ā鍧�(涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱紝闇�瑕佹墜鍔ㄦ坊鍔�)
+* MCU閫氫俊

--
Gitblit v1.8.0