From 902f19750cbf3e0e3dba7139947421ecb461f93f Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 16 三月 2021 17:50:41 +0800
Subject: [PATCH] 2021-3-16-5

---
 HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs                                 |  227 +
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png                    |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png                 |    0 
 HDL-ON_Android/Assets/Language.ini                                                          |  183 +
 HDL_ON/UI/UI0-Public/TopViewDivBLL.cs                                                       |   35 
 HDL_ON/Common/ApiUtlis.cs                                                                   |   15 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalracks.png                           |    0 
 HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToClound.png                     |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs                                |  164 +
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png  |    0 
 HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png           |    0 
 HDL_ON/HDL_ON.projitems                                                                     |   17 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png               |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/projector.png                                           |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/adddevice.png                                            |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortemperature.png                          |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irac.png                                      |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png                       |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/airFreshstandard.png                          |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/search.png                                               |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs                                     |   27 
 HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs                             |    2 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png                     |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png              |    0 
 HDL_ON/UI/UI0-Public/TopViewDiv.cs                                                          |   28 
 HDL_ON/UI/UI0-Stan/Logic/HdlWifiLogic.cs                                                    |   99 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png             |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png                |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainswitch.png                             |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/next.png                                                |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irmodule.png                                   |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png                |    0 
 DLL/IOS/HdlBluWi.dll                                                                        |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/airFreshstandard.png                           |    0 
 HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png        |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainshades.png                              |    0 
 HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs                                              |   13 
 HDL_ON/UI/UI2/.DS_Store                                                                     |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/addlbuton.png                                           |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png               |    0 
 HDL_ON/UI/UI0-Stan/Controls/CompoundControls/ProgressRowBar.cs                              |  251 +
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png               |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorsmoke.png                               |    0 
 HDL-ON_iOS/.DS_Store                                                                        |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png                        |    0 
 HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs                                                |    1 
 HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs                                 |  144 
 HDL-ON_iOS/Resources/Language.ini                                                           |  184 +
 HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothIOSLogic.cs                                            |  489 +++
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png                 |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png  |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png                |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorgas.png                                 |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png                |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/musicstandard.png                              |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irac.png                                       |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png                |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs              |   78 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png                    |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png                 |    0 
 HDL_ON/Common/FileUtlis.cs                                                                  |    7 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irlearn.png                                   |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png                   |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png                |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png                 |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorwater.png                                |    0 
 HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccess.png                      |    0 
 HDL_ON/.DS_Store                                                                            |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png                |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightswitch.png                               |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png                 |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalsocket.png                           |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png            |    0 
 HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png                |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png              |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png               |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irmodule.png                                  |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgb.png                                  |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs              |  533 +++
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorhumidity.png                            |    0 
 HDL-ON_iOS/Info.plist                                                                       |    6 
 HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs                            |   84 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png                     |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png           |    0 
 HDL_ON/Common/HDLCommon.cs                                                                  |    6 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png  |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png                         |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png               |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png              |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png                    |    0 
 HDL_ON/UI/UI1-Login/LoginPage.cs                                                            |    2 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightcct.png                                  |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/icon1.png                                               |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png                    |    0 
 HDL_ON/UI/.DS_Store                                                                         |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpm25.png                                |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/AC/More.png                                         |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/projector.png                                            |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorgas.png                                  |    0 
 HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png               |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/addlbuton.png                                            |    0 
 HDL_ON/Entity/Function/Function.cs                                                          |   69 
 HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs                                       |  139 
 HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs              |  308 ++
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irtv.png                                       |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightdimming.png                              |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png                    |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/del.png                                                 |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpm25.png                                 |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png                      |    0 
 HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs                                        |  142 
 HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs                                    |    2 
 HDL-ON_Android/Assets/Phone/Public/ProgressMsg.png                                          |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png             |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png           |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png                         |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png                   |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png           |    0 
 HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs                                                   |    5 
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs                                                        |  108 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightswitch.png                                |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightdimming.png                               |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png              |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png            |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png              |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png             |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/tv.png                                                  |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortvoc.png                                 |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png            |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/fan.png                                                 |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png                   |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png                |    0 
 HDL_ON/UI/MainPage.cs                                                                       |   10 
 HDL-ON_Android/Assets/Phone/PirIcon/STB.png                                                 |    0 
 HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs                                            |  111 
 HDL_ON/UI/UI0-Stan/Logic/HdlCloudReceiveLogic.cs                                            |  164 +
 DLL/Android/AndriodBluetoothLibrary.dll                                                     |    0 
 HDL_ON/Entity/FunctionList.cs                                                               |   37 
 HDL-ON_iOS/Resources/Phone/PirIcon/dvd.png                                                  |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainroller.png                             |    0 
 HDL_ON/DAL/Server/NewAPI.cs                                                                 |    4 
 HDL-ON_iOS/Resources/Phone/Public/ProgressMsg.png                                           |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/adddevice.png                                           |    0 
 HDL_ON/Common/R.cs                                                                          |  115 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgb.png                                   |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltv.png                              |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/air.png                                                 |    0 
 HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png                |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/delbuton.png                                             |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png                        |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png              |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png            |    0 
 HDL-ON_iOS/HDL-ON_iOS.csproj                                                                |  114 
 HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs                             |    3 
 HDL-ON_Android/Assets/Phone/PirIcon/search.png                                              |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs                    |   22 
 HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs                                                     |    2 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgbw.png                                 |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png  |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png          |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalfan.png                              |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/failed.png                                              |    0 
 HDL-ON_Android/Resources/Resource.designer.cs                                               | 3086 ++++++++++----------
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png                |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensordoorwindow.png                          |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorhumidity.png                             |    0 
 DLL/IOS/libBlufi.a                                                                          |    0 
 HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/NetConnectSelect.png                    |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltv.png                               |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png                  |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png                  |    0 
 HDL_ON/DAL/DriverLayer/Control_Udp.cs                                                       |    2 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png               |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/icon2.png                                               |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainswitch.png                              |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png                     |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/offline.png                                             |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs                                        |    2 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png                  |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png            |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/dropdown.png                                            |    0 
 HDL-ON_iOS/BlueWifi.cs                                                                      |   17 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png                 |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/acstandard.png                                 |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortvoc.png                                |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/online.png                                               |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png |    0 
 HDL_ON/UI/UI2/UserPage.cs                                                                   |   38 
 HDL-ON_iOS/Resources/Phone/PirIcon/custom.png                                               |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png               |    0 
 HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs                       |    2 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalsocket.png                          |    0 
 HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs                                        |  590 +++
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgbw.png                                  |    0 
 HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccess.png                     |    0 
 HDL_ON/UI/UI1-Login/RegisterPageBLL.cs                                                      |    3 
 HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToClound.png                      |    0 
 HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png               |    0 
 .vs/HDL_APP_Project/xs/UserPrefs.xml                                                        |   25 
 HDL_ON/DAL/DriverLayer/Control.cs                                                           |   38 
 HDL-ON_Android/.DS_Store                                                                    |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irtv.png                                      |    0 
 HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/NetConnectSelect.png                   |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png                |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/stb.png                                                  |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainshades.png                             |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightcct.png                                   |    0 
 HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png         |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png                        |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png                |    0 
 HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs                           |   29 
 HDL-ON_Android/Assets/Phone/FunctionIcon/AC/More.png                                        |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png              |    0 
 HDL_ON/DAL/Server/HttpServerRequest.cs                                                      |   35 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/.DS_Store                                |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/musicstandard.png                             |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png               |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png   |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png              |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorsmoke.png                                |    0 
 ys/Jars/app-release.aar                                                                     |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png             |    0 
 HDL-ON_Android/Properties/AndroidManifest.xml                                               |    2 
 HDL-ON_Android/Assets/Phone/.DS_Store                                                       |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/floorHeatstandard.png                          |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png   |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorco2.png                                  |    0 
 HDL_ON/DAL/Mqtt/MqttClient.cs                                                               |  131 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png |    0 
 HDL-ON_Android/HDL-ON_Android.csproj                                                        |  101 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png  |    0 
 HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWaterValvePage.cs                           |   26 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png               |    0 
 HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png          |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irlearn.png                                    |    0 
 HDL_ON/Entity/Integratedbrand/IntegratedBrand.cs                                            |   81 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png                    |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/priequipment.png                                         |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/del.png                                                  |    0 
 HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs                                        |    5 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png               |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png   |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png           |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/next.png                                                 |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png                  |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/succeed.png                                             |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png  |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorwater.png                               |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/dropdown.png                                             |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/delbuton.png                                            |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/floorHeatstandard.png                         |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png             |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs                                         |    2 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorco2.png                                 |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png               |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png                |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png                 |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpir.png                                  |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/custom.png                                              |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalracks.png                            |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/tv.png                                                   |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png            |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/online.png                                              |    0 
 HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs                            |   17 
 HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png                |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtaintrietex.png                            |    0 
 HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png                 |    0 
 HDL_ON/DAL/DriverLayer/A_Protocol_Common.cs                                                 |   11 
 HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddThirdPartyDeviceMenuListPage.cs                 |   92 
 HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/ThirdPartyBrandListPage.cs                       |  166 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png               |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png                       |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png                     |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtaintrietex.png                             |    0 
 HDL_ON/Common/Utlis.cs                                                                      |    3 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalfan.png                             |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png               |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/Infraredtreasure.png                                     |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/Infraredtreasure.png                                    |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/offline.png                                              |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png                   |    0 
 HDL-ON_Android/Assets/Phone/PirIcon/dvd.png                                                 |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png                |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png                |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png                 |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png  |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/air.png                                                  |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png   |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/ResetAccountPassword/ResetPasswordPage.cs                    |    2 
 HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection3Page.cs              |  215 +
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png  |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png                   |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/acstandard.png                                |    0 
 HDL-ON_iOS/Resources/Phone/PirIcon/fan.png                                                  |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpir.png                                 |    0 
 HDL_ON/UI/UI2/FuntionControlView/Electrical/IrLearnPage.cs                                  |  146 
 HDL-ON_Android/Assets/Phone/PirIcon/priequipment.png                                        |    0 
 HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs                               |    7 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png                        |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensordoorwindow.png                           |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortemperature.png                         |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainroller.png                              |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png                 |    0 
 305 files changed, 6,813 insertions(+), 2,011 deletions(-)

diff --git a/.vs/HDL_APP_Project/xs/UserPrefs.xml b/.vs/HDL_APP_Project/xs/UserPrefs.xml
index 9f40d79..4e66cf7 100644
--- a/.vs/HDL_APP_Project/xs/UserPrefs.xml
+++ b/.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,19 +1,5 @@
 锘�<Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default">
-  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008020-001674E61438002E" />
-  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs">
-    <Files>
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControl.cs" Line="108" Column="1" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs" Line="398" Column="46" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs" Line="141" Column="75" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs" Line="183" Column="76" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs" Line="262" Column="14" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs" Line="233" Column="78" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/EditControl.cs" Line="14" Column="54" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/BrandList.cs" Line="264" Column="56" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddButton.cs" Line="15" Column="13" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/DeviceSet.cs" Line="48" Column="1" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs" Line="102" Column="36" />
-    </Files>
+  <MonoDevelop.Ide.Workbench>
     <Pads>
       <Pad Id="ProjectPad">
         <State name="__root__">
@@ -22,16 +8,13 @@
               <Node name="UI" expanded="True">
                 <Node name="UI2" expanded="True">
                   <Node name="4-PersonalCenter" expanded="True">
+                    <Node name="AddFunction" expanded="True" />
                     <Node name="PirDevice" expanded="True">
-                      <Node name="PirMain.cs" selected="True" />
+                      <Node name="View" expanded="True" />
+                      <Node name="Method.cs" selected="True" />
                     </Node>
                   </Node>
                 </Node>
-              </Node>
-            </Node>
-            <Node name="HDL-ON_Android" expanded="True">
-              <Node name="Assets" expanded="True">
-                <Node name="Phone" expanded="True" />
               </Node>
             </Node>
           </Node>
diff --git a/DLL/Android/AndriodBluetoothLibrary.dll b/DLL/Android/AndriodBluetoothLibrary.dll
new file mode 100644
index 0000000..606ade0
--- /dev/null
+++ b/DLL/Android/AndriodBluetoothLibrary.dll
Binary files differ
diff --git a/DLL/IOS/HdlBluWi.dll b/DLL/IOS/HdlBluWi.dll
index 0380e71..8a88050 100644
--- a/DLL/IOS/HdlBluWi.dll
+++ b/DLL/IOS/HdlBluWi.dll
Binary files differ
diff --git a/DLL/IOS/libBlufi.a b/DLL/IOS/libBlufi.a
index bcbd9d0..eeaebd4 100644
--- a/DLL/IOS/libBlufi.a
+++ b/DLL/IOS/libBlufi.a
Binary files differ
diff --git a/HDL-ON_Android/.DS_Store b/HDL-ON_Android/.DS_Store
index ec75957..c3301bf 100644
--- a/HDL-ON_Android/.DS_Store
+++ b/HDL-ON_Android/.DS_Store
Binary files differ
diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index 5d5d311..a042891 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -411,10 +411,92 @@
 426=Air dry time
 427=Disinfect time
 428=Anion Time
+429=H
+430=Min
+431=You are currently adding any platform devices to
+432=Other platform equipment is supported by third party service provider
+433=Water valve
+434=Time switch
+435=Remote control
 
+1000=Indoor Humidity
+1001=V-chip
+1002=Anion
+1003=Sterilization
+1004=Humidification
+1005=Filter Element Reset
+1006=Lighting
+1007=Automatic
+1008=Manual
+1009=Strong
+1010=Sleep
+1011=Timing
+1012=Wind Speed
+1013=Gear
+1014=Please confirm whether the filter element has been reset and operate the equipment according to the instruction manual for the filter element life to be timed again
+1015=Low Gear
+1016=Mid Gear
+1017=High Gear
+1018=Timing Setting
+1019=Hour
+1020=Filter Element Time锛�
+1021=Air Cleaner
+1022=Current wind speed
+1023=Cancel Timing
+1024=Floor Sweeping Robot
+1025=Suction
+1026=1st Gear
+1027=2nd Gear
+1028=3rd Gear
+1029=Charge
+1030=Voice
+1031=Mute
+1032=Cleaning Mode
+1033=Consumables Management
+1034=History
+1035=Automatic
+1036=Random
+1037=Wall
+1038=Spiral
+1039=Total Clean Area
+1040=Total Clean Time
+1041=Remaining life of side brush
+1042=Residual life of roller brush
+1043=Remaining life of filter screen
+1044=Reset edge brush
+1045=Reset roll brush
+1046=Reset screen
+1047=Confirm to Reset edge brush?
+1048=Confirm to Reset roll brush?
+1049=Confirm to Reset screen?
+1050=Add Device
+1051=Mini Intelligent Remote Control
+1052=Add Infrared Remote Control
+1053=Press the infrared remote control button{0}for 10 seconds and the indicator light{0}flashes blue quickly
+1054=Please make sure your Bluetooth{0}is on and searchable
+1055=Next Step
+1056=Device searching...
+1057=No infrared remote control found
+1058=1.Please check whether the device is{0}   powered on normally{0}2.Please check whether the Bluetooth{0}   function is turned on normally{0}3.Please check whether the indicator{0}    light is flashing blue
+1059=Search Again
+1060=Connect WiFi
+1061=At present,it only supports 2.4G WiFi network{0}and does not support WiFi names{0}with Chinese characters
+1062=Password
+1063=Connecting...
+1064=Please make infrared remote control{0}as close as possible to WiFi router
+1065=Network Link
+1066=Upload to cloud
+1067=Connect success
+1068=1.Please check whether the device is{0}   powered on normally{0}2.Please turn on the Bluetooth function{0}3.Press the button for 10s and the indicator{0}   light will be on
+1069=Add Fail
+1070=Add Success
+1071=You can start using the infrared{0}remote control!
+1072=Start using
+1073=Please turn on Bluetooth
+1074=Location information(GBS) unavailable
+1075=Network unavailable
+1076=Select infrared remote control	
 
-1002=Anion 
-	
 5000=Music
 5001=Group
 5002=Setting
@@ -1089,6 +1171,13 @@
 426=椋庡共鏃堕棿
 427=娑堟瘨鏃堕棿
 428=璐熺瀛愭椂闂�
+429=灏忔椂
+430=鍒嗛挓
+431=浣犲綋鍓嶈繕涓烘坊鍔犱换浣曞钩鍙拌澶�
+432=鍏朵粬骞冲彴璁惧鍧囩敱绗笁鏂规湇鍔″晢鎻愪緵鏀寔
+433=姘撮榾
+434=瀹氭椂寮�鍏�
+435=閬ユ帶鍣�
 
 
 1000=瀹ゅ唴婀垮害
@@ -1138,9 +1227,36 @@
 1044=閲嶇疆杈瑰埛
 1045=閲嶇疆婊氬埛
 1046=閲嶇疆婊ょ綉
-1047=鏄惁閲嶇疆杈瑰埛
-1048=鏄惁閲嶇疆婊氬埛
-1049=鏄惁閲嶇疆婊ょ綉
+1047=鏄惁閲嶇疆杈瑰埛?
+1048=鏄惁閲嶇疆婊氬埛?
+1049=鏄惁閲嶇疆婊ょ綉?
+1050=娣诲姞璁惧
+1051=mini鏅鸿兘閬ユ帶鍣�
+1052=娣诲姞绾㈠閬ユ帶
+1053=闀挎寜绾㈠閬ユ帶鍣ㄦ寜閽�10绉掞紝鎸囩ず鐏摑鑹插揩闂�
+1054=璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
+1055=涓嬩竴姝�
+1056=璁惧鎼滅储涓�...
+1057=娌℃湁鍙戠幇绾㈠閬ユ帶鍣�
+1058=1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽妫�鏌ヨ摑鐗欏姛鑳芥槸鍚︽甯稿紑鍚瘂0}3銆佽妫�鏌ユ寚绀虹伅鏄惁钃濊壊蹇棯鐘舵��
+1059=閲嶆柊鎼滅储
+1060=杩炴帴WiFi
+1061=鐩墠鍙敮鎸�2.4G WiFi缃戠粶{0}鏆備笉鏀寔甯︽湁涓枃瀛楃鐨刉iFi鍚嶇О
+1062=瀵嗙爜
+1063=姝e湪杩炴帴涓�...
+1064=璇疯绾㈠閬ユ帶灏介噺鎺ヨ繎WIFI璺敱鍣�
+1065=缃戠粶閾炬帴涓�
+1066=涓婁紶鍒颁簯
+1067=杩炴帴鎴愬姛
+1068=1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽寮�鍚摑鐗欏姛鑳絳0}3銆佸苟闀挎寜鎸夐挳10s锛屾寚绀虹伅甯镐寒
+1069=娣诲姞澶辫触
+1070=娣诲姞鎴愬姛
+1071=鍙互寮�濮嬩娇鐢ㄧ孩澶栭仴鎺у姛鑳斤紒
+1072=寮�濮嬩娇鐢�
+1073=璇锋墦寮�钃濈墮
+1074=浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
+1075=缃戠粶涓嶅彲鐢�
+1076=閫夋嫨绾㈠閬ユ帶鍣�
 
 5000=闊充箰
 5001=缁勫悎
@@ -1269,6 +1385,63 @@
 6076=缂栬緫淇℃伅
 
 
+6015=鍦ㄧ嚎
+6016=绂荤嚎
+6017=鐗堟湰鍙�
+6018=璇疯緭鍏ラ仴鎺у櫒鍚嶇О
+6019=鎻愮ず锛氶仴鎺у櫒鍒涘缓鍚庡彲鍦ㄥ姛鑳�-鐢靛櫒鍒嗙被{\r\n}鏌ユ壘浣跨敤
+6020=鎺ㄨ崘鎸夐敭
+6021=璇疯緭鍏ユ寜閿悕绉�
+6022=涓嬩竴姝�
+6023=鐢垫簮
+6024=闊抽噺+
+6025=闊抽噺-
+6026=棰戦亾+
+6027=棰戦亾-
+6028=涓�
+6029=涓�
+6030=宸�
+6031=鍙�
+6032=闈欓煶
+6034=纭
+6035=鎾斁
+6037=閫�鍑�
+6038=鑿滃崟
+6039=鏆傚仠
+6040=杩斿洖
+6041=鍋滄
+6042=涓婚〉
+6043=蹇繘
+6044=蹇��
+6045=瀹氭椂
+6046=澶嶅埗閬ユ帶鍔熻兘
+6047=瀵瑰噯閬ユ帶鍣ㄤ腑蹇冩寜涓嬬浉鍚屾寜閿�
+6048=鏅鸿兘閬ユ帶鍣�
+6049=娣诲姞鎸夐敭
+6050=*闀挎寜鍙繘琛岃嚜瀹氫箟鎺掑簭
+6051=瀹屾垚
+6052=娣诲姞鎴愬姛
+6053=鍙埌鍒嗙被-鍔熻兘-鐢靛櫒鎿嶄綔浣跨敤
+6054=鎵�灞炲垎绫�
+6055=閬ユ帶鍣ㄥ悕绉�
+6056=鎵�灞炲尯鍩�
+6057=缁х画娣诲姞
+6058=鐢靛櫒
+6059=娣诲姞澶辫触
+6060=閲嶈瘯
+6061=鍖归厤閬ユ帶鍣�
+6062=璇风偣鍑讳互涓嬫寜閽�
+6063=纭璁惧鏄惁鏈夊搷搴�
+6064=鎺у埗澶辫触
+6065=鎺у埗鎴愬姛
+6066=鐢垫簮寮�
+6067=妯″紡鍒跺喎
+6068=椋庨�熶腑椋�
+6069=娓╁害26鈩�
+6070=鍒犻櫎璁惧
+6071=淇敼鍚嶅瓧
+6072=纭鍒犻櫎
+6073=鍙栨秷
 
 7000=鏂板缓鑷姩鍖�
 7001=缂栬緫鑷姩鍖�
diff --git a/HDL-ON_Android/Assets/Phone/.DS_Store b/HDL-ON_Android/Assets/Phone/.DS_Store
index 48a1486..b0674c8 100644
--- a/HDL-ON_Android/Assets/Phone/.DS_Store
+++ b/HDL-ON_Android/Assets/Phone/.DS_Store
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/AC/More.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/AC/More.png
new file mode 100644
index 0000000..bc89ac6
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/AC/More.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png
new file mode 100644
index 0000000..66155c5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png
new file mode 100644
index 0000000..32e354e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png
new file mode 100644
index 0000000..23f6005
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png
new file mode 100644
index 0000000..9a40fd6
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png
new file mode 100644
index 0000000..5ae946e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png
new file mode 100644
index 0000000..1ff8d10
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png
new file mode 100644
index 0000000..9053f13
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png
new file mode 100644
index 0000000..01a5a48
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png
new file mode 100644
index 0000000..220ff6e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png
new file mode 100644
index 0000000..f74c97d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png
new file mode 100644
index 0000000..e3671a2
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png
new file mode 100644
index 0000000..259e176
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png
new file mode 100644
index 0000000..3caf309
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png
new file mode 100644
index 0000000..58dbb2d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png
new file mode 100644
index 0000000..aab3b24
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png
new file mode 100644
index 0000000..48e6784
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png
new file mode 100644
index 0000000..c59a2e5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png
new file mode 100644
index 0000000..8c5ead5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png
new file mode 100644
index 0000000..e25af0b
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png
new file mode 100644
index 0000000..4e2f1df
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png
new file mode 100644
index 0000000..0e89579
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png
new file mode 100644
index 0000000..4845fa2
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png
new file mode 100644
index 0000000..84ff63d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png
new file mode 100644
index 0000000..1fd6e8e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png
new file mode 100644
index 0000000..d28c4af
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png
new file mode 100644
index 0000000..1f42e9f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png
new file mode 100644
index 0000000..c59a2e5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png
new file mode 100644
index 0000000..8c5ead5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png
new file mode 100644
index 0000000..d44a273
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png
new file mode 100644
index 0000000..06e28c0
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png
new file mode 100644
index 0000000..66155c5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png
new file mode 100644
index 0000000..32e354e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png
new file mode 100644
index 0000000..50f52ea
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png
new file mode 100644
index 0000000..80addfe
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png
new file mode 100644
index 0000000..d28c4af
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png
new file mode 100644
index 0000000..1f42e9f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png
new file mode 100644
index 0000000..5e07518
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png
new file mode 100644
index 0000000..cb36722
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png
new file mode 100644
index 0000000..b40b6d9
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png
new file mode 100644
index 0000000..f18a303
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png
new file mode 100644
index 0000000..5e07518
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png
new file mode 100644
index 0000000..cb36722
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png
new file mode 100644
index 0000000..5e07518
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png
new file mode 100644
index 0000000..cb36722
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png
new file mode 100644
index 0000000..9df7593
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png
new file mode 100644
index 0000000..79b5a76
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png
new file mode 100644
index 0000000..512f3eb
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png
new file mode 100644
index 0000000..85065ec
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/acstandard.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/acstandard.png
new file mode 100644
index 0000000..6d7221b
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/acstandard.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/airFreshstandard.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/airFreshstandard.png
new file mode 100644
index 0000000..6657bae
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/airFreshstandard.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainroller.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainroller.png
new file mode 100644
index 0000000..10bdb27
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainroller.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainshades.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainshades.png
new file mode 100644
index 0000000..abeae75
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainshades.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainswitch.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainswitch.png
new file mode 100644
index 0000000..8ce4669
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainswitch.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtaintrietex.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtaintrietex.png
new file mode 100644
index 0000000..0eeb3a0
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtaintrietex.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png
new file mode 100644
index 0000000..f299156
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png
new file mode 100644
index 0000000..8486852
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalfan.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalfan.png
new file mode 100644
index 0000000..0447c4d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalfan.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png
new file mode 100644
index 0000000..ed0735d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalracks.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalracks.png
new file mode 100644
index 0000000..6f10d54
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalracks.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalsocket.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalsocket.png
new file mode 100644
index 0000000..6a324db
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalsocket.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltv.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltv.png
new file mode 100644
index 0000000..7f9045f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltv.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png
new file mode 100644
index 0000000..0447c4d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/floorHeatstandard.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/floorHeatstandard.png
new file mode 100644
index 0000000..c067812
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/floorHeatstandard.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irac.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irac.png
new file mode 100644
index 0000000..6d7221b
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irac.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irlearn.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irlearn.png
new file mode 100644
index 0000000..f6654d9
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irlearn.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irmodule.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irmodule.png
new file mode 100644
index 0000000..5bb5bb2
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irmodule.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irtv.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irtv.png
new file mode 100644
index 0000000..7f9045f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irtv.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightcct.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightcct.png
new file mode 100644
index 0000000..9fabb8e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightcct.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightdimming.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightdimming.png
new file mode 100644
index 0000000..6fd97b5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightdimming.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgb.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgb.png
new file mode 100644
index 0000000..9fabb8e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgb.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgbw.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgbw.png
new file mode 100644
index 0000000..9fabb8e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgbw.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightswitch.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightswitch.png
new file mode 100644
index 0000000..0aa1f98
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightswitch.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/musicstandard.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/musicstandard.png
new file mode 100644
index 0000000..d522bf3
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/musicstandard.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorco2.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorco2.png
new file mode 100644
index 0000000..4d52fc1
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorco2.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensordoorwindow.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensordoorwindow.png
new file mode 100644
index 0000000..6f82b1f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensordoorwindow.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorgas.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorgas.png
new file mode 100644
index 0000000..6e05b01
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorgas.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorhumidity.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorhumidity.png
new file mode 100644
index 0000000..3549ac7
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorhumidity.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpir.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpir.png
new file mode 100644
index 0000000..5afa201
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpir.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpm25.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpm25.png
new file mode 100644
index 0000000..2f07a0b
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpm25.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorsmoke.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorsmoke.png
new file mode 100644
index 0000000..245f9de
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorsmoke.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortemperature.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortemperature.png
new file mode 100644
index 0000000..d852749
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortemperature.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortvoc.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortvoc.png
new file mode 100644
index 0000000..a37cc0e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortvoc.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorwater.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorwater.png
new file mode 100644
index 0000000..57b566a
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorwater.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccess.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccess.png
new file mode 100644
index 0000000..8c6b86e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccess.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png
new file mode 100644
index 0000000..224fd3f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png
new file mode 100644
index 0000000..a6ccf0a
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png
new file mode 100644
index 0000000..be9906d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/NetConnectSelect.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/NetConnectSelect.png
new file mode 100644
index 0000000..1c6cbfe
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/NetConnectSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToClound.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToClound.png
new file mode 100644
index 0000000..ffef099
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToClound.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png
new file mode 100644
index 0000000..fe57fe5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png
new file mode 100644
index 0000000..4039574
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/Infraredtreasure.png b/HDL-ON_Android/Assets/Phone/PirIcon/Infraredtreasure.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/STB.png b/HDL-ON_Android/Assets/Phone/PirIcon/STB.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/adddevice.png b/HDL-ON_Android/Assets/Phone/PirIcon/adddevice.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/addlbuton.png b/HDL-ON_Android/Assets/Phone/PirIcon/addlbuton.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/air.png b/HDL-ON_Android/Assets/Phone/PirIcon/air.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/custom.png b/HDL-ON_Android/Assets/Phone/PirIcon/custom.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/del.png b/HDL-ON_Android/Assets/Phone/PirIcon/del.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/delbuton.png b/HDL-ON_Android/Assets/Phone/PirIcon/delbuton.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/dropdown.png b/HDL-ON_Android/Assets/Phone/PirIcon/dropdown.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/dvd.png b/HDL-ON_Android/Assets/Phone/PirIcon/dvd.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/failed.png b/HDL-ON_Android/Assets/Phone/PirIcon/failed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/fan.png b/HDL-ON_Android/Assets/Phone/PirIcon/fan.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/icon1.png b/HDL-ON_Android/Assets/Phone/PirIcon/icon1.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/icon2.png b/HDL-ON_Android/Assets/Phone/PirIcon/icon2.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/next.png b/HDL-ON_Android/Assets/Phone/PirIcon/next.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/offline.png b/HDL-ON_Android/Assets/Phone/PirIcon/offline.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/online.png b/HDL-ON_Android/Assets/Phone/PirIcon/online.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/priequipment.png b/HDL-ON_Android/Assets/Phone/PirIcon/priequipment.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/projector.png b/HDL-ON_Android/Assets/Phone/PirIcon/projector.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/search.png b/HDL-ON_Android/Assets/Phone/PirIcon/search.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/succeed.png b/HDL-ON_Android/Assets/Phone/PirIcon/succeed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/tv.png b/HDL-ON_Android/Assets/Phone/PirIcon/tv.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/Public/ProgressMsg.png b/HDL-ON_Android/Assets/Phone/Public/ProgressMsg.png
new file mode 100644
index 0000000..e0255b8
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/Public/ProgressMsg.png
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index 75f234a..c8c0871 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -125,6 +125,9 @@
     <Reference Include="Shared.Droid.JLCountryCode">
       <HintPath>..\DLL\Android\Shared.Droid.JLCountryCode.dll</HintPath>
     </Reference>
+    <Reference Include="AndriodBluetoothLibrary">
+      <HintPath>..\DLL\Android\AndriodBluetoothLibrary.dll</HintPath>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
     <Compile Include="MainActivity.cs" />
@@ -830,12 +833,98 @@
     <AndroidAsset Include="Assets\Phone\PirIcon\icon2.png" />
     <AndroidAsset Include="Assets\Phone\PirIcon\succeed.png" />
     <AndroidAsset Include="Assets\Phone\LogicIcon\selected+.png" />
-    <AndroidAsset Include="Assets\Phone\PirIcon\1.png" />
-    <AndroidAsset Include="Assets\Phone\PirIcon\2.png" />
-    <AndroidAsset Include="Assets\Phone\PirIcon\3.png" />
-    <AndroidAsset Include="Assets\Phone\PirIcon\4.png" />
-    <AndroidAsset Include="Assets\Phone\PirIcon\left.png" />
-    <AndroidAsset Include="Assets\Phone\PirIcon\right.png" />
+    <AndroidAsset Include="Assets\Phone\Public\ProgressMsg.png" />
+    <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\UploadToClound.png" />
+    <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\NetConnectSelect.png" />
+    <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\ConnectSuccess.png" />
+    <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\ConnectSuccessSelect.png" />
+    <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\MiniRemoteControlBigPictrue.png" />
+    <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\UploadToCloundSelect.png" />
+    <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\MiniRemoteControlMenuIcon.png" />
+    <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\WifiAndPhoneConnect.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensortvoc.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\irmodule.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorpir.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricalai6HtccKFIw3dxo3.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\lightrgb.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\airFreshstandard.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricalracks.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricalfan.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorpm25.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\acstandard.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricalsocket.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorgas.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorhumidity.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricalkoiGhMKwLf2ZP81g.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\lightcct.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\curtainroller.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\irlearn.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\lightdimming.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorco2.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricaltv.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\floorHeatstandard.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\curtainswitch.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\curtainshades.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricaltyqborgovyzytytz.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\musicstandard.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensordoorwindow.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\lightrgbw.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensortemperature.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\curtaintrietex.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorsmoke.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricalQ1RsefNf91tIXyyQ.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\irac.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorwater.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\lightswitch.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\irtv.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightrgbw_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irac_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricaltv_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalai6HtccKFIw3dxo3_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtaintrietex_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\floorHeatstandard_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\musicstandard_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalfan_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtainswitch_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightdimming_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightrgbw_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricaltyqborgovyzytytz_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\airFreshstandard_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightrgb_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irtv_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irlearn_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\musicstandard_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalfan_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtainshades_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalkoiGhMKwLf2ZP81g_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irac_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalkoiGhMKwLf2ZP81g_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\acstandard_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightcct_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalracks_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalai6HtccKFIw3dxo3_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightswitch_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtaintrietex_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\airFreshstandard_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\floorHeatstandard_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtainshades_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalQ1RsefNf91tIXyyQ_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricaltyqborgovyzytytz_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightcct_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightrgb_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtainroller_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtainroller_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalQ1RsefNf91tIXyyQ_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irtv_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalsocket_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightswitch_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightdimming_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricaltv_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalsocket_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\acstandard_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irlearn_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtainswitch_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalracks_white.png" />
   </ItemGroup>
   <ItemGroup>
     <AndroidNativeLibrary Include="libs\armeabi-v7a\libelianjni.so" />
diff --git a/HDL-ON_Android/Properties/AndroidManifest.xml b/HDL-ON_Android/Properties/AndroidManifest.xml
index 00724b4..b63337c 100644
--- a/HDL-ON_Android/Properties/AndroidManifest.xml
+++ b/HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202103051" android:versionName="1.1.202103051" package="com.hdl.onpro">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202103101" android:versionName="1.1.202103101" package="com.hdl.onpro">
 	<uses-sdk android:minSdkVersion="26" android:targetSdkVersion="26" />
 	<!--  瀹氫綅鏉冮檺-->
 	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
diff --git a/HDL-ON_Android/Resources/Resource.designer.cs b/HDL-ON_Android/Resources/Resource.designer.cs
index ade11c4..042c39b 100644
--- a/HDL-ON_Android/Resources/Resource.designer.cs
+++ b/HDL-ON_Android/Resources/Resource.designer.cs
@@ -6726,211 +6726,214 @@
 			public const int btn_logout = 2131296348;
 			
 			// aapt resource value: 0x7F09005D
-			public const int btn_online_device = 2131296349;
+			public const int btn_multi_screen_preview = 2131296349;
 			
 			// aapt resource value: 0x7F09005E
-			public const int btn_sdk_login = 2131296350;
+			public const int btn_online_device = 2131296350;
 			
 			// aapt resource value: 0x7F09005F
-			public const int btn_start_ap = 2131296351;
+			public const int btn_sdk_login = 2131296351;
 			
 			// aapt resource value: 0x7F090060
-			public const int btn_stop_ap = 2131296352;
+			public const int btn_start_ap = 2131296352;
 			
 			// aapt resource value: 0x7F090061
-			public const int btn_support = 2131296353;
+			public const int btn_stop_ap = 2131296353;
 			
 			// aapt resource value: 0x7F090062
-			public const int btn_test = 2131296354;
+			public const int btn_support = 2131296354;
 			
 			// aapt resource value: 0x7F090063
-			public const int btn_to_alarm_list = 2131296355;
+			public const int btn_test = 2131296355;
 			
 			// aapt resource value: 0x7F090064
-			public const int btn_to_ap = 2131296356;
+			public const int btn_to_alarm_list = 2131296356;
 			
 			// aapt resource value: 0x7F090065
-			public const int btn_to_device_list = 2131296357;
+			public const int btn_to_ap = 2131296357;
 			
 			// aapt resource value: 0x7F090066
-			public const int btn_to_smart_config = 2131296358;
+			public const int btn_to_device_list = 2131296358;
 			
 			// aapt resource value: 0x7F090067
-			public const int btn_to_sound_wave = 2131296359;
+			public const int btn_to_smart_config = 2131296359;
 			
 			// aapt resource value: 0x7F090068
-			public const int btn_user = 2131296360;
+			public const int btn_to_sound_wave = 2131296360;
 			
 			// aapt resource value: 0x7F090069
-			public const int buttonPanel = 2131296361;
+			public const int btn_user = 2131296361;
 			
 			// aapt resource value: 0x7F09006A
-			public const int cameraListLy = 2131296362;
+			public const int buttonPanel = 2131296362;
 			
 			// aapt resource value: 0x7F09006B
-			public const int cameraName = 2131296363;
+			public const int cameraListLy = 2131296363;
 			
 			// aapt resource value: 0x7F09006C
-			public const int cameraNameSort = 2131296364;
+			public const int cameraName = 2131296364;
 			
 			// aapt resource value: 0x7F09006D
-			public const int camera_del_btn = 2131296365;
+			public const int cameraNameSort = 2131296365;
 			
 			// aapt resource value: 0x7F09006E
-			public const int camera_item_btn = 2131296366;
+			public const int camera_del_btn = 2131296366;
 			
 			// aapt resource value: 0x7F09006F
-			public const int camera_item_rl = 2131296367;
-			
-			// aapt resource value: 0x7F090072
-			public const int camera_listview = 2131296370;
+			public const int camera_item_btn = 2131296367;
 			
 			// aapt resource value: 0x7F090070
-			public const int camera_list_gc_ly = 2131296368;
-			
-			// aapt resource value: 0x7F090071
-			public const int camera_list_refresh_btn = 2131296369;
+			public const int camera_item_rl = 2131296368;
 			
 			// aapt resource value: 0x7F090073
-			public const int camera_name_tv = 2131296371;
+			public const int camera_listview = 2131296371;
+			
+			// aapt resource value: 0x7F090071
+			public const int camera_list_gc_ly = 2131296369;
+			
+			// aapt resource value: 0x7F090072
+			public const int camera_list_refresh_btn = 2131296370;
 			
 			// aapt resource value: 0x7F090074
-			public const int cancel_action = 2131296372;
+			public const int camera_name_tv = 2131296372;
 			
 			// aapt resource value: 0x7F090075
-			public const int cancel_auto_play_btn = 2131296373;
+			public const int cancel_action = 2131296373;
 			
 			// aapt resource value: 0x7F090076
-			public const int cancel_btn = 2131296374;
+			public const int cancel_auto_play_btn = 2131296374;
 			
 			// aapt resource value: 0x7F090077
-			public const int cc_btn_back = 2131296375;
+			public const int cancel_btn = 2131296375;
 			
 			// aapt resource value: 0x7F090078
-			public const int cc_line_long = 2131296376;
+			public const int cc_btn_back = 2131296376;
 			
 			// aapt resource value: 0x7F090079
-			public const int cc_listview = 2131296377;
+			public const int cc_line_long = 2131296377;
 			
 			// aapt resource value: 0x7F09007A
-			public const int cc_nameView = 2131296378;
+			public const int cc_listview = 2131296378;
 			
 			// aapt resource value: 0x7F09007B
-			public const int cc_rl_topview = 2131296379;
+			public const int cc_nameView = 2131296379;
 			
 			// aapt resource value: 0x7F09007C
-			public const int cc_searchBarContainer = 2131296380;
+			public const int cc_rl_topview = 2131296380;
 			
 			// aapt resource value: 0x7F09007D
-			public const int cc_sectionTextView = 2131296381;
+			public const int cc_searchBarContainer = 2131296381;
 			
 			// aapt resource value: 0x7F09007E
-			public const int cc_tv_activity_title = 2131296382;
+			public const int cc_sectionTextView = 2131296382;
 			
 			// aapt resource value: 0x7F09007F
-			public const int center = 2131296383;
+			public const int cc_tv_activity_title = 2131296383;
 			
 			// aapt resource value: 0x7F090080
-			public const int center_horizontal = 2131296384;
+			public const int center = 2131296384;
 			
 			// aapt resource value: 0x7F090081
-			public const int center_vertical = 2131296385;
+			public const int center_horizontal = 2131296385;
 			
 			// aapt resource value: 0x7F090082
-			public const int check1 = 2131296386;
+			public const int center_vertical = 2131296386;
 			
 			// aapt resource value: 0x7F090083
-			public const int check2 = 2131296387;
+			public const int check1 = 2131296387;
 			
 			// aapt resource value: 0x7F090084
-			public const int check3 = 2131296388;
-			
-			// aapt resource value: 0x7F09008A
-			public const int checkbox = 2131296394;
+			public const int check2 = 2131296388;
 			
 			// aapt resource value: 0x7F090085
-			public const int check_all = 2131296389;
-			
-			// aapt resource value: 0x7F090086
-			public const int check_mode_bottom = 2131296390;
-			
-			// aapt resource value: 0x7F090087
-			public const int check_mode_bottom_divider = 2131296391;
-			
-			// aapt resource value: 0x7F090088
-			public const int check_mode_top = 2131296392;
-			
-			// aapt resource value: 0x7F090089
-			public const int check_mode_top_divider = 2131296393;
+			public const int check3 = 2131296389;
 			
 			// aapt resource value: 0x7F09008B
-			public const int chronometer = 2131296395;
+			public const int checkbox = 2131296395;
+			
+			// aapt resource value: 0x7F090086
+			public const int check_all = 2131296390;
+			
+			// aapt resource value: 0x7F090087
+			public const int check_mode_bottom = 2131296391;
+			
+			// aapt resource value: 0x7F090088
+			public const int check_mode_bottom_divider = 2131296392;
+			
+			// aapt resource value: 0x7F090089
+			public const int check_mode_top = 2131296393;
+			
+			// aapt resource value: 0x7F09008A
+			public const int check_mode_top_divider = 2131296394;
 			
 			// aapt resource value: 0x7F09008C
-			public const int cifyConfigList = 2131296396;
+			public const int chronometer = 2131296396;
 			
 			// aapt resource value: 0x7F09008D
-			public const int cityKey = 2131296397;
+			public const int cifyConfigList = 2131296397;
 			
 			// aapt resource value: 0x7F09008E
-			public const int cityName = 2131296398;
+			public const int cityKey = 2131296398;
 			
 			// aapt resource value: 0x7F09008F
-			public const int ckbCloundService = 2131296399;
+			public const int cityName = 2131296399;
 			
 			// aapt resource value: 0x7F090090
-			public const int ckbLight = 2131296400;
+			public const int ckbCloundService = 2131296400;
 			
 			// aapt resource value: 0x7F090091
-			public const int clip_horizontal = 2131296401;
+			public const int ckbLight = 2131296401;
 			
 			// aapt resource value: 0x7F090092
-			public const int clip_vertical = 2131296402;
+			public const int clip_horizontal = 2131296402;
 			
 			// aapt resource value: 0x7F090093
-			public const int collapseActionView = 2131296403;
+			public const int clip_vertical = 2131296403;
 			
 			// aapt resource value: 0x7F090094
-			public const int collectBtn = 2131296404;
+			public const int collapseActionView = 2131296404;
 			
 			// aapt resource value: 0x7F090095
-			public const int collectedTV = 2131296405;
+			public const int collectBtn = 2131296405;
 			
 			// aapt resource value: 0x7F090096
-			public const int common_name_layout = 2131296406;
+			public const int collectedTV = 2131296406;
 			
 			// aapt resource value: 0x7F090097
-			public const int connectStateContainer = 2131296407;
+			public const int common_name_layout = 2131296407;
 			
 			// aapt resource value: 0x7F090098
-			public const int connectTip = 2131296408;
+			public const int connectStateContainer = 2131296408;
 			
 			// aapt resource value: 0x7F090099
-			public const int container = 2131296409;
+			public const int connectTip = 2131296409;
 			
 			// aapt resource value: 0x7F09009A
-			public const int contentFrame = 2131296410;
+			public const int container = 2131296410;
 			
 			// aapt resource value: 0x7F09009B
-			public const int contentPanel = 2131296411;
+			public const int contentFrame = 2131296411;
 			
 			// aapt resource value: 0x7F09009C
-			public const int content_container = 2131296412;
+			public const int contentPanel = 2131296412;
 			
 			// aapt resource value: 0x7F09009D
-			public const int content_tab_cloud_root = 2131296413;
+			public const int content_container = 2131296413;
 			
 			// aapt resource value: 0x7F09009E
-			public const int content_tab_device_root = 2131296414;
+			public const int content_tab_cloud_root = 2131296414;
 			
 			// aapt resource value: 0x7F09009F
-			public const int control_area = 2131296415;
+			public const int content_tab_device_root = 2131296415;
 			
 			// aapt resource value: 0x7F0900A0
-			public const int coordinator = 2131296416;
+			public const int control_area = 2131296416;
 			
 			// aapt resource value: 0x7F0900A1
-			public const int cover = 2131296417;
+			public const int coordinator = 2131296417;
+			
+			// aapt resource value: 0x7F0900A2
+			public const int cover = 2131296418;
 			
 			// aapt resource value: 0x7F090002
 			public const int CoverArea = 2131296258;
@@ -6938,329 +6941,329 @@
 			// aapt resource value: 0x7F090001
 			public const int CTRL = 2131296257;
 			
-			// aapt resource value: 0x7F0900A2
-			public const int current_version = 2131296418;
-			
 			// aapt resource value: 0x7F0900A3
-			public const int current_version_layout = 2131296419;
+			public const int current_version = 2131296419;
 			
 			// aapt resource value: 0x7F0900A4
-			public const int custom = 2131296420;
+			public const int current_version_layout = 2131296420;
 			
 			// aapt resource value: 0x7F0900A5
-			public const int customPanel = 2131296421;
+			public const int custom = 2131296421;
 			
 			// aapt resource value: 0x7F0900A6
-			public const int day = 2131296422;
+			public const int customPanel = 2131296422;
 			
 			// aapt resource value: 0x7F0900A7
-			public const int decode = 2131296423;
+			public const int day = 2131296423;
 			
 			// aapt resource value: 0x7F0900A8
-			public const int decode_failed = 2131296424;
+			public const int decode = 2131296424;
 			
 			// aapt resource value: 0x7F0900A9
-			public const int decode_succeeded = 2131296425;
+			public const int decode_failed = 2131296425;
 			
 			// aapt resource value: 0x7F0900AA
-			public const int decor_content_parent = 2131296426;
+			public const int decode_succeeded = 2131296426;
 			
 			// aapt resource value: 0x7F0900AB
-			public const int default_activity_button = 2131296427;
+			public const int decor_content_parent = 2131296427;
 			
 			// aapt resource value: 0x7F0900AC
-			public const int default_figure_iv = 2131296428;
+			public const int default_activity_button = 2131296428;
 			
 			// aapt resource value: 0x7F0900AD
-			public const int defence = 2131296429;
+			public const int default_figure_iv = 2131296429;
 			
 			// aapt resource value: 0x7F0900AE
-			public const int defence_layout = 2131296430;
+			public const int defence = 2131296430;
 			
 			// aapt resource value: 0x7F0900AF
-			public const int defence_plan_arrow = 2131296431;
+			public const int defence_layout = 2131296431;
 			
 			// aapt resource value: 0x7F0900B0
-			public const int defence_plan_button = 2131296432;
+			public const int defence_plan_arrow = 2131296432;
 			
 			// aapt resource value: 0x7F0900B1
-			public const int defence_plan_new = 2131296433;
+			public const int defence_plan_button = 2131296433;
 			
 			// aapt resource value: 0x7F0900B2
-			public const int defence_plan_parent_layout = 2131296434;
+			public const int defence_plan_new = 2131296434;
 			
 			// aapt resource value: 0x7F0900B3
-			public const int defence_plan_progress = 2131296435;
+			public const int defence_plan_parent_layout = 2131296435;
 			
 			// aapt resource value: 0x7F0900B4
-			public const int defence_plan_retry = 2131296436;
+			public const int defence_plan_progress = 2131296436;
 			
 			// aapt resource value: 0x7F0900B5
-			public const int defence_plan_set_layout = 2131296437;
+			public const int defence_plan_retry = 2131296437;
 			
 			// aapt resource value: 0x7F0900B6
-			public const int defence_plan_state = 2131296438;
+			public const int defence_plan_set_layout = 2131296438;
 			
 			// aapt resource value: 0x7F0900B7
-			public const int defence_plan_status_progress = 2131296439;
+			public const int defence_plan_state = 2131296439;
 			
 			// aapt resource value: 0x7F0900B8
-			public const int defence_plan_status_retry = 2131296440;
+			public const int defence_plan_status_progress = 2131296440;
 			
 			// aapt resource value: 0x7F0900B9
-			public const int defence_state = 2131296441;
+			public const int defence_plan_status_retry = 2131296441;
 			
 			// aapt resource value: 0x7F0900BA
-			public const int defence_toggle_button = 2131296442;
-			
-			// aapt resource value: 0x7F0900BC
-			public const int delete_playback = 2131296444;
-			
-			// aapt resource value: 0x7F0900BD
-			public const int delete_playback_device = 2131296445;
+			public const int defence_state = 2131296442;
 			
 			// aapt resource value: 0x7F0900BB
-			public const int del_button = 2131296443;
+			public const int defence_toggle_button = 2131296443;
+			
+			// aapt resource value: 0x7F0900BD
+			public const int delete_playback = 2131296445;
 			
 			// aapt resource value: 0x7F0900BE
-			public const int description = 2131296446;
+			public const int delete_playback_device = 2131296446;
+			
+			// aapt resource value: 0x7F0900BC
+			public const int del_button = 2131296444;
 			
 			// aapt resource value: 0x7F0900BF
-			public const int design_bottom_sheet = 2131296447;
+			public const int description = 2131296447;
 			
 			// aapt resource value: 0x7F0900C0
-			public const int design_menu_item_action_area = 2131296448;
+			public const int design_bottom_sheet = 2131296448;
 			
 			// aapt resource value: 0x7F0900C1
-			public const int design_menu_item_action_area_stub = 2131296449;
+			public const int design_menu_item_action_area = 2131296449;
 			
 			// aapt resource value: 0x7F0900C2
-			public const int design_menu_item_text = 2131296450;
+			public const int design_menu_item_action_area_stub = 2131296450;
 			
 			// aapt resource value: 0x7F0900C3
-			public const int design_navigation_view = 2131296451;
+			public const int design_menu_item_text = 2131296451;
 			
 			// aapt resource value: 0x7F0900C4
-			public const int detector_type = 2131296452;
+			public const int design_navigation_view = 2131296452;
 			
 			// aapt resource value: 0x7F0900C5
-			public const int deviceIcon = 2131296453;
+			public const int detector_type = 2131296453;
 			
 			// aapt resource value: 0x7F0900C6
-			public const int deviceName = 2131296454;
+			public const int deviceIcon = 2131296454;
 			
 			// aapt resource value: 0x7F0900C7
-			public const int device_delete = 2131296455;
+			public const int deviceName = 2131296455;
 			
 			// aapt resource value: 0x7F0900C8
-			public const int device_info_layout = 2131296456;
+			public const int device_delete = 2131296456;
 			
 			// aapt resource value: 0x7F0900C9
-			public const int device_name = 2131296457;
+			public const int device_info_layout = 2131296457;
 			
 			// aapt resource value: 0x7F0900CA
-			public const int device_type_sn = 2131296458;
+			public const int device_name = 2131296458;
 			
 			// aapt resource value: 0x7F0900CB
-			public const int disableHome = 2131296459;
+			public const int device_type_sn = 2131296459;
 			
 			// aapt resource value: 0x7F0900CC
-			public const int discover_list_lv = 2131296460;
+			public const int disableHome = 2131296460;
 			
 			// aapt resource value: 0x7F0900CD
-			public const int discover_tv = 2131296461;
+			public const int discover_list_lv = 2131296461;
 			
 			// aapt resource value: 0x7F0900CE
-			public const int display_layout = 2131296462;
+			public const int discover_tv = 2131296462;
 			
 			// aapt resource value: 0x7F0900CF
-			public const int divider = 2131296463;
-			
-			// aapt resource value: 0x7F0900D1
-			public const int downloading = 2131296465;
-			
-			// aapt resource value: 0x7F0900D2
-			public const int downloading_number = 2131296466;
+			public const int display_layout = 2131296463;
 			
 			// aapt resource value: 0x7F0900D0
-			public const int down_layout = 2131296464;
+			public const int divider = 2131296464;
+			
+			// aapt resource value: 0x7F0900D2
+			public const int downloading = 2131296466;
 			
 			// aapt resource value: 0x7F0900D3
-			public const int edit_accesstoken = 2131296467;
+			public const int downloading_number = 2131296467;
+			
+			// aapt resource value: 0x7F0900D1
+			public const int down_layout = 2131296465;
 			
 			// aapt resource value: 0x7F0900D4
-			public const int edit_apiurl = 2131296468;
+			public const int edit_accesstoken = 2131296468;
 			
 			// aapt resource value: 0x7F0900D5
-			public const int edit_appkey = 2131296469;
+			public const int edit_apiurl = 2131296469;
 			
 			// aapt resource value: 0x7F0900D6
-			public const int edit_deviceserial = 2131296470;
+			public const int edit_appkey = 2131296470;
 			
 			// aapt resource value: 0x7F0900D7
-			public const int edit_query = 2131296471;
+			public const int edit_deviceserial = 2131296471;
 			
 			// aapt resource value: 0x7F0900D8
-			public const int edit_weburl = 2131296472;
+			public const int edit_query = 2131296472;
 			
 			// aapt resource value: 0x7F0900D9
-			public const int edtPassword = 2131296473;
+			public const int edit_weburl = 2131296473;
 			
 			// aapt resource value: 0x7F0900DA
-			public const int emptyView = 2131296474;
+			public const int edtPassword = 2131296474;
 			
 			// aapt resource value: 0x7F0900DB
-			public const int encode_failed = 2131296475;
+			public const int emptyView = 2131296475;
 			
 			// aapt resource value: 0x7F0900DC
-			public const int encode_succeeded = 2131296476;
+			public const int encode_failed = 2131296476;
 			
 			// aapt resource value: 0x7F0900DD
-			public const int encrypt_button = 2131296477;
+			public const int encode_succeeded = 2131296477;
 			
 			// aapt resource value: 0x7F0900DE
-			public const int encrypt_layout = 2131296478;
+			public const int encrypt_button = 2131296478;
 			
 			// aapt resource value: 0x7F0900DF
-			public const int encrypt_parent_layout = 2131296479;
+			public const int encrypt_layout = 2131296479;
 			
 			// aapt resource value: 0x7F0900E0
-			public const int end = 2131296480;
+			public const int encrypt_parent_layout = 2131296480;
 			
 			// aapt resource value: 0x7F0900E1
-			public const int end_padder = 2131296481;
+			public const int end = 2131296481;
 			
 			// aapt resource value: 0x7F0900E2
-			public const int end_time_tv = 2131296482;
+			public const int end_padder = 2131296482;
 			
 			// aapt resource value: 0x7F0900E3
-			public const int enterAlways = 2131296483;
+			public const int end_time_tv = 2131296483;
 			
 			// aapt resource value: 0x7F0900E4
-			public const int enterAlwaysCollapsed = 2131296484;
+			public const int enterAlways = 2131296484;
 			
 			// aapt resource value: 0x7F0900E5
-			public const int errorPage = 2131296485;
+			public const int enterAlwaysCollapsed = 2131296485;
 			
 			// aapt resource value: 0x7F0900E6
-			public const int error_info_tv = 2131296486;
+			public const int errorPage = 2131296486;
 			
 			// aapt resource value: 0x7F0900E7
-			public const int error_prompt = 2131296487;
+			public const int error_info_tv = 2131296487;
 			
 			// aapt resource value: 0x7F0900E8
-			public const int error_replay_btn = 2131296488;
+			public const int error_prompt = 2131296488;
 			
 			// aapt resource value: 0x7F0900E9
-			public const int et_access_token = 2131296489;
+			public const int error_replay_btn = 2131296489;
 			
 			// aapt resource value: 0x7F0900EA
-			public const int et_app_key = 2131296490;
+			public const int et_access_token = 2131296490;
 			
 			// aapt resource value: 0x7F0900EB
-			public const int et_camera_no = 2131296491;
+			public const int et_app_key = 2131296491;
 			
 			// aapt resource value: 0x7F0900EC
-			public const int et_device_serial = 2131296492;
+			public const int et_camera_no = 2131296492;
 			
 			// aapt resource value: 0x7F0900ED
-			public const int et_record_file_start_time = 2131296493;
+			public const int et_device_serial = 2131296493;
 			
 			// aapt resource value: 0x7F0900EE
-			public const int et_record_file_stop_time = 2131296494;
+			public const int et_record_file_start_time = 2131296494;
 			
 			// aapt resource value: 0x7F0900EF
-			public const int et_specified_device = 2131296495;
+			public const int et_record_file_stop_time = 2131296495;
 			
 			// aapt resource value: 0x7F0900F0
-			public const int exitUntilCollapsed = 2131296496;
+			public const int et_specified_device = 2131296496;
 			
 			// aapt resource value: 0x7F0900F1
-			public const int exit_btn = 2131296497;
-			
-			// aapt resource value: 0x7F0900F3
-			public const int expanded_menu = 2131296499;
+			public const int exitUntilCollapsed = 2131296497;
 			
 			// aapt resource value: 0x7F0900F2
-			public const int expand_activities_button = 2131296498;
-			
-			// aapt resource value: 0x7F0900FE
-			public const int ezopen_realplay_operate_bar = 2131296510;
-			
-			// aapt resource value: 0x7F0900FF
-			public const int ezopen_realplay_operate_bar2 = 2131296511;
-			
-			// aapt resource value: 0x7F090100
-			public const int ezupgrade_button = 2131296512;
-			
-			// aapt resource value: 0x7F090101
-			public const int ezupgrade_ll_btn = 2131296513;
-			
-			// aapt resource value: 0x7F090102
-			public const int ezupgrade_ll_progress = 2131296514;
-			
-			// aapt resource value: 0x7F090103
-			public const int ezupgrade_progress_text = 2131296515;
-			
-			// aapt resource value: 0x7F090104
-			public const int ezupgrade_text_version_desc = 2131296516;
+			public const int exit_btn = 2131296498;
 			
 			// aapt resource value: 0x7F0900F4
-			public const int ez_api_self_test = 2131296500;
+			public const int expanded_menu = 2131296500;
 			
-			// aapt resource value: 0x7F0900F5
-			public const int ez_device_serial = 2131296501;
+			// aapt resource value: 0x7F0900F3
+			public const int expand_activities_button = 2131296499;
 			
-			// aapt resource value: 0x7F0900F6
-			public const int ez_device_serial_layout = 2131296502;
+			// aapt resource value: 0x7F0900FF
+			public const int ezopen_realplay_operate_bar = 2131296511;
 			
-			// aapt resource value: 0x7F0900F7
-			public const int ez_handle_lyt = 2131296503;
+			// aapt resource value: 0x7F090100
+			public const int ezopen_realplay_operate_bar2 = 2131296512;
 			
-			// aapt resource value: 0x7F0900F8
-			public const int ez_platform_login_btn = 2131296504;
+			// aapt resource value: 0x7F090101
+			public const int ezupgrade_button = 2131296513;
 			
-			// aapt resource value: 0x7F0900F9
-			public const int ez_sms_code_et = 2131296505;
+			// aapt resource value: 0x7F090102
+			public const int ezupgrade_ll_btn = 2131296514;
 			
-			// aapt resource value: 0x7F0900FA
-			public const int ez_sms_code_lyt = 2131296506;
+			// aapt resource value: 0x7F090103
+			public const int ezupgrade_ll_progress = 2131296515;
 			
-			// aapt resource value: 0x7F0900FB
-			public const int ez_square_btn = 2131296507;
-			
-			// aapt resource value: 0x7F0900FC
-			public const int ez_tab_content_frame = 2131296508;
-			
-			// aapt resource value: 0x7F0900FD
-			public const int ez_v32_api_test = 2131296509;
+			// aapt resource value: 0x7F090104
+			public const int ezupgrade_progress_text = 2131296516;
 			
 			// aapt resource value: 0x7F090105
-			public const int failedMsg = 2131296517;
+			public const int ezupgrade_text_version_desc = 2131296517;
+			
+			// aapt resource value: 0x7F0900F5
+			public const int ez_api_self_test = 2131296501;
+			
+			// aapt resource value: 0x7F0900F6
+			public const int ez_device_serial = 2131296502;
+			
+			// aapt resource value: 0x7F0900F7
+			public const int ez_device_serial_layout = 2131296503;
+			
+			// aapt resource value: 0x7F0900F8
+			public const int ez_handle_lyt = 2131296504;
+			
+			// aapt resource value: 0x7F0900F9
+			public const int ez_platform_login_btn = 2131296505;
+			
+			// aapt resource value: 0x7F0900FA
+			public const int ez_sms_code_et = 2131296506;
+			
+			// aapt resource value: 0x7F0900FB
+			public const int ez_sms_code_lyt = 2131296507;
+			
+			// aapt resource value: 0x7F0900FC
+			public const int ez_square_btn = 2131296508;
+			
+			// aapt resource value: 0x7F0900FD
+			public const int ez_tab_content_frame = 2131296509;
+			
+			// aapt resource value: 0x7F0900FE
+			public const int ez_v32_api_test = 2131296510;
 			
 			// aapt resource value: 0x7F090106
-			public const int file_size_text = 2131296518;
+			public const int failedMsg = 2131296518;
 			
 			// aapt resource value: 0x7F090107
-			public const int fill = 2131296519;
+			public const int file_size_text = 2131296519;
+			
+			// aapt resource value: 0x7F090108
+			public const int fill = 2131296520;
 			
 			// aapt resource value: 0x7F090003
 			public const int FILL = 2131296259;
 			
-			// aapt resource value: 0x7F090108
-			public const int fill_horizontal = 2131296520;
+			// aapt resource value: 0x7F090109
+			public const int fill_horizontal = 2131296521;
 			
 			// aapt resource value: 0x7F090004
 			public const int FILL_STROKE = 2131296260;
 			
-			// aapt resource value: 0x7F090109
-			public const int fill_vertical = 2131296521;
-			
 			// aapt resource value: 0x7F09010A
-			public const int fingerprint_icon = 2131296522;
+			public const int fill_vertical = 2131296522;
 			
 			// aapt resource value: 0x7F09010B
-			public const int @fixed = 2131296523;
+			public const int fingerprint_icon = 2131296523;
+			
+			// aapt resource value: 0x7F09010C
+			public const int @fixed = 2131296524;
 			
 			// aapt resource value: 0x7F090006
 			public const int FixedBehind = 2131296262;
@@ -7268,1592 +7271,1595 @@
 			// aapt resource value: 0x7F090007
 			public const int FixedFront = 2131296263;
 			
-			// aapt resource value: 0x7F09010C
-			public const int flow_area = 2131296524;
-			
 			// aapt resource value: 0x7F09010D
-			public const int flow_line = 2131296525;
+			public const int flow_area = 2131296525;
 			
 			// aapt resource value: 0x7F09010E
-			public const int flt_layout = 2131296526;
+			public const int flow_line = 2131296526;
 			
 			// aapt resource value: 0x7F09010F
-			public const int focus_view = 2131296527;
+			public const int flt_layout = 2131296527;
 			
 			// aapt resource value: 0x7F090110
-			public const int footer_hint = 2131296528;
+			public const int focus_view = 2131296528;
 			
 			// aapt resource value: 0x7F090111
-			public const int footer_hint_more = 2131296529;
+			public const int footer_hint = 2131296529;
 			
 			// aapt resource value: 0x7F090112
-			public const int footer_loading_layout = 2131296530;
+			public const int footer_hint_more = 2131296530;
 			
 			// aapt resource value: 0x7F090113
-			public const int footer_progress = 2131296531;
+			public const int footer_loading_layout = 2131296531;
 			
 			// aapt resource value: 0x7F090114
-			public const int forever = 2131296532;
+			public const int footer_progress = 2131296532;
 			
 			// aapt resource value: 0x7F090115
-			public const int from_tv = 2131296533;
+			public const int forever = 2131296533;
 			
 			// aapt resource value: 0x7F090116
-			public const int fullscreen_button = 2131296534;
+			public const int from_tv = 2131296534;
 			
 			// aapt resource value: 0x7F090117
-			public const int fullscreen_full_button = 2131296535;
+			public const int fullscreen_button = 2131296535;
+			
+			// aapt resource value: 0x7F090118
+			public const int fullscreen_full_button = 2131296536;
 			
 			// aapt resource value: 0x7F090005
 			public const int FUNCTION = 2131296261;
 			
-			// aapt resource value: 0x7F090118
-			public const int gd_btn_back = 2131296536;
-			
 			// aapt resource value: 0x7F090119
-			public const int gd_btn_myLocation = 2131296537;
+			public const int gd_btn_back = 2131296537;
 			
 			// aapt resource value: 0x7F09011A
-			public const int gd_btn_save = 2131296538;
+			public const int gd_btn_myLocation = 2131296538;
 			
 			// aapt resource value: 0x7F09011B
-			public const int gd_img_search_delete = 2131296539;
+			public const int gd_btn_save = 2131296539;
 			
 			// aapt resource value: 0x7F09011C
-			public const int gd_ll_myhome = 2131296540;
+			public const int gd_img_search_delete = 2131296540;
 			
 			// aapt resource value: 0x7F09011D
-			public const int gd_ll_search = 2131296541;
+			public const int gd_ll_myhome = 2131296541;
 			
 			// aapt resource value: 0x7F09011E
-			public const int gd_mapView = 2131296542;
+			public const int gd_ll_search = 2131296542;
 			
 			// aapt resource value: 0x7F09011F
-			public const int gd_rl_topview = 2131296543;
+			public const int gd_mapView = 2131296543;
 			
 			// aapt resource value: 0x7F090120
-			public const int gd_tv_activity_title = 2131296544;
+			public const int gd_rl_topview = 2131296544;
 			
 			// aapt resource value: 0x7F090121
-			public const int gd_tv_radius = 2131296545;
+			public const int gd_tv_activity_title = 2131296545;
 			
 			// aapt resource value: 0x7F090122
-			public const int gd_tv_search_title = 2131296546;
+			public const int gd_tv_radius = 2131296546;
 			
 			// aapt resource value: 0x7F090123
-			public const int get_camera_fail_tip_ly = 2131296547;
+			public const int gd_tv_search_title = 2131296547;
 			
 			// aapt resource value: 0x7F090124
-			public const int get_camera_list_fail_tv = 2131296548;
+			public const int get_camera_fail_tip_ly = 2131296548;
 			
 			// aapt resource value: 0x7F090125
-			public const int get_sms_code_btn = 2131296549;
+			public const int get_camera_list_fail_tv = 2131296549;
 			
 			// aapt resource value: 0x7F090126
-			public const int get_sms_code_lyt = 2131296550;
+			public const int get_sms_code_btn = 2131296550;
 			
 			// aapt resource value: 0x7F090127
-			public const int ghost_view = 2131296551;
+			public const int get_sms_code_lyt = 2131296551;
 			
 			// aapt resource value: 0x7F090128
-			public const int handle_lyt = 2131296552;
+			public const int ghost_view = 2131296552;
 			
 			// aapt resource value: 0x7F090129
-			public const int hdl_gallery_rootView = 2131296553;
+			public const int handle_lyt = 2131296553;
 			
 			// aapt resource value: 0x7F09012A
-			public const int hdl_gallery_viewPager = 2131296554;
+			public const int hdl_gallery_rootView = 2131296554;
 			
 			// aapt resource value: 0x7F09012B
-			public const int hdl_options1 = 2131296555;
+			public const int hdl_gallery_viewPager = 2131296555;
 			
 			// aapt resource value: 0x7F09012C
-			public const int hdl_options2 = 2131296556;
+			public const int hdl_options1 = 2131296556;
 			
 			// aapt resource value: 0x7F09012D
-			public const int hdl_options3 = 2131296557;
+			public const int hdl_options2 = 2131296557;
 			
 			// aapt resource value: 0x7F09012E
-			public const int hdl_pickerview_ll = 2131296558;
+			public const int hdl_options3 = 2131296558;
 			
 			// aapt resource value: 0x7F09012F
-			public const int header = 2131296559;
+			public const int hdl_pickerview_ll = 2131296559;
 			
 			// aapt resource value: 0x7F090130
-			public const int header_arrow = 2131296560;
+			public const int header = 2131296560;
 			
 			// aapt resource value: 0x7F090131
-			public const int header_hint = 2131296561;
+			public const int header_arrow = 2131296561;
 			
 			// aapt resource value: 0x7F090132
-			public const int header_hint_more = 2131296562;
+			public const int header_hint = 2131296562;
 			
 			// aapt resource value: 0x7F090133
-			public const int header_parent = 2131296563;
+			public const int header_hint_more = 2131296563;
 			
 			// aapt resource value: 0x7F090134
-			public const int header_progress = 2131296564;
+			public const int header_parent = 2131296564;
 			
 			// aapt resource value: 0x7F090135
-			public const int header_text = 2131296565;
+			public const int header_progress = 2131296565;
 			
 			// aapt resource value: 0x7F090136
-			public const int header_text_layout = 2131296566;
+			public const int header_text = 2131296566;
 			
 			// aapt resource value: 0x7F090137
-			public const int header_time = 2131296567;
+			public const int header_text_layout = 2131296567;
 			
 			// aapt resource value: 0x7F090138
-			public const int header_time_layout = 2131296568;
+			public const int header_time = 2131296568;
 			
 			// aapt resource value: 0x7F090139
-			public const int help = 2131296569;
+			public const int header_time_layout = 2131296569;
 			
 			// aapt resource value: 0x7F09013A
-			public const int helpTop = 2131296570;
+			public const int help = 2131296570;
 			
 			// aapt resource value: 0x7F09013B
-			public const int home = 2131296571;
+			public const int helpTop = 2131296571;
 			
 			// aapt resource value: 0x7F09013C
-			public const int homeAsUp = 2131296572;
+			public const int home = 2131296572;
 			
 			// aapt resource value: 0x7F09013D
-			public const int horizontal = 2131296573;
+			public const int homeAsUp = 2131296573;
 			
 			// aapt resource value: 0x7F09013E
-			public const int hour = 2131296574;
+			public const int horizontal = 2131296574;
 			
 			// aapt resource value: 0x7F09013F
-			public const int icon = 2131296575;
+			public const int hour = 2131296575;
 			
 			// aapt resource value: 0x7F090140
-			public const int icon_group = 2131296576;
+			public const int icon = 2131296576;
 			
 			// aapt resource value: 0x7F090141
-			public const int id_btn_join_qq_group = 2131296577;
+			public const int icon_group = 2131296577;
 			
 			// aapt resource value: 0x7F090142
-			public const int id_interface_self_test_forgetPassword = 2131296578;
+			public const int id_btn_join_qq_group = 2131296578;
 			
 			// aapt resource value: 0x7F090143
-			public const int id_interface_self_test_openCloudPage = 2131296579;
+			public const int id_interface_self_test_forgetPassword = 2131296579;
 			
 			// aapt resource value: 0x7F090144
-			public const int id_interface_test_forgetPassword = 2131296580;
+			public const int id_interface_self_test_openCloudPage = 2131296580;
 			
 			// aapt resource value: 0x7F090145
-			public const int id_interface_test_openCloudPage = 2131296581;
+			public const int id_interface_test_forgetPassword = 2131296581;
 			
 			// aapt resource value: 0x7F090146
-			public const int id_ll_join_qq_group = 2131296582;
+			public const int id_interface_test_openCloudPage = 2131296582;
 			
 			// aapt resource value: 0x7F090147
-			public const int id_show_stream_limit_dialog = 2131296583;
+			public const int id_ll_join_qq_group = 2131296583;
 			
 			// aapt resource value: 0x7F090148
-			public const int id_show_stream_limit_dialog2 = 2131296584;
+			public const int id_show_stream_limit_dialog = 2131296584;
 			
 			// aapt resource value: 0x7F090149
-			public const int id_tv_join_qq_group = 2131296585;
+			public const int id_show_stream_limit_dialog2 = 2131296585;
 			
 			// aapt resource value: 0x7F09014A
-			public const int ifRoom = 2131296586;
+			public const int id_tv_join_qq_group = 2131296586;
 			
 			// aapt resource value: 0x7F09014B
-			public const int image = 2131296587;
+			public const int ifRoom = 2131296587;
 			
 			// aapt resource value: 0x7F09014C
-			public const int image1 = 2131296588;
+			public const int image = 2131296588;
 			
 			// aapt resource value: 0x7F09014D
-			public const int image2 = 2131296589;
+			public const int image1 = 2131296589;
 			
 			// aapt resource value: 0x7F09014E
-			public const int image3 = 2131296590;
+			public const int image2 = 2131296590;
 			
 			// aapt resource value: 0x7F09014F
-			public const int imageBg = 2131296591;
+			public const int image3 = 2131296591;
 			
 			// aapt resource value: 0x7F090150
-			public const int image_back = 2131296592;
+			public const int imageBg = 2131296592;
 			
 			// aapt resource value: 0x7F090151
-			public const int imgAnimation = 2131296593;
+			public const int image_back = 2131296593;
 			
 			// aapt resource value: 0x7F090152
-			public const int imgLineConnectGuid = 2131296594;
+			public const int imgAnimation = 2131296594;
 			
 			// aapt resource value: 0x7F090153
-			public const int imgResetPic = 2131296595;
+			public const int imgLineConnectGuid = 2131296595;
 			
 			// aapt resource value: 0x7F090154
-			public const int img_active_cloud_video = 2131296596;
+			public const int imgResetPic = 2131296596;
 			
 			// aapt resource value: 0x7F090155
-			public const int img_area1 = 2131296597;
+			public const int img_active_cloud_video = 2131296597;
 			
 			// aapt resource value: 0x7F090156
-			public const int img_area2 = 2131296598;
+			public const int img_area1 = 2131296598;
 			
 			// aapt resource value: 0x7F090157
-			public const int img_area3 = 2131296599;
+			public const int img_area2 = 2131296599;
 			
 			// aapt resource value: 0x7F090158
-			public const int info = 2131296600;
+			public const int img_area3 = 2131296600;
 			
 			// aapt resource value: 0x7F090159
-			public const int inputLinearlayout = 2131296601;
+			public const int info = 2131296601;
 			
 			// aapt resource value: 0x7F09015A
-			public const int input_hint = 2131296602;
+			public const int inputLinearlayout = 2131296602;
 			
 			// aapt resource value: 0x7F09015B
-			public const int input_search_query = 2131296603;
+			public const int input_hint = 2131296603;
 			
 			// aapt resource value: 0x7F09015C
-			public const int input_view1 = 2131296604;
+			public const int input_search_query = 2131296604;
 			
 			// aapt resource value: 0x7F09015D
-			public const int interface_self_test_button = 2131296605;
+			public const int input_view1 = 2131296605;
 			
 			// aapt resource value: 0x7F09015E
-			public const int interface_self_test_editText = 2131296606;
+			public const int interface_self_test_button = 2131296606;
 			
 			// aapt resource value: 0x7F09015F
-			public const int interface_test_button = 2131296607;
+			public const int interface_self_test_editText = 2131296607;
 			
 			// aapt resource value: 0x7F090160
-			public const int interface_test_editText = 2131296608;
+			public const int interface_test_button = 2131296608;
 			
 			// aapt resource value: 0x7F090161
-			public const int interface_v33_self_test_button = 2131296609;
+			public const int interface_test_editText = 2131296609;
 			
 			// aapt resource value: 0x7F090162
-			public const int interface_v33_test_button = 2131296610;
+			public const int interface_v33_self_test_button = 2131296610;
 			
 			// aapt resource value: 0x7F090163
-			public const int ip_info = 2131296611;
+			public const int interface_v33_test_button = 2131296611;
 			
 			// aapt resource value: 0x7F090164
-			public const int ip_tv = 2131296612;
+			public const int ip_info = 2131296612;
 			
 			// aapt resource value: 0x7F090165
-			public const int italic = 2131296613;
+			public const int ip_tv = 2131296613;
 			
 			// aapt resource value: 0x7F090166
-			public const int item_icon = 2131296614;
+			public const int italic = 2131296614;
 			
 			// aapt resource value: 0x7F090167
-			public const int item_icon_area = 2131296615;
+			public const int item_icon = 2131296615;
 			
 			// aapt resource value: 0x7F090168
-			public const int item_offline = 2131296616;
+			public const int item_icon_area = 2131296616;
 			
 			// aapt resource value: 0x7F090169
-			public const int item_play_btn = 2131296617;
+			public const int item_offline = 2131296617;
 			
 			// aapt resource value: 0x7F09016A
-			public const int item_touch_helper_previous_elevation = 2131296618;
-			
-			// aapt resource value: 0x7F09016E
-			public const int labelbelongType = 2131296622;
+			public const int item_play_btn = 2131296618;
 			
 			// aapt resource value: 0x7F09016B
-			public const int labelFilter = 2131296619;
+			public const int item_touch_helper_previous_elevation = 2131296619;
 			
 			// aapt resource value: 0x7F09016C
-			public const int labelLocation = 2131296620;
-			
-			// aapt resource value: 0x7F09016D
-			public const int labelSort = 2131296621;
-			
-			// aapt resource value: 0x7F09016F
-			public const int largeLabel = 2131296623;
+			public const int iv_more = 2131296620;
 			
 			// aapt resource value: 0x7F090170
-			public const int latitude = 2131296624;
+			public const int labelbelongType = 2131296624;
+			
+			// aapt resource value: 0x7F09016D
+			public const int labelFilter = 2131296621;
+			
+			// aapt resource value: 0x7F09016E
+			public const int labelLocation = 2131296622;
+			
+			// aapt resource value: 0x7F09016F
+			public const int labelSort = 2131296623;
 			
 			// aapt resource value: 0x7F090171
-			public const int launch_product_query = 2131296625;
+			public const int largeLabel = 2131296625;
 			
 			// aapt resource value: 0x7F090172
-			public const int layout = 2131296626;
+			public const int latitude = 2131296626;
 			
 			// aapt resource value: 0x7F090173
-			public const int layout_more_ly = 2131296627;
+			public const int launch_product_query = 2131296627;
 			
 			// aapt resource value: 0x7F090174
-			public const int left = 2131296628;
+			public const int layout = 2131296628;
 			
 			// aapt resource value: 0x7F090175
-			public const int likedCount = 2131296629;
+			public const int layout_more_ly = 2131296629;
 			
 			// aapt resource value: 0x7F090176
-			public const int line1 = 2131296630;
+			public const int left = 2131296630;
 			
 			// aapt resource value: 0x7F090177
-			public const int line3 = 2131296631;
+			public const int likedCount = 2131296631;
 			
 			// aapt resource value: 0x7F090178
-			public const int lineConnectContainer = 2131296632;
+			public const int line1 = 2131296632;
 			
 			// aapt resource value: 0x7F090179
-			public const int listMode = 2131296633;
+			public const int line3 = 2131296633;
 			
 			// aapt resource value: 0x7F09017A
-			public const int listView = 2131296634;
+			public const int lineConnectContainer = 2131296634;
 			
 			// aapt resource value: 0x7F09017B
-			public const int listView_device = 2131296635;
-			
-			// aapt resource value: 0x7F09017F
-			public const int listview_line = 2131296639;
-			
-			// aapt resource value: 0x7F090180
-			public const int listview_line_device = 2131296640;
+			public const int listMode = 2131296635;
 			
 			// aapt resource value: 0x7F09017C
-			public const int list_camera = 2131296636;
+			public const int listView = 2131296636;
 			
 			// aapt resource value: 0x7F09017D
-			public const int list_device = 2131296637;
-			
-			// aapt resource value: 0x7F09017E
-			public const int list_item = 2131296638;
+			public const int listView_device = 2131296637;
 			
 			// aapt resource value: 0x7F090181
-			public const int llyCloundService = 2131296641;
+			public const int listview_line = 2131296641;
 			
 			// aapt resource value: 0x7F090182
-			public const int llyStatus1 = 2131296642;
+			public const int listview_line_device = 2131296642;
+			
+			// aapt resource value: 0x7F09017E
+			public const int list_camera = 2131296638;
+			
+			// aapt resource value: 0x7F09017F
+			public const int list_device = 2131296639;
+			
+			// aapt resource value: 0x7F090180
+			public const int list_item = 2131296640;
 			
 			// aapt resource value: 0x7F090183
-			public const int llyStatus2 = 2131296643;
+			public const int llyCloundService = 2131296643;
 			
 			// aapt resource value: 0x7F090184
-			public const int llyStatus3 = 2131296644;
+			public const int llyStatus1 = 2131296644;
 			
 			// aapt resource value: 0x7F090185
-			public const int loadingTextView = 2131296645;
+			public const int llyStatus2 = 2131296645;
 			
 			// aapt resource value: 0x7F090186
-			public const int loading_pb_ly = 2131296646;
+			public const int llyStatus3 = 2131296646;
 			
 			// aapt resource value: 0x7F090187
-			public const int loading_play_btn = 2131296647;
+			public const int loadingTextView = 2131296647;
 			
 			// aapt resource value: 0x7F090188
-			public const int loading_text = 2131296648;
+			public const int loading_pb_ly = 2131296648;
 			
 			// aapt resource value: 0x7F090189
-			public const int loading_view = 2131296649;
+			public const int loading_play_btn = 2131296649;
 			
 			// aapt resource value: 0x7F09018A
-			public const int local_alarm1 = 2131296650;
+			public const int loading_text = 2131296650;
 			
 			// aapt resource value: 0x7F09018B
-			public const int local_alarm2 = 2131296651;
+			public const int loading_view = 2131296651;
 			
 			// aapt resource value: 0x7F09018C
-			public const int local_alarm3 = 2131296652;
+			public const int local_alarm1 = 2131296652;
 			
 			// aapt resource value: 0x7F09018D
-			public const int local_l1 = 2131296653;
+			public const int local_alarm2 = 2131296653;
 			
 			// aapt resource value: 0x7F09018E
-			public const int local_l2 = 2131296654;
+			public const int local_alarm3 = 2131296654;
 			
 			// aapt resource value: 0x7F09018F
-			public const int local_l3 = 2131296655;
+			public const int local_l1 = 2131296655;
 			
 			// aapt resource value: 0x7F090190
-			public const int local_realplay_btn = 2131296656;
+			public const int local_l2 = 2131296656;
 			
 			// aapt resource value: 0x7F090191
-			public const int local_time_part1 = 2131296657;
+			public const int local_l3 = 2131296657;
 			
 			// aapt resource value: 0x7F090192
-			public const int local_time_part2 = 2131296658;
+			public const int local_realplay_btn = 2131296658;
 			
 			// aapt resource value: 0x7F090193
-			public const int local_time_part3 = 2131296659;
+			public const int local_time_part1 = 2131296659;
 			
 			// aapt resource value: 0x7F090194
-			public const int login_name = 2131296660;
+			public const int local_time_part2 = 2131296660;
 			
 			// aapt resource value: 0x7F090195
-			public const int login_pwd = 2131296661;
+			public const int local_time_part3 = 2131296661;
 			
 			// aapt resource value: 0x7F090196
-			public const int longitude = 2131296662;
+			public const int login_name = 2131296662;
 			
 			// aapt resource value: 0x7F090197
-			public const int main_layout = 2131296663;
+			public const int login_pwd = 2131296663;
 			
 			// aapt resource value: 0x7F090198
-			public const int masked = 2131296664;
+			public const int longitude = 2131296664;
+			
+			// aapt resource value: 0x7F090199
+			public const int main_layout = 2131296665;
+			
+			// aapt resource value: 0x7F09019A
+			public const int masked = 2131296666;
 			
 			// aapt resource value: 0x7F090009
 			public const int MatchLayout = 2131296265;
 			
-			// aapt resource value: 0x7F090199
-			public const int matte_image = 2131296665;
-			
-			// aapt resource value: 0x7F09019A
-			public const int media_actions = 2131296666;
-			
 			// aapt resource value: 0x7F09019B
-			public const int menu_layout = 2131296667;
+			public const int matte_image = 2131296667;
 			
 			// aapt resource value: 0x7F09019C
-			public const int menu_play = 2131296668;
+			public const int media_actions = 2131296668;
 			
 			// aapt resource value: 0x7F09019D
-			public const int message = 2131296669;
+			public const int menu_layout = 2131296669;
 			
 			// aapt resource value: 0x7F09019E
-			public const int message1 = 2131296670;
+			public const int menu_play = 2131296670;
 			
 			// aapt resource value: 0x7F09019F
-			public const int message2 = 2131296671;
+			public const int message = 2131296671;
 			
 			// aapt resource value: 0x7F0901A0
-			public const int message_check = 2131296672;
+			public const int message1 = 2131296672;
 			
 			// aapt resource value: 0x7F0901A1
-			public const int message_content = 2131296673;
+			public const int message2 = 2131296673;
 			
 			// aapt resource value: 0x7F0901A2
-			public const int message_from = 2131296674;
+			public const int message_check = 2131296674;
 			
 			// aapt resource value: 0x7F0901A3
-			public const int message_from_tip = 2131296675;
+			public const int message_content = 2131296675;
 			
 			// aapt resource value: 0x7F0901A4
-			public const int message_image = 2131296676;
+			public const int message_from = 2131296676;
 			
 			// aapt resource value: 0x7F0901A5
-			public const int message_image_layout = 2131296677;
+			public const int message_from_tip = 2131296677;
 			
 			// aapt resource value: 0x7F0901A6
-			public const int message_image_progress = 2131296678;
+			public const int message_image = 2131296678;
 			
 			// aapt resource value: 0x7F0901A7
-			public const int message_layout = 2131296679;
+			public const int message_image_layout = 2131296679;
 			
 			// aapt resource value: 0x7F0901A8
-			public const int message_list = 2131296680;
+			public const int message_image_progress = 2131296680;
 			
 			// aapt resource value: 0x7F0901A9
-			public const int message_num_tv = 2131296681;
+			public const int message_layout = 2131296681;
 			
 			// aapt resource value: 0x7F0901AA
-			public const int message_play_layout = 2131296682;
+			public const int message_list = 2131296682;
 			
 			// aapt resource value: 0x7F0901AB
-			public const int message_time = 2131296683;
+			public const int message_num_tv = 2131296683;
 			
 			// aapt resource value: 0x7F0901AC
-			public const int message_type = 2131296684;
+			public const int message_play_layout = 2131296684;
 			
 			// aapt resource value: 0x7F0901AD
-			public const int message_unread = 2131296685;
+			public const int message_time = 2131296685;
 			
 			// aapt resource value: 0x7F0901AE
-			public const int message_video_layout = 2131296686;
+			public const int message_type = 2131296686;
+			
+			// aapt resource value: 0x7F0901AF
+			public const int message_unread = 2131296687;
+			
+			// aapt resource value: 0x7F0901B0
+			public const int message_video_layout = 2131296688;
 			
 			// aapt resource value: 0x7F090008
 			public const int META = 2131296264;
 			
-			// aapt resource value: 0x7F0901B0
-			public const int middle = 2131296688;
-			
-			// aapt resource value: 0x7F0901AF
-			public const int mid_vertical_view = 2131296687;
+			// aapt resource value: 0x7F0901B2
+			public const int middle = 2131296690;
 			
 			// aapt resource value: 0x7F0901B1
-			public const int min = 2131296689;
-			
-			// aapt resource value: 0x7F0901B2
-			public const int mini = 2131296690;
+			public const int mid_vertical_view = 2131296689;
 			
 			// aapt resource value: 0x7F0901B3
-			public const int mirror_line = 2131296691;
+			public const int min = 2131296691;
 			
 			// aapt resource value: 0x7F0901B4
-			public const int modify_password_layout = 2131296692;
+			public const int mini = 2131296692;
 			
 			// aapt resource value: 0x7F0901B5
-			public const int month = 2131296693;
+			public const int mirror_line = 2131296693;
 			
 			// aapt resource value: 0x7F0901B6
-			public const int more_btn = 2131296694;
+			public const int modify_password_layout = 2131296694;
 			
 			// aapt resource value: 0x7F0901B7
-			public const int multiply = 2131296695;
+			public const int month = 2131296695;
 			
 			// aapt resource value: 0x7F0901B8
-			public const int myRelativeLayout = 2131296696;
+			public const int more_btn = 2131296696;
 			
 			// aapt resource value: 0x7F0901B9
-			public const int myRetry = 2131296697;
+			public const int multiply = 2131296697;
 			
 			// aapt resource value: 0x7F0901BA
-			public const int name_del = 2131296698;
+			public const int myRelativeLayout = 2131296698;
 			
 			// aapt resource value: 0x7F0901BB
-			public const int name_text = 2131296699;
+			public const int myRetry = 2131296699;
 			
 			// aapt resource value: 0x7F0901BC
-			public const int name_tv = 2131296700;
+			public const int name_del = 2131296700;
 			
 			// aapt resource value: 0x7F0901BD
-			public const int navigation_header_container = 2131296701;
+			public const int name_text = 2131296701;
 			
 			// aapt resource value: 0x7F0901BE
-			public const int never = 2131296702;
+			public const int name_tv = 2131296702;
 			
 			// aapt resource value: 0x7F0901BF
-			public const int new_password = 2131296703;
+			public const int navigation_header_container = 2131296703;
 			
 			// aapt resource value: 0x7F0901C0
-			public const int next_play_btn = 2131296704;
-			
-			// aapt resource value: 0x7F0901C8
-			public const int none = 2131296712;
-			
-			// aapt resource value: 0x7F0901C9
-			public const int normal = 2131296713;
+			public const int never = 2131296704;
 			
 			// aapt resource value: 0x7F0901C1
-			public const int noText = 2131296705;
-			
-			// aapt resource value: 0x7F0901CA
-			public const int notification_background = 2131296714;
-			
-			// aapt resource value: 0x7F0901CB
-			public const int notification_main_column = 2131296715;
-			
-			// aapt resource value: 0x7F0901CC
-			public const int notification_main_column_container = 2131296716;
-			
-			// aapt resource value: 0x7F0901CD
-			public const int novideo_img = 2131296717;
-			
-			// aapt resource value: 0x7F0901CE
-			public const int novideo_img_device = 2131296718;
+			public const int new_password = 2131296705;
 			
 			// aapt resource value: 0x7F0901C2
-			public const int no_camera_tip_ly = 2131296706;
+			public const int next_play_btn = 2131296706;
+			
+			// aapt resource value: 0x7F0901CA
+			public const int none = 2131296714;
+			
+			// aapt resource value: 0x7F0901CB
+			public const int normal = 2131296715;
 			
 			// aapt resource value: 0x7F0901C3
-			public const int no_message_button = 2131296707;
+			public const int noText = 2131296707;
 			
-			// aapt resource value: 0x7F0901C4
-			public const int no_message_layout = 2131296708;
+			// aapt resource value: 0x7F0901CC
+			public const int notification_background = 2131296716;
 			
-			// aapt resource value: 0x7F0901C5
-			public const int no_message_text = 2131296709;
+			// aapt resource value: 0x7F0901CD
+			public const int notification_main_column = 2131296717;
 			
-			// aapt resource value: 0x7F0901C6
-			public const int no_more_hint = 2131296710;
-			
-			// aapt resource value: 0x7F0901C7
-			public const int no_more_text = 2131296711;
+			// aapt resource value: 0x7F0901CE
+			public const int notification_main_column_container = 2131296718;
 			
 			// aapt resource value: 0x7F0901CF
-			public const int offline_bg = 2131296719;
+			public const int novideo_img = 2131296719;
 			
 			// aapt resource value: 0x7F0901D0
-			public const int ok_tv = 2131296720;
+			public const int novideo_img_device = 2131296720;
+			
+			// aapt resource value: 0x7F0901C4
+			public const int no_camera_tip_ly = 2131296708;
+			
+			// aapt resource value: 0x7F0901C5
+			public const int no_message_button = 2131296709;
+			
+			// aapt resource value: 0x7F0901C6
+			public const int no_message_layout = 2131296710;
+			
+			// aapt resource value: 0x7F0901C7
+			public const int no_message_text = 2131296711;
+			
+			// aapt resource value: 0x7F0901C8
+			public const int no_more_hint = 2131296712;
+			
+			// aapt resource value: 0x7F0901C9
+			public const int no_more_text = 2131296713;
 			
 			// aapt resource value: 0x7F0901D1
-			public const int options1 = 2131296721;
+			public const int offline_bg = 2131296721;
 			
 			// aapt resource value: 0x7F0901D2
-			public const int options2 = 2131296722;
+			public const int ok_tv = 2131296722;
 			
 			// aapt resource value: 0x7F0901D3
-			public const int options3 = 2131296723;
+			public const int options1 = 2131296723;
 			
 			// aapt resource value: 0x7F0901D4
-			public const int optionspicker = 2131296724;
+			public const int options2 = 2131296724;
 			
 			// aapt resource value: 0x7F0901D5
-			public const int outmost_container = 2131296725;
-			
-			// aapt resource value: 0x7F0901D7
-			public const int pager = 2131296727;
-			
-			// aapt resource value: 0x7F0901D8
-			public const int pager_tab_strip = 2131296728;
+			public const int options3 = 2131296725;
 			
 			// aapt resource value: 0x7F0901D6
-			public const int page_container = 2131296726;
+			public const int optionspicker = 2131296726;
+			
+			// aapt resource value: 0x7F0901D7
+			public const int outmost_container = 2131296727;
 			
 			// aapt resource value: 0x7F0901D9
-			public const int parallax = 2131296729;
+			public const int pager = 2131296729;
 			
 			// aapt resource value: 0x7F0901DA
-			public const int parentPanel = 2131296730;
+			public const int pager_tab_strip = 2131296730;
+			
+			// aapt resource value: 0x7F0901D8
+			public const int page_container = 2131296728;
 			
 			// aapt resource value: 0x7F0901DB
-			public const int parent_matrix = 2131296731;
+			public const int parallax = 2131296731;
 			
 			// aapt resource value: 0x7F0901DC
-			public const int passwordETV = 2131296732;
+			public const int parentPanel = 2131296732;
 			
 			// aapt resource value: 0x7F0901DD
-			public const int pb_notlist_title_bar_landscape = 2131296733;
+			public const int parent_matrix = 2131296733;
 			
 			// aapt resource value: 0x7F0901DE
-			public const int pb_play_loading = 2131296734;
+			public const int passwordETV = 2131296734;
 			
 			// aapt resource value: 0x7F0901DF
-			public const int pb_search_content_tab = 2131296735;
+			public const int pb_notlist_title_bar_landscape = 2131296735;
 			
 			// aapt resource value: 0x7F0901E0
-			public const int pb_search_tab_btn_cloud = 2131296736;
+			public const int pb_play_loading = 2131296736;
 			
 			// aapt resource value: 0x7F0901E1
-			public const int pb_search_tab_btn_device = 2131296737;
+			public const int pb_search_content_tab = 2131296737;
 			
 			// aapt resource value: 0x7F0901E2
-			public const int pb_title_bar_landscape = 2131296738;
+			public const int pb_search_tab_btn_cloud = 2131296738;
 			
 			// aapt resource value: 0x7F0901E3
-			public const int phone_et = 2131296739;
+			public const int pb_search_tab_btn_device = 2131296739;
 			
 			// aapt resource value: 0x7F0901E4
-			public const int phone_ly = 2131296740;
+			public const int pb_title_bar_landscape = 2131296740;
 			
 			// aapt resource value: 0x7F0901E5
-			public const int phone_lyt = 2131296741;
+			public const int phone_et = 2131296741;
 			
 			// aapt resource value: 0x7F0901E6
-			public const int pin = 2131296742;
-			
-			// aapt resource value: 0x7F0901E8
-			public const int platform_login_btn = 2131296744;
+			public const int phone_ly = 2131296742;
 			
 			// aapt resource value: 0x7F0901E7
-			public const int plat_tv = 2131296743;
+			public const int phone_lyt = 2131296743;
 			
-			// aapt resource value: 0x7F0901E9
-			public const int play_video_layout = 2131296745;
+			// aapt resource value: 0x7F0901E8
+			public const int pin = 2131296744;
 			
 			// aapt resource value: 0x7F0901EA
-			public const int preview_view = 2131296746;
+			public const int platform_login_btn = 2131296746;
 			
-			// aapt resource value: 0x7F0901EF
-			public const int progressbar = 2131296751;
+			// aapt resource value: 0x7F0901E9
+			public const int plat_tv = 2131296745;
 			
 			// aapt resource value: 0x7F0901EB
-			public const int progress_area = 2131296747;
+			public const int play_video_layout = 2131296747;
 			
 			// aapt resource value: 0x7F0901EC
-			public const int progress_circular = 2131296748;
-			
-			// aapt resource value: 0x7F0901ED
-			public const int progress_horizontal = 2131296749;
-			
-			// aapt resource value: 0x7F0901EE
-			public const int progress_seekbar = 2131296750;
-			
-			// aapt resource value: 0x7F0901F0
-			public const int ptz_bottom_btn = 2131296752;
+			public const int preview_view = 2131296748;
 			
 			// aapt resource value: 0x7F0901F1
-			public const int ptz_close_btn = 2131296753;
+			public const int progressbar = 2131296753;
+			
+			// aapt resource value: 0x7F0901ED
+			public const int progress_area = 2131296749;
+			
+			// aapt resource value: 0x7F0901EE
+			public const int progress_circular = 2131296750;
+			
+			// aapt resource value: 0x7F0901EF
+			public const int progress_horizontal = 2131296751;
+			
+			// aapt resource value: 0x7F0901F0
+			public const int progress_seekbar = 2131296752;
 			
 			// aapt resource value: 0x7F0901F2
-			public const int ptz_control_ly = 2131296754;
+			public const int ptz_bottom_btn = 2131296754;
 			
 			// aapt resource value: 0x7F0901F3
-			public const int ptz_flip_btn = 2131296755;
+			public const int ptz_close_btn = 2131296755;
 			
 			// aapt resource value: 0x7F0901F4
-			public const int ptz_left_btn = 2131296756;
+			public const int ptz_control_ly = 2131296756;
 			
 			// aapt resource value: 0x7F0901F5
-			public const int ptz_right_btn = 2131296757;
+			public const int ptz_flip_btn = 2131296757;
 			
 			// aapt resource value: 0x7F0901F6
-			public const int ptz_top_btn = 2131296758;
+			public const int ptz_left_btn = 2131296758;
 			
 			// aapt resource value: 0x7F0901F7
-			public const int quality_balanced_btn = 2131296759;
+			public const int ptz_right_btn = 2131296759;
 			
 			// aapt resource value: 0x7F0901F8
-			public const int quality_close_btn = 2131296760;
+			public const int ptz_top_btn = 2131296760;
 			
 			// aapt resource value: 0x7F0901F9
-			public const int quality_flunet_btn = 2131296761;
+			public const int quality_balanced_btn = 2131296761;
 			
 			// aapt resource value: 0x7F0901FA
-			public const int quality_hd_btn = 2131296762;
+			public const int quality_close_btn = 2131296762;
 			
 			// aapt resource value: 0x7F0901FB
-			public const int quality_line = 2131296763;
+			public const int quality_flunet_btn = 2131296763;
 			
 			// aapt resource value: 0x7F0901FC
-			public const int quality_super_hd_btn = 2131296764;
-			
-			// aapt resource value: 0x7F0901FE
-			public const int queryingCameraRyt = 2131296766;
-			
-			// aapt resource value: 0x7F0901FF
-			public const int querying_camera_tv = 2131296767;
+			public const int quality_hd_btn = 2131296764;
 			
 			// aapt resource value: 0x7F0901FD
-			public const int query_exception_ly = 2131296765;
+			public const int quality_line = 2131296765;
+			
+			// aapt resource value: 0x7F0901FE
+			public const int quality_super_hd_btn = 2131296766;
 			
 			// aapt resource value: 0x7F090200
-			public const int quit = 2131296768;
+			public const int queryingCameraRyt = 2131296768;
 			
 			// aapt resource value: 0x7F090201
-			public const int radio = 2131296769;
+			public const int querying_camera_tv = 2131296769;
+			
+			// aapt resource value: 0x7F0901FF
+			public const int query_exception_ly = 2131296767;
 			
 			// aapt resource value: 0x7F090202
-			public const int range = 2131296770;
+			public const int quit = 2131296770;
 			
 			// aapt resource value: 0x7F090203
-			public const int rangeSort = 2131296771;
+			public const int radio = 2131296771;
 			
 			// aapt resource value: 0x7F090204
-			public const int rate_16x = 2131296772;
+			public const int range = 2131296772;
 			
 			// aapt resource value: 0x7F090205
-			public const int rate_1x = 2131296773;
+			public const int rangeSort = 2131296773;
 			
 			// aapt resource value: 0x7F090206
-			public const int rate_4x = 2131296774;
+			public const int rate_16x = 2131296774;
 			
 			// aapt resource value: 0x7F090207
-			public const int rate_8x = 2131296775;
-			
-			// aapt resource value: 0x7F090209
-			public const int read_button = 2131296777;
-			
-			// aapt resource value: 0x7F09020A
-			public const int realplay_area = 2131296778;
-			
-			// aapt resource value: 0x7F09020B
-			public const int realplay_back_btn = 2131296779;
-			
-			// aapt resource value: 0x7F09020C
-			public const int realplay_capture_iv = 2131296780;
-			
-			// aapt resource value: 0x7F09020D
-			public const int realplay_capture_rl = 2131296781;
-			
-			// aapt resource value: 0x7F09020E
-			public const int realplay_capture_watermark_iv = 2131296782;
-			
-			// aapt resource value: 0x7F09020F
-			public const int realplay_control_bar = 2131296783;
-			
-			// aapt resource value: 0x7F090210
-			public const int realplay_control_rl = 2131296784;
-			
-			// aapt resource value: 0x7F090211
-			public const int realplay_display_view = 2131296785;
-			
-			// aapt resource value: 0x7F090212
-			public const int realplay_flow_tv = 2131296786;
-			
-			// aapt resource value: 0x7F090213
-			public const int realplay_full_anim_btn = 2131296787;
-			
-			// aapt resource value: 0x7F090214
-			public const int realplay_full_flow_ly = 2131296788;
-			
-			// aapt resource value: 0x7F090215
-			public const int realplay_full_flow_tv = 2131296789;
-			
-			// aapt resource value: 0x7F090216
-			public const int realplay_full_operate_bar = 2131296790;
-			
-			// aapt resource value: 0x7F090217
-			public const int realplay_full_operate_layout = 2131296791;
-			
-			// aapt resource value: 0x7F090218
-			public const int realplay_full_play_btn = 2131296792;
-			
-			// aapt resource value: 0x7F090219
-			public const int realplay_full_previously_btn = 2131296793;
-			
-			// aapt resource value: 0x7F09021A
-			public const int realplay_full_ptz_anim_btn = 2131296794;
-			
-			// aapt resource value: 0x7F09021B
-			public const int realplay_full_ptz_btn = 2131296795;
-			
-			// aapt resource value: 0x7F09021C
-			public const int realplay_full_ptz_prompt_iv = 2131296796;
-			
-			// aapt resource value: 0x7F09021D
-			public const int realplay_full_rate_tv = 2131296797;
-			
-			// aapt resource value: 0x7F09021E
-			public const int realplay_full_sound_btn = 2131296798;
-			
-			// aapt resource value: 0x7F09021F
-			public const int realplay_full_talk_anim_btn = 2131296799;
-			
-			// aapt resource value: 0x7F090220
-			public const int realplay_full_talk_btn = 2131296800;
-			
-			// aapt resource value: 0x7F090221
-			public const int realplay_full_video_btn = 2131296801;
-			
-			// aapt resource value: 0x7F090222
-			public const int realplay_full_video_container = 2131296802;
-			
-			// aapt resource value: 0x7F090223
-			public const int realplay_full_video_start_btn = 2131296803;
-			
-			// aapt resource value: 0x7F090224
-			public const int realplay_loading = 2131296804;
-			
-			// aapt resource value: 0x7F090225
-			public const int realplay_loading_rl = 2131296805;
-			
-			// aapt resource value: 0x7F090226
-			public const int realplay_operate_bar = 2131296806;
-			
-			// aapt resource value: 0x7F090227
-			public const int realplay_operate_bar2 = 2131296807;
-			
-			// aapt resource value: 0x7F090228
-			public const int realplay_operate_ly = 2131296808;
-			
-			// aapt resource value: 0x7F090229
-			public const int realplay_operate_ly2 = 2131296809;
-			
-			// aapt resource value: 0x7F09022C
-			public const int realplay_pages_gallery = 2131296812;
-			
-			// aapt resource value: 0x7F09022A
-			public const int realplay_page_anim_iv = 2131296810;
-			
-			// aapt resource value: 0x7F09022B
-			public const int realplay_page_ly = 2131296811;
-			
-			// aapt resource value: 0x7F09022D
-			public const int realplay_play_btn = 2131296813;
-			
-			// aapt resource value: 0x7F09022E
-			public const int realplay_play_iv = 2131296814;
-			
-			// aapt resource value: 0x7F09022F
-			public const int realplay_play_rl = 2131296815;
-			
-			// aapt resource value: 0x7F090230
-			public const int realplay_previously_btn = 2131296816;
-			
-			// aapt resource value: 0x7F090231
-			public const int realplay_previously_btn2 = 2131296817;
-			
-			// aapt resource value: 0x7F090232
-			public const int realplay_previously_btn_ly = 2131296818;
-			
-			// aapt resource value: 0x7F090233
-			public const int realplay_previously_btn_ly2 = 2131296819;
-			
-			// aapt resource value: 0x7F090234
-			public const int realplay_privacy_btn = 2131296820;
-			
-			// aapt resource value: 0x7F090235
-			public const int realplay_privacy_btn2 = 2131296821;
-			
-			// aapt resource value: 0x7F090236
-			public const int realplay_privacy_btn_ly = 2131296822;
-			
-			// aapt resource value: 0x7F090237
-			public const int realplay_privacy_btn_ly2 = 2131296823;
-			
-			// aapt resource value: 0x7F090238
-			public const int realplay_privacy_ly = 2131296824;
-			
-			// aapt resource value: 0x7F090239
-			public const int realplay_privacy_tv = 2131296825;
-			
-			// aapt resource value: 0x7F09023A
-			public const int realplay_privacy_tv2 = 2131296826;
-			
-			// aapt resource value: 0x7F09023B
-			public const int realplay_prompt_rl = 2131296827;
-			
-			// aapt resource value: 0x7F09023C
-			public const int realplay_ptz_btn = 2131296828;
-			
-			// aapt resource value: 0x7F09023D
-			public const int realplay_ptz_btn2 = 2131296829;
-			
-			// aapt resource value: 0x7F09023E
-			public const int realplay_ptz_btn_ly = 2131296830;
-			
-			// aapt resource value: 0x7F09023F
-			public const int realplay_ptz_btn_ly2 = 2131296831;
-			
-			// aapt resource value: 0x7F090240
-			public const int realplay_ptz_direction_iv = 2131296832;
-			
-			// aapt resource value: 0x7F090241
-			public const int realplay_quality_btn = 2131296833;
-			
-			// aapt resource value: 0x7F090242
-			public const int realplay_ratio_tv = 2131296834;
-			
-			// aapt resource value: 0x7F090243
-			public const int realplay_record_iv = 2131296835;
-			
-			// aapt resource value: 0x7F090244
-			public const int realplay_record_ly = 2131296836;
-			
-			// aapt resource value: 0x7F090245
-			public const int realplay_record_tv = 2131296837;
-			
-			// aapt resource value: 0x7F090246
-			public const int realplay_sound_btn = 2131296838;
-			
-			// aapt resource value: 0x7F090247
-			public const int realplay_ssl_btn = 2131296839;
-			
-			// aapt resource value: 0x7F090248
-			public const int realplay_ssl_btn2 = 2131296840;
-			
-			// aapt resource value: 0x7F090249
-			public const int realplay_ssl_btn_ly = 2131296841;
-			
-			// aapt resource value: 0x7F09024A
-			public const int realplay_ssl_btn_ly2 = 2131296842;
-			
-			// aapt resource value: 0x7F09024B
-			public const int realplay_ssl_btn_rl = 2131296843;
-			
-			// aapt resource value: 0x7F09024C
-			public const int realplay_ssl_btn_rl2 = 2131296844;
-			
-			// aapt resource value: 0x7F09024D
-			public const int realplay_ssl_progress = 2131296845;
-			
-			// aapt resource value: 0x7F09024E
-			public const int realplay_ssl_progress2 = 2131296846;
-			
-			// aapt resource value: 0x7F09024F
-			public const int realplay_ssl_tv = 2131296847;
-			
-			// aapt resource value: 0x7F090250
-			public const int realplay_ssl_tv2 = 2131296848;
-			
-			// aapt resource value: 0x7F090251
-			public const int realplay_stop_btn = 2131296849;
-			
-			// aapt resource value: 0x7F090252
-			public const int realplay_sv = 2131296850;
-			
-			// aapt resource value: 0x7F090253
-			public const int realplay_talk_btn = 2131296851;
-			
-			// aapt resource value: 0x7F090254
-			public const int realplay_talk_btn2 = 2131296852;
-			
-			// aapt resource value: 0x7F090255
-			public const int realplay_talk_btn_ly = 2131296853;
-			
-			// aapt resource value: 0x7F090256
-			public const int realplay_talk_btn_ly2 = 2131296854;
-			
-			// aapt resource value: 0x7F090257
-			public const int realplay_tip_tv = 2131296855;
-			
-			// aapt resource value: 0x7F090258
-			public const int realplay_title_tv = 2131296856;
-			
-			// aapt resource value: 0x7F090259
-			public const int realplay_top_bar = 2131296857;
-			
-			// aapt resource value: 0x7F09025A
-			public const int realplay_video_btn = 2131296858;
-			
-			// aapt resource value: 0x7F09025B
-			public const int realplay_video_btn2 = 2131296859;
-			
-			// aapt resource value: 0x7F09025C
-			public const int realplay_video_container = 2131296860;
-			
-			// aapt resource value: 0x7F09025D
-			public const int realplay_video_container2 = 2131296861;
-			
-			// aapt resource value: 0x7F09025E
-			public const int realplay_video_container_ly = 2131296862;
-			
-			// aapt resource value: 0x7F09025F
-			public const int realplay_video_container_ly2 = 2131296863;
-			
-			// aapt resource value: 0x7F090260
-			public const int realplay_video_start_btn = 2131296864;
-			
-			// aapt resource value: 0x7F090261
-			public const int realplay_video_start_btn2 = 2131296865;
-			
-			// aapt resource value: 0x7F090262
-			public const int realplay_waiting_lr = 2131296866;
-			
-			// aapt resource value: 0x7F090263
-			public const int realplay_watting_pb = 2131296867;
-			
-			// aapt resource value: 0x7F090264
-			public const int realplay_watting_tv = 2131296868;
-			
-			// aapt resource value: 0x7F090265
-			public const int realplay_wnd_sv = 2131296869;
-			
-			// aapt resource value: 0x7F090266
-			public const int recycler_view = 2131296870;
-			
-			// aapt resource value: 0x7F090267
-			public const int refresh_button = 2131296871;
-			
-			// aapt resource value: 0x7F090268
-			public const int refresh_layout = 2131296872;
-			
-			// aapt resource value: 0x7F090269
-			public const int refresh_tip = 2131296873;
-			
-			// aapt resource value: 0x7F090275
-			public const int remoteplayback_begin_time_tv = 2131296885;
-			
-			// aapt resource value: 0x7F090276
-			public const int remoteplayback_capture_iv = 2131296886;
-			
-			// aapt resource value: 0x7F090277
-			public const int remoteplayback_capture_rl = 2131296887;
-			
-			// aapt resource value: 0x7F090278
-			public const int remoteplayback_capture_watermark_iv = 2131296888;
-			
-			// aapt resource value: 0x7F090279
-			public const int remoteplayback_control_rl = 2131296889;
-			
-			// aapt resource value: 0x7F09027A
-			public const int remoteplayback_end_time_tv = 2131296890;
-			
-			// aapt resource value: 0x7F09027B
-			public const int remoteplayback_file_time_bar = 2131296891;
-			
-			// aapt resource value: 0x7F09027C
-			public const int remoteplayback_flow_tv = 2131296892;
-			
-			// aapt resource value: 0x7F09027D
-			public const int remoteplayback_full_down_btn = 2131296893;
-			
-			// aapt resource value: 0x7F09027E
-			public const int remoteplayback_full_flow_ly = 2131296894;
-			
-			// aapt resource value: 0x7F09027F
-			public const int remoteplayback_full_flow_tv = 2131296895;
-			
-			// aapt resource value: 0x7F090280
-			public const int remoteplayback_full_operate_bar = 2131296896;
-			
-			// aapt resource value: 0x7F090281
-			public const int remoteplayback_full_play_btn = 2131296897;
-			
-			// aapt resource value: 0x7F090282
-			public const int remoteplayback_full_previously_btn = 2131296898;
-			
-			// aapt resource value: 0x7F090283
-			public const int remoteplayback_full_rate_tv = 2131296899;
-			
-			// aapt resource value: 0x7F090284
-			public const int remoteplayback_full_sound_btn = 2131296900;
-			
-			// aapt resource value: 0x7F090285
-			public const int remoteplayback_full_video_btn = 2131296901;
-			
-			// aapt resource value: 0x7F090286
-			public const int remoteplayback_full_video_container = 2131296902;
-			
-			// aapt resource value: 0x7F090287
-			public const int remoteplayback_full_video_start_btn = 2131296903;
-			
-			// aapt resource value: 0x7F090288
-			public const int remoteplayback_loading_iv = 2131296904;
-			
-			// aapt resource value: 0x7F090289
-			public const int remoteplayback_loading_ly = 2131296905;
-			
-			// aapt resource value: 0x7F09028A
-			public const int remoteplayback_loading_pb_ly = 2131296906;
-			
-			// aapt resource value: 0x7F09028B
-			public const int remoteplayback_loading_play_btn = 2131296907;
-			
-			// aapt resource value: 0x7F09028C
-			public const int remoteplayback_loading_tv = 2131296908;
-			
-			// aapt resource value: 0x7F09028D
-			public const int remoteplayback_operate_bar = 2131296909;
-			
-			// aapt resource value: 0x7F09028E
-			public const int remoteplayback_page_ly = 2131296910;
-			
-			// aapt resource value: 0x7F09028F
-			public const int remoteplayback_play_btn = 2131296911;
-			
-			// aapt resource value: 0x7F090290
-			public const int remoteplayback_play_rl = 2131296912;
-			
-			// aapt resource value: 0x7F090291
-			public const int remoteplayback_previously_btn = 2131296913;
-			
-			// aapt resource value: 0x7F090294
-			public const int remoteplayback_progressbar = 2131296916;
-			
-			// aapt resource value: 0x7F090292
-			public const int remoteplayback_progress_ly = 2131296914;
-			
-			// aapt resource value: 0x7F090293
-			public const int remoteplayback_progress_seekbar = 2131296915;
-			
-			// aapt resource value: 0x7F090295
-			public const int remoteplayback_ratio_tv = 2131296917;
-			
-			// aapt resource value: 0x7F090296
-			public const int remoteplayback_record_iv = 2131296918;
-			
-			// aapt resource value: 0x7F090297
-			public const int remoteplayback_record_ly = 2131296919;
-			
-			// aapt resource value: 0x7F090298
-			public const int remoteplayback_record_tv = 2131296920;
-			
-			// aapt resource value: 0x7F090299
-			public const int remoteplayback_replay_btn = 2131296921;
-			
-			// aapt resource value: 0x7F09029A
-			public const int remoteplayback_small_previously_btn = 2131296922;
-			
-			// aapt resource value: 0x7F09029B
-			public const int remoteplayback_small_video_btn = 2131296923;
-			
-			// aapt resource value: 0x7F09029C
-			public const int remoteplayback_small_video_container = 2131296924;
-			
-			// aapt resource value: 0x7F09029D
-			public const int remoteplayback_small_video_start_btn = 2131296925;
-			
-			// aapt resource value: 0x7F09029E
-			public const int remoteplayback_sound_btn = 2131296926;
-			
-			// aapt resource value: 0x7F09029F
-			public const int remoteplayback_sv = 2131296927;
-			
-			// aapt resource value: 0x7F0902A1
-			public const int remoteplayback_timebar = 2131296929;
-			
-			// aapt resource value: 0x7F0902A2
-			public const int remoteplayback_timebar_rl = 2131296930;
-			
-			// aapt resource value: 0x7F0902A0
-			public const int remoteplayback_time_tv = 2131296928;
-			
-			// aapt resource value: 0x7F0902A3
-			public const int remoteplayback_tip_tv = 2131296931;
-			
-			// aapt resource value: 0x7F0902A4
-			public const int remoteplayback_video_btn = 2131296932;
-			
-			// aapt resource value: 0x7F0902A5
-			public const int remoteplayback_video_container = 2131296933;
-			
-			// aapt resource value: 0x7F0902A6
-			public const int remoteplayback_video_start_btn = 2131296934;
-			
-			// aapt resource value: 0x7F09026A
-			public const int remote_list_page = 2131296874;
-			
-			// aapt resource value: 0x7F09026B
-			public const int remote_loading_buffer_tv = 2131296875;
-			
-			// aapt resource value: 0x7F09026C
-			public const int remote_loading_iv = 2131296876;
-			
-			// aapt resource value: 0x7F09026D
-			public const int remote_playback_area = 2131296877;
-			
-			// aapt resource value: 0x7F09026E
-			public const int remote_playback_capture_btn = 2131296878;
-			
-			// aapt resource value: 0x7F09026F
-			public const int remote_playback_download_btn = 2131296879;
-			
-			// aapt resource value: 0x7F090270
-			public const int remote_playback_flow_tv = 2131296880;
-			
-			// aapt resource value: 0x7F090271
-			public const int remote_playback_pause_btn = 2131296881;
-			
-			// aapt resource value: 0x7F090272
-			public const int remote_playback_sound_btn = 2131296882;
-			
-			// aapt resource value: 0x7F090273
-			public const int remote_playback_video_recording_btn = 2131296883;
-			
-			// aapt resource value: 0x7F090274
-			public const int remote_playback_wnd_sv = 2131296884;
-			
-			// aapt resource value: 0x7F0902A7
-			public const int render_texture_view = 2131296935;
-			
-			// aapt resource value: 0x7F0902A8
-			public const int render_texture_view_soft = 2131296936;
-			
-			// aapt resource value: 0x7F0902A9
-			public const int replay_btn = 2131296937;
-			
-			// aapt resource value: 0x7F0902AA
-			public const int restart_preview = 2131296938;
-			
-			// aapt resource value: 0x7F0902AB
-			public const int retry_btn = 2131296939;
-			
-			// aapt resource value: 0x7F0902AC
-			public const int retry_button = 2131296940;
-			
-			// aapt resource value: 0x7F0902AD
-			public const int return_scan_result = 2131296941;
+			public const int rate_1x = 2131296775;
 			
 			// aapt resource value: 0x7F090208
-			public const int re_next_area = 2131296776;
+			public const int rate_4x = 2131296776;
+			
+			// aapt resource value: 0x7F090209
+			public const int rate_8x = 2131296777;
+			
+			// aapt resource value: 0x7F09020B
+			public const int read_button = 2131296779;
+			
+			// aapt resource value: 0x7F09020C
+			public const int realplay_area = 2131296780;
+			
+			// aapt resource value: 0x7F09020D
+			public const int realplay_back_btn = 2131296781;
+			
+			// aapt resource value: 0x7F09020E
+			public const int realplay_capture_iv = 2131296782;
+			
+			// aapt resource value: 0x7F09020F
+			public const int realplay_capture_rl = 2131296783;
+			
+			// aapt resource value: 0x7F090210
+			public const int realplay_capture_watermark_iv = 2131296784;
+			
+			// aapt resource value: 0x7F090211
+			public const int realplay_control_bar = 2131296785;
+			
+			// aapt resource value: 0x7F090212
+			public const int realplay_control_rl = 2131296786;
+			
+			// aapt resource value: 0x7F090213
+			public const int realplay_display_view = 2131296787;
+			
+			// aapt resource value: 0x7F090214
+			public const int realplay_flow_tv = 2131296788;
+			
+			// aapt resource value: 0x7F090215
+			public const int realplay_full_anim_btn = 2131296789;
+			
+			// aapt resource value: 0x7F090216
+			public const int realplay_full_flow_ly = 2131296790;
+			
+			// aapt resource value: 0x7F090217
+			public const int realplay_full_flow_tv = 2131296791;
+			
+			// aapt resource value: 0x7F090218
+			public const int realplay_full_operate_bar = 2131296792;
+			
+			// aapt resource value: 0x7F090219
+			public const int realplay_full_operate_layout = 2131296793;
+			
+			// aapt resource value: 0x7F09021A
+			public const int realplay_full_play_btn = 2131296794;
+			
+			// aapt resource value: 0x7F09021B
+			public const int realplay_full_previously_btn = 2131296795;
+			
+			// aapt resource value: 0x7F09021C
+			public const int realplay_full_ptz_anim_btn = 2131296796;
+			
+			// aapt resource value: 0x7F09021D
+			public const int realplay_full_ptz_btn = 2131296797;
+			
+			// aapt resource value: 0x7F09021E
+			public const int realplay_full_ptz_prompt_iv = 2131296798;
+			
+			// aapt resource value: 0x7F09021F
+			public const int realplay_full_rate_tv = 2131296799;
+			
+			// aapt resource value: 0x7F090220
+			public const int realplay_full_sound_btn = 2131296800;
+			
+			// aapt resource value: 0x7F090221
+			public const int realplay_full_talk_anim_btn = 2131296801;
+			
+			// aapt resource value: 0x7F090222
+			public const int realplay_full_talk_btn = 2131296802;
+			
+			// aapt resource value: 0x7F090223
+			public const int realplay_full_video_btn = 2131296803;
+			
+			// aapt resource value: 0x7F090224
+			public const int realplay_full_video_container = 2131296804;
+			
+			// aapt resource value: 0x7F090225
+			public const int realplay_full_video_start_btn = 2131296805;
+			
+			// aapt resource value: 0x7F090226
+			public const int realplay_loading = 2131296806;
+			
+			// aapt resource value: 0x7F090227
+			public const int realplay_loading_rl = 2131296807;
+			
+			// aapt resource value: 0x7F090228
+			public const int realplay_operate_bar = 2131296808;
+			
+			// aapt resource value: 0x7F090229
+			public const int realplay_operate_bar2 = 2131296809;
+			
+			// aapt resource value: 0x7F09022A
+			public const int realplay_operate_ly = 2131296810;
+			
+			// aapt resource value: 0x7F09022B
+			public const int realplay_operate_ly2 = 2131296811;
+			
+			// aapt resource value: 0x7F09022E
+			public const int realplay_pages_gallery = 2131296814;
+			
+			// aapt resource value: 0x7F09022C
+			public const int realplay_page_anim_iv = 2131296812;
+			
+			// aapt resource value: 0x7F09022D
+			public const int realplay_page_ly = 2131296813;
+			
+			// aapt resource value: 0x7F09022F
+			public const int realplay_play_btn = 2131296815;
+			
+			// aapt resource value: 0x7F090230
+			public const int realplay_play_iv = 2131296816;
+			
+			// aapt resource value: 0x7F090231
+			public const int realplay_play_rl = 2131296817;
+			
+			// aapt resource value: 0x7F090232
+			public const int realplay_previously_btn = 2131296818;
+			
+			// aapt resource value: 0x7F090233
+			public const int realplay_previously_btn2 = 2131296819;
+			
+			// aapt resource value: 0x7F090234
+			public const int realplay_previously_btn_ly = 2131296820;
+			
+			// aapt resource value: 0x7F090235
+			public const int realplay_previously_btn_ly2 = 2131296821;
+			
+			// aapt resource value: 0x7F090236
+			public const int realplay_privacy_btn = 2131296822;
+			
+			// aapt resource value: 0x7F090237
+			public const int realplay_privacy_btn2 = 2131296823;
+			
+			// aapt resource value: 0x7F090238
+			public const int realplay_privacy_btn_ly = 2131296824;
+			
+			// aapt resource value: 0x7F090239
+			public const int realplay_privacy_btn_ly2 = 2131296825;
+			
+			// aapt resource value: 0x7F09023A
+			public const int realplay_privacy_ly = 2131296826;
+			
+			// aapt resource value: 0x7F09023B
+			public const int realplay_privacy_tv = 2131296827;
+			
+			// aapt resource value: 0x7F09023C
+			public const int realplay_privacy_tv2 = 2131296828;
+			
+			// aapt resource value: 0x7F09023D
+			public const int realplay_prompt_rl = 2131296829;
+			
+			// aapt resource value: 0x7F09023E
+			public const int realplay_ptz_btn = 2131296830;
+			
+			// aapt resource value: 0x7F09023F
+			public const int realplay_ptz_btn2 = 2131296831;
+			
+			// aapt resource value: 0x7F090240
+			public const int realplay_ptz_btn_ly = 2131296832;
+			
+			// aapt resource value: 0x7F090241
+			public const int realplay_ptz_btn_ly2 = 2131296833;
+			
+			// aapt resource value: 0x7F090242
+			public const int realplay_ptz_direction_iv = 2131296834;
+			
+			// aapt resource value: 0x7F090243
+			public const int realplay_quality_btn = 2131296835;
+			
+			// aapt resource value: 0x7F090244
+			public const int realplay_ratio_tv = 2131296836;
+			
+			// aapt resource value: 0x7F090245
+			public const int realplay_record_iv = 2131296837;
+			
+			// aapt resource value: 0x7F090246
+			public const int realplay_record_ly = 2131296838;
+			
+			// aapt resource value: 0x7F090247
+			public const int realplay_record_tv = 2131296839;
+			
+			// aapt resource value: 0x7F090248
+			public const int realplay_sound_btn = 2131296840;
+			
+			// aapt resource value: 0x7F090249
+			public const int realplay_ssl_btn = 2131296841;
+			
+			// aapt resource value: 0x7F09024A
+			public const int realplay_ssl_btn2 = 2131296842;
+			
+			// aapt resource value: 0x7F09024B
+			public const int realplay_ssl_btn_ly = 2131296843;
+			
+			// aapt resource value: 0x7F09024C
+			public const int realplay_ssl_btn_ly2 = 2131296844;
+			
+			// aapt resource value: 0x7F09024D
+			public const int realplay_ssl_btn_rl = 2131296845;
+			
+			// aapt resource value: 0x7F09024E
+			public const int realplay_ssl_btn_rl2 = 2131296846;
+			
+			// aapt resource value: 0x7F09024F
+			public const int realplay_ssl_progress = 2131296847;
+			
+			// aapt resource value: 0x7F090250
+			public const int realplay_ssl_progress2 = 2131296848;
+			
+			// aapt resource value: 0x7F090251
+			public const int realplay_ssl_tv = 2131296849;
+			
+			// aapt resource value: 0x7F090252
+			public const int realplay_ssl_tv2 = 2131296850;
+			
+			// aapt resource value: 0x7F090253
+			public const int realplay_stop_btn = 2131296851;
+			
+			// aapt resource value: 0x7F090254
+			public const int realplay_sv = 2131296852;
+			
+			// aapt resource value: 0x7F090255
+			public const int realplay_talk_btn = 2131296853;
+			
+			// aapt resource value: 0x7F090256
+			public const int realplay_talk_btn2 = 2131296854;
+			
+			// aapt resource value: 0x7F090257
+			public const int realplay_talk_btn_ly = 2131296855;
+			
+			// aapt resource value: 0x7F090258
+			public const int realplay_talk_btn_ly2 = 2131296856;
+			
+			// aapt resource value: 0x7F090259
+			public const int realplay_tip_tv = 2131296857;
+			
+			// aapt resource value: 0x7F09025A
+			public const int realplay_title_tv = 2131296858;
+			
+			// aapt resource value: 0x7F09025B
+			public const int realplay_top_bar = 2131296859;
+			
+			// aapt resource value: 0x7F09025C
+			public const int realplay_video_btn = 2131296860;
+			
+			// aapt resource value: 0x7F09025D
+			public const int realplay_video_btn2 = 2131296861;
+			
+			// aapt resource value: 0x7F09025E
+			public const int realplay_video_container = 2131296862;
+			
+			// aapt resource value: 0x7F09025F
+			public const int realplay_video_container2 = 2131296863;
+			
+			// aapt resource value: 0x7F090260
+			public const int realplay_video_container_ly = 2131296864;
+			
+			// aapt resource value: 0x7F090261
+			public const int realplay_video_container_ly2 = 2131296865;
+			
+			// aapt resource value: 0x7F090262
+			public const int realplay_video_start_btn = 2131296866;
+			
+			// aapt resource value: 0x7F090263
+			public const int realplay_video_start_btn2 = 2131296867;
+			
+			// aapt resource value: 0x7F090264
+			public const int realplay_waiting_lr = 2131296868;
+			
+			// aapt resource value: 0x7F090265
+			public const int realplay_watting_pb = 2131296869;
+			
+			// aapt resource value: 0x7F090266
+			public const int realplay_watting_tv = 2131296870;
+			
+			// aapt resource value: 0x7F090267
+			public const int realplay_wnd_sv = 2131296871;
+			
+			// aapt resource value: 0x7F090268
+			public const int recycler_view = 2131296872;
+			
+			// aapt resource value: 0x7F090269
+			public const int refresh_button = 2131296873;
+			
+			// aapt resource value: 0x7F09026A
+			public const int refresh_layout = 2131296874;
+			
+			// aapt resource value: 0x7F09026B
+			public const int refresh_tip = 2131296875;
+			
+			// aapt resource value: 0x7F090277
+			public const int remoteplayback_begin_time_tv = 2131296887;
+			
+			// aapt resource value: 0x7F090278
+			public const int remoteplayback_capture_iv = 2131296888;
+			
+			// aapt resource value: 0x7F090279
+			public const int remoteplayback_capture_rl = 2131296889;
+			
+			// aapt resource value: 0x7F09027A
+			public const int remoteplayback_capture_watermark_iv = 2131296890;
+			
+			// aapt resource value: 0x7F09027B
+			public const int remoteplayback_control_rl = 2131296891;
+			
+			// aapt resource value: 0x7F09027C
+			public const int remoteplayback_end_time_tv = 2131296892;
+			
+			// aapt resource value: 0x7F09027D
+			public const int remoteplayback_file_time_bar = 2131296893;
+			
+			// aapt resource value: 0x7F09027E
+			public const int remoteplayback_flow_tv = 2131296894;
+			
+			// aapt resource value: 0x7F09027F
+			public const int remoteplayback_full_down_btn = 2131296895;
+			
+			// aapt resource value: 0x7F090280
+			public const int remoteplayback_full_flow_ly = 2131296896;
+			
+			// aapt resource value: 0x7F090281
+			public const int remoteplayback_full_flow_tv = 2131296897;
+			
+			// aapt resource value: 0x7F090282
+			public const int remoteplayback_full_operate_bar = 2131296898;
+			
+			// aapt resource value: 0x7F090283
+			public const int remoteplayback_full_play_btn = 2131296899;
+			
+			// aapt resource value: 0x7F090284
+			public const int remoteplayback_full_previously_btn = 2131296900;
+			
+			// aapt resource value: 0x7F090285
+			public const int remoteplayback_full_rate_tv = 2131296901;
+			
+			// aapt resource value: 0x7F090286
+			public const int remoteplayback_full_sound_btn = 2131296902;
+			
+			// aapt resource value: 0x7F090287
+			public const int remoteplayback_full_video_btn = 2131296903;
+			
+			// aapt resource value: 0x7F090288
+			public const int remoteplayback_full_video_container = 2131296904;
+			
+			// aapt resource value: 0x7F090289
+			public const int remoteplayback_full_video_start_btn = 2131296905;
+			
+			// aapt resource value: 0x7F09028A
+			public const int remoteplayback_loading_iv = 2131296906;
+			
+			// aapt resource value: 0x7F09028B
+			public const int remoteplayback_loading_ly = 2131296907;
+			
+			// aapt resource value: 0x7F09028C
+			public const int remoteplayback_loading_pb_ly = 2131296908;
+			
+			// aapt resource value: 0x7F09028D
+			public const int remoteplayback_loading_play_btn = 2131296909;
+			
+			// aapt resource value: 0x7F09028E
+			public const int remoteplayback_loading_tv = 2131296910;
+			
+			// aapt resource value: 0x7F09028F
+			public const int remoteplayback_operate_bar = 2131296911;
+			
+			// aapt resource value: 0x7F090290
+			public const int remoteplayback_page_ly = 2131296912;
+			
+			// aapt resource value: 0x7F090291
+			public const int remoteplayback_play_btn = 2131296913;
+			
+			// aapt resource value: 0x7F090292
+			public const int remoteplayback_play_rl = 2131296914;
+			
+			// aapt resource value: 0x7F090293
+			public const int remoteplayback_previously_btn = 2131296915;
+			
+			// aapt resource value: 0x7F090296
+			public const int remoteplayback_progressbar = 2131296918;
+			
+			// aapt resource value: 0x7F090294
+			public const int remoteplayback_progress_ly = 2131296916;
+			
+			// aapt resource value: 0x7F090295
+			public const int remoteplayback_progress_seekbar = 2131296917;
+			
+			// aapt resource value: 0x7F090297
+			public const int remoteplayback_ratio_tv = 2131296919;
+			
+			// aapt resource value: 0x7F090298
+			public const int remoteplayback_record_iv = 2131296920;
+			
+			// aapt resource value: 0x7F090299
+			public const int remoteplayback_record_ly = 2131296921;
+			
+			// aapt resource value: 0x7F09029A
+			public const int remoteplayback_record_tv = 2131296922;
+			
+			// aapt resource value: 0x7F09029B
+			public const int remoteplayback_replay_btn = 2131296923;
+			
+			// aapt resource value: 0x7F09029C
+			public const int remoteplayback_small_previously_btn = 2131296924;
+			
+			// aapt resource value: 0x7F09029D
+			public const int remoteplayback_small_video_btn = 2131296925;
+			
+			// aapt resource value: 0x7F09029E
+			public const int remoteplayback_small_video_container = 2131296926;
+			
+			// aapt resource value: 0x7F09029F
+			public const int remoteplayback_small_video_start_btn = 2131296927;
+			
+			// aapt resource value: 0x7F0902A0
+			public const int remoteplayback_sound_btn = 2131296928;
+			
+			// aapt resource value: 0x7F0902A1
+			public const int remoteplayback_sv = 2131296929;
+			
+			// aapt resource value: 0x7F0902A3
+			public const int remoteplayback_timebar = 2131296931;
+			
+			// aapt resource value: 0x7F0902A4
+			public const int remoteplayback_timebar_rl = 2131296932;
+			
+			// aapt resource value: 0x7F0902A2
+			public const int remoteplayback_time_tv = 2131296930;
+			
+			// aapt resource value: 0x7F0902A5
+			public const int remoteplayback_tip_tv = 2131296933;
+			
+			// aapt resource value: 0x7F0902A6
+			public const int remoteplayback_video_btn = 2131296934;
+			
+			// aapt resource value: 0x7F0902A7
+			public const int remoteplayback_video_container = 2131296935;
+			
+			// aapt resource value: 0x7F0902A8
+			public const int remoteplayback_video_start_btn = 2131296936;
+			
+			// aapt resource value: 0x7F09026C
+			public const int remote_list_page = 2131296876;
+			
+			// aapt resource value: 0x7F09026D
+			public const int remote_loading_buffer_tv = 2131296877;
+			
+			// aapt resource value: 0x7F09026E
+			public const int remote_loading_iv = 2131296878;
+			
+			// aapt resource value: 0x7F09026F
+			public const int remote_playback_area = 2131296879;
+			
+			// aapt resource value: 0x7F090270
+			public const int remote_playback_capture_btn = 2131296880;
+			
+			// aapt resource value: 0x7F090271
+			public const int remote_playback_download_btn = 2131296881;
+			
+			// aapt resource value: 0x7F090272
+			public const int remote_playback_flow_tv = 2131296882;
+			
+			// aapt resource value: 0x7F090273
+			public const int remote_playback_pause_btn = 2131296883;
+			
+			// aapt resource value: 0x7F090274
+			public const int remote_playback_sound_btn = 2131296884;
+			
+			// aapt resource value: 0x7F090275
+			public const int remote_playback_video_recording_btn = 2131296885;
+			
+			// aapt resource value: 0x7F090276
+			public const int remote_playback_wnd_sv = 2131296886;
+			
+			// aapt resource value: 0x7F0902A9
+			public const int render_texture_view = 2131296937;
+			
+			// aapt resource value: 0x7F0902AA
+			public const int render_texture_view_soft = 2131296938;
+			
+			// aapt resource value: 0x7F0902AB
+			public const int replay_btn = 2131296939;
+			
+			// aapt resource value: 0x7F0902AC
+			public const int restart_preview = 2131296940;
+			
+			// aapt resource value: 0x7F0902AD
+			public const int retry_btn = 2131296941;
 			
 			// aapt resource value: 0x7F0902AE
-			public const int right = 2131296942;
+			public const int retry_button = 2131296942;
 			
 			// aapt resource value: 0x7F0902AF
-			public const int right_icon = 2131296943;
+			public const int return_scan_result = 2131296943;
+			
+			// aapt resource value: 0x7F09020A
+			public const int re_next_area = 2131296778;
 			
 			// aapt resource value: 0x7F0902B0
-			public const int right_side = 2131296944;
+			public const int right = 2131296944;
 			
 			// aapt resource value: 0x7F0902B1
-			public const int rv_multi_screen = 2131296945;
+			public const int right_icon = 2131296945;
 			
 			// aapt resource value: 0x7F0902B2
-			public const int rv_topbar = 2131296946;
+			public const int right_side = 2131296946;
 			
 			// aapt resource value: 0x7F0902B3
-			public const int safe_box_tip = 2131296947;
+			public const int rv_multi_screen = 2131296947;
 			
 			// aapt resource value: 0x7F0902B4
-			public const int save_image_matrix = 2131296948;
+			public const int rv_topbar = 2131296948;
 			
 			// aapt resource value: 0x7F0902B5
-			public const int save_non_transition_alpha = 2131296949;
+			public const int safe_box_tip = 2131296949;
 			
 			// aapt resource value: 0x7F0902B6
-			public const int save_scale_type = 2131296950;
+			public const int save_image_matrix = 2131296950;
+			
+			// aapt resource value: 0x7F0902B7
+			public const int save_non_transition_alpha = 2131296951;
+			
+			// aapt resource value: 0x7F0902B8
+			public const int save_scale_type = 2131296952;
 			
 			// aapt resource value: 0x7F09000D
 			public const int Scale = 2131296269;
 			
-			// aapt resource value: 0x7F0902B7
-			public const int screen = 2131296951;
-			
-			// aapt resource value: 0x7F0902B8
-			public const int scroll = 2131296952;
-			
-			// aapt resource value: 0x7F0902BC
-			public const int scrollable = 2131296956;
-			
 			// aapt resource value: 0x7F0902B9
-			public const int scrollIndicatorDown = 2131296953;
+			public const int screen = 2131296953;
 			
 			// aapt resource value: 0x7F0902BA
-			public const int scrollIndicatorUp = 2131296954;
-			
-			// aapt resource value: 0x7F0902BB
-			public const int scrollView = 2131296955;
-			
-			// aapt resource value: 0x7F0902BD
-			public const int searchAnim = 2131296957;
+			public const int scroll = 2131296954;
 			
 			// aapt resource value: 0x7F0902BE
-			public const int searchBtn = 2131296958;
+			public const int scrollable = 2131296958;
+			
+			// aapt resource value: 0x7F0902BB
+			public const int scrollIndicatorDown = 2131296955;
+			
+			// aapt resource value: 0x7F0902BC
+			public const int scrollIndicatorUp = 2131296956;
+			
+			// aapt resource value: 0x7F0902BD
+			public const int scrollView = 2131296957;
 			
 			// aapt resource value: 0x7F0902BF
-			public const int searchEditTextContainer = 2131296959;
+			public const int searchAnim = 2131296959;
 			
 			// aapt resource value: 0x7F0902C0
-			public const int searchFragment = 2131296960;
+			public const int searchBtn = 2131296960;
 			
 			// aapt resource value: 0x7F0902C1
-			public const int search_badge = 2131296961;
+			public const int searchEditTextContainer = 2131296961;
 			
 			// aapt resource value: 0x7F0902C2
-			public const int search_bar = 2131296962;
+			public const int searchFragment = 2131296962;
 			
 			// aapt resource value: 0x7F0902C3
-			public const int search_button = 2131296963;
+			public const int search_badge = 2131296963;
 			
 			// aapt resource value: 0x7F0902C4
-			public const int search_close_btn = 2131296964;
+			public const int search_bar = 2131296964;
 			
 			// aapt resource value: 0x7F0902C5
-			public const int search_edit_frame = 2131296965;
+			public const int search_button = 2131296965;
 			
 			// aapt resource value: 0x7F0902C6
-			public const int search_go_btn = 2131296966;
+			public const int search_close_btn = 2131296966;
 			
 			// aapt resource value: 0x7F0902C7
-			public const int search_mag_icon = 2131296967;
+			public const int search_edit_frame = 2131296967;
 			
 			// aapt resource value: 0x7F0902C8
-			public const int search_plate = 2131296968;
+			public const int search_go_btn = 2131296968;
 			
 			// aapt resource value: 0x7F0902C9
-			public const int search_src_text = 2131296969;
+			public const int search_mag_icon = 2131296969;
 			
 			// aapt resource value: 0x7F0902CA
-			public const int search_voice_btn = 2131296970;
+			public const int search_plate = 2131296970;
 			
 			// aapt resource value: 0x7F0902CB
-			public const int second = 2131296971;
+			public const int search_src_text = 2131296971;
 			
 			// aapt resource value: 0x7F0902CC
-			public const int select_dialog_listview = 2131296972;
+			public const int search_voice_btn = 2131296972;
 			
 			// aapt resource value: 0x7F0902CD
-			public const int separate_line = 2131296973;
+			public const int second = 2131296973;
 			
 			// aapt resource value: 0x7F0902CE
-			public const int serial_tv = 2131296974;
+			public const int select_dialog_listview = 2131296974;
 			
 			// aapt resource value: 0x7F0902CF
-			public const int seriesNumberEt = 2131296975;
+			public const int separate_line = 2131296975;
+			
+			// aapt resource value: 0x7F0902D0
+			public const int serial_tv = 2131296976;
+			
+			// aapt resource value: 0x7F0902D1
+			public const int seriesNumberEt = 2131296977;
 			
 			// aapt resource value: 0x7F09000A
 			public const int SHIFT = 2131296266;
 			
-			// aapt resource value: 0x7F0902D0
-			public const int shipin7_logo_lyt = 2131296976;
-			
-			// aapt resource value: 0x7F0902D1
-			public const int shortcut = 2131296977;
-			
 			// aapt resource value: 0x7F0902D2
-			public const int showCustom = 2131296978;
+			public const int shipin7_logo_lyt = 2131296978;
 			
 			// aapt resource value: 0x7F0902D3
-			public const int showHome = 2131296979;
+			public const int shortcut = 2131296979;
 			
 			// aapt resource value: 0x7F0902D4
-			public const int showTitle = 2131296980;
+			public const int showCustom = 2131296980;
 			
 			// aapt resource value: 0x7F0902D5
-			public const int sign_et = 2131296981;
+			public const int showHome = 2131296981;
 			
 			// aapt resource value: 0x7F0902D6
-			public const int smallLabel = 2131296982;
+			public const int showTitle = 2131296982;
 			
 			// aapt resource value: 0x7F0902D7
-			public const int sms_code_et = 2131296983;
+			public const int sign_et = 2131296983;
 			
 			// aapt resource value: 0x7F0902D8
-			public const int sms_code_lyt = 2131296984;
+			public const int smallLabel = 2131296984;
 			
 			// aapt resource value: 0x7F0902D9
-			public const int sms_verify_dailog_ly = 2131296985;
+			public const int sms_code_et = 2131296985;
 			
 			// aapt resource value: 0x7F0902DA
-			public const int snackbar_action = 2131296986;
+			public const int sms_code_lyt = 2131296986;
 			
 			// aapt resource value: 0x7F0902DB
-			public const int snackbar_text = 2131296987;
+			public const int sms_verify_dailog_ly = 2131296987;
 			
 			// aapt resource value: 0x7F0902DC
-			public const int snap = 2131296988;
+			public const int snackbar_action = 2131296988;
 			
 			// aapt resource value: 0x7F0902DD
-			public const int sound_line = 2131296989;
-			
-			// aapt resource value: 0x7F0902DF
-			public const int spacer = 2131296991;
-			
-			// aapt resource value: 0x7F0902E0
-			public const int split_action_bar = 2131296992;
+			public const int snackbar_text = 2131296989;
 			
 			// aapt resource value: 0x7F0902DE
-			public const int sp_server_area = 2131296990;
+			public const int snap = 2131296990;
+			
+			// aapt resource value: 0x7F0902DF
+			public const int sound_line = 2131296991;
 			
 			// aapt resource value: 0x7F0902E1
-			public const int squareColumnItem = 2131296993;
+			public const int spacer = 2131296993;
 			
 			// aapt resource value: 0x7F0902E2
-			public const int squareVideo = 2131296994;
+			public const int split_action_bar = 2131296994;
+			
+			// aapt resource value: 0x7F0902E0
+			public const int sp_server_area = 2131296992;
 			
 			// aapt resource value: 0x7F0902E3
-			public const int squareVideoList = 2131296995;
+			public const int squareColumnItem = 2131296995;
 			
 			// aapt resource value: 0x7F0902E4
-			public const int square_channel = 2131296996;
+			public const int squareVideo = 2131296996;
 			
 			// aapt resource value: 0x7F0902E5
-			public const int src_atop = 2131296997;
+			public const int squareVideoList = 2131296997;
 			
 			// aapt resource value: 0x7F0902E6
-			public const int src_in = 2131296998;
+			public const int square_channel = 2131296998;
 			
 			// aapt resource value: 0x7F0902E7
-			public const int src_over = 2131296999;
+			public const int src_atop = 2131296999;
 			
 			// aapt resource value: 0x7F0902E8
-			public const int srl_classics_arrow = 2131297000;
+			public const int src_in = 2131297000;
 			
 			// aapt resource value: 0x7F0902E9
-			public const int srl_classics_center = 2131297001;
+			public const int src_over = 2131297001;
 			
 			// aapt resource value: 0x7F0902EA
-			public const int srl_classics_progress = 2131297002;
+			public const int srl_classics_arrow = 2131297002;
 			
 			// aapt resource value: 0x7F0902EB
-			public const int srl_classics_title = 2131297003;
+			public const int srl_classics_center = 2131297003;
 			
 			// aapt resource value: 0x7F0902EC
-			public const int srl_classics_update = 2131297004;
+			public const int srl_classics_progress = 2131297004;
 			
 			// aapt resource value: 0x7F0902ED
-			public const int start = 2131297005;
+			public const int srl_classics_title = 2131297005;
 			
 			// aapt resource value: 0x7F0902EE
-			public const int status = 2131297006;
+			public const int srl_classics_update = 2131297006;
 			
 			// aapt resource value: 0x7F0902EF
-			public const int status_bar_latest_event_content = 2131297007;
+			public const int start = 2131297007;
 			
 			// aapt resource value: 0x7F0902F0
-			public const int storage_layout = 2131297008;
+			public const int status = 2131297008;
 			
 			// aapt resource value: 0x7F0902F1
-			public const int storage_notice = 2131297009;
+			public const int status_bar_latest_event_content = 2131297009;
+			
+			// aapt resource value: 0x7F0902F2
+			public const int storage_layout = 2131297010;
+			
+			// aapt resource value: 0x7F0902F3
+			public const int storage_notice = 2131297011;
 			
 			// aapt resource value: 0x7F09000B
 			public const int STROKE = 2131296267;
 			
-			// aapt resource value: 0x7F0902F3
-			public const int submenuarrow = 2131297011;
-			
-			// aapt resource value: 0x7F0902F4
-			public const int submit = 2131297012;
-			
 			// aapt resource value: 0x7F0902F5
-			public const int submit_area = 2131297013;
+			public const int submenuarrow = 2131297013;
 			
 			// aapt resource value: 0x7F0902F6
-			public const int subtitle = 2131297014;
-			
-			// aapt resource value: 0x7F0902F2
-			public const int sub_title_text = 2131297010;
+			public const int submit = 2131297014;
 			
 			// aapt resource value: 0x7F0902F7
-			public const int successIcon = 2131297015;
+			public const int submit_area = 2131297015;
 			
 			// aapt resource value: 0x7F0902F8
-			public const int surfaceview = 2131297016;
+			public const int subtitle = 2131297016;
+			
+			// aapt resource value: 0x7F0902F4
+			public const int sub_title_text = 2131297012;
+			
+			// aapt resource value: 0x7F0902F9
+			public const int successIcon = 2131297017;
+			
+			// aapt resource value: 0x7F0902FA
+			public const int surfaceview = 2131297018;
 			
 			// aapt resource value: 0x7F09000C
 			public const int SYM = 2131296268;
 			
-			// aapt resource value: 0x7F0902F9
-			public const int tabMode = 2131297017;
-			
-			// aapt resource value: 0x7F0902FA
-			public const int tab_alarmlist_btn = 2131297018;
-			
 			// aapt resource value: 0x7F0902FB
-			public const int tab_alarmlist_rl = 2131297019;
+			public const int tabMode = 2131297019;
 			
 			// aapt resource value: 0x7F0902FC
-			public const int tab_devicedefence_btn = 2131297020;
+			public const int tab_alarmlist_btn = 2131297020;
 			
 			// aapt resource value: 0x7F0902FD
-			public const int tab_devicedefence_rl = 2131297021;
+			public const int tab_alarmlist_rl = 2131297021;
 			
 			// aapt resource value: 0x7F0902FE
-			public const int tab_devicepicture_btn = 2131297022;
+			public const int tab_devicedefence_btn = 2131297022;
 			
 			// aapt resource value: 0x7F0902FF
-			public const int tab_devicepicture_rl = 2131297023;
+			public const int tab_devicedefence_rl = 2131297023;
 			
 			// aapt resource value: 0x7F090300
-			public const int tab_devicevideo_btn = 2131297024;
+			public const int tab_devicepicture_btn = 2131297024;
 			
 			// aapt resource value: 0x7F090301
-			public const int tab_devicevideo_rl = 2131297025;
+			public const int tab_devicepicture_rl = 2131297025;
 			
 			// aapt resource value: 0x7F090302
-			public const int tab_remoteplayback_btn = 2131297026;
+			public const int tab_devicevideo_btn = 2131297026;
 			
 			// aapt resource value: 0x7F090303
-			public const int tab_remoteplayback_rl = 2131297027;
+			public const int tab_devicevideo_rl = 2131297027;
 			
 			// aapt resource value: 0x7F090304
-			public const int tab_setdevice_btn = 2131297028;
+			public const int tab_remoteplayback_btn = 2131297028;
 			
 			// aapt resource value: 0x7F090305
-			public const int tab_setdevice_rl = 2131297029;
+			public const int tab_remoteplayback_rl = 2131297029;
 			
 			// aapt resource value: 0x7F090306
-			public const int tab_video_talk_btn = 2131297030;
+			public const int tab_setdevice_btn = 2131297030;
 			
 			// aapt resource value: 0x7F090307
-			public const int tab_video_talk_rl = 2131297031;
+			public const int tab_setdevice_rl = 2131297031;
 			
 			// aapt resource value: 0x7F090308
-			public const int tag_key_position = 2131297032;
+			public const int tab_video_talk_btn = 2131297032;
 			
 			// aapt resource value: 0x7F090309
-			public const int talkback_close_btn = 2131297033;
+			public const int tab_video_talk_rl = 2131297033;
 			
 			// aapt resource value: 0x7F09030A
-			public const int talkback_control_btn = 2131297034;
+			public const int tag_key_position = 2131297034;
 			
 			// aapt resource value: 0x7F09030B
-			public const int talkback_rv = 2131297035;
+			public const int talkback_close_btn = 2131297035;
 			
 			// aapt resource value: 0x7F09030C
-			public const int text = 2131297036;
+			public const int talkback_control_btn = 2131297036;
 			
 			// aapt resource value: 0x7F09030D
-			public const int text1 = 2131297037;
+			public const int talkback_rv = 2131297037;
 			
 			// aapt resource value: 0x7F09030E
-			public const int text2 = 2131297038;
+			public const int text = 2131297038;
 			
 			// aapt resource value: 0x7F09030F
-			public const int text3 = 2131297039;
-			
-			// aapt resource value: 0x7F09031C
-			public const int textinput_counter = 2131297052;
-			
-			// aapt resource value: 0x7F09031D
-			public const int textinput_error = 2131297053;
+			public const int text1 = 2131297039;
 			
 			// aapt resource value: 0x7F090310
-			public const int textSpacerNoButtons = 2131297040;
+			public const int text2 = 2131297040;
 			
 			// aapt resource value: 0x7F090311
-			public const int textSpacerNoTitle = 2131297041;
+			public const int text3 = 2131297041;
 			
 			// aapt resource value: 0x7F09031E
-			public const int textureView_play = 2131297054;
+			public const int textinput_counter = 2131297054;
 			
 			// aapt resource value: 0x7F09031F
-			public const int texture_view_play_window = 2131297055;
+			public const int textinput_error = 2131297055;
+			
+			// aapt resource value: 0x7F090312
+			public const int textSpacerNoButtons = 2131297042;
+			
+			// aapt resource value: 0x7F090313
+			public const int textSpacerNoTitle = 2131297043;
+			
+			// aapt resource value: 0x7F090320
+			public const int textureView_play = 2131297056;
+			
+			// aapt resource value: 0x7F090321
+			public const int texture_view_play_window = 2131297057;
 			
 			// aapt resource value: 0x7F09000E
 			public const int TextView01 = 2131296270;
@@ -8861,335 +8867,335 @@
 			// aapt resource value: 0x7F09000F
 			public const int TextView03 = 2131296271;
 			
-			// aapt resource value: 0x7F090313
-			public const int text_camerano = 2131297043;
-			
-			// aapt resource value: 0x7F090312
-			public const int text_camera_name = 2131297042;
+			// aapt resource value: 0x7F090315
+			public const int text_camerano = 2131297045;
 			
 			// aapt resource value: 0x7F090314
-			public const int text_device_ip = 2131297044;
-			
-			// aapt resource value: 0x7F090315
-			public const int text_input_password_toggle = 2131297045;
+			public const int text_camera_name = 2131297044;
 			
 			// aapt resource value: 0x7F090316
-			public const int text_left = 2131297046;
+			public const int text_device_ip = 2131297046;
 			
 			// aapt resource value: 0x7F090317
-			public const int text_my = 2131297047;
+			public const int text_input_password_toggle = 2131297047;
 			
 			// aapt resource value: 0x7F090318
-			public const int text_right = 2131297048;
+			public const int text_left = 2131297048;
 			
 			// aapt resource value: 0x7F090319
-			public const int text_serial = 2131297049;
+			public const int text_my = 2131297049;
 			
 			// aapt resource value: 0x7F09031A
-			public const int text_share = 2131297050;
+			public const int text_right = 2131297050;
 			
 			// aapt resource value: 0x7F09031B
-			public const int text_title = 2131297051;
+			public const int text_serial = 2131297051;
 			
-			// aapt resource value: 0x7F090320
-			public const int time = 2131297056;
+			// aapt resource value: 0x7F09031C
+			public const int text_share = 2131297052;
 			
-			// aapt resource value: 0x7F090323
-			public const int timeline_image = 2131297059;
-			
-			// aapt resource value: 0x7F090324
-			public const int timepicker = 2131297060;
-			
-			// aapt resource value: 0x7F090325
-			public const int timer = 2131297061;
-			
-			// aapt resource value: 0x7F090321
-			public const int time_text = 2131297057;
+			// aapt resource value: 0x7F09031D
+			public const int text_title = 2131297053;
 			
 			// aapt resource value: 0x7F090322
-			public const int time_tv = 2131297058;
+			public const int time = 2131297058;
+			
+			// aapt resource value: 0x7F090325
+			public const int timeline_image = 2131297061;
 			
 			// aapt resource value: 0x7F090326
-			public const int tip = 2131297062;
+			public const int timepicker = 2131297062;
 			
 			// aapt resource value: 0x7F090327
-			public const int title = 2131297063;
+			public const int timer = 2131297063;
+			
+			// aapt resource value: 0x7F090323
+			public const int time_text = 2131297059;
+			
+			// aapt resource value: 0x7F090324
+			public const int time_tv = 2131297060;
 			
 			// aapt resource value: 0x7F090328
-			public const int titleBar = 2131297064;
+			public const int tip = 2131297064;
 			
 			// aapt resource value: 0x7F090329
-			public const int titleDividerNoCustom = 2131297065;
+			public const int title = 2131297065;
 			
 			// aapt resource value: 0x7F09032A
-			public const int title_bar = 2131297066;
+			public const int titleBar = 2131297066;
 			
 			// aapt resource value: 0x7F09032B
-			public const int title_bar_landscape = 2131297067;
+			public const int titleDividerNoCustom = 2131297067;
 			
 			// aapt resource value: 0x7F09032C
-			public const int title_bar_portrait = 2131297068;
+			public const int title_bar = 2131297068;
 			
 			// aapt resource value: 0x7F09032D
-			public const int title_layout = 2131297069;
+			public const int title_bar_landscape = 2131297069;
 			
 			// aapt resource value: 0x7F09032E
-			public const int title_left = 2131297070;
+			public const int title_bar_portrait = 2131297070;
 			
 			// aapt resource value: 0x7F09032F
-			public const int title_right = 2131297071;
+			public const int title_layout = 2131297071;
 			
 			// aapt resource value: 0x7F090330
-			public const int title_template = 2131297072;
+			public const int title_left = 2131297072;
 			
 			// aapt resource value: 0x7F090331
-			public const int title_text = 2131297073;
+			public const int title_right = 2131297073;
 			
 			// aapt resource value: 0x7F090332
-			public const int title_text_layout = 2131297074;
+			public const int title_template = 2131297074;
 			
 			// aapt resource value: 0x7F090333
-			public const int top = 2131297075;
-			
-			// aapt resource value: 0x7F090336
-			public const int topbar = 2131297078;
-			
-			// aapt resource value: 0x7F090337
-			public const int topbar_right_img = 2131297079;
+			public const int title_text = 2131297075;
 			
 			// aapt resource value: 0x7F090334
-			public const int topPanel = 2131297076;
+			public const int title_text_layout = 2131297076;
 			
 			// aapt resource value: 0x7F090335
-			public const int topTip = 2131297077;
+			public const int top = 2131297077;
 			
 			// aapt resource value: 0x7F090338
-			public const int touch_loading_buffer_tv = 2131297080;
+			public const int topbar = 2131297080;
 			
 			// aapt resource value: 0x7F090339
-			public const int touch_outside = 2131297081;
+			public const int topbar_right_img = 2131297081;
+			
+			// aapt resource value: 0x7F090336
+			public const int topPanel = 2131297078;
+			
+			// aapt resource value: 0x7F090337
+			public const int topTip = 2131297079;
 			
 			// aapt resource value: 0x7F09033A
-			public const int touch_progress_layout = 2131297082;
+			public const int touch_loading_buffer_tv = 2131297082;
 			
 			// aapt resource value: 0x7F09033B
-			public const int transition_current_scene = 2131297083;
+			public const int touch_outside = 2131297083;
 			
 			// aapt resource value: 0x7F09033C
-			public const int transition_layout_save = 2131297084;
+			public const int touch_progress_layout = 2131297084;
 			
 			// aapt resource value: 0x7F09033D
-			public const int transition_position = 2131297085;
+			public const int transition_current_scene = 2131297085;
 			
 			// aapt resource value: 0x7F09033E
-			public const int transition_scene_layoutid_cache = 2131297086;
+			public const int transition_layout_save = 2131297086;
 			
 			// aapt resource value: 0x7F09033F
-			public const int transition_transform = 2131297087;
+			public const int transition_position = 2131297087;
+			
+			// aapt resource value: 0x7F090340
+			public const int transition_scene_layoutid_cache = 2131297088;
+			
+			// aapt resource value: 0x7F090341
+			public const int transition_transform = 2131297089;
 			
 			// aapt resource value: 0x7F090010
 			public const int Translate = 2131296272;
 			
-			// aapt resource value: 0x7F090340
-			public const int tvDeviceWifiConfigTip = 2131297088;
-			
-			// aapt resource value: 0x7F090341
-			public const int tvIntroduce1 = 2131297089;
-			
 			// aapt resource value: 0x7F090342
-			public const int tvIntroduce2 = 2131297090;
+			public const int tvDeviceWifiConfigTip = 2131297090;
 			
 			// aapt resource value: 0x7F090343
-			public const int tvMore = 2131297091;
+			public const int tvIntroduce1 = 2131297091;
 			
 			// aapt resource value: 0x7F090344
-			public const int tvSSID = 2131297092;
+			public const int tvIntroduce2 = 2131297092;
 			
 			// aapt resource value: 0x7F090345
-			public const int tvStatus = 2131297093;
+			public const int tvMore = 2131297093;
 			
 			// aapt resource value: 0x7F090346
-			public const int tvSuccess = 2131297094;
+			public const int tvSSID = 2131297094;
 			
 			// aapt resource value: 0x7F090347
-			public const int tvTip = 2131297095;
+			public const int tvStatus = 2131297095;
 			
 			// aapt resource value: 0x7F090348
-			public const int tvTitle = 2131297096;
+			public const int tvSuccess = 2131297096;
 			
 			// aapt resource value: 0x7F090349
-			public const int tv_adding_to_account = 2131297097;
+			public const int tvTip = 2131297097;
 			
 			// aapt resource value: 0x7F09034A
-			public const int tv_camera_name = 2131297098;
+			public const int tvTitle = 2131297098;
 			
 			// aapt resource value: 0x7F09034B
-			public const int tv_connecting_to_device = 2131297099;
+			public const int tv_adding_to_account = 2131297099;
 			
 			// aapt resource value: 0x7F09034C
-			public const int tv_decode_type = 2131297100;
+			public const int tv_camera_name = 2131297100;
 			
 			// aapt resource value: 0x7F09034D
-			public const int tv_ezviz_account_login = 2131297101;
+			public const int tv_connecting_to_device = 2131297101;
 			
 			// aapt resource value: 0x7F09034E
-			public const int tv_file_path = 2131297102;
+			public const int tv_decode_type = 2131297102;
 			
 			// aapt resource value: 0x7F09034F
-			public const int tv_play_error = 2131297103;
+			public const int tv_ezviz_account_login = 2131297103;
 			
 			// aapt resource value: 0x7F090350
-			public const int tv_pwd = 2131297104;
+			public const int tv_file_path = 2131297104;
 			
 			// aapt resource value: 0x7F090351
-			public const int tv_registering_to_platform = 2131297105;
+			public const int tv_play_error = 2131297105;
 			
 			// aapt resource value: 0x7F090352
-			public const int tv_sdk_ver = 2131297106;
+			public const int tv_pwd = 2131297106;
 			
 			// aapt resource value: 0x7F090353
-			public const int tv_ssid = 2131297107;
+			public const int tv_registering_to_platform = 2131297107;
 			
 			// aapt resource value: 0x7F090354
-			public const int tv_stream_type = 2131297108;
+			public const int tv_sdk_ver = 2131297108;
 			
 			// aapt resource value: 0x7F090355
-			public const int tv_tip = 2131297109;
+			public const int tv_ssid = 2131297109;
 			
 			// aapt resource value: 0x7F090356
-			public const int tv_zxing_back = 2131297110;
+			public const int tv_stream_type = 2131297110;
 			
 			// aapt resource value: 0x7F090357
-			public const int tv_zxing_flash = 2131297111;
+			public const int tv_tip = 2131297111;
 			
 			// aapt resource value: 0x7F090358
-			public const int tv_zxing_scan = 2131297112;
+			public const int tv_zxing_back = 2131297112;
 			
 			// aapt resource value: 0x7F090359
-			public const int txtResult = 2131297113;
+			public const int tv_zxing_flash = 2131297113;
 			
 			// aapt resource value: 0x7F09035A
-			public const int unbind_button = 2131297114;
+			public const int tv_zxing_scan = 2131297114;
 			
 			// aapt resource value: 0x7F09035B
-			public const int uniform = 2131297115;
+			public const int txtResult = 2131297115;
 			
 			// aapt resource value: 0x7F09035C
-			public const int up = 2131297116;
+			public const int unbind_button = 2131297116;
 			
 			// aapt resource value: 0x7F09035D
-			public const int useLogo = 2131297117;
+			public const int uniform = 2131297117;
 			
 			// aapt resource value: 0x7F09035E
-			public const int userid_et = 2131297118;
+			public const int up = 2131297118;
 			
 			// aapt resource value: 0x7F09035F
-			public const int userid_lyt = 2131297119;
+			public const int useLogo = 2131297119;
 			
 			// aapt resource value: 0x7F090360
-			public const int verifycodeEditTextContainer = 2131297120;
+			public const int userid_et = 2131297120;
 			
 			// aapt resource value: 0x7F090361
-			public const int verifycodeEt = 2131297121;
+			public const int userid_lyt = 2131297121;
 			
 			// aapt resource value: 0x7F090362
-			public const int version = 2131297122;
+			public const int verifycodeEditTextContainer = 2131297122;
 			
 			// aapt resource value: 0x7F090363
-			public const int version_arrow = 2131297123;
+			public const int verifycodeEt = 2131297123;
 			
 			// aapt resource value: 0x7F090364
-			public const int version_layout = 2131297124;
+			public const int version = 2131297124;
 			
 			// aapt resource value: 0x7F090365
-			public const int version_newest = 2131297125;
+			public const int version_arrow = 2131297125;
 			
 			// aapt resource value: 0x7F090366
-			public const int version_notice = 2131297126;
+			public const int version_layout = 2131297126;
 			
 			// aapt resource value: 0x7F090367
-			public const int vertical = 2131297127;
+			public const int version_newest = 2131297127;
 			
 			// aapt resource value: 0x7F090368
-			public const int vg_child_watch_video_talk_camera = 2131297128;
+			public const int version_notice = 2131297128;
 			
 			// aapt resource value: 0x7F090369
-			public const int vg_child_watch_video_talk_player = 2131297129;
+			public const int vertical = 2131297129;
 			
 			// aapt resource value: 0x7F09036A
-			public const int vg_child_watch_video_talk_video_container = 2131297130;
+			public const int vg_child_watch_video_talk_camera = 2131297130;
 			
 			// aapt resource value: 0x7F09036B
-			public const int vg_error_tips = 2131297131;
+			public const int vg_child_watch_video_talk_player = 2131297131;
 			
 			// aapt resource value: 0x7F09036C
-			public const int vg_login_anim = 2131297132;
+			public const int vg_child_watch_video_talk_video_container = 2131297132;
 			
 			// aapt resource value: 0x7F09036D
-			public const int vg_notification_operation_tool_container = 2131297133;
+			public const int vg_error_tips = 2131297133;
 			
 			// aapt resource value: 0x7F09036E
-			public const int vg_play_info = 2131297134;
+			public const int vg_login_anim = 2131297134;
 			
 			// aapt resource value: 0x7F09036F
-			public const int vg_play_window = 2131297135;
+			public const int vg_notification_operation_tool_container = 2131297135;
 			
 			// aapt resource value: 0x7F090370
-			public const int videoTitle = 2131297136;
+			public const int vg_play_info = 2131297136;
 			
 			// aapt resource value: 0x7F090371
-			public const int video_button = 2131297137;
+			public const int vg_play_window = 2131297137;
 			
 			// aapt resource value: 0x7F090372
-			public const int video_talk_et_room_id = 2131297138;
-			
-			// aapt resource value: 0x7F090377
-			public const int viewedCount = 2131297143;
-			
-			// aapt resource value: 0x7F090378
-			public const int viewfinder_view = 2131297144;
+			public const int videoTitle = 2131297138;
 			
 			// aapt resource value: 0x7F090373
-			public const int viewSort = 2131297139;
+			public const int video_button = 2131297139;
 			
 			// aapt resource value: 0x7F090374
-			public const int view_child_watch_video_talk_camera = 2131297140;
-			
-			// aapt resource value: 0x7F090375
-			public const int view_child_watch_video_talk_player = 2131297141;
-			
-			// aapt resource value: 0x7F090376
-			public const int view_offset_helper = 2131297142;
+			public const int video_talk_et_room_id = 2131297140;
 			
 			// aapt resource value: 0x7F090379
-			public const int visible = 2131297145;
+			public const int viewedCount = 2131297145;
 			
 			// aapt resource value: 0x7F09037A
-			public const int wait_bar = 2131297146;
+			public const int viewfinder_view = 2131297146;
+			
+			// aapt resource value: 0x7F090375
+			public const int viewSort = 2131297141;
+			
+			// aapt resource value: 0x7F090376
+			public const int view_child_watch_video_talk_camera = 2131297142;
+			
+			// aapt resource value: 0x7F090377
+			public const int view_child_watch_video_talk_player = 2131297143;
+			
+			// aapt resource value: 0x7F090378
+			public const int view_offset_helper = 2131297144;
 			
 			// aapt resource value: 0x7F09037B
-			public const int wait_tv = 2131297147;
+			public const int visible = 2131297147;
 			
 			// aapt resource value: 0x7F09037C
-			public const int watting_pb = 2131297148;
-			
-			// aapt resource value: 0x7F09037E
-			public const int webview = 2131297150;
+			public const int wait_bar = 2131297148;
 			
 			// aapt resource value: 0x7F09037D
-			public const int web_login_btn = 2131297149;
+			public const int wait_tv = 2131297149;
 			
-			// aapt resource value: 0x7F09037F
-			public const int wifi_tv = 2131297151;
+			// aapt resource value: 0x7F09037E
+			public const int watting_pb = 2131297150;
 			
 			// aapt resource value: 0x7F090380
-			public const int withText = 2131297152;
+			public const int webview = 2131297152;
+			
+			// aapt resource value: 0x7F09037F
+			public const int web_login_btn = 2131297151;
 			
 			// aapt resource value: 0x7F090381
-			public const int wrap_content = 2131297153;
+			public const int wifi_tv = 2131297153;
 			
 			// aapt resource value: 0x7F090382
-			public const int year = 2131297154;
+			public const int withText = 2131297154;
+			
+			// aapt resource value: 0x7F090383
+			public const int wrap_content = 2131297155;
+			
+			// aapt resource value: 0x7F090384
+			public const int year = 2131297156;
 			
 			static Id()
 			{
@@ -9332,7 +9338,7 @@
 			public const int abc_select_dialog_material = 2131427354;
 			
 			// aapt resource value: 0x7F0B001B
-			public const int activity_add_device_to_acount = 2131427355;
+			public const int activity_add_device_to_acount_ez = 2131427355;
 			
 			// aapt resource value: 0x7F0B001C
 			public const int activity_collect_device_info = 2131427356;
@@ -9437,400 +9443,418 @@
 			public const int auto_wifi_connecting_status_item = 2131427389;
 			
 			// aapt resource value: 0x7F0B003E
-			public const int auto_wifi_net_config = 2131427390;
+			public const int auto_wifi_connecting_status_item_ez = 2131427390;
 			
 			// aapt resource value: 0x7F0B003F
-			public const int auto_wifi_prepare_step_on = 2131427391;
+			public const int auto_wifi_net_config = 2131427391;
 			
 			// aapt resource value: 0x7F0B0040
-			public const int auto_wifi_reset = 2131427392;
+			public const int auto_wifi_prepare_step_on = 2131427392;
 			
 			// aapt resource value: 0x7F0B0041
-			public const int auto_wifi_reset_introduce = 2131427393;
+			public const int auto_wifi_reset = 2131427393;
 			
 			// aapt resource value: 0x7F0B0042
-			public const int biometric_prompt_dialog_content = 2131427394;
+			public const int auto_wifi_reset_introduce = 2131427394;
 			
 			// aapt resource value: 0x7F0B0043
-			public const int cameralist_page = 2131427395;
+			public const int auto_wifi_reset_introduce_ez = 2131427395;
 			
 			// aapt resource value: 0x7F0B0044
-			public const int cameralist_small_item = 2131427396;
+			public const int biometric_prompt_dialog_content = 2131427396;
 			
 			// aapt resource value: 0x7F0B0045
-			public const int capture_activity = 2131427397;
+			public const int cameralist_page = 2131427397;
 			
 			// aapt resource value: 0x7F0B0046
-			public const int cc_activity_widget_countrycode = 2131427398;
+			public const int cameralist_page_ez = 2131427398;
 			
 			// aapt resource value: 0x7F0B0047
-			public const int cc_country_list_item = 2131427399;
+			public const int cameralist_small_item = 2131427399;
 			
 			// aapt resource value: 0x7F0B0048
-			public const int city_config_item = 2131427400;
+			public const int cameralist_small_item_ez = 2131427400;
 			
 			// aapt resource value: 0x7F0B0049
-			public const int ddns_device_ist_page = 2131427401;
+			public const int capture_activity = 2131427401;
 			
 			// aapt resource value: 0x7F0B004A
-			public const int ddns_device_list_item = 2131427402;
+			public const int capture_activity_ez = 2131427402;
 			
 			// aapt resource value: 0x7F0B004B
-			public const int design_bottom_navigation_item = 2131427403;
+			public const int cc_activity_widget_countrycode = 2131427403;
 			
 			// aapt resource value: 0x7F0B004C
-			public const int design_bottom_sheet_dialog = 2131427404;
+			public const int cc_country_list_item = 2131427404;
 			
 			// aapt resource value: 0x7F0B004D
-			public const int design_layout_snackbar = 2131427405;
+			public const int city_config_item = 2131427405;
 			
 			// aapt resource value: 0x7F0B004E
-			public const int design_layout_snackbar_include = 2131427406;
+			public const int city_config_item_ez = 2131427406;
 			
 			// aapt resource value: 0x7F0B004F
-			public const int design_layout_tab_icon = 2131427407;
+			public const int ddns_device_ist_page = 2131427407;
 			
 			// aapt resource value: 0x7F0B0050
-			public const int design_layout_tab_text = 2131427408;
+			public const int ddns_device_list_item = 2131427408;
 			
 			// aapt resource value: 0x7F0B0051
-			public const int design_menu_item_action_area = 2131427409;
+			public const int design_bottom_navigation_item = 2131427409;
 			
 			// aapt resource value: 0x7F0B0052
-			public const int design_navigation_item = 2131427410;
+			public const int design_bottom_sheet_dialog = 2131427410;
 			
 			// aapt resource value: 0x7F0B0053
-			public const int design_navigation_item_header = 2131427411;
+			public const int design_layout_snackbar = 2131427411;
 			
 			// aapt resource value: 0x7F0B0054
-			public const int design_navigation_item_separator = 2131427412;
+			public const int design_layout_snackbar_include = 2131427412;
 			
 			// aapt resource value: 0x7F0B0055
-			public const int design_navigation_item_subheader = 2131427413;
+			public const int design_layout_tab_icon = 2131427413;
 			
 			// aapt resource value: 0x7F0B0056
-			public const int design_navigation_menu = 2131427414;
+			public const int design_layout_tab_text = 2131427414;
 			
 			// aapt resource value: 0x7F0B0057
-			public const int design_navigation_menu_item = 2131427415;
+			public const int design_menu_item_action_area = 2131427415;
 			
 			// aapt resource value: 0x7F0B0058
-			public const int design_text_input_password_icon = 2131427416;
+			public const int design_navigation_item = 2131427416;
 			
 			// aapt resource value: 0x7F0B0059
-			public const int device_discover_item = 2131427417;
+			public const int design_navigation_item_header = 2131427417;
 			
 			// aapt resource value: 0x7F0B005A
-			public const int device_discover_page = 2131427418;
+			public const int design_navigation_item_separator = 2131427418;
 			
 			// aapt resource value: 0x7F0B005B
-			public const int device_setting_page = 2131427419;
+			public const int design_navigation_item_subheader = 2131427419;
 			
 			// aapt resource value: 0x7F0B005C
-			public const int device_video_encrypt_dialog = 2131427420;
-			
-			// aapt resource value: 0x7F0B0068
-			public const int ezopen_realplay_operate_bar = 2131427432;
-			
-			// aapt resource value: 0x7F0B0069
-			public const int ezopen_realplay_operate_bar2 = 2131427433;
+			public const int design_navigation_menu = 2131427420;
 			
 			// aapt resource value: 0x7F0B005D
-			public const int ez_demo_interface_activity = 2131427421;
+			public const int design_navigation_menu_item = 2131427421;
 			
 			// aapt resource value: 0x7F0B005E
-			public const int ez_message_image_page = 2131427422;
+			public const int design_text_input_password_icon = 2131427422;
 			
 			// aapt resource value: 0x7F0B005F
-			public const int ez_message_list_item = 2131427423;
+			public const int device_discover_item = 2131427423;
 			
 			// aapt resource value: 0x7F0B0060
-			public const int ez_message_list_section = 2131427424;
+			public const int device_discover_page = 2131427424;
 			
 			// aapt resource value: 0x7F0B0061
-			public const int ez_message_page = 2131427425;
-			
-			// aapt resource value: 0x7F0B0063
-			public const int ez_playback_list_page = 2131427427;
+			public const int device_setting_page = 2131427425;
 			
 			// aapt resource value: 0x7F0B0062
-			public const int ez_play_control = 2131427426;
-			
-			// aapt resource value: 0x7F0B0064
-			public const int ez_realplay_page = 2131427428;
-			
-			// aapt resource value: 0x7F0B0065
-			public const int ez_realplay_prompt_layout = 2131427429;
-			
-			// aapt resource value: 0x7F0B0066
-			public const int ez_realplay_quality_items = 2131427430;
-			
-			// aapt resource value: 0x7F0B0067
-			public const int ez_remote_playback_page = 2131427431;
-			
-			// aapt resource value: 0x7F0B006A
-			public const int fragment_city_config = 2131427434;
-			
-			// aapt resource value: 0x7F0B006B
-			public const int fragment_search_video = 2131427435;
-			
-			// aapt resource value: 0x7F0B006C
-			public const int fragment_square_video_list = 2131427436;
-			
-			// aapt resource value: 0x7F0B006D
-			public const int hdl_gallery_banner_view_layout = 2131427437;
+			public const int device_video_encrypt_dialog = 2131427426;
 			
 			// aapt resource value: 0x7F0B006E
-			public const int hdl_widget_activity_crop_image = 2131427438;
+			public const int ezopen_realplay_operate_bar = 2131427438;
 			
 			// aapt resource value: 0x7F0B006F
-			public const int hdl_widget_activity_geofence_round = 2131427439;
+			public const int ezopen_realplay_operate_bar2 = 2131427439;
+			
+			// aapt resource value: 0x7F0B0063
+			public const int ez_demo_interface_activity = 2131427427;
+			
+			// aapt resource value: 0x7F0B0064
+			public const int ez_message_image_page = 2131427428;
+			
+			// aapt resource value: 0x7F0B0065
+			public const int ez_message_list_item = 2131427429;
+			
+			// aapt resource value: 0x7F0B0066
+			public const int ez_message_list_section = 2131427430;
+			
+			// aapt resource value: 0x7F0B0067
+			public const int ez_message_page = 2131427431;
+			
+			// aapt resource value: 0x7F0B0069
+			public const int ez_playback_list_page = 2131427433;
+			
+			// aapt resource value: 0x7F0B0068
+			public const int ez_play_control = 2131427432;
+			
+			// aapt resource value: 0x7F0B006A
+			public const int ez_realplay_page = 2131427434;
+			
+			// aapt resource value: 0x7F0B006B
+			public const int ez_realplay_prompt_layout = 2131427435;
+			
+			// aapt resource value: 0x7F0B006C
+			public const int ez_realplay_quality_items = 2131427436;
+			
+			// aapt resource value: 0x7F0B006D
+			public const int ez_remote_playback_page = 2131427437;
 			
 			// aapt resource value: 0x7F0B0070
-			public const int hdl_widget_air_button = 2131427440;
+			public const int fragment_city_config = 2131427440;
 			
 			// aapt resource value: 0x7F0B0071
-			public const int hdl_widget_include_pickerview_topbar = 2131427441;
+			public const int fragment_search_video = 2131427441;
 			
 			// aapt resource value: 0x7F0B0072
-			public const int hdl_widget_layout_basepickerview = 2131427442;
+			public const int fragment_square_video_list = 2131427442;
 			
 			// aapt resource value: 0x7F0B0073
-			public const int hdl_widget_pickerview = 2131427443;
+			public const int hdl_gallery_banner_view_layout = 2131427443;
 			
 			// aapt resource value: 0x7F0B0074
-			public const int hdl_widget_pickerview_options = 2131427444;
+			public const int hdl_widget_activity_crop_image = 2131427444;
 			
 			// aapt resource value: 0x7F0B0075
-			public const int hdl_widget_pickerview_time = 2131427445;
+			public const int hdl_widget_activity_geofence_round = 2131427445;
 			
 			// aapt resource value: 0x7F0B0076
-			public const int item_multi_screen_preview = 2131427446;
+			public const int hdl_widget_air_button = 2131427446;
 			
 			// aapt resource value: 0x7F0B0077
-			public const int lan_device_adapter_item = 2131427447;
+			public const int hdl_widget_include_pickerview_topbar = 2131427447;
 			
 			// aapt resource value: 0x7F0B0078
-			public const int lan_device_login_dialog = 2131427448;
+			public const int hdl_widget_layout_basepickerview = 2131427448;
 			
 			// aapt resource value: 0x7F0B0079
-			public const int layout_camera_view = 2131427449;
+			public const int hdl_widget_pickerview = 2131427449;
 			
 			// aapt resource value: 0x7F0B007A
-			public const int layout_camera_view_soft = 2131427450;
+			public const int hdl_widget_pickerview_options = 2131427450;
 			
 			// aapt resource value: 0x7F0B007B
-			public const int layout_change_playback_rate = 2131427451;
+			public const int hdl_widget_pickerview_time = 2131427451;
 			
 			// aapt resource value: 0x7F0B007C
-			public const int layout_child_watch_video_talk_operation = 2131427452;
+			public const int item_multi_screen_preview = 2131427452;
 			
 			// aapt resource value: 0x7F0B007D
-			public const int layout_dialog_tip = 2131427453;
+			public const int lan_device_adapter_item = 2131427453;
 			
 			// aapt resource value: 0x7F0B007E
-			public const int layout_login_anim = 2131427454;
+			public const int lan_device_login_dialog = 2131427454;
 			
 			// aapt resource value: 0x7F0B007F
-			public const int line_connecting_introduce_activity = 2131427455;
+			public const int layout_camera_view = 2131427455;
 			
 			// aapt resource value: 0x7F0B0080
-			public const int list_section = 2131427456;
+			public const int layout_camera_view_soft = 2131427456;
 			
 			// aapt resource value: 0x7F0B0081
-			public const int loading_text_view = 2131427457;
+			public const int layout_change_playback_rate = 2131427457;
 			
 			// aapt resource value: 0x7F0B0082
-			public const int login_page = 2131427458;
+			public const int layout_child_watch_video_talk_operation = 2131427458;
 			
 			// aapt resource value: 0x7F0B0083
-			public const int message_list_item = 2131427459;
+			public const int layout_dialog_tip = 2131427459;
 			
 			// aapt resource value: 0x7F0B0084
-			public const int message_page = 2131427460;
+			public const int layout_login_anim = 2131427460;
 			
 			// aapt resource value: 0x7F0B0085
-			public const int modify_device_name_page = 2131427461;
+			public const int line_connecting_introduce_activity = 2131427461;
 			
 			// aapt resource value: 0x7F0B0086
-			public const int network_error_retry_page = 2131427462;
-			
-			// aapt resource value: 0x7F0B008A
-			public const int notification_action = 2131427466;
-			
-			// aapt resource value: 0x7F0B008B
-			public const int notification_action_tombstone = 2131427467;
-			
-			// aapt resource value: 0x7F0B008C
-			public const int notification_media_action = 2131427468;
-			
-			// aapt resource value: 0x7F0B008D
-			public const int notification_media_cancel_action = 2131427469;
-			
-			// aapt resource value: 0x7F0B008E
-			public const int notification_template_big_media = 2131427470;
-			
-			// aapt resource value: 0x7F0B008F
-			public const int notification_template_big_media_custom = 2131427471;
-			
-			// aapt resource value: 0x7F0B0090
-			public const int notification_template_big_media_narrow = 2131427472;
-			
-			// aapt resource value: 0x7F0B0091
-			public const int notification_template_big_media_narrow_custom = 2131427473;
-			
-			// aapt resource value: 0x7F0B0092
-			public const int notification_template_custom_big = 2131427474;
-			
-			// aapt resource value: 0x7F0B0093
-			public const int notification_template_icon_group = 2131427475;
-			
-			// aapt resource value: 0x7F0B0094
-			public const int notification_template_lines_media = 2131427476;
-			
-			// aapt resource value: 0x7F0B0095
-			public const int notification_template_media = 2131427477;
-			
-			// aapt resource value: 0x7F0B0096
-			public const int notification_template_media_custom = 2131427478;
-			
-			// aapt resource value: 0x7F0B0097
-			public const int notification_template_part_chronometer = 2131427479;
-			
-			// aapt resource value: 0x7F0B0098
-			public const int notification_template_part_time = 2131427480;
-			
-			// aapt resource value: 0x7F0B0099
-			public const int notifier_alarmloginfo_list_item = 2131427481;
-			
-			// aapt resource value: 0x7F0B009A
-			public const int notifier_page = 2131427482;
+			public const int list_section = 2131427462;
 			
 			// aapt resource value: 0x7F0B0087
-			public const int no_device_more_footer = 2131427463;
+			public const int loading_text_view = 2131427463;
 			
 			// aapt resource value: 0x7F0B0088
-			public const int no_more_footer = 2131427464;
+			public const int login_page = 2131427464;
 			
 			// aapt resource value: 0x7F0B0089
-			public const int no_msg_more_footer = 2131427465;
+			public const int message_list_item = 2131427465;
+			
+			// aapt resource value: 0x7F0B008A
+			public const int message_page = 2131427466;
+			
+			// aapt resource value: 0x7F0B008B
+			public const int modify_device_name_page = 2131427467;
+			
+			// aapt resource value: 0x7F0B008C
+			public const int network_error_retry_page = 2131427468;
+			
+			// aapt resource value: 0x7F0B0090
+			public const int notification_action = 2131427472;
+			
+			// aapt resource value: 0x7F0B0091
+			public const int notification_action_tombstone = 2131427473;
+			
+			// aapt resource value: 0x7F0B0092
+			public const int notification_media_action = 2131427474;
+			
+			// aapt resource value: 0x7F0B0093
+			public const int notification_media_cancel_action = 2131427475;
+			
+			// aapt resource value: 0x7F0B0094
+			public const int notification_template_big_media = 2131427476;
+			
+			// aapt resource value: 0x7F0B0095
+			public const int notification_template_big_media_custom = 2131427477;
+			
+			// aapt resource value: 0x7F0B0096
+			public const int notification_template_big_media_narrow = 2131427478;
+			
+			// aapt resource value: 0x7F0B0097
+			public const int notification_template_big_media_narrow_custom = 2131427479;
+			
+			// aapt resource value: 0x7F0B0098
+			public const int notification_template_custom_big = 2131427480;
+			
+			// aapt resource value: 0x7F0B0099
+			public const int notification_template_icon_group = 2131427481;
+			
+			// aapt resource value: 0x7F0B009A
+			public const int notification_template_lines_media = 2131427482;
 			
 			// aapt resource value: 0x7F0B009B
-			public const int open_ysservice_dialog = 2131427483;
+			public const int notification_template_media = 2131427483;
 			
 			// aapt resource value: 0x7F0B009C
-			public const int password_error_layout = 2131427484;
+			public const int notification_template_media_custom = 2131427484;
 			
 			// aapt resource value: 0x7F0B009D
-			public const int playback_list_page = 2131427485;
+			public const int notification_template_part_chronometer = 2131427485;
 			
 			// aapt resource value: 0x7F0B009E
-			public const int pull_to_refresh_footer = 2131427486;
+			public const int notification_template_part_time = 2131427486;
 			
 			// aapt resource value: 0x7F0B009F
-			public const int pull_to_refresh_header = 2131427487;
-			
-			// aapt resource value: 0x7F0B00AB
-			public const int realplayer_item = 2131427499;
-			
-			// aapt resource value: 0x7F0B00AC
-			public const int realplayer_page = 2131427500;
+			public const int notifier_alarmloginfo_list_item = 2131427487;
 			
 			// aapt resource value: 0x7F0B00A0
-			public const int realplay_control_layout = 2131427488;
+			public const int notifier_page = 2131427488;
+			
+			// aapt resource value: 0x7F0B008D
+			public const int no_device_more_footer = 2131427469;
+			
+			// aapt resource value: 0x7F0B008E
+			public const int no_more_footer = 2131427470;
+			
+			// aapt resource value: 0x7F0B008F
+			public const int no_msg_more_footer = 2131427471;
 			
 			// aapt resource value: 0x7F0B00A1
-			public const int realplay_full_operate_layout = 2131427489;
+			public const int open_ysservice_dialog = 2131427489;
 			
 			// aapt resource value: 0x7F0B00A2
-			public const int realplay_loading_layout = 2131427490;
+			public const int password_error_layout = 2131427490;
 			
 			// aapt resource value: 0x7F0B00A3
-			public const int realplay_operate_bar = 2131427491;
+			public const int playback_list_page = 2131427491;
 			
 			// aapt resource value: 0x7F0B00A4
-			public const int realplay_operate_bar2 = 2131427492;
+			public const int pull_to_refresh_footer = 2131427492;
 			
 			// aapt resource value: 0x7F0B00A5
-			public const int realplay_page = 2131427493;
-			
-			// aapt resource value: 0x7F0B00A6
-			public const int realplay_prompt_layout = 2131427494;
-			
-			// aapt resource value: 0x7F0B00A7
-			public const int realplay_ptz_wnd = 2131427495;
-			
-			// aapt resource value: 0x7F0B00A8
-			public const int realplay_quality_items = 2131427496;
-			
-			// aapt resource value: 0x7F0B00A9
-			public const int realplay_quality_wnd = 2131427497;
-			
-			// aapt resource value: 0x7F0B00AA
-			public const int realplay_talkback_wnd = 2131427498;
-			
-			// aapt resource value: 0x7F0B00AD
-			public const int remote_playback_page = 2131427501;
-			
-			// aapt resource value: 0x7F0B00AE
-			public const int section_list_item = 2131427502;
-			
-			// aapt resource value: 0x7F0B00AF
-			public const int select_camera_no_dialog = 2131427503;
-			
-			// aapt resource value: 0x7F0B00B0
-			public const int select_camera_no_dialog_item = 2131427504;
+			public const int pull_to_refresh_header = 2131427493;
 			
 			// aapt resource value: 0x7F0B00B1
-			public const int select_dialog_item_material = 2131427505;
+			public const int realplayer_item = 2131427505;
 			
 			// aapt resource value: 0x7F0B00B2
-			public const int select_dialog_multichoice_material = 2131427506;
+			public const int realplayer_page = 2131427506;
+			
+			// aapt resource value: 0x7F0B00A6
+			public const int realplay_control_layout = 2131427494;
+			
+			// aapt resource value: 0x7F0B00A7
+			public const int realplay_full_operate_layout = 2131427495;
+			
+			// aapt resource value: 0x7F0B00A8
+			public const int realplay_loading_layout = 2131427496;
+			
+			// aapt resource value: 0x7F0B00A9
+			public const int realplay_operate_bar = 2131427497;
+			
+			// aapt resource value: 0x7F0B00AA
+			public const int realplay_operate_bar2 = 2131427498;
+			
+			// aapt resource value: 0x7F0B00AB
+			public const int realplay_page = 2131427499;
+			
+			// aapt resource value: 0x7F0B00AC
+			public const int realplay_prompt_layout = 2131427500;
+			
+			// aapt resource value: 0x7F0B00AD
+			public const int realplay_ptz_wnd = 2131427501;
+			
+			// aapt resource value: 0x7F0B00AE
+			public const int realplay_quality_items = 2131427502;
+			
+			// aapt resource value: 0x7F0B00AF
+			public const int realplay_quality_wnd = 2131427503;
+			
+			// aapt resource value: 0x7F0B00B0
+			public const int realplay_talkback_wnd = 2131427504;
 			
 			// aapt resource value: 0x7F0B00B3
-			public const int select_dialog_singlechoice_material = 2131427507;
+			public const int remote_playback_page = 2131427507;
 			
 			// aapt resource value: 0x7F0B00B4
-			public const int sms_verify_dialog = 2131427508;
+			public const int section_list_item = 2131427508;
 			
 			// aapt resource value: 0x7F0B00B5
-			public const int square_column_item = 2131427509;
+			public const int select_camera_no_dialog = 2131427509;
 			
 			// aapt resource value: 0x7F0B00B6
-			public const int square_video_item = 2131427510;
+			public const int select_camera_no_dialog_item = 2131427510;
 			
 			// aapt resource value: 0x7F0B00B7
-			public const int srl_classics_footer = 2131427511;
+			public const int select_dialog_item_material = 2131427511;
 			
 			// aapt resource value: 0x7F0B00B8
-			public const int srl_classics_header = 2131427512;
+			public const int select_dialog_multichoice_material = 2131427512;
 			
 			// aapt resource value: 0x7F0B00B9
-			public const int support_simple_spinner_dropdown_item = 2131427513;
+			public const int select_dialog_singlechoice_material = 2131427513;
 			
 			// aapt resource value: 0x7F0B00BA
-			public const int tooltip = 2131427514;
+			public const int sms_verify_dialog = 2131427514;
 			
 			// aapt resource value: 0x7F0B00BB
-			public const int topbar = 2131427515;
+			public const int square_column_item = 2131427515;
 			
 			// aapt resource value: 0x7F0B00BC
-			public const int verifycode_layout = 2131427516;
+			public const int square_video_item = 2131427516;
 			
 			// aapt resource value: 0x7F0B00BD
-			public const int wait_dialog = 2131427517;
+			public const int srl_classics_footer = 2131427517;
 			
 			// aapt resource value: 0x7F0B00BE
-			public const int web_page = 2131427518;
-			
-			// aapt resource value: 0x7F0B00C0
-			public const int zxingscanneractivitylayout = 2131427520;
-			
-			// aapt resource value: 0x7F0B00C1
-			public const int zxingscannerfragmentlayout = 2131427521;
+			public const int srl_classics_header = 2131427518;
 			
 			// aapt resource value: 0x7F0B00BF
-			public const int zxing_layout = 2131427519;
+			public const int support_simple_spinner_dropdown_item = 2131427519;
+			
+			// aapt resource value: 0x7F0B00C0
+			public const int tooltip = 2131427520;
+			
+			// aapt resource value: 0x7F0B00C1
+			public const int topbar = 2131427521;
+			
+			// aapt resource value: 0x7F0B00C2
+			public const int verifycode_layout = 2131427522;
+			
+			// aapt resource value: 0x7F0B00C3
+			public const int wait_dialog = 2131427523;
+			
+			// aapt resource value: 0x7F0B00C4
+			public const int web_page = 2131427524;
+			
+			// aapt resource value: 0x7F0B00C6
+			public const int zxingscanneractivitylayout = 2131427526;
+			
+			// aapt resource value: 0x7F0B00C7
+			public const int zxingscannerfragmentlayout = 2131427527;
+			
+			// aapt resource value: 0x7F0B00C5
+			public const int zxing_layout = 2131427525;
 			
 			static Layout()
 			{
diff --git a/HDL-ON_iOS/.DS_Store b/HDL-ON_iOS/.DS_Store
index 6ebc3fa..96513b5 100644
--- a/HDL-ON_iOS/.DS_Store
+++ b/HDL-ON_iOS/.DS_Store
Binary files differ
diff --git a/HDL-ON_iOS/BlueWifi.cs b/HDL-ON_iOS/BlueWifi.cs
index e5eeff6..aad7a0c 100644
--- a/HDL-ON_iOS/BlueWifi.cs
+++ b/HDL-ON_iOS/BlueWifi.cs
@@ -6,7 +6,7 @@
 namespace HDL_ON
 {
 
-    public class MyBlufiClient 
+    public class MyBlufiClient
     {
 
         HdlBluWi share;
@@ -29,7 +29,7 @@
 
         //public string GetPer()
         //{
-            //share.
+        //share.
         //}
 
 
@@ -40,11 +40,12 @@
         /// <summary>
         /// 璁惧鎼滅储鍒拌摑鐗欒澶囦箣鍚庡埌浠g悊浜嬩欢
         /// </summary>
-        public void SetBlufiDeviceDelegate(Action<string,string> action)
+        public void SetBlufiDeviceDelegate(Action<string, string> action)
         {
-            getBlufiDeviceDelegate = new FBYBleDeviceBackBlock((arg0) => {
-                action?.Invoke(arg0.Name,arg0.Uuid.ToString());
-                if (!string.IsNullOrEmpty(arg0.Name)&& arg0.Name.Contains("BLU"))
+            getBlufiDeviceDelegate = new FBYBleDeviceBackBlock((arg0) =>
+            {
+                action?.Invoke(arg0.Name, arg0.Uuid.ToString());
+                if (!string.IsNullOrEmpty(arg0.Name) && arg0.Name.Contains("BLU"))
                 {
                     Console.WriteLine($"{arg0.Name}  :  {arg0.Uuid}");
                 }
@@ -179,7 +180,7 @@
 
             public override void Blufi_gattPrepared(HdlBlufi.BlufiClient client, BlufiStatusCode status, CBService service, CBCharacteristic writeChar, CBCharacteristic notifyChar)
             {
-                if(status == BlufiStatusCode.Success)
+                if (status == BlufiStatusCode.Success)
                 {
                     MainPage.Log("钃濈墮杩炴帴鎴愬姛");
                 }
@@ -195,7 +196,7 @@
         {
             public override void UpdatedState(CBCentralManager central)
             {
-                
+
                 //throw new NotImplementedException();
             }
             //public override void 
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index e375828..eb0fd00 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1057,26 +1057,102 @@
       <BundleResource Include="Resources\Phone\PirIcon\adddevice.png" />
       <BundleResource Include="Resources\Phone\PirIcon\next.png" />
       <BundleResource Include="Resources\Phone\LogicIcon\selected+.png" />
-      <BundleResource Include="Resources\Phone\PirIcon\1.png" />
-      <BundleResource Include="Resources\Phone\PirIcon\2.png" />
-      <BundleResource Include="Resources\Phone\PirIcon\3.png" />
-      <BundleResource Include="Resources\Phone\PirIcon\4.png" />
-      <BundleResource Include="Resources\Phone\PirIcon\failed.png" />
-      <BundleResource Include="Resources\Phone\PirIcon\icon1.png" />
-      <BundleResource Include="Resources\Phone\PirIcon\icon2.png" />
-      <BundleResource Include="Resources\Phone\PirIcon\left.png" />
-      <BundleResource Include="Resources\Phone\PirIcon\right.png" />
-      <BundleResource Include="Resources\Phone\PirIcon\succeed.png" />
+      <BundleResource Include="Resources\Phone\Public\ProgressMsg.png" />
+      <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\UploadToClound.png" />
+      <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\NetConnectSelect.png" />
+      <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\ConnectSuccess.png" />
+      <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\ConnectSuccessSelect.png" />
+      <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\MiniRemoteControlBigPictrue.png" />
+      <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\UploadToCloundSelect.png" />
+      <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\MiniRemoteControlMenuIcon.png" />
+      <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\WifiAndPhoneConnect.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensortvoc.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorpir.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalai6HtccKFIw3dxo3.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightrgb.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\airFreshstandard.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalracks.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalfan.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorpm25.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\acstandard.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalsocket.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorgas.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorhumidity.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalkoiGhMKwLf2ZP81g.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightcct.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\curtainroller.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irlearn.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightdimming.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorco2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricaltv.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\floorHeatstandard.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\curtainswitch.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\curtainshades.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricaltyqborgovyzytytz.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\musicstandard.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensordoorwindow.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightrgbw.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensortemperature.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\curtaintrietex.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorsmoke.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalQ1RsefNf91tIXyyQ.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irac.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorwater.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightswitch.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irtv.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightrgbw_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irac_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricaltv_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalai6HtccKFIw3dxo3_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtaintrietex_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\floorHeatstandard_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\musicstandard_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalfan_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtainswitch_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightdimming_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightrgbw_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricaltyqborgovyzytytz_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\airFreshstandard_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightrgb_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irtv_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irlearn_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\musicstandard_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalfan_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtainshades_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalkoiGhMKwLf2ZP81g_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irac_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalkoiGhMKwLf2ZP81g_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\acstandard_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightcct_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalracks_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalai6HtccKFIw3dxo3_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightswitch_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtaintrietex_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\airFreshstandard_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\floorHeatstandard_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtainshades_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalQ1RsefNf91tIXyyQ_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricaltyqborgovyzytytz_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightcct_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightrgb_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtainroller_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtainroller_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalQ1RsefNf91tIXyyQ_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irtv_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalsocket_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightswitch_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightdimming_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricaltv_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalsocket_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\acstandard_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irlearn_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtainswitch_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalracks_white.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irmodule.png" />
     </ItemGroup>
     <ItemGroup>
       <ITunesArtwork Include="iTunesArtwork" />
       <ITunesArtwork Include="iTunesArtwork%402x" />
-    </ItemGroup>
-    <ItemGroup>
-      <ProjectReference Include="..\HdlBluWi\Blufi.csproj">
-        <Project>{2DDF4C3C-6998-432E-9F43-6786D82F0630}</Project>
-        <Name>Blufi</Name>
-      </ProjectReference>
     </ItemGroup>
     <ItemGroup>
       <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json" />
@@ -1112,6 +1188,12 @@
       <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640960-1.png" />
       <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\6401136-1.png" />
     </ItemGroup>
+    <ItemGroup>
+      <ProjectReference Include="..\HdlBluWi\Blufi.csproj">
+        <Project>{2DDF4C3C-6998-432E-9F43-6786D82F0630}</Project>
+        <Name>Blufi</Name>
+      </ProjectReference>
+    </ItemGroup>
     <Import Project="..\HDL_ON\HDL_ON.projitems" Label="Shared" Condition="Exists('..\HDL_ON\HDL_ON.projitems')" />
     <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
     <ProjectExtensions>
diff --git a/HDL-ON_iOS/Info.plist b/HDL-ON_iOS/Info.plist
index d5aace1..52e5b75 100644
--- a/HDL-ON_iOS/Info.plist
+++ b/HDL-ON_iOS/Info.plist
@@ -70,6 +70,8 @@
 	<key>UISupportedInterfaceOrientations</key>
 	<array>
 		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
 	</array>
 	<key>UIAppFonts</key>
 	<array>
@@ -102,9 +104,9 @@
 	<key>UIStatusBarStyle</key>
 	<string>UIStatusBarStyleLightContent</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.1.202103051</string>
+	<string>1.1.202103101</string>
 	<key>CFBundleVersion</key>
-	<string>202103051</string>
+	<string>202103101</string>
 	<key>NSLocationWhenInUseUsageDescription</key>
 	<string>Use geographic location to provide services such as weather</string>
 	<key>NSAppleMusicUsageDescription</key>
diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini
index b52d360..765e310 100644
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -411,12 +411,93 @@
 426=Air dry time
 427=Disinfect time
 428=Anion Time
-429=h
-430=m
 
+429=H
+430=Min
+431=You are currently adding any platform devices to
+432=Other platform equipment is supported by third party service provider
+433=Water valve
+434=Time switch
+435=Remote control
 
-1002=Anion 
-	
+1000=Indoor Humidity
+1001=V-chip
+1002=Anion
+1003=Sterilization
+1004=Humidification
+1005=Filter Element Reset
+1006=Lighting
+1007=Automatic
+1008=Manual
+1009=Strong
+1010=Sleep
+1011=Timing
+1012=Wind Speed
+1013=Gear
+1014=Please confirm whether the filter element has been reset and operate the equipment according to the instruction manual for the filter element life to be timed again
+1015=Low Gear
+1016=Mid Gear
+1017=High Gear
+1018=Timing Setting
+1019=Hour
+1020=Filter Element Time锛�
+1021=Air Cleaner
+1022=Current wind speed
+1023=Cancel Timing
+1024=Floor Sweeping Robot
+1025=Suction
+1026=1st Gear
+1027=2nd Gear
+1028=3rd Gear
+1029=Charge
+1030=Voice
+1031=Mute
+1032=Cleaning Mode
+1033=Consumables Management
+1034=History
+1035=Automatic
+1036=Random
+1037=Wall
+1038=Spiral
+1039=Total Clean Area
+1040=Total Clean Time
+1041=Remaining life of side brush
+1042=Residual life of roller brush
+1043=Remaining life of filter screen
+1044=Reset edge brush
+1045=Reset roll brush
+1046=Reset screen
+1047=Confirm to Reset edge brush?
+1048=Confirm to Reset roll brush?
+1049=Confirm to Reset screen?
+1050=Add Device
+1051=Mini Intelligent Remote Control
+1052=Add Infrared Remote Control
+1053=Press the infrared remote control button{0}for 10 seconds and the indicator light{0}flashes blue quickly
+1054=Please make sure your Bluetooth{0}is on and searchable
+1055=Next Step
+1056=Device searching...
+1057=No infrared remote control found
+1058=1.Please check whether the device is{0}   powered on normally{0}2.Please check whether the Bluetooth{0}   function is turned on normally{0}3.Please check whether the indicator{0}    light is flashing blue
+1059=Search Again
+1060=Connect WiFi
+1061=At present,it only supports 2.4G WiFi network{0}and does not support WiFi names{0}with Chinese characters
+1062=Password
+1063=Connecting...
+1064=Please make infrared remote control{0}as close as possible to WiFi router
+1065=Network Link
+1066=Upload to cloud
+1067=Connect success
+1068=1.Please check whether the device is{0}   powered on normally{0}2.Please turn on the Bluetooth function{0}3.Press the button for 10s and the indicator{0}   light will be on
+1069=Add Fail
+1070=Add Success
+1071=You can start using the infrared{0}remote control!
+1072=Start using
+1073=Please turn on Bluetooth
+1074=Location information(GBS) unavailable
+1075=Network unavailable
+1076=Select infrared remote control	
+
 5000=Music
 5001=Group
 5002=Setting
@@ -1093,6 +1174,11 @@
 428=璐熺瀛愭椂闂�
 429=灏忔椂
 430=鍒嗛挓
+431=浣犲綋鍓嶈繕涓烘坊鍔犱换浣曞钩鍙拌澶�
+432=鍏朵粬骞冲彴璁惧鍧囩敱绗笁鏂规湇鍔″晢鎻愪緵鏀寔
+433=姘撮榾
+434=瀹氭椂寮�鍏�
+435=閬ユ帶鍣�
 
 
 1000=瀹ゅ唴婀垮害
@@ -1142,9 +1228,36 @@
 1044=閲嶇疆杈瑰埛
 1045=閲嶇疆婊氬埛
 1046=閲嶇疆婊ょ綉
-1047=鏄惁閲嶇疆杈瑰埛
-1048=鏄惁閲嶇疆婊氬埛
-1049=鏄惁閲嶇疆婊ょ綉
+1047=鏄惁閲嶇疆杈瑰埛?
+1048=鏄惁閲嶇疆婊氬埛?
+1049=鏄惁閲嶇疆婊ょ綉?
+1050=娣诲姞璁惧
+1051=mini鏅鸿兘閬ユ帶鍣�
+1052=娣诲姞绾㈠閬ユ帶
+1053=闀挎寜绾㈠閬ユ帶鍣ㄦ寜閽�10绉掞紝鎸囩ず鐏摑鑹插揩闂�
+1054=璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
+1055=涓嬩竴姝�
+1056=璁惧鎼滅储涓�...
+1057=娌℃湁鍙戠幇绾㈠閬ユ帶鍣�
+1058=1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽妫�鏌ヨ摑鐗欏姛鑳芥槸鍚︽甯稿紑鍚瘂0}3銆佽妫�鏌ユ寚绀虹伅鏄惁钃濊壊蹇棯鐘舵��
+1059=閲嶆柊鎼滅储
+1060=杩炴帴WiFi
+1061=鐩墠鍙敮鎸�2.4G WiFi缃戠粶{0}鏆備笉鏀寔甯︽湁涓枃瀛楃鐨刉iFi鍚嶇О
+1062=瀵嗙爜
+1063=姝e湪杩炴帴涓�...
+1064=璇疯绾㈠閬ユ帶灏介噺鎺ヨ繎WIFI璺敱鍣�
+1065=缃戠粶閾炬帴涓�
+1066=涓婁紶鍒颁簯
+1067=杩炴帴鎴愬姛
+1068=1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽寮�鍚摑鐗欏姛鑳絳0}3銆佸苟闀挎寜鎸夐挳10s锛屾寚绀虹伅甯镐寒
+1069=娣诲姞澶辫触
+1070=娣诲姞鎴愬姛
+1071=鍙互寮�濮嬩娇鐢ㄧ孩澶栭仴鎺у姛鑳斤紒
+1072=寮�濮嬩娇鐢�
+1073=璇锋墦寮�钃濈墮
+1074=浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
+1075=缃戠粶涓嶅彲鐢�
+1076=閫夋嫨绾㈠閬ユ帶鍣�
 
 5000=闊充箰
 5001=缁勫悎
@@ -1273,6 +1386,63 @@
 6076=缂栬緫淇℃伅
 
 
+6015=鍦ㄧ嚎
+6016=绂荤嚎
+6017=鐗堟湰鍙�
+6018=璇疯緭鍏ラ仴鎺у櫒鍚嶇О
+6019=鎻愮ず锛氶仴鎺у櫒鍒涘缓鍚庡彲鍦ㄥ姛鑳�-鐢靛櫒鍒嗙被{\r\n}鏌ユ壘浣跨敤
+6020=鎺ㄨ崘鎸夐敭
+6021=璇疯緭鍏ユ寜閿悕绉�
+6022=涓嬩竴姝�
+6023=鐢垫簮
+6024=闊抽噺+
+6025=闊抽噺-
+6026=棰戦亾+
+6027=棰戦亾-
+6028=涓�
+6029=涓�
+6030=宸�
+6031=鍙�
+6032=闈欓煶
+6034=纭
+6035=鎾斁
+6037=閫�鍑�
+6038=鑿滃崟
+6039=鏆傚仠
+6040=杩斿洖
+6041=鍋滄
+6042=涓婚〉
+6043=蹇繘
+6044=蹇��
+6045=瀹氭椂
+6046=澶嶅埗閬ユ帶鍔熻兘
+6047=瀵瑰噯閬ユ帶鍣ㄤ腑蹇冩寜涓嬬浉鍚屾寜閿�
+6048=鏅鸿兘閬ユ帶鍣�
+6049=娣诲姞鎸夐敭
+6050=*闀挎寜鍙繘琛岃嚜瀹氫箟鎺掑簭
+6051=瀹屾垚
+6052=娣诲姞鎴愬姛
+6053=鍙埌鍒嗙被-鍔熻兘-鐢靛櫒鎿嶄綔浣跨敤
+6054=鎵�灞炲垎绫�
+6055=閬ユ帶鍣ㄥ悕绉�
+6056=鎵�灞炲尯鍩�
+6057=缁х画娣诲姞
+6058=鐢靛櫒
+6059=娣诲姞澶辫触
+6060=閲嶈瘯
+6061=鍖归厤閬ユ帶鍣�
+6062=璇风偣鍑讳互涓嬫寜閽�
+6063=纭璁惧鏄惁鏈夊搷搴�
+6064=鎺у埗澶辫触
+6065=鎺у埗鎴愬姛
+6066=鐢垫簮寮�
+6067=妯″紡鍒跺喎
+6068=椋庨�熶腑椋�
+6069=娓╁害26鈩�
+6070=鍒犻櫎璁惧
+6071=淇敼鍚嶅瓧
+6072=纭鍒犻櫎
+6073=鍙栨秷
 
 7000=鏂板缓鑷姩鍖�
 7001=缂栬緫鑷姩鍖�
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/AC/More.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AC/More.png
new file mode 100644
index 0000000..bc89ac6
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AC/More.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/.DS_Store b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/.DS_Store
index 3f51231..76483dd 100644
--- a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/.DS_Store
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/.DS_Store
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png
new file mode 100644
index 0000000..66155c5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png
new file mode 100644
index 0000000..32e354e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png
new file mode 100644
index 0000000..23f6005
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png
new file mode 100644
index 0000000..9a40fd6
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png
new file mode 100644
index 0000000..5ae946e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png
new file mode 100644
index 0000000..1ff8d10
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png
new file mode 100644
index 0000000..9053f13
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png
new file mode 100644
index 0000000..01a5a48
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png
new file mode 100644
index 0000000..220ff6e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png
new file mode 100644
index 0000000..f74c97d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png
new file mode 100644
index 0000000..e3671a2
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png
new file mode 100644
index 0000000..259e176
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png
new file mode 100644
index 0000000..3caf309
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png
new file mode 100644
index 0000000..58dbb2d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png
new file mode 100644
index 0000000..aab3b24
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png
new file mode 100644
index 0000000..48e6784
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png
new file mode 100644
index 0000000..c59a2e5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png
new file mode 100644
index 0000000..8c5ead5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png
new file mode 100644
index 0000000..e25af0b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png
new file mode 100644
index 0000000..4e2f1df
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png
new file mode 100644
index 0000000..0e89579
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png
new file mode 100644
index 0000000..4845fa2
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png
new file mode 100644
index 0000000..84ff63d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png
new file mode 100644
index 0000000..1fd6e8e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png
new file mode 100644
index 0000000..d28c4af
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png
new file mode 100644
index 0000000..1f42e9f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png
new file mode 100644
index 0000000..c59a2e5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png
new file mode 100644
index 0000000..8c5ead5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png
new file mode 100644
index 0000000..d44a273
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png
new file mode 100644
index 0000000..06e28c0
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png
new file mode 100644
index 0000000..66155c5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png
new file mode 100644
index 0000000..32e354e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png
new file mode 100644
index 0000000..50f52ea
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png
new file mode 100644
index 0000000..80addfe
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png
new file mode 100644
index 0000000..d28c4af
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png
new file mode 100644
index 0000000..1f42e9f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png
new file mode 100644
index 0000000..5e07518
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png
new file mode 100644
index 0000000..cb36722
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png
new file mode 100644
index 0000000..b40b6d9
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png
new file mode 100644
index 0000000..f18a303
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png
new file mode 100644
index 0000000..5e07518
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png
new file mode 100644
index 0000000..cb36722
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png
new file mode 100644
index 0000000..5e07518
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png
new file mode 100644
index 0000000..cb36722
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png
new file mode 100644
index 0000000..9df7593
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png
new file mode 100644
index 0000000..79b5a76
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png
new file mode 100644
index 0000000..512f3eb
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png
new file mode 100644
index 0000000..85065ec
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/acstandard.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/acstandard.png
new file mode 100644
index 0000000..6d7221b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/acstandard.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/airFreshstandard.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/airFreshstandard.png
new file mode 100644
index 0000000..6657bae
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/airFreshstandard.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainroller.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainroller.png
new file mode 100644
index 0000000..10bdb27
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainroller.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainshades.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainshades.png
new file mode 100644
index 0000000..abeae75
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainshades.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainswitch.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainswitch.png
new file mode 100644
index 0000000..8ce4669
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainswitch.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtaintrietex.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtaintrietex.png
new file mode 100644
index 0000000..0eeb3a0
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtaintrietex.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png
new file mode 100644
index 0000000..f299156
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png
new file mode 100644
index 0000000..8486852
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalfan.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalfan.png
new file mode 100644
index 0000000..0447c4d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalfan.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png
new file mode 100644
index 0000000..ed0735d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalracks.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalracks.png
new file mode 100644
index 0000000..6f10d54
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalracks.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalsocket.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalsocket.png
new file mode 100644
index 0000000..6a324db
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalsocket.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltv.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltv.png
new file mode 100644
index 0000000..7f9045f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltv.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png
new file mode 100644
index 0000000..0447c4d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/floorHeatstandard.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/floorHeatstandard.png
new file mode 100644
index 0000000..c067812
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/floorHeatstandard.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irac.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irac.png
new file mode 100644
index 0000000..6d7221b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irac.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irlearn.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irlearn.png
new file mode 100644
index 0000000..f6654d9
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irlearn.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irmodule.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irmodule.png
new file mode 100644
index 0000000..5bb5bb2
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irmodule.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irtv.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irtv.png
new file mode 100644
index 0000000..7f9045f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irtv.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightcct.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightcct.png
new file mode 100644
index 0000000..9fabb8e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightcct.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightdimming.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightdimming.png
new file mode 100644
index 0000000..6fd97b5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightdimming.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgb.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgb.png
new file mode 100644
index 0000000..9fabb8e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgb.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgbw.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgbw.png
new file mode 100644
index 0000000..9fabb8e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgbw.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightswitch.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightswitch.png
new file mode 100644
index 0000000..0aa1f98
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightswitch.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/musicstandard.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/musicstandard.png
new file mode 100644
index 0000000..d522bf3
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/musicstandard.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorco2.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorco2.png
new file mode 100644
index 0000000..4d52fc1
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorco2.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensordoorwindow.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensordoorwindow.png
new file mode 100644
index 0000000..6f82b1f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensordoorwindow.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorgas.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorgas.png
new file mode 100644
index 0000000..6e05b01
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorgas.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorhumidity.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorhumidity.png
new file mode 100644
index 0000000..3549ac7
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorhumidity.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpir.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpir.png
new file mode 100644
index 0000000..5afa201
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpir.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpm25.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpm25.png
new file mode 100644
index 0000000..2f07a0b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpm25.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorsmoke.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorsmoke.png
new file mode 100644
index 0000000..245f9de
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorsmoke.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortemperature.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortemperature.png
new file mode 100644
index 0000000..d852749
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortemperature.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortvoc.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortvoc.png
new file mode 100644
index 0000000..a37cc0e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortvoc.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorwater.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorwater.png
new file mode 100644
index 0000000..57b566a
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorwater.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccess.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccess.png
new file mode 100644
index 0000000..8c6b86e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccess.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png
new file mode 100644
index 0000000..224fd3f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png
new file mode 100644
index 0000000..a6ccf0a
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png
new file mode 100644
index 0000000..be9906d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/NetConnectSelect.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/NetConnectSelect.png
new file mode 100644
index 0000000..1c6cbfe
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/NetConnectSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToClound.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToClound.png
new file mode 100644
index 0000000..ffef099
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToClound.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png
new file mode 100644
index 0000000..fe57fe5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png
new file mode 100644
index 0000000..4039574
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/Infraredtreasure.png b/HDL-ON_iOS/Resources/Phone/PirIcon/Infraredtreasure.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/adddevice.png b/HDL-ON_iOS/Resources/Phone/PirIcon/adddevice.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/addlbuton.png b/HDL-ON_iOS/Resources/Phone/PirIcon/addlbuton.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/air.png b/HDL-ON_iOS/Resources/Phone/PirIcon/air.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/custom.png b/HDL-ON_iOS/Resources/Phone/PirIcon/custom.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/del.png b/HDL-ON_iOS/Resources/Phone/PirIcon/del.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/delbuton.png b/HDL-ON_iOS/Resources/Phone/PirIcon/delbuton.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/dropdown.png b/HDL-ON_iOS/Resources/Phone/PirIcon/dropdown.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/dvd.png b/HDL-ON_iOS/Resources/Phone/PirIcon/dvd.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/fan.png b/HDL-ON_iOS/Resources/Phone/PirIcon/fan.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/next.png b/HDL-ON_iOS/Resources/Phone/PirIcon/next.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/offline.png b/HDL-ON_iOS/Resources/Phone/PirIcon/offline.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/online.png b/HDL-ON_iOS/Resources/Phone/PirIcon/online.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/priequipment.png b/HDL-ON_iOS/Resources/Phone/PirIcon/priequipment.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/projector.png b/HDL-ON_iOS/Resources/Phone/PirIcon/projector.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/search.png b/HDL-ON_iOS/Resources/Phone/PirIcon/search.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/stb.png b/HDL-ON_iOS/Resources/Phone/PirIcon/stb.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/tv.png b/HDL-ON_iOS/Resources/Phone/PirIcon/tv.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/Public/ProgressMsg.png b/HDL-ON_iOS/Resources/Phone/Public/ProgressMsg.png
new file mode 100644
index 0000000..e0255b8
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/Public/ProgressMsg.png
Binary files differ
diff --git a/HDL_ON/.DS_Store b/HDL_ON/.DS_Store
index 369c06c..b92307c 100644
--- a/HDL_ON/.DS_Store
+++ b/HDL_ON/.DS_Store
Binary files differ
diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs
index 3141f5d..1517a67 100644
--- a/HDL_ON/Common/ApiUtlis.cs
+++ b/HDL_ON/Common/ApiUtlis.cs
@@ -356,12 +356,15 @@
                 catch { }
                 finally
                 {
-                    #region 璇诲彇鏈湴鏁版嵁
-                    //璇诲彇闊充箰淇℃伅
-                    UI.Music.A31MusicModel.ReadMusicStates();
-                    //鎼滅储缃戝叧
-                    DriverLayer.Control.Ins.SearchLoaclGateway();
-                    #endregion
+                    if (DB_ResidenceData.Instance.CurrentRegion != null)
+                    {
+                        #region 璇诲彇鏈湴鏁版嵁
+                        //璇诲彇闊充箰淇℃伅
+                        UI.Music.A31MusicModel.ReadMusicStates();
+                        //鎼滅储缃戝叧
+                        DriverLayer.Control.Ins.SearchLoaclGateway();
+                        #endregion
+                    }
                 }
             })
             { IsBackground = true }.Start();
diff --git a/HDL_ON/Common/FileUtlis.cs b/HDL_ON/Common/FileUtlis.cs
index 0d3e2f2..63a3e07 100644
--- a/HDL_ON/Common/FileUtlis.cs
+++ b/HDL_ON/Common/FileUtlis.cs
@@ -48,6 +48,10 @@
         {
             get
             {
+                if(DB_ResidenceData.Instance.CurrentRegion == null || DB_ResidenceData.Instance.CurrentRegion.RegionID == null)
+                {
+                    return AccountPath;
+                }
                 if (string.IsNullOrEmpty(regionPath) || !regionPath.Contains(DB_ResidenceData.Instance.CurrentRegion.RegionID ))
                 {
                     regionPath = Path.Combine(AccountPath, DB_ResidenceData.Instance.CurrentRegion.RegionID);
@@ -305,6 +309,9 @@
                         }
                     }
                 });
+            }else
+            {
+                action?.Invoke();
             }
         }
 
diff --git a/HDL_ON/Common/HDLCommon.cs b/HDL_ON/Common/HDLCommon.cs
index a19d240..70b5864 100644
--- a/HDL_ON/Common/HDLCommon.cs
+++ b/HDL_ON/Common/HDLCommon.cs
@@ -537,6 +537,12 @@
                                     if (b)
                                     {
                                         Android.Content.Intent intent = new Android.Content.Intent();
+                                        var bundle = new Android.OS.Bundle();
+                                        //浼犻�抧ame鍙傛暟涓簍inyphp
+                                        bundle.PutString("Token", ezChildAccessToken.accessToken);
+                                        bundle.PutString("HdlToken", UserInfo.Current.LoginTokenString);
+                                        bundle.PutString("Url", OnAppConfig.Instance.RequestHttpsHost);
+                                        intent.PutExtras(bundle);
                                         intent.SetComponent(new Android.Content.ComponentName(Shared.Application.Activity, "com.videogo.MainActivity"));
                                         Shared.Application.Activity.StartActivity(intent);
                                     }
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index ab3559c..3d2d9c9 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -4,6 +4,11 @@
 {
     public static class StringId
     {
+        public const int RemoteControl = 435;
+        public const int TimeSwitch = 434;
+        public const int WaterValve = 433;
+        public const int Use3tyBrandListTip = 432;
+        public const int Not3tyBrandListTip = 431;
         public const int MinuteUint = 430;
         public const int HourUint = 429;
         public const int AnionTime = 428;
@@ -622,7 +627,115 @@
         /// <summary>
         /// 鏄惁閲嶇疆婊ょ綉
         /// </summary>
-        public const int ResetFilterScreenMsg = 1049;
+        public const int ResetFilterScreenMsg = 1049;
+        /// <summary>
+        /// 娣诲姞璁惧
+        /// </summary>
+        public const int AddDevice = 1050;
+        /// <summary>
+        /// mini鏅鸿兘閬ユ帶鍣�
+        /// </summary>
+        public const int MiniIntelligentRemoteControl = 1051;
+        /// <summary>
+        /// 娣诲姞绾㈠閬ユ帶
+        /// </summary>
+        public const int AddInfraredRemoteControl = 1052;
+        /// <summary>
+        /// 闀挎寜绾㈠閬ユ帶鍣ㄦ寜閽�10绉掞紝鎸囩ず鐏摑鑹插揩闂�
+        /// </summary>
+        public const int AddInfraredRemoteControlMsg1 = 1053;
+        /// <summary>
+        /// 璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
+        /// </summary>
+        public const int AddInfraredRemoteControlMsg2 = 1054;
+        /// <summary>
+        /// 涓嬩竴姝�
+        /// </summary>
+        public const int Next = 1055;
+        /// <summary>
+        /// 璁惧鎼滅储涓�...
+        /// </summary>
+        public const int SearchingDevice = 1056;
+        /// <summary>
+        /// 娌℃湁鍙戠幇绾㈠閬ユ帶鍣�
+        /// </summary>
+        public const int NoInfraredRemoteControlFound = 1057;
+        /// <summary>
+        /// 1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽妫�鏌ヨ摑鐗欏姛鑳芥槸鍚︽甯稿紑鍚瘂0}3銆佽妫�鏌ユ寚绀虹伅鏄惁钃濊壊蹇棯鐘舵��
+        /// </summary>
+        public const int AddInfraredRemoteControlMsg3 = 1058;
+        /// <summary>
+        /// 閲嶆柊鎼滅储
+        /// </summary>
+        public const int ReSearch = 1059;
+        /// <summary>
+        /// 杩炴帴WiFi
+        /// </summary>
+        public const int ConnectWiFi = 1060;
+        /// <summary>
+        /// 鐩墠鍙敮鎸�2.4G WiFi缃戠粶{0}鏆備笉鏀寔甯︽湁涓枃瀛楃鐨刉iFi鍚嶇О
+        /// </summary>
+        public const int AddInfraredRemoteControlMsg4 = 1061;
+        /// <summary>
+        /// 瀵嗙爜
+        /// </summary>
+        public const int Password = 1062;
+        /// <summary>
+        /// 姝e湪杩炴帴涓�...
+        /// </summary>
+        public const int NowConnectting = 1063;
+        /// <summary>
+        /// 璇疯绾㈠閬ユ帶灏介噺鎺ヨ繎WIFI璺敱鍣�
+        /// </summary>
+        public const int AddInfraredRemoteControlMsg5 = 1064;
+        /// <summary>
+        /// 缃戠粶閾炬帴涓�
+        /// </summary>
+        public const int InTheNetworkLink = 1065;
+        /// <summary>
+        /// 涓婁紶鍒颁簯
+        /// </summary>
+        public const int UploadToCloud = 1066;
+        /// <summary>
+        /// 杩炴帴鎴愬姛
+        /// </summary>
+        public const int ConnectSuccess = 1067;
+        /// <summary>
+        /// 1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽寮�鍚摑鐗欏姛鑳絳0}3銆佸苟闀挎寜鎸夐挳10s锛屾寚绀虹伅甯镐寒
+        /// </summary>
+        public const int AddInfraredRemoteControlMsg6 = 1068;
+        /// <summary>
+        /// 娣诲姞澶辫触
+        /// </summary>
+        public const int AddFail = 1069;
+        /// <summary>
+        /// 娣诲姞鎴愬姛
+        /// </summary>
+        public const int AddSuccess = 1070;
+        /// <summary>
+        /// 鍙互寮�濮嬩娇鐢ㄧ孩澶栭仴鎺у姛鑳斤紒
+        /// </summary>
+        public const int AddInfraredRemoteControlMsg7 = 1071;
+        /// <summary>
+        /// 寮�濮嬩娇鐢�
+        /// </summary>
+        public const int StartUse = 1072;
+        /// <summary>
+        /// 璇锋墦寮�钃濈墮
+        /// </summary>
+        public const int PleaseTurnOnBluetooth = 1073;
+        /// <summary>
+        /// 浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
+        /// </summary>
+        public const int GbsIsNotAvailable = 1074;
+        /// <summary>
+        /// 缃戠粶涓嶅彲鐢�
+        /// </summary>
+        public const int NetworkIsNotAvailable = 1075;
+        /// <summary>
+        /// 閫夋嫨绾㈠閬ユ帶鍣�
+        /// </summary>
+        public const int ChooseInfraredRemoteControl = 1076;
 
 
 
diff --git a/HDL_ON/Common/Utlis.cs b/HDL_ON/Common/Utlis.cs
index e2c5604..37e1aa8 100644
--- a/HDL_ON/Common/Utlis.cs
+++ b/HDL_ON/Common/Utlis.cs
@@ -42,6 +42,7 @@
 			{
 				Text = mes,
 				CloseTime = closeTime,
+				MaxWidth = Application.GetRealWidth(300),
 				Direction = AMPopTipDirection.None
 			};
 			tip.Show(MainPage.BaseView);
@@ -273,7 +274,7 @@
 		}
 
 		/// <summary>
-        /// 
+        /// 鏃堕棿鎴宠浆鏃堕棿瀛楃涓�
         /// </summary>
         /// <param name="unixTimeStamp"></param>
         /// <param name="format"></param>
diff --git a/HDL_ON/DAL/DriverLayer/A_Protocol_Common.cs b/HDL_ON/DAL/DriverLayer/A_Protocol_Common.cs
index be70231..ecd149d 100644
--- a/HDL_ON/DAL/DriverLayer/A_Protocol_Common.cs
+++ b/HDL_ON/DAL/DriverLayer/A_Protocol_Common.cs
@@ -86,6 +86,17 @@
             }
         }
         /// <summary>
+        /// 鏈湴鎺у埗绾㈠璁惧鍔熻兘涓婚
+        /// </summary>
+        public string ControlIrFunctionTopic
+        {
+            get
+            {
+                return $"/base/${Control.Ins.GatewayId}/thing/property/down";
+            }
+        }
+
+        /// <summary>
         /// 璇诲彇鍔熻兘鐘舵��
         /// </summary>
         public string ReadStatus
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index 106ed8e..de9a955 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -50,15 +50,15 @@
                 return _msg_id++;
             }
         }
-        /// <summary>
-        /// 鑾峰彇13浣嶆椂闂存埑
-        /// </summary>
-        /// <returns></returns>
-        public string Get_TimeStamp()
-        {
-            long t = DateTime.Now.Ticks / 10000;
-            return t.ToString();
-        }
+        ///// <summary>
+        ///// 鑾峰彇13浣嶆椂闂存埑
+        ///// </summary>
+        ///// <returns></returns>
+        //public string Get_TimeStamp()
+        //{
+        //    long t = DateTime.Now.Ticks / 10000;
+        //    return t.ToString();
+        //}
 
         /// <summary>
         /// 鏄惁鎼滅储鏈湴缃戝叧鎴愬姛
@@ -229,7 +229,7 @@
         public void SearchLoaclGateway()
         {
             //2021-01-15 : 浣忓畢娌℃湁缁戝畾缃戝叧鐨勬椂鍊欎笉鐢ㄦ悳绱紝骞朵笖涓嶈兘閾炬帴mqtt
-            if(DB_ResidenceData.Instance.HomeGateway == null)
+            if(DB_ResidenceData.Instance.HomeGateway == null || string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.gatewayId))
             {
                 return;
             }
@@ -603,6 +603,7 @@
                 }
 
                 MainPage.Log($"灞�鍩熺綉淇℃伅: {receiveObj.Topic}");
+                MainPage.Log($"鍐呭: {res[1]}");
 
 
                 //楠岃瘉鏈夋晥鏁版嵁闀垮害
@@ -613,13 +614,14 @@
                 //}
                 receiveObj.BodyDataString = res[1];
 
-                var bodyJObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]);
-                if (bodyJObj == null)
-                {
-                    return receiveObj;
-                }
                 if (receiveObj.Topic == CommunicationTopic.SearchLoaclGatewayReply)
                 {
+                    var bodyJObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]);
+                    if (bodyJObj == null)
+                    {
+                        return receiveObj;
+                    }
+
                     var device = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceModule>(bodyJObj.objects.ToString());
                     if (device.device_mac == DB_ResidenceData.Instance.residenceGatewayMAC)
                     {
@@ -643,6 +645,11 @@
                 {
                     //TODO 鏆傛椂涓嶄紶姝g‘鐨勬暟鎹笂鍘伙紝濡傛灉鍚庨潰瑕佷紭鍖栧墠闈㈣繖浜涗唬鐮�
                     UpdataFunctionStatus(receiveObj.BodyDataString, null);
+                }
+                else
+                {
+                    //涓�浜涚壒娈婄殑涓婚澶勭悊(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣�)
+                    Stan.HdlCloudReceiveLogic.Current.CloudOverallMsgReceiveEx(receiveObj.Topic, receiveObj.BodyDataString);
                 }
             }
             return receiveObj;
@@ -689,6 +696,7 @@
                         MainPage.Log($"A鍗忚鏇存柊鐘舵��:{revString}");
                         foreach (var attr in updateTemp.status)
                         {
+                            localFunction.time_stamp = temp.time_stamp;
                             localFunction.SetAttrState(attr.key, attr.value);
                         }
 
diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index d4762a2..35e8539 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -957,7 +957,7 @@
         {
             try
             {
-                var sendJob = new JObject { { "id", Control.Ins.msg_id.ToString() }, { "time_stamp", (DateTime.Now.Ticks / 100000).ToString() } };
+                var sendJob = new JObject { { "id", Control.Ins.msg_id.ToString() }, { "time_stamp", Utlis.GetTimestamp ()} };
                 var bodyString = JsonConvert.SerializeObject(sendJob);
                 
                 var sendBytes = Control.Ins.ConvertSendBodyData(CommunicationTopic.SearchLoaclGateway, bodyString);
diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs
index a3fe1fe..0acf399 100644
--- a/HDL_ON/DAL/Mqtt/MqttClient.cs
+++ b/HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -11,6 +11,7 @@
 using HDL_ON.DriverLayer;
 using HDL_ON.Entity;
 using HDL_ON.UI;
+using HDL_ON.DAL.Server;
 
 namespace HDL_ON.DAL.Mqtt
 {
@@ -198,16 +199,37 @@
                         QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
                     };
                     //App璁㈤槄閬ユ帶鍣ㄨ嚜瀛︽寜閿涔犳垚鍔熼�氱煡
-                    var study = new MqttTopicFilter()
+                    var pirStudy = new MqttTopicFilter()
                     {
                         Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/irCodeStudyDone/up",
                         QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
                     };
+                    #region 鏁版嵁鏇存柊鎺ㄩ�佷富棰�
+                    //appHomeRefresh锛氫綇瀹呮暟鎹埛鏂伴�氱煡
+                    var appHomeRefresh = new MqttTopicFilter()
+                    {
+                        Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/appHomeRefresh/up",
+                        QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
+                    };
+                    //appRoomRefresh锛氭埧闂存暟鎹埛鏂伴�氱煡
+                    var appRoomRefresh = new MqttTopicFilter()
+                    {
+                        Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/appRoomRefresh/up",
+                        QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
+                    };
+                    //appDeviceRefresh锛氳澶囨暟鎹埛鏂伴�氱煡
+                    var appDeviceRefresh = new MqttTopicFilter()
+                    {
+                        Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/appDeviceRefresh/up",
+                        QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
+                    };
+                    #endregion
+
 
                     Utlis.WriteLine("寮�濮嬭闃咃紒");
                     var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] {
-                        pirStatus,
-                         study,
+                        pirStatus,pirStudy,
+                        appDeviceRefresh,appHomeRefresh,appRoomRefresh,
                         topicFilterPush2, topicAlinkStatus });
                     if (result.Items[0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS0)
                     {
@@ -233,6 +255,10 @@
             }
 
             if (!UserInfo.Current.IsLogin)
+            {
+                return;
+            }
+            if (DB_ResidenceData.Instance.CurrentRegion == null || DB_ResidenceData.Instance.CurrentRegion.RegionID == null)
             {
                 return;
             }
@@ -287,6 +313,12 @@
                                     }
                                 }
 
+                                //涓�浜涚壒娈婄殑涓婚澶勭悊(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣� true:鎵ц浜嗙壒娈婂鐞� false:娌℃湁鎵ц鐗规畩澶勭悊)
+                                if (Stan.HdlCloudReceiveLogic.Current.CloudOverallMsgReceiveEx(topic, e.ApplicationMessage.Payload, mqttEncryptKey, tuyaEncryptKey) == true)
+                                {
+                                    return;
+                                }
+
                                 if (topic == $"/BusGateWayToClient/{UserInfo.Current.ID}" + PushNotifySqueeze)
                                 {
                                     var mMes = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
@@ -299,30 +331,103 @@
                                     var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey);
                                     var revString = Encoding.UTF8.GetString(bytes);
                                     HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.controldata = revString;
-                                    //ReceiveCheckGateway(ss);
-                                    //return;
                                 }
                                 //App璁㈤槄閬ユ帶鍣ㄨ嚜瀛︽寜閿涔犳垚鍔熼�氱煡
                                 else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/irCodeStudyDone/up")
                                 {
                                     var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey);
                                     var revString = Encoding.UTF8.GetString(bytes);
-                                    HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.buttondata = revString;
-                                    //ReceiveCheckGateway(ss);
-                                    //return;
+                                    UI.UI2.PersonalCenter.PirDevice.Method.controldata = revString;
                                 }
+                                #region 鏁版嵁鏇存柊鎺ㄩ�佷富棰�
+                                //appHomeRefresh锛氫綇瀹呮暟鎹埛鏂伴�氱煡
+                                else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/appHomeRefresh/up")
+                                {
+                                    MainPage.Log("浣忓畢鏁版嵁鍒锋柊閫氱煡");
+                                    new HttpServerRequest().GetHomePager();
+                                }
+                                //appRoomRefresh锛氭埧闂存暟鎹埛鏂伴�氱煡
+                                else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/appRoomRefresh/up")
+                                {
+                                    MainPage.Log("鎴块棿鏁版嵁鍒锋柊閫氱煡");
+                                    var roomResult = new HttpServerRequest().GetRoomList();
+                                    if (roomResult.Code == StateCode.SUCCESS)
+                                    {
+                                        MainPage.Log($"璇诲彇鎴块棿淇℃伅鎴愬姛");
+                                        var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<SpatialApiPack>(roomResult.Data.ToString());
+                                        if (revData == null)
+                                        {
+                                            revData = new SpatialApiPack();
+                                        }
+                                        {
+                                            SpatialInfo.CurrentSpatial.UpdateSpatialList(revData.list);
+                                        }
+                                    }
+                                    else
+                                    {
+                                        MainPage.Log($"璇诲彇鎴块棿鏁版嵁澶辫触:Code:{roomResult.Code}; msg:{roomResult.message}");
+                                    }
+                                }
+                                //appDeviceRefresh锛氳澶囨暟鎹埛鏂伴�氱煡
+                                else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/appDeviceRefresh/up")
+                                {
+                                    MainPage.Log("璁惧鏁版嵁鍒锋柊閫氱煡");
+                                    var deviceResult = new HttpServerRequest().GetDeviceList();
+                                    if (deviceResult.Code == StateCode.SUCCESS)
+                                    {
+                                        MainPage.Log($"璇诲彇璁惧淇℃伅鎴愬姛");
+                                        var deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString());
+                                        if (deviceList == null)
+                                        {
+                                            deviceList = new DevcieApiPack();
+                                        }
+                                        string delFile = "";
+                                        if (FunctionList.List.GetDeviceFunctionList().Count > 0)
+                                        {
+                                            for (int i = 0; i < FunctionList.List.GetDeviceFunctionList().Count;)
+                                            {
+                                                var localFunction = FunctionList.List.GetDeviceFunctionList()[i];
+                                                if (localFunction.Spk_Prefix == FunctionCategory.Music || string.IsNullOrEmpty(localFunction.Spk_Prefix))
+                                                {
+                                                    i++;
+                                                    continue;
+                                                }
+                                                var newFunction = deviceList.list.Find((obj) => obj.deviceId == localFunction.deviceId);
+
+                                                if (delFile == localFunction.savePath)
+                                                {
+                                                    i++;
+                                                    continue;
+                                                }
+                                                delFile = localFunction.savePath;
+                                                FunctionList.List.DeleteFunction(localFunction);
+                                            }
+                                        }
+                                        //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳�
+                                        foreach (var newFunction in deviceList.list)
+                                        {
+                                            newFunction.SaveFunctionFile();
+                                            FunctionList.List.IniFunctionList(newFunction.savePath);
+                                        }
+                                    }
+                                    else
+                                    {
+                                        MainPage.Log($"璇诲彇浜戠璁惧鏁版嵁澶辫触:Code:{deviceResult.Code};  Msg:{deviceResult.message}");
+                                    }
+                                }
+                                #endregion
                                 //A缃戝叧璁惧鐘舵��-鍖呭惈娑傞甫璁惧
                                 else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/property/send")
                                 {
                                     var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey);
                                     var revString = Encoding.UTF8.GetString(bytes);
-                                    Control.Ins.UpdataFunctionStatus(revString, null,true);
+                                    Control.Ins.UpdataFunctionStatus(revString, null, true);
                                 }
                                 //涓�绔彛鏁版嵁瑙f瀽
                                 else
                                 {
                                     //SetGatewayOnlineResetCheck();
-                                    var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, mqttEncryptKey);
+                                    //var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, mqttEncryptKey);
                                     //bus鏁版嵁瑙f瀽
                                     var packet = new Packet();
 
@@ -476,7 +581,7 @@
                     MqttInfoConfig.Current.Save();
 
 
-                  
+
                     mqttEncryptKey = MqttInfoConfig.Current.HomeGatewayInfo.aesKey;
                     //瑙e瘑瀵嗛挜瑙勫垯锛氬凡鐜版湁鐨勪綇瀹匢D涓哄熀鍑�,浠庡彸杈逛竴涓�鑾峰彇鍊�,鏈�鍚庡鏋滀笉澶�16浣�,鍒欏線鍙宠ˉ闆�
                     string aesKey = string.Empty;
@@ -564,7 +669,7 @@
         /// </summary>
         static void ReceiveNotifySqueezeAsync(string mMes)
         {
-            if (mMes == PushSignStr ) return;//鏄嚜宸辩殑鐧诲綍鎺ㄩ�佷笉澶勭悊//鎴栬�呭綋鍓嶄笉鏄繙绋嬮摼鎺ョ姸鎬�
+            if (mMes == PushSignStr) return;//鏄嚜宸辩殑鐧诲綍鎺ㄩ�佷笉澶勭悊//鎴栬�呭綋鍓嶄笉鏄繙绋嬮摼鎺ョ姸鎬�
             //娴嬭瘯璐﹀彿锛屼笉鎸や笅绾�
             switch (UserInfo.Current.AccountString)
             {
@@ -882,4 +987,4 @@
 
 
     }
-}
+}
\ No newline at end of file
diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs
index 55f94be..7dd8e14 100644
--- a/HDL_ON/DAL/Server/HttpServerRequest.cs
+++ b/HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -1781,6 +1781,41 @@
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieList, requestJson);
         }
         /// <summary>
+        /// 鑾峰彇鎸囧畾绗笁鏂瑰搧鐗岀殑缁戝畾杩囩殑璁惧鍒楄〃
+        /// </summary>
+        /// <param name="productPlatform"></param>
+        /// <param name="productBrand"></param>
+        /// <returns></returns>
+        public ResponsePackNew Get3TyBrandBindDeviceList(string productPlatform, string productBrand)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
+            d.Add("productPlatform", productPlatform);
+            d.Add("productBrand", productBrand);
+
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieList, requestJson);
+        }
+        /// <summary>
+        /// 鑾峰彇鎸囧畾绗笁鏂瑰搧鐗岀殑璁惧鍒楄〃
+        /// </summary>
+        /// <param name="productPlatform"></param>
+        /// <param name="productBrand"></param>
+        /// <returns></returns>
+        public ResponsePackNew Get3TyBrandDeviceList(string productPlatform,string productBrand)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("categoryType", 1);
+            d.Add("productPlatform", productPlatform);
+            d.Add("productBrand", productBrand);
+
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Get3tyBrandDevcieList, requestJson);
+        }
+
+
+
+        /// <summary>
         /// 鑾峰彇璁惧璇︽儏鍒楄〃
         /// </summary>
         /// <returns></returns>
diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs
index 86fce77..e016870 100644
--- a/HDL_ON/DAL/Server/NewAPI.cs
+++ b/HDL_ON/DAL/Server/NewAPI.cs
@@ -322,6 +322,10 @@
         /// </summary>
         public const string Api_Post_GetDevcieList = "/home-wisdom/app/device/list";
         /// <summary>
+        /// 鑾峰彇绗笁鏂瑰搧鐗岃澶囧垪琛�
+        /// </summary>
+        public const string Api_Post_Get3tyBrandDevcieList = "/home-wisdom/app/product/list";
+        /// <summary>
         /// 鑾峰彇璁惧璇︽儏
         /// </summary>
         public const string Api_Post_GetDevcieInfoList = "/home-wisdom/app/device/info";
diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 0216ac5..0997ffa 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -65,6 +65,22 @@
 
         #region 浼樺寲鍖哄煙 2021-02-25
         /// <summary>
+        /// 鏇存柊鐨勬渶鍚庢椂闂�
+        /// </summary>
+        public string time_stamp = "1615261019796";
+
+        public string GeteTime()
+        {
+            try
+            {
+                DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯
+                return startTime.AddMilliseconds(Convert.ToDouble(time_stamp)).ToString("s");
+            }
+            catch {
+                return DateTime.MinValue.ToString("s");
+            }
+        }
+        /// <summary>
         /// 鑾峰彇灞炴�у垪琛�
         /// </summary>
         /// <returns></returns>
@@ -124,8 +140,16 @@
             return true;
         }
 
-
-
+        /// <summary>
+        /// icon鏂囦欢鍚嶇О
+        /// </summary>
+        public string IconName
+        {
+            get
+            {
+                return spk.Replace(".","");
+            }
+        }
 
         /// <summary>
         /// 涓婁竴娆℃墦寮�鐨勪寒搴�
@@ -512,9 +536,7 @@
         {
             var sendDataObj = new AlinkFunctionStatusObj();
             sendDataObj.id = Control.Ins.msg_id.ToString();
-            sendDataObj.time_stamp = Control.Ins.Get_TimeStamp();
-
-
+            sendDataObj.time_stamp = Utlis.GetTimestamp();
             var acd = new AlinkStatusData();
             acd.sid = sid;
             foreach (var dic in commandDictionary)
@@ -524,9 +546,7 @@
                 aca.value = dic.Value;
                 acd.status.Add(aca);
             }
-
             sendDataObj.objects.Add(acd);
-
             return sendDataObj;
         }
         /// <summary>
@@ -701,9 +721,22 @@
         /// </summary>
         public const string FanSpeed = "fan";
         /// <summary>
+        /// 鎵嬪姩椋庡悜
+        /// </summary>
+        public const string FanManual = "fan_manual";
+        /// <summary>
+        /// 鑷姩椋庡悜
+        /// </summary>
+        public const string FanAuto = "fan_auto";
+
+        /// <summary>
         /// 璁剧疆娓╁害
         /// </summary>
         public const string SetTemp = "set_temp";
+        /// <summary>
+        /// 娓╁害鍔犲噺
+        /// </summary>
+        public const string SetTempStep = "set_temp_step";
         /// <summary>
         /// 娓╁害妯″紡
         /// 绌鸿皟銆佸湴鐑�//app鑷姞
@@ -802,6 +835,10 @@
         /// 鎵撳紑鐧昏(椋庢墖)
         /// </summary>
         public const string OpenLevel = "openLevel";
+        /// <summary>
+        /// 绾㈠鎸夐敭
+        /// </summary>
+        public const string Key = "key";
 
 
         #region tuya
@@ -988,9 +1025,13 @@
         /// </summary>
         public const string ElectricTV = "electrical.tv";
         /// <summary>
+        /// 绾㈠銆佺數瑙�
+        /// </summary>
+        public const string TvIr = "ir.tv";
+        /// <summary>
         /// 瀹剁數銆侀鎵�
         /// </summary>
-        public const string ElectricFan = "electrical.fan";
+        public const string ElectricFan = "electrical.fan";
         /// <summary>
         /// 瀹剁數銆佹秱楦︾┖姘斿噣鍖栧櫒
         /// </summary>
@@ -998,7 +1039,7 @@
         /// <summary>
         /// 瀹剁數銆佹秱楦︾數椋庢墖
         /// </summary>
-        public const string ElectricTuyaFan = "electrical.tyqborgovyzytytz";
+        public const string ElectricTuyaFan = "electrical.tyqborgovyzytytz";
         /// <summary>
         /// 瀹剁數銆佹秱楦︽壂鍦版満鍣ㄤ汉
         /// </summary>
@@ -1016,9 +1057,9 @@
         /// </summary>
         public const string IrModule = "ir.module";
         /// <summary>
-        /// 绾㈠鐢佃
+        /// 绾㈠閬ユ帶鍣�
         /// </summary>
-        public const string TvIr = "ir.tv"; 
+        public const string IrLearn = "ir.learn";
 
 
         /// <summary>
@@ -1100,8 +1141,12 @@
         /// 瀹剁數
         /// </summary>
         public const string Electric = "electrical";
+        /// <summary>
+        /// 绾㈠璁惧
+        /// </summary>
+        public const string IR = "ir";
 
-        //Music = 0x09,
+
 
 
     }
diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index 8d83075..0d05bdb 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -41,7 +41,7 @@
         /// <returns></returns>
         public List<Function> GetAcList()
         {
-            return Functions.FindAll((obj) => obj.spk == SPK.AcStandard);
+            return Functions.FindAll((obj) => obj.spk == SPK.AcStandard || obj.spk == SPK.AcIr);
         }
 
         /// <summary>
@@ -97,11 +97,21 @@
 
             return Functions.FindAll((obj) => obj.spk == SPK.ElectricFan || obj.spk == SPK.ElectricTuyaFan
                 || obj.spk == SPK.ElectricSocket
+                || obj.spk == SPK.IrLearn
+                || obj.spk == SPK.TvIr
                 || obj.spk == SPK.ElectricTV
                 || obj.spk == SPK.ElectricTuyaAirCleaner
                 || obj.spk == SPK.ElectricTuyaWeepRobot
                 || obj.spk == SPK.ElectricTuyaWaterValve
                 || obj.spk == SPK.ClothesHanger);
+        }
+        /// <summary>
+        /// 閬ユ帶鍣ㄥ垪琛�
+        /// </summary>
+        /// <returns></returns>
+        public List<Function> GetIrLearinList()
+        {
+            return Functions.FindAll((obj) => obj.spk == SPK.IrLearn);
         }
         /// <summary>
         /// 椋庢墖鍒楄〃
@@ -115,7 +125,7 @@
         /// </summary>
         public List<Function> GetTVList()
         {
-            return Functions.FindAll((obj) => obj.spk == SPK.ElectricTV);
+            return Functions.FindAll((obj) => obj.spk == SPK.ElectricTV || obj.spk == SPK.TvIr);
         }
         /// <summary>
         /// 瀹剁數鎻掑骇鍒楄〃
@@ -191,7 +201,11 @@
         /// 鍔犺浇鍔熻兘鍒楄〃
         /// </summary>
         /// <param name="filePath"></param>
-        public void IniFunctionList(string filePath)
+        /// <param name="checkRepeat">
+        /// <para>鑰冭檻鍒版�ц兘闂杩藉姞姝ゅ彉閲�,鏄惁妫�娴嬮噸澶�,鍙function鏈夋晥</para>
+        /// <para>true:褰撻噸澶嶅瓨鍦ㄦ椂,鏇挎崲鎺�</para>
+        /// <para>false:鐩存帴鏃犳潯浠舵坊鍔�</para></param>
+        public void IniFunctionList(string filePath, bool checkRepeat = false)
         {
             // todo 澧炲姞璁惧锛屽鍔犲姛鑳借繘鍔熻兘鍒楄〃
             if (filePath.StartsWith("FunctionData_"))
@@ -204,10 +218,21 @@
                     FileUtlis.Files.DeleteFile(filePath);
                     return;
                 }
-
-
+                if (checkRepeat == true)
+                {
+                    //妫�娴嬮噸澶�
+                    for (int i = 0; i < Functions.Count; i++)
+                    {
+                        if (Functions[i].deviceId == tempFunction.deviceId)
+                        {
+                            //鍏堢Щ闄ゆ帀鍐嶅姞
+                            Functions.RemoveAt(i);
+                            Functions.Add(tempFunction);
+                            return;
+                        }
+                    }
+                }
                 Functions.Add(tempFunction);
-
             }
             if (filePath.StartsWith("SceneData_"))
             {
diff --git a/HDL_ON/Entity/Integratedbrand/IntegratedBrand.cs b/HDL_ON/Entity/Integratedbrand/IntegratedBrand.cs
index 70be6aa..ca7519b 100644
--- a/HDL_ON/Entity/Integratedbrand/IntegratedBrand.cs
+++ b/HDL_ON/Entity/Integratedbrand/IntegratedBrand.cs
@@ -25,9 +25,82 @@
         /// 骞冲彴鏍囪瘑
         /// </summary>
         public string productPlatform;
-
-
-
-
     }
+
+    /// <summary>
+    /// 绗笁鏂硅澶囦俊鎭�
+    /// </summary>
+    public class IntegratedBrandDevice
+    {
+
+        /// <summary>
+        /// 浜у搧鍞竴鏍囪瘑
+        /// </summary>
+        public string productId;
+
+        /// <summary>
+        /// 浜у搧鍚嶇О
+        /// </summary>
+        public string productName;
+
+        /// <summary>
+        /// 浜у搧鍘傚晢
+        /// </summary>
+        public string productSupplier;
+
+        /// <summary>
+        /// 浜у搧鍝佺墝锛堝搧鐗屾爣璇嗭級
+        /// </summary>
+        public string productBrand;
+
+        /// <summary>
+        /// 浜у搧绫诲瀷
+        /// </summary>
+        public string productType;
+
+        /// <summary>
+        /// 绗簩鍝佺被鍚�
+        /// </summary>
+        public string categorySecondName;
+
+        /// <summary>
+        /// 绗簩鍝佺被code
+        /// </summary>
+        public string categorySecondCode;
+
+        /// <summary>
+        /// 绗竴鍝佺被code
+        /// </summary>
+        public string categoryFirstCode;
+
+        /// <summary>
+        /// 绗竴鍝佺被鍚嶇О
+        /// </summary>
+        public string categoryFirstName;
+        /// <summary>
+        /// 浜у搧鍨嬪彿
+        /// </summary>
+        public string productVersion;
+
+        /// <summary>
+        /// 浜у搧骞冲彴锛堝钩鍙版爣璇嗭級
+        /// </summary>
+        public string productPlatform;
+
+        /// <summary>
+        /// 浜у搧鍥剧墖
+        /// </summary>
+        public string productPic;
+
+        /// <summary>
+        /// 鍔熻兘绫诲瀷Key
+        /// </summary>
+        public string spk;
+
+        /// <summary>
+        /// 璁惧缁戝畾鏂瑰紡 WIFI銆丵RSCAN銆乑IG_BEE銆丒THERNET
+        /// </summary>
+        public string bindType;
+    }
+
 }
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index 7518066..b64ad47 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -26,6 +26,8 @@
     <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Function.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\PublicAssmebly.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\CSS\CSS.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlBluetoothAndroidLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlBluetoothIOSLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\UserPageBLL.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\UserPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\ClassificationPage.cs" />
@@ -357,17 +359,28 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\ClothesHangerSetTimePage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\ArmSensorHistroyPaging.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\AC\AcControlPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlCloudReceiveLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlWifiLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\ProgressRowBar.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\AddMiniRemoteControlDirection3Page.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\AddMiniRemoteControlDirection1Page.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\AddMiniRemoteControlDirection2Page.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\AddMiniRemoteControlDirection4Page.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\AddThirdPartyDeviceMenuListPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\Matching.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PirNameView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\BrandListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\IrLearnPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\EditControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\FrameLayout50.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PirView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\ControlView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\AddDevciePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\DeviceListPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\MainView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\HeigthChangeView.cs" />
   </ItemGroup>
   <ItemGroup>
-    <Folder Include="$(MSBuildThisFileDirectory)UI\" />
     <Folder Include="$(MSBuildThisFileDirectory)DAL\" />
     <Folder Include="$(MSBuildThisFileDirectory)DAL\Mqtt\" />
     <Folder Include="$(MSBuildThisFileDirectory)Common\" />
@@ -405,4 +418,4 @@
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\" />
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\" />
   </ItemGroup>
-</Project>
+</Project>
\ No newline at end of file
diff --git a/HDL_ON/UI/.DS_Store b/HDL_ON/UI/.DS_Store
index bdfddd3..aa35eb6 100644
--- a/HDL_ON/UI/.DS_Store
+++ b/HDL_ON/UI/.DS_Store
Binary files differ
diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs
index 7ee9323..1850d6b 100644
--- a/HDL_ON/UI/MainPage.cs
+++ b/HDL_ON/UI/MainPage.cs
@@ -26,7 +26,7 @@
         /// <summary>
         /// 鐗堟湰鍙�
         /// </summary>
-        public static string VersionString = "1.1.0305";
+        public static string VersionString = "1.1.0310";
         ///// <summary>
         ///// 瀹㈡埛绔被鍨�
         ///// </summary>
@@ -53,6 +53,14 @@
         /// 鏄惁杩涘叆鍚庡彴
         /// </summary>
         public static bool IsEnterBackground = false;
+        /// <summary>
+        /// 褰撳墠鍒嗛〉绱㈠紩
+        /// 0:鏀惰棌
+        /// 1:鍒嗙被
+        /// 2:鏅鸿兘
+        /// 3:涓汉
+        /// </summary>
+        public static int CurPageIndex = 9999;
 
         ///// <summary>
         ///// 鍏徃浠g爜
diff --git a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
index 564ed4d..f8dae98 100644
--- a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
+++ b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
@@ -75,6 +75,7 @@
                         MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                         break;
                     case SPK.ElectricTV:
+                    case SPK.TvIr:
                         var tvView = new TVPage(function);
                         MainPage.BasePageView.AddChidren(tvView);
                         tvView.LoadPage(btnCollectionIcon, btnName, btnFromFloor);
@@ -138,6 +139,10 @@
                         var acPage = new AcControlPage();
                         acPage.AddForm(function, btnCollectionIcon, btnName, btnFromFloor);
                         break;
+                    case SPK.IrLearn:
+                        var irLearinPage = new IrLearnPage();
+                        irLearinPage.AddForm(function, btnCollectionIcon, btnName, btnFromFloor);
+                        break;
                 }
             };
             return eventHandler;
diff --git a/HDL_ON/UI/UI0-Public/TopViewDiv.cs b/HDL_ON/UI/UI0-Public/TopViewDiv.cs
index 556ac0f..080a209 100644
--- a/HDL_ON/UI/UI0-Public/TopViewDiv.cs
+++ b/HDL_ON/UI/UI0-Public/TopViewDiv.cs
@@ -242,7 +242,33 @@
 
             btnAddIcon.MouseUpEventHandler += (sender, e) =>
             {
-                LoadEvent_AddEvent(type, callBack);
+                if (type == "floors")
+                {
+                    Action<string> callBackAction = (floorName) =>
+                    {
+                        callBack("add", floorName);
+                    };
+                    string newFloorName = "1F";
+                    for (int i = 0; i < SpatialInfo.CurrentSpatial.FloorList.Count + 1;)
+                    {
+                        newFloorName = ++i + "F";
+                        if (null == SpatialInfo.CurrentSpatial.FloorList.Find((obj) => obj.roomName == newFloorName))
+                        {
+                            break;
+                        }
+                    }
+                    var fs = new List<string>();
+                    foreach (var f in SpatialInfo.CurrentSpatial.FloorList)
+                    {
+                        fs.Add(f.roomName);
+                    }
+                    new PublicAssmebly().LoadDialog_EditParater(StringId.AddFloors, newFloorName, callBackAction, StringId.FloorNameCannotBeEmpty,
+                        StringId.AddFloorFailed_FloorAlreadyExist, fs);
+                }
+                else
+                {
+                    callBack("", "");
+                }
             };
         }
 
diff --git a/HDL_ON/UI/UI0-Public/TopViewDivBLL.cs b/HDL_ON/UI/UI0-Public/TopViewDivBLL.cs
index 4620b7a..00106dd 100644
--- a/HDL_ON/UI/UI0-Public/TopViewDivBLL.cs
+++ b/HDL_ON/UI/UI0-Public/TopViewDivBLL.cs
@@ -36,38 +36,11 @@
         /// <param name="type">娣诲姞鎸夐挳鐨勫姛鑳界被鍨�</param>
         void LoadEvent_AddEvent(string type,Action <string,string> callBack)
         {
-            switch (type)
-            {
-                case "floors":
-                    Action<string> callBackAction = (floorName) =>
-                    {
-                        callBack("add", floorName);
-                    };
-                    string newFloorName = "1F";
-                    for (int i = 0; i < SpatialInfo.CurrentSpatial.FloorList.Count + 1; )
-                    {
-                        newFloorName = ++i + "F";
-                        if (null == SpatialInfo.CurrentSpatial.FloorList.Find((obj)=>obj.roomName ==  newFloorName))
-                        {
-                            break;
-                        }
-                    }
-                    var fs = new List<string>();
-                    foreach(var f in SpatialInfo.CurrentSpatial.FloorList)
-                    {
-                        fs.Add(f.roomName);
-                    }
-                    new PublicAssmebly().LoadDialog_EditParater(StringId.AddFloors,newFloorName , callBackAction,StringId.FloorNameCannotBeEmpty,
-                        StringId.AddFloorFailed_FloorAlreadyExist,fs);
-                    break;
-                case "rooms":
-                    callBack("", "");
-                    break;
-                case "Member":
-                    callBack("","");
-                    break;
+            //switch (type)
+            //{
                 
-            }
+                
+            //}
         }
 
     }
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs b/HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs
index 29d8059..b377db9 100644
--- a/HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs
+++ b/HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs
@@ -7,7 +7,7 @@
 namespace HDL_ON.Stan
 {
     /// <summary>
-    /// 杈撳叆妗嗘帶浠剁殑鏈�鍒濆師鍨�(涓嶅缓璁慨鏀瑰拰鐩存帴浣跨敤):鏍囧噯瀛椾綋棰滆壊锛屾枃瀛楀悜宸﹂潬榻�,14鍙峰瓧
+    /// 杈撳叆妗嗘帶浠剁殑鏈�鍒濆師鍨�(涓嶅缓璁慨鏀瑰拰鐩存帴浣跨敤):鏍囧噯瀛椾綋棰滆壊(0xFF798394)锛屾枃瀛楀悜宸﹂潬榻�,14鍙峰瓧
     /// </summary>
     public class TextInputBase : EditText
     {
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs
index d1ec836..1476dd3 100644
--- a/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs
+++ b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs
@@ -22,7 +22,7 @@
         /// <param name="i_width">鏈変簺鐣岄潰寰堢壒娈�,涓嶇粺涓�鎸夐敭瀹藉害,鎵�浠ラ鐣欐鍙傛暟</param>
         public BottomClickButton(int i_width = 188)
         {
-            this.Yaxis = Application.GetRealHeight(539);
+            this.Yaxis = Application.GetRealHeight(543);
 
             //杩欎釜鏄竴鑸綅缃�
             this.Y = this.Yaxis;
@@ -33,6 +33,7 @@
             this.Gravity = Gravity.CenterHorizontal;
             this.Radius = (uint)Application.GetRealHeight(44) / 2;
             this.TextSize = CSS_FontSize.SubheadingFontSize;
+            this.BackgroundColor = CSS_Color.MainColor;
             this.IsBold = true;
         }
     }
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs
index aaff1c0..ec3f199 100644
--- a/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs
+++ b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs
@@ -100,7 +100,7 @@
         /// 娣诲姞鑿滃崟琛�
         /// </summary>
         /// <param name="i_listText">鏄剧ず鐨勫垪琛ㄦ枃瀛�</param>
-        /// <param name="i_listSelect">榛樿閫夋嫨</param>
+        /// <param name="i_listSelect">榛樿閫夋嫨(璇峰嬁璁剧疆涓簄ull)</param>
         public void AddRowMenu(List<string> i_listText, List<int> i_listSelect)
         {
             foreach (var index in i_listSelect)
diff --git a/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/ProgressRowBar.cs b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/ProgressRowBar.cs
new file mode 100644
index 0000000..f110e78
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/ProgressRowBar.cs
@@ -0,0 +1,251 @@
+锘縰sing HDL_ON.Stan;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.UI
+{
+    /// <summary>
+    /// 琛屾潯绫诲瀷鐨勮繘搴︽潯鎺т欢
+    /// </summary>
+    public class ProgressRowBar : FrameLayout
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 杩涘害鏉¤兘鍚﹀線鍥炶蛋(榛樿涓嶅彲浠�)
+        /// </summary>
+        public bool ProgressBarGoback = false;
+        /// <summary>
+        /// 浼氱Щ鍔ㄧ殑杩涘害鏉�
+        /// </summary>
+        private FrameLayout btnProgressBar = null;
+        /// <summary>
+        /// 鏄剧ず鏁板�肩櫨鍒嗘瘮鐨勬帶浠�
+        /// </summary>
+        private NormalViewControl btnProgressTextView = null;
+        /// <summary>
+        /// 绾跨▼鏄惁杩愯
+        /// </summary>
+        private bool isThreadAction = false;
+        /// <summary>
+        /// 妯″紡鍖哄垎
+        /// </summary>
+        private int m_ModeDiv = -1;
+
+        /// <summary>
+        /// 杩涘害鏉℃槸鍚﹀彲瑙�
+        /// </summary>
+        public new bool Visible
+        {
+            get { return base.Visible; }
+            set
+            {
+                if (this.btnProgressTextView != null)
+                {
+                    this.btnProgressTextView.Visible = value;
+                }
+                base.Visible = value;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 琛屾潯绫诲瀷鐨勮繘搴︽潯鎺т欢
+        /// </summary>
+        /// <param name="width">
+        /// <para>妯″紡1:浼氬姩鐨勯偅涓繘搴︽潯鐨勫搴�(闈炵湡瀹炲��)</para>
+        /// <para>妯″紡2:杩涘害鏉″湪鎸佺画鏃犻檺鐨勬潵鍥炵Щ鍔ㄧ殑鍖哄煙瀹藉害(闈炵湡瀹炲��)</para>
+        /// </param>
+        /// <param name="height">
+        /// <para>妯″紡1:浼氬姩鐨勯偅涓繘搴︽潯鐨勯珮搴�(闈炵湡瀹炲��)</para>
+        /// <para>妯″紡2:杩涘害鏉″湪鎸佺画鏃犻檺鐨勬潵鍥炵Щ鍔ㄧ殑楂樺害(闈炵湡瀹炲��)</para>
+        /// </param>
+        public ProgressRowBar(int width, int height)
+        {
+            this.Height = Application.GetRealHeight(height);
+            this.Width = Application.GetRealWidth(width);
+            this.BackgroundColor = UI.CSS.CSS_Color.BackgroundColor;
+            this.Radius = (uint)Application.GetRealHeight(height) / 2;
+        }
+
+        #endregion
+
+        #region 鈻� 妯″紡1______________________________
+
+        /// <summary>
+        /// 妯″紡1  璇ユā寮忎负锛氭墜鍔ㄥ~鍐欒繘搴﹀��
+        /// </summary>
+        /// <param name="showText">
+        /// <para>鏄惁鍦ㄨ繘搴︽潯涓婃柟鏄剧ず鏁板�肩櫨鍒嗘瘮</para>
+        /// <para>璇风‘淇濇帶浠剁殑涓婃柟鏈夎冻澶熺殑鍖哄煙(娉�:璇蜂笉瑕佹墿澶ф鎺т欢鐨勯珮搴�)</para>
+        /// </param>
+        public void StartMode1(bool showText = false)
+        {
+            if (m_ModeDiv != -1) { return; }
+            this.m_ModeDiv = 1;
+
+            //浼氱Щ鍔ㄧ殑杩涘害鏉�
+            this.btnProgressBar = new FrameLayout();
+            btnProgressBar.Width = 0;
+            btnProgressBar.Height = this.Height;
+            btnProgressBar.BackgroundColor = UI.CSS.CSS_Color.MainColor;
+            btnProgressBar.Radius = (uint)this.Height / 2;
+            this.AddChidren(btnProgressBar);
+
+            if (showText == true)
+            {
+                //杩涘害鍊兼枃鏈�
+                this.btnProgressTextView = new NormalViewControl(32, 22, true);
+                btnProgressTextView.Y = this.Y - Application.GetRealHeight(22 + 10);//10:瀹冧笌杩涘害鏉$殑闂磋窛
+                btnProgressTextView.X = this.X - Application.GetRealWidth(32) / 2;
+                btnProgressTextView.UnSelectedImagePath = "Public/ProgressMsg.png";
+                btnProgressTextView.TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel;
+                btnProgressTextView.TextColor= CSS.CSS_Color.FirstLevelTitleColor;
+                btnProgressTextView.TextAlignment = TextAlignment.Center;
+                btnProgressTextView.Text = "0%";
+                this.Parent.AddChidren(btnProgressTextView);
+            }
+        }
+
+        /// <summary>
+        /// 閲嶇疆杩涘害鏉�(鍙妯″紡1鏈夋晥)
+        /// </summary>
+        public void ResetProgressBar()
+        {
+            if (this.m_ModeDiv == 1 && this.btnProgressBar != null)
+            {
+                this.btnProgressBar.Width = 0;
+            }
+        }
+
+        /// <summary>
+        /// 璁剧疆杩涘害鍊�
+        /// </summary>
+        /// <param name="value">姝ゅ�间负鐧惧垎姣斿��(涔熷氨鏄皬浜庢垨鑰呯瓑浜�1鐨�)</param>
+        public void SetValue(decimal value)
+        {
+            this.SetValueEx(value);
+        }
+
+        /// <summary>
+        /// 璁剧疆杩涘害鍊�
+        /// </summary>
+        /// <param name="value">杩涘害鍊�,鍐呴儴浼氶櫎浠axValue</param>
+        /// <param name="maxValue">鏈�澶у��</param>
+        public void SetValue(decimal value, decimal maxValue)
+        {
+            decimal result = value / maxValue;
+            this.SetValueEx(result);
+        }
+
+        /// <summary>
+        /// 璁剧疆杩涘害鍊�
+        /// </summary>
+        /// <param name="value"></param>
+        private void SetValueEx(decimal value)
+        {
+            if (btnProgressBar == null || this.m_ModeDiv != 1)
+            {
+                return;
+            }
+            if (value > 1) { value = 1; }
+
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                int width = (int)(value * this.Width);
+                if (this.ProgressBarGoback == false && btnProgressBar.Width >= width)
+                {
+                    //涓嶈兘璁╄繘搴︽潯寰�鍥炶蛋
+                    return;
+                }
+                btnProgressBar.Width = width;
+                if (this.btnProgressTextView != null)
+                {
+                    //鏂囨湰鏄剧ず
+                    btnProgressTextView.Text = ((int)(value * 100)) + "%";
+                    //鏂囨湰鏄剧ず鐨勯偅涓浘鐗囨绉诲姩
+                    this.btnProgressTextView.X = this.X + btnProgressBar.Right - btnProgressTextView.Width / 2;
+                }
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 妯″紡2______________________________
+
+        /// <summary>
+        /// 妯″紡2  璇ユā寮忎负锛氫笉鑳芥墜鍔ㄦ寚瀹氳繘搴﹀��,鐢卞唴閮ㄧ嚎绋嬪鐞�,杩涘害鏉″湪鎸佺画鏃犻檺鐨勬潵鍥炵Щ鍔�
+        /// </summary>
+        /// <param name="proWidth">鎸佺画鏃犻檺鐨勬潵鍥炵Щ鍔ㄧ殑杩涘害鏉$殑瀹藉害(闈炵湡瀹炲��)</param>
+        public void StartMode2(int proWidth = 100)
+        {
+            if (m_ModeDiv != -1) { return; }
+            this.m_ModeDiv = 2;
+
+            //浼氱Щ鍔ㄧ殑杩涘害鏉�
+            this.btnProgressBar = new FrameLayout();
+            btnProgressBar.Width = Application.GetRealWidth(proWidth);
+            btnProgressBar.Height = this.Height;
+            btnProgressBar.BackgroundColor = 0xfffb744a;
+            btnProgressBar.Radius = (uint)this.Height / 2;
+            this.AddChidren(btnProgressBar);
+
+            //寮�鍚ā寮�2鐨勭嚎绋�
+            this.StartMode2Thread();
+        }
+
+        /// <summary>
+        /// 閲嶆柊寮�鍚ā寮�2
+        /// </summary>
+        public void ReStartMode2()
+        {
+            //寮�鍚ā寮�2鐨勭嚎绋�
+            this.StartMode2Thread();
+        }
+
+        /// <summary>
+        /// 鏆傚仠妯″紡2
+        /// </summary>
+        public void StopMode2()
+        {
+            this.isThreadAction = false;
+        }
+
+        /// <summary>
+        /// 寮�鍚ā寮�2鐨勭嚎绋�
+        /// </summary>
+        private void StartMode2Thread()
+        {
+            if (this.isThreadAction == true)
+            {
+                return;
+            }
+            this.isThreadAction = true;
+            int moveLength = Application.GetRealWidth(30);
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                while (this.Parent != null && isThreadAction == true)
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        if (this.btnProgressBar.X >= this.Width)
+                        {
+                            //瓒呭嚭鍙宠竟涔嬪悗,鍐嶆浠庡乏杈瑰惊鐜�
+                            this.btnProgressBar.X = -this.btnProgressBar.Width;
+                            return;
+                        }
+                        this.btnProgressBar.X += moveLength;
+                    }, ShowErrorMode.NO);
+                    System.Threading.Thread.Sleep(150);
+                }
+            });
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs b/HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs
index 521bfb9..3081f6f 100644
--- a/HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs
+++ b/HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs
@@ -120,6 +120,13 @@
             btnTemp.Text = msgText.Replace("\r\n", string.Empty);
             //鑾峰彇杩欎釜鏄剧ず鐨勫唴瀹圭殑楂樺害
             int rowCount = btnTemp.GetRealRowCountByText();
+            //鍐嶇湅鐪嬪畠鍘熸潵鎸夋崲琛岀鍒嗗壊涓哄嚑琛�
+            var myArry = msgText.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
+            //鐪嬬湅璋佺殑琛屾暟澶�,灏辩敤璋佺殑
+            if (myArry.Length > rowCount)
+            {
+                rowCount = myArry.Length;
+            }
             int contentHeight = rowCount * Application.GetRealHeight(18);
             if (rowCount <= 2)
             {
diff --git a/HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs
index 7ebb328..b16a121 100644
--- a/HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs
+++ b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs
@@ -11,7 +11,7 @@
     public class NormalViewControl : ButtonCtrBase
     {
         /// <summary>
-        /// 骞冲嚒鏅�氱殑鎺т欢,鍩烘湰鍙槸鐢ㄦ潵鏄剧ず(姝e父鏂囨湰瀛椾綋棰滆壊,鏂囧瓧鍚戝乏闈犻綈)
+        /// 骞冲嚒鏅�氱殑鎺т欢,鍩烘湰鍙槸鐢ㄦ潵鏄剧ず(姝e父鏂囨湰瀛椾綋棰滆壊(0xFF798394),鏂囧瓧鍚戝乏闈犻綈)
         /// </summary>
         /// <param name="i_Width">瀹藉害</param>
         /// <param name="i_Height">楂樺害</param>
diff --git a/HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs b/HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs
index 86e2b4e..814f7d7 100644
--- a/HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs
+++ b/HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs
@@ -53,19 +53,6 @@
             return;
         }
 
-        /// <summary>
-        /// 娣诲姞鎸囧畾鐢婚潰锛屽苟绉婚櫎褰撳墠鐢婚潰锛屽惎鍔ㄥ弬鏁扮敱鎸囧畾鐢婚潰鐨凷howForm鍑芥暟鎵�鎸囧畾
-        /// </summary>
-        /// <param name="form">鐩爣鐣岄潰</param>
-        /// <param name="parameter">鍚姩鍙傛暟锛氬弬鏁扮敱鎸囧畾鐢婚潰鐨凷howForm鍑芥暟鎵�鎸囧畾</param>
-        public void AddFormAndCloseNowForm(CommonFormBase form, params object[] parameter)
-        {
-            //绉婚櫎褰撳墠鐢婚潰
-            this.CloseForm();
-            //娣诲姞鐢婚潰
-            form.AddForm(parameter);
-        }
-
         #endregion
 
         #region 鈻� 鍏抽棴鐣岄潰___________________________
diff --git a/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs b/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs
index 0f0e916..31bdbe3 100644
--- a/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs
+++ b/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs
@@ -287,6 +287,117 @@
 
         #endregion
 
+        #region 鈻� 娣诲姞鍒楄〃娑堟伅鏄剧ず鎺т欢_______________
+
+        /// <summary>
+        /// 娣诲姞鍒楄〃娑堟伅鏄剧ず鎺т欢,杩斿洖鐨勬槸鏈�鍚庝竴涓帶浠剁殑搴曢儴鍧愭爣
+        /// </summary>
+        /// <param name="frameTable">妗屽竷瀹瑰櫒鎺т欢</param>
+        /// <param name="i_msg">鏄剧ず鐨勬秷鎭�(鎹㈣璇蜂娇鐢ㄣ�恵0}銆戣繘琛屽垎鍓�)</param>
+        /// <param name="i_fontSize">瀛椾綋澶у皬</param>
+        /// <param name="i_fontColor">瀛椾綋棰滆壊</param>
+        /// <param name="i_height">鎺т欢楂樺害(鐪熷疄鍊�)</param>
+        /// <param name="i_yy">Y杞村垵濮嬪潗鏍�(鐪熷疄鍊�)</param>
+        /// <param name="alignment">鏂囧瓧瀵归綈鏂瑰紡</param>
+        /// <param name="special">
+        /// <para>娉細闄や簡鏂板缓杩欎釜鍑芥暟鐨勫紑鍙戣�呬互澶栵紝閮戒笉寤鸿鎶婅繖涓�间笉璁剧疆涓簍rue</para>
+        /// <para>璇存槑锛氫互鏈�闀跨殑鎺т欢鐨刋杞翠负鍩哄噯,鎵�鏈夋帶浠剁殑X杞撮兘鍙樻垚涓�鑷�</para>
+        /// </param>
+        /// <returns></returns>
+        public int AddListMsgControls(FrameLayout frameTable, string i_msg, int i_fontSize, uint i_fontColor, int i_height,
+            int i_yy, TextAlignment alignment = TextAlignment.Center, bool special = false)
+        {
+            var listMsg = i_msg.Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
+            int defultWidth = this.bodyFrameLayout.Width - HdlControlResourse.XXLeft * 2;
+
+            var listContr = new List<NormalViewControl>();
+            int minXX = 10086;//鎺т欢闆嗗悎鏈�灏忕殑X杞�
+            foreach (var strMsg in listMsg)
+            {
+                //娑堟伅鏄剧ず鎺т欢
+                var btnMsg = new NormalViewControl(defultWidth, i_height, false);
+                btnMsg.Y = i_yy;
+                btnMsg.Gravity = Gravity.CenterHorizontal;
+                btnMsg.TextAlignment = alignment;
+                btnMsg.TextColor = i_fontColor;
+                btnMsg.TextSize = i_fontSize;
+                btnMsg.Text = strMsg;
+
+                //鐗规畩澶勭悊
+                if (special == true && alignment == TextAlignment.Center)
+                {
+                    //璁剧疆瀹冪殑鐪熷疄瀹藉害(瀵箂pecial鍙橀噺鏈夌敤)
+                    int realWidth = btnMsg.GetRealWidthByText();
+                    btnMsg.Width = realWidth > defultWidth ? defultWidth : realWidth;
+                }
+                frameTable.AddChidren(btnMsg);
+
+                //鏀堕泦鎺т欢
+                listContr.Add(btnMsg);
+
+                //璁板綍鎺т欢闆嗗悎X杞存渶灏忕殑鍊�
+                if (btnMsg.X < minXX) { minXX = btnMsg.X; }
+
+                //涓よ涔嬮棿鐨勯棿璺濅负4
+                i_yy = btnMsg.Bottom + Application.GetRealHeight(4);
+            }
+            //鐗规畩澶勭悊
+            if (special == true && alignment == TextAlignment.Center)
+            {
+                foreach (var contr in listContr)
+                {
+                    //浠ユ渶闀跨殑鎺т欢鐨刋杞翠负鍩哄噯,鎵�鏈夋帶浠剁殑X杞撮兘鍙樻垚涓�鑷�
+                    contr.X = minXX;
+                }
+            }
+
+            return i_yy - Application.GetRealHeight(4);
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞搴曢儴鐐瑰嚮鎸夐挳鎺т欢_______________
+
+        /// <summary>
+        /// 娣诲姞搴曢儴鐐瑰嚮鎸夐挳鎺т欢
+        /// </summary>
+        /// <param name="i_text">鏄剧ず鐨勬枃鏈�</param>
+        /// <returns></returns>
+        public BottomClickButton AddBottomClickButton(string i_text)
+        {
+            //瀹瑰櫒鎺т欢
+            var frameBack = new FrameLayout();
+            frameBack.Height = Application.GetRealHeight(76);
+            frameBack.Gravity = Gravity.BottomCenter;
+            bodyFrameLayout.AddChidren(frameBack);
+            //鐒跺悗鍦ㄩ《閮ㄦ坊鍔犱竴涓湁杈规鐨勪笢瑗�
+            var frameLine = new FrameLayout();
+            frameLine.Height = Application.GetRealHeight(50);
+            frameLine.BorderWidth = 1;
+            frameLine.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
+            frameLine.BorderColor = UI.CSS.CSS_Color.DividingLineColor;
+            frameLine.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
+            frameBack.AddChidren(frameLine);
+            //鏈�鍚庡啀鏁翠釜鐧借壊鐨勪笢瑗块伄浣忓畠鐨勪笅閮�
+            var frameWite = new FrameLayout();
+            frameWite.Height = frameBack.Height - Application.GetRealHeight(24 - 10);//闇�瑕佽秴杩囧畠
+            frameWite.Width = frameBack.Width + Application.GetRealWidth(6);
+            frameWite.X = -Application.GetRealWidth(3);
+            frameWite.Y = Application.GetRealHeight(24);
+            frameWite.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
+            frameBack.AddChidren(frameWite);
+
+            //鎸夐挳
+            var btnOk = new BottomClickButton(220);
+            btnOk.Gravity = Gravity.Center;
+            btnOk.Text = i_text;
+            frameBack.AddChidren(btnOk);
+
+            return btnOk;
+        }
+
+        #endregion
+
         #region 鈻� 涓�鑸殑鏂规硶_________________________
 
         /// <summary>
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs
new file mode 100644
index 0000000..b416038
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs
@@ -0,0 +1,590 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+#if __Android__
+    public class HdlBluetoothLogic
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 瀹夊崜钃濈墮鐨勯�昏緫
+        /// </summary>
+        private static HdlBluetoothLogic m_Current = null;
+        /// <summary>
+        /// 瀹夊崜钃濈墮鐨勯�昏緫
+        /// </summary>
+        public static HdlBluetoothLogic Current
+        {
+            get
+            {
+                if (m_Current == null)
+                {
+                    m_Current = new HdlBluetoothLogic();
+                }
+                return m_Current;
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠钃濈墮瀹㈡埛绔�
+        /// </summary>
+        private Blufi.Espressif.BlufiClient nowBlufiClient = null;
+        /// <summary>
+        /// 鎺ユ敹浜嬩欢
+        /// </summary>
+        private Action<string> ReceiveEvent = null;
+        /// <summary>
+        /// 鍙戦�佺姸鎬�(0:鍙戦�佸け璐� 1:鍙戦�佹垚鍔�)
+        /// </summary>
+        private int sendStatuValue = -1;
+
+        #endregion
+
+        #region 鈻� 钃濈墮鎵�闇�鍔熻兘妫�娴媉__________________
+
+        /// <summary>
+        /// 妫�娴嬫槸鍚﹁兘澶熸悳绱㈣摑鐗�(鍐呴儴浼氬脊鍑篗sg妗�,鍥犱负鍐呴儴闇�瑕佹娴嬬郴缁熸潈闄�,鎵�浠ュ弬鏁伴噰鐢ㄥ洖璋冪殑鏂瑰紡)
+        /// </summary>
+        /// <param name="resultEvent">妫�娴嬬粨鏋滀簨浠�</param>
+        public void CheckCanScanBluetooth(Action<bool> resultEvent)
+        {
+            var adapter = Android.Bluetooth.BluetoothAdapter.DefaultAdapter;
+            var scanner = adapter.BluetoothLeScanner;
+            if (adapter.IsEnabled == false || scanner == null)
+            {
+                HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.PleaseTurnOnBluetooth));
+                resultEvent?.Invoke(false);
+                return;
+            }
+            //妫�娴嬫槸鍚︽墦寮�浜嗙郴缁熷姛鑳�
+            if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.M)
+            {
+                var locationManager = (Android.Locations.LocationManager)Application.Activity.GetSystemService(Android.Content.Context.LocationService);
+                if (locationManager == null)
+                {
+                    //浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
+                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.GbsIsNotAvailable));
+                    resultEvent?.Invoke(false);
+                    return;
+                }
+                if (locationManager.IsProviderEnabled("network") == false)
+                {
+                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.NetworkIsNotAvailable));
+                    resultEvent?.Invoke(false);
+                    return;
+                }
+                if (locationManager.IsProviderEnabled("gps") == false)
+                {
+                    //浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
+                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.GbsIsNotAvailable));
+                    resultEvent?.Invoke(false);
+                    return;
+                }
+            }
+            //妫�娴嬭摑鐗欓渶瑕佺殑鏉冮檺
+            ((BaseActivity)Application.Activity).SetPermission((result1) =>
+            {
+                if (result1 == false) 
+                {
+                    resultEvent?.Invoke(false);
+                    return;
+                }
+                ((BaseActivity)Application.Activity).SetPermission((result2) =>
+                {
+                    if (result2 == false)
+                    {
+                        resultEvent?.Invoke(false);
+                        return;
+                    }
+                    //鍏ㄩ儴閫氳繃
+                    resultEvent?.Invoke(true);
+
+                }, "android.permission.ACCESS_FINE_LOCATION");
+
+            }, "android.permission.ACCESS_COARSE_LOCATION");
+        }
+
+        #endregion
+
+        #region 鈻� 钃濈墮鎵弿___________________________
+
+        /// <summary>
+        /// 鎼滅储钃濈墮
+        /// </summary>
+        /// <param name="waitTime">鎼滅储鏃堕棿(绉�)</param>
+        /// <param name="FinishEvent">鎼滅储缁撴潫鐨勪簨浠�</param>
+        public void ScanBluetooth(int waitTime, Action<List<BluetoothInfo>> FinishEvent)
+        {
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                //鍐嶆妫�娴嬫槸鍚﹁兘澶熸悳绱㈣摑鐗�
+                this.CheckCanScanBluetooth((result) =>
+                {
+                    if (result == true)
+                    {
+                        HdlThreadLogic.Current.RunThread(() =>
+                        {
+                            //寮�濮嬫悳绱㈣摑鐗�
+                            this.DoScanBluetooth(waitTime, FinishEvent);
+                        });
+                    }
+                });
+            });
+        }
+
+        /// <summary>
+        /// 寮�濮嬫悳绱㈣摑鐗�
+        /// </summary>
+        /// <param name="waitTime">鎼滅储鏃堕棿(绉�)</param>
+        /// <param name="FinishEvent">鎼滅储缁撴潫鐨勪簨浠�</param>
+        private void DoScanBluetooth(int waitTime, Action<List<BluetoothInfo>> FinishEvent)
+        {
+            var listBluetoothInfo = new List<BluetoothInfo>();
+
+            BluetoothScanCallback scanCallback = null;
+            Android.Bluetooth.BluetoothAdapter adapter = null;
+            Android.Bluetooth.LE.BluetoothLeScanner scanner = null;
+
+            //浠ラ槻涓囦竴,钃濈墮閮戒涪鍦ㄤ富绾跨▼涓繍琛�
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                adapter = Android.Bluetooth.BluetoothAdapter.DefaultAdapter;
+                scanner = adapter.BluetoothLeScanner;
+
+                scanCallback = new BluetoothScanCallback();
+                scanner.StartScan(null, new Android.Bluetooth.LE.ScanSettings.Builder().SetScanMode(Android.Bluetooth.LE.ScanMode.LowLatency).Build(), scanCallback);
+            }, ShowErrorMode.NO);
+
+            //绛夊緟
+            System.Threading.Thread.Sleep(waitTime * 1000);
+
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                scanner.StopScan(scanCallback);
+                adapter.Dispose();
+
+                foreach (var data in scanCallback.listData)
+                {
+                    listBluetoothInfo.Add(data);
+                }
+                scanCallback.listData.Clear();
+
+                FinishEvent?.Invoke(listBluetoothInfo);
+            });
+        }
+
+        /// <summary>
+        /// 钃濈墮鐨勫洖璋冨璞�
+        /// </summary>
+        private class BluetoothScanCallback : Android.Bluetooth.LE.ScanCallback
+        {
+            /// <summary>
+            /// 钃濈墮鍒楄〃
+            /// </summary>
+            public List<BluetoothInfo> listData = new List<BluetoothInfo>();
+            /// <summary>
+            /// 閲嶅妫�娴�
+            /// </summary>
+            private List<string> listCheck = new List<string>();
+
+            /// <summary>
+            /// 钃濈墮缁撴灉鎺ユ敹
+            /// </summary>
+            /// <param name="listResult"></param>
+            public override void OnBatchScanResults(IList<Android.Bluetooth.LE.ScanResult> listResult)
+            {
+                foreach (var result in listResult)
+                {
+                    this.AddBluetoothResult(result);
+                }
+            }
+
+            /// <summary>
+            /// 钃濈墮缁撴灉鎺ユ敹
+            /// </summary>
+            /// <param name="callbackType"></param>
+            /// <param name="result"></param>
+            public override void OnScanResult(Android.Bluetooth.LE.ScanCallbackType callbackType, Android.Bluetooth.LE.ScanResult result)
+            {
+                this.AddBluetoothResult(result);
+            }
+
+            /// <summary>
+            /// 娣诲姞钃濈墮缂撳瓨
+            /// </summary>
+            /// <param name="result"></param>
+            private void AddBluetoothResult(Android.Bluetooth.LE.ScanResult result)
+            {
+                var device = result.Device;
+                if (device == null || listCheck.Contains(device.Address) == true)
+                {
+                    return;
+                }
+                listCheck.Add(device.Address);
+
+                var data = new BluetoothInfo();
+                data.Name = device.Name;
+                if (data.Name == null) { data.Name = string.Empty; }
+                data.Address = device.Address;
+                data.Device = device;
+                listData.Add(data);
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 钃濈墮閾炬帴___________________________
+
+        /// <summary>
+        /// 钃濈墮閾炬帴(false:杩炴帴澶辫触 true:杩炴帴鎴愬姛)
+        /// </summary>
+        /// <param name="bluetooth">闇�瑕侀摼鎺ョ殑钃濈墮瀵硅薄</param>
+        /// <param name="connectEvent">鍥犱负闇�瑕佸鏂瑰弽棣�,鎵�浠ヤ娇鐢ㄥ洖璋�(閾炬帴缁撴灉 false:杩炴帴澶辫触 true:杩炴帴鎴愬姛)</param>
+        public void ContectBluetooth(BluetoothInfo bluetooth, Action<bool> connectEvent)
+        {
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                try
+                {
+                    this.nowBlufiClient = new Blufi.Espressif.BlufiClient(Application.Activity, bluetooth.Device);
+
+                    //涓�涓洖璋冧簨浠�
+                    var callback = new InnerGattCallback();
+                    callback.ConnectionStateEvent += (div, newState) =>
+                    {
+                        if (div == 1)
+                        {
+                            if (newState == Android.Bluetooth.ProfileState.Connected)
+                            {
+                                //閾炬帴寤虹珛鎴愬姛
+                                connectEvent?.Invoke(true);
+                                //鍙�氱煡涓�娆�
+                                connectEvent = null;
+                            }
+                            else if (newState == Android.Bluetooth.ProfileState.Disconnected)
+                            {
+                                //鍏抽棴閾炬帴
+                                this.DisContectBluetooth();
+                                connectEvent?.Invoke(false);
+                                //鍙�氱煡涓�娆�
+                                connectEvent = null;
+                            }
+                        }
+                        else if (div == -1)
+                        {
+                            //鍏抽棴閾炬帴
+                            this.DisContectBluetooth();
+                            connectEvent?.Invoke(false);
+                            //鍙�氱煡涓�娆�
+                            connectEvent = null;
+                        }
+                    };
+                    nowBlufiClient.SetGattCallback(callback);
+
+                    //鍙﹀涓�涓洖璋冧簨浠�
+                    var blufiCall = new BlufiCallbackMain();
+                    blufiCall.StateEvent += (div, data) =>
+                    {
+                        //-1:寮傚父 1:姝e父 2:鍙戦�佹暟鎹垚鍔� 3:鍙戦�佹暟鎹け璐�
+                        if (div == StatuEnum.A寮傚父)
+                        {
+                            //鍏抽棴閾炬帴
+                            this.DisContectBluetooth();
+                            connectEvent?.Invoke(false);
+                            //鍙�氱煡涓�娆�
+                            connectEvent = null;
+                        }
+                        else if (div == StatuEnum.A鍙戦�佹垚鍔� || div == StatuEnum.A鍙戦�佸け璐�)
+                        {
+                            sendStatuValue = div == StatuEnum.A鍙戦�佹垚鍔� ? 1 : 0;
+                        }
+                        else if (div == StatuEnum.A钃濈墮鍙嶉)
+                        {
+                            //钃濈墮杩斿洖鐨勭粨鏋�
+                            this.ReceiveEvent?.Invoke(data);
+                        }
+                    };
+                    nowBlufiClient.SetBlufiCallback(blufiCall);
+                    //鎵ц閾炬帴
+                    nowBlufiClient.Connect();
+                }
+                catch
+                {
+                    connectEvent?.Invoke(false);
+                    connectEvent = null;
+                }
+            });
+        }
+
+        /// <summary>
+        /// 鍏堣繖涔堝畾涔変竴涓┖鐨勭户鎵�
+        /// </summary>
+        private class InnerGattCallback : Android.Bluetooth.BluetoothGattCallback
+        {
+            /// <summary>
+            /// 鐘舵�佷簨浠跺洖璋�(-1:寮傚父 1:OnConnectionStateChange)
+            /// </summary>
+            public Action<int,Android.Bluetooth.ProfileState> ConnectionStateEvent = null;
+            /// <summary>
+            /// 閾炬帴鐘舵�佹敼鍙�
+            /// </summary>
+            /// <param name="gatt"></param>
+            /// <param name="status"></param>
+            /// <param name="newState"></param>
+            public override void OnConnectionStateChange(Android.Bluetooth.BluetoothGatt gatt, Android.Bluetooth.GattStatus status, Android.Bluetooth.ProfileState newState)
+            {
+                if (status == Android.Bluetooth.GattStatus.Success)
+                {
+                    //鍥炶皟浜嬩欢
+                    this.ConnectionStateEvent?.Invoke(1, newState);
+                }
+                else
+                {
+                    //鍥炶皟浜嬩欢
+                    this.ConnectionStateEvent?.Invoke(-1, 0);
+                }
+            }
+
+            /// <summary>
+            /// 鎴愬姛鍙戠幇璁惧鐨剆ervices鏃讹紝璋冪敤姝ゆ柟娉�
+            /// </summary>
+            /// <param name="gatt"></param>
+            /// <param name="status"></param>
+            public override void OnServicesDiscovered(Android.Bluetooth.BluetoothGatt gatt, Android.Bluetooth.GattStatus status)
+            {
+                if (status != Android.Bluetooth.GattStatus.Success)
+                {
+                    //鍥炶皟浜嬩欢
+                    this.ConnectionStateEvent?.Invoke(-1, 0);
+                }
+            }
+
+            /// <summary>
+            /// 搴旇鏄啓鍏ヤ簨浠跺惂
+            /// </summary>
+            /// <param name="gatt"></param>
+            /// <param name="characteristic"></param>
+            /// <param name="status"></param>
+            public override void OnCharacteristicWrite(Android.Bluetooth.BluetoothGatt gatt, Android.Bluetooth.BluetoothGattCharacteristic characteristic, Android.Bluetooth.GattStatus status)
+            {
+                if (status != Android.Bluetooth.GattStatus.Success)
+                {
+                    //鍥炶皟浜嬩欢
+                    this.ConnectionStateEvent?.Invoke(-1, 0);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鎶凷DK鐨勶紝鎴戜篃涓嶇煡閬撹繖涓槸浠�涔�
+        /// </summary>
+        private class BlufiCallbackMain : Blufi.Espressif.BlufiCallback
+        {
+            /// <summary>
+            /// 鐘舵�佷簨浠跺洖璋� 褰撶涓�涓弬鏁颁负"A钃濈墮鍙嶉"鏃�,绗簩涓弬鏁颁负钃濈墮杩斿洖鐨勪俊鎭�
+            /// </summary>
+            public Action<StatuEnum, string> StateEvent = null;
+
+            /// <summary>
+            /// 鎶凷DK鐨勶紝鎴戜篃涓嶇煡閬撹繖涓槸浠�涔�
+            /// </summary>
+            /// <param name="client"></param>
+            /// <param name="gatt"></param>
+            /// <param name="service"></param>
+            /// <param name="writeChar"></param>
+            /// <param name="notifyChar"></param>
+            public override void OnGattPrepared(Blufi.Espressif.BlufiClient client, Android.Bluetooth.BluetoothGatt gatt, Android.Bluetooth.BluetoothGattService service,
+                Android.Bluetooth.BluetoothGattCharacteristic writeChar, Android.Bluetooth.BluetoothGattCharacteristic notifyChar)
+            {
+                if (service == null || writeChar == null || notifyChar == null)
+                {
+                    StateEvent?.Invoke(StatuEnum.A寮傚父, null);
+                    return;
+                }
+
+                try
+                {
+                    int mtu = 128;
+                    if ((int)Android.OS.Build.VERSION.SdkInt == 29
+                      && Android.OS.Build.Manufacturer.ToLower().StartsWith("samsung") == true)
+                    {
+                        mtu = 23;
+                    }
+
+                    var requestMtu = gatt.RequestMtu(mtu);
+                    if (!requestMtu)
+                    {
+                        //Request mtu failed
+                        client.SetPostPackageLengthLimit(20);
+                    }
+                    StateEvent?.Invoke(StatuEnum.A姝e父, null); ;
+                }
+                catch
+                {
+                    StateEvent?.Invoke(StatuEnum.A寮傚父, null);
+                    return;
+                }
+            }
+
+            /// <summary>
+            /// 鎵嬫満绔彂閫佹暟鎹埌钃濈墮鐨勭粨鏋�
+            /// </summary>
+            /// <param name="client"></param>
+            /// <param name="status">0:鎴愬姛 鍏朵粬閮芥槸澶辫触</param>
+            /// <param name="data">鎵嬫満绔彂閫佺殑鏁版嵁</param>
+            public override void OnPostCustomDataResult(Blufi.Espressif.BlufiClient client, int status, byte[] data)
+            {
+                StateEvent?.Invoke(status == 0 ? StatuEnum.A鍙戦�佹垚鍔� : StatuEnum.A鍙戦�佸け璐�, null);
+            }
+
+            /// <summary>
+            /// 钃濈墮鍥炲鐨勭粨鏋�
+            /// </summary>
+            /// <param name="client"></param>
+            /// <param name="status">0:鎴愬姛 鍏朵粬閮芥槸澶辫触</param>
+            /// <param name="data">钃濈墮鍥炲鐨勬暟鎹�</param>
+            public override void OnReceiveCustomData(Blufi.Espressif.BlufiClient client, int status, byte[] data)
+            {
+                if (status == 0)
+                {
+                    var receiveData = System.Text.Encoding.UTF8.GetString(data);
+                    StateEvent?.Invoke(StatuEnum.A钃濈墮鍙嶉, receiveData);
+                }
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 钃濈墮鍏抽棴___________________________
+
+        /// <summary>
+        ///  鍏抽棴钃濈墮閾炬帴
+        /// </summary>
+        public void DisContectBluetooth()
+        {
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                this.nowBlufiClient?.RequestCloseConnection();
+                this.nowBlufiClient = null;
+
+                m_Current = null;
+
+            }, ShowErrorMode.NO);
+        }
+
+        /// <summary>
+        /// 鎽ф瘉
+        /// </summary>
+        public void Dispone()
+        {
+            //鍏抽棴钃濈墮閾炬帴
+            this.DisContectBluetooth();
+            this.ReceiveEvent = null;
+            m_Current = null;
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佹暟鎹甠__________________________
+
+        /// <summary>
+        /// 鍙戦�佹暟鎹粰钃濈墮
+        /// </summary>
+        /// <param name="i_data">鍙戦�佺殑鏁版嵁</param>
+        /// <param name="waiTime">绛夊緟鏃堕棿(绉�),濡傛灉璁剧疆涓�0,鍒欏彧瑕佸彂閫佷笉鍑虹幇寮傚父,鐩存帴鍒ゅ畾涓烘垚鍔�</param>
+        public bool SendData(string i_data, int waiTime = 0)
+        {
+            if (this.nowBlufiClient == null)
+            {
+                return false;
+            }
+
+            try
+            {
+                this.sendStatuValue = -1;
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍙戦�佹暟鎹�
+                    var byteData = System.Text.Encoding.UTF8.GetBytes(i_data);
+                    this.nowBlufiClient.PostCustomData(byteData);
+
+                }, ShowErrorMode.NO);
+
+                if (waiTime == 0) { return true; }
+
+                waiTime *= 5;
+                while (this.sendStatuValue == -1 && waiTime > 0)
+                {
+                    System.Threading.Thread.Sleep(200);
+                    waiTime--;
+                }
+                return this.sendStatuValue == 1;
+            }
+            catch { return false; }
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 娣诲姞钃濈墮鐨勬帴鏀朵簨浠�
+        /// </summary>
+        /// <param name="i_ReceiveEvent">钃濈墮鎺ユ敹浜嬩欢</param>
+        public void AddReceiveEvent(Action<string> i_ReceiveEvent)
+        {
+            this.ReceiveEvent = i_ReceiveEvent;
+        }
+
+        /// <summary>
+        /// 绉婚櫎钃濈墮鐨勬帴鏀朵簨浠�
+        /// </summary>
+        public void RemoveReceiveEvent()
+        {
+            this.ReceiveEvent = null;
+        }
+
+        #endregion
+
+        #region 鈻� 缁撴瀯浣揰____________________________
+
+        /// <summary>
+        /// 钃濈墮杩斿洖鐨勪俊鎭�
+        /// </summary>
+        public class BluetoothInfo
+        {
+            /// <summary>
+            /// 鍚嶅瓧(姝ゅ悕瀛椾笉浼歯ull,濡傛灉瀹冩湰韬槸null,鍙細鏄痵tring.empty)
+            /// </summary>
+            public string Name = string.Empty;
+            /// <summary>
+            /// 鍦板潃
+            /// </summary>
+            public string Address = string.Empty;
+            /// <summary>
+            /// 钃濈墮璁惧
+            /// </summary>
+            public Android.Bluetooth.BluetoothDevice Device = null;
+        }
+
+        /// <summary>
+        /// 鐘舵�佹灇涓�
+        /// </summary>
+        private enum StatuEnum
+        {
+            A寮傚父 = -1,
+            A姝e父 = 1,
+            A鍙戦�佹垚鍔� = 2,
+            A鍙戦�佸け璐� = 3,
+            A钃濈墮鍙嶉 = 4
+        }
+
+        #endregion
+    }
+#endif
+}
+
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothIOSLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothIOSLogic.cs
new file mode 100644
index 0000000..8900504
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothIOSLogic.cs
@@ -0,0 +1,489 @@
+锘縰sing System;
+using System.Collections.Generic;
+
+namespace HDL_ON.Stan
+{
+#if __IOS__
+    /// <summary>
+    /// IOS钃濈墮鐨勯�昏緫
+    /// </summary>
+    public class HdlBluetoothLogic
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 瀹夊崜钃濈墮鐨勯�昏緫
+        /// </summary>
+        private static HdlBluetoothLogic m_Current = null;
+        /// <summary>
+        /// 瀹夊崜钃濈墮鐨勯�昏緫
+        /// </summary>
+        public static HdlBluetoothLogic Current
+        {
+            get
+            {
+                if (m_Current == null)
+                {
+                    m_Current = new HdlBluetoothLogic();
+                }
+                return m_Current;
+            }
+        }
+        /// <summary>
+        /// 鎴戜篃涓嶇煡閬撹繖鏄粈涔堜笢瑗�
+        /// </summary>
+        private HdlBlufi.HdlBluWi hdlBluWiShare;
+        /// <summary>
+        /// 鎴戜篃涓嶇煡閬撹繖鏄粈涔堜笢瑗�
+        /// </summary>
+        private HdlBlufi.BlufiClient blufiClient;
+        /// <summary>
+        /// 鎺ユ敹浜嬩欢
+        /// </summary>
+        private Action<string> ReceiveEvent = null;
+        /// <summary>
+        /// 鍙戦�佺姸鎬�(0:鍙戦�佸け璐� 1:鍙戦�佹垚鍔�)
+        /// </summary>
+        private int sendStatuValue = -1;
+        /// <summary>
+        /// 钃濈墮鏄惁鎵撳紑
+        /// </summary>
+        private bool IsBlufiOpen = false;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹__________________________
+
+        /// <summary>
+        /// 鍒濆鍖�
+        /// </summary>
+        private bool InitHdlBlufi()
+        {
+            if (hdlBluWiShare != null) { return true; }
+
+            try
+            {
+                this.hdlBluWiShare = HdlBlufi.HdlBluWi.Share();
+                this.blufiClient = new HdlBlufi.BlufiClient();
+
+                blufiClient.CentralManagerDelete = new BlueCBCentralManagerDelegate();
+                //娣诲姞鍥炶皟浜嬩欢
+                ((BlueCBCentralManagerDelegate)blufiClient.CentralManagerDelete).StateEvent += (div, data) =>
+                {
+                    //-1:寮傚父 1:姝e父
+                    if (div == StatuEnum.A寮傚父)
+                    {
+                        //钃濈墮娌℃湁鎵撳紑
+                        this.IsBlufiOpen = false;
+                    }
+                    else if (div == StatuEnum.A姝e父)
+                    {
+                        //钃濈墮鎵撳紑鐫�
+                        this.IsBlufiOpen = true;
+                    }
+                };
+
+                blufiClient.BlufiDelegate = new BlueWifiDelegate();
+                return true;
+            }
+            catch { return false; }
+        }
+
+        #endregion
+
+        #region 鈻� 钃濈墮鎵�闇�鍔熻兘妫�娴媉__________________
+
+        /// <summary>
+        /// 妫�娴嬫槸鍚﹁兘澶熸悳绱㈣摑鐗�(鍐呴儴浼氬脊鍑篗sg妗�,鍥犱负鍐呴儴闇�瑕佹娴嬬郴缁熸潈闄�,鎵�浠ュ弬鏁伴噰鐢ㄥ洖璋冪殑鏂瑰紡)
+        /// </summary>
+        /// <param name="resultEvent">妫�娴嬬粨鏋滀簨浠�</param>
+        public void CheckCanScanBluetooth(Action<bool> resultEvent)
+        {
+            try聽
+            {
+                //鍏堝垵濮嬪寲
+                if (this.InitHdlBlufi() == false)
+                {
+                    resultEvent?.Invoke(false);
+                    //璇锋墦寮�钃濈墮
+                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Shared.Language.StringByID(StringId.PleaseTurnOnBluetooth));
+                    return;
+                }
+                   
+                if (this.IsBlufiOpen == true)
+                {
+                    //鍥犱负鏄竴鐩寸洃鍚潃锛屾墍浠ュ鏋滄槸true锛岀洿鎺ヨ繑鍥�
+                    resultEvent?.Invoke(this.IsBlufiOpen);
+                    return;
+                }
+
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    //ios闇�瑕佺洃鍚墠鑳藉鑾峰緱钃濈墮鐨勭姸鎬�
+                    System.Threading.Thread.Sleep(500);
+                    if (this.IsBlufiOpen == false)
+                    {
+                        //璇锋墦寮�钃濈墮
+                        HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Shared.Language.StringByID(StringId.PleaseTurnOnBluetooth));
+                    }
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        resultEvent?.Invoke(this.IsBlufiOpen);
+                    });
+                }, ShowErrorMode.NO);
+            }
+            catch
+            {
+                resultEvent?.Invoke(false);
+                //璇锋墦寮�钃濈墮
+                HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Shared.Language.StringByID(StringId.PleaseTurnOnBluetooth));
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 钃濈墮鎵弿___________________________
+
+        /// <summary>
+        /// 鎼滅储钃濈墮
+        /// </summary>
+        /// <param name="waitTime">鎼滅储鏃堕棿(绉�)</param>
+        /// <param name="FinishEvent">鎼滅储缁撴潫鐨勪簨浠�</param>
+        public void ScanBluetooth(int waitTime, Action<List<BluetoothInfo>> FinishEvent)
+        {
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                //鍐嶆妫�娴嬫槸鍚﹁兘澶熸悳绱㈣摑鐗�
+                this.CheckCanScanBluetooth((result) =>
+                {
+                    if (result == true)
+                    {
+                        HdlThreadLogic.Current.RunThread(() =>
+                        {
+                            //寮�濮嬫悳绱㈣摑鐗�
+                            this.DoScanBluetooth(waitTime, FinishEvent);
+                        });
+                    }
+                });
+            });
+        }
+
+        /// <summary>
+        /// 寮�濮嬫悳绱㈣摑鐗�
+        /// </summary>
+        /// <param name="waitTime">鎼滅储鏃堕棿(绉�)</param>
+        /// <param name="FinishEvent">鎼滅储缁撴潫鐨勪簨浠�</param>
+        private void DoScanBluetooth(int waitTime, Action<List<BluetoothInfo>> FinishEvent)
+        {
+            //钃濈墮鍒楄〃
+            var listData = new List<BluetoothInfo>();
+            //閲嶅妫�娴�
+            var listCheck = new List<string>();
+            //瀹炵幇钃濈墮鎺ユ敹浜嬩欢
+            var ReceiveBlufiDeviceEvent = new HdlBlufi.FBYBleDeviceBackBlock((arg0) =>
+            {
+                var address = arg0.Uuid.ToString();
+                if (listCheck.Contains(address) == false)
+                {
+                    listCheck.Add(address);
+                    var data = new BluetoothInfo();
+                    data.Address = address;
+                    data.Name = arg0.Name == null ? string.Empty : arg0.Name;
+                    listData.Add(data);
+                }
+            });
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                //寮�鍚摑鐗欐悳绱�
+                this.hdlBluWiShare.StartScan(ReceiveBlufiDeviceEvent);
+            }, ShowErrorMode.NO);
+            System.Threading.Thread.Sleep(waitTime * 1000);
+
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                //鍏抽棴钃濈墮鎼滅储
+                this.hdlBluWiShare.StopScan();
+                ReceiveBlufiDeviceEvent = null;
+
+            }, ShowErrorMode.NO);
+            //鍥炶皟浜嬩欢
+            FinishEvent?.Invoke(listData);
+        }
+
+        #endregion
+
+        #region 鈻� 钃濈墮閾炬帴___________________________
+
+        /// <summary>
+        /// 钃濈墮閾炬帴(false:杩炴帴澶辫触 true:杩炴帴鎴愬姛)
+        /// </summary>
+        /// <param name="bluetooth">闇�瑕侀摼鎺ョ殑钃濈墮瀵硅薄</param>
+        /// <param name="connectEvent">鍥犱负闇�瑕佸鏂瑰弽棣�,鎵�浠ヤ娇鐢ㄥ洖璋�(閾炬帴缁撴灉 false:杩炴帴澶辫触 true:杩炴帴鎴愬姛)</param>
+        public void ContectBluetooth(BluetoothInfo bluetooth, Action<bool> connectEvent)
+        {
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                try
+                {
+                    //娣诲姞浜嬩欢
+                    ((BlueWifiDelegate)blufiClient.BlufiDelegate).StateEvent += (div, data) =>
+                    {
+                        //-1:寮傚父 1:姝e父 2:鍙戦�佹暟鎹垚鍔� 3:鍙戦�佹暟鎹け璐�
+                        if (div == StatuEnum.A寮傚父)
+                        {
+                            //鍏抽棴閾炬帴
+                            this.DisContectBluetooth();
+                            connectEvent?.Invoke(false);
+                            //鍙�氱煡涓�娆�
+                            connectEvent = null;
+                        }
+                        else if (div == StatuEnum.A姝e父)
+                        {
+                            //閾炬帴寤虹珛鎴愬姛
+                            connectEvent?.Invoke(true);
+                            //鍙�氱煡涓�娆�
+                            connectEvent = null;
+                        }
+                        else if (div == StatuEnum.A鍙戦�佹垚鍔� || div == StatuEnum.A鍙戦�佸け璐�)
+                        {
+                            sendStatuValue = div == StatuEnum.A鍙戦�佹垚鍔� ? 1 : 0;
+                        }
+                        else if (div == StatuEnum.A钃濈墮鍙嶉)
+                        {
+                            //钃濈墮杩斿洖鐨勭粨鏋�
+                            this.ReceiveEvent?.Invoke(data);
+                        }
+                    };
+                    //鎵ц閾炬帴
+                    this.blufiClient.Connect(bluetooth.Address);
+                }
+                catch
+                {
+                    connectEvent?.Invoke(false);
+                    connectEvent = null;
+                }
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 钃濈墮鍏抽棴___________________________
+
+        /// <summary>
+        ///  鍏抽棴钃濈墮閾炬帴
+        /// </summary>
+        public void DisContectBluetooth()
+        {
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                this.blufiClient?.Close();
+                this.blufiClient = null;
+                this.hdlBluWiShare = null;
+
+            }, ShowErrorMode.NO);
+        }
+
+        /// <summary>
+        /// 鎽ф瘉
+        /// </summary>
+        public void Dispone()
+        {
+            //鍏抽棴钃濈墮閾炬帴
+            this.DisContectBluetooth();
+            this.ReceiveEvent = null;
+            m_Current = null;
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佹暟鎹甠__________________________
+
+        /// <summary>
+        /// 鍙戦�佹暟鎹粰钃濈墮
+        /// </summary>
+        /// <param name="i_data">鍙戦�佺殑鏁版嵁</param>
+        /// <param name="waiTime">绛夊緟鏃堕棿(绉�),濡傛灉璁剧疆涓�0,鍒欏彧瑕佸彂閫佷笉鍑虹幇寮傚父,鐩存帴鍒ゅ畾涓烘垚鍔�</param>
+        public bool SendData(string i_data, int waiTime = 0)
+        {
+            if (this.blufiClient == null)
+            {
+                return false;
+            }
+
+            try
+            {
+                this.sendStatuValue = -1;
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍙戦�佹暟鎹�
+                    var data = new Foundation.NSData();
+                    data = i_data;
+                    blufiClient.PostCustomData(data);
+
+                }, ShowErrorMode.NO);
+
+                if (waiTime == 0) { return true; }
+
+                waiTime *= 5;
+                while (this.sendStatuValue == -1 && waiTime > 0)
+                {
+                    System.Threading.Thread.Sleep(200);
+                    waiTime--;
+                }
+                return this.sendStatuValue == 1;
+            }
+            catch { return false; }
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 娣诲姞钃濈墮鐨勬帴鏀朵簨浠�
+        /// </summary>
+        /// <param name="i_ReceiveEvent">钃濈墮鎺ユ敹浜嬩欢</param>
+        public void AddReceiveEvent(Action<string> i_ReceiveEvent)
+        {
+            this.ReceiveEvent = i_ReceiveEvent;
+        }
+
+        /// <summary>
+        /// 绉婚櫎钃濈墮鐨勬帴鏀朵簨浠�
+        /// </summary>
+        public void RemoveReceiveEvent()
+        {
+            this.ReceiveEvent = null;
+        }
+
+        #endregion
+
+        #region 鈻� 绯荤粺钃濈墮鍥炶皟_______________________
+
+        private class BlueWifiDelegate : HdlBlufi.BlufiDelegate
+        {
+            /// <summary>
+            /// 鐘舵�佷簨浠跺洖璋� 褰撶涓�涓弬鏁颁负"A钃濈墮鍙嶉"鏃�,绗簩涓弬鏁颁负钃濈墮杩斿洖鐨勪俊鎭�
+            /// </summary>
+            public Action<StatuEnum, string> StateEvent = null;
+
+            public override void Blufi_didNegotiateSecurity(HdlBlufi.BlufiClient client, HdlBlufi.BlufiStatusCode status)
+            {
+                //Console.WriteLine("Blufi_didNegotiateSecurity");
+            }
+
+            public override void Blufi_didPostCustomData(HdlBlufi.BlufiClient client, Foundation.NSData data, HdlBlufi.BlufiStatusCode status)
+            {
+                if (status == HdlBlufi.BlufiStatusCode.Success)
+                {
+                    //鍙戦�佽摑鐗欐暟鎹垚鍔�
+                    StateEvent?.Invoke(StatuEnum.A鍙戦�佹垚鍔�, null);
+                }
+                else
+                {
+                    //鍙戦�佽摑鐗欐暟鎹け璐�
+                    StateEvent?.Invoke(StatuEnum.A鍙戦�佸け璐�, null);
+                }
+            }
+
+            public override void Blufi_didReceiveDeviceScanResponse(HdlBlufi.BlufiClient client, HdlBlufi.BlufiScanResponse[] scanResults, HdlBlufi.BlufiStatusCode status)
+            {
+                //Console.WriteLine("Blufi_didReceiveDeviceScanResponse");
+            }
+
+            public override void Blufi_didReceiveDeviceVersionResponse(HdlBlufi.BlufiClient client, HdlBlufi.BlufiVersionResponse response, HdlBlufi.BlufiStatusCode status)
+            {
+                //Console.WriteLine("Blufi_didReceiveDeviceVersionResponse");
+            }
+
+            public override void Blufi_didPostConfigureParams(HdlBlufi.BlufiClient client, HdlBlufi.BlufiStatusCode status)
+            {
+                //Console.WriteLine("Blufi_didPostConfigureParams");
+            }
+
+            public override void Blufi_didReceiveCustomData(HdlBlufi.BlufiClient client, Foundation.NSData data, HdlBlufi.BlufiStatusCode status)
+            {
+                //鎺ユ敹钃濈墮鍙戦�佽繃鏉ョ殑鏁版嵁
+                StateEvent?.Invoke(StatuEnum.A钃濈墮鍙嶉, data.ToString());
+            }
+
+            public override void Blufi_didReceiveDeviceStatusResponse(HdlBlufi.BlufiClient client, HdlBlufi.BlufiStatusResponse response, HdlBlufi.BlufiStatusCode status)
+            {
+                //Console.WriteLine("Blufi_didReceiveDeviceStatusResponse");
+            }
+
+            public override void Blufi_didReceiveError(HdlBlufi.BlufiClient client, nint errCode)
+            {
+                //Console.WriteLine("Blufi_didReceiveError");
+            }
+
+            public override void Blufi_gattPrepared(HdlBlufi.BlufiClient client, HdlBlufi.BlufiStatusCode status, CoreBluetooth.CBService service, CoreBluetooth.CBCharacteristic writeChar, CoreBluetooth.CBCharacteristic notifyChar)
+            {
+                if (status == HdlBlufi.BlufiStatusCode.Success)
+                {
+                    //钃濈墮杩炴帴鎴愬姛
+                    StateEvent?.Invoke(StatuEnum.A姝e父, null);
+                }
+                else
+                {
+                    //钃濈墮杩炴帴澶辫触
+                    StateEvent?.Invoke(StatuEnum.A寮傚父, null);
+                }
+            }
+        }
+
+        private class BlueCBCentralManagerDelegate : CoreBluetooth.CBCentralManagerDelegate
+        {
+            /// <summary>
+            /// 鐘舵�佷簨浠跺洖璋�
+            /// </summary>
+            public Action<StatuEnum, string> StateEvent = null;
+
+            public override void UpdatedState(CoreBluetooth.CBCentralManager central)
+            {
+                //鍙娌℃湁鎵撳紑钃濈墮锛岄兘绠楀紓甯稿鐞�
+                if (central.State == CoreBluetooth.CBCentralManagerState.PoweredOn)
+                {
+                    StateEvent?.Invoke(StatuEnum.A姝e父, null);
+                }
+                else
+                {
+                    StateEvent?.Invoke(StatuEnum.A寮傚父, null);
+                }
+            }
+        }
+        #endregion
+
+        #region 鈻� 缁撴瀯浣揰____________________________
+
+        /// <summary>
+        /// 钃濈墮杩斿洖鐨勪俊鎭�
+        /// </summary>
+        public class BluetoothInfo
+        {
+            /// <summary>
+            /// 鍚嶅瓧(姝ゅ悕瀛椾笉浼歯ull,濡傛灉瀹冩湰韬槸null,鍙細鏄痵tring.empty)
+            /// </summary>
+            public string Name = string.Empty;
+            /// <summary>
+            /// 鍦板潃
+            /// </summary>
+            public string Address = string.Empty;
+        }
+
+        /// <summary>
+        /// 鐘舵�佹灇涓�
+        /// </summary>
+        private enum StatuEnum
+        {
+            A寮傚父 = -1,
+            A姝e父 = 1,
+            A鍙戦�佹垚鍔� = 2,
+            A鍙戦�佸け璐� = 3,
+            A钃濈墮鍙嶉 = 4
+        }
+
+        #endregion
+    }
+#endif
+}
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlCloudReceiveLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlCloudReceiveLogic.cs
new file mode 100644
index 0000000..81c4959
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlCloudReceiveLogic.cs
@@ -0,0 +1,164 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+    //搴旇涔熶笉澶�,灏卞啓鍦ㄨ繖閲屼簡
+
+    /// <summary>
+    /// 浜戠鎺ㄩ�佹灇涓�
+    /// </summary>
+    public enum CloudPushEnum
+    {
+        A鏂拌澶囦笂鎶� = 1,
+    }
+
+    /// <summary>
+    /// 鍏ㄥ眬鎺ユ敹浜戠鎺ㄩ�佺殑鐨勯�昏緫(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣�)
+    /// </summary>
+    public class HdlCloudReceiveLogic
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鍏ㄥ眬鎺ユ敹浜戠鎺ㄩ�佺殑鐨勯�昏緫
+        /// </summary>
+        private static HdlCloudReceiveLogic m_Current = null;
+        /// <summary>
+        /// 鍏ㄥ眬鎺ユ敹浜戠鎺ㄩ�佺殑鐨勯�昏緫
+        /// </summary>
+        public static HdlCloudReceiveLogic Current
+        {
+            get
+            {
+                if (m_Current == null)
+                {
+                    m_Current = new HdlCloudReceiveLogic();
+                }
+                return m_Current;
+            }
+        }
+
+        /// <summary>
+        /// 浜戠鎺ユ敹浜嬩欢闆嗗悎
+        /// </summary>
+        private List<CloudReceiveEventClass> ListCloudEvent = new List<CloudReceiveEventClass>();
+
+        #endregion
+
+        #region 鈻� 鍏ㄥ眬鎺ユ敹___________________________
+
+        /// <summary>
+        /// 鐗规畩鍏ㄥ眬鎺ユ敹浜戠鎺ㄩ�佺殑鐨勯�昏緫(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣� true:鎵ц浜嗙壒娈婂鐞� false:娌℃湁鎵ц鐗规畩澶勭悊)
+        /// </summary>
+        /// <param name="topic">鏁翠釜涓婚</param>
+        /// <param name="byteData">鎺ユ敹鐨勬暟鎹�</param>
+        /// <param name="mqttEncryptKey">Mqtt鐨勮В瀵嗗瘑閽�</param>
+        /// <param name="homeIdEncryptKey">浣忓畢鍊掑簭鐨勮В瀵嗗瘑閽�</param>
+        public bool CloudOverallMsgReceiveEx(string topic, byte[] byteData, string mqttEncryptKey, string homeIdEncryptKey)
+        {
+            //璁惧鍏ョ綉涓婃姤涓婚
+            if (topic == $"/user/{Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/topo/found")
+            {
+                if (string.IsNullOrEmpty(homeIdEncryptKey) == false)
+                {
+                    //瑙e瘑
+                    byteData = Securitys.EncryptionService.AesDecryptPayload(byteData, homeIdEncryptKey);
+                }
+                string msgData = Encoding.UTF8.GetString(byteData);
+                //杩欓噷鐗规畩,鍒�ョ潃杞瓧绗︿覆,鍏堝垽鏂富棰樺啀杞�
+                return this.CloudOverallMsgReceiveEx(topic, msgData);
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// 鐗规畩鍏ㄥ眬鎺ユ敹浜戠鎺ㄩ�佺殑鐨勯�昏緫(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣� true:鎵ц浜嗙壒娈婂鐞� false:娌℃湁鎵ц鐗规畩澶勭悊)
+        /// </summary>
+        /// <param name="topic">鏁翠釜涓婚</param>
+        /// <param name="msgData">鎺ユ敹鐨勬暟鎹�</param>
+        public bool CloudOverallMsgReceiveEx(string topic, string msgData)
+        {
+            //娌℃湁浠讳綍鐩戝惉
+            if (ListCloudEvent.Count == 0) { return false; }
+
+            //璁惧鍏ョ綉涓婃姤涓婚(鐩墠鍙湁绾㈠瀹�)
+            if (topic == $"/user/{Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/topo/found")
+            {
+                for (int i = 0; i < this.ListCloudEvent.Count; i++)
+                {
+                    //鍥炶皟浜嬩欢
+                    this.ListCloudEvent[i].CloudReceiveEvent(CloudPushEnum.A鏂拌澶囦笂鎶�, msgData);
+                }
+                return true;
+            }
+            return false;
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞浜戠鐩戝惉_______________________
+
+        /// <summary>
+        /// 娣诲姞浜戠鎺ユ敹浜嬩欢
+        /// </summary>
+        /// <param name="i_mainKey">鏍囪瘑浜嬩欢鐨勪富閿�(鍙互闅忎究濉�,涓昏鏄拡瀵瑰涓晫闈竴璧蜂娇鐢ㄧ殑鎯呭喌)</param>
+        /// <param name="action">(鍙傛暟1:鏋氫妇 鍙傛暟2:鎺ㄩ�佹秷鎭�)</param>
+        public void AddCloudReceiveEvent(string i_mainKey, Action<CloudPushEnum, string> action)
+        {
+            try
+            {
+                var eventClass = new CloudReceiveEventClass();
+                eventClass.MainKey = i_mainKey;
+                eventClass.CloudReceiveEvent = action;
+                this.ListCloudEvent.Add(eventClass);
+            }
+            catch { }
+        }
+        #endregion
+
+        #region 鈻� 绉婚櫎浜戠鐩戝惉_______________________
+
+        /// <summary>
+        /// 绉婚櫎浜戠鎺ユ敹浜嬩欢
+        /// </summary>
+        /// <param name="i_mainKey">鏍囪瘑浜嬩欢鐨勪富閿�(鍙互闅忎究濉�,涓昏鏄拡瀵瑰涓晫闈竴璧蜂娇鐢ㄧ殑鎯呭喌)</param>
+        public void RemoveCloudReceiveEvent(string i_mainKey)
+        {
+            try
+            {
+                for (int i = 0; i < this.ListCloudEvent.Count; i++)
+                {
+                    if (this.ListCloudEvent[i].MainKey == i_mainKey)
+                    {
+                        this.ListCloudEvent.RemoveAt(i);
+                        i--;
+                    }
+                }
+            }
+            catch { }
+        }
+
+        #endregion
+
+        #region 鈻� 缁撴瀯浣揰____________________________
+
+        /// <summary>
+        /// 浜戠鎺ユ敹浜嬩欢绫�
+        /// </summary>
+        private class CloudReceiveEventClass
+        {
+            /// <summary>
+            /// 鏍囪瘑浜嬩欢鐨勪富閿�(鍙互闅忎究濉�,涓昏鏄拡瀵瑰涓晫闈竴璧蜂娇鐢ㄧ殑鎯呭喌)
+            /// </summary>
+            public string MainKey = string.Empty;
+            /// <summary>
+            /// 浜戠鎺ユ敹浜嬩欢(鍙傛暟1:鏋氫妇 鍙傛暟2:鎺ㄩ�佹秷鎭�)
+            /// </summary>
+            public Action<CloudPushEnum, string> CloudReceiveEvent = null;
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlWifiLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlWifiLogic.cs
new file mode 100644
index 0000000..b4af0db
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlWifiLogic.cs
@@ -0,0 +1,99 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+    /// <summary>
+    /// WiFi鐨勯�昏緫
+    /// </summary>
+    public class HdlWifiLogic
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// WiFi鐨勯�昏緫
+        /// </summary>
+        private static HdlWifiLogic m_Current = null;
+        /// <summary>
+        /// WiFi鐨勯�昏緫
+        /// </summary>
+        public static HdlWifiLogic Current
+        {
+            get
+            {
+                if (m_Current == null)
+                {
+                    m_Current = new HdlWifiLogic();
+                }
+                return m_Current;
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠wifi鐨凷SID,涔熷彨Wifi鐨勫悕瀛�(鍙栦笉鍒版椂,浼氳繑鍥瀗ull)
+        /// </summary>
+        public string SSID
+        {
+            get
+            {
+#if __IOS__
+                string ssiD = Shared.WiimuUPnP.SSID;
+                if (string.IsNullOrEmpty(ssiD) == false && ssiD.StartsWith("\"") && ssiD.EndsWith("\""))
+                {
+                    ssiD = ssiD.Substring(1, ssiD.Length - 2);
+                }
+                return ssiD;
+#endif
+#if __Android__
+                string ssiD = null;
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    Shared.Net.NetWiFi.GetWIFISSID((strId) =>
+                    {
+                        ssiD = strId;
+                    });
+                }, ShowErrorMode.NO);
+                int count = 0;
+                while (ssiD == null)
+                {
+                    System.Threading.Thread.Sleep(50);
+                    count++;
+                    if (count == 20)
+                    {
+                        //1绉掕秴鏃�
+                        return null;
+                    }
+                }
+                if (string.IsNullOrEmpty(ssiD) == false && ssiD.StartsWith("\"") && ssiD.EndsWith("\""))
+                {
+                    ssiD = ssiD.Substring(1, ssiD.Length - 2);
+                }
+                return ssiD;
+#endif
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鎵撳紑鎵嬫満wifi璁剧疆鐣岄潰
+        /// </summary>
+        public void OpenAppWifiSettion()
+        {
+            if (Shared.Application.DeviceType == Shared.Device.Android)
+            {
+                ///鎵撳紑WI-IF鐣岄潰
+                Shared.CommonClass.OpenAction("android.settings.WIFI_SETTINGS");
+            }
+            else
+            {
+                Shared.CommonClass.OpenAction("App-Prefs:root=WIFI");
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs b/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs
index 04f312e..79dced0 100644
--- a/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs
@@ -271,6 +271,7 @@
                         {
                             CloseTime = 1,
                             Direction = AMPopTipDirection.None,
+                            MaxWidth = Application.GetRealWidth(300),
                             Text = Language.StringByID(StringId.IncorrectRepeatPassword)
                         }.Show(bodyView);
                     }
diff --git a/HDL_ON/UI/UI1-Login/LoginPage.cs b/HDL_ON/UI/UI1-Login/LoginPage.cs
index 06ff41a..1110798 100644
--- a/HDL_ON/UI/UI1-Login/LoginPage.cs
+++ b/HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -197,7 +197,7 @@
                 }
                 else
                 {
-                    etAccount.Text = "15971583093";//鍑夐湼"18666455392";//13375012446//13602944661//tzy 18778381374
+                    etAccount.Text = "15622703419";//鍑夐湼"18666455392";//13375012446//13602944661//tzy 18778381374
                     //15971583093 gs
                 }
                 b = !b;
diff --git a/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs b/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs
index 9dbc24a..4e2b8ce 100644
--- a/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs
@@ -299,7 +299,8 @@
                             {
                                 CloseTime = 1,
                                 Direction = AMPopTipDirection.None,
-                                Text = Language.StringByID(StringId.IncorrectRepeatPassword)
+                                Text = Language.StringByID(StringId.IncorrectRepeatPassword),
+                                MaxWidth = Application.GetRealWidth(300),
                             }.Show(bodyView);
                         }
                         else
diff --git a/HDL_ON/UI/UI2/.DS_Store b/HDL_ON/UI/UI2/.DS_Store
index 249ba1d..1f6e40e 100644
--- a/HDL_ON/UI/UI2/.DS_Store
+++ b/HDL_ON/UI/UI2/.DS_Store
Binary files differ
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index 265043e..9366529 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -877,58 +877,62 @@
                     };
                     view.AddChidren(btnSwitch);
 
-                    switch (function.Spk_Prefix)
-                    {
-                        //todo 澧炲姞璁惧锛屼富椤垫敹钘忓浘鏍�
-                        case FunctionCategory.Light:
-                            #region 鐏厜 Light
-                            btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightIcon.png";
-                            btnIcon.SelectedImagePath = "FunctionIcon/Light/LightOnIcon.png";
-                            UpdataFunctionStates(function);
-                            #endregion
-                            break;
-                        case FunctionCategory.AC:
-                            #region 绌鸿皟 AC
-                            btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcIcon.png";
-                            btnIcon.SelectedImagePath = "FunctionIcon/AC/AcOnIcon.png";
-                            #endregion
-                            break;
-                        case FunctionCategory.FloorHeat:
-                            #region 鍦扮儹
-                            btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingIcon.png";
-                            btnIcon.SelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingOnIcon.png";
-                            #endregion
-                            break;
-                        case FunctionCategory.Electric:
-                            switch (function.spk)
-                            {
-                                case SPK.ElectricSocket:
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketIcon.png";
-                                    btnIcon.SelectedImagePath = "FunctionIcon/Socket/SocketOnIcon.png";
-                                    break;
-                                case SPK.ElectricFan:
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanIcon.png";
-                                    btnIcon.SelectedImagePath = "FunctionIcon/Electrical/FanOnIcon.png";
-                                    break;
-                                case SPK.ElectricTuyaAirCleaner:
-                                    btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/AirCleanerIcon.png";
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/AirCleanerIconOn.png";
-                                    break;
-                                case SPK.ElectricTuyaFan:
-                                    btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/FanIcon.png";
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/FanIconOn.png";
-                                    break;
-                                case SPK.ElectricTuyaWaterValve:
-                                    btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/WaterValveIcon.png";
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/WaterValveIconOn.png";
-                                    break;
-                                case SPK.ElectricTuyaWeepRobot:
-                                    btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/WeepRobotIcon.png";
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/WeepRobotIconOn.png";
-                                    break;
-                            }
-                            break;
-                    }
+
+                    btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
+                    btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
+
+                    //switch (function.Spk_Prefix)
+                    //{
+                    //    //todo 澧炲姞璁惧锛屼富椤垫敹钘忓浘鏍�
+                    //    case FunctionCategory.Light:
+                    //        #region 鐏厜 Light
+                    //        btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightIcon.png";
+                    //        btnIcon.SelectedImagePath = "FunctionIcon/Light/LightOnIcon.png";
+                    //        UpdataFunctionStates(function);
+                    //        #endregion
+                    //        break;
+                    //    case FunctionCategory.AC:
+                    //        #region 绌鸿皟 AC
+                    //        btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcIcon.png";
+                    //        btnIcon.SelectedImagePath = "FunctionIcon/AC/AcOnIcon.png";
+                    //        #endregion
+                    //        break;
+                    //    case FunctionCategory.FloorHeat:
+                    //        #region 鍦扮儹
+                    //        btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingIcon.png";
+                    //        btnIcon.SelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingOnIcon.png";
+                    //        #endregion
+                    //        break;
+                    //    case FunctionCategory.Electric:
+                    //        switch (function.spk)
+                    //        {
+                    //            case SPK.ElectricSocket:
+                    //                btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketIcon.png";
+                    //                btnIcon.SelectedImagePath = "FunctionIcon/Socket/SocketOnIcon.png";
+                    //                break;
+                    //            case SPK.ElectricFan:
+                    //                btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanIcon.png";
+                    //                btnIcon.SelectedImagePath = "FunctionIcon/Electrical/FanOnIcon.png";
+                    //                break;
+                    //            case SPK.ElectricTuyaAirCleaner:
+                    //                btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/AirCleanerIcon.png";
+                    //                btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/AirCleanerIconOn.png";
+                    //                break;
+                    //            case SPK.ElectricTuyaFan:
+                    //                btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/FanIcon.png";
+                    //                btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/FanIconOn.png";
+                    //                break;
+                    //            case SPK.ElectricTuyaWaterValve:
+                    //                btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/WaterValveIcon.png";
+                    //                btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/WaterValveIconOn.png";
+                    //                break;
+                    //            case SPK.ElectricTuyaWeepRobot:
+                    //                btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/WeepRobotIcon.png";
+                    //                btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/WeepRobotIconOn.png";
+                    //                break;
+                    //        }
+                    //        break;
+                    //}
                     LoadEvent_SwitchFunction(function, btnSwitch);
                 }
                 //鍙栨秷鏀惰棌浜嬩欢
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
index f2c7f27..f18f109 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -26,7 +26,7 @@
         /// </summary>
         public static void RefreshFunctionView()
         {
-            if (bodyView != null)
+            if (bodyView != null && MainPage.CurPageIndex==0)
             {
                 bodyView.LoadDeviceFunctionControlZone();
             }
diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
index 63256f0..2290c5f 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -755,12 +755,7 @@
                         btnName.TextID = StringId.SecurityMonitoring;
                         btnFunctionViewBg.MouseUpEventHandler = (sender, e) =>
                         {
-                          
-#if __IOS__
-                            EZSDK.IOS.EZSDK.Go2EZvizMonitor();
-#else  //瀹夊崜鎽勫儚澶�
                             HDLCommon.Current.Go2EZvizMonitor(bodyView);
-#endif
                         };
                         break;
                     case ShowFunction.Sensor:
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
index 4727b80..c8b1509 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -61,6 +61,69 @@
             }
             LoadDiv();
 
+            //switch (function.spk)
+            //{
+            //    case SPK.CurtainSwitch:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainThinIcon.png";
+            //        break;
+            //    case SPK.CurtainTrietex:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/MotorCurtainIcon.png";
+            //        break;
+            //    case SPK.CurtainRoller:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/RollingShutterIcon.png";
+            //        break;
+            //    case SPK.SensorPir:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorPirIcon.png";
+            //        break;
+            //    case SPK.SensorWater:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorWaterImmersionIcon.png";
+            //        break;
+            //    case SPK.SensorSmoke:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorSmokeIcon.png";
+            //        break;
+            //    case SPK.SensorDoorWindow:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorDoorIcon.png";
+            //        break;
+            //    case SPK.MusicStandard:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicThinIcon.png";
+            //        break;
+            //    case SPK.ClothesHanger:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerGrayIcon.png";
+            //        break;
+            //    case SPK.ElectricSocket:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketThinIcon.png";
+            //        break;
+            //    case SPK.ElectricFan:
+            //    case SPK.ElectricTuyaFan:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanThinIcon.png";
+            //        break;
+            //    case SPK.ElectricTV:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVThinIcon.png";
+            //        break;
+            //    case SPK.ElectricTuyaAirCleaner:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/AirCleanerThiinIcon.png";
+            //        break;
+            //    case SPK.ElectricTuyaWeepRobot:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobotThinIcon.png";
+            //        break;
+            //    case SPK.ElectricTuyaWaterValve:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WaterValve/WaterValveIcon.png";
+            //        break;
+            //    case SPK.AcStandard:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon1.png";
+            //        break;
+            //    case SPK.AcIr:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon1.png";
+            //        break;
+            //    case SPK.FloorHeatStandard:
+            //        btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingThinIcon.png";
+            //        break;
+            //    default:
+            //        btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/{function.IconName}.png";
+            //        break;
+            //}
+            btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/{function.IconName}.png";
+
             if (function.Spk_Prefix == FunctionCategory.Curtain//绐楀笜娌℃湁寮�鍏虫寜閽�
                 || function.Spk_Prefix == FunctionCategory.Music//闊充箰娌℃湁寮�鍏虫寜閽�
                 || function.Spk_Prefix == FunctionCategory.Sensor//浼犳劅鍣ㄦ病鏈夊紑鍏虫寜閽�
@@ -69,39 +132,10 @@
                 switch (function.Spk_Prefix)
                 {
                     case FunctionCategory.Curtain:
-                        switch (function.spk)
-                        {
-                            case SPK.CurtainSwitch:
-                                btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainThinIcon.png";
-                                break;
-                            case SPK.CurtainTrietex:
-                                btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/MotorCurtainIcon.png";
-                                break;
-                            case SPK.CurtainRoller:
-                                btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/RollingShutterIcon.png";
-                                break;
-                        }
+                      
                         CurtainFragment();
                         break;
                     case FunctionCategory.Sensor:
-                        switch (function.spk)
-                        {
-                            case SPK.SensorPir:
-                                btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorPirIcon.png";
-                                break;
-                            case SPK.SensorWater:
-                                btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorWaterImmersionIcon.png";
-                                break;
-                            case SPK.SensorSmoke:
-                                btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorSmokeIcon.png";
-                                break;
-                            case SPK.SensorDoorWindow:
-                                btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorDoorIcon.png";
-                                break;
-                            default:
-
-                                break;
-                        }
                         var powerLowTipAttr = function.attributes.Find((obj) => obj.key == FunctionAttributeKey.BatteryState);
                         if (powerLowTipAttr != null)
                         {
@@ -122,7 +156,6 @@
 
                         break;
                     case FunctionCategory.Music:
-                        btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicThinIcon.png";
                         MusicFragment();
                         break;
 
@@ -132,7 +165,6 @@
             {
                 if (function.spk == SPK.ClothesHanger)//鏅捐。鏋�
                 {
-                    btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerGrayIcon.png";
                     ClothesHangerFragment();
                 }
                 else
@@ -181,51 +213,20 @@
                     switch (function.Spk_Prefix)
                     {
                         case FunctionCategory.AC:
-                            switch (function.spk)
-                            {
-                                case SPK.AcStandard:
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon1.png";
-                                    LoadLastStatesButton();
-                                    break;
-                            }
+                            LoadLastStatesButton();
+                            break;
+                        case FunctionCategory.IR:
+                            LoadLastStatesButton();
                             break;
                         case FunctionCategory.FloorHeat:
-                            switch (function.spk)
-                            {
-                                case SPK.FloorHeatStandard:
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingThinIcon.png";
-                                    LoadLastStatesButton();
-                                    break;
-                            }
+                            LoadLastStatesButton();
                             break;
                         case FunctionCategory.Light:
-                            btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightThinIcon.png";
+                            //btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightThinIcon.png";
                             btnSwitch.IsSelected = function.trait_on_off.curValue.ToString() == "on";
                             LoadLightControl();
                             break;
                         case FunctionCategory.Electric:
-                            switch (function.spk)
-                            {
-                                case SPK.ElectricSocket:
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketThinIcon.png";
-                                    break;
-                                case SPK.ElectricFan:
-                                case SPK.ElectricTuyaFan:
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanThinIcon.png";
-                                    break;
-                                case SPK.ElectricTV:
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVThinIcon.png";
-                                    break;
-                                case SPK.ElectricTuyaAirCleaner:
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/AirCleanerThiinIcon.png";
-                                    break;
-                                case SPK.ElectricTuyaWeepRobot:
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobotThinIcon.png";
-                                    break;
-                                case SPK.ElectricTuyaWaterValve:
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WaterValve/WaterValveIcon.png";
-                                    break;
-                            }
                             btnSwitch.IsSelected = function.trait_on_off.curValue.ToString() == "on";
                             break;
                     }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs
new file mode 100644
index 0000000..17c9dc1
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs
@@ -0,0 +1,78 @@
+锘縰sing HDL_ON.Stan;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.UI
+{
+    /// <summary>
+    /// 娣诲姞Evoyo鐨凪ini鏅鸿兘閬ユ帶鍣ㄦ楠�1鐣岄潰
+    /// </summary>
+    public class AddMiniRemoteControlDirection1Page : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
+        {
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(StringId.AddInfraredRemoteControl));
+            //杩欎釜鐣岄潰鐨勮儗鏅渶瑕佺櫧鑹�
+            bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //鍥剧墖
+            var btnPic = new PicViewControl(149, 95);
+            btnPic.Y = Application.GetRealHeight(99);
+            btnPic.Gravity = Gravity.CenterHorizontal;
+            btnPic.UnSelectedImagePath = "PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png";
+            bodyFrameLayout.AddChidren(btnPic);
+
+            //闀挎寜绾㈠閬ユ帶鍣ㄦ寜閽�10绉掞紝鎸囩ず鐏摑鑹插揩闂�
+            var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg1);
+            var intYY = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize,
+                CSS.CSS_Color.FirstLevelTitleColor, Application.GetRealHeight(20), Application.GetRealHeight(408));
+
+            //璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
+            strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg2);
+            this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.PromptFontSize_FirstLevel,
+                CSS.CSS_Color.PromptingColor1, Application.GetRealHeight(18), intYY + Application.GetRealHeight(4));
+
+            //涓嬩竴姝�
+            var btnNext = this.AddBottomClickButton(Language.StringByID(StringId.Next));
+            btnNext.ButtonClickEvent += (sender, e) =>
+            {
+                //妫�娴嬭摑鐗欓渶瑕佺殑涓滆タ
+                btnNext.CanClick = false;
+                HdlBluetoothLogic.Current.CheckCanScanBluetooth((result) =>
+                {
+                    btnNext.CanClick = true;
+                    if (result == true)
+                    {
+                        this.CloseForm();
+                        var form = new AddMiniRemoteControlDirection2Page();
+                        //鍒濆wifi鍜屽瘑鐮佷负绌�
+                        form.AddForm(string.Empty, string.Empty);
+                    }
+                });
+            };
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs
new file mode 100644
index 0000000..8f46dd9
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs
@@ -0,0 +1,308 @@
+锘縰sing HDL_ON.Stan;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.UI
+{
+    /// <summary>
+    /// 娣诲姞Evoyo鐨凪ini鏅鸿兘閬ユ帶鍣ㄦ楠�2鐣岄潰
+    /// </summary>
+    public class AddMiniRemoteControlDirection2Page : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// wifi鍚�
+        /// </summary>
+        private string wifiName = string.Empty;
+        /// <summary>
+        /// wifi瀵嗙爜
+        /// </summary>
+        private string wifiPassword = string.Empty;
+        /// <summary>
+        /// 钃濈墮璁惧
+        /// </summary>
+        private List<HdlBluetoothLogic.BluetoothInfo> listDevice = new List<HdlBluetoothLogic.BluetoothInfo>();
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_wifiName">wifi鍚�(鍒殑鐣岄潰浼犺繃鏉ョ殑)</param>
+        /// <param name="i_wifiPassword">(鍒殑鐣岄潰浼犺繃鏉ョ殑)</param>
+        public void ShowForm(string i_wifiName, string i_wifiPassword)
+        {
+            this.wifiName = i_wifiName;
+            this.wifiPassword = i_wifiPassword;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(StringId.AddInfraredRemoteControl));
+            //杩欎釜鐣岄潰鐨勮儗鏅渶瑕佺櫧鑹�
+            bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖body
+            this.ClearBodyFrame();
+
+            //杩涘害鏉�
+            var btnProgress = new ProgressRowBar(180, 6);
+            btnProgress.Y = Application.GetRealHeight(218);
+            btnProgress.Gravity = Gravity.CenterHorizontal;
+            bodyFrameLayout.AddChidren(btnProgress);
+            btnProgress.StartMode1(true);
+
+            //璁惧鎼滅储涓�...
+            var btnSearch = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(20), false);
+            btnSearch.Y = btnProgress.Bottom + Application.GetRealHeight(40);
+            btnSearch.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+            btnSearch.TextID = StringId.SearchingDevice;
+            btnSearch.TextAlignment = TextAlignment.Center;
+            bodyFrameLayout.AddChidren(btnSearch);
+
+            //璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
+            var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg2);
+            this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize,
+                CSS.CSS_Color.FirstLevelTitleColor, Application.GetRealHeight(20), btnSearch.Bottom + Application.GetRealHeight(4));
+
+            //寮�鍚繘搴︽潯鐗规晥
+            this.StartProgressSpecialEffects(btnProgress);
+        }
+
+        #endregion
+
+        #region 鈻� 鎼滅储钃濈墮___________________________
+
+        /// <summary>
+        /// 鎼滅储钃濈墮
+        /// </summary>
+        private void StartSearchBluetooth()
+        {
+            //寮�濮嬫悳绱㈣摑鐗�
+            HdlBluetoothLogic.Current.ScanBluetooth(2, (listBluetooth) =>
+            {
+                foreach (var device in listBluetooth)
+                {
+                    //鍙湁杩欎釜鏍囪瘑,鎵嶆槸绾㈠瀹�
+                    if (device.Name.StartsWith("MIR01R-LK.10") == true)
+                    {
+                        //鏄寚瀹氱殑绾㈠瀹濊澶�
+                        listDevice.Add(device);
+                    }
+                }
+                if (listDevice.Count == 0)
+                {
+                    //鎽ф瘉钃濈墮缂撳瓨
+                    HdlBluetoothLogic.Current.Dispone();
+                }
+                else if (listDevice.Count == 1)
+                {
+                    //濡傛灉鍙娴嬪埌涓�涓�,鍒欑洿鎺ヨ繛鎺�
+                    HdlBluetoothLogic.Current.ContectBluetooth(listDevice[0], (result) =>
+                    {
+                        if (result == true && this.Parent != null)
+                        {
+                            //杩炴帴鎴愬姛,鍒欒烦杞埌涓嬩竴涓晫闈�
+                            HdlThreadLogic.Current.RunMain(() =>
+                            {
+                                this.CloseForm();
+                                var form = new AddMiniRemoteControlDirection3Page();
+                                form.AddForm(this.wifiName, this.wifiPassword);
+                            });
+                        }
+                        else
+                        {
+                            HdlBluetoothLogic.Current.Dispone();
+                        }
+                    });
+                }
+                else
+                {
+                    var listName = new List<string>();
+                    foreach (var device in listDevice)
+                    {
+                        listName.Add(device.Name);
+                    }
+                    //鏄剧ず閫夋嫨钃濈墮鍒楄〃鐨勭晫闈�(褰撳尮閰嶅埌澶氫釜钃濈墮鐨勬椂鍊欎娇鐢�)
+                    this.ShowBluetoothListView(listName, (index) =>
+                    {
+                        //濡傛灉鍙娴嬪埌涓�涓�,鍒欑洿鎺ヨ繛鎺�
+                        HdlBluetoothLogic.Current.ContectBluetooth(listDevice[index], (result) =>
+                        {
+                            if (result == true)
+                            {
+                                //杩炴帴鎴愬姛,鍒欒烦杞埌涓嬩竴涓晫闈�
+                                HdlThreadLogic.Current.RunMain(() =>
+                                {
+                                    this.CloseForm();
+                                    var form = new AddMiniRemoteControlDirection3Page();
+                                    form.AddForm(this.wifiName, this.wifiPassword);
+                                });
+                            }
+                            else
+                            {
+                                HdlBluetoothLogic.Current.Dispone();
+                            }
+                        });
+                    });
+                }
+            });
+        }
+
+        /// <summary>
+        /// 寮�鍚繘搴︽潯鐗规晥
+        /// </summary>
+        private void StartProgressSpecialEffects(ProgressRowBar btnProgress)
+        {
+            //鎼滅储鏃堕棿(绉�)
+            int searchTime = 180;
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //杩涘害鏉$壒鏁�
+                for (int i = 1; i <= searchTime; i++)
+                {
+                    System.Threading.Thread.Sleep(1000);
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        //杩涘害鏉$壒鏁�
+                        btnProgress.SetValue(i, searchTime);
+                    });
+
+                    //鐣岄潰鍏抽棴
+                    if (this.Parent == null)
+                    {
+                        break;
+                    }
+                    //濡傛灉宸茬粡鎼滅储鍒拌摑鐗�,鍒欑洿鎺ュ埌100%
+                    if (listDevice.Count > 0)
+                    {
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            btnProgress.SetValue(searchTime, searchTime);
+                        });
+                        break;
+                    }
+                    if (i % 5 == 1)
+                    {
+                        //姣�5绉掓悳绱竴娆�
+                        this.StartSearchBluetooth();
+                    }
+                    //瓒呮椂
+                    if (i >= searchTime)
+                    {
+                        System.Threading.Thread.Sleep(3000);
+                        //鏈�鍚庣殑鏃堕棿杩樻槸鎼滀笉鍒扮殑璇�
+                        if (listDevice.Count == 0)
+                        {
+                            //鏄剧ず澶辫触鐣岄潰
+                            HdlThreadLogic.Current.RunMain(() =>
+                            {
+                                this.ShowFailView();
+                            });
+                        }
+                        break;
+                    }
+                }
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鏄剧ず閫夋嫨钃濈墮鍒楄〃鐨勭晫闈____________
+
+        /// <summary>
+        /// 鏄剧ず閫夋嫨钃濈墮鍒楄〃鐨勭晫闈�(褰撳尮閰嶅埌澶氫釜钃濈墮鐨勬椂鍊欎娇鐢�)
+        /// </summary>
+        /// <param name="listName">钃濈墮鍚嶅瓧鍒楄〃</param>
+        /// <param name="selectEvent">閫夋嫨浜嬩欢(鑰冭檻鍒癐os鍜屽畨鍗�,鎵�浠ヨ繖鏍峰畾鍙傛暟)</param>
+        private void ShowBluetoothListView(List<string> listName, Action<int> selectEvent)
+        {
+            if (this.Parent == null) { return; }
+
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                var contr = new BottomItemSelectControl(listName.Count, Language.StringByID(StringId.ChooseInfraredRemoteControl), false);
+                //鍒濆鍖�
+                contr.AddRowMenu(listName, new List<int>());
+                contr.FinishOnlyEvent += (div, value) =>
+                {
+                    if (div == 0)
+                    {
+                        //濡傛灉鐐瑰嚮浜嗗彇娑�,鍒欏叧闂繖涓晫闈�,涓嶇浜�
+                        this.CloseForm();
+                    }
+                    else
+                    {
+                        //璋冪敤鍥炶皟鍑芥暟
+                        selectEvent?.Invoke(value);
+                    }
+                };
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鏄剧ず澶辫触鐣岄潰_______________________
+
+        /// <summary>
+        /// 鏄剧ず澶辫触鐣岄潰
+        /// </summary>
+        private void ShowFailView()
+        {
+            //娓呯┖body
+            this.ClearBodyFrame();
+            //鍥剧墖
+            var btnPic = new PicViewControl(180, 180);
+            btnPic.Y = Application.GetRealHeight(48);
+            btnPic.Gravity = Gravity.CenterHorizontal;
+            btnPic.UnSelectedImagePath = "Public/TipIcon_Failed.png";
+            bodyFrameLayout.AddChidren(btnPic);
+            //娌℃湁鍙戠幇绾㈠閬ユ帶鍣�
+            var btnMsgNot = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(22), false);
+            btnMsgNot.Y = btnPic.Bottom + Application.GetRealHeight(16);
+            btnMsgNot.TextAlignment = TextAlignment.Center;
+            btnMsgNot.TextColor = CSS.CSS_Color.AuxiliaryColor2;
+            btnMsgNot.TextSize = CSS.CSS_FontSize.SubheadingFontSize;
+            btnMsgNot.TextID = StringId.NoInfraredRemoteControlFound;
+            bodyFrameLayout.AddChidren(btnMsgNot);
+            //1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數
+            //2銆佽妫�鏌ヨ摑鐗欏姛鑳芥槸鍚︽甯稿紑鍚�
+            //3銆佽妫�鏌ユ寚绀虹伅鏄惁钃濊壊蹇棯鐘舵��
+            var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg3);
+            this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize,
+                CSS.CSS_Color.TextualColor, Application.GetRealHeight(20), btnMsgNot.Bottom + Application.GetRealHeight(8),
+                 TextAlignment.Center, true);
+
+            //閲嶆柊鎼滅储
+            var btnReSearch = this.AddBottomClickButton(Language.StringByID(StringId.ReSearch));
+            btnReSearch.ButtonClickEvent += (sender, e) =>
+            {
+                //妫�娴嬭摑鐗欓渶瑕佺殑涓滆タ
+                btnReSearch.CanClick = false;
+                HdlBluetoothLogic.Current.CheckCanScanBluetooth((result) =>
+                {
+                    btnReSearch.CanClick = true;
+                    if (result == true)
+                    {
+                        //鍒濆鍖栦腑閮ㄤ俊鎭�
+                        this.InitMiddleFrame();
+                    }
+                });
+            };
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection3Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection3Page.cs
new file mode 100644
index 0000000..3d08125
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection3Page.cs
@@ -0,0 +1,215 @@
+锘縰sing HDL_ON.Stan;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.UI
+{
+    /// <summary>
+    /// 娣诲姞Evoyo鐨凪ini鏅鸿兘閬ユ帶鍣ㄦ楠�3鐣岄潰
+    /// </summary>
+    public class AddMiniRemoteControlDirection3Page : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 褰撳墠wifi鐨勫悕瀛�
+        /// </summary>
+        private string NowWifiName = string.Empty;
+        /// <summary>
+        /// wifi鐨勭嚎绋嬫槸鍚﹀惎鍔�
+        /// </summary>
+        private bool WifiThreadAction = false;
+        /// <summary>
+        /// wifi鍚�(鍒殑鐣岄潰浼犺繃鏉ョ殑)
+        /// </summary>
+        private string wifiName = string.Empty;
+        /// <summary>
+        /// wifi瀵嗙爜(鍒殑鐣岄潰浼犺繃鏉ョ殑)
+        /// </summary>
+        private string wifiPassword = string.Empty;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_wifiName">wifi鍚�(鍒殑鐣岄潰浼犺繃鏉ョ殑)</param>
+        /// <param name="i_wifiPassword">(鍒殑鐣岄潰浼犺繃鏉ョ殑)</param>
+        public void ShowForm(string i_wifiName, string i_wifiPassword)
+        {
+            this.wifiName = i_wifiName;
+            this.wifiPassword = i_wifiPassword;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(StringId.AddInfraredRemoteControl));
+            //杩欎釜鐣岄潰鐨勮儗鏅渶瑕佺櫧鑹�
+            bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+
+            //閲嶅啓搴曞眰鐨勮繑鍥炴寜閿�
+            this.BackButtonClickEvent += () =>
+            {
+                //鍏虫帀钃濈墮
+                HdlBluetoothLogic.Current.Dispone();
+                this.CloseForm();
+            };
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //杩炴帴WiFi
+            var btnWifi = new NormalViewControl(200, 28, true);
+            btnWifi.X = HdlControlResourse.XXLeft;
+            btnWifi.Y = Application.GetRealHeight(16);
+            btnWifi.IsBold = true;
+            btnWifi.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+            btnWifi.TextSize = CSS.CSS_FontSize.EmphasisFontSize_Secondary;
+            btnWifi.TextID = StringId.ConnectWiFi;
+            bodyFrameLayout.AddChidren(btnWifi);
+            //鐩墠鍙敮鎸�2.4G WiFi缃戠粶
+            //鏆備笉鏀寔甯︽湁涓枃瀛楃鐨刉iFi鍚嶇О
+            var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg4);
+            int yy = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize, CSS.CSS_Color.TextualColor,
+                Application.GetRealHeight(20), btnWifi.Bottom + Application.GetRealHeight(16), TextAlignment.CenterLeft);
+
+            //wifi琛�
+            var rowWifi = new RowLayoutControl();
+            rowWifi.Y = yy + Application.GetRealHeight(32);
+            bodyFrameLayout.AddChidren(rowWifi);
+            //wifi鍚嶅瓧
+            var txtWifi = rowWifi.frameTable.AddLeftInput(wifiName, 200);
+            txtWifi.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+            //搴曠嚎
+            rowWifi.frameTable.AddBottomLine();
+            //鍚戝彸鍥炬爣
+            var btnRight = rowWifi.frameTable.AddMostRightEmptyIcon(24, 24);
+            btnRight.UnSelectedImagePath = "Public/Right.png";
+            btnRight.ButtonClickEvent += (sender, e) =>
+            {
+                //鎵撳紑鎵嬫満wifi璁剧疆鐣岄潰
+                HdlWifiLogic.Current.OpenAppWifiSettion();
+                //鍒锋柊wifi鍚嶅瓧
+                this.RefreshWifiName(txtWifi);
+            };
+            if (this.wifiName != string.Empty)
+            {
+                //杩欎釜鏃跺�欐槸閲嶈瘯妯″紡,涓嶅厑璁哥偣鍑�
+                btnRight.CanClick = false;
+            }
+
+            //瀵嗙爜琛�
+            var rowPsw = new RowLayoutControl();
+            rowPsw.Y = rowWifi.Bottom;
+            bodyFrameLayout.AddChidren(rowPsw);
+            //瀵嗙爜
+            var txtPsw = rowPsw.frameTable.AddLeftInput(wifiPassword, 200);
+            txtPsw.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+            txtPsw.PlaceholderText = Language.StringByID(StringId.Password);
+            txtPsw.SecureTextEntry = true;
+            //搴曠嚎
+            rowPsw.frameTable.AddBottomLine();
+            //鐪肩潧鍥炬爣
+            var btnView = rowPsw.frameTable.AddMostRightEmptyIcon(24, 24);
+            btnView.UnSelectedImagePath = "LoginIcon/HidePasswordIcon.png";
+            btnView.SelectedImagePath = "LoginIcon/ShowPasswordIcon.png";
+            btnView.ButtonClickEvent += (sender, e) =>
+            {
+                btnView.IsSelected = !btnView.IsSelected;
+                txtPsw.SecureTextEntry = !btnView.IsSelected;
+            };
+            if (this.wifiName != string.Empty)
+            {
+                //杩欎釜鏃跺�欐槸閲嶈瘯妯″紡,涓嶉渶瑕佺偣鍑�
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    System.Threading.Thread.Sleep(1000);
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        //杩涘叆涓嬩竴涓晫闈�
+                        this.CloseForm();
+                        var form = new AddMiniRemoteControlDirection4Page();
+                        form.AddForm(wifiName, wifiPassword);
+                    });
+                });
+                return;
+            }
+
+            //涓嬩竴姝�
+            var btnNext = this.AddBottomClickButton(Language.StringByID(StringId.Next));
+            btnNext.ButtonClickEvent += (sender, e) =>
+            {
+                if (txtWifi.Text.Trim() == string.Empty || txtPsw.Text.Trim() == string.Empty)
+                {
+                    return;
+                }
+
+                //杩涘叆涓嬩竴涓晫闈�
+                this.CloseForm();
+                var form = new AddMiniRemoteControlDirection4Page();
+                form.AddForm(txtWifi.Text.Trim(), txtPsw.Text);
+            };
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鎵撳紑杩涘害鏉�,鍗″畠涓�涓�
+                this.ShowProgressBar();
+                //鑾峰彇褰撳墠wifi鍚嶅瓧(閲岄潰鍙兘浼氬崱)
+                this.NowWifiName = HdlWifiLogic.Current.SSID;
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    txtWifi.Text = NowWifiName;
+                });
+
+                this.CloseProgressBar();
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鍒锋柊wifi鍚嶅瓧
+        /// </summary>
+        private void RefreshWifiName(TextInputControl textInput)
+        {
+            if (this.WifiThreadAction == true) { return; }
+            this.WifiThreadAction = true;
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //杩欎釜绾跨▼涓嶄細琚腑鏂�
+                while (this.Parent != null)
+                {
+                    System.Threading.Thread.Sleep(1500);
+                    string wifiName = string.Empty;
+                    try
+                    {
+                        //鑾峰彇褰撳墠wifi鍚嶅瓧(閲岄潰鍙兘浼氬崱)
+                        wifiName = HdlWifiLogic.Current.SSID;
+                    }
+                    catch { continue; }
+                    if (wifiName != this.NowWifiName)
+                    {
+                        this.NowWifiName = wifiName;
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            textInput.Text = this.NowWifiName;
+                        });
+                    }
+                }
+            });
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
new file mode 100644
index 0000000..3d66b86
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
@@ -0,0 +1,533 @@
+锘縰sing HDL_ON.Stan;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.UI
+{
+    /// <summary>
+    /// 娣诲姞Evoyo鐨凪ini鏅鸿兘閬ユ帶鍣ㄦ楠�4鐣岄潰
+    /// </summary>
+    public class AddMiniRemoteControlDirection4Page : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// wifi鍚嶅瓧
+        /// </summary>
+        private string wifiName = string.Empty;
+        /// <summary>
+        /// wifi瀵嗙爜
+        /// </summary>
+        private string wifiPsw = string.Empty;
+        /// <summary>
+        /// 瓒呮椂绾跨▼鏄惁杩愯
+        /// </summary>
+        private bool timeoutThreadActivity = false;
+        /// <summary>
+        /// 涓婁紶鍒颁簯鐨勫浘鏍�
+        /// </summary>
+        private IconViewControl btnClound = null;
+        /// <summary>
+        /// 涓婁紶鍒颁簯
+        /// </summary>
+        private NormalViewControl btnCloundView = null;
+        /// <summary>
+        /// 杩炴帴鎴愬姛鐨勫浘鏍�
+        /// </summary>
+        private IconViewControl btnConnect = null;
+        /// <summary>
+        /// 杩炴帴鎴愬姛
+        /// </summary>
+        private NormalViewControl btnConnetView = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_wifiName">wifi鍚嶅瓧</param>
+        /// <param name="i_wifiPsw">wifi瀵嗙爜</param>
+        public void ShowForm(string i_wifiName, string i_wifiPsw)
+        {
+            this.wifiName = i_wifiName;
+            this.wifiPsw = i_wifiPsw;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(StringId.AddInfraredRemoteControl));
+            //杩欎釜鐣岄潰鐨勮儗鏅渶瑕佺櫧鑹�
+            bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
+
+            //娣诲姞鎺ユ敹钃濈墮鍙嶉鐨勪簨浠�
+            HdlBluetoothLogic.Current.AddReceiveEvent(this.BluetoothReceiveEvent);
+
+            //娣诲姞浜戠鍙嶉浜嬩欢
+            HdlCloudReceiveLogic.Current.AddCloudReceiveEvent("AddMiniRemoteControlDirection4Page", this.CloudReceiveEvent);
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖body
+            this.ClearBodyFrame();
+            //鍥剧墖
+            var btnPic = new PicViewControl(282, 121);
+            btnPic.Y = Application.GetRealHeight(122);
+            btnPic.Gravity = Gravity.CenterHorizontal;
+            btnPic.UnSelectedImagePath = "PersonalCenter/AddDevice/WifiAndPhoneConnect.png";
+            bodyFrameLayout.AddChidren(btnPic);
+            //姝e湪杩炴帴涓�...
+            var btnSearch = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(20), false);
+            btnSearch.Y = btnPic.Bottom + Application.GetRealHeight(40);
+            btnSearch.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+            btnSearch.TextID = StringId.NowConnectting;
+            btnSearch.TextAlignment = TextAlignment.Center;
+            bodyFrameLayout.AddChidren(btnSearch);
+            //璇疯绾㈠閬ユ帶灏介噺鎺ヨ繎WIFI璺敱鍣�
+            var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg5);
+            this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize,
+                CSS.CSS_Color.PromptingColor1, Application.GetRealHeight(20), btnSearch.Bottom + Application.GetRealHeight(4));
+
+            //缃戠粶杩炴帴涓�
+            var btnNetIcon = new IconViewControl(20);
+            btnNetIcon.X = Application.GetRealWidth(60);
+            btnNetIcon.Y = btnPic.Bottom + Application.GetRealHeight(265);
+            btnNetIcon.UnSelectedImagePath = "PersonalCenter/AddDevice/NetConnectSelect.png";
+            bodyFrameLayout.AddChidren(btnNetIcon);
+            var btnNetView = new NormalViewControl(140, 18, true);//宸﹀彸闂磋窛40鍐嶅姞鏂囨湰60
+            btnNetView.Y = btnNetIcon.Bottom + Application.GetRealHeight(16);
+            btnNetView.TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel;
+            btnNetView.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+            btnNetView.TextAlignment = TextAlignment.Center;
+            btnNetView.TextID = StringId.InTheNetworkLink;
+            bodyFrameLayout.AddChidren(btnNetView);
+
+            //涓�鏉℃í绾�
+            var btnLine1 = new NormalViewControl(Application.GetRealWidth(92), 2, false);
+            btnLine1.X = btnNetIcon.Right + Application.GetRealWidth(3);
+            btnLine1.Y = btnNetIcon.Y + (btnNetIcon.Height + 2) / 2;
+            btnLine1.BackgroundColor = CSS.CSS_Color.PromptingColor1;
+            bodyFrameLayout.AddChidren(btnLine1);
+
+            //涓婁紶鍒颁簯
+            this.btnClound = new IconViewControl(20);
+            btnClound.Gravity = Gravity.CenterHorizontal;
+            btnClound.Y = btnNetIcon.Y;
+            btnClound.UnSelectedImagePath = "PersonalCenter/AddDevice/UploadToClound.png";
+            btnClound.SelectedImagePath = "PersonalCenter/AddDevice/UploadToCloundSelect.png";
+            bodyFrameLayout.AddChidren(btnClound);
+            this.btnCloundView = new NormalViewControl(btnNetView.Width, btnNetView.Height, false);
+            btnCloundView.Y = btnNetView.Y;
+            btnCloundView.Gravity = Gravity.CenterHorizontal;
+            btnCloundView.TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel;
+            btnCloundView.TextColor = CSS.CSS_Color.PromptingColor1;
+            btnCloundView.TextAlignment = TextAlignment.Center;
+            btnCloundView.TextID = StringId.UploadToCloud;
+            bodyFrameLayout.AddChidren(btnCloundView);
+
+            //涓�鏉℃í绾�
+            var btnLine2 = new NormalViewControl(btnLine1.Width, btnLine1.Height, false);
+            btnLine2.X = btnClound.Right + Application.GetRealWidth(3);
+            btnLine2.Y = btnLine1.Y;
+            btnLine2.BackgroundColor = CSS.CSS_Color.PromptingColor1;
+            bodyFrameLayout.AddChidren(btnLine2);
+
+            //杩炴帴鎴愬姛
+            this.btnConnect = new IconViewControl(20);
+            btnConnect.X = bodyFrameLayout.Width - btnNetIcon.X - btnConnect.IconSize;
+            btnConnect.Y = btnNetIcon.Y;
+            btnConnect.UnSelectedImagePath = "PersonalCenter/AddDevice/ConnectSuccess.png";
+            btnConnect.SelectedImagePath = "PersonalCenter/AddDevice/ConnectSuccessSelect.png";
+            bodyFrameLayout.AddChidren(btnConnect);
+            this.btnConnetView = new NormalViewControl(btnNetView.Width, btnNetView.Height, false);
+            btnConnetView.X = bodyFrameLayout.Width - btnNetView.Width - btnNetView.X;
+            btnConnetView.Y = btnNetView.Y;
+            btnConnetView.TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel;
+            btnConnetView.TextColor = CSS.CSS_Color.PromptingColor1;
+            btnConnetView.TextAlignment = TextAlignment.Center;
+            btnConnetView.TextID = StringId.ConnectSuccess;
+            bodyFrameLayout.AddChidren(btnConnetView);
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                System.Threading.Thread.Sleep(2000);
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍙戦�佽处鍙峰拰瀵嗙爜缁欒摑鐗�
+                    this.SendAccountAndPswToBluetooth();
+                });
+                //鍚姩瓒呮椂绾跨▼
+                this.StartTimeoutThread();
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鏄剧ず鎴愬姛鐣岄潰_______________________
+
+        /// <summary>
+        /// 鏄剧ず鎴愬姛鐣岄潰
+        /// </summary>
+        private void ShowSuccessView()
+        {
+            //娓呯┖body
+            this.ClearBodyFrame();
+
+            //鍥剧墖
+            var btnPic = new PicViewControl(180, 180);
+            btnPic.Y = Application.GetRealHeight(48);
+            btnPic.Gravity = Gravity.CenterHorizontal;
+            btnPic.UnSelectedImagePath = "Public/TipIcon_Successfully.png";
+            bodyFrameLayout.AddChidren(btnPic);
+
+            //娣诲姞鎴愬姛
+            var btnFail = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(22), false);
+            btnFail.Y = btnPic.Bottom + Application.GetRealHeight(16);
+            btnFail.TextSize = CSS.CSS_FontSize.SubheadingFontSize;
+            btnFail.TextColor = CSS.CSS_Color.MainColor;
+            btnFail.TextAlignment = TextAlignment.Center;
+            btnFail.TextID = StringId.AddSuccess;
+            bodyFrameLayout.AddChidren(btnFail);
+
+            //鍙互寮�濮嬩娇鐢ㄧ孩澶栭仴鎺у姛鑳斤紒
+            var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg7);
+            int yy = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize, CSS.CSS_Color.TextualColor,
+                Application.GetRealHeight(20), btnFail.Bottom + Application.GetRealHeight(8));
+
+            //寮�濮嬩娇鐢�
+            var btnUse = new BottomClickButton(220);
+            btnUse.Y = yy + Application.GetRealHeight(60);
+            btnUse.TextID = StringId.StartUse;
+            bodyFrameLayout.AddChidren(btnUse);
+            btnUse.ButtonClickEvent += (sender, e) =>
+            {
+                //鍏虫帀鐣岄潰
+                this.CloseForm();
+                HdlFormLogic.Current.CloseFormByFormName("AddThirdPartyDeviceMenuListPage");
+                HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.GetPirDeviceList(this, () =>
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        var page = new UI2.PersonalCenter.PirDevice.PirMain();
+                        MainPage.BasePageView.AddChidren(page);
+                        page.Show();
+                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                    });
+                });
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鏄剧ず澶辫触鐣岄潰_______________________
+
+        /// <summary>
+        /// 鏄剧ず澶辫触鐣岄潰
+        /// </summary>
+        private void ShowFailView()
+        {
+            //娓呯┖body
+            this.ClearBodyFrame();
+
+            //鍥剧墖
+            var btnPic = new PicViewControl(180, 180);
+            btnPic.Y = Application.GetRealHeight(48);
+            btnPic.Gravity = Gravity.CenterHorizontal;
+            btnPic.UnSelectedImagePath = "Public/TipIcon_Failed.png";
+            bodyFrameLayout.AddChidren(btnPic);
+
+            //娣诲姞澶辫触
+            var btnFail = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(22), false);
+            btnFail.Y = btnPic.Bottom + Application.GetRealHeight(16);
+            btnFail.TextSize = CSS.CSS_FontSize.SubheadingFontSize;
+            btnFail.TextColor = CSS.CSS_Color.AuxiliaryColor2;
+            btnFail.TextAlignment = TextAlignment.Center;
+            btnFail.TextID = StringId.AddFail;
+            bodyFrameLayout.AddChidren(btnFail);
+            //1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數
+            //2銆佽寮�鍚摑鐗欏姛鑳�
+            //3銆佸苟闀挎寜鎸夐挳10s锛屾寚绀虹伅甯镐寒
+            var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg6);
+            this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize, CSS.CSS_Color.TextualColor,
+                Application.GetRealHeight(20), btnFail.Bottom + Application.GetRealHeight(8),
+                 TextAlignment.Center, true);
+
+            //閲嶈瘯
+            var btnReDo = this.AddBottomClickButton(Language.StringByID(StringId.Retry));
+            btnReDo.ButtonClickEvent += (sender, e) =>
+            {
+                //閲嶆柊鍒濆鍖栦腑閮ㄤ俊鎭�
+                this.CloseForm();
+                var form = new AddMiniRemoteControlDirection2Page();
+                form.AddForm(this.wifiName, this.wifiPsw);
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佽处鍙峰拰瀵嗙爜缁欒摑鐗檁______________
+
+        /// <summary>
+        /// 鍙戦�佽处鍙峰拰瀵嗙爜缁欒摑鐗�
+        /// </summary>
+        private void SendAccountAndPswToBluetooth()
+        {
+            //鑾峰彇鍙戦�佸埌钃濈墮鐨勬暟鎹�
+            var sendData = this.GetSendToBluetoothData();
+            //涓嶇瓑寰�
+            HdlBluetoothLogic.Current.SendData(sendData);
+        }
+
+        #endregion
+
+        #region 鈻� 绾㈠瀹濈浉鍏虫柟娉昣____________________
+
+        /// <summary>
+        /// 妫�娴嬫槸鍚︽槸鏂扮殑绾㈠瀹�
+        /// </summary>
+        /// <param name="pushEnum">鎺ㄩ�佹灇涓�</param>
+        /// <param name="i_data">鎺ㄩ�佺殑鏁版嵁</param>
+        /// <returns></returns>
+        private bool CheckIsNewMiniRemoteControl(CloudPushEnum pushEnum, string i_data)
+        {
+            if (pushEnum != CloudPushEnum.A鏂拌澶囦笂鎶�) { return false; }
+
+            try
+            {
+                var strSpk = string.Empty;
+                //杞负json
+                var json = Newtonsoft.Json.Linq.JObject.Parse(i_data);
+                var linqArry = json["objects"] as Newtonsoft.Json.Linq.JArray;
+                if (linqArry != null)
+                {
+                    //鏁扮粍绫诲瀷
+                    if (linqArry.Count == 0) { return false; }
+                    strSpk = linqArry[0]["spk"].ToString();
+                }
+                else
+                {
+                    //闈炴暟缁勭被鍨�
+                    strSpk = json["objects"]["spk"].ToString();
+                }
+                if (strSpk != Entity.SPK.IrModule)
+                {
+                    //濡傛灉涓嶆槸绾㈠瀹濈殑璇�
+                    return false;
+                }
+                return true;
+            }
+            catch { return false; }
+        }
+
+        /// <summary>
+        /// 鍒锋柊绾㈠瀹濅俊鎭�
+        /// </summary>
+        /// <param name="successEvent">鎴愬姛鐨勫洖璋冧簨浠�</param>
+        private void RefreshMiniRemoteControlInfo(Action successEvent)
+        {
+            var pra = new Dictionary<string, object>();
+            pra.Add("homeId", Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID);
+            pra.Add("spk", Entity.SPK.IrModule);
+
+            var requestJson = DAL.Server.HttpUtil.GetSignRequestJson(pra);
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                int count = 0;
+                while (this.Parent != null)
+                {
+                    try
+                    {
+                        //瓒呰繃5娆¢兘涓嶆垚鍔�,鐪熶笉澶勭悊浜�
+                        count++;
+                        if (count > 5) { return; }
+
+                        //鑾峰彇鍏ㄩ儴绾㈠瀹濆垪琛�
+                        var result = DAL.Server.HttpUtil.RequestHttpsPostFroHome(DAL.Server.NewAPI.Api_Post_GetDevcieList, requestJson);
+                        if (result == null || result.Code != DAL.Server.StateCode.SUCCESS)
+                        {
+                            System.Threading.Thread.Sleep(3000);
+                            continue;
+                        }
+                        var listDevice = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.DevcieApiPack>(result.Data.ToString());
+                        foreach (var newFunction in listDevice.list)
+                        {
+                            //娣诲姞鍒扮紦瀛樺綋涓�
+                            newFunction.SaveFunctionFile();
+                            Entity.FunctionList.List.IniFunctionList(newFunction.savePath, true);
+                        }
+                        //璋冪敤鍥炶皟鍑芥暟
+                        successEvent?.Invoke();
+                        return;
+                    }
+                    catch
+                    {
+                        System.Threading.Thread.Sleep(3000);
+                    }
+                }
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 浜戠鍙嶉___________________________
+
+        /// <summary>
+        /// 浜戠鍙嶉
+        /// </summary>
+        /// <param name="pushEnum">鏋氫妇</param>
+        /// <param name="i_data">鎺ㄩ�佺殑鍐呭</param>
+        private void CloudReceiveEvent(CloudPushEnum pushEnum, string i_data)
+        {
+            //妫�娴嬫槸鍚︽槸鏂扮殑绾㈠瀹�
+            if (this.CheckIsNewMiniRemoteControl(pushEnum, i_data) == false)
+            {
+                return;
+            }
+            //鍒锋柊绾㈠瀹濅俊鎭�
+            this.RefreshMiniRemoteControlInfo(() =>
+            {
+                //绉婚櫎杩欎釜浜嬩欢
+                HdlCloudReceiveLogic.Current.RemoveCloudReceiveEvent("AddMiniRemoteControlDirection4Page");
+                //鍋滄绾跨▼
+                this.timeoutThreadActivity = false;
+
+                //娣诲姞璁惧鎴愬姛涔嬪悗,澶勭悊涓�浜涗笢瑗�
+                this.DoSomethingAfterAddDeviceSuccess();
+            });
+        }
+
+        /// <summary>
+        /// 娣诲姞璁惧鎴愬姛涔嬪悗,澶勭悊涓�浜涗笢瑗�
+        /// </summary>
+        private void DoSomethingAfterAddDeviceSuccess()
+        {
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鏁寸偣鐗规晥鑰屽凡
+                for (int i = 1; i <= 6; i++)
+                {
+                    System.Threading.Thread.Sleep(1000);
+                    if (i == 1)
+                    {
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            //鏁寸偣鐗规晥鑰屽凡
+                            this.btnClound.IsSelected = true;
+                            this.btnCloundView.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+                        });
+                    }
+                    else if (i == 4)
+                    {
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            //鏁寸偣鐗规晥鑰屽凡
+                            this.btnConnect.IsSelected = true;
+                            this.btnConnetView.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+                        });
+                    }
+                    else if (i == 6)
+                    {
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            //鏄剧ず鎴愬姛鐣岄潰
+                            this.ShowSuccessView();
+                        });
+                    }
+                }
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 钃濈墮鍙嶉___________________________
+
+        /// <summary>
+        /// 钃濈墮鍙嶉
+        /// </summary>
+        /// <param name="i_receviceData">钃濈墮鍙嶉鐨勬暟鎹�</param>
+        private void BluetoothReceiveEvent(string i_receviceData)
+        {
+#if DEBUG
+            System.Console.WriteLine("钃濈墮杩斿洖锛�" + i_receviceData);
+#endif
+        }
+
+        #endregion
+
+        #region 鈻� 瓒呮椂绾跨▼___________________________
+
+        /// <summary>
+        /// 鍚姩瓒呮椂绾跨▼
+        /// </summary>
+        private void StartTimeoutThread()
+        {
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //360绉掕秴鏃�
+                int timeout = 360;
+                while (this.timeoutThreadActivity == false && this.Parent != null)
+                {
+                    System.Threading.Thread.Sleep(1000);
+                    timeout--;
+                    if (timeout == 0)
+                    {
+                        break;
+                    }
+                }
+                if (timeout <= 0)
+                {
+                    //鏄剧ず澶辫触鐣岄潰
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        this.ShowFailView();
+                    });
+                }
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰鍏抽棴___________________________
+
+        /// <summary>
+        /// 鐣岄潰鍏抽棴
+        /// </summary>
+        public override void CloseFormBefore()
+        {
+            //鎽ф瘉钃濈墮
+            HdlBluetoothLogic.Current.Dispone();
+            HdlCloudReceiveLogic.Current.RemoveCloudReceiveEvent("AddMiniRemoteControlDirection4Page");
+
+            base.CloseFormBefore();
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸埌钃濈墮鐨勬暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        private string GetSendToBluetoothData()
+        {
+            var pra = new { id = "id010203", ssid = this.wifiName, password = this.wifiPsw };
+            var praData = Newtonsoft.Json.JsonConvert.SerializeObject(pra);
+
+            var sendData = "Topic:/user/id/custom/wifi/set\r\n";
+            sendData += "Length:" + praData.Length + "\r\n\r\n";
+            sendData += praData;
+            return sendData;
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddThirdPartyDeviceMenuListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddThirdPartyDeviceMenuListPage.cs
new file mode 100644
index 0000000..58b0c30
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddThirdPartyDeviceMenuListPage.cs
@@ -0,0 +1,92 @@
+锘縰sing HDL_ON.Stan;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.UI
+{
+    /// <summary>
+    /// 娣诲姞绗笁鏂硅澶囩殑鑿滃崟鍒楄〃鐣岄潰
+    /// </summary>
+    public class AddThirdPartyDeviceMenuListPage : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_div">
+        /// <para>Evoyo:Evoyo鐨勮澶�</para>
+        /// <para>Yingshi:钀ょ煶璁惧</para>
+        /// <para>Tuya:娑傞甫璁惧</para></param>
+        public void ShowForm(string i_div)
+        {
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(StringId.AddDevice));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame(i_div);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame(string i_div)
+        {
+            //鍒楄〃瀹瑰櫒
+            var listView = new VerticalListControl();
+            listView.BackgroundColor = CSS.CSS_Color.MainBackgroundColor;
+            listView.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(listView);
+
+            //Evoyo鐨勮澶�
+            if (i_div == "Evoyo")
+            {
+                //鍒濆鍖朎voyo璁惧鑿滃崟
+                this.InitEvoyoDeviceListMenu(listView);
+            }
+            //钀ょ煶璁惧
+            else if (i_div == "Yingshi")
+            {
+            }
+            //娑傞甫璁惧
+            else if (i_div == "Tuya")
+            {
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朎voyo璁惧鑿滃崟________________
+
+        /// <summary>
+        /// 鍒濆鍖朎voyo璁惧鑿滃崟
+        /// </summary>
+        /// <param name="listView"></param>
+        private void InitEvoyoDeviceListMenu(VerticalListControl listView)
+        {
+            //mini鏅鸿兘閬ユ帶鍣�
+            var rowMini = new RowLayoutControl();
+            listView.AddChidren(rowMini);
+            rowMini.frameTable.AddLeftIcon(32, "PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png");
+            var btnMiniView = rowMini.frameTable.AddLeftCaption(Language.StringByID(StringId.MiniIntelligentRemoteControl), 250);
+            btnMiniView.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+            rowMini.frameTable.AddRightArrow();
+            rowMini.frameTable.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new AddMiniRemoteControlDirection1Page();
+                form.AddForm();
+            };
+
+            //璋冩暣妗屽竷鐪熷疄楂樺害
+            listView.AdjustRealHeight(0);
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs
new file mode 100644
index 0000000..a876af9
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs
@@ -0,0 +1,144 @@
+锘縰sing System;
+using System.Collections.Generic;
+using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
+using Shared;
+namespace HDL_ON.UI
+{
+    public class AddDevciePage : FrameLayout
+    {
+        FrameLayout bodyView;
+        IntegratedBrand brand;
+        VerticalRefreshLayout contentView;
+
+        public AddDevciePage(IntegratedBrand integratedBrand)
+        {
+            bodyView = this;
+            brand = integratedBrand;
+        }
+
+        public void LoadPage()
+        {
+            new TopViewDiv(bodyView, Language.StringByID(StringId.AddDevice)).LoadTopView();
+            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
+
+            contentView = new VerticalRefreshLayout()
+            {
+                Y = Application.GetRealHeight(64),
+                Height = Application.GetRealHeight(667 - 64),
+                VerticalScrollBarEnabled = false,
+            };
+            bodyView.AddChidren(contentView);
+
+
+
+            Load3tyBrandDeviceList();
+
+        }
+
+        void Load3tyBrandDeviceList()
+        {
+            var waitPage = new Loading();
+            waitPage.Start();
+            new System.Threading.Thread(() => {
+                try
+                {
+                    var pm = new DAL.Server.HttpServerRequest();
+                    //var result = pm.Get3tyBindBrandList
+                    var pack = pm.Get3TyBrandDeviceList(brand.productPlatform, brand.productBrand);
+                    if (pack.Code == DAL.Server.StateCode.SUCCESS)
+                    {
+                        var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<IntegratedBrandDevice>>(pack.Data.ToString());
+                        Application.RunOnMainThread(() =>
+                        {
+                            LoadRow(revData);
+                        });
+                    }
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log("1--::" + ex.Message);
+                }
+                finally
+                {
+                    Application.RunOnMainThread(() => { waitPage.Hide(); });
+                }
+            })
+            { IsBackground = true }.Start();
+        }
+
+        void LoadRow(List<IntegratedBrandDevice> deviceList)
+        {
+            contentView.RemoveAll();
+            bool isFrist = true;
+            foreach (var device in deviceList)
+            {
+                FrameLayout row = new FrameLayout()
+                {
+                    Height = Application.GetRealHeight(50),
+                    BackgroundColor = CSS_Color.MainBackgroundColor,
+                };
+                contentView.AddChidren(row);
+
+                if (isFrist)
+                {
+                    isFrist = false;
+                }
+                else
+                {
+                    Button btnLine = new Button()
+                    {
+                        X = Application.GetRealWidth(56),
+                        Width = Application.GetRealWidth(303),
+                        Height = 1,
+                        BackgroundColor = CSS_Color.DividingLineColor,
+                    };
+                    row.AddChidren(btnLine);
+                }
+
+                var btnIcon = new Button()
+                {
+                    X = Application.GetRealWidth(12),
+                    Gravity = Gravity.CenterVertical,
+                    Width = Application.GetRealWidth(32),
+                    Height = Application.GetRealWidth(32),
+                    Radius = (uint)Application.GetRealWidth(4),
+                    UnSelectedImagePath = $"FunctionIcon/Icon/{device.spk.Replace(".","")}.png",
+                };
+                row.AddChidren(btnIcon);
+                Button btnRight = new Button()
+                {
+                    X = Application.GetRealWidth(339),
+                    Gravity = Gravity.CenterVertical,
+                    Width = Application.GetMinRealAverage(16),
+                    Height = Application.GetMinRealAverage(16),
+                    UnSelectedImagePath = "Public/Right.png",
+                };
+                row.AddChidren(btnRight);
+
+                Button btnName = new Button()
+                {
+                    X = Application.GetRealWidth(56),
+                    Width = Application.GetRealWidth(303),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    Text = device.productName,
+                };
+                row.AddChidren(btnName);
+
+                btnName.MouseUpEventHandler = (sender, e) => {
+                    switch (device.spk)
+                    {
+                        case SPK.IrModule:
+                            var form = new AddMiniRemoteControlDirection1Page();
+                            form.AddForm();
+                            break;
+                    }
+                };
+            }
+
+        }
+
+    }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs
index c66cb3f..f73971c 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs
@@ -10,10 +10,11 @@
     {
         FrameLayout bodyView;
         VerticalRefreshLayout contentView;
-        List<IntegratedBrand> brandList = new List<IntegratedBrand>();
-        public AddThirdPartyBrandListpage()
+        List<IntegratedBrand> brandList;
+        public AddThirdPartyBrandListpage(List<IntegratedBrand> list)
         {
             bodyView = this;
+            brandList = list;
         }
 
         public void LoadPage()
@@ -26,6 +27,7 @@
             {
                 Y = Application.GetRealHeight(64),
                 Height = Application.GetRealHeight(667 - 64),
+                VerticalScrollBarEnabled = false,
             };
             bodyView.AddChidren(contentView);
 
@@ -60,7 +62,6 @@
                     Button btnLine = new Button()
                     {
                         X = Application.GetRealWidth(56),
-                        Y = Application.GetRealHeight(49),
                         Width = Application.GetRealWidth(303),
                         Height = 1,
                         BackgroundColor = CSS_Color.DividingLineColor,
@@ -101,6 +102,13 @@
                 row.AddChidren(btnName);
                 //涓嬭浇绗笁鏂瑰搧鐗宨con
                 ImageUtlis.Current.Load3tyBrandIconImages(brand.brandName, brand.brandIcon, btnIcon);
+
+                btnName.MouseUpEventHandler = (sender, e) => {
+                    var page = new AddDevciePage(brand);
+                    MainPage.BasePageView.AddChidren(page);
+                    page.LoadPage();
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                };
             }
 
         }
@@ -133,5 +141,13 @@
                 }
             }) { IsBackground = true }.Start();
         }
+        /// <summary>
+        /// 璺宠浆娣诲姞璁惧鐣岄潰
+        /// </summary>
+        /// <param name="bandType">鍝佺墝绫诲瀷</param>
+        void SkipPage_AddDevice()
+        {
+        
+        }
     }
 }
\ No newline at end of file
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs
new file mode 100644
index 0000000..ae8c28d
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs
@@ -0,0 +1,227 @@
+锘縰sing System;
+using System.Collections.Generic;
+using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
+using Shared;
+namespace HDL_ON.UI
+{
+    public class BrandListPage : FrameLayout
+    {
+        FrameLayout bodyView;
+
+        VerticalScrolViewLayout contentView;
+
+        List<IntegratedBrand> brandList;
+
+        public BrandListPage()
+        {
+            bodyView = this;
+            brandList = new List<IntegratedBrand>();
+        }
+
+        public void LoadPage()
+        {
+            Action<string,string> action = (s,a) => {
+                var page = new AddThirdPartyBrandListpage(brandList);
+                MainPage.BasePageView.AddChidren(page);
+                page.LoadPage();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+            new TopViewDiv(bodyView, Language.StringByID(StringId.FunctionBrand)).LoadTopView_AddIcon("3ty",action);
+
+            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
+
+            contentView = new  VerticalScrolViewLayout()
+            {
+                Y = Application.GetRealHeight(64),
+                Height = Application.GetRealHeight(603),
+            };
+            bodyView.AddChidren(contentView);
+
+            GetBindList();
+
+        }
+        /// <summary>
+        /// 鑾峰彇缁戝畾鍒楄〃
+        /// </summary>
+        void GetBindList()
+        {
+            var waitPage = new Loading();
+            waitPage.Start();
+            new System.Threading.Thread(() => {
+                try
+                {
+                    var pm = new DAL.Server.HttpServerRequest();
+                    var pack = pm.Get3tyBrandList();
+                    if (pack.Code == DAL.Server.StateCode.SUCCESS)
+                    {
+                        brandList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<IntegratedBrand>>(pack.Data.ToString());
+                        if (brandList.Count > 0)
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                LoadRow();
+                            });
+                        }else
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                NotListTipView();
+                              
+                            });
+                        }
+                    }
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log("2--::" + ex.Message);
+                }
+                finally
+                {
+                    Application.RunOnMainThread(() => { waitPage.Hide(); });
+                }
+            })
+            { IsBackground = true }.Start();
+        }
+
+
+        void LoadRow()
+        {
+            contentView.RemoveAll();
+            bool isFrist = true;
+            foreach (var brand in brandList)
+            {
+                var row = new RowLayout()
+                {
+                    Height = Application.GetRealHeight(50),
+                    BackgroundColor = CSS_Color.MainBackgroundColor,
+                    LineColor = 0x00000000,
+                };
+                contentView.AddChidren(row);
+
+                if (isFrist)
+                {
+                    isFrist = false;
+                }
+                else
+                {
+                    Button btnLine = new Button()
+                    {
+                        X = Application.GetRealWidth(56),
+                        Width = Application.GetRealWidth(303),
+                        Height = 1,
+                        BackgroundColor = CSS_Color.DividingLineColor,
+                    };
+                    row.AddChidren(btnLine);
+                }
+
+                ImageView btnIcon = new ImageView()
+                {
+                    X = Application.GetRealWidth(12),
+                    Gravity = Gravity.CenterVertical,
+                    Width = Application.GetRealWidth(32),
+                    Height = Application.GetRealWidth(32),
+                    Radius = (uint)Application.GetRealWidth(4),
+                    BackgroundColor = CSS_Color.PromptingColor1
+                };
+                row.AddChidren(btnIcon);
+                Button btnRight = new Button()
+                {
+                    X = Application.GetRealWidth(339),
+                    Gravity = Gravity.CenterVertical,
+                    Width = Application.GetMinRealAverage(16),
+                    Height = Application.GetMinRealAverage(16),
+                    UnSelectedImagePath = "Public/Right.png",
+                };
+                row.AddChidren(btnRight);
+
+                Button btnName = new Button()
+                {
+                    X = Application.GetRealWidth(56),
+                    Width = Application.GetRealWidth(303),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    Text = brand.brandName,
+                };
+                row.AddChidren(btnName);
+                //涓嬭浇绗笁鏂瑰搧鐗宨con
+                ImageUtlis.Current.Load3tyBrandIconImages(brand.brandName, brand.brandIcon, btnIcon);
+
+                btnName.MouseUpEventHandler = (sender, e) => {
+                    var page = new DeviceListPage(brand);
+                    MainPage.BasePageView.AddChidren(page);
+                    page.LoadPage();
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                };
+            }
+
+        }
+
+        void NotListTipView()
+        {
+            contentView.RemoveAll();
+            var btnTip = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(108),
+                Width = Application.GetRealWidth(180),
+                Height = Application.GetRealWidth(180),
+                UnSelectedImagePath = "TipNot.png",
+            };
+            contentView.AddChidren(btnTip);
+
+            var btnTipText = new Button()
+            {
+                Y = Application.GetRealHeight(292),
+                Height = Application.GetRealHeight(52),
+                TextSize = CSS_FontSize.TextFontSize,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextAlignment = TextAlignment.Center,
+                TextID = StringId.Not3tyBrandListTip,
+            };
+            contentView.AddChidren(btnTipText);
+
+            var btnTipText1 = new Button()
+            {
+                Y = Application.GetRealHeight(459),
+                Height = Application.GetRealHeight(41),
+                TextSize = CSS_FontSize.TextFontSize,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextAlignment = TextAlignment.Center,
+                TextID = StringId.Use3tyBrandListTip,
+            };
+            contentView.AddChidren(btnTipText1);
+
+            var btnAdd = new Button()
+            {
+                Y = Application.GetRealHeight(500),
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(220),
+                Height = Application.GetRealWidth(44),
+                BackgroundColor = CSS_Color.MainColor,
+                TextAlignment = TextAlignment.Center,
+                TextColor = CSS_Color.MainBackgroundColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                IsBold = true,
+                Radius = (uint)Application.GetRealWidth(22),
+                BorderColor = 0x00000000,
+                BorderWidth = 0,
+                TextID = StringId.Add,
+            };
+            contentView.AddChidren(btnAdd);
+
+
+            btnAdd.MouseUpEventHandler = (sender, e) => {
+                var page = new AddThirdPartyBrandListpage(brandList);
+                MainPage.BasePageView.AddChidren(page);
+                page.LoadPage();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                this.RemoveFromParent();
+            };
+
+
+
+        }
+    }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
new file mode 100644
index 0000000..df95071
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
@@ -0,0 +1,164 @@
+锘縰sing System;
+using System.Collections.Generic;
+using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
+using Shared;
+namespace HDL_ON.UI
+{
+    public class DeviceListPage  : FrameLayout
+    {
+        FrameLayout bodyView;
+        VerticalRefreshLayout contentView;
+
+        IntegratedBrand brand;
+        public DeviceListPage(IntegratedBrand integratedBrand)
+        {
+            bodyView = this;
+            brand = integratedBrand;
+        }
+
+
+        public void LoadPage()
+        {
+            new TopViewDiv(bodyView, Language.StringByID(StringId.AddDevice)).LoadTopView();
+            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
+
+            contentView = new VerticalRefreshLayout()
+            {
+                Y = Application.GetRealHeight(64),
+                Height = Application.GetRealHeight(667 - 64),
+                VerticalScrollBarEnabled = false,
+            };
+            bodyView.AddChidren(contentView);
+
+
+
+            Load3tyBrandDeviceList();
+
+        }
+
+        void Load3tyBrandDeviceList()
+        {
+            var waitPage = new Loading();
+            waitPage.Start();
+            new System.Threading.Thread(() => {
+                try
+                {
+                    var pm = new DAL.Server.HttpServerRequest();
+                    var pack = pm.Get3TyBrandBindDeviceList(brand.productPlatform, brand.productBrand);
+                    if (pack.Code == DAL.Server.StateCode.SUCCESS)
+                    {
+                        var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<Function3tyBrandObj>(pack.Data.ToString());
+                        Application.RunOnMainThread(() =>
+                        {
+                            LoadRow(revData.list);
+                        });
+                    }
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log("1--::" + ex.Message);
+                }
+                finally
+                {
+                    Application.RunOnMainThread(() => { waitPage.Hide(); });
+                }
+            })
+            { IsBackground = true }.Start();
+        }
+
+        void LoadRow(List<Function> deviceList)
+        {
+            deviceList.Add(new Function() { name ="娴嬭瘯绾㈠瀹�",spk = SPK.IrModule});
+
+            contentView.RemoveAll();
+            bool isFrist = true;
+            foreach (var device in deviceList)
+            {
+                FrameLayout row = new FrameLayout()
+                {
+                    Height = Application.GetRealHeight(50),
+                    BackgroundColor = CSS_Color.MainBackgroundColor,
+                };
+                contentView.AddChidren(row);
+
+                if (isFrist)
+                {
+                    isFrist = false;
+                }
+                else
+                {
+                    Button btnLine = new Button()
+                    {
+                        X = Application.GetRealWidth(56),
+                        Width = Application.GetRealWidth(303),
+                        Height = 1,
+                        BackgroundColor = CSS_Color.DividingLineColor,
+                    };
+                    row.AddChidren(btnLine);
+                }
+
+                var btnIcon = new Button()
+                {
+                    X = Application.GetRealWidth(12),
+                    Gravity = Gravity.CenterVertical,
+                    Width = Application.GetRealWidth(32),
+                    Height = Application.GetRealWidth(32),
+                    Radius = (uint)Application.GetRealWidth(4),
+                    UnSelectedImagePath = $"FunctionIcon/Icon/{device.spk.Replace(".", "")}.png",
+                };
+                row.AddChidren(btnIcon);
+                Button btnRight = new Button()
+                {
+                    X = Application.GetRealWidth(339),
+                    Gravity = Gravity.CenterVertical,
+                    Width = Application.GetMinRealAverage(16),
+                    Height = Application.GetMinRealAverage(16),
+                    UnSelectedImagePath = "Public/Right.png",
+                };
+                row.AddChidren(btnRight);
+
+                Button btnName = new Button()
+                {
+                    X = Application.GetRealWidth(56),
+                    Width = Application.GetRealWidth(303),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    Text = device.name,
+                };
+                row.AddChidren(btnName);
+
+                btnName.MouseUpEventHandler = (sender, e) => {
+                    switch (device.spk)
+                    {
+                        case SPK.IrModule:
+                            UI2.PersonalCenter.PirDevice.Method.GetPirDeviceList(this, () =>
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    var page = new UI2.PersonalCenter.PirDevice.PirMain();
+                                    MainPage.BasePageView.AddChidren(page);
+                                    page.Show();
+                                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                                });
+                            });
+                            break;
+                    }
+                };
+            }
+
+        }
+
+    }
+
+
+    /// <summary>
+    /// 浜戠杩斿洖鐨勭涓夋柟璁惧鍒楄〃鏁版嵁
+    /// </summary>
+    public class Function3tyBrandObj
+    {
+        public List<Function> list = new List<Function>();
+    }
+         
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/ThirdPartyBrandListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/ThirdPartyBrandListPage.cs
index bc6f542..b292e9d 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/ThirdPartyBrandListPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/ThirdPartyBrandListPage.cs
@@ -1,93 +1,93 @@
-锘縰sing System;
-using System.Collections.Generic;
-using HDL_ON.Entity;
-using HDL_ON.UI.CSS;
-using Shared;
-namespace HDL_ON.UI
-{
-    public class ThirdPartyBrandListPage : FrameLayout
-    {
+锘�//using System;
+//using System.Collections.Generic;
+//using HDL_ON.Entity;
+//using HDL_ON.UI.CSS;
+//using Shared;
+//namespace HDL_ON.UI
+//{
+//    public class ThirdPartyBrandListPage : FrameLayout
+//    {
 
-        FrameLayout bodyView;
-        FrameLayout contentView;
-        Button btnAdd;
+//        FrameLayout bodyView;
+//        FrameLayout contentView;
+//        Button btnAdd;
 
-        public ThirdPartyBrandListPage()
-        {
-            bodyView = this;
-        }
+//        public ThirdPartyBrandListPage()
+//        {
+//            bodyView = this;
+//        }
 
-        public void LoadPage()
-        {
-            new TopViewDiv(bodyView, Language.StringByID(StringId.FunctionBrand)).LoadTopView();
+//        public void LoadPage()
+//        {
+//            new TopViewDiv(bodyView, Language.StringByID(StringId.FunctionBrand)).LoadTopView();
 
-            contentView = new FrameLayout()
-            {
-                Y = Application.GetRealHeight(64),
-                Height = Application.GetRealHeight(667-64),
-                BackgroundColor = CSS_Color.MainBackgroundColor,
-            };
-            bodyView.AddChidren(contentView);
+//            contentView = new FrameLayout()
+//            {
+//                Y = Application.GetRealHeight(64),
+//                Height = Application.GetRealHeight(667-64),
+//                BackgroundColor = CSS_Color.MainBackgroundColor,
+//            };
+//            bodyView.AddChidren(contentView);
 
-            AddEmptyTipView();
+//            AddEmptyTipView();
 
-            Button btnTipMsg = new Button()
-            {
-                Height = Application.GetRealHeight(17 + 24),
-                Y = Application.GetRealHeight(535 - 12),
-                TextColor = CSS_Color.TextualColor,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                TextAlignment = TextAlignment.Center,
-                TextID = StringId.TipAddThirdPartyDeviceMsg,
-            };
-            bodyView.AddChidren(btnTipMsg);
+//            Button btnTipMsg = new Button()
+//            {
+//                Height = Application.GetRealHeight(17 + 24),
+//                Y = Application.GetRealHeight(535 - 12),
+//                TextColor = CSS_Color.TextualColor,
+//                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+//                TextAlignment = TextAlignment.Center,
+//                TextID = StringId.TipAddThirdPartyDeviceMsg,
+//            };
+//            bodyView.AddChidren(btnTipMsg);
 
-            btnAdd = new Button()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Y = Application.GetRealHeight(564),
-                Width = Application.GetRealWidth(220),
-                Height = Application.GetRealWidth(44),
-                Radius = (uint)Application.GetRealWidth(22),
-                BackgroundColor = CSS_Color.MainColor,
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.MainBackgroundColor,
-                TextID = StringId.Add,
-            };
-            bodyView.AddChidren(btnAdd);
+//            btnAdd = new Button()
+//            {
+//                Gravity = Gravity.CenterHorizontal,
+//                Y = Application.GetRealHeight(564),
+//                Width = Application.GetRealWidth(220),
+//                Height = Application.GetRealWidth(44),
+//                Radius = (uint)Application.GetRealWidth(22),
+//                BackgroundColor = CSS_Color.MainColor,
+//                TextAlignment = TextAlignment.Center,
+//                TextColor = CSS_Color.MainBackgroundColor,
+//                TextID = StringId.Add,
+//            };
+//            bodyView.AddChidren(btnAdd);
 
-            LoadEvent_SikpAddBrand();
-        }
+//            LoadEvent_SikpAddBrand();
+//        }
 
-        /// <summary>
-        /// 娣诲姞鍐呭涓虹┖鎻愮ず椤甸潰
-        /// </summary>
-        void AddEmptyTipView()
-        {
-           var emptyTipView = new FrameLayout()
-            {
-                Height =Application.GetRealWidth(470),
-                Width = contentView.Width,
-            };
-            contentView.AddChidren(emptyTipView);
+//        /// <summary>
+//        /// 娣诲姞鍐呭涓虹┖鎻愮ず椤甸潰
+//        /// </summary>
+//        void AddEmptyTipView()
+//        {
+//           var emptyTipView = new FrameLayout()
+//            {
+//                Height =Application.GetRealWidth(470),
+//                Width = contentView.Width,
+//            };
+//            contentView.AddChidren(emptyTipView);
 
-            var tipView = new EmptyTipView(Language.StringByID(StringId.TipNotThirdPartyDevice))
-            {
-                Gravity = Gravity.Center
-            };
-            emptyTipView.AddChidren(tipView);
-        }
-        /// <summary>
-        /// 璺宠浆缁戝畾绗笁鏂瑰搧鐗岀晫闈�
-        /// </summary>
-        void LoadEvent_SikpAddBrand()
-        {
-            btnAdd.MouseUpEventHandler = (sender, e) => {
-                var page = new AddThirdPartyBrandListpage();
-                MainPage.BasePageView.AddChidren(page);
-                page.LoadPage();
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-            }; 
-        }
-    }
-}
+//            var tipView = new EmptyTipView(Language.StringByID(StringId.TipNotThirdPartyDevice))
+//            {
+//                Gravity = Gravity.Center
+//            };
+//            emptyTipView.AddChidren(tipView);
+//        }
+//        /// <summary>
+//        /// 璺宠浆缁戝畾绗笁鏂瑰搧鐗岀晫闈�
+//        /// </summary>
+//        void LoadEvent_SikpAddBrand()
+//        {
+//            btnAdd.MouseUpEventHandler = (sender, e) => {
+//                var page = new AddThirdPartyBrandListpage();
+//                MainPage.BasePageView.AddChidren(page);
+//                page.LoadPage();
+//                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+//            }; 
+//        }
+//    }
+//}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
index 15e23fb..c73aa4f 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
@@ -339,7 +339,7 @@
             userTypeView.AddChidren(btnUserTypeName);
             #endregion
             #region 浣忓畢绠$悊
-          
+
             if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
             {
                 #region ---浣忓畢绠$悊鍖哄煙
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
index 17453a7..7a96fac 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -260,20 +260,21 @@
         {
             EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
             {
-                // var page = new ThirdPartyBrandListPage();
-                // MainPage.BasePageView.AddChidren(page);
-                // page.LoadPage();
+                var page = new BrandListPage();// AddThirdPartyBrandListpage(); // BrandListPage();
+                MainPage.BasePageView.AddChidren(page);
+                page.LoadPage();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                 //鑾峰彇鍒楄〃
-                HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.GetPirDeviceList(this, () =>
-                {
-                    Application.RunOnMainThread(() =>
-                    {
-                        var page = new UI2.PersonalCenter.PirDevice.PirMain();
-                        MainPage.BasePageView.AddChidren(page);
-                        page.Show();
-                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                    });
-                });
+                //HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.GetPirDeviceList(this, () =>
+                //{
+                //    Application.RunOnMainThread(() =>
+                //    {
+                //        var page = new UI2.PersonalCenter.PirDevice.PirMain();
+                //        MainPage.BasePageView.AddChidren(page);
+                //        page.Show();
+                //        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                //    });
+                //});
             };
             btnResidenceAddFunctionIcon.MouseUpEventHandler = eventHandler;
             btnResidenceAddFunctionText.MouseUpEventHandler = eventHandler;
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
index 57fa14e..8f065de 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
@@ -315,7 +315,7 @@
                 case 3:
                     {
                         //椋庢墖
-                        type = "fan-" + SPK.ElectricFan;
+                       // type = "fan-" + SPK.ElectricFan;
                     }
                     break;
                 case 4:
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/ResetAccountPassword/ResetPasswordPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/ResetAccountPassword/ResetPasswordPage.cs
index 54bad8f..61fff82 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/ResetAccountPassword/ResetPasswordPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/ResetAccountPassword/ResetPasswordPage.cs
@@ -195,6 +195,7 @@
                 {
                     CloseTime = 1,
                     Direction = AMPopTipDirection.None,
+                    MaxWidth = Application.GetRealWidth(300),
                     Text = Language.StringByID(StringId.IncorrectRepeatPassword)
                 }.Show(bodyView);
 
@@ -310,6 +311,7 @@
                         {
                             CloseTime = 1,
                             Direction = AMPopTipDirection.None,
+                            MaxWidth = Application.GetRealWidth(300),
                             Text = Language.StringByID(StringId.IncorrectRepeatPassword)
                         }.Show(bodyView);
                     }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs b/HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs
index 629a706..4874520 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs
@@ -206,6 +206,8 @@
 
             LoadEvent_TempChange();
             LoadEvent_AcStatesChange();
+
+            LoadDiv_IrView();
         }
 
         /// <summary>
@@ -445,6 +447,146 @@
             dialog.Show();
         }
 
+        /// <summary>
+        /// 鍔犺浇绾㈠閬ユ帶鍣紝棰濆鎸夐挳
+        /// </summary>
+        void LoadDiv_IrView()
+        {
+            if (device.spk == SPK.AcIr)
+            {
+                var btnMore = new Button()
+                {
+                    Gravity = Gravity.CenterHorizontal,
+                    Y = Application.GetRealHeight(334),
+                    Width = Application.GetRealWidth(30),
+                    Height = Application.GetRealWidth(30),
+                    UnSelectedImagePath = "FunctionIcon/AC/More.png",
+                };
+                FrameWhiteCentet1.AddChidren(btnMore);
+
+                btnMore.MouseUpEventHandler = (sender, e) => {
+                    LoadDialog_IrMoreView();
+                };
+            }
+        }
+        /// <summary>
+        /// 鍔犺浇棰濆瀵圭孩澶栨寜閽晫闈�
+        /// </summary>
+        void LoadDialog_IrMoreView()
+        {
+            Dialog dialog = new Dialog();
+
+            var div = new FrameLayout();
+            dialog.AddChidren(div);
+            div.MouseUpEventHandler = (sender, e) => {
+                dialog.Close();
+            };
+
+            var bodyView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(463),
+                Height = Application.GetRealHeight(375),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+            };
+            div.AddChidren(bodyView);
+
+            var contentView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(16),
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(296),
+            };
+            bodyView.AddChidren(contentView);
+
+                var row = new FrameLayout()
+                {
+                    Height = Application.GetRealHeight(60),
+                };
+                contentView.AddChidren(row);
+
+                int index = 0;
+            foreach (var attr in device.attributes)
+            {
+                if (attr.key == FunctionAttributeKey.Mode
+                    || attr.key == FunctionAttributeKey.OnOff
+                    || attr.key == FunctionAttributeKey.SetTemp
+                    || attr.key == FunctionAttributeKey.SetTempStep
+                    || attr.key == FunctionAttributeKey.FanSpeed
+                    || attr.key == FunctionAttributeKey.FanManual
+                    || attr.key == FunctionAttributeKey.FanAuto
+                    )
+                {
+                    continue;
+                }
+                if (index != 0 && index % 3 == 0)
+                {
+                    row = new FrameLayout()
+                    {
+                        Width = Application.GetRealWidth(200),
+                        Height = Application.GetRealHeight(56),
+                    };
+                    contentView.AddChidren(row);
+                }
+
+                var btn = new Button()
+                {
+                    Gravity = Gravity.CenterVertical,
+                    Width = Application.GetRealWidth(88),
+                    Height = Application.GetRealHeight(40),
+                    Radius = (uint)Application.GetRealHeight(18),
+                    BorderColor = CSS_Color.PromptingColor1,
+                    BorderWidth = (uint)Application.GetRealWidth(2),
+                    TextAlignment = TextAlignment.Center,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    SelectedTextColor = CSS_Color.MainBackgroundColor,
+                    SelectedBackgroundColor = CSS_Color.MainColor,
+                };
+                if (attr.value.Count > 0)
+                {
+                    btn.Text = attr.value[0];
+                }
+                if (index % 3 == 1)
+                {
+                    btn.Gravity = Gravity.Center;
+                }
+                else if (index % 3 == 2)
+                {
+                    btn.X = Application.GetRealWidth(208);
+                }
+                row.AddChidren(btn);
+
+                btn.MouseUpEventHandler = (sender, e) =>
+                {
+                    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.Key, attr.key);
+                    Control.Ins.SendWriteCommand(device, d);
+
+                    new System.Threading.Thread(() =>
+                    {
+                        System.Threading.Thread.Sleep(2000);
+                        Application.RunOnMainThread(() =>
+                        {
+                            btn.IsSelected = false;
+                        });
+                    })
+                    { IsBackground = true }.Start();
+                };
+
+
+
+                index++;
+            }
+
+
+
+
+
+
+            dialog.Show();
+        }
+
+
         #endregion
 
         #region 鈻� 璁惧鐘舵�佸弽棣坃______________________
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
index 57119a2..aa73f74 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
@@ -405,6 +405,7 @@
                 {
                     lightingView.SetViewStatus(lightTemp.state == "on");
                 }
+                Console.WriteLine($"鏃堕棿鎴筹細{device.time_stamp}  鏃堕棿锛歿device.GeteTime()} 鐑樺共:{hotDryTemp.state} 椋庡共:{windDryTemp.state} 娑堟瘨:{disinfectTemp.state} 鐏厜鐘舵�侊細{lightTemp.state}");
                 #endregion
 
                 #region 淇敼鏃堕棿
@@ -492,10 +493,26 @@
         public void ChangeTime(string newTime)
         {
             int.TryParse(newTime, out leftTime);
+            if (leftTime > 0)
+            {
+                Application.RunOnMainThread(() =>
+                {
+                    btnTime.Text = new TimeSpan(0, leftTime, 0).ToString().Remove(5, 3);
+                });
+                leftTime--;
+            }
+            else if (leftTime == 0)
+            {
+                Application.RunOnMainThread(() =>
+                {
+                    btnTime.Text = "";
+                });
+            }
             if (countdownThread == null)
             {
                 countdownThread = new System.Threading.Thread(() =>
                 {
+
                     while (true)
                     {
                         if (leftTime > 0)
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrLearnPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrLearnPage.cs
new file mode 100644
index 0000000..aef5a45
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrLearnPage.cs
@@ -0,0 +1,146 @@
+锘縰sing System;
+using HDL_ON.DriverLayer;
+using HDL_ON.Entity;
+using HDL_ON.Stan;
+using HDL_ON.UI.CSS;
+using Shared;
+
+namespace HDL_ON.UI
+{
+    public class IrLearnPage : DeviceFunctionCardCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒濆鍖栫櫧鑹插尯鍩熺殑鍐呭
+        /// </summary>
+        public override void InitFrameWhiteContent()
+        {
+
+            base.ShowColltionButton = false;
+            base.SetTitleText(Language.StringByID(StringId.RemoteControl));
+
+            //鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+            this.InitFrameWhiteContent1();
+
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+        /// </summary>
+        private void InitFrameWhiteContent1()
+        {
+            var contentView = new VerticalScrolViewLayout()
+            {
+                Y = Application.GetRealHeight(94),
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(296),
+                Height = Application.GetRealHeight(376),
+            };
+            FrameWhiteCentet1.AddChidren(contentView);
+
+            var row = new FrameLayout()
+            {
+                //Width = Application.GetRealWidth(200),
+                Height = Application.GetRealHeight(56),
+            };
+            contentView.AddChidren(row);
+
+            int index = 0;
+            foreach(var attr in device.attributes)
+            {
+                if(index != 0 && index%3==0)
+                {
+                    row = new FrameLayout()
+                    {
+                        Width = Application.GetRealWidth(200),
+                        Height = Application.GetRealHeight(56),
+                    };
+                    contentView.AddChidren(row);
+                }
+
+                var btn = new Button()
+                {
+                    Width = Application.GetRealWidth(88),
+                    Height = Application.GetRealHeight(40),
+                    Radius = (uint)Application.GetRealHeight(18),
+                    BorderColor = CSS_Color.PromptingColor1,
+                    BorderWidth = (uint)Application.GetRealWidth(2),
+                    TextAlignment = TextAlignment.Center,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    SelectedTextColor = CSS_Color.MainBackgroundColor,
+                    SelectedBackgroundColor = CSS_Color.MainColor,
+                };
+                if (attr.value.Count > 0)
+                {
+                    btn.Text = attr.value[0];
+                }
+                if (index % 3 == 1)
+                {
+                    btn.Gravity = Gravity.CenterHorizontal;
+                }
+                else if (index % 3 == 2)
+                {
+                    btn.X = Application.GetRealWidth(208);
+                }
+                row.AddChidren(btn);
+
+                btn.MouseUpEventHandler = (sender, e) => {
+                    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                    d.Add(attr.key, "");
+                    Control.Ins.SendWriteCommand(device, d);
+
+                    new System.Threading.Thread(() => {
+                        System.Threading.Thread.Sleep(2000);
+                        Application.RunOnMainThread(() => {
+                            btn.IsSelected = false;
+                        });
+                    }) { IsBackground = true }.Start();
+                };
+
+
+
+                index++;
+            }
+
+        }
+
+
+        #endregion
+
+        #region 鈻� 璁惧鐘舵�佸弽棣坃______________________
+
+        /// <summary>
+        /// 璁惧鐘舵�佸弽棣�
+        /// </summary>
+        /// <param name="i_LocalDevice"></param>
+        public override void DeviceStatuPush(Function i_LocalDevice)
+        {
+            return;
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佸悇绉嶅懡浠______________________
+         
+        #endregion
+
+        #region 鈻� 鍒锋柊鐣岄潰鐘舵�乢______________________
+
+        /// <summary>
+        /// 鍒锋柊鐣岄潰鐘舵��
+        /// </summary>
+        private void RefreshFormStatu()
+        {
+            return;
+        }
+
+        #endregion
+
+    }
+}
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs
index 171e369..d0199bb 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs
@@ -73,9 +73,9 @@
         /// </summary>
         private MostRightIconControl btnAnionSwitch = null;
         /// <summary>
-        /// 婊よ姱澶嶄綅寮�鍏虫帶浠�
+        /// 婊よ姱澶嶄綅寮�鍏虫帶浠� 2021.03.09鎺т欢鍙樻洿
         /// </summary>
-        private MostRightIconControl btnResetSwitch = null;
+        //private MostRightIconControl btnResetSwitch = null;
         /// <summary>
         /// 绌烘皵璐ㄩ噺鏁版嵁
         /// </summary>
@@ -328,12 +328,11 @@
             rowReset.Height = Application.GetRealHeight(50);
             rowReset.Width = FrameWhiteCentet2.Width;
             rowReset.Y = rowAnion.Bottom;
-            FrameWhiteCentet2.AddChidren(rowReset);
+            //FrameWhiteCentet2.AddChidren(rowReset);
             rowReset.AddLeftCaption(Language.StringByID(StringId.FilterElementReset), 200);
             rowReset.AddBottomLine();
-            this.btnResetSwitch = rowReset.AddMostRightSwitchIcon();
-            btnResetSwitch.IsSelected = this.airCleanerData.FilterReset;
-            btnResetSwitch.ButtonClickEvent += (sender, e) =>
+            rowReset.AddRightArrow();
+            rowReset.ButtonClickEvent += (sender, e) =>
             {
                 if (this.btnSwitch.IsSelected == false)
                 {
@@ -345,7 +344,7 @@
                 this.ShowMassage(ShowMsgType.Confirm, msg, () =>
                 {
                     //鍙戦�佷娇鑳藉懡浠�
-                    this.SendEnableComand(btnResetSwitch, "filter_reset", btnResetSwitch.IsSelected == true ? "false" : "true");
+                    this.SendEnableComand(null, "filter_reset", "true");
                 });
             };
         }
@@ -624,12 +623,18 @@
         /// </summary>
         private void SendEnableComand(MostRightIconControl btnSwitch, string sendKey, string value)
         {
-            btnSwitch.CanClick = false;
+            if (btnSwitch != null)
+            {
+                btnSwitch.CanClick = false;
+            }
             HdlThreadLogic.Current.RunThread(() =>
             {
                 var dic = new Dictionary<string, string>();
                 dic.Add(sendKey, value);
                 Control.Ins.SendWriteCommand(this.device, dic, true);
+
+                if (btnSwitch == null) { return; }
+
                 HdlThreadLogic.Current.RunMain(() =>
                 {
                     btnSwitch.CanClick = true;
@@ -769,10 +774,10 @@
                 this.btnAnionSwitch.IsSelected = this.airCleanerData.Anion;
             }
             //婊よ姱澶嶄綅
-            if (this.btnResetSwitch.IsSelected != this.airCleanerData.FilterReset)
-            {
-                this.btnResetSwitch.IsSelected = this.airCleanerData.FilterReset;
-            }
+            //if (this.btnResetSwitch.IsSelected != this.airCleanerData.FilterReset)
+            //{
+            //    this.btnResetSwitch.IsSelected = this.airCleanerData.FilterReset;
+            //}
         }
 
         #endregion
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWaterValvePage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWaterValvePage.cs
index 89d188b..73e6c7a 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWaterValvePage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWaterValvePage.cs
@@ -42,12 +42,18 @@
         /// </summary>
         public override void InitFrameWhiteContent()
         {
-            base.SetTitleText(Language.StringByID(StringId.AirCleaner));
+            base.SetTitleText(Language.StringByID(StringId.WaterValve));
 
             //鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
             this.InitFrameWhiteContent1();
             //鍒锋柊鐣岄潰鐘舵��
             this.RefreshFormStatu();
+            //璇诲彇鐘舵��
+            new System.Threading.Thread(() =>
+            {
+                Control.Ins.ReadFunctionsInfo(new List<string>() { device.deviceId});
+            })
+            { IsBackground = true }.Start();
         }
 
         /// <summary>
@@ -104,6 +110,21 @@
             btnTimeSet.ButtonClickEvent = (sender, e) => {
                 SetControlTime();
             };
+
+
+            var btnTimeSetTip = new NormalViewControl(300, 30, true)
+            {
+                Y = btnTimeSet.Bottom ,
+                Gravity = Gravity.CenterHorizontal,
+                TextAlignment = TextAlignment.Center,
+                TextSize = CSS_FontSize.TextFontSize,
+                //TextColor = 0x00000000,
+                SelectedTextColor = CSS_Color.TextualColor,
+                TextColor = CSS_Color.TextualColor,
+                TextID = StringId.TimeSwitch,
+            };
+            FrameWhiteCentet1.AddChidren(btnTimeSetTip);
+
 
             //寮�鍏冲浘鏍�
             this.btnSwitch = new IconViewControl(40);
@@ -187,7 +208,7 @@
                     {
                         btnControlTip.TextID = StringId.ControllerNotOn;
                     }
-                    this.btnSwitch.IsSelected = this.btnPictrue.IsSelected = onoffStatu.value.ToString() == "on";
+                    this.btnSwitch.IsSelected = this.btnPictrue.IsSelected = onoffStatu.state.ToString() == "on";
                 }
                 if (timeStatu != null)
                 {
@@ -252,6 +273,7 @@
         private void SetControlTime()
         {
             var timeControl = new BottomTimeSelectControl();
+            timeControl.RowCount = 5;
             timeControl.InitControl(0,0);
             timeControl.FinishEvent = (type,hours,min) => {
                 if (type == 1)//0:鍙栨秷锛�1:纭畾
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs
index f5028ec..2368509 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs
@@ -127,7 +127,7 @@
             //鍚稿姏璋冭妭
             this.btnSuctionIcon = new IconViewControl(28);
             btnSuctionIcon.Y = ImageControl.Bottom + Application.GetRealHeight(64);
-            btnSuctionIcon.X = Application.GetRealWidth(33);
+            //btnSuctionIcon.X = Application.GetRealWidth(33);
             btnSuctionIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Suction.png";
             btnSuctionIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/SuctionSelect.png";
             FrameWhiteCentet1.AddChidren(btnSuctionIcon);
@@ -138,7 +138,7 @@
             };
             this.btnSuctionView = new NormalViewControl(80, 54, true);
             btnSuctionView.Y = btnSuctionIcon.Bottom + Application.GetRealHeight(10);
-            btnSuctionView.X = btnSuctionIcon.X - (Application.GetRealWidth(80) - btnSuctionIcon.Width) / 2;
+            //btnSuctionView.X = btnSuctionIcon.X - (Application.GetRealWidth(80) - btnSuctionIcon.Width) / 2;
             btnSuctionView.TextAlignment = TextAlignment.TopCenter;
             btnSuctionView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
             btnSuctionView.Text = Language.StringByID(StringId.SuctionAdjustment);
@@ -149,7 +149,8 @@
             this.btnChargeIcon = new IconViewControl(28);
             btnChargeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/ChargeSelect.png";
             btnChargeIcon.Y = btnSuctionIcon.Y;
-            btnChargeIcon.X = btnSuctionIcon.Right + Application.GetRealWidth(50);
+            //btnChargeIcon.X = btnSuctionIcon.Right + Application.GetRealWidth(50);
+            btnChargeIcon.Gravity = Gravity.CenterHorizontal;
             FrameWhiteCentet1.AddChidren(btnChargeIcon);
             btnChargeIcon.ButtonClickEvent += (sender, e) =>
             {
@@ -164,6 +165,10 @@
             btnChargeView.TextID = StringId.Charge;
             FrameWhiteCentet1.AddChidren(btnChargeView);
 
+            //2021.03.09 鑸嶅純鎺夐潤闊冲姛鑳�
+            btnSuctionIcon.X = btnChargeIcon.X - btnSuctionIcon.IconSize - Application.GetRealWidth(50);
+            btnSuctionView.X = btnSuctionIcon.X - (Application.GetRealWidth(80) - btnSuctionIcon.Width) / 2;
+
             //澹伴煶鍥炬爣
             this.btnVoiceIcon = new IconViewControl(28);
             btnVoiceIcon.Y = btnSuctionIcon.Y;
@@ -171,7 +176,7 @@
             btnVoiceIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Voice.png";
             btnVoiceIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/VoiceSelect.png";
             btnVoiceIcon.IsSelected = true;
-            FrameWhiteCentet1.AddChidren(btnVoiceIcon);
+            //FrameWhiteCentet1.AddChidren(btnVoiceIcon);
             btnVoiceIcon.ButtonClickEvent += (sender, e) =>
             {
                 //鍙戦�侀潤闊冲懡浠�
@@ -183,12 +188,13 @@
             btnVoiceView.TextAlignment = TextAlignment.TopCenter;
             btnVoiceView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
             btnVoiceView.TextID = StringId.Mute;
-            FrameWhiteCentet1.AddChidren(btnVoiceView);
+            //FrameWhiteCentet1.AddChidren(btnVoiceView);
 
             //娓呮壂妯″紡鍥炬爣
             this.btnModeIcon = new IconViewControl(28);
             btnModeIcon.Y = btnSuctionIcon.Y;
-            btnModeIcon.X = btnVoiceIcon.Right + Application.GetRealWidth(50);
+            //btnModeIcon.X = btnVoiceIcon.Right + Application.GetRealWidth(50);
+            btnModeIcon.X = btnChargeIcon.Right + Application.GetRealWidth(50);
             btnModeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Clean.png";
             FrameWhiteCentet1.AddChidren(btnModeIcon);
             btnModeIcon.ButtonClickEvent += (sender, e) =>
@@ -220,26 +226,28 @@
             btnTitleName.TextID = StringId.WeepRobot;
             FrameWhiteCentet2.AddChidren(btnTitleName);
 
+            //2021.03.09 鑸嶅純鑰楁潗绠$悊
             //鑰楁潗绠$悊
-            var rowManment = new FrameRowControl();
-            rowManment.Height = Application.GetRealHeight(50);
-            rowManment.Width = FrameWhiteCentet2.Width;
-            rowManment.Y = Application.GetRealHeight(75);
-            FrameWhiteCentet2.AddChidren(rowManment);
-            rowManment.AddLeftCaption(Language.StringByID(StringId.ConsumablesManagement), 200);
-            rowManment.AddBottomLine();
-            rowManment.AddRightArrow();
-            rowManment.ButtonClickEvent += (sender, e) =>
-            {
-                var form = new TuyaWeepRobotConsumablesMagPage();
-                form.AddForm(this.device, this.weepRobotData);
-            };
+            //var rowManment = new FrameRowControl();
+            //rowManment.Height = Application.GetRealHeight(50);
+            //rowManment.Width = FrameWhiteCentet2.Width;
+            //rowManment.Y = Application.GetRealHeight(75);
+            //FrameWhiteCentet2.AddChidren(rowManment);
+            //rowManment.AddLeftCaption(Language.StringByID(StringId.ConsumablesManagement), 200);
+            //rowManment.AddBottomLine();
+            //rowManment.AddRightArrow();
+            //rowManment.ButtonClickEvent += (sender, e) =>
+            //{
+            //    var form = new TuyaWeepRobotConsumablesMagPage();
+            //    form.AddForm(this.device, this.weepRobotData);
+            //};
 
             //鍘嗗彶璁板綍
             var rowHistory = new FrameRowControl();
             rowHistory.Height = Application.GetRealHeight(50);
             rowHistory.Width = FrameWhiteCentet2.Width;
-            rowHistory.Y = rowManment.Bottom;
+            //rowHistory.Y = rowManment.Bottom;
+            rowHistory.Y = Application.GetRealHeight(75);
             FrameWhiteCentet2.AddChidren(rowHistory);
             rowHistory.AddLeftCaption(Language.StringByID(StringId.HistoryLog), 200);
             rowHistory.AddBottomLine();
@@ -327,12 +335,15 @@
             };
             frameBack.Show();
 
+            //2021.03.09 鑸嶅純闅忔満娓呮壂
             //鑿滃崟鎺т欢(娓呮壂妯″紡)
-            var menuContr = new DialogTitleMenuControl(4, Language.StringByID(StringId.CleanMode));
+            //var menuContr = new DialogTitleMenuControl(4, Language.StringByID(StringId.CleanMode));
+            var menuContr = new DialogTitleMenuControl(3, Language.StringByID(StringId.CleanMode));
             menuContr.X = Application.GetRealWidth(210);
             menuContr.Y = Application.GetRealHeight(197);
             menuContr.Width = Application.GetRealWidth(160);
-            menuContr.Height = Application.GetRealHeight(243);
+            //menuContr.Height = Application.GetRealHeight(243);
+            menuContr.Height = Application.GetRealHeight(203);
             dialogBody.AddChidren(menuContr);
 
             //鑷姩娓呮壂
@@ -345,13 +356,13 @@
             });
 
             //闅忔満娓呮壂
-            iconPath = this.weepRobotData.Mode == "random" ? "FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png" : "FunctionIcon/Electrical/WeepRobot/FixedPointMode.png";
-            menuContr.AddRowMenu(Language.StringByID(StringId.RandomClean), iconPath, this.weepRobotData.Mode == "random", () =>
-            {
-                frameBack.Close();
-                //鍙戦�佹ā寮忓懡浠�
-                this.SendComand("mode", "random");
-            });
+            //iconPath = this.weepRobotData.Mode == "random" ? "FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png" : "FunctionIcon/Electrical/WeepRobot/FixedPointMode.png";
+            //menuContr.AddRowMenu(Language.StringByID(StringId.RandomClean), iconPath, this.weepRobotData.Mode == "random", () =>
+            //{
+            //    frameBack.Close();
+            //    //鍙戦�佹ā寮忓懡浠�
+            //    this.SendComand("mode", "random");
+            //});
 
             //铻烘棆娓呮壂
             iconPath = this.weepRobotData.Mode == "spiral" ? "FunctionIcon/Electrical/WeepRobot/AreaModeSelect.png" : "FunctionIcon/Electrical/WeepRobot/AreaMode.png";
@@ -520,13 +531,14 @@
                 this.btnModeIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/AutoModeSelect.png";
                 this.btnModeView.TextID = StringId.AutoClean;
             }
-            else if (this.weepRobotData.Mode == "smart")
-            {
-                //闅忔満娓呮壂
-                this.btnModeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/FixedPointMode.png";
-                this.btnModeIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png";
-                this.btnModeView.TextID = StringId.RandomClean;
-            }
+            //2021.03.09 鑸嶅純闅忔満娓呮壂
+            //else if (this.weepRobotData.Mode == "smart")
+            //{
+            //    //闅忔満娓呮壂
+            //    this.btnModeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/FixedPointMode.png";
+            //    this.btnModeIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png";
+            //    this.btnModeView.TextID = StringId.RandomClean;
+            //}
             else if (this.weepRobotData.Mode == "wall_follow")
             {
                 //娌垮娓呮壂
diff --git a/HDL_ON/UI/UI2/UserPage.cs b/HDL_ON/UI/UI2/UserPage.cs
index 51a7e42..4397173 100644
--- a/HDL_ON/UI/UI2/UserPage.cs
+++ b/HDL_ON/UI/UI2/UserPage.cs
@@ -86,14 +86,6 @@
         #endregion
         #endregion
 
-        /// <summary>
-        /// 褰撳墠鍔ㄧ敾鏁堟灉
-        /// 0:鏀惰棌
-        /// 1:鍒嗙被
-        /// 2:鏅鸿兘
-        /// 3:涓汉
-        /// </summary>
-        int CurAnimationEffect = 0;
 
         public void LoadPage()
         {
@@ -307,9 +299,9 @@
         /// <summary>
         /// 鍒囨崲鍒版敹钘忕晫闈�
         /// </summary>
-        void ChooseCollection(bool qiangzhishuaxin = false)
+        void ChooseCollection()
         {
-            if (CurAnimationEffect == 0 || qiangzhishuaxin)
+            if (MainPage.CurPageIndex == 0)
             {
                 return;
             }
@@ -337,10 +329,10 @@
             distance /= total;
             new System.Threading.Thread(() => {
                 int index = 0;
-                CurAnimationEffect = 0;
+                MainPage.CurPageIndex = 0;
                 while (index < total+1)
                 {
-                    if (CurAnimationEffect != 0)
+                    if (MainPage.CurPageIndex != 0)
                     {
                         break;
                     }
@@ -391,7 +383,7 @@
         /// </summary>
         void ChooseClassification()
         {
-            if (CurAnimationEffect == 1)
+            if (MainPage.CurPageIndex == 1)
             {
                 return;
             }
@@ -413,15 +405,15 @@
             distance /= total;
             new System.Threading.Thread(() =>
             {
-                if (CurAnimationEffect == 1)
+                if (MainPage.CurPageIndex == 1)
                 {
                     return;
                 }
-                CurAnimationEffect = 1;
+                MainPage.CurPageIndex = 1;
                 int index = 0;
                 while (index < total+1)
                 {
-                    if (CurAnimationEffect != 1)
+                    if (MainPage.CurPageIndex != 1)
                     {
                         break;
                     }
@@ -482,7 +474,7 @@
         /// </summary>
         void ChooseIntellectualization()
         {
-            if (CurAnimationEffect == 2)
+            if (MainPage.CurPageIndex == 2)
             {
                 return;
             }
@@ -503,15 +495,15 @@
             }
             distance /= total;
             new System.Threading.Thread(() => {
-                if (CurAnimationEffect == 2)
+                if (MainPage.CurPageIndex == 2)
                 {
                     return;
                 }
-                CurAnimationEffect = 2;
+                MainPage.CurPageIndex = 2;
                 int index = 0;
                 while (index < total+1)
                 {
-                    if(CurAnimationEffect!=2)
+                    if(MainPage.CurPageIndex!=2)
                     {
                         break;
                     }
@@ -579,7 +571,7 @@
                 return;
             }
 #endif
-            if (CurAnimationEffect == 3)
+            if (MainPage.CurPageIndex == 3)
             {
                 return;
             }
@@ -605,11 +597,11 @@
             }
             distance /= total;
             new System.Threading.Thread(() => {
-                CurAnimationEffect = 3;
+                MainPage.CurPageIndex = 3;
                 int index = 0;
                 while (index < total+1)
                 {
-                    if (CurAnimationEffect != 3)
+                    if (MainPage.CurPageIndex != 3)
                     {
                         break;
                     }
diff --git a/ys/Jars/app-release.aar b/ys/Jars/app-release.aar
index 3479f41..f612de8 100644
--- a/ys/Jars/app-release.aar
+++ b/ys/Jars/app-release.aar
Binary files differ

--
Gitblit v1.8.0