From 3c1b1c60276715dc75c27d31a14211ad2ccc82ab Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期四, 11 三月 2021 17:36:57 +0800
Subject: [PATCH] 20210311-

---
 HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs                                |   11 
 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_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png                       |    0 
 HDL-ON_iOS/HDL-ON_iOS.csproj                                                               |   83 ++++++
 HDL_ON/Common/ApiUtlis.cs                                                                  |   15 
 HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs                   |    1 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png |    0 
 HDL_ON/HDL_ON.projitems                                                                    |    1 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png              |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalfan.png                             |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortemperature.png                         |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png               |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorhumidity.png                            |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs                                    |    2 
 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/lightcct_blue.png                    |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.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/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs                                       |    2 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/airFreshstandard.png                          |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png                |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/acstandard.png                                |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainshades.png                             |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png              |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png              |    0 
 HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs                                               |    1 
 HDL-ON_iOS/Resources/Language.ini                                                          |    2 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgbw.png                                 |    0 
 HDL_ON/UI/UI1-Login/RegisterPageBLL.cs                                                     |    3 
 .vs/HDL_APP_Project/xs/UserPrefs.xml                                                       |   50 ++-
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png                |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png               |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/musicstandard.png                             |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irac.png                                      |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightcct.png                                  |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png                |    0 
 HDL_ON/Common/FileUtlis.cs                                                                 |    7 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_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/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png               |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/.DS_Store                               |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalsocket.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/HomeIcon/floorHeatstandard_blue.png           |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorsmoke.png                               |    0 
 HDL-ON_Android/Properties/AndroidManifest.xml                                              |    2 
 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_iOS/Info.plist                                                                      |    4 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png                    |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png                        |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irlearn.png                                   |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png                   |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png                   |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorgas.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/Entity/Function/Function.cs                                                         |   41 ++
 HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs                                      |  144 +++++-----
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irtv.png                                      |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png            |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.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_iOS/Resources/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png                |    0 
 HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs                                       |   98 +++++++
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png            |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpir.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_iOS/Resources/Phone/FunctionIcon/Icon/electricalracks.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_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/DAL/DriverLayer/A_Protocol_Common.cs                                                |   11 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortvoc.png                                |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png           |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtaintrietex.png                            |    0 
 HDL_ON/Common/Utlis.cs                                                                     |    1 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.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                                                                      |    2 
 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/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png  |    0 
 HDL_ON/Entity/FunctionList.cs                                                              |   12 
 HDL_ON/UI/UI2/4-PersonalCenter/ResetAccountPassword/ResetPasswordPage.cs                   |    2 
 HDL_ON/UI/UI2/FuntionControlView/Electrical/IrLearnPage.cs                                 |  146 +++++++++++
 HDL_ON/Common/R.cs                                                                         |    1 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png                       |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgb.png                                  |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensordoorwindow.png                          |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainroller.png                             |    0 
 109 files changed, 592 insertions(+), 163 deletions(-)

diff --git a/.vs/HDL_APP_Project/xs/UserPrefs.xml b/.vs/HDL_APP_Project/xs/UserPrefs.xml
index b55fae3..a5a3d1d 100644
--- a/.vs/HDL_APP_Project/xs/UserPrefs.xml
+++ b/.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,29 +1,51 @@
-锘�<Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default">
+锘�<Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default">
   <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008020-000404163432002E" />
-  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/Common/HDLCommon.cs">
+  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/1-HomePage/HomePage.cs">
     <Files>
+      <File FileName="HDL-ON_iOS/Resources/Language.ini" Line="1104" Column="8" />
+      <File FileName="HDL_ON/Common/R.cs" />
       <File FileName="HDL_ON/DAL/DriverLayer/Control_Udp.cs" />
-      <File FileName="HDL_ON/DAL/DriverLayer/A_Protocol_Common.cs" />
-      <File FileName="HDL_ON/DAL/Mqtt/MqttClient.cs" />
-      <File FileName="HDL-ON_iOS/Info.plist" />
-      <File FileName="HDL_ON/UI/MainPage.cs" />
-      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWaterValvePage.cs" Line="124" Column="46" />
-      <File FileName="HDL_ON/DAL/DriverLayer/Control.cs" Line="616" Column="84" />
       <File FileName="HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs" Line="331" Column="15" />
-      <File FileName="HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs" Line="758" Column="56" />
-      <File FileName="HDL_ON/Common/HDLCommon.cs" Line="500" Column="21" />
+      <File FileName="HDL_ON/DAL/Server/HttpServerRequest.cs" />
+      <File FileName="HDL_ON/DAL/Server/NewAPI.cs" />
+      <File FileName="HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs" Line="127" Column="67" />
+      <File FileName="HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs" Line="326" Column="36" />
+      <File FileName="HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs" Line="14" Column="78" />
+      <File FileName="HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs" Line="520" Column="18" />
+      <File FileName="HDL_ON/UI/UI2/1-HomePage/HomePage.cs" Line="891" Column="49" />
+      <File FileName="HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs" Line="174" Column="28" />
     </Files>
     <Pads>
       <Pad Id="ProjectPad">
         <State name="__root__">
           <Node name="HDL_APP_Project" expanded="True">
             <Node name="HDL_ON" expanded="True">
-              <Node name="Common" expanded="True">
-                <Node name="HDLCommon.cs" selected="True" />
+              <Node name="DAL" expanded="True">
+                <Node name="DriverLayer" expanded="True" />
+              </Node>
+              <Node name="Entity" expanded="True" />
+              <Node name="UI" expanded="True">
+                <Node name="UI0-Public" expanded="True" />
+                <Node name="UI2" expanded="True">
+                  <Node name="1-HomePage" expanded="True">
+                    <Node name="HomePage.cs" selected="True" />
+                  </Node>
+                  <Node name="2-Classification" expanded="True" />
+                  <Node name="FuntionControlView" expanded="True">
+                    <Node name="AC" expanded="True" />
+                    <Node name="Electrical" expanded="True" />
+                  </Node>
+                </Node>
               </Node>
             </Node>
             <Node name="HDL-ON_iOS" expanded="True">
-              <Node name="Resources" expanded="True" />
+              <Node name="Resources" expanded="True">
+                <Node name="Phone" expanded="True">
+                  <Node name="FunctionIcon" expanded="True">
+                    <Node name="Icon" expanded="True" />
+                  </Node>
+                </Node>
+              </Node>
             </Node>
           </Node>
         </State>
@@ -36,7 +58,7 @@
     <String>Shared.Droid.TouchID/Shared.Droid.TouchID.csproj</String>
     <String>Shared.IOS/Shared.IOS.csproj</String>
   </DisabledProjects>
-  <MonoDevelop.Ide.Workspace ActiveConfiguration="Release|iPhone" />
+  <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhone" />
   <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.SelectDevice" />
   <MonoDevelop.Ide.DebuggingService.Breakpoints>
     <BreakpointStore />
diff --git a/HDL-ON_Android/Properties/AndroidManifest.xml b/HDL-ON_Android/Properties/AndroidManifest.xml
index 5b70fc6..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="202103094" android:versionName="1.1.202103094" 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_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index 09c443f..bc1dcf8 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -444,6 +444,7 @@
         <Folder Include="Resources\Phone\FunctionIcon\Electrical\WaterValve\" />
         <Folder Include="Resources\Phone\FunctionIcon\ArmSensor\" />
         <Folder Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\" />
+        <Folder Include="Resources\Phone\FunctionIcon\Icon\" />
     </ItemGroup>
     <ItemGroup>
         <InterfaceDefinition Include="LaunchScreen.storyboard" />
@@ -1058,6 +1059,88 @@
       <BundleResource Include="Resources\Phone\PirIcon\next.png" />
       <BundleResource Include="Resources\Phone\LogicIcon\selected+.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\AC\More.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irtv.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\acstandard.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\airFreshstandard.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\curtainroller.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\curtainshades.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\curtainswitch.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\curtaintrietex.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalai6HtccKFIw3dxo3.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalfan.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalkoiGhMKwLf2ZP81g.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalQ1RsefNf91tIXyyQ.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalracks.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalsocket.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricaltv.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricaltyqborgovyzytytz.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\floorHeatstandard.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irac.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irlearn.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightcct.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightdimming.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightrgb.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightrgbw.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightswitch.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\musicstandard.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorco2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensordoorwindow.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorgas.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorhumidity.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorpir.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorpm25.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorsmoke.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensortemperature.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensortvoc.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorwater.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" />
     </ItemGroup>
     <ItemGroup>
       <ITunesArtwork Include="iTunesArtwork" />
diff --git a/HDL-ON_iOS/Info.plist b/HDL-ON_iOS/Info.plist
index d6026df..52e5b75 100644
--- a/HDL-ON_iOS/Info.plist
+++ b/HDL-ON_iOS/Info.plist
@@ -104,9 +104,9 @@
 	<key>UIStatusBarStyle</key>
 	<string>UIStatusBarStyleLightContent</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.1.202103093</string>
+	<string>1.1.202103101</string>
 	<key>CFBundleVersion</key>
-	<string>202103093</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 586106e..2bfdb9f 100644
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -417,6 +417,7 @@
 432=Other platform equipment is supported by third party service provider
 433=Water valve
 434=Time switch
+435=Remote control
 
 1002=Anion 
 	
@@ -1100,6 +1101,7 @@
 432=鍏朵粬骞冲彴璁惧鍧囩敱绗笁鏂规湇鍔″晢鎻愪緵鏀寔
 433=姘撮榾
 434=瀹氭椂寮�鍏�
+435=閬ユ帶鍣�
 
 
 1000=瀹ゅ唴婀垮害
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/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/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..ec46621 100644
--- a/HDL_ON/Common/FileUtlis.cs
+++ b/HDL_ON/Common/FileUtlis.cs
@@ -48,6 +48,10 @@
         {
             get
             {
+                if(DB_ResidenceData.Instance.CurrentRegion == 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/R.cs b/HDL_ON/Common/R.cs
index 1451136..b51f156 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -4,6 +4,7 @@
 {
     public static class StringId
     {
+        public const int RemoteControl = 435;
         public const int TimeSwitch = 434;
         public const int WaterValve = 433;
         public const int Use3tyBrandListTip = 432;
diff --git a/HDL_ON/Common/Utlis.cs b/HDL_ON/Common/Utlis.cs
index 7dfc9fe..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);
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/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 6bf5e6d..67707e3 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -140,8 +140,16 @@
             return true;
         }
 
-
-
+        /// <summary>
+        /// icon鏂囦欢鍚嶇О
+        /// </summary>
+        public string IconName
+        {
+            get
+            {
+                return spk.Replace(".","");
+            }
+        }
 
         /// <summary>
         /// 涓婁竴娆℃墦寮�鐨勪寒搴�
@@ -529,8 +537,6 @@
             var sendDataObj = new AlinkFunctionStatusObj();
             sendDataObj.id = Control.Ins.msg_id.ToString();
             sendDataObj.time_stamp = Utlis.GetTimestamp();
-
-
             var acd = new AlinkStatusData();
             acd.sid = sid;
             foreach (var dic in commandDictionary)
@@ -540,9 +546,7 @@
                 aca.value = dic.Value;
                 acd.status.Add(aca);
             }
-
             sendDataObj.objects.Add(acd);
-
             return sendDataObj;
         }
         /// <summary>
@@ -717,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鑷姞
@@ -818,6 +835,10 @@
         /// 鎵撳紑鐧昏(椋庢墖)
         /// </summary>
         public const string OpenLevel = "openLevel";
+        /// <summary>
+        /// 绾㈠鎸夐敭
+        /// </summary>
+        public const string Key = "key";
 
 
         #region tuya
@@ -1004,6 +1025,10 @@
         /// </summary>
         public const string ElectricTV = "electrical.tv";
         /// <summary>
+        /// 绾㈠銆佺數瑙�
+        /// </summary>
+        public const string IrTV = "ir.tv";
+        /// <summary>
         /// 瀹剁數銆侀鎵�
         /// </summary>
         public const string ElectricFan = "electrical.fan";
@@ -1035,6 +1060,10 @@
         /// 绾㈠绌鸿皟
         /// </summary>
         public const string IrAC = "ir.ac";
+        /// <summary>
+        /// 绾㈠閬ユ帶鍣�
+        /// </summary>
+        public const string IrLearn = "ir.learn";
 
 
         /// <summary>
diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index b4abf79..af63fec 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -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.IrTV
                 || 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.IrTV);
         }
         /// <summary>
         /// 瀹剁數鎻掑骇鍒楄〃
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index b88449d..90f455f 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -360,6 +360,7 @@
     <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" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="$(MSBuildThisFileDirectory)UI\" />
diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs
index b365695..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.0309";
+        public static string VersionString = "1.1.0310";
         ///// <summary>
         ///// 瀹㈡埛绔被鍨�
         ///// </summary>
diff --git a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
index 265dc13..b6a33b2 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.IrTV:
                         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/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/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/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/2-Classification/FunctionControlZone.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
index 9eaca20..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,60 +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:
-                            switch(function.spk)
-                            {
-                                case SPK.AcIr:
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon1.png";
-                                    LoadLastStatesButton();
-                                    break;
-                            }
+                            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/AddFunction/AddThirdPartyBrandListpage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs
index c66cb3f..9841ea0 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs
@@ -26,6 +26,7 @@
             {
                 Y = Application.GetRealHeight(64),
                 Height = Application.GetRealHeight(667 - 64),
+                VerticalScrollBarEnabled = false,
             };
             bodyView.AddChidren(contentView);
 
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs
index 5566021..23348f6 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs
@@ -22,9 +22,13 @@
 
             contentView = new FrameLayout()
             {
+                Y = Application.GetRealHeight(64),
                 Height = Application.GetRealHeight(603),
             };
-            AddChidren(contentView);
+            bodyView.AddChidren(contentView);
+
+
+            NotListTipView();
 
         }
 
@@ -78,10 +82,15 @@
                 Radius = (uint)Application.GetRealWidth(22),
                 BorderColor = 0x00000000,
                 BorderWidth = 0,
+                TextID = StringId.Add,
             };
             contentView.AddChidren(btnAdd);
 
 
+            btnAdd.MouseUpEventHandler = (sender, e) => {
+                Console.WriteLine("ddd");
+            };
+
 
 
         }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
index 15e23fb..f0731de 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
@@ -504,7 +504,7 @@
                     Width = Application.GetRealWidth(64 + 48),
                     Height = Application.GetRealWidth(64),
                 };
-                residenceInfoView.AddChidren(residenceAddFunctionView);
+                //residenceInfoView.AddChidren(residenceAddFunctionView);
                 btnResidenceAddFunctionIcon = new Button
                 {
                     Gravity = Gravity.CenterHorizontal,
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
index 961e9fe..0f99ead 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -260,7 +260,7 @@
         {
             EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
             {
-                var page = new BrandListPage();
+                var page = new AddThirdPartyBrandListpage(); //new BrandListPage();
                 MainPage.BasePageView.AddChidren(page);
                 page.LoadPage();
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
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 d202d33..4874520 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs
@@ -482,6 +482,104 @@
                 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++;
+            }
+
+
+
 
 
 
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..1c95f32
--- /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(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++;
+            }
+
+        }
+
+
+        #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
+
+    }
+}

--
Gitblit v1.8.0