From 6b7a07bcbe147be7ed64994c40bcc5b0a2042aae Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期一, 05 七月 2021 11:23:35 +0800
Subject: [PATCH] 代码合并-温居城

---
 HDL-ON_Android/Assets/Language.ini                                          |   27 
 HDL-ON_Android/libs/armeabi-v7a/libGMCrypto.so                              |    0 
 HDL-ON_iOS/HDL-ON_iOS.csproj                                                |    7 
 HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs           |  349 ++
 HDL_ON/Common/ApiUtlis.cs                                                   |   48 
 HDL_ON/DAL/Mqtt/MqttClient.cs                                               |    5 
 HDL_ON/HDL_ON.projitems                                                     |  521 ++-
 HDL-ON_Android/FengLinVideo/Form/MonitorFragment.cs                         |    2 
 HDL-ON_Android/libs/armeabi-v7a/libSoftAPConfig.so                          |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs                        |   12 
 HDL-ON_Android/HDL-ON_Android.csproj                                        |   16 
 HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs                                     |   37 
 HDL-ON_Android/Resources/values/strings.xml                                 |    2 
 HDL_ON/Common/HDLCommon.cs                                                  |   24 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs                      |   72 
 HDL-ON_Android/Resources/Resource.designer.cs                               | 2253 ++++++++--------
 HDL_ON/Common/OnAppConfig.cs                                                |    2 
 HDL-ON_Android/libs/armeabi-v7a/libjninetsdk.so                             |    0 
 HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs                    |    2 
 HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs                    |    2 
 HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs                     |  377 --
 HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs                  |  242 +
 HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs                     |  115 
 HDL_ON/Common/Constant.cs                                                   |    4 
 HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs                         |   60 
 HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs                            |    3 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SelectTypeView.cs         |    2 
 HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs                        |    6 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Time3.cs                            |   36 
 DLL/LC/IOS/Shared.IOS.LCVideoOnSDK.dll                                      |    0 
 HDL-ON_Android/LeChengVideo/Form/MonitorFragment.cs                         |  148 +
 HDL-ON_Android/Resources/values-zh/strings.xml                              |    2 
 HDL_ON/UI/UI0-Public/TopViewDiv.cs                                          |    2 
 HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs                      |  235 +
 HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs                          |   16 
 HDL_ON/Entity/Function/Function.cs                                          |   12 
 HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs                       |    1 
 HDL_ON/DAL/Server/HttpUtil.cs                                               |    4 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs                            |    8 
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/EditControl.cs                     |    4 
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs                         |    4 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs                             |   32 
 HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs                     |  317 ++
 HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs                                       |  363 ++
 HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs                      |    1 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TopView.cs                |   35 
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs                                        |   65 
 HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs              |  291 +
 HDL-ON_Android/libs/armeabi-v7a/libconfigsdk.so                             |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs                        |    6 
 HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs                   |    8 
 HDL-ON_Android/libs/armeabi-v7a/libLCOpenApiClient.so                       |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs                         |    6 
 HDL-ON_Android/LeChengVideoActivity.cs                                      |  304 ++
 HDL-ON_iOS/Resources/Language.ini                                           |   22 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Set.cs                              |    2 
 HDL-ON_Android/libs/armeabi-v7a/libSmartConfig.so                           |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/OutdoorEnvironment.cs               |   75 
 HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs                       |   38 
 .vs/HDL_APP_Project/xs/UserPrefs.xml                                        |   37 
 DLL/LC/Android/LC_SDK.dll                                                   |    0 
 HDL-ON_Android/Application.cs                                               |    6 
 HDL_ON/UI/UI2/3-Intelligence/Automation/AirQuality.cs                       |   14 
 HDL_ON/UI/UI2/3-Intelligence/Automation/WeatherCondition.cs                 |   36 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputTextView.cs |    1 
 HDL-ON_Android/libs/armeabi-v7a/libgnustl_shared.so                         |    0 
 HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout50.cs                |    6 
 HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs                       |   92 
 HDL-ON_Android/libs/armeabi-v7a/libLechangeSDK.so                           |    0 
 HDL_ON/Entity/FunctionList.cs                                               |   38 
 HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs              |   10 
 /dev/null                                                                   |  665 ----
 HDL-ON_Android/libs/armeabi-v7a/libnetsdk.so                                |    0 
 HDL_ON/DAL/Server/NewAPI.cs                                                 |   68 
 HDL_ON/UI/UI2/3-Intelligence/Automation/OnePortAutomation.cs                |    6 
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs              |    4 
 HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs                         |    7 
 HDL_ON/UI/UI2/UserPageBLL.cs                                                |    1 
 HDL_ON/Common/R.cs                                                          |  772 ++--
 HDL_ON/DAL/Server/HttpServerRequest.cs                                      |    2 
 HDL-ON_Android/Resources/layout/activity_video_phone.xml                    |    5 
 HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs                         |   22 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Weather.cs                          |    9 
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs                         |    6 
 HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout60.cs                |   11 
 85 files changed, 4,582 insertions(+), 3,463 deletions(-)

diff --git a/.vs/HDL_APP_Project/xs/UserPrefs.xml b/.vs/HDL_APP_Project/xs/UserPrefs.xml
index 39fadc2..d28de8c 100644
--- a/.vs/HDL_APP_Project/xs/UserPrefs.xml
+++ b/.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,6 +1,6 @@
-锘�<Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default">
+锘�<Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default">
   <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.6242be7109c740c6cb8999a8904b6e0ea8d45192" />
-  <MonoDevelop.Ide.Workbench>
+  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs">
     <Files>
       <File FileName="HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs" Line="15" Column="35" />
       <File FileName="HDL_ON/Common/HDLCommon.cs" />
@@ -10,28 +10,41 @@
       <File FileName="HDL_ON/UI/BindingResidence/BindingResidencePage.cs" />
       <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs" />
       <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPage.cs" />
+      <File FileName="HDL-ON_iOS/Resources/Language.ini" Line="1" Column="1" />
+      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs" Line="11" Column="27" />
+      <File FileName="HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs" Line="14" Column="78" />
+      <File FileName="HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs" Line="87" Column="59" />
+      <File FileName="HDL_ON/UI/UI2/1-HomePage/HomePage.cs" Line="946" Column="53" />
+      <File FileName="HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs" Line="406" Column="26" />
+      <File FileName="HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs" Line="148" Column="49" />
+      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs" Line="341" Column="13" />
+      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs" Line="309" Column="1" />
     </Files>
     <Pads>
       <Pad Id="ProjectPad">
         <State name="__root__">
           <Node name="HDL_APP_Project" expanded="True">
             <Node name="HDL_ON" expanded="True">
-              <Node name="DAL" expanded="True">
-                <Node name="Mqtt" expanded="True" />
+              <Node name="Entity" expanded="True">
+                <Node name="Function" expanded="True" />
               </Node>
-              <Node name="Entity" expanded="True" />
               <Node name="UI" expanded="True">
-                <Node name="BindingResidence" expanded="True" />
+                <Node name="UI0-Public" expanded="True" />
                 <Node name="UI2" expanded="True">
-                  <Node name="3-Intelligence" expanded="True">
-                    <Node name="Scene" expanded="True" />
+                  <Node name="1-HomePage" expanded="True" />
+                  <Node name="2-Classification" expanded="True" />
+                  <Node name="FuntionControlView" expanded="True">
+                    <Node name="Electrical" expanded="True">
+                      <Node name="PjtPage.cs" selected="True" />
+                    </Node>
                   </Node>
-                  <Node name="4-PersonalCenter" expanded="True" />
                 </Node>
               </Node>
             </Node>
-            <Node name="HDL-ON_Android" expanded="True" selected="True" />
-            <Node name="HDL-ON_iOS" expanded="True" />
+            <Node name="HDL-ON_Android" expanded="True" />
+            <Node name="HDL-ON_iOS" expanded="True">
+              <Node name="Resources" expanded="True" />
+            </Node>
           </Node>
         </State>
       </Pad>
@@ -43,7 +56,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/DLL/LC/Android/LC_SDK.dll b/DLL/LC/Android/LC_SDK.dll
new file mode 100644
index 0000000..5a649ed
--- /dev/null
+++ b/DLL/LC/Android/LC_SDK.dll
Binary files differ
diff --git a/DLL/LC/IOS/Shared.IOS.LCVideoOnSDK.dll b/DLL/LC/IOS/Shared.IOS.LCVideoOnSDK.dll
new file mode 100644
index 0000000..78a7649
--- /dev/null
+++ b/DLL/LC/IOS/Shared.IOS.LCVideoOnSDK.dll
Binary files differ
diff --git a/HDL-ON_Android/Application.cs b/HDL-ON_Android/Application.cs
index d9d098f..3d29968 100644
--- a/HDL-ON_Android/Application.cs
+++ b/HDL-ON_Android/Application.cs
@@ -228,9 +228,9 @@
         {
             //鎵嬫満鍚嶇О Android.OS.Build.Manufacturer;
             //OnAppConfig.Instance.PhoneName = Android.OS.Build.Manufacturer;
-#if DEBUG
-            CN.Jpush.Android.Api.JPushInterface.SetDebugMode(true);
-#endif
+//#if DEBUG
+            //CN.Jpush.Android.Api.JPushInterface.SetDebugMode(true);
+//#endif
             CN.Jpush.Android.Api.JPushInterface.Init(this);
 
         }
diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index 8e2b536..7ece7fc 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -328,7 +328,7 @@
 324=Scene delay
 325=Delay setting
 326=Delay
-327=Capture the scene
+327=Catch Scene
 328=Film scene
 329=General
 330=Automatic mode
@@ -790,7 +790,7 @@
 6081=Select IR brand
 6082=Shaking
 6083=Low speed
-6084=Medium speed
+6084=Wind Speed Switch 
 6085=High speed
 6086=Auto
 6087=Temperature+
@@ -831,6 +831,15 @@
 7133=Executed
 7134=Target State
 7135=Tumble
+7136=Temperature
+7137=Humidity
+7138=PM2.5
+7139=CO2
+7140=TVOC
+7141=Exceeding
+7142=Serious
+7143=High
+7144=excellence
  
  
 6000=Rename
@@ -1395,7 +1404,7 @@
 324=鍦烘櫙寤舵椂
 325=寤舵椂璁剧疆
 326=寤舵椂
-327=鎹曟崏鍦烘櫙
+327=鎹曡幏鍦烘櫙
 328=鐢靛奖鍦烘櫙
 329=鏅��
 330=鑷姩妯″紡
@@ -1857,7 +1866,7 @@
 6081=閫夋嫨绾㈠鍝佺墝
 6082=鎽囧ご
 6083=浣庨��
-6084=涓��
+6084=椋庨�熷垏鎹�
 6085=楂橀��
 6086=鑷姩
 6087=娓╁害+
@@ -2007,6 +2016,16 @@
 7133=宸叉墽琛�
 7134=鐩爣鐘舵��
 7135=璺屽��
+7136=娓╁害
+7137=婀垮害
+7138=PM2.5
+7139=CO2
+7140=TVOC
+7141=瓒呮爣
+7142=涓ラ噸
+7143=鍋忛珮
+7144=浼樼
+
  
 9000=璇蜂娇鐢ㄦ柊鐨勬墜鏈鸿处鍙风櫥褰旳PP
 9001=璇蜂娇鐢ㄦ柊鐨勯偖绠辫处鍙风櫥褰旳PP
diff --git a/HDL-ON_Android/FengLinVideo/Form/MonitorFragment.cs b/HDL-ON_Android/FengLinVideo/Form/MonitorFragment.cs
index e67d8e5..d93069d 100644
--- a/HDL-ON_Android/FengLinVideo/Form/MonitorFragment.cs
+++ b/HDL-ON_Android/FengLinVideo/Form/MonitorFragment.cs
@@ -80,7 +80,7 @@
                     unlockImag.Selected = true;
                     JSONObject ht = new JSONObject();
                     ht.Put("command", "open");//鍥哄畾鍙傛暟
-                    ht.Put("room_id", 123);
+                    ht.Put("room_id", VideoActivity.Roomno);
                     ht.Put("devType", 7);
                     mPhone.SendCustomData(ht.ToString());
                 }
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index 473becc..f3aab45 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -37,7 +37,6 @@
     <MandroidI18n>cjk</MandroidI18n>
     <AndroidDexTool>d8</AndroidDexTool>
     <AndroidEnableSGenConcurrent>false</AndroidEnableSGenConcurrent>
-    <AndroidLinkMode>None</AndroidLinkMode>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugSymbols>True</DebugSymbols>
@@ -156,6 +155,9 @@
     <Reference Include="ys">
       <HintPath>..\DLL\EZvizMonitor\ys.dll</HintPath>
     </Reference>
+    <Reference Include="LC_SDK">
+      <HintPath>..\DLL\LC\Android\LC_SDK.dll</HintPath>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
     <Compile Include="MainActivity.cs" />
@@ -173,6 +175,9 @@
     <Compile Include="FengLinVideo\Form\MonitorFragment.cs" />
     <Compile Include="FengLinVideo\Form\ReverseCallFragment.cs" />
     <Compile Include="FengLinVideo\widget\TipDiaglog.cs" />
+    <Compile Include="LeChengVideo\Form\MonitorFragment.cs" />
+    <Compile Include="LeChengVideo\Form\ReverseCallFragment.cs" />
+    <Compile Include="LeChengVideoActivity.cs" />
   </ItemGroup>
   <ItemGroup>
     <None Include="Resources\AboutResources.txt" />
@@ -1234,6 +1239,15 @@
   <ItemGroup>
     <AndroidNativeLibrary Include="libs\armeabi-v7a\libelianjni.so" />
     <AndroidNativeLibrary Include="libs\armeabi-v7a\libjcore127.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libconfigsdk.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libGMCrypto.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libgnustl_shared.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libjninetsdk.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libLCOpenApiClient.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libLechangeSDK.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libnetsdk.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libSmartConfig.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libSoftAPConfig.so" />
   </ItemGroup>
   <ItemGroup>
     <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\Connect.png" />
diff --git a/HDL-ON_Android/LeChengVideo/Form/MonitorFragment.cs b/HDL-ON_Android/LeChengVideo/Form/MonitorFragment.cs
new file mode 100644
index 0000000..23cefec
--- /dev/null
+++ b/HDL-ON_Android/LeChengVideo/Form/MonitorFragment.cs
@@ -0,0 +1,148 @@
+锘�
+using System.Threading;
+using Android.App;
+using Android.Icu.Text;
+using Android.OS;
+using Android.Views;
+using Android.Widget;
+using Java.Util;
+
+namespace HDL_ON_Android.LeChengView.Form
+{
+    public class MonitorFragment : Fragment, View.IOnClickListener
+    {
+
+        private View mView;
+
+        // 鎴浘
+        private LinearLayout screenshotLayout;
+        private ImageView screenImage;
+        private TextView ScreenText;
+
+        //寮�閿�
+        private LinearLayout unlockLayout;
+        private ImageView unlockImag;
+        private TextView unlockText;
+
+        // 鏇存柊绾跨▼
+        private Thread thread = null;
+
+        private LeChengVideoActivity CurtActivity;
+
+        public override void OnCreate(Bundle savedInstanceState)
+        {
+            base.OnCreate(savedInstanceState);
+
+            CurtActivity = (LeChengVideoActivity)this.Activity;
+        }
+
+        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+        {
+            mView = inflater.Inflate(Resource.Layout.fragment_monitor, container, false);
+
+            IniView();
+
+            CurtActivity.Play();
+            CurtActivity.OpenAudio();
+
+            return mView;
+        }
+
+        private void IniView()
+        {
+            screenshotLayout = (LinearLayout)mView.FindViewById(Resource.Id.icon_sceenshotLayout);
+            screenImage = (ImageView)mView.FindViewById(Resource.Id.icon_sceenshotImg);
+            ScreenText = (TextView)mView.FindViewById(Resource.Id.icon_sceenshotText);
+
+            unlockLayout = (LinearLayout)mView.FindViewById(Resource.Id.icon_unlockLayout);
+            unlockImag = (ImageView)mView.FindViewById(Resource.Id.icon_unlockImg);
+            unlockText = (TextView)mView.FindViewById(Resource.Id.icon_unlockText);
+
+            unlockLayout.SetOnClickListener(this);
+            screenshotLayout.SetOnClickListener(this);
+        }
+
+       
+
+        /// <summary>
+        /// 寮�閿�
+        /// </summary>
+        private void Unlock()
+        {
+            //
+        }
+
+        /// <summary>
+        /// 鏇存柊寮�閿佹寜閽姸鎬�
+        /// </summary>
+        private void UpdataUnlockState()
+        {
+            try
+            {
+                //寮�閿佹垚鍔燂紝15绉掑唴涓嶇粰鍐嶇偣鍑绘寜閽�
+                unlockLayout.Enabled = false;
+                if (thread != null)
+                {
+                    try
+                    {
+                        thread.Interrupt();
+                    }
+                    catch { }
+                    thread = null;
+                }
+
+                thread = new Thread(() =>
+                {
+                    try
+                    {
+                        Thread.Sleep(15 * 1000);
+
+                        Activity.RunOnUiThread(() =>
+                        {
+                            if (unlockLayout != null)
+                                unlockLayout.Enabled = true;
+                        });
+                    }
+                    catch { }
+                });
+
+                thread.Start();
+            }
+            catch { }
+        }
+
+        public void OnClick(View v)
+        {
+            //
+            if (v.Equals(unlockLayout))
+            {
+                //寮�閿�
+            }
+            else if (v.Equals(screenshotLayout))
+            {
+                //鏈夎棰戣繃鏉ュ彲璋冪敤姝ゆ帴鍙h繘琛屾媿鐓�
+                // 鍐呴儴鍌ㄥ瓨/DCIM/Camera/.....jpg
+                screenImage.Selected = true;
+                SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
+                string time = format.Format(new Date(SystemClock.CurrentThreadTimeMillis()));
+                string ss = Android.OS.Environment.ExternalStorageDirectory.Path + "/DCIM/Camera";
+                string path = ss + "/" + time + ".jpg";
+            }
+        }
+
+        public override void OnDestroy()
+        {
+            base.OnDestroy();
+
+            if (thread != null)
+            {
+                try
+                {
+                    thread.Interrupt();
+                }
+                catch { }
+                thread = null;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs b/HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs
new file mode 100644
index 0000000..84d67cf
--- /dev/null
+++ b/HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs
@@ -0,0 +1,317 @@
+锘�
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using Android.App;
+using Android.Icu.Text;
+using Android.OS;
+using Android.Runtime;
+using Android.Util;
+using Android.Views;
+using Android.Widget;
+using HDL_ON.Common;
+using HDL_ON.DAL.Server;
+using Java.Util;
+
+namespace HDL_ON_Android.LeChengView.Form
+{
+    public class ReverseCallFragment : Fragment, View.IOnClickListener
+    {
+
+        private View mView;
+
+        private ImageView screenshotImg;// 鎴浘
+        private ImageView unlockImg;// 寮�閿�
+        private LinearLayout answerLayout; // 鎺ュ惉
+        private ImageView hangupImg;// 鎸傛柇
+        private ImageView answerImg;// 鎺ュ惉
+        private TextView hangupText;
+
+        private TextView tvTip;
+
+        private System.Threading.Timer timer = null;
+        private int Time = 0;
+
+        private static LeChengVideoActivity CurtActivity;
+
+        public override void OnCreate(Bundle savedInstanceState)
+        {
+            base.OnCreate(savedInstanceState);
+
+            CurtActivity = (LeChengVideoActivity)this.Activity;
+        }
+
+        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+        {
+            mView = inflater.Inflate(Resource.Layout.fragment_call, container, false);
+
+            IniView();
+
+            CurtActivity.Play();
+
+            CurtActivity.CloseAudio();
+            
+            return mView;
+        }
+
+        private void IniView()
+        {
+            screenshotImg = (ImageView)mView.FindViewById(Resource.Id.callScreenshotImg);//
+            unlockImg = (ImageView)mView.FindViewById(Resource.Id.callUnlockImg);//
+            tvTip = (TextView)mView.FindViewById(Resource.Id.callTipText);
+            answerLayout = (LinearLayout)mView.FindViewById(Resource.Id.callAnswerLayout);
+            hangupImg = (ImageView)mView.FindViewById(Resource.Id.callHangupImg);
+            answerImg = (ImageView)mView.FindViewById(Resource.Id.callAnswerImg);
+            hangupText = (TextView)mView.FindViewById(Resource.Id.callHangupText);
+
+            screenshotImg.SetOnClickListener(this);
+            unlockImg.SetOnClickListener(this);
+            hangupImg.SetOnClickListener(this);
+            answerImg.SetOnClickListener(this);
+
+            hangupText.SetText(GetString(Resource.String.video_not_answer), null);
+            tvTip.SetText(GetString(Resource.String.calling), null);
+        }
+
+
+        /// <summary>
+        /// 寮�閿�
+        /// </summary>
+        private void PostUnlock()
+        {
+            //寮�閿侊紝褰撴敹鍒版潵鐢典俊鎭椂鍙繘琛屽紑閿佹搷浣�
+            new Thread(() =>
+            {
+                try
+                {
+                    Dictionary<string, object> d = new Dictionary<string, object>();
+                    d.Add("deviceId", CurtActivity.DeviceId);//璁惧id
+                    string jsonString = HttpUtil.GetSignRequestJson(d);
+
+                    string url = "/home-wisdom/platform/imou/openDoorbell";
+                    ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+                    Log.Info("LcVideo", "Post Unlock Response code=" + response.Code);
+                }
+                catch { }
+
+            }).Start();
+        }
+
+        /// <summary>
+        /// 鏇存柊寮�閿佹寜閽姸鎬�,寮�閿佹垚鍔燂紝15绉掑唴涓嶇粰鍐嶇偣鍑绘寜閽�
+        /// </summary>
+        private void UpdataUnlockState()
+        {
+            try
+            {
+                if (unlockImg == null) return;
+
+                unlockImg.Enabled = false;
+
+                new Thread(() =>
+                {
+                    Thread.Sleep(15 * 1000);
+                    Activity.RunOnUiThread(() =>
+                    {
+                        if (unlockImg != null)
+                            unlockImg.Enabled = true;
+                    });
+                }).Start();
+            }
+            catch { }
+        }
+
+        private string GetTime(int time)
+        {
+
+            int m = time / 60;
+            int s = time % 60;
+
+            return UnitFormat(m) + ":" + UnitFormat(s);
+
+        }
+
+        private static string UnitFormat(int i)
+        {
+            string retStr = null;
+            if (i >= 0 && i < 10)
+                retStr = "0" + i;
+            else
+                retStr = "" + i;
+            return retStr;
+        }
+
+        /// <summary>
+        /// 閫氳瘽璁板綍璁℃椂鍣紝浠庢媺娴佹垚鍔熷紑濮嬭绠楁椂闂�
+        /// </summary>
+        public void TimeStarts()
+        {
+            try
+            {
+                if (timer != null)
+                    timer.Dispose();
+
+                TimerCallback timerCallback = new TimerCallback(Tick);
+                timer = new System.Threading.Timer(timerCallback, null, 0, 1000);
+
+            }
+            catch (Exception) { }
+        }
+
+        public void TimeEnd()
+        {
+            Time = 0;
+
+            if (timer != null)
+            {
+                timer.Dispose();
+                timer = null;
+            }
+        }
+
+        public void Tick(object state)
+        {
+            try
+            {
+                Activity.RunOnUiThread(() =>
+                {
+                    try
+                    {
+                        Time++;
+                        if (tvTip != null)
+                            tvTip.SetText(GetTime(Time), null);
+                    }
+                    catch { }
+                });
+            }
+            catch { }
+        }
+
+        public void OnClick(View v)
+        {
+            if (v.Equals(answerImg))
+            {
+                //鎺ユ敹鏉ョ數
+                CurtActivity.StartTalk();
+                answerLayout.Visibility = ViewStates.Gone;
+                PostAnswer();
+            }
+            else if (v.Equals(hangupImg))
+            {
+                CurtActivity.StopTalk();
+                PostHangup();
+                TimeEnd();
+                Activity.Finish();
+            }
+            else if (v.Equals(screenshotImg))
+            {
+                //鏈夎棰戣繃鏉ュ彲璋冪敤姝ゆ帴鍙h繘琛屾媿鐓�
+            }
+            else if (v.Equals(unlockImg))
+            {
+                PostUnlock();
+            }
+        }
+
+        /// <summary>
+        /// post 鎴浘
+        /// </summary>
+        /// <param name="path">鎴浘淇濈暀鐨勮矾寰�</param>
+        private void PostScreenshot(string path)
+        {
+            new Thread(() =>
+            {
+                try
+                {
+                    string[] str = path.Split("/");
+                    string img_name = str.GetValue(str.Length - 1).ToString().Replace(".jpg", "");
+                    byte[] images = FileUtlis.Files.ReadFileForPath(path);
+                    Dictionary<string, object> d = new Dictionary<string, object>();
+                    d.Add("callId", VideoActivity.CallId);
+                    d.Add("images", images);
+                    d.Add("imagesName", img_name);
+                    string jsonString = HttpUtil.GetSignRequestJson(d);
+
+                    string url = "/home-wisdom/app/fl/vi/screenshot";
+                    ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+                    Log.Info("LcVideo", "Post Screenshot Response code=" + response.Code);
+                }
+                catch { }
+
+            }).Start();
+        }
+
+        /// <summary>
+        /// post 鎺ュ惉鐢佃瘽璁板綍
+        /// </summary>
+        public void PostAnswer()
+        {
+            new Thread(() =>
+            {
+                try
+                {
+                    Dictionary<string, object> d = new Dictionary<string, object>();
+                    d.Add("callId", CurtActivity.CallId);//鍛煎彨id
+                    d.Add("callStatus", "RECEIVED");//鍙敤鍊�:MISSED,RECEIVED,REJECT
+                    // d.Add("callDuration", Time);//閫氳瘽鏃堕暱锛堢锛�
+                    d.Add("interphoneTypeEnum", "IMOUVISIAL");//鍙敤鍊�:FLVI,IMOUVISIAL
+                    string jsonString = HttpUtil.GetSignRequestJson(d);
+
+                    string url = "/home-wisdom/platform/imou/updateCallStatus";
+                    ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+                    Log.Info("LcVideo", "Post Answer Response code=" + response.Code);
+                }
+                catch { }
+
+            }).Start();
+        }
+
+        /// <summary>
+        /// post 鎸傛柇鐢佃瘽璁板綍
+        /// </summary>
+        public void PostHangup()
+        {
+            new Thread(() =>
+            {
+                try
+                {
+                    Dictionary<string, object> d = new Dictionary<string, object>();
+                    d.Add("callId", CurtActivity.CallId);//鍛煎彨id
+                    //d.Add("callStatus", "REJECT");//鍙敤鍊�:MISSED,RECEIVED,REJECT
+                    d.Add("callDuration", Time);//閫氳瘽鏃堕暱锛堢锛�
+                    d.Add("interphoneTypeEnum", "IMOUVISIAL");//鍙敤鍊�:FLVI,IMOUVISIAL
+                    string jsonString = HttpUtil.GetSignRequestJson(d);
+
+                    string url = "/home-wisdom/platform/imou/updateCallStatus";
+                    ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+                    Log.Info("LcVideo", "Post Hangup Response code=" + response.Code);
+                }
+                catch { }
+
+            }).Start();
+        }
+
+        /// <summary>
+        /// post 鎷掓帴璁板綍,浠呭彧鏈夊湪姝e父鎸傛柇鐘舵�佷笅鎵嶆彁浜ら�氳瘽鏃堕棿
+        /// </summary>
+        public void PostReject()
+        {
+            new Thread(() =>
+            {
+                try
+                {
+                    Dictionary<string, object> d = new Dictionary<string, object>();
+                    d.Add("callId", CurtActivity.CallId);//鍛煎彨id
+                    d.Add("callStatus", "REJECT");//鍙敤鍊�:MISSED,RECEIVED,REJECT
+                    string jsonString = HttpUtil.GetSignRequestJson(d);
+
+                    string url = "/home-wisdom/platform/imou/updateCallStatus";
+                    ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+                    Log.Info("LcVideo", "Post Reject Response code=" + response.Code);
+                }
+                catch { }
+
+            }).Start();
+        }
+    }
+}
diff --git a/HDL-ON_Android/LeChengVideoActivity.cs b/HDL-ON_Android/LeChengVideoActivity.cs
new file mode 100644
index 0000000..9020958
--- /dev/null
+++ b/HDL-ON_Android/LeChengVideoActivity.cs
@@ -0,0 +1,304 @@
+锘�
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Android;
+using Android.App;
+using Android.Content;
+using Android.Content.PM;
+using Android.Graphics;
+using Android.OS;
+using Android.Runtime;
+using Android.Support.V4.App;
+using Android.Support.V4.Content;
+using Android.Util;
+using Android.Views;
+using Android.Widget;
+using Com.Lechange.Opensdk.Api;
+using Com.Lechange.Opensdk.Device;
+using Com.Lechange.Opensdk.Listener;
+using Com.Lechange.Opensdk.Media;
+using HDL_ON.DAL.Server;
+using HDL_ON_Android.LeChengView.Form;
+using Java.Lang;
+
+namespace HDL_ON_Android
+{
+    [Activity(Label = "LeChengVideoActivity", WindowSoftInputMode = SoftInput.AdjustResize, LaunchMode = LaunchMode.SingleInstance, ConfigurationChanges = (ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden | ConfigChanges.LayoutDirection | ConfigChanges.Locale | ConfigChanges.Orientation | ConfigChanges.ScreenSize), Theme = "@style/MyTheme1", ScreenOrientation = ScreenOrientation.Portrait)]
+    public class LeChengVideoActivity : Activity, View.IOnClickListener
+    {
+        private static LeChengVideoActivity CurtActivity;
+        //
+        private string URL = "openapi.easy4ip.com:443";
+        public string AccessToken = "";
+        public string DeviceId = "";
+        public string Psk = "";
+        public string PlayToken = "";//鎾斁playToken
+        public string CallId = "";//鍛煎彨Id
+        private int Type = 0;//0鐩戞帶锛�1瀵硅
+        /// <summary>
+        /// 0:鍥藉唴锛�1娴峰
+        /// </summary>
+        private int Location = 0;
+
+        private FrameLayout flWindow;
+        private FrameLayout flWindowContent;
+        private ImageView ivBack;
+        private TextView tvName;
+        private MonitorFragment monitorFragment = null;
+        private ReverseCallFragment reverseCallFragment = null;
+
+        public LCOpenSDK_PlayWindow mPlayWindow;
+
+        protected override void OnCreate(Bundle savedInstanceState)
+        {
+            base.OnCreate(savedInstanceState);
+
+            SetContentView(Resource.Layout.activity_video_phone);
+
+            CurtActivity = this;
+            AccessToken = Intent.GetStringExtra("AccessToken");//"St_0000d307a13c965c4db285469484490e"
+            DeviceId = Intent.GetStringExtra("DeviceId");//6K056CFAAJ8FFA1
+            Psk = Intent.GetStringExtra("Psk");//6K056CFAAJ8FFA1
+            PlayToken = Intent.GetStringExtra("PlayToken"); // 鎾斁playToken//"8a5e041afa674a2ba3e84d90a54ea962"
+            Type = Intent.GetIntExtra("Type", 0);//0鐩戞帶锛�1瀵硅//1
+            Location = Intent.GetIntExtra("Location", 0);//1
+            CallId = Intent.GetStringExtra("callId");//1384766990812426242
+
+            InitLCSDK();
+
+            IniView();
+
+            IniData();
+
+            Permissions();
+
+            if (Type == 0)
+            {
+                monitorFragment = new MonitorFragment();
+                FragmentManager.BeginTransaction().Replace(Resource.Id.content, monitorFragment).Commit();
+            }
+            else
+            {
+                reverseCallFragment = new ReverseCallFragment();
+                FragmentManager.BeginTransaction().Replace(Resource.Id.content, reverseCallFragment).Commit();
+            }
+        }
+
+        private void IniView()
+        {
+            //
+            flWindowContent = (FrameLayout)FindViewById(Resource.Id.remoteFrame);
+            flWindow = (FrameLayout)FindViewById(Resource.Id.live_window);
+
+            ivBack = (ImageView)FindViewById(Resource.Id.videoBackImg);
+            tvName = (TextView)FindViewById(Resource.Id.nameText);
+
+            tvName.SetText("DeviceName", null);
+            ivBack.SetOnClickListener(this);
+
+        }
+
+        private void IniData()
+        {
+            //
+            //SetStatusBarColor();// 杩欓噷璁捐鐨凾opBarColor鏄櫧鑹诧紝涓庣郴缁熷鑸爮瀛椾綋棰滆壊涓�鐩达紝鏆傛椂灞忚斀涓嶇敤
+
+            mPlayWindow = new LCOpenSDK_PlayWindow();
+            mPlayWindow.InitPlayWindow(this, flWindowContent, 0, true);
+
+            if (Location == 1)
+                URL = "openapi.easy4ip.com:443";
+        }
+
+        /// <summary>
+        ///  鍒濆鍖栦箰姗欏簱
+        /// </summary>
+        private void InitLCSDK()
+        {
+            InitParams initParams = new InitParams(this, URL, AccessToken);
+            LCOpenSDK_Api.InitOpenApi(initParams);
+        }
+
+        /// <summary>
+        /// 寮�濮嬫挱鏀撅紙棰勮锛�
+        /// </summary>
+        public void Play()
+        {
+            try
+            {
+                LCOpenSDK_ParamReal paramReal = new LCOpenSDK_ParamReal(AccessToken, DeviceId, 0, Psk, PlayToken, 1, false, true);
+                mPlayWindow.PlayRtspReal(paramReal);
+            }
+            catch (System.Exception e)
+            {
+                string sss = e.Message;
+            }
+        }
+
+        /// <summary>
+        /// 鍋滄棰勮锛堝仠姝㈡挱鏀剧敾闈級
+        /// </summary>
+        public void Stop()
+        {
+            mPlayWindow.StopRtspReal(true);//鍏抽棴瑙嗛
+        }
+
+        /// <summary>
+        /// 鎵撳紑瀵硅
+        /// </summary>
+        public void StartTalk()
+        {
+            CloseAudio();// 鍏抽棴Audio
+            LCOpenSDK_Talk.Listener = new AudioTalkerListener();//璁剧疆瀵硅鐩戝惉
+            // 瀵硅鍙傛暟
+            LCOpenSDK_ParamTalk paramTalk = new LCOpenSDK_ParamTalk(AccessToken, DeviceId, -1, Psk, PlayToken, true);
+            LCOpenSDK_Talk.PlayTalk(paramTalk);
+        }
+
+        /// <summary>
+        /// 鍏抽棴瀵硅
+        /// </summary>
+        public void StopTalk()
+        {
+            LCOpenSDK_Talk.StopTalk();
+            LCOpenSDK_Talk.Listener = null;
+        }
+
+        /// <summary>
+        /// 鎵撳紑澹伴煶锛堥瑙堢殑鏃跺�欏彲浠ュ惉鍒伴棬鍙f満浼犳潵鐨勫0闊筹級
+        /// </summary>
+        /// <returns></returns>
+        public bool OpenAudio()
+        {
+            return mPlayWindow.PlayAudio() == 0;
+        }
+
+        /// <summary>
+        /// 鍏抽棴澹伴煶锛堥瑙堢殑鏃跺�欏叧闂棬鍙f尋浼犳潵鐨勫0闊筹紝娉ㄦ剰锛氭墦寮�瀵硅鏃堕渶瑕佸厛璋冪敤姝ゆ柟娉曞叧闂0闊筹級
+        /// </summary>
+        /// <returns></returns>
+        public bool CloseAudio()
+        {
+            return mPlayWindow.StopAudio() == 0;
+        }
+
+        /// <summary>
+        /// 璁剧疆椤堕儴鐘舵�佹爮鑳屾櫙閫忔槑
+        /// </summary>
+        private void SetStatusBarColor()
+        {
+            Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds);
+            Window.SetStatusBarColor(Color.Transparent);
+        }
+
+        /// <summary>
+        /// 蹇呰鐨勪竴浜涙潈闄�
+        /// </summary>
+        private void Permissions()
+        {
+            string[] mPermissionList = new string[]
+            {
+                Manifest.Permission.WriteExternalStorage,
+                Manifest.Permission.ReadExternalStorage,
+                Manifest.Permission.Camera,
+                Manifest.Permission.RecordAudio
+            };
+
+            foreach (string permissions in mPermissionList)
+            {
+                if (ContextCompat.CheckSelfPermission(this, permissions) != 0)
+                {
+                    ActivityCompat.RequestPermissions(this, new string[] { permissions }, 1);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鐐瑰嚮浜嬩欢
+        /// </summary>
+        /// <param name="v"></param>
+        public void OnClick(View v)
+        {
+            if (v.Equals(ivBack))
+            {
+                this.Finish();
+            }
+        }
+
+        protected override void OnDestroy()
+        {
+            base.OnDestroy();
+
+            Stop();
+            mPlayWindow.UninitPlayWindow();//閿�姣佸簳灞傝祫婧�
+        }
+
+        /// <summary>
+        /// 瀵硅鐩戝惉
+        /// </summary>
+        class AudioTalkerListener : LCOpenSDK_TalkerListener
+        {
+            /// <summary>
+            /// 瀵硅缁撴灉鍥炶皟
+            /// </summary>
+            /// <param name="error"></param>
+            /// <param name="type"></param>
+            public override void OnTalkResult(string error, int type)
+            {
+                base.OnTalkResult(error, type);
+
+                try
+                {
+                    bool talkResult = false;
+                    if (type == 99 || error.Equals("-1000") || error.Equals("0") || error.Equals("1") || error.Equals("3"))
+                    {
+                        talkResult = false;
+                    }
+                    else if (error.Equals("4"))
+                    {
+                        talkResult = true;
+                    }
+
+                    if (!talkResult)
+                    {
+                        // 鎻愮ず瀵硅鎵撳紑澶辫触
+                        CurtActivity.StopTalk();
+                        CurtActivity.RunOnUiThread(() =>
+                        {
+                            Toast.MakeText(CurtActivity, Resource.String.talk_open_failed, ToastLength.Short).Show();
+                        });
+                    }
+                    else
+                    {
+                        CurtActivity.reverseCallFragment.PostAnswer();// post鎺ュ惉鐢佃瘽锛岀粰浜戠鍋氳褰�
+                        CurtActivity.reverseCallFragment.TimeStarts();//鎺ラ�氭垚鍔熸墦寮�璁℃椂鍣�
+                    }
+                }
+                catch { }
+            }
+
+            public override void OnTalkPlayReady()
+            {
+                base.OnTalkPlayReady();
+            }
+
+            public override void OnAudioReceive(byte[] bytes, int p1, int p2, int p3, int p4)
+            {
+                base.OnAudioReceive(bytes, p1, p2, p3, p4);
+            }
+
+            public override void OnAudioRecord(byte[] bytes, int p1, int p2, int p3, int p4)
+            {
+                base.OnAudioRecord(bytes, p1, p2, p3, p4);
+            }
+
+            public override void OnDataLength(int i)
+            {
+                base.OnDataLength(i);
+            }
+        }
+
+    }
+}
diff --git a/HDL-ON_Android/Resources/Resource.designer.cs b/HDL-ON_Android/Resources/Resource.designer.cs
index c504701..2bc20e9 100644
--- a/HDL-ON_Android/Resources/Resource.designer.cs
+++ b/HDL-ON_Android/Resources/Resource.designer.cs
@@ -7970,1384 +7970,1387 @@
 			public const int list_item = 2131296671;
 			
 			// aapt resource value: 0x7F0901A2
-			public const int llyCloundService = 2131296674;
+			public const int live_window = 2131296674;
 			
 			// aapt resource value: 0x7F0901A3
-			public const int llyStatus1 = 2131296675;
+			public const int llyCloundService = 2131296675;
 			
 			// aapt resource value: 0x7F0901A4
-			public const int llyStatus2 = 2131296676;
+			public const int llyStatus1 = 2131296676;
 			
 			// aapt resource value: 0x7F0901A5
-			public const int llyStatus3 = 2131296677;
+			public const int llyStatus2 = 2131296677;
 			
 			// aapt resource value: 0x7F0901A6
-			public const int loadingTextView = 2131296678;
+			public const int llyStatus3 = 2131296678;
 			
 			// aapt resource value: 0x7F0901A7
-			public const int loading_pb_ly = 2131296679;
+			public const int loadingTextView = 2131296679;
 			
 			// aapt resource value: 0x7F0901A8
-			public const int loading_play_btn = 2131296680;
+			public const int loading_pb_ly = 2131296680;
 			
 			// aapt resource value: 0x7F0901A9
-			public const int loading_text = 2131296681;
+			public const int loading_play_btn = 2131296681;
 			
 			// aapt resource value: 0x7F0901AA
-			public const int loading_view = 2131296682;
-			
-			// aapt resource value: 0x7F0901AC
-			public const int localDoorUnlock = 2131296684;
-			
-			// aapt resource value: 0x7F0901AD
-			public const int localVideo = 2131296685;
-			
-			// aapt resource value: 0x7F0901AE
-			public const int local_alarm1 = 2131296686;
-			
-			// aapt resource value: 0x7F0901AF
-			public const int local_alarm2 = 2131296687;
-			
-			// aapt resource value: 0x7F0901B0
-			public const int local_alarm3 = 2131296688;
-			
-			// aapt resource value: 0x7F0901B1
-			public const int local_l1 = 2131296689;
-			
-			// aapt resource value: 0x7F0901B2
-			public const int local_l2 = 2131296690;
-			
-			// aapt resource value: 0x7F0901B3
-			public const int local_l3 = 2131296691;
-			
-			// aapt resource value: 0x7F0901B4
-			public const int local_realplay_btn = 2131296692;
-			
-			// aapt resource value: 0x7F0901B5
-			public const int local_time_part1 = 2131296693;
-			
-			// aapt resource value: 0x7F0901B6
-			public const int local_time_part2 = 2131296694;
-			
-			// aapt resource value: 0x7F0901B7
-			public const int local_time_part3 = 2131296695;
+			public const int loading_text = 2131296682;
 			
 			// aapt resource value: 0x7F0901AB
-			public const int locaVideo = 2131296683;
+			public const int loading_view = 2131296683;
+			
+			// aapt resource value: 0x7F0901AD
+			public const int localDoorUnlock = 2131296685;
+			
+			// aapt resource value: 0x7F0901AE
+			public const int localVideo = 2131296686;
+			
+			// aapt resource value: 0x7F0901AF
+			public const int local_alarm1 = 2131296687;
+			
+			// aapt resource value: 0x7F0901B0
+			public const int local_alarm2 = 2131296688;
+			
+			// aapt resource value: 0x7F0901B1
+			public const int local_alarm3 = 2131296689;
+			
+			// aapt resource value: 0x7F0901B2
+			public const int local_l1 = 2131296690;
+			
+			// aapt resource value: 0x7F0901B3
+			public const int local_l2 = 2131296691;
+			
+			// aapt resource value: 0x7F0901B4
+			public const int local_l3 = 2131296692;
+			
+			// aapt resource value: 0x7F0901B5
+			public const int local_realplay_btn = 2131296693;
+			
+			// aapt resource value: 0x7F0901B6
+			public const int local_time_part1 = 2131296694;
+			
+			// aapt resource value: 0x7F0901B7
+			public const int local_time_part2 = 2131296695;
 			
 			// aapt resource value: 0x7F0901B8
-			public const int login_name = 2131296696;
+			public const int local_time_part3 = 2131296696;
+			
+			// aapt resource value: 0x7F0901AC
+			public const int locaVideo = 2131296684;
 			
 			// aapt resource value: 0x7F0901B9
-			public const int login_pwd = 2131296697;
+			public const int login_name = 2131296697;
 			
 			// aapt resource value: 0x7F0901BA
-			public const int longitude = 2131296698;
+			public const int login_pwd = 2131296698;
 			
 			// aapt resource value: 0x7F0901BB
-			public const int main_layout = 2131296699;
+			public const int longitude = 2131296699;
 			
 			// aapt resource value: 0x7F0901BC
-			public const int masked = 2131296700;
+			public const int main_layout = 2131296700;
+			
+			// aapt resource value: 0x7F0901BD
+			public const int masked = 2131296701;
 			
 			// aapt resource value: 0x7F090009
 			public const int MatchLayout = 2131296265;
 			
-			// aapt resource value: 0x7F0901BD
-			public const int matte_image = 2131296701;
-			
 			// aapt resource value: 0x7F0901BE
-			public const int media_actions = 2131296702;
+			public const int matte_image = 2131296702;
 			
 			// aapt resource value: 0x7F0901BF
-			public const int menu_layout = 2131296703;
+			public const int media_actions = 2131296703;
 			
 			// aapt resource value: 0x7F0901C0
-			public const int menu_play = 2131296704;
+			public const int menu_layout = 2131296704;
 			
 			// aapt resource value: 0x7F0901C1
-			public const int message = 2131296705;
+			public const int menu_play = 2131296705;
 			
 			// aapt resource value: 0x7F0901C2
-			public const int message1 = 2131296706;
+			public const int message = 2131296706;
 			
 			// aapt resource value: 0x7F0901C3
-			public const int message2 = 2131296707;
+			public const int message1 = 2131296707;
 			
 			// aapt resource value: 0x7F0901C4
-			public const int message_check = 2131296708;
+			public const int message2 = 2131296708;
 			
 			// aapt resource value: 0x7F0901C5
-			public const int message_content = 2131296709;
+			public const int message_check = 2131296709;
 			
 			// aapt resource value: 0x7F0901C6
-			public const int message_from = 2131296710;
+			public const int message_content = 2131296710;
 			
 			// aapt resource value: 0x7F0901C7
-			public const int message_from_tip = 2131296711;
+			public const int message_from = 2131296711;
 			
 			// aapt resource value: 0x7F0901C8
-			public const int message_image = 2131296712;
+			public const int message_from_tip = 2131296712;
 			
 			// aapt resource value: 0x7F0901C9
-			public const int message_image_layout = 2131296713;
+			public const int message_image = 2131296713;
 			
 			// aapt resource value: 0x7F0901CA
-			public const int message_image_progress = 2131296714;
+			public const int message_image_layout = 2131296714;
 			
 			// aapt resource value: 0x7F0901CB
-			public const int message_layout = 2131296715;
+			public const int message_image_progress = 2131296715;
 			
 			// aapt resource value: 0x7F0901CC
-			public const int message_list = 2131296716;
+			public const int message_layout = 2131296716;
 			
 			// aapt resource value: 0x7F0901CD
-			public const int message_num_tv = 2131296717;
+			public const int message_list = 2131296717;
 			
 			// aapt resource value: 0x7F0901CE
-			public const int message_play_layout = 2131296718;
+			public const int message_num_tv = 2131296718;
 			
 			// aapt resource value: 0x7F0901CF
-			public const int message_time = 2131296719;
+			public const int message_play_layout = 2131296719;
 			
 			// aapt resource value: 0x7F0901D0
-			public const int message_type = 2131296720;
+			public const int message_time = 2131296720;
 			
 			// aapt resource value: 0x7F0901D1
-			public const int message_unread = 2131296721;
+			public const int message_type = 2131296721;
 			
 			// aapt resource value: 0x7F0901D2
-			public const int message_video_layout = 2131296722;
+			public const int message_unread = 2131296722;
+			
+			// aapt resource value: 0x7F0901D3
+			public const int message_video_layout = 2131296723;
 			
 			// aapt resource value: 0x7F090008
 			public const int META = 2131296264;
 			
-			// aapt resource value: 0x7F0901D4
-			public const int middle = 2131296724;
-			
-			// aapt resource value: 0x7F0901D3
-			public const int mid_vertical_view = 2131296723;
-			
 			// aapt resource value: 0x7F0901D5
-			public const int min = 2131296725;
+			public const int middle = 2131296725;
+			
+			// aapt resource value: 0x7F0901D4
+			public const int mid_vertical_view = 2131296724;
 			
 			// aapt resource value: 0x7F0901D6
-			public const int mini = 2131296726;
+			public const int min = 2131296726;
 			
 			// aapt resource value: 0x7F0901D7
-			public const int mirror_line = 2131296727;
+			public const int mini = 2131296727;
 			
 			// aapt resource value: 0x7F0901D8
-			public const int modify_password_layout = 2131296728;
+			public const int mirror_line = 2131296728;
 			
 			// aapt resource value: 0x7F0901D9
-			public const int monitor = 2131296729;
+			public const int modify_password_layout = 2131296729;
 			
 			// aapt resource value: 0x7F0901DA
-			public const int month = 2131296730;
+			public const int monitor = 2131296730;
 			
 			// aapt resource value: 0x7F0901DB
-			public const int more_btn = 2131296731;
+			public const int month = 2131296731;
 			
 			// aapt resource value: 0x7F0901DC
-			public const int multiply = 2131296732;
+			public const int more_btn = 2131296732;
 			
 			// aapt resource value: 0x7F0901DD
-			public const int myRelativeLayout = 2131296733;
+			public const int multiply = 2131296733;
 			
 			// aapt resource value: 0x7F0901DE
-			public const int myRetry = 2131296734;
+			public const int myRelativeLayout = 2131296734;
 			
 			// aapt resource value: 0x7F0901DF
-			public const int nameText = 2131296735;
+			public const int myRetry = 2131296735;
 			
 			// aapt resource value: 0x7F0901E0
-			public const int name_del = 2131296736;
+			public const int nameText = 2131296736;
 			
 			// aapt resource value: 0x7F0901E1
-			public const int name_text = 2131296737;
+			public const int name_del = 2131296737;
 			
 			// aapt resource value: 0x7F0901E2
-			public const int name_tv = 2131296738;
+			public const int name_text = 2131296738;
 			
 			// aapt resource value: 0x7F0901E3
-			public const int navigation_header_container = 2131296739;
+			public const int name_tv = 2131296739;
 			
 			// aapt resource value: 0x7F0901E4
-			public const int never = 2131296740;
+			public const int navigation_header_container = 2131296740;
 			
 			// aapt resource value: 0x7F0901E5
-			public const int new_password = 2131296741;
+			public const int never = 2131296741;
 			
 			// aapt resource value: 0x7F0901E6
-			public const int next_play_btn = 2131296742;
-			
-			// aapt resource value: 0x7F0901EE
-			public const int none = 2131296750;
-			
-			// aapt resource value: 0x7F0901EF
-			public const int normal = 2131296751;
+			public const int new_password = 2131296742;
 			
 			// aapt resource value: 0x7F0901E7
-			public const int noText = 2131296743;
+			public const int next_play_btn = 2131296743;
+			
+			// aapt resource value: 0x7F0901EF
+			public const int none = 2131296751;
 			
 			// aapt resource value: 0x7F0901F0
-			public const int notification_background = 2131296752;
-			
-			// aapt resource value: 0x7F0901F1
-			public const int notification_main_column = 2131296753;
-			
-			// aapt resource value: 0x7F0901F2
-			public const int notification_main_column_container = 2131296754;
-			
-			// aapt resource value: 0x7F0901F3
-			public const int novideo_img = 2131296755;
-			
-			// aapt resource value: 0x7F0901F4
-			public const int novideo_img_device = 2131296756;
+			public const int normal = 2131296752;
 			
 			// aapt resource value: 0x7F0901E8
-			public const int no_camera_tip_ly = 2131296744;
+			public const int noText = 2131296744;
 			
-			// aapt resource value: 0x7F0901E9
-			public const int no_message_button = 2131296745;
+			// aapt resource value: 0x7F0901F1
+			public const int notification_background = 2131296753;
 			
-			// aapt resource value: 0x7F0901EA
-			public const int no_message_layout = 2131296746;
+			// aapt resource value: 0x7F0901F2
+			public const int notification_main_column = 2131296754;
 			
-			// aapt resource value: 0x7F0901EB
-			public const int no_message_text = 2131296747;
+			// aapt resource value: 0x7F0901F3
+			public const int notification_main_column_container = 2131296755;
 			
-			// aapt resource value: 0x7F0901EC
-			public const int no_more_hint = 2131296748;
-			
-			// aapt resource value: 0x7F0901ED
-			public const int no_more_text = 2131296749;
+			// aapt resource value: 0x7F0901F4
+			public const int novideo_img = 2131296756;
 			
 			// aapt resource value: 0x7F0901F5
-			public const int offline_bg = 2131296757;
+			public const int novideo_img_device = 2131296757;
+			
+			// aapt resource value: 0x7F0901E9
+			public const int no_camera_tip_ly = 2131296745;
+			
+			// aapt resource value: 0x7F0901EA
+			public const int no_message_button = 2131296746;
+			
+			// aapt resource value: 0x7F0901EB
+			public const int no_message_layout = 2131296747;
+			
+			// aapt resource value: 0x7F0901EC
+			public const int no_message_text = 2131296748;
+			
+			// aapt resource value: 0x7F0901ED
+			public const int no_more_hint = 2131296749;
+			
+			// aapt resource value: 0x7F0901EE
+			public const int no_more_text = 2131296750;
 			
 			// aapt resource value: 0x7F0901F6
-			public const int ok_tv = 2131296758;
+			public const int offline_bg = 2131296758;
 			
 			// aapt resource value: 0x7F0901F7
-			public const int options1 = 2131296759;
+			public const int ok_tv = 2131296759;
 			
 			// aapt resource value: 0x7F0901F8
-			public const int options2 = 2131296760;
+			public const int options1 = 2131296760;
 			
 			// aapt resource value: 0x7F0901F9
-			public const int options3 = 2131296761;
+			public const int options2 = 2131296761;
 			
 			// aapt resource value: 0x7F0901FA
-			public const int optionspicker = 2131296762;
+			public const int options3 = 2131296762;
 			
 			// aapt resource value: 0x7F0901FB
-			public const int outmost_container = 2131296763;
+			public const int optionspicker = 2131296763;
 			
 			// aapt resource value: 0x7F0901FC
-			public const int packed = 2131296764;
-			
-			// aapt resource value: 0x7F0901FE
-			public const int pager = 2131296766;
-			
-			// aapt resource value: 0x7F0901FF
-			public const int pager_tab_strip = 2131296767;
+			public const int outmost_container = 2131296764;
 			
 			// aapt resource value: 0x7F0901FD
-			public const int page_container = 2131296765;
+			public const int packed = 2131296765;
+			
+			// aapt resource value: 0x7F0901FF
+			public const int pager = 2131296767;
 			
 			// aapt resource value: 0x7F090200
-			public const int parallax = 2131296768;
+			public const int pager_tab_strip = 2131296768;
+			
+			// aapt resource value: 0x7F0901FE
+			public const int page_container = 2131296766;
 			
 			// aapt resource value: 0x7F090201
-			public const int parent = 2131296769;
+			public const int parallax = 2131296769;
 			
 			// aapt resource value: 0x7F090202
-			public const int parentPanel = 2131296770;
+			public const int parent = 2131296770;
 			
 			// aapt resource value: 0x7F090203
-			public const int parent_matrix = 2131296771;
+			public const int parentPanel = 2131296771;
 			
 			// aapt resource value: 0x7F090204
-			public const int passwordETV = 2131296772;
+			public const int parent_matrix = 2131296772;
 			
 			// aapt resource value: 0x7F090205
-			public const int pb_notlist_title_bar_landscape = 2131296773;
+			public const int passwordETV = 2131296773;
 			
 			// aapt resource value: 0x7F090206
-			public const int pb_play_loading = 2131296774;
+			public const int pb_notlist_title_bar_landscape = 2131296774;
 			
 			// aapt resource value: 0x7F090207
-			public const int pb_search_content_tab = 2131296775;
+			public const int pb_play_loading = 2131296775;
 			
 			// aapt resource value: 0x7F090208
-			public const int pb_search_tab_btn_cloud = 2131296776;
+			public const int pb_search_content_tab = 2131296776;
 			
 			// aapt resource value: 0x7F090209
-			public const int pb_search_tab_btn_device = 2131296777;
+			public const int pb_search_tab_btn_cloud = 2131296777;
 			
 			// aapt resource value: 0x7F09020A
-			public const int pb_title_bar_landscape = 2131296778;
+			public const int pb_search_tab_btn_device = 2131296778;
 			
 			// aapt resource value: 0x7F09020B
-			public const int peerAddress = 2131296779;
+			public const int pb_title_bar_landscape = 2131296779;
 			
 			// aapt resource value: 0x7F09020C
-			public const int percent = 2131296780;
+			public const int peerAddress = 2131296780;
 			
 			// aapt resource value: 0x7F09020D
-			public const int phone_et = 2131296781;
+			public const int percent = 2131296781;
 			
 			// aapt resource value: 0x7F09020E
-			public const int phone_ly = 2131296782;
+			public const int phone_et = 2131296782;
 			
 			// aapt resource value: 0x7F09020F
-			public const int phone_lyt = 2131296783;
+			public const int phone_ly = 2131296783;
 			
 			// aapt resource value: 0x7F090210
-			public const int pin = 2131296784;
-			
-			// aapt resource value: 0x7F090212
-			public const int platform_login_btn = 2131296786;
+			public const int phone_lyt = 2131296784;
 			
 			// aapt resource value: 0x7F090211
-			public const int plat_tv = 2131296785;
+			public const int pin = 2131296785;
 			
 			// aapt resource value: 0x7F090213
-			public const int play_video_layout = 2131296787;
+			public const int platform_login_btn = 2131296787;
+			
+			// aapt resource value: 0x7F090212
+			public const int plat_tv = 2131296786;
 			
 			// aapt resource value: 0x7F090214
-			public const int preview_view = 2131296788;
-			
-			// aapt resource value: 0x7F090219
-			public const int progressbar = 2131296793;
+			public const int play_video_layout = 2131296788;
 			
 			// aapt resource value: 0x7F090215
-			public const int progress_area = 2131296789;
-			
-			// aapt resource value: 0x7F090216
-			public const int progress_circular = 2131296790;
-			
-			// aapt resource value: 0x7F090217
-			public const int progress_horizontal = 2131296791;
-			
-			// aapt resource value: 0x7F090218
-			public const int progress_seekbar = 2131296792;
+			public const int preview_view = 2131296789;
 			
 			// aapt resource value: 0x7F09021A
-			public const int ptz_bottom_btn = 2131296794;
+			public const int progressbar = 2131296794;
+			
+			// aapt resource value: 0x7F090216
+			public const int progress_area = 2131296790;
+			
+			// aapt resource value: 0x7F090217
+			public const int progress_circular = 2131296791;
+			
+			// aapt resource value: 0x7F090218
+			public const int progress_horizontal = 2131296792;
+			
+			// aapt resource value: 0x7F090219
+			public const int progress_seekbar = 2131296793;
 			
 			// aapt resource value: 0x7F09021B
-			public const int ptz_close_btn = 2131296795;
+			public const int ptz_bottom_btn = 2131296795;
 			
 			// aapt resource value: 0x7F09021C
-			public const int ptz_control_ly = 2131296796;
+			public const int ptz_close_btn = 2131296796;
 			
 			// aapt resource value: 0x7F09021D
-			public const int ptz_flip_btn = 2131296797;
+			public const int ptz_control_ly = 2131296797;
 			
 			// aapt resource value: 0x7F09021E
-			public const int ptz_left_btn = 2131296798;
+			public const int ptz_flip_btn = 2131296798;
 			
 			// aapt resource value: 0x7F09021F
-			public const int ptz_right_btn = 2131296799;
+			public const int ptz_left_btn = 2131296799;
 			
 			// aapt resource value: 0x7F090220
-			public const int ptz_top_btn = 2131296800;
+			public const int ptz_right_btn = 2131296800;
 			
 			// aapt resource value: 0x7F090221
-			public const int quality_balanced_btn = 2131296801;
+			public const int ptz_top_btn = 2131296801;
 			
 			// aapt resource value: 0x7F090222
-			public const int quality_close_btn = 2131296802;
+			public const int quality_balanced_btn = 2131296802;
 			
 			// aapt resource value: 0x7F090223
-			public const int quality_flunet_btn = 2131296803;
+			public const int quality_close_btn = 2131296803;
 			
 			// aapt resource value: 0x7F090224
-			public const int quality_hd_btn = 2131296804;
+			public const int quality_flunet_btn = 2131296804;
 			
 			// aapt resource value: 0x7F090225
-			public const int quality_line = 2131296805;
+			public const int quality_hd_btn = 2131296805;
 			
 			// aapt resource value: 0x7F090226
-			public const int quality_super_hd_btn = 2131296806;
-			
-			// aapt resource value: 0x7F090228
-			public const int queryingCameraRyt = 2131296808;
-			
-			// aapt resource value: 0x7F090229
-			public const int querying_camera_tv = 2131296809;
+			public const int quality_line = 2131296806;
 			
 			// aapt resource value: 0x7F090227
-			public const int query_exception_ly = 2131296807;
+			public const int quality_super_hd_btn = 2131296807;
+			
+			// aapt resource value: 0x7F090229
+			public const int queryingCameraRyt = 2131296809;
 			
 			// aapt resource value: 0x7F09022A
-			public const int quit = 2131296810;
+			public const int querying_camera_tv = 2131296810;
+			
+			// aapt resource value: 0x7F090228
+			public const int query_exception_ly = 2131296808;
 			
 			// aapt resource value: 0x7F09022B
-			public const int radio = 2131296811;
+			public const int quit = 2131296811;
 			
 			// aapt resource value: 0x7F09022C
-			public const int range = 2131296812;
+			public const int radio = 2131296812;
 			
 			// aapt resource value: 0x7F09022D
-			public const int rangeSort = 2131296813;
+			public const int range = 2131296813;
 			
 			// aapt resource value: 0x7F09022E
-			public const int rate_16x = 2131296814;
+			public const int rangeSort = 2131296814;
 			
 			// aapt resource value: 0x7F09022F
-			public const int rate_1x = 2131296815;
+			public const int rate_16x = 2131296815;
 			
 			// aapt resource value: 0x7F090230
-			public const int rate_4x = 2131296816;
+			public const int rate_1x = 2131296816;
 			
 			// aapt resource value: 0x7F090231
-			public const int rate_8x = 2131296817;
-			
-			// aapt resource value: 0x7F090233
-			public const int read_button = 2131296819;
-			
-			// aapt resource value: 0x7F090234
-			public const int realplay_area = 2131296820;
-			
-			// aapt resource value: 0x7F090235
-			public const int realplay_back_btn = 2131296821;
-			
-			// aapt resource value: 0x7F090236
-			public const int realplay_capture_iv = 2131296822;
-			
-			// aapt resource value: 0x7F090237
-			public const int realplay_capture_rl = 2131296823;
-			
-			// aapt resource value: 0x7F090238
-			public const int realplay_capture_watermark_iv = 2131296824;
-			
-			// aapt resource value: 0x7F090239
-			public const int realplay_control_bar = 2131296825;
-			
-			// aapt resource value: 0x7F09023A
-			public const int realplay_control_rl = 2131296826;
-			
-			// aapt resource value: 0x7F09023B
-			public const int realplay_display_view = 2131296827;
-			
-			// aapt resource value: 0x7F09023C
-			public const int realplay_flow_tv = 2131296828;
-			
-			// aapt resource value: 0x7F09023D
-			public const int realplay_full_anim_btn = 2131296829;
-			
-			// aapt resource value: 0x7F09023E
-			public const int realplay_full_flow_ly = 2131296830;
-			
-			// aapt resource value: 0x7F09023F
-			public const int realplay_full_flow_tv = 2131296831;
-			
-			// aapt resource value: 0x7F090240
-			public const int realplay_full_operate_bar = 2131296832;
-			
-			// aapt resource value: 0x7F090241
-			public const int realplay_full_operate_layout = 2131296833;
-			
-			// aapt resource value: 0x7F090242
-			public const int realplay_full_play_btn = 2131296834;
-			
-			// aapt resource value: 0x7F090243
-			public const int realplay_full_previously_btn = 2131296835;
-			
-			// aapt resource value: 0x7F090244
-			public const int realplay_full_ptz_anim_btn = 2131296836;
-			
-			// aapt resource value: 0x7F090245
-			public const int realplay_full_ptz_btn = 2131296837;
-			
-			// aapt resource value: 0x7F090246
-			public const int realplay_full_ptz_prompt_iv = 2131296838;
-			
-			// aapt resource value: 0x7F090247
-			public const int realplay_full_rate_tv = 2131296839;
-			
-			// aapt resource value: 0x7F090248
-			public const int realplay_full_sound_btn = 2131296840;
-			
-			// aapt resource value: 0x7F090249
-			public const int realplay_full_talk_anim_btn = 2131296841;
-			
-			// aapt resource value: 0x7F09024A
-			public const int realplay_full_talk_btn = 2131296842;
-			
-			// aapt resource value: 0x7F09024B
-			public const int realplay_full_video_btn = 2131296843;
-			
-			// aapt resource value: 0x7F09024C
-			public const int realplay_full_video_container = 2131296844;
-			
-			// aapt resource value: 0x7F09024D
-			public const int realplay_full_video_start_btn = 2131296845;
-			
-			// aapt resource value: 0x7F09024E
-			public const int realplay_loading = 2131296846;
-			
-			// aapt resource value: 0x7F09024F
-			public const int realplay_loading_rl = 2131296847;
-			
-			// aapt resource value: 0x7F090250
-			public const int realplay_operate_bar = 2131296848;
-			
-			// aapt resource value: 0x7F090251
-			public const int realplay_operate_bar2 = 2131296849;
-			
-			// aapt resource value: 0x7F090252
-			public const int realplay_operate_ly = 2131296850;
-			
-			// aapt resource value: 0x7F090253
-			public const int realplay_operate_ly2 = 2131296851;
-			
-			// aapt resource value: 0x7F090256
-			public const int realplay_pages_gallery = 2131296854;
-			
-			// aapt resource value: 0x7F090254
-			public const int realplay_page_anim_iv = 2131296852;
-			
-			// aapt resource value: 0x7F090255
-			public const int realplay_page_ly = 2131296853;
-			
-			// aapt resource value: 0x7F090257
-			public const int realplay_play_btn = 2131296855;
-			
-			// aapt resource value: 0x7F090258
-			public const int realplay_play_iv = 2131296856;
-			
-			// aapt resource value: 0x7F090259
-			public const int realplay_play_rl = 2131296857;
-			
-			// aapt resource value: 0x7F09025A
-			public const int realplay_previously_btn = 2131296858;
-			
-			// aapt resource value: 0x7F09025B
-			public const int realplay_previously_btn2 = 2131296859;
-			
-			// aapt resource value: 0x7F09025C
-			public const int realplay_previously_btn_ly = 2131296860;
-			
-			// aapt resource value: 0x7F09025D
-			public const int realplay_previously_btn_ly2 = 2131296861;
-			
-			// aapt resource value: 0x7F09025E
-			public const int realplay_privacy_btn = 2131296862;
-			
-			// aapt resource value: 0x7F09025F
-			public const int realplay_privacy_btn2 = 2131296863;
-			
-			// aapt resource value: 0x7F090260
-			public const int realplay_privacy_btn_ly = 2131296864;
-			
-			// aapt resource value: 0x7F090261
-			public const int realplay_privacy_btn_ly2 = 2131296865;
-			
-			// aapt resource value: 0x7F090262
-			public const int realplay_privacy_ly = 2131296866;
-			
-			// aapt resource value: 0x7F090263
-			public const int realplay_privacy_tv = 2131296867;
-			
-			// aapt resource value: 0x7F090264
-			public const int realplay_privacy_tv2 = 2131296868;
-			
-			// aapt resource value: 0x7F090265
-			public const int realplay_prompt_rl = 2131296869;
-			
-			// aapt resource value: 0x7F090266
-			public const int realplay_ptz_btn = 2131296870;
-			
-			// aapt resource value: 0x7F090267
-			public const int realplay_ptz_btn2 = 2131296871;
-			
-			// aapt resource value: 0x7F090268
-			public const int realplay_ptz_btn_ly = 2131296872;
-			
-			// aapt resource value: 0x7F090269
-			public const int realplay_ptz_btn_ly2 = 2131296873;
-			
-			// aapt resource value: 0x7F09026A
-			public const int realplay_ptz_direction_iv = 2131296874;
-			
-			// aapt resource value: 0x7F09026B
-			public const int realplay_quality_btn = 2131296875;
-			
-			// aapt resource value: 0x7F09026C
-			public const int realplay_ratio_tv = 2131296876;
-			
-			// aapt resource value: 0x7F09026D
-			public const int realplay_record_iv = 2131296877;
-			
-			// aapt resource value: 0x7F09026E
-			public const int realplay_record_ly = 2131296878;
-			
-			// aapt resource value: 0x7F09026F
-			public const int realplay_record_tv = 2131296879;
-			
-			// aapt resource value: 0x7F090270
-			public const int realplay_sound_btn = 2131296880;
-			
-			// aapt resource value: 0x7F090271
-			public const int realplay_ssl_btn = 2131296881;
-			
-			// aapt resource value: 0x7F090272
-			public const int realplay_ssl_btn2 = 2131296882;
-			
-			// aapt resource value: 0x7F090273
-			public const int realplay_ssl_btn_ly = 2131296883;
-			
-			// aapt resource value: 0x7F090274
-			public const int realplay_ssl_btn_ly2 = 2131296884;
-			
-			// aapt resource value: 0x7F090275
-			public const int realplay_ssl_btn_rl = 2131296885;
-			
-			// aapt resource value: 0x7F090276
-			public const int realplay_ssl_btn_rl2 = 2131296886;
-			
-			// aapt resource value: 0x7F090277
-			public const int realplay_ssl_progress = 2131296887;
-			
-			// aapt resource value: 0x7F090278
-			public const int realplay_ssl_progress2 = 2131296888;
-			
-			// aapt resource value: 0x7F090279
-			public const int realplay_ssl_tv = 2131296889;
-			
-			// aapt resource value: 0x7F09027A
-			public const int realplay_ssl_tv2 = 2131296890;
-			
-			// aapt resource value: 0x7F09027B
-			public const int realplay_stop_btn = 2131296891;
-			
-			// aapt resource value: 0x7F09027C
-			public const int realplay_sv = 2131296892;
-			
-			// aapt resource value: 0x7F09027D
-			public const int realplay_talk_btn = 2131296893;
-			
-			// aapt resource value: 0x7F09027E
-			public const int realplay_talk_btn2 = 2131296894;
-			
-			// aapt resource value: 0x7F09027F
-			public const int realplay_talk_btn_ly = 2131296895;
-			
-			// aapt resource value: 0x7F090280
-			public const int realplay_talk_btn_ly2 = 2131296896;
-			
-			// aapt resource value: 0x7F090281
-			public const int realplay_tip_tv = 2131296897;
-			
-			// aapt resource value: 0x7F090282
-			public const int realplay_title_tv = 2131296898;
-			
-			// aapt resource value: 0x7F090283
-			public const int realplay_top_bar = 2131296899;
-			
-			// aapt resource value: 0x7F090284
-			public const int realplay_video_btn = 2131296900;
-			
-			// aapt resource value: 0x7F090285
-			public const int realplay_video_btn2 = 2131296901;
-			
-			// aapt resource value: 0x7F090286
-			public const int realplay_video_container = 2131296902;
-			
-			// aapt resource value: 0x7F090287
-			public const int realplay_video_container2 = 2131296903;
-			
-			// aapt resource value: 0x7F090288
-			public const int realplay_video_container_ly = 2131296904;
-			
-			// aapt resource value: 0x7F090289
-			public const int realplay_video_container_ly2 = 2131296905;
-			
-			// aapt resource value: 0x7F09028A
-			public const int realplay_video_start_btn = 2131296906;
-			
-			// aapt resource value: 0x7F09028B
-			public const int realplay_video_start_btn2 = 2131296907;
-			
-			// aapt resource value: 0x7F09028C
-			public const int realplay_waiting_lr = 2131296908;
-			
-			// aapt resource value: 0x7F09028D
-			public const int realplay_watting_pb = 2131296909;
-			
-			// aapt resource value: 0x7F09028E
-			public const int realplay_watting_tv = 2131296910;
-			
-			// aapt resource value: 0x7F09028F
-			public const int realplay_wnd_sv = 2131296911;
-			
-			// aapt resource value: 0x7F090290
-			public const int recycler_view = 2131296912;
-			
-			// aapt resource value: 0x7F090291
-			public const int refresh_button = 2131296913;
-			
-			// aapt resource value: 0x7F090292
-			public const int refresh_layout = 2131296914;
-			
-			// aapt resource value: 0x7F090293
-			public const int refresh_tip = 2131296915;
-			
-			// aapt resource value: 0x7F090294
-			public const int remoteFrame = 2131296916;
-			
-			// aapt resource value: 0x7F090295
-			public const int remoteFrameContainer = 2131296917;
-			
-			// aapt resource value: 0x7F0902A2
-			public const int remoteplayback_begin_time_tv = 2131296930;
-			
-			// aapt resource value: 0x7F0902A3
-			public const int remoteplayback_capture_iv = 2131296931;
-			
-			// aapt resource value: 0x7F0902A4
-			public const int remoteplayback_capture_rl = 2131296932;
-			
-			// aapt resource value: 0x7F0902A5
-			public const int remoteplayback_capture_watermark_iv = 2131296933;
-			
-			// aapt resource value: 0x7F0902A6
-			public const int remoteplayback_control_rl = 2131296934;
-			
-			// aapt resource value: 0x7F0902A7
-			public const int remoteplayback_end_time_tv = 2131296935;
-			
-			// aapt resource value: 0x7F0902A8
-			public const int remoteplayback_file_time_bar = 2131296936;
-			
-			// aapt resource value: 0x7F0902A9
-			public const int remoteplayback_flow_tv = 2131296937;
-			
-			// aapt resource value: 0x7F0902AA
-			public const int remoteplayback_full_down_btn = 2131296938;
-			
-			// aapt resource value: 0x7F0902AB
-			public const int remoteplayback_full_flow_ly = 2131296939;
-			
-			// aapt resource value: 0x7F0902AC
-			public const int remoteplayback_full_flow_tv = 2131296940;
-			
-			// aapt resource value: 0x7F0902AD
-			public const int remoteplayback_full_operate_bar = 2131296941;
-			
-			// aapt resource value: 0x7F0902AE
-			public const int remoteplayback_full_play_btn = 2131296942;
-			
-			// aapt resource value: 0x7F0902AF
-			public const int remoteplayback_full_previously_btn = 2131296943;
-			
-			// aapt resource value: 0x7F0902B0
-			public const int remoteplayback_full_rate_tv = 2131296944;
-			
-			// aapt resource value: 0x7F0902B1
-			public const int remoteplayback_full_sound_btn = 2131296945;
-			
-			// aapt resource value: 0x7F0902B2
-			public const int remoteplayback_full_video_btn = 2131296946;
-			
-			// aapt resource value: 0x7F0902B3
-			public const int remoteplayback_full_video_container = 2131296947;
-			
-			// aapt resource value: 0x7F0902B4
-			public const int remoteplayback_full_video_start_btn = 2131296948;
-			
-			// aapt resource value: 0x7F0902B5
-			public const int remoteplayback_loading_iv = 2131296949;
-			
-			// aapt resource value: 0x7F0902B6
-			public const int remoteplayback_loading_ly = 2131296950;
-			
-			// aapt resource value: 0x7F0902B7
-			public const int remoteplayback_loading_pb_ly = 2131296951;
-			
-			// aapt resource value: 0x7F0902B8
-			public const int remoteplayback_loading_play_btn = 2131296952;
-			
-			// aapt resource value: 0x7F0902B9
-			public const int remoteplayback_loading_tv = 2131296953;
-			
-			// aapt resource value: 0x7F0902BA
-			public const int remoteplayback_operate_bar = 2131296954;
-			
-			// aapt resource value: 0x7F0902BB
-			public const int remoteplayback_page_ly = 2131296955;
-			
-			// aapt resource value: 0x7F0902BC
-			public const int remoteplayback_play_btn = 2131296956;
-			
-			// aapt resource value: 0x7F0902BD
-			public const int remoteplayback_play_rl = 2131296957;
-			
-			// aapt resource value: 0x7F0902BE
-			public const int remoteplayback_previously_btn = 2131296958;
-			
-			// aapt resource value: 0x7F0902C1
-			public const int remoteplayback_progressbar = 2131296961;
-			
-			// aapt resource value: 0x7F0902BF
-			public const int remoteplayback_progress_ly = 2131296959;
-			
-			// aapt resource value: 0x7F0902C0
-			public const int remoteplayback_progress_seekbar = 2131296960;
-			
-			// aapt resource value: 0x7F0902C2
-			public const int remoteplayback_ratio_tv = 2131296962;
-			
-			// aapt resource value: 0x7F0902C3
-			public const int remoteplayback_record_iv = 2131296963;
-			
-			// aapt resource value: 0x7F0902C4
-			public const int remoteplayback_record_ly = 2131296964;
-			
-			// aapt resource value: 0x7F0902C5
-			public const int remoteplayback_record_tv = 2131296965;
-			
-			// aapt resource value: 0x7F0902C6
-			public const int remoteplayback_replay_btn = 2131296966;
-			
-			// aapt resource value: 0x7F0902C7
-			public const int remoteplayback_small_previously_btn = 2131296967;
-			
-			// aapt resource value: 0x7F0902C8
-			public const int remoteplayback_small_video_btn = 2131296968;
-			
-			// aapt resource value: 0x7F0902C9
-			public const int remoteplayback_small_video_container = 2131296969;
-			
-			// aapt resource value: 0x7F0902CA
-			public const int remoteplayback_small_video_start_btn = 2131296970;
-			
-			// aapt resource value: 0x7F0902CB
-			public const int remoteplayback_sound_btn = 2131296971;
-			
-			// aapt resource value: 0x7F0902CC
-			public const int remoteplayback_sv = 2131296972;
-			
-			// aapt resource value: 0x7F0902CE
-			public const int remoteplayback_timebar = 2131296974;
-			
-			// aapt resource value: 0x7F0902CF
-			public const int remoteplayback_timebar_rl = 2131296975;
-			
-			// aapt resource value: 0x7F0902CD
-			public const int remoteplayback_time_tv = 2131296973;
-			
-			// aapt resource value: 0x7F0902D0
-			public const int remoteplayback_tip_tv = 2131296976;
-			
-			// aapt resource value: 0x7F0902D1
-			public const int remoteplayback_video_btn = 2131296977;
-			
-			// aapt resource value: 0x7F0902D2
-			public const int remoteplayback_video_container = 2131296978;
-			
-			// aapt resource value: 0x7F0902D3
-			public const int remoteplayback_video_start_btn = 2131296979;
-			
-			// aapt resource value: 0x7F090296
-			public const int remoteVideo = 2131296918;
-			
-			// aapt resource value: 0x7F090297
-			public const int remote_list_page = 2131296919;
-			
-			// aapt resource value: 0x7F090298
-			public const int remote_loading_buffer_tv = 2131296920;
-			
-			// aapt resource value: 0x7F090299
-			public const int remote_loading_iv = 2131296921;
-			
-			// aapt resource value: 0x7F09029A
-			public const int remote_playback_area = 2131296922;
-			
-			// aapt resource value: 0x7F09029B
-			public const int remote_playback_capture_btn = 2131296923;
-			
-			// aapt resource value: 0x7F09029C
-			public const int remote_playback_download_btn = 2131296924;
-			
-			// aapt resource value: 0x7F09029D
-			public const int remote_playback_flow_tv = 2131296925;
-			
-			// aapt resource value: 0x7F09029E
-			public const int remote_playback_pause_btn = 2131296926;
-			
-			// aapt resource value: 0x7F09029F
-			public const int remote_playback_sound_btn = 2131296927;
-			
-			// aapt resource value: 0x7F0902A0
-			public const int remote_playback_video_recording_btn = 2131296928;
-			
-			// aapt resource value: 0x7F0902A1
-			public const int remote_playback_wnd_sv = 2131296929;
-			
-			// aapt resource value: 0x7F0902D4
-			public const int render_texture_view = 2131296980;
-			
-			// aapt resource value: 0x7F0902D5
-			public const int render_texture_view_soft = 2131296981;
-			
-			// aapt resource value: 0x7F0902D6
-			public const int replay_btn = 2131296982;
-			
-			// aapt resource value: 0x7F0902D7
-			public const int requestA = 2131296983;
-			
-			// aapt resource value: 0x7F0902D8
-			public const int requestMasterAudio = 2131296984;
-			
-			// aapt resource value: 0x7F0902D9
-			public const int requestMasterVideo = 2131296985;
-			
-			// aapt resource value: 0x7F0902DA
-			public const int requestV = 2131296986;
-			
-			// aapt resource value: 0x7F0902DB
-			public const int restart_preview = 2131296987;
-			
-			// aapt resource value: 0x7F0902DC
-			public const int retry_btn = 2131296988;
-			
-			// aapt resource value: 0x7F0902DD
-			public const int retry_button = 2131296989;
-			
-			// aapt resource value: 0x7F0902DE
-			public const int return_scan_result = 2131296990;
-			
-			// aapt resource value: 0x7F0902DF
-			public const int reverseCall = 2131296991;
-			
-			// aapt resource value: 0x7F0902E0
-			public const int reverseCallInfo = 2131296992;
+			public const int rate_4x = 2131296817;
 			
 			// aapt resource value: 0x7F090232
-			public const int re_next_area = 2131296818;
+			public const int rate_8x = 2131296818;
+			
+			// aapt resource value: 0x7F090234
+			public const int read_button = 2131296820;
+			
+			// aapt resource value: 0x7F090235
+			public const int realplay_area = 2131296821;
+			
+			// aapt resource value: 0x7F090236
+			public const int realplay_back_btn = 2131296822;
+			
+			// aapt resource value: 0x7F090237
+			public const int realplay_capture_iv = 2131296823;
+			
+			// aapt resource value: 0x7F090238
+			public const int realplay_capture_rl = 2131296824;
+			
+			// aapt resource value: 0x7F090239
+			public const int realplay_capture_watermark_iv = 2131296825;
+			
+			// aapt resource value: 0x7F09023A
+			public const int realplay_control_bar = 2131296826;
+			
+			// aapt resource value: 0x7F09023B
+			public const int realplay_control_rl = 2131296827;
+			
+			// aapt resource value: 0x7F09023C
+			public const int realplay_display_view = 2131296828;
+			
+			// aapt resource value: 0x7F09023D
+			public const int realplay_flow_tv = 2131296829;
+			
+			// aapt resource value: 0x7F09023E
+			public const int realplay_full_anim_btn = 2131296830;
+			
+			// aapt resource value: 0x7F09023F
+			public const int realplay_full_flow_ly = 2131296831;
+			
+			// aapt resource value: 0x7F090240
+			public const int realplay_full_flow_tv = 2131296832;
+			
+			// aapt resource value: 0x7F090241
+			public const int realplay_full_operate_bar = 2131296833;
+			
+			// aapt resource value: 0x7F090242
+			public const int realplay_full_operate_layout = 2131296834;
+			
+			// aapt resource value: 0x7F090243
+			public const int realplay_full_play_btn = 2131296835;
+			
+			// aapt resource value: 0x7F090244
+			public const int realplay_full_previously_btn = 2131296836;
+			
+			// aapt resource value: 0x7F090245
+			public const int realplay_full_ptz_anim_btn = 2131296837;
+			
+			// aapt resource value: 0x7F090246
+			public const int realplay_full_ptz_btn = 2131296838;
+			
+			// aapt resource value: 0x7F090247
+			public const int realplay_full_ptz_prompt_iv = 2131296839;
+			
+			// aapt resource value: 0x7F090248
+			public const int realplay_full_rate_tv = 2131296840;
+			
+			// aapt resource value: 0x7F090249
+			public const int realplay_full_sound_btn = 2131296841;
+			
+			// aapt resource value: 0x7F09024A
+			public const int realplay_full_talk_anim_btn = 2131296842;
+			
+			// aapt resource value: 0x7F09024B
+			public const int realplay_full_talk_btn = 2131296843;
+			
+			// aapt resource value: 0x7F09024C
+			public const int realplay_full_video_btn = 2131296844;
+			
+			// aapt resource value: 0x7F09024D
+			public const int realplay_full_video_container = 2131296845;
+			
+			// aapt resource value: 0x7F09024E
+			public const int realplay_full_video_start_btn = 2131296846;
+			
+			// aapt resource value: 0x7F09024F
+			public const int realplay_loading = 2131296847;
+			
+			// aapt resource value: 0x7F090250
+			public const int realplay_loading_rl = 2131296848;
+			
+			// aapt resource value: 0x7F090251
+			public const int realplay_operate_bar = 2131296849;
+			
+			// aapt resource value: 0x7F090252
+			public const int realplay_operate_bar2 = 2131296850;
+			
+			// aapt resource value: 0x7F090253
+			public const int realplay_operate_ly = 2131296851;
+			
+			// aapt resource value: 0x7F090254
+			public const int realplay_operate_ly2 = 2131296852;
+			
+			// aapt resource value: 0x7F090257
+			public const int realplay_pages_gallery = 2131296855;
+			
+			// aapt resource value: 0x7F090255
+			public const int realplay_page_anim_iv = 2131296853;
+			
+			// aapt resource value: 0x7F090256
+			public const int realplay_page_ly = 2131296854;
+			
+			// aapt resource value: 0x7F090258
+			public const int realplay_play_btn = 2131296856;
+			
+			// aapt resource value: 0x7F090259
+			public const int realplay_play_iv = 2131296857;
+			
+			// aapt resource value: 0x7F09025A
+			public const int realplay_play_rl = 2131296858;
+			
+			// aapt resource value: 0x7F09025B
+			public const int realplay_previously_btn = 2131296859;
+			
+			// aapt resource value: 0x7F09025C
+			public const int realplay_previously_btn2 = 2131296860;
+			
+			// aapt resource value: 0x7F09025D
+			public const int realplay_previously_btn_ly = 2131296861;
+			
+			// aapt resource value: 0x7F09025E
+			public const int realplay_previously_btn_ly2 = 2131296862;
+			
+			// aapt resource value: 0x7F09025F
+			public const int realplay_privacy_btn = 2131296863;
+			
+			// aapt resource value: 0x7F090260
+			public const int realplay_privacy_btn2 = 2131296864;
+			
+			// aapt resource value: 0x7F090261
+			public const int realplay_privacy_btn_ly = 2131296865;
+			
+			// aapt resource value: 0x7F090262
+			public const int realplay_privacy_btn_ly2 = 2131296866;
+			
+			// aapt resource value: 0x7F090263
+			public const int realplay_privacy_ly = 2131296867;
+			
+			// aapt resource value: 0x7F090264
+			public const int realplay_privacy_tv = 2131296868;
+			
+			// aapt resource value: 0x7F090265
+			public const int realplay_privacy_tv2 = 2131296869;
+			
+			// aapt resource value: 0x7F090266
+			public const int realplay_prompt_rl = 2131296870;
+			
+			// aapt resource value: 0x7F090267
+			public const int realplay_ptz_btn = 2131296871;
+			
+			// aapt resource value: 0x7F090268
+			public const int realplay_ptz_btn2 = 2131296872;
+			
+			// aapt resource value: 0x7F090269
+			public const int realplay_ptz_btn_ly = 2131296873;
+			
+			// aapt resource value: 0x7F09026A
+			public const int realplay_ptz_btn_ly2 = 2131296874;
+			
+			// aapt resource value: 0x7F09026B
+			public const int realplay_ptz_direction_iv = 2131296875;
+			
+			// aapt resource value: 0x7F09026C
+			public const int realplay_quality_btn = 2131296876;
+			
+			// aapt resource value: 0x7F09026D
+			public const int realplay_ratio_tv = 2131296877;
+			
+			// aapt resource value: 0x7F09026E
+			public const int realplay_record_iv = 2131296878;
+			
+			// aapt resource value: 0x7F09026F
+			public const int realplay_record_ly = 2131296879;
+			
+			// aapt resource value: 0x7F090270
+			public const int realplay_record_tv = 2131296880;
+			
+			// aapt resource value: 0x7F090271
+			public const int realplay_sound_btn = 2131296881;
+			
+			// aapt resource value: 0x7F090272
+			public const int realplay_ssl_btn = 2131296882;
+			
+			// aapt resource value: 0x7F090273
+			public const int realplay_ssl_btn2 = 2131296883;
+			
+			// aapt resource value: 0x7F090274
+			public const int realplay_ssl_btn_ly = 2131296884;
+			
+			// aapt resource value: 0x7F090275
+			public const int realplay_ssl_btn_ly2 = 2131296885;
+			
+			// aapt resource value: 0x7F090276
+			public const int realplay_ssl_btn_rl = 2131296886;
+			
+			// aapt resource value: 0x7F090277
+			public const int realplay_ssl_btn_rl2 = 2131296887;
+			
+			// aapt resource value: 0x7F090278
+			public const int realplay_ssl_progress = 2131296888;
+			
+			// aapt resource value: 0x7F090279
+			public const int realplay_ssl_progress2 = 2131296889;
+			
+			// aapt resource value: 0x7F09027A
+			public const int realplay_ssl_tv = 2131296890;
+			
+			// aapt resource value: 0x7F09027B
+			public const int realplay_ssl_tv2 = 2131296891;
+			
+			// aapt resource value: 0x7F09027C
+			public const int realplay_stop_btn = 2131296892;
+			
+			// aapt resource value: 0x7F09027D
+			public const int realplay_sv = 2131296893;
+			
+			// aapt resource value: 0x7F09027E
+			public const int realplay_talk_btn = 2131296894;
+			
+			// aapt resource value: 0x7F09027F
+			public const int realplay_talk_btn2 = 2131296895;
+			
+			// aapt resource value: 0x7F090280
+			public const int realplay_talk_btn_ly = 2131296896;
+			
+			// aapt resource value: 0x7F090281
+			public const int realplay_talk_btn_ly2 = 2131296897;
+			
+			// aapt resource value: 0x7F090282
+			public const int realplay_tip_tv = 2131296898;
+			
+			// aapt resource value: 0x7F090283
+			public const int realplay_title_tv = 2131296899;
+			
+			// aapt resource value: 0x7F090284
+			public const int realplay_top_bar = 2131296900;
+			
+			// aapt resource value: 0x7F090285
+			public const int realplay_video_btn = 2131296901;
+			
+			// aapt resource value: 0x7F090286
+			public const int realplay_video_btn2 = 2131296902;
+			
+			// aapt resource value: 0x7F090287
+			public const int realplay_video_container = 2131296903;
+			
+			// aapt resource value: 0x7F090288
+			public const int realplay_video_container2 = 2131296904;
+			
+			// aapt resource value: 0x7F090289
+			public const int realplay_video_container_ly = 2131296905;
+			
+			// aapt resource value: 0x7F09028A
+			public const int realplay_video_container_ly2 = 2131296906;
+			
+			// aapt resource value: 0x7F09028B
+			public const int realplay_video_start_btn = 2131296907;
+			
+			// aapt resource value: 0x7F09028C
+			public const int realplay_video_start_btn2 = 2131296908;
+			
+			// aapt resource value: 0x7F09028D
+			public const int realplay_waiting_lr = 2131296909;
+			
+			// aapt resource value: 0x7F09028E
+			public const int realplay_watting_pb = 2131296910;
+			
+			// aapt resource value: 0x7F09028F
+			public const int realplay_watting_tv = 2131296911;
+			
+			// aapt resource value: 0x7F090290
+			public const int realplay_wnd_sv = 2131296912;
+			
+			// aapt resource value: 0x7F090291
+			public const int recycler_view = 2131296913;
+			
+			// aapt resource value: 0x7F090292
+			public const int refresh_button = 2131296914;
+			
+			// aapt resource value: 0x7F090293
+			public const int refresh_layout = 2131296915;
+			
+			// aapt resource value: 0x7F090294
+			public const int refresh_tip = 2131296916;
+			
+			// aapt resource value: 0x7F090295
+			public const int remoteFrame = 2131296917;
+			
+			// aapt resource value: 0x7F090296
+			public const int remoteFrameContainer = 2131296918;
+			
+			// aapt resource value: 0x7F0902A3
+			public const int remoteplayback_begin_time_tv = 2131296931;
+			
+			// aapt resource value: 0x7F0902A4
+			public const int remoteplayback_capture_iv = 2131296932;
+			
+			// aapt resource value: 0x7F0902A5
+			public const int remoteplayback_capture_rl = 2131296933;
+			
+			// aapt resource value: 0x7F0902A6
+			public const int remoteplayback_capture_watermark_iv = 2131296934;
+			
+			// aapt resource value: 0x7F0902A7
+			public const int remoteplayback_control_rl = 2131296935;
+			
+			// aapt resource value: 0x7F0902A8
+			public const int remoteplayback_end_time_tv = 2131296936;
+			
+			// aapt resource value: 0x7F0902A9
+			public const int remoteplayback_file_time_bar = 2131296937;
+			
+			// aapt resource value: 0x7F0902AA
+			public const int remoteplayback_flow_tv = 2131296938;
+			
+			// aapt resource value: 0x7F0902AB
+			public const int remoteplayback_full_down_btn = 2131296939;
+			
+			// aapt resource value: 0x7F0902AC
+			public const int remoteplayback_full_flow_ly = 2131296940;
+			
+			// aapt resource value: 0x7F0902AD
+			public const int remoteplayback_full_flow_tv = 2131296941;
+			
+			// aapt resource value: 0x7F0902AE
+			public const int remoteplayback_full_operate_bar = 2131296942;
+			
+			// aapt resource value: 0x7F0902AF
+			public const int remoteplayback_full_play_btn = 2131296943;
+			
+			// aapt resource value: 0x7F0902B0
+			public const int remoteplayback_full_previously_btn = 2131296944;
+			
+			// aapt resource value: 0x7F0902B1
+			public const int remoteplayback_full_rate_tv = 2131296945;
+			
+			// aapt resource value: 0x7F0902B2
+			public const int remoteplayback_full_sound_btn = 2131296946;
+			
+			// aapt resource value: 0x7F0902B3
+			public const int remoteplayback_full_video_btn = 2131296947;
+			
+			// aapt resource value: 0x7F0902B4
+			public const int remoteplayback_full_video_container = 2131296948;
+			
+			// aapt resource value: 0x7F0902B5
+			public const int remoteplayback_full_video_start_btn = 2131296949;
+			
+			// aapt resource value: 0x7F0902B6
+			public const int remoteplayback_loading_iv = 2131296950;
+			
+			// aapt resource value: 0x7F0902B7
+			public const int remoteplayback_loading_ly = 2131296951;
+			
+			// aapt resource value: 0x7F0902B8
+			public const int remoteplayback_loading_pb_ly = 2131296952;
+			
+			// aapt resource value: 0x7F0902B9
+			public const int remoteplayback_loading_play_btn = 2131296953;
+			
+			// aapt resource value: 0x7F0902BA
+			public const int remoteplayback_loading_tv = 2131296954;
+			
+			// aapt resource value: 0x7F0902BB
+			public const int remoteplayback_operate_bar = 2131296955;
+			
+			// aapt resource value: 0x7F0902BC
+			public const int remoteplayback_page_ly = 2131296956;
+			
+			// aapt resource value: 0x7F0902BD
+			public const int remoteplayback_play_btn = 2131296957;
+			
+			// aapt resource value: 0x7F0902BE
+			public const int remoteplayback_play_rl = 2131296958;
+			
+			// aapt resource value: 0x7F0902BF
+			public const int remoteplayback_previously_btn = 2131296959;
+			
+			// aapt resource value: 0x7F0902C2
+			public const int remoteplayback_progressbar = 2131296962;
+			
+			// aapt resource value: 0x7F0902C0
+			public const int remoteplayback_progress_ly = 2131296960;
+			
+			// aapt resource value: 0x7F0902C1
+			public const int remoteplayback_progress_seekbar = 2131296961;
+			
+			// aapt resource value: 0x7F0902C3
+			public const int remoteplayback_ratio_tv = 2131296963;
+			
+			// aapt resource value: 0x7F0902C4
+			public const int remoteplayback_record_iv = 2131296964;
+			
+			// aapt resource value: 0x7F0902C5
+			public const int remoteplayback_record_ly = 2131296965;
+			
+			// aapt resource value: 0x7F0902C6
+			public const int remoteplayback_record_tv = 2131296966;
+			
+			// aapt resource value: 0x7F0902C7
+			public const int remoteplayback_replay_btn = 2131296967;
+			
+			// aapt resource value: 0x7F0902C8
+			public const int remoteplayback_small_previously_btn = 2131296968;
+			
+			// aapt resource value: 0x7F0902C9
+			public const int remoteplayback_small_video_btn = 2131296969;
+			
+			// aapt resource value: 0x7F0902CA
+			public const int remoteplayback_small_video_container = 2131296970;
+			
+			// aapt resource value: 0x7F0902CB
+			public const int remoteplayback_small_video_start_btn = 2131296971;
+			
+			// aapt resource value: 0x7F0902CC
+			public const int remoteplayback_sound_btn = 2131296972;
+			
+			// aapt resource value: 0x7F0902CD
+			public const int remoteplayback_sv = 2131296973;
+			
+			// aapt resource value: 0x7F0902CF
+			public const int remoteplayback_timebar = 2131296975;
+			
+			// aapt resource value: 0x7F0902D0
+			public const int remoteplayback_timebar_rl = 2131296976;
+			
+			// aapt resource value: 0x7F0902CE
+			public const int remoteplayback_time_tv = 2131296974;
+			
+			// aapt resource value: 0x7F0902D1
+			public const int remoteplayback_tip_tv = 2131296977;
+			
+			// aapt resource value: 0x7F0902D2
+			public const int remoteplayback_video_btn = 2131296978;
+			
+			// aapt resource value: 0x7F0902D3
+			public const int remoteplayback_video_container = 2131296979;
+			
+			// aapt resource value: 0x7F0902D4
+			public const int remoteplayback_video_start_btn = 2131296980;
+			
+			// aapt resource value: 0x7F090297
+			public const int remoteVideo = 2131296919;
+			
+			// aapt resource value: 0x7F090298
+			public const int remote_list_page = 2131296920;
+			
+			// aapt resource value: 0x7F090299
+			public const int remote_loading_buffer_tv = 2131296921;
+			
+			// aapt resource value: 0x7F09029A
+			public const int remote_loading_iv = 2131296922;
+			
+			// aapt resource value: 0x7F09029B
+			public const int remote_playback_area = 2131296923;
+			
+			// aapt resource value: 0x7F09029C
+			public const int remote_playback_capture_btn = 2131296924;
+			
+			// aapt resource value: 0x7F09029D
+			public const int remote_playback_download_btn = 2131296925;
+			
+			// aapt resource value: 0x7F09029E
+			public const int remote_playback_flow_tv = 2131296926;
+			
+			// aapt resource value: 0x7F09029F
+			public const int remote_playback_pause_btn = 2131296927;
+			
+			// aapt resource value: 0x7F0902A0
+			public const int remote_playback_sound_btn = 2131296928;
+			
+			// aapt resource value: 0x7F0902A1
+			public const int remote_playback_video_recording_btn = 2131296929;
+			
+			// aapt resource value: 0x7F0902A2
+			public const int remote_playback_wnd_sv = 2131296930;
+			
+			// aapt resource value: 0x7F0902D5
+			public const int render_texture_view = 2131296981;
+			
+			// aapt resource value: 0x7F0902D6
+			public const int render_texture_view_soft = 2131296982;
+			
+			// aapt resource value: 0x7F0902D7
+			public const int replay_btn = 2131296983;
+			
+			// aapt resource value: 0x7F0902D8
+			public const int requestA = 2131296984;
+			
+			// aapt resource value: 0x7F0902D9
+			public const int requestMasterAudio = 2131296985;
+			
+			// aapt resource value: 0x7F0902DA
+			public const int requestMasterVideo = 2131296986;
+			
+			// aapt resource value: 0x7F0902DB
+			public const int requestV = 2131296987;
+			
+			// aapt resource value: 0x7F0902DC
+			public const int restart_preview = 2131296988;
+			
+			// aapt resource value: 0x7F0902DD
+			public const int retry_btn = 2131296989;
+			
+			// aapt resource value: 0x7F0902DE
+			public const int retry_button = 2131296990;
+			
+			// aapt resource value: 0x7F0902DF
+			public const int return_scan_result = 2131296991;
+			
+			// aapt resource value: 0x7F0902E0
+			public const int reverseCall = 2131296992;
 			
 			// aapt resource value: 0x7F0902E1
-			public const int right = 2131296993;
+			public const int reverseCallInfo = 2131296993;
+			
+			// aapt resource value: 0x7F090233
+			public const int re_next_area = 2131296819;
 			
 			// aapt resource value: 0x7F0902E2
-			public const int right_icon = 2131296994;
+			public const int right = 2131296994;
 			
 			// aapt resource value: 0x7F0902E3
-			public const int right_side = 2131296995;
+			public const int right_icon = 2131296995;
 			
 			// aapt resource value: 0x7F0902E4
-			public const int rv_multi_screen = 2131296996;
+			public const int right_side = 2131296996;
 			
 			// aapt resource value: 0x7F0902E5
-			public const int rv_topbar = 2131296997;
+			public const int rv_multi_screen = 2131296997;
 			
 			// aapt resource value: 0x7F0902E6
-			public const int safe_box_tip = 2131296998;
+			public const int rv_topbar = 2131296998;
 			
 			// aapt resource value: 0x7F0902E7
-			public const int sample_text = 2131296999;
+			public const int safe_box_tip = 2131296999;
 			
 			// aapt resource value: 0x7F0902E8
-			public const int save_image_matrix = 2131297000;
+			public const int sample_text = 2131297000;
 			
 			// aapt resource value: 0x7F0902E9
-			public const int save_non_transition_alpha = 2131297001;
+			public const int save_image_matrix = 2131297001;
 			
 			// aapt resource value: 0x7F0902EA
-			public const int save_scale_type = 2131297002;
+			public const int save_non_transition_alpha = 2131297002;
+			
+			// aapt resource value: 0x7F0902EB
+			public const int save_scale_type = 2131297003;
 			
 			// aapt resource value: 0x7F09000D
 			public const int Scale = 2131296269;
 			
-			// aapt resource value: 0x7F0902EB
-			public const int screen = 2131297003;
-			
 			// aapt resource value: 0x7F0902EC
-			public const int scroll = 2131297004;
-			
-			// aapt resource value: 0x7F0902F0
-			public const int scrollable = 2131297008;
+			public const int screen = 2131297004;
 			
 			// aapt resource value: 0x7F0902ED
-			public const int scrollIndicatorDown = 2131297005;
-			
-			// aapt resource value: 0x7F0902EE
-			public const int scrollIndicatorUp = 2131297006;
-			
-			// aapt resource value: 0x7F0902EF
-			public const int scrollView = 2131297007;
+			public const int scroll = 2131297005;
 			
 			// aapt resource value: 0x7F0902F1
-			public const int searchAnim = 2131297009;
+			public const int scrollable = 2131297009;
+			
+			// aapt resource value: 0x7F0902EE
+			public const int scrollIndicatorDown = 2131297006;
+			
+			// aapt resource value: 0x7F0902EF
+			public const int scrollIndicatorUp = 2131297007;
+			
+			// aapt resource value: 0x7F0902F0
+			public const int scrollView = 2131297008;
 			
 			// aapt resource value: 0x7F0902F2
-			public const int searchBtn = 2131297010;
+			public const int searchAnim = 2131297010;
 			
 			// aapt resource value: 0x7F0902F3
-			public const int searchEditTextContainer = 2131297011;
+			public const int searchBtn = 2131297011;
 			
 			// aapt resource value: 0x7F0902F4
-			public const int searchFragment = 2131297012;
+			public const int searchEditTextContainer = 2131297012;
 			
 			// aapt resource value: 0x7F0902F5
-			public const int search_badge = 2131297013;
+			public const int searchFragment = 2131297013;
 			
 			// aapt resource value: 0x7F0902F6
-			public const int search_bar = 2131297014;
+			public const int search_badge = 2131297014;
 			
 			// aapt resource value: 0x7F0902F7
-			public const int search_button = 2131297015;
+			public const int search_bar = 2131297015;
 			
 			// aapt resource value: 0x7F0902F8
-			public const int search_close_btn = 2131297016;
+			public const int search_button = 2131297016;
 			
 			// aapt resource value: 0x7F0902F9
-			public const int search_edit_frame = 2131297017;
+			public const int search_close_btn = 2131297017;
 			
 			// aapt resource value: 0x7F0902FA
-			public const int search_go_btn = 2131297018;
+			public const int search_edit_frame = 2131297018;
 			
 			// aapt resource value: 0x7F0902FB
-			public const int search_mag_icon = 2131297019;
+			public const int search_go_btn = 2131297019;
 			
 			// aapt resource value: 0x7F0902FC
-			public const int search_plate = 2131297020;
+			public const int search_mag_icon = 2131297020;
 			
 			// aapt resource value: 0x7F0902FD
-			public const int search_src_text = 2131297021;
+			public const int search_plate = 2131297021;
 			
 			// aapt resource value: 0x7F0902FE
-			public const int search_voice_btn = 2131297022;
+			public const int search_src_text = 2131297022;
 			
 			// aapt resource value: 0x7F0902FF
-			public const int second = 2131297023;
+			public const int search_voice_btn = 2131297023;
 			
 			// aapt resource value: 0x7F090300
-			public const int select_dialog_listview = 2131297024;
+			public const int second = 2131297024;
 			
 			// aapt resource value: 0x7F090301
-			public const int sendA = 2131297025;
+			public const int select_dialog_listview = 2131297025;
 			
 			// aapt resource value: 0x7F090302
-			public const int sendCustomData = 2131297026;
+			public const int sendA = 2131297026;
 			
 			// aapt resource value: 0x7F090303
-			public const int sendV = 2131297027;
+			public const int sendCustomData = 2131297027;
 			
 			// aapt resource value: 0x7F090304
-			public const int separate_line = 2131297028;
+			public const int sendV = 2131297028;
 			
 			// aapt resource value: 0x7F090305
-			public const int serial_tv = 2131297029;
+			public const int separate_line = 2131297029;
 			
 			// aapt resource value: 0x7F090306
-			public const int seriesNumberEt = 2131297030;
+			public const int serial_tv = 2131297030;
+			
+			// aapt resource value: 0x7F090307
+			public const int seriesNumberEt = 2131297031;
 			
 			// aapt resource value: 0x7F09000A
 			public const int SHIFT = 2131296266;
 			
-			// aapt resource value: 0x7F090307
-			public const int shipin7_logo_lyt = 2131297031;
-			
 			// aapt resource value: 0x7F090308
-			public const int shortcut = 2131297032;
+			public const int shipin7_logo_lyt = 2131297032;
 			
 			// aapt resource value: 0x7F090309
-			public const int show = 2131297033;
+			public const int shortcut = 2131297033;
 			
 			// aapt resource value: 0x7F09030A
-			public const int showCustom = 2131297034;
+			public const int show = 2131297034;
 			
 			// aapt resource value: 0x7F09030B
-			public const int showHome = 2131297035;
+			public const int showCustom = 2131297035;
 			
 			// aapt resource value: 0x7F09030C
-			public const int showTitle = 2131297036;
+			public const int showHome = 2131297036;
 			
 			// aapt resource value: 0x7F09030D
-			public const int sign_et = 2131297037;
+			public const int showTitle = 2131297037;
 			
 			// aapt resource value: 0x7F09030E
-			public const int smallLabel = 2131297038;
+			public const int sign_et = 2131297038;
 			
 			// aapt resource value: 0x7F09030F
-			public const int sms_code_et = 2131297039;
+			public const int smallLabel = 2131297039;
 			
 			// aapt resource value: 0x7F090310
-			public const int sms_code_lyt = 2131297040;
+			public const int sms_code_et = 2131297040;
 			
 			// aapt resource value: 0x7F090311
-			public const int sms_verify_dailog_ly = 2131297041;
+			public const int sms_code_lyt = 2131297041;
 			
 			// aapt resource value: 0x7F090312
-			public const int snackbar_action = 2131297042;
+			public const int sms_verify_dailog_ly = 2131297042;
 			
 			// aapt resource value: 0x7F090313
-			public const int snackbar_text = 2131297043;
+			public const int snackbar_action = 2131297043;
 			
 			// aapt resource value: 0x7F090314
-			public const int snap = 2131297044;
+			public const int snackbar_text = 2131297044;
 			
 			// aapt resource value: 0x7F090315
-			public const int snapshot = 2131297045;
+			public const int snap = 2131297045;
 			
 			// aapt resource value: 0x7F090316
-			public const int sound_line = 2131297046;
-			
-			// aapt resource value: 0x7F090318
-			public const int spacer = 2131297048;
-			
-			// aapt resource value: 0x7F090319
-			public const int split_action_bar = 2131297049;
-			
-			// aapt resource value: 0x7F09031A
-			public const int spread = 2131297050;
-			
-			// aapt resource value: 0x7F09031B
-			public const int spread_inside = 2131297051;
+			public const int snapshot = 2131297046;
 			
 			// aapt resource value: 0x7F090317
-			public const int sp_server_area = 2131297047;
+			public const int sound_line = 2131297047;
+			
+			// aapt resource value: 0x7F090319
+			public const int spacer = 2131297049;
+			
+			// aapt resource value: 0x7F09031A
+			public const int split_action_bar = 2131297050;
+			
+			// aapt resource value: 0x7F09031B
+			public const int spread = 2131297051;
 			
 			// aapt resource value: 0x7F09031C
-			public const int squareColumnItem = 2131297052;
+			public const int spread_inside = 2131297052;
+			
+			// aapt resource value: 0x7F090318
+			public const int sp_server_area = 2131297048;
 			
 			// aapt resource value: 0x7F09031D
-			public const int squareVideo = 2131297053;
+			public const int squareColumnItem = 2131297053;
 			
 			// aapt resource value: 0x7F09031E
-			public const int squareVideoList = 2131297054;
+			public const int squareVideo = 2131297054;
 			
 			// aapt resource value: 0x7F09031F
-			public const int square_channel = 2131297055;
+			public const int squareVideoList = 2131297055;
 			
 			// aapt resource value: 0x7F090320
-			public const int src_atop = 2131297056;
+			public const int square_channel = 2131297056;
 			
 			// aapt resource value: 0x7F090321
-			public const int src_in = 2131297057;
+			public const int src_atop = 2131297057;
 			
 			// aapt resource value: 0x7F090322
-			public const int src_over = 2131297058;
+			public const int src_in = 2131297058;
 			
 			// aapt resource value: 0x7F090323
-			public const int srl_classics_arrow = 2131297059;
+			public const int src_over = 2131297059;
 			
 			// aapt resource value: 0x7F090324
-			public const int srl_classics_center = 2131297060;
+			public const int srl_classics_arrow = 2131297060;
 			
 			// aapt resource value: 0x7F090325
-			public const int srl_classics_progress = 2131297061;
+			public const int srl_classics_center = 2131297061;
 			
 			// aapt resource value: 0x7F090326
-			public const int srl_classics_title = 2131297062;
+			public const int srl_classics_progress = 2131297062;
 			
 			// aapt resource value: 0x7F090327
-			public const int srl_classics_update = 2131297063;
+			public const int srl_classics_title = 2131297063;
 			
 			// aapt resource value: 0x7F090328
-			public const int standard = 2131297064;
+			public const int srl_classics_update = 2131297064;
 			
 			// aapt resource value: 0x7F090329
-			public const int start = 2131297065;
+			public const int standard = 2131297065;
 			
 			// aapt resource value: 0x7F09032A
-			public const int startAVMsg = 2131297066;
+			public const int start = 2131297066;
 			
 			// aapt resource value: 0x7F09032B
-			public const int startDoorKey = 2131297067;
+			public const int startAVMsg = 2131297067;
 			
 			// aapt resource value: 0x7F09032C
-			public const int startLocalRecord = 2131297068;
+			public const int startDoorKey = 2131297068;
 			
 			// aapt resource value: 0x7F09032D
-			public const int startReadCard = 2131297069;
+			public const int startLocalRecord = 2131297069;
 			
 			// aapt resource value: 0x7F09032E
-			public const int startRecord = 2131297070;
+			public const int startReadCard = 2131297070;
 			
 			// aapt resource value: 0x7F09032F
-			public const int startRecordLocalAudio = 2131297071;
+			public const int startRecord = 2131297071;
 			
 			// aapt resource value: 0x7F090330
-			public const int startRecordPeerAudio = 2131297072;
+			public const int startRecordLocalAudio = 2131297072;
 			
 			// aapt resource value: 0x7F090331
-			public const int startStream = 2131297073;
+			public const int startRecordPeerAudio = 2131297073;
 			
 			// aapt resource value: 0x7F090332
-			public const int startWatchDog = 2131297074;
+			public const int startStream = 2131297074;
 			
 			// aapt resource value: 0x7F090333
-			public const int start_stop = 2131297075;
+			public const int startWatchDog = 2131297075;
 			
 			// aapt resource value: 0x7F090334
-			public const int start_stop_stream = 2131297076;
+			public const int start_stop = 2131297076;
 			
 			// aapt resource value: 0x7F090335
-			public const int status = 2131297077;
+			public const int start_stop_stream = 2131297077;
 			
 			// aapt resource value: 0x7F090336
-			public const int status_bar_latest_event_content = 2131297078;
+			public const int status = 2131297078;
 			
 			// aapt resource value: 0x7F090337
-			public const int stopAVMsg = 2131297079;
+			public const int status_bar_latest_event_content = 2131297079;
 			
 			// aapt resource value: 0x7F090338
-			public const int stopDoorKey = 2131297080;
+			public const int stopAVMsg = 2131297080;
 			
 			// aapt resource value: 0x7F090339
-			public const int stopLocalRecord = 2131297081;
+			public const int stopDoorKey = 2131297081;
 			
 			// aapt resource value: 0x7F09033A
-			public const int stopReadCard = 2131297082;
+			public const int stopLocalRecord = 2131297082;
 			
 			// aapt resource value: 0x7F09033B
-			public const int stopRecord = 2131297083;
+			public const int stopReadCard = 2131297083;
 			
 			// aapt resource value: 0x7F09033C
-			public const int stopRecordLocalAudio = 2131297084;
+			public const int stopRecord = 2131297084;
 			
 			// aapt resource value: 0x7F09033D
-			public const int stopRecordPeerAudio = 2131297085;
+			public const int stopRecordLocalAudio = 2131297085;
 			
 			// aapt resource value: 0x7F09033E
-			public const int stopStream = 2131297086;
+			public const int stopRecordPeerAudio = 2131297086;
 			
 			// aapt resource value: 0x7F09033F
-			public const int stopWatchDog = 2131297087;
+			public const int stopStream = 2131297087;
 			
 			// aapt resource value: 0x7F090340
-			public const int storage_layout = 2131297088;
+			public const int stopWatchDog = 2131297088;
 			
 			// aapt resource value: 0x7F090341
-			public const int storage_notice = 2131297089;
+			public const int storage_layout = 2131297089;
+			
+			// aapt resource value: 0x7F090342
+			public const int storage_notice = 2131297090;
 			
 			// aapt resource value: 0x7F09000B
 			public const int STROKE = 2131296267;
 			
-			// aapt resource value: 0x7F090343
-			public const int submenuarrow = 2131297091;
-			
 			// aapt resource value: 0x7F090344
-			public const int submit = 2131297092;
+			public const int submenuarrow = 2131297092;
 			
 			// aapt resource value: 0x7F090345
-			public const int submit_area = 2131297093;
+			public const int submit = 2131297093;
 			
 			// aapt resource value: 0x7F090346
-			public const int subtitle = 2131297094;
-			
-			// aapt resource value: 0x7F090342
-			public const int sub_title_text = 2131297090;
+			public const int submit_area = 2131297094;
 			
 			// aapt resource value: 0x7F090347
-			public const int successIcon = 2131297095;
+			public const int subtitle = 2131297095;
+			
+			// aapt resource value: 0x7F090343
+			public const int sub_title_text = 2131297091;
 			
 			// aapt resource value: 0x7F090348
-			public const int surfaceview = 2131297096;
+			public const int successIcon = 2131297096;
+			
+			// aapt resource value: 0x7F090349
+			public const int surfaceview = 2131297097;
 			
 			// aapt resource value: 0x7F09000C
 			public const int SYM = 2131296268;
 			
-			// aapt resource value: 0x7F090349
-			public const int tabMode = 2131297097;
-			
 			// aapt resource value: 0x7F09034A
-			public const int tab_alarmlist_btn = 2131297098;
+			public const int tabMode = 2131297098;
 			
 			// aapt resource value: 0x7F09034B
-			public const int tab_alarmlist_rl = 2131297099;
+			public const int tab_alarmlist_btn = 2131297099;
 			
 			// aapt resource value: 0x7F09034C
-			public const int tab_devicedefence_btn = 2131297100;
+			public const int tab_alarmlist_rl = 2131297100;
 			
 			// aapt resource value: 0x7F09034D
-			public const int tab_devicedefence_rl = 2131297101;
+			public const int tab_devicedefence_btn = 2131297101;
 			
 			// aapt resource value: 0x7F09034E
-			public const int tab_devicepicture_btn = 2131297102;
+			public const int tab_devicedefence_rl = 2131297102;
 			
 			// aapt resource value: 0x7F09034F
-			public const int tab_devicepicture_rl = 2131297103;
+			public const int tab_devicepicture_btn = 2131297103;
 			
 			// aapt resource value: 0x7F090350
-			public const int tab_devicevideo_btn = 2131297104;
+			public const int tab_devicepicture_rl = 2131297104;
 			
 			// aapt resource value: 0x7F090351
-			public const int tab_devicevideo_rl = 2131297105;
+			public const int tab_devicevideo_btn = 2131297105;
 			
 			// aapt resource value: 0x7F090352
-			public const int tab_remoteplayback_btn = 2131297106;
+			public const int tab_devicevideo_rl = 2131297106;
 			
 			// aapt resource value: 0x7F090353
-			public const int tab_remoteplayback_rl = 2131297107;
+			public const int tab_remoteplayback_btn = 2131297107;
 			
 			// aapt resource value: 0x7F090354
-			public const int tab_setdevice_btn = 2131297108;
+			public const int tab_remoteplayback_rl = 2131297108;
 			
 			// aapt resource value: 0x7F090355
-			public const int tab_setdevice_rl = 2131297109;
+			public const int tab_setdevice_btn = 2131297109;
 			
 			// aapt resource value: 0x7F090356
-			public const int tab_video_talk_btn = 2131297110;
+			public const int tab_setdevice_rl = 2131297110;
 			
 			// aapt resource value: 0x7F090357
-			public const int tab_video_talk_rl = 2131297111;
+			public const int tab_video_talk_btn = 2131297111;
 			
 			// aapt resource value: 0x7F090358
-			public const int tag_key_position = 2131297112;
+			public const int tab_video_talk_rl = 2131297112;
 			
 			// aapt resource value: 0x7F090359
-			public const int talkback_close_btn = 2131297113;
+			public const int tag_key_position = 2131297113;
 			
 			// aapt resource value: 0x7F09035A
-			public const int talkback_control_btn = 2131297114;
+			public const int talkback_close_btn = 2131297114;
 			
 			// aapt resource value: 0x7F09035B
-			public const int talkback_rv = 2131297115;
+			public const int talkback_control_btn = 2131297115;
 			
 			// aapt resource value: 0x7F09035C
-			public const int test = 2131297116;
+			public const int talkback_rv = 2131297116;
 			
 			// aapt resource value: 0x7F09035D
-			public const int testWatchDogReboot = 2131297117;
+			public const int test = 2131297117;
 			
 			// aapt resource value: 0x7F09035E
-			public const int text = 2131297118;
+			public const int testWatchDogReboot = 2131297118;
 			
 			// aapt resource value: 0x7F09035F
-			public const int text1 = 2131297119;
+			public const int text = 2131297119;
 			
 			// aapt resource value: 0x7F090360
-			public const int text2 = 2131297120;
+			public const int text1 = 2131297120;
 			
 			// aapt resource value: 0x7F090361
-			public const int text3 = 2131297121;
-			
-			// aapt resource value: 0x7F09036E
-			public const int textinput_counter = 2131297134;
-			
-			// aapt resource value: 0x7F09036F
-			public const int textinput_error = 2131297135;
+			public const int text2 = 2131297121;
 			
 			// aapt resource value: 0x7F090362
-			public const int textSpacerNoButtons = 2131297122;
+			public const int text3 = 2131297122;
 			
-			// aapt resource value: 0x7F090363
-			public const int textSpacerNoTitle = 2131297123;
+			// aapt resource value: 0x7F09036F
+			public const int textinput_counter = 2131297135;
 			
 			// aapt resource value: 0x7F090370
-			public const int textureView_play = 2131297136;
+			public const int textinput_error = 2131297136;
+			
+			// aapt resource value: 0x7F090363
+			public const int textSpacerNoButtons = 2131297123;
+			
+			// aapt resource value: 0x7F090364
+			public const int textSpacerNoTitle = 2131297124;
 			
 			// aapt resource value: 0x7F090371
-			public const int texture_view_play_window = 2131297137;
+			public const int textureView_play = 2131297137;
+			
+			// aapt resource value: 0x7F090372
+			public const int texture_view_play_window = 2131297138;
 			
 			// aapt resource value: 0x7F09000E
 			public const int TextView01 = 2131296270;
@@ -9355,356 +9358,356 @@
 			// aapt resource value: 0x7F09000F
 			public const int TextView03 = 2131296271;
 			
-			// aapt resource value: 0x7F090365
-			public const int text_camerano = 2131297125;
-			
-			// aapt resource value: 0x7F090364
-			public const int text_camera_name = 2131297124;
-			
 			// aapt resource value: 0x7F090366
-			public const int text_device_ip = 2131297126;
+			public const int text_camerano = 2131297126;
+			
+			// aapt resource value: 0x7F090365
+			public const int text_camera_name = 2131297125;
 			
 			// aapt resource value: 0x7F090367
-			public const int text_input_password_toggle = 2131297127;
+			public const int text_device_ip = 2131297127;
 			
 			// aapt resource value: 0x7F090368
-			public const int text_left = 2131297128;
+			public const int text_input_password_toggle = 2131297128;
 			
 			// aapt resource value: 0x7F090369
-			public const int text_my = 2131297129;
+			public const int text_left = 2131297129;
 			
 			// aapt resource value: 0x7F09036A
-			public const int text_right = 2131297130;
+			public const int text_my = 2131297130;
 			
 			// aapt resource value: 0x7F09036B
-			public const int text_serial = 2131297131;
+			public const int text_right = 2131297131;
 			
 			// aapt resource value: 0x7F09036C
-			public const int text_share = 2131297132;
+			public const int text_serial = 2131297132;
 			
 			// aapt resource value: 0x7F09036D
-			public const int text_title = 2131297133;
+			public const int text_share = 2131297133;
 			
-			// aapt resource value: 0x7F090372
-			public const int time = 2131297138;
-			
-			// aapt resource value: 0x7F090375
-			public const int timeline_image = 2131297141;
-			
-			// aapt resource value: 0x7F090376
-			public const int timepicker = 2131297142;
-			
-			// aapt resource value: 0x7F090377
-			public const int timer = 2131297143;
+			// aapt resource value: 0x7F09036E
+			public const int text_title = 2131297134;
 			
 			// aapt resource value: 0x7F090373
-			public const int time_text = 2131297139;
+			public const int time = 2131297139;
 			
-			// aapt resource value: 0x7F090374
-			public const int time_tv = 2131297140;
+			// aapt resource value: 0x7F090376
+			public const int timeline_image = 2131297142;
+			
+			// aapt resource value: 0x7F090377
+			public const int timepicker = 2131297143;
 			
 			// aapt resource value: 0x7F090378
-			public const int tip = 2131297144;
+			public const int timer = 2131297144;
+			
+			// aapt resource value: 0x7F090374
+			public const int time_text = 2131297140;
+			
+			// aapt resource value: 0x7F090375
+			public const int time_tv = 2131297141;
 			
 			// aapt resource value: 0x7F090379
-			public const int title = 2131297145;
+			public const int tip = 2131297145;
 			
 			// aapt resource value: 0x7F09037A
-			public const int titleBar = 2131297146;
+			public const int title = 2131297146;
 			
 			// aapt resource value: 0x7F09037B
-			public const int titleDividerNoCustom = 2131297147;
+			public const int titleBar = 2131297147;
 			
 			// aapt resource value: 0x7F09037C
-			public const int title_bar = 2131297148;
+			public const int titleDividerNoCustom = 2131297148;
 			
 			// aapt resource value: 0x7F09037D
-			public const int title_bar_landscape = 2131297149;
+			public const int title_bar = 2131297149;
 			
 			// aapt resource value: 0x7F09037E
-			public const int title_bar_portrait = 2131297150;
+			public const int title_bar_landscape = 2131297150;
 			
 			// aapt resource value: 0x7F09037F
-			public const int title_layout = 2131297151;
+			public const int title_bar_portrait = 2131297151;
 			
 			// aapt resource value: 0x7F090380
-			public const int title_left = 2131297152;
+			public const int title_layout = 2131297152;
 			
 			// aapt resource value: 0x7F090381
-			public const int title_right = 2131297153;
+			public const int title_left = 2131297153;
 			
 			// aapt resource value: 0x7F090382
-			public const int title_template = 2131297154;
+			public const int title_right = 2131297154;
 			
 			// aapt resource value: 0x7F090383
-			public const int title_text = 2131297155;
+			public const int title_template = 2131297155;
 			
 			// aapt resource value: 0x7F090384
-			public const int title_text_layout = 2131297156;
+			public const int title_text = 2131297156;
 			
 			// aapt resource value: 0x7F090385
-			public const int top = 2131297157;
-			
-			// aapt resource value: 0x7F090388
-			public const int topbar = 2131297160;
-			
-			// aapt resource value: 0x7F090389
-			public const int topbar_right_img = 2131297161;
+			public const int title_text_layout = 2131297157;
 			
 			// aapt resource value: 0x7F090386
-			public const int topPanel = 2131297158;
+			public const int top = 2131297158;
 			
-			// aapt resource value: 0x7F090387
-			public const int topTip = 2131297159;
+			// aapt resource value: 0x7F090389
+			public const int topbar = 2131297161;
 			
 			// aapt resource value: 0x7F09038A
-			public const int touch_loading_buffer_tv = 2131297162;
+			public const int topbar_right_img = 2131297162;
+			
+			// aapt resource value: 0x7F090387
+			public const int topPanel = 2131297159;
+			
+			// aapt resource value: 0x7F090388
+			public const int topTip = 2131297160;
 			
 			// aapt resource value: 0x7F09038B
-			public const int touch_outside = 2131297163;
+			public const int touch_loading_buffer_tv = 2131297163;
 			
 			// aapt resource value: 0x7F09038C
-			public const int touch_progress_layout = 2131297164;
+			public const int touch_outside = 2131297164;
 			
 			// aapt resource value: 0x7F09038D
-			public const int transition_current_scene = 2131297165;
+			public const int touch_progress_layout = 2131297165;
 			
 			// aapt resource value: 0x7F09038E
-			public const int transition_layout_save = 2131297166;
+			public const int transition_current_scene = 2131297166;
 			
 			// aapt resource value: 0x7F09038F
-			public const int transition_position = 2131297167;
+			public const int transition_layout_save = 2131297167;
 			
 			// aapt resource value: 0x7F090390
-			public const int transition_scene_layoutid_cache = 2131297168;
+			public const int transition_position = 2131297168;
 			
 			// aapt resource value: 0x7F090391
-			public const int transition_transform = 2131297169;
+			public const int transition_scene_layoutid_cache = 2131297169;
+			
+			// aapt resource value: 0x7F090392
+			public const int transition_transform = 2131297170;
 			
 			// aapt resource value: 0x7F090010
 			public const int Translate = 2131296272;
 			
-			// aapt resource value: 0x7F090392
-			public const int tvDeviceWifiConfigTip = 2131297170;
-			
 			// aapt resource value: 0x7F090393
-			public const int tvIntroduce1 = 2131297171;
+			public const int tvDeviceWifiConfigTip = 2131297171;
 			
 			// aapt resource value: 0x7F090394
-			public const int tvIntroduce2 = 2131297172;
+			public const int tvIntroduce1 = 2131297172;
 			
 			// aapt resource value: 0x7F090395
-			public const int tvMore = 2131297173;
+			public const int tvIntroduce2 = 2131297173;
 			
 			// aapt resource value: 0x7F090396
-			public const int tvSSID = 2131297174;
+			public const int tvMore = 2131297174;
 			
 			// aapt resource value: 0x7F090397
-			public const int tvStatus = 2131297175;
+			public const int tvSSID = 2131297175;
 			
 			// aapt resource value: 0x7F090398
-			public const int tvSuccess = 2131297176;
+			public const int tvStatus = 2131297176;
 			
 			// aapt resource value: 0x7F090399
-			public const int tvTip = 2131297177;
+			public const int tvSuccess = 2131297177;
 			
 			// aapt resource value: 0x7F09039A
-			public const int tvTitle = 2131297178;
+			public const int tvTip = 2131297178;
 			
 			// aapt resource value: 0x7F09039B
-			public const int tv_adding_to_account = 2131297179;
+			public const int tvTitle = 2131297179;
 			
 			// aapt resource value: 0x7F09039C
-			public const int tv_camera_name = 2131297180;
+			public const int tv_adding_to_account = 2131297180;
 			
 			// aapt resource value: 0x7F09039D
-			public const int tv_connecting_to_device = 2131297181;
+			public const int tv_camera_name = 2131297181;
 			
 			// aapt resource value: 0x7F09039E
-			public const int tv_content = 2131297182;
+			public const int tv_connecting_to_device = 2131297182;
 			
 			// aapt resource value: 0x7F09039F
-			public const int tv_decode_type = 2131297183;
+			public const int tv_content = 2131297183;
 			
 			// aapt resource value: 0x7F0903A0
-			public const int tv_ezviz_account_login = 2131297184;
+			public const int tv_decode_type = 2131297184;
 			
 			// aapt resource value: 0x7F0903A1
-			public const int tv_file_path = 2131297185;
+			public const int tv_ezviz_account_login = 2131297185;
 			
 			// aapt resource value: 0x7F0903A2
-			public const int tv_ok = 2131297186;
+			public const int tv_file_path = 2131297186;
 			
 			// aapt resource value: 0x7F0903A3
-			public const int tv_play_error = 2131297187;
+			public const int tv_ok = 2131297187;
 			
 			// aapt resource value: 0x7F0903A4
-			public const int tv_pwd = 2131297188;
+			public const int tv_play_error = 2131297188;
 			
 			// aapt resource value: 0x7F0903A5
-			public const int tv_registering_to_platform = 2131297189;
+			public const int tv_pwd = 2131297189;
 			
 			// aapt resource value: 0x7F0903A6
-			public const int tv_sdk_ver = 2131297190;
+			public const int tv_registering_to_platform = 2131297190;
 			
 			// aapt resource value: 0x7F0903A7
-			public const int tv_ssid = 2131297191;
+			public const int tv_sdk_ver = 2131297191;
 			
 			// aapt resource value: 0x7F0903A8
-			public const int tv_stream_type = 2131297192;
+			public const int tv_ssid = 2131297192;
 			
 			// aapt resource value: 0x7F0903A9
-			public const int tv_tip = 2131297193;
+			public const int tv_stream_type = 2131297193;
 			
 			// aapt resource value: 0x7F0903AA
-			public const int tv_title = 2131297194;
+			public const int tv_tip = 2131297194;
 			
 			// aapt resource value: 0x7F0903AB
-			public const int tv_zxing_back = 2131297195;
+			public const int tv_title = 2131297195;
 			
 			// aapt resource value: 0x7F0903AC
-			public const int tv_zxing_flash = 2131297196;
+			public const int tv_zxing_back = 2131297196;
 			
 			// aapt resource value: 0x7F0903AD
-			public const int tv_zxing_scan = 2131297197;
+			public const int tv_zxing_flash = 2131297197;
 			
 			// aapt resource value: 0x7F0903AE
-			public const int txtResult = 2131297198;
+			public const int tv_zxing_scan = 2131297198;
 			
 			// aapt resource value: 0x7F0903AF
-			public const int unbind_button = 2131297199;
+			public const int txtResult = 2131297199;
 			
 			// aapt resource value: 0x7F0903B0
-			public const int uniform = 2131297200;
+			public const int unbind_button = 2131297200;
 			
 			// aapt resource value: 0x7F0903B1
-			public const int up = 2131297201;
+			public const int uniform = 2131297201;
 			
 			// aapt resource value: 0x7F0903B2
-			public const int useLogo = 2131297202;
+			public const int up = 2131297202;
 			
 			// aapt resource value: 0x7F0903B3
-			public const int userid_et = 2131297203;
+			public const int useLogo = 2131297203;
 			
 			// aapt resource value: 0x7F0903B4
-			public const int userid_lyt = 2131297204;
+			public const int userid_et = 2131297204;
 			
 			// aapt resource value: 0x7F0903B5
-			public const int uvc = 2131297205;
+			public const int userid_lyt = 2131297205;
 			
 			// aapt resource value: 0x7F0903B6
-			public const int verifycodeEditTextContainer = 2131297206;
+			public const int uvc = 2131297206;
 			
 			// aapt resource value: 0x7F0903B7
-			public const int verifycodeEt = 2131297207;
+			public const int verifycodeEditTextContainer = 2131297207;
 			
 			// aapt resource value: 0x7F0903B8
-			public const int version = 2131297208;
+			public const int verifycodeEt = 2131297208;
 			
 			// aapt resource value: 0x7F0903B9
-			public const int version_arrow = 2131297209;
+			public const int version = 2131297209;
 			
 			// aapt resource value: 0x7F0903BA
-			public const int version_layout = 2131297210;
+			public const int version_arrow = 2131297210;
 			
 			// aapt resource value: 0x7F0903BB
-			public const int version_newest = 2131297211;
+			public const int version_layout = 2131297211;
 			
 			// aapt resource value: 0x7F0903BC
-			public const int version_notice = 2131297212;
+			public const int version_newest = 2131297212;
 			
 			// aapt resource value: 0x7F0903BD
-			public const int vertical = 2131297213;
+			public const int version_notice = 2131297213;
 			
 			// aapt resource value: 0x7F0903BE
-			public const int vg_child_watch_video_talk_camera = 2131297214;
+			public const int vertical = 2131297214;
 			
 			// aapt resource value: 0x7F0903BF
-			public const int vg_child_watch_video_talk_player = 2131297215;
+			public const int vg_child_watch_video_talk_camera = 2131297215;
 			
 			// aapt resource value: 0x7F0903C0
-			public const int vg_child_watch_video_talk_video_container = 2131297216;
+			public const int vg_child_watch_video_talk_player = 2131297216;
 			
 			// aapt resource value: 0x7F0903C1
-			public const int vg_error_tips = 2131297217;
+			public const int vg_child_watch_video_talk_video_container = 2131297217;
 			
 			// aapt resource value: 0x7F0903C2
-			public const int vg_login_anim = 2131297218;
+			public const int vg_error_tips = 2131297218;
 			
 			// aapt resource value: 0x7F0903C3
-			public const int vg_notification_operation_tool_container = 2131297219;
+			public const int vg_login_anim = 2131297219;
 			
 			// aapt resource value: 0x7F0903C4
-			public const int vg_play_info = 2131297220;
+			public const int vg_notification_operation_tool_container = 2131297220;
 			
 			// aapt resource value: 0x7F0903C5
-			public const int vg_play_window = 2131297221;
+			public const int vg_play_info = 2131297221;
 			
 			// aapt resource value: 0x7F0903C6
-			public const int videoBackImg = 2131297222;
+			public const int vg_play_window = 2131297222;
 			
 			// aapt resource value: 0x7F0903C7
-			public const int videoParent = 2131297223;
+			public const int videoBackImg = 2131297223;
 			
 			// aapt resource value: 0x7F0903C8
-			public const int videoTitle = 2131297224;
+			public const int videoParent = 2131297224;
 			
 			// aapt resource value: 0x7F0903C9
-			public const int video_button = 2131297225;
+			public const int videoTitle = 2131297225;
 			
 			// aapt resource value: 0x7F0903CA
-			public const int video_talk_et_room_id = 2131297226;
-			
-			// aapt resource value: 0x7F0903CF
-			public const int viewedCount = 2131297231;
-			
-			// aapt resource value: 0x7F0903D0
-			public const int viewfinder_view = 2131297232;
+			public const int video_button = 2131297226;
 			
 			// aapt resource value: 0x7F0903CB
-			public const int viewSort = 2131297227;
+			public const int video_talk_et_room_id = 2131297227;
 			
-			// aapt resource value: 0x7F0903CC
-			public const int view_child_watch_video_talk_camera = 2131297228;
-			
-			// aapt resource value: 0x7F0903CD
-			public const int view_child_watch_video_talk_player = 2131297229;
-			
-			// aapt resource value: 0x7F0903CE
-			public const int view_offset_helper = 2131297230;
+			// aapt resource value: 0x7F0903D0
+			public const int viewedCount = 2131297232;
 			
 			// aapt resource value: 0x7F0903D1
-			public const int visible = 2131297233;
+			public const int viewfinder_view = 2131297233;
+			
+			// aapt resource value: 0x7F0903CC
+			public const int viewSort = 2131297228;
+			
+			// aapt resource value: 0x7F0903CD
+			public const int view_child_watch_video_talk_camera = 2131297229;
+			
+			// aapt resource value: 0x7F0903CE
+			public const int view_child_watch_video_talk_player = 2131297230;
+			
+			// aapt resource value: 0x7F0903CF
+			public const int view_offset_helper = 2131297231;
 			
 			// aapt resource value: 0x7F0903D2
-			public const int wait_bar = 2131297234;
+			public const int visible = 2131297234;
 			
 			// aapt resource value: 0x7F0903D3
-			public const int wait_tv = 2131297235;
+			public const int wait_bar = 2131297235;
 			
 			// aapt resource value: 0x7F0903D4
-			public const int watting_pb = 2131297236;
-			
-			// aapt resource value: 0x7F0903D6
-			public const int webview = 2131297238;
+			public const int wait_tv = 2131297236;
 			
 			// aapt resource value: 0x7F0903D5
-			public const int web_login_btn = 2131297237;
+			public const int watting_pb = 2131297237;
 			
 			// aapt resource value: 0x7F0903D7
-			public const int wifi_tv = 2131297239;
+			public const int webview = 2131297239;
+			
+			// aapt resource value: 0x7F0903D6
+			public const int web_login_btn = 2131297238;
 			
 			// aapt resource value: 0x7F0903D8
-			public const int withText = 2131297240;
+			public const int wifi_tv = 2131297240;
 			
 			// aapt resource value: 0x7F0903D9
-			public const int wrap = 2131297241;
+			public const int withText = 2131297241;
 			
 			// aapt resource value: 0x7F0903DA
-			public const int wrap_content = 2131297242;
+			public const int wrap = 2131297242;
 			
 			// aapt resource value: 0x7F0903DB
-			public const int year = 2131297243;
+			public const int wrap_content = 2131297243;
+			
+			// aapt resource value: 0x7F0903DC
+			public const int year = 2131297244;
 			
 			static Id()
 			{
@@ -12271,227 +12274,233 @@
 			// aapt resource value: 0x7F0F0256
 			public const int talk = 2131690070;
 			
+			// aapt resource value: 0x7F0F0259
+			public const int talking = 2131690073;
+			
 			// aapt resource value: 0x7F0F0257
-			public const int talking = 2131690071;
+			public const int talk_open_failed = 2131690071;
 			
 			// aapt resource value: 0x7F0F0258
-			public const int tip_heard_voice = 2131690072;
-			
-			// aapt resource value: 0x7F0F0259
-			public const int tip_login_out = 2131690073;
+			public const int talk_open_success = 2131690072;
 			
 			// aapt resource value: 0x7F0F025A
-			public const int tip_of_added_by_yourself_and_online = 2131690074;
+			public const int tip_heard_voice = 2131690074;
 			
 			// aapt resource value: 0x7F0F025B
-			public const int tip_of_bad_net = 2131690075;
+			public const int tip_login_out = 2131690075;
 			
 			// aapt resource value: 0x7F0F025C
-			public const int tip_playback_again = 2131690076;
+			public const int tip_of_added_by_yourself_and_online = 2131690076;
 			
 			// aapt resource value: 0x7F0F025D
-			public const int tip_specified_device = 2131690077;
+			public const int tip_of_bad_net = 2131690077;
 			
 			// aapt resource value: 0x7F0F025E
-			public const int title_activate_device = 2131690078;
+			public const int tip_playback_again = 2131690078;
 			
 			// aapt resource value: 0x7F0F025F
-			public const int title_activate_device_fail = 2131690079;
+			public const int tip_specified_device = 2131690079;
 			
 			// aapt resource value: 0x7F0F0260
-			public const int title_activity_connect_device_wifi = 2131690080;
+			public const int title_activate_device = 2131690080;
 			
 			// aapt resource value: 0x7F0F0261
-			public const int title_activity_ezupgrade_device = 2131690081;
+			public const int title_activate_device_fail = 2131690081;
 			
 			// aapt resource value: 0x7F0F0262
-			public const int today = 2131690082;
+			public const int title_activity_connect_device_wifi = 2131690082;
 			
 			// aapt resource value: 0x7F0F0263
-			public const int touch_fingerprint_sensor_hint = 2131690083;
+			public const int title_activity_ezupgrade_device = 2131690083;
 			
 			// aapt resource value: 0x7F0F0264
-			public const int touch_to_load = 2131690084;
+			public const int today = 2131690084;
 			
 			// aapt resource value: 0x7F0F0265
-			public const int try_again = 2131690085;
+			public const int touch_fingerprint_sensor_hint = 2131690085;
 			
 			// aapt resource value: 0x7F0F0266
-			public const int ui_call_demo_txt = 2131690086;
+			public const int touch_to_load = 2131690086;
 			
 			// aapt resource value: 0x7F0F0267
-			public const int unable_identify_two_dimensional_code_tip = 2131690087;
+			public const int try_again = 2131690087;
 			
 			// aapt resource value: 0x7F0F0268
-			public const int unbind_to_bind = 2131690088;
+			public const int ui_call_demo_txt = 2131690088;
 			
 			// aapt resource value: 0x7F0F0269
-			public const int unknow_ssid = 2131690089;
+			public const int unable_identify_two_dimensional_code_tip = 2131690089;
 			
 			// aapt resource value: 0x7F0F026A
-			public const int unlock_success = 2131690090;
+			public const int unbind_to_bind = 2131690090;
 			
 			// aapt resource value: 0x7F0F026B
-			public const int unnamed = 2131690091;
+			public const int unknow_ssid = 2131690091;
 			
 			// aapt resource value: 0x7F0F026C
-			public const int update_exit = 2131690092;
+			public const int unlock_success = 2131690092;
 			
 			// aapt resource value: 0x7F0F026D
-			public const int upgrade = 2131690093;
+			public const int unnamed = 2131690093;
 			
 			// aapt resource value: 0x7F0F026E
-			public const int upgrade_fail = 2131690094;
+			public const int update_exit = 2131690094;
 			
 			// aapt resource value: 0x7F0F026F
-			public const int upgrade_progress = 2131690095;
+			public const int upgrade = 2131690095;
 			
 			// aapt resource value: 0x7F0F0270
-			public const int upgrade_success = 2131690096;
+			public const int upgrade_fail = 2131690096;
 			
 			// aapt resource value: 0x7F0F0271
-			public const int upgrade_success_progress = 2131690097;
+			public const int upgrade_progress = 2131690097;
 			
 			// aapt resource value: 0x7F0F0272
-			public const int user_name_txt = 2131690098;
+			public const int upgrade_success = 2131690098;
 			
 			// aapt resource value: 0x7F0F0273
-			public const int verify_code_error = 2131690099;
+			public const int upgrade_success_progress = 2131690099;
 			
 			// aapt resource value: 0x7F0F0274
-			public const int verify_sms_code_fail = 2131690100;
+			public const int user_name_txt = 2131690100;
 			
 			// aapt resource value: 0x7F0F0275
-			public const int verify_sms_code_success = 2131690101;
+			public const int verify_code_error = 2131690101;
 			
 			// aapt resource value: 0x7F0F0276
-			public const int version_newest = 2131690102;
+			public const int verify_sms_code_fail = 2131690102;
 			
 			// aapt resource value: 0x7F0F0277
-			public const int video_answer = 2131690103;
+			public const int verify_sms_code_success = 2131690103;
 			
 			// aapt resource value: 0x7F0F0278
-			public const int video_box = 2131690104;
+			public const int version_newest = 2131690104;
 			
 			// aapt resource value: 0x7F0F0279
-			public const int video_confirm = 2131690105;
+			public const int video_answer = 2131690105;
 			
 			// aapt resource value: 0x7F0F027A
-			public const int video_device = 2131690106;
+			public const int video_box = 2131690106;
 			
 			// aapt resource value: 0x7F0F027B
-			public const int video_fail = 2131690107;
+			public const int video_confirm = 2131690107;
 			
 			// aapt resource value: 0x7F0F027C
-			public const int video_hang_up = 2131690108;
+			public const int video_device = 2131690108;
 			
 			// aapt resource value: 0x7F0F027D
-			public const int video_icon = 2131690109;
+			public const int video_fail = 2131690109;
 			
 			// aapt resource value: 0x7F0F027E
-			public const int video_not_answer = 2131690110;
+			public const int video_hang_up = 2131690110;
 			
 			// aapt resource value: 0x7F0F027F
-			public const int video_screenshot = 2131690111;
+			public const int video_icon = 2131690111;
 			
 			// aapt resource value: 0x7F0F0280
-			public const int video_square = 2131690112;
+			public const int video_not_answer = 2131690112;
 			
 			// aapt resource value: 0x7F0F0281
-			public const int video_success = 2131690113;
+			public const int video_screenshot = 2131690113;
 			
 			// aapt resource value: 0x7F0F0282
-			public const int video_talk_call_cancel = 2131690114;
+			public const int video_square = 2131690114;
 			
 			// aapt resource value: 0x7F0F0283
-			public const int video_talk_call_is_accepted = 2131690115;
+			public const int video_success = 2131690115;
 			
 			// aapt resource value: 0x7F0F0284
-			public const int video_talk_is_playing = 2131690116;
+			public const int video_talk_call_cancel = 2131690116;
 			
 			// aapt resource value: 0x7F0F0285
-			public const int video_talk_sdk_toast_hang_up = 2131690117;
+			public const int video_talk_call_is_accepted = 2131690117;
 			
 			// aapt resource value: 0x7F0F0286
-			public const int video_talk_sdk_toast_nobody = 2131690118;
+			public const int video_talk_is_playing = 2131690118;
 			
 			// aapt resource value: 0x7F0F0287
-			public const int video_talk_signal_weak = 2131690119;
+			public const int video_talk_sdk_toast_hang_up = 2131690119;
 			
 			// aapt resource value: 0x7F0F0288
-			public const int video_talk_watch_is_busy = 2131690120;
+			public const int video_talk_sdk_toast_nobody = 2131690120;
 			
 			// aapt resource value: 0x7F0F0289
-			public const int video_talk_watch_temperature_high_hang = 2131690121;
+			public const int video_talk_signal_weak = 2131690121;
 			
 			// aapt resource value: 0x7F0F028A
-			public const int video_talk_watch_temperature_high_hint = 2131690122;
+			public const int video_talk_watch_is_busy = 2131690122;
 			
 			// aapt resource value: 0x7F0F028B
-			public const int video_talk_watch_temperature_high_reject = 2131690123;
+			public const int video_talk_watch_temperature_high_hang = 2131690123;
 			
 			// aapt resource value: 0x7F0F028C
-			public const int video_talk_watch_temperature_high_warn = 2131690124;
+			public const int video_talk_watch_temperature_high_hint = 2131690124;
 			
 			// aapt resource value: 0x7F0F028D
-			public const int video_tip = 2131690125;
+			public const int video_talk_watch_temperature_high_reject = 2131690125;
 			
 			// aapt resource value: 0x7F0F028E
-			public const int video_unlock = 2131690126;
+			public const int video_talk_watch_temperature_high_warn = 2131690126;
 			
 			// aapt resource value: 0x7F0F028F
-			public const int wait = 2131690127;
+			public const int video_tip = 2131690127;
 			
 			// aapt resource value: 0x7F0F0290
-			public const int web_login_button_txt = 2131690128;
+			public const int video_unlock = 2131690128;
 			
 			// aapt resource value: 0x7F0F0291
-			public const int wechat_interconnect = 2131690129;
+			public const int wait = 2131690129;
 			
 			// aapt resource value: 0x7F0F0292
-			public const int wifi_connected = 2131690130;
+			public const int web_login_button_txt = 2131690130;
 			
 			// aapt resource value: 0x7F0F0293
-			public const int wifi_connection_finish_need_refresh = 2131690131;
+			public const int wechat_interconnect = 2131690131;
 			
 			// aapt resource value: 0x7F0F0294
-			public const int wifi_set = 2131690132;
+			public const int wifi_connected = 2131690132;
 			
 			// aapt resource value: 0x7F0F0295
-			public const int wifi_setting = 2131690133;
+			public const int wifi_connection_finish_need_refresh = 2131690133;
 			
 			// aapt resource value: 0x7F0F0296
-			public const int wired_connection = 2131690134;
-			
-			// aapt resource value: 0x7F0F0298
-			public const int xlistview_footer_hint_normal = 2131690136;
+			public const int wifi_set = 2131690134;
 			
 			// aapt resource value: 0x7F0F0297
-			public const int xlistview_footer_hint_no_more_device = 2131690135;
+			public const int wifi_setting = 2131690135;
 			
-			// aapt resource value: 0x7F0F0299
-			public const int xlistview_footer_hint_ready = 2131690137;
+			// aapt resource value: 0x7F0F0298
+			public const int wired_connection = 2131690136;
 			
 			// aapt resource value: 0x7F0F029A
-			public const int xlistview_footer_no_more = 2131690138;
+			public const int xlistview_footer_hint_normal = 2131690138;
+			
+			// aapt resource value: 0x7F0F0299
+			public const int xlistview_footer_hint_no_more_device = 2131690137;
 			
 			// aapt resource value: 0x7F0F029B
-			public const int xlistview_footer_no_more_msg = 2131690139;
+			public const int xlistview_footer_hint_ready = 2131690139;
 			
 			// aapt resource value: 0x7F0F029C
-			public const int xlistview_header_hint_loading = 2131690140;
+			public const int xlistview_footer_no_more = 2131690140;
 			
 			// aapt resource value: 0x7F0F029D
-			public const int xlistview_header_hint_more = 2131690141;
+			public const int xlistview_footer_no_more_msg = 2131690141;
 			
 			// aapt resource value: 0x7F0F029E
-			public const int xlistview_header_hint_normal = 2131690142;
+			public const int xlistview_header_hint_loading = 2131690142;
 			
 			// aapt resource value: 0x7F0F029F
-			public const int xlistview_header_hint_ready = 2131690143;
+			public const int xlistview_header_hint_more = 2131690143;
 			
 			// aapt resource value: 0x7F0F02A0
-			public const int xlistview_header_last_time = 2131690144;
+			public const int xlistview_header_hint_normal = 2131690144;
+			
+			// aapt resource value: 0x7F0F02A1
+			public const int xlistview_header_hint_ready = 2131690145;
+			
+			// aapt resource value: 0x7F0F02A2
+			public const int xlistview_header_last_time = 2131690146;
 			
 			static String()
 			{
diff --git a/HDL-ON_Android/Resources/layout/activity_video_phone.xml b/HDL-ON_Android/Resources/layout/activity_video_phone.xml
index e5116dd..2c9e2b4 100644
--- a/HDL-ON_Android/Resources/layout/activity_video_phone.xml
+++ b/HDL-ON_Android/Resources/layout/activity_video_phone.xml
@@ -30,7 +30,8 @@
 			android:text="@string/video_device"/>
 	</RelativeLayout>
 
-	<LinearLayout
+	<FrameLayout
+		android:id="@+id/live_window"
 		android:layout_width="match_parent"
 		android:layout_height="0dp"
 		android:layout_weight="210"
@@ -48,7 +49,7 @@
 			android:layout_width="match_parent"
 			android:layout_height="match_parent"/>
 
-	</LinearLayout>
+	</FrameLayout>
 
 	<LinearLayout
 		android:layout_width="match_parent"
diff --git a/HDL-ON_Android/Resources/values-zh/strings.xml b/HDL-ON_Android/Resources/values-zh/strings.xml
index 9a13152..4636041 100644
--- a/HDL-ON_Android/Resources/values-zh/strings.xml
+++ b/HDL-ON_Android/Resources/values-zh/strings.xml
@@ -18,4 +18,6 @@
 	<string name="on_the_phone">閫氳瘽涓�...</string>
 	<string name="unlock_success">寮�閿佹垚鍔�</string>
 	<string name="screenshot_success">鎴浘鎴愬姛</string>
+	<string name="talk_open_success">瀵硅寮�濮�</string>
+	<string name="talk_open_failed">瀵硅鎵撳紑澶辫触</string>
 </resources>
\ No newline at end of file
diff --git a/HDL-ON_Android/Resources/values/strings.xml b/HDL-ON_Android/Resources/values/strings.xml
index 00d8ad7..948af94 100644
--- a/HDL-ON_Android/Resources/values/strings.xml
+++ b/HDL-ON_Android/Resources/values/strings.xml
@@ -17,5 +17,7 @@
         <string name="on_the_phone">On the phone</string>
         <string name="unlock_success">Unlock successfully</string>
         <string name="screenshot_success">Screenshot successfully</string>
+    <string name="talk_open_success">Intercom Begin</string>
+    <string name="talk_open_failed">Intercom failed to open</string>
 
 </resources>
\ No newline at end of file
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libGMCrypto.so b/HDL-ON_Android/libs/armeabi-v7a/libGMCrypto.so
new file mode 100644
index 0000000..426d9a0
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libGMCrypto.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libLCOpenApiClient.so b/HDL-ON_Android/libs/armeabi-v7a/libLCOpenApiClient.so
new file mode 100644
index 0000000..1c970f7
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libLCOpenApiClient.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libLechangeSDK.so b/HDL-ON_Android/libs/armeabi-v7a/libLechangeSDK.so
new file mode 100644
index 0000000..29b0cd2
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libLechangeSDK.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libSmartConfig.so b/HDL-ON_Android/libs/armeabi-v7a/libSmartConfig.so
new file mode 100644
index 0000000..4f557b3
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libSmartConfig.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libSoftAPConfig.so b/HDL-ON_Android/libs/armeabi-v7a/libSoftAPConfig.so
new file mode 100644
index 0000000..bb7fb84
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libSoftAPConfig.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libconfigsdk.so b/HDL-ON_Android/libs/armeabi-v7a/libconfigsdk.so
new file mode 100644
index 0000000..e786702
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libconfigsdk.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libgnustl_shared.so b/HDL-ON_Android/libs/armeabi-v7a/libgnustl_shared.so
new file mode 100644
index 0000000..ab79e66
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libgnustl_shared.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libjninetsdk.so b/HDL-ON_Android/libs/armeabi-v7a/libjninetsdk.so
new file mode 100644
index 0000000..ee4b507
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libjninetsdk.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libnetsdk.so b/HDL-ON_Android/libs/armeabi-v7a/libnetsdk.so
new file mode 100644
index 0000000..7c759a1
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libnetsdk.so
Binary files differ
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index 0dff2f0..15f7215 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -92,11 +92,14 @@
         <Reference Include="EZSDK.IOS">
           <HintPath>..\DLL\IOS\EZSDK.IOS.dll</HintPath>
         </Reference>
+        <Reference Include="Shared.IOS">
+          <HintPath>..\DLL\Shared.IOS.dll</HintPath>
+        </Reference>
         <Reference Include="Shared.IOS.ESVideoOnSDK">
           <HintPath>..\DLL\FL\iOS\Shared.IOS.ESVideoOnSDK.dll</HintPath>
         </Reference>
-        <Reference Include="Shared.IOS">
-          <HintPath>..\DLL\Shared.IOS.dll</HintPath>
+        <Reference Include="Shared.IOS.LCVideoOnSDK">
+          <HintPath>..\DLL\LC\IOS\Shared.IOS.LCVideoOnSDK.dll</HintPath>
         </Reference>
     </ItemGroup>
     <ItemGroup>
diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini
index bbdcdd6..98e2f4c 100644
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -789,7 +789,7 @@
 6081=Select IR brand
 6082=Shaking
 6083=Low speed
-6084=Medium speed
+6084=Wind Speed Switch 
 6085=High speed
 6086=Auto
 6087=Temperature+
@@ -830,6 +830,15 @@
 7133=Executed
 7134=Target State
 7135=Tumble
+7136=Temperature
+7137=Humidity
+7138=PM2.5
+7139=CO2
+7140=TVOC
+7141=Exceeding
+7142=Serious
+7143=High
+7144=excellence
  
  
 6000=Rename
@@ -1856,7 +1865,7 @@
 6081=閫夋嫨绾㈠鍝佺墝
 6082=鎽囧ご
 6083=浣庨��
-6084=涓��
+6084=椋庨�熷垏鎹�
 6085=楂橀��
 6086=鑷姩
 6087=娓╁害+
@@ -2006,6 +2015,15 @@
 7133=宸叉墽琛�
 7134=鐩爣鐘舵��
 7135=璺屽��
+7136=娓╁害
+7137=婀垮害
+7138=PM2.5
+7139=CO2
+7140=TVOC
+7141=瓒呮爣
+7142=涓ラ噸
+7143=鍋忛珮
+7144=浼樼
  
 9000=璇蜂娇鐢ㄦ柊鐨勬墜鏈鸿处鍙风櫥褰旳PP
 9001=璇蜂娇鐢ㄦ柊鐨勯偖绠辫处鍙风櫥褰旳PP
diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs
index 50dee7c..31d4229 100644
--- a/HDL_ON/Common/ApiUtlis.cs
+++ b/HDL_ON/Common/ApiUtlis.cs
@@ -4,6 +4,8 @@
 using HDL_ON.DAL;
 using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
+using HDL_ON.UI.UI2.FuntionControlView.Video;
+using Newtonsoft.Json;
 using Shared;
 
 namespace HDL_ON.Common
@@ -106,6 +108,26 @@
                 }
                 endTime = DateTime.Now.AddSeconds(5);
                 MainPage.Log($"鍒锋柊涓汉淇℃伅鎴愬姛");
+
+                //int count = 0;
+                //while (count < 10)
+                //{
+                //    if (DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
+                //    {
+                //        System.Threading.Thread.Sleep(200);
+                //    }
+                //    else
+                //    {
+                //        break;
+                //    }
+                //    count++;
+                //}
+                //if (DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
+                //{
+                //    return;
+                //}
+
+
                 try
                 {
                     //===================鎴块棿=======================
@@ -229,15 +251,31 @@
                         MainPage.Log($"璇诲彇浜戠鍦烘櫙鏁版嵁澶辫触:Code:{pack.Code}; Msg:{pack.message}");
                     }
 
-                    //===================璇诲彇瀹夐槻鍒楄〃==========================
-                    GetSecurityList();
                     //===================璇诲彇閫昏緫鍒楄〃==========================
                     UI.UI2.Intelligence.Automation.MainView.GetLogicList();
+
                     //===================璇诲彇鍙瀵硅鏁版嵁==========================
-                    var flVideoInfo = HttpRequest.CheckFlVideo();
-                    if(flVideoInfo.Code == StateCode.SUCCESS)
+                    //鍒ゆ柇鏄惁鏈夊彲瑙嗗璁叉暟鎹紝鏈夊垯鏄剧ず鍙瀵硅icon
+                    //var flVideoInfo = HttpRequest.CheckFlVideo();
+                    //if(flVideoInfo.Code == StateCode.SUCCESS)
+                    //{
+                    //    FunctionList.List.videoIntercom1111 = Newtonsoft.Json.JsonConvert.DeserializeObject<UI.UI2.FuntionControlView.Video.VideoClouds>(flVideoInfo.Data.ToString());
+                    //}
+
+                    //======================鑾峰彇鍙瀵硅璁惧鍒楄〃====================
+                    var videoInfo= VideoSend.GetVideoInfoList();
+                    if (videoInfo.Code == StateCode.SUCCESS)
                     {
-                        FunctionList.List.videoIntercom = Newtonsoft.Json.JsonConvert.DeserializeObject<UI.UI2.FuntionControlView.Video.VideoClouds>(flVideoInfo.Data.ToString());
+                        string videoList = videoInfo.Data.ToString();
+                        FunctionList.List.videoIntercom = JsonConvert.DeserializeObject<List<UI.UI2.FuntionControlView.Video.Video>>(videoList);
+
+                        foreach (var video in FunctionList.List.videoIntercom)
+                        {
+                            if (video.interphoneType == "IMOUVISIAL")
+                            {
+                                UI.UI2.PersonalCenter.PirDevice.PirSend.LcSubAccessToken = video.subAccountToken;
+                            }
+                        }
                     }
 
                 }
diff --git a/HDL_ON/Common/Constant.cs b/HDL_ON/Common/Constant.cs
index 9f79b2f..a5c0598 100644
--- a/HDL_ON/Common/Constant.cs
+++ b/HDL_ON/Common/Constant.cs
@@ -264,6 +264,10 @@
         /// 瀹夐槻鎶ヨ
         /// </summary>
         SecurityAlarm,
+        /// <summary>
+        /// HDL鍙瀵硅
+        /// </summary>
+        HDL_INTERPHONE,
     }
 
     /// <summary>
diff --git a/HDL_ON/Common/HDLCommon.cs b/HDL_ON/Common/HDLCommon.cs
index 0bdaf43..d7de09c 100644
--- a/HDL_ON/Common/HDLCommon.cs
+++ b/HDL_ON/Common/HDLCommon.cs
@@ -295,7 +295,27 @@
                             eSVideoInfo.ESVideoUUID = eSVideoInfo.uuid;
                         }
 
-                        ESOnVideo.Current.ShowESvideoVideoIntercom(eSVideoInfo);
+                        ESOnVideo.Current.ShowESvideoVideoIntercom(eSVideoInfo, "FLVI");
+
+                    }
+                    else if (jpushMessageInfo.messageType.Contains(PushMessageType.HDL_INTERPHONE.ToString()))
+                    {
+                        if (string.IsNullOrEmpty(jpushMessageInfo.expantContent)) return;
+
+                        //瀛楁鍏煎闂锛屽彧鑳界洿鎺ュ彇鍊间簡
+                        var json= Newtonsoft.Json.Linq.JObject.Parse(jpushMessageInfo.expantContent);
+                        ESVideoInfo eSVideoInfo = new ESVideoInfo();// GetESOnVideoJson(jpushMessageInfo.expantContent);
+                        eSVideoInfo.callId = json["callId"].ToString();
+                        //eSVideoInfo.Lc_AccessToken = UI.UI2.PersonalCenter.PirDevice.PirSend.LcSubAccessToken;//json["subAccountToken"].ToString();//
+                        eSVideoInfo.Lc_AccessToken = json["subAccountToken"].ToString();//2021-05-13 鐩墠浜戠杩樻病鎷垮埌Lc_AccessToken锛岀洰鍓嶆病鍔炴硶姝e父浣跨敤
+                        eSVideoInfo.Lc_DeviceId = json["deviceId"].ToString();
+                        eSVideoInfo.Lc_Location = OnAppConfig.Instance.RequestHttpsHost.Contains("China") ? 0 : 1;
+                        eSVideoInfo.Lc_PlayToken = json["token"].ToString();
+                        eSVideoInfo.Lc_Psk = json["cname"].ToString();
+
+                        if (eSVideoInfo == null) return;
+
+                        ESOnVideo.Current.ShowESvideoVideoIntercom(eSVideoInfo, "IMOUVISIAL");
 
                     }
                     else if(jpushMessageInfo.messageType.Contains(PushMessageType.Prompt.ToString()))
@@ -311,7 +331,7 @@
         }
 
         /// <summary>
-        /// 
+        /// 瑙f瀽涓版灄鍙瀵硅鎺ㄩ�佹暟鎹�
         /// </summary>
         /// <param name="jsonStr"></param>
         /// <returns></returns>
diff --git a/HDL_ON/Common/OnAppConfig.cs b/HDL_ON/Common/OnAppConfig.cs
index 99a7de5..dd65de5 100644
--- a/HDL_ON/Common/OnAppConfig.cs
+++ b/HDL_ON/Common/OnAppConfig.cs
@@ -80,7 +80,7 @@
         /// <summary>
         ///  璐﹀彿娉ㄥ唽鏈嶅姟鍣ㄤ俊鎭�
         /// </summary>
-        public string RequestHttpsHost ="https://china.hdlcontrol.com";
+        public string RequestHttpsHost = "https://china.hdlcontrol.com";
         /// <summary>
         /// 
         /// </summary>
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index 3e8ecd9..2c291a5 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -565,40 +565,40 @@
         public const int LoginByEmail = 4;
 
 
-        /// <summary>
-        /// 瀹ゅ唴婀垮害
+        /// <summary>
+        /// 瀹ゅ唴婀垮害
         /// </summary>
         public const int IndoorHumidity = 1000;
-        /// <summary>
-        /// 绔ラ攣
+        /// <summary>
+        /// 绔ラ攣
         /// </summary>
         public const int V_chip = 1001;
-        /// <summary>
-        /// 璐熺瀛�
+        /// <summary>
+        /// 璐熺瀛�
         /// </summary>
         public const int Anion = 1002;
-        /// <summary>
-        /// 鏉�鑿�
+        /// <summary>
+        /// 鏉�鑿�
         /// </summary>
         public const int Sterilization = 1003;
-        /// <summary>
-        /// 鍔犳箍
+        /// <summary>
+        /// 鍔犳箍
         /// </summary>
-        public const int Humidification = 1004;
-        /// <summary>
-        /// 婊よ姱澶嶄綅
+        public const int Humidification = 1004;
+        /// <summary>
+        /// 婊よ姱澶嶄綅
         /// </summary>
-        public const int FilterElementReset = 1005;
-        /// <summary>
-        /// 鐏厜
+        public const int FilterElementReset = 1005;
+        /// <summary>
+        /// 鐏厜
         /// </summary>
-        public const int Lighting = 1006;
-        /// <summary>
-        /// 鑷姩妯″紡
+        public const int Lighting = 1006;
+        /// <summary>
+        /// 鑷姩妯″紡
         /// </summary>
-        public const int AutoMode = 1007;
-        /// <summary>
-        /// 鎵嬪姩妯″紡
+        public const int AutoMode = 1007;
+        /// <summary>
+        /// 鎵嬪姩妯″紡
         /// </summary>
         public const int HandMode = 1008;
         /// <summary>
@@ -613,96 +613,96 @@
         /// 瀹氭椂
         /// </summary>
         public const int Timing = 1011;
-        /// <summary>
-        /// 閫夋嫨椋庨��
+        /// <summary>
+        /// 閫夋嫨椋庨��
         /// </summary>
-        public const int WindSpeedSelection = 1012;
-        /// <summary>
-        /// 妗�
+        public const int WindSpeedSelection = 1012;
+        /// <summary>
+        /// 妗�
         /// </summary>
-        public const int Gear = 1013;
-        /// <summary>
-        /// 璇风‘璁ゆ槸鍚﹀凡瀹為檯閲嶇疆婊よ姱骞舵寜{0}鐓ц鏄庝功瑕佹眰鎿嶄綔璁惧杩涜婊よ姱{0}瀵垮懡閲嶆柊璁℃椂
+        public const int Gear = 1013;
+        /// <summary>
+        /// 璇风‘璁ゆ槸鍚﹀凡瀹為檯閲嶇疆婊よ姱骞舵寜{0}鐓ц鏄庝功瑕佹眰鎿嶄綔璁惧杩涜婊よ姱{0}瀵垮懡閲嶆柊璁℃椂
         /// </summary>
-        public const int FilterElementResetMsg = 1014;
-        /// <summary>
-        /// 浣庢。
+        public const int FilterElementResetMsg = 1014;
+        /// <summary>
+        /// 浣庢。
         /// </summary>
-        public const int LowGear = 1015;
-        /// <summary>
-        /// 涓。
+        public const int LowGear = 1015;
+        /// <summary>
+        /// 涓。
         /// </summary>
-        public const int MidGear = 1016;
-        /// <summary>
-        /// 楂樻。
+        public const int MidGear = 1016;
+        /// <summary>
+        /// 楂樻。
         /// </summary>
         public const int HeightGear = 1017;
-        /// <summary>
-        /// 瀹氭椂璁剧疆
+        /// <summary>
+        /// 瀹氭椂璁剧疆
         /// </summary>
         public const int TimingSetting = 1018;
-        /// <summary>
-        /// 灏忔椂
+        /// <summary>
+        /// 灏忔椂
         /// </summary>
         public const int Hour1 = 1019;
-        /// <summary>
-        /// 婊よ姱浣跨敤锛�
+        /// <summary>
+        /// 婊よ姱浣跨敤锛�
         /// </summary>
         public const int UseOfFilterElement = 1020;
-        /// <summary>
-        /// 绌烘皵鍑�鍖栧櫒
+        /// <summary>
+        /// 绌烘皵鍑�鍖栧櫒
         /// </summary>
         public const int AirCleaner = 1021;
-        /// <summary>
-        /// 褰撳墠椋庨��
+        /// <summary>
+        /// 褰撳墠椋庨��
         /// </summary>
-        public const int CurrentWindSpeed = 1022;
-        /// <summary>
-        /// 鍙栨秷瀹氭椂
+        public const int CurrentWindSpeed = 1022;
+        /// <summary>
+        /// 鍙栨秷瀹氭椂
         /// </summary>
-        public const int CancelTiming = 1023;
-        /// <summary>
-        /// 鎵湴鏈哄櫒浜�
+        public const int CancelTiming = 1023;
+        /// <summary>
+        /// 鎵湴鏈哄櫒浜�
         /// </summary>
         public const int WeepRobot = 1024;
-        /// <summary>
-        /// 鍚稿姏璋冭妭
+        /// <summary>
+        /// 鍚稿姏璋冭妭
         /// </summary>
         public const int SuctionAdjustment = 1025;
-        /// <summary>
-        /// 鍚稿姏1妗�
+        /// <summary>
+        /// 鍚稿姏1妗�
         /// </summary>
         public const int SuctionOneGear = 1026;
-        /// <summary>
-        /// 鍚稿姏2妗�
+        /// <summary>
+        /// 鍚稿姏2妗�
         /// </summary>
         public const int SuctionTwoGear = 1027;
-        /// <summary>
-        /// 鍚稿姏3妗�
+        /// <summary>
+        /// 鍚稿姏3妗�
         /// </summary>
         public const int SuctionThreeGear = 1028;
-        /// <summary>
-        /// 鍏呯數
+        /// <summary>
+        /// 鍏呯數
         /// </summary>
         public const int Charge = 1029;
-        /// <summary>
-        /// 澹伴煶
+        /// <summary>
+        /// 澹伴煶
         /// </summary>
-        public const int Voice = 1030;
-        /// <summary>
-        /// 闈欓煶
+        public const int Voice = 1030;
+        /// <summary>
+        /// 闈欓煶
         /// </summary>
-        public const int Mute = 1031;
-        /// <summary>
-        /// 娓呮壂妯″紡
+        public const int Mute = 1031;
+        /// <summary>
+        /// 娓呮壂妯″紡
         /// </summary>
         public const int CleanMode = 1032;
-        /// <summary>
-        /// 鑰楁潗绠$悊
+        /// <summary>
+        /// 鑰楁潗绠$悊
         /// </summary>
         public const int ConsumablesManagement = 1033;
-        /// <summary>
-        /// 鍘嗗彶璁板綍
+        /// <summary>
+        /// 鍘嗗彶璁板綍
         /// </summary>
         public const int HistoryLog = 1034;
         /// <summary>
@@ -764,367 +764,367 @@
         /// <summary>
         /// 鏄惁閲嶇疆婊ょ綉
         /// </summary>
-        public const int ResetFilterScreenMsg = 1049;
+        public const int ResetFilterScreenMsg = 1049;
         /// <summary>
         /// 娣诲姞璁惧
         /// </summary>
         public const int AddDevice = 1050;
-        /// <summary>
-        /// mini鏅鸿兘閬ユ帶鍣�
+        /// <summary>
+        /// mini鏅鸿兘閬ユ帶鍣�
         /// </summary>
-        public const int MiniIntelligentRemoteControl = 1051;
-        /// <summary>
-        /// 娣诲姞绾㈠閬ユ帶
+        public const int MiniIntelligentRemoteControl = 1051;
+        /// <summary>
+        /// 娣诲姞绾㈠閬ユ帶
         /// </summary>
-        public const int AddInfraredRemoteControl = 1052;
-        /// <summary>
-        /// 闀挎寜绾㈠閬ユ帶鍣ㄦ寜閽�10绉掞紝鎸囩ず鐏摑鑹插揩闂�
+        public const int AddInfraredRemoteControl = 1052;
+        /// <summary>
+        /// 闀挎寜绾㈠閬ユ帶鍣ㄦ寜閽�10绉掞紝鎸囩ず鐏摑鑹插揩闂�
         /// </summary>
-        public const int AddInfraredRemoteControlMsg1 = 1053;
-        /// <summary>
-        /// 璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
+        public const int AddInfraredRemoteControlMsg1 = 1053;
+        /// <summary>
+        /// 璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
         /// </summary>
-        public const int AddInfraredRemoteControlMsg2 = 1054;
-        /// <summary>
-        /// 涓嬩竴姝�
+        public const int AddInfraredRemoteControlMsg2 = 1054;
+        /// <summary>
+        /// 涓嬩竴姝�
         /// </summary>
         public const int Next = 1055;
-        /// <summary>
-        /// 璁惧鎼滅储涓�...
+        /// <summary>
+        /// 璁惧鎼滅储涓�...
         /// </summary>
-        public const int SearchingDevice = 1056;
-        /// <summary>
-        /// 娌℃湁鍙戠幇绾㈠閬ユ帶鍣�
+        public const int SearchingDevice = 1056;
+        /// <summary>
+        /// 娌℃湁鍙戠幇绾㈠閬ユ帶鍣�
         /// </summary>
-        public const int NoInfraredRemoteControlFound = 1057;
-        /// <summary>
-        /// 1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽妫�鏌ヨ摑鐗欏姛鑳芥槸鍚︽甯稿紑鍚瘂0}3銆佽妫�鏌ユ寚绀虹伅鏄惁钃濊壊蹇棯鐘舵��
+        public const int NoInfraredRemoteControlFound = 1057;
+        /// <summary>
+        /// 1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽妫�鏌ヨ摑鐗欏姛鑳芥槸鍚︽甯稿紑鍚瘂0}3銆佽妫�鏌ユ寚绀虹伅鏄惁钃濊壊蹇棯鐘舵��
         /// </summary>
         public const int AddInfraredRemoteControlMsg3 = 1058;
-        /// <summary>
-        /// 閲嶆柊鎼滅储
+        /// <summary>
+        /// 閲嶆柊鎼滅储
         /// </summary>
-        public const int ReSearch = 1059;
-        /// <summary>
-        /// 杩炴帴WiFi
+        public const int ReSearch = 1059;
+        /// <summary>
+        /// 杩炴帴WiFi
         /// </summary>
-        public const int ConnectWiFi = 1060;
-        /// <summary>
-        /// 鐩墠鍙敮鎸�2.4G WiFi缃戠粶{0}鏆備笉鏀寔甯︽湁涓枃瀛楃鐨刉iFi鍚嶇О
+        public const int ConnectWiFi = 1060;
+        /// <summary>
+        /// 鐩墠鍙敮鎸�2.4G WiFi缃戠粶{0}鏆備笉鏀寔甯︽湁涓枃瀛楃鐨刉iFi鍚嶇О
         /// </summary>
-        public const int AddInfraredRemoteControlMsg4 = 1061;
-        /// <summary>
-        /// 瀵嗙爜
+        public const int AddInfraredRemoteControlMsg4 = 1061;
+        /// <summary>
+        /// 瀵嗙爜
         /// </summary>
         public const int Password = 1062;
-        /// <summary>
-        /// 姝e湪杩炴帴涓�...
+        /// <summary>
+        /// 姝e湪杩炴帴涓�...
         /// </summary>
-        public const int NowConnectting = 1063;
-        /// <summary>
-        /// 璇疯绾㈠閬ユ帶灏介噺鎺ヨ繎WIFI璺敱鍣�
+        public const int NowConnectting = 1063;
+        /// <summary>
+        /// 璇疯绾㈠閬ユ帶灏介噺鎺ヨ繎WIFI璺敱鍣�
         /// </summary>
-        public const int AddInfraredRemoteControlMsg5 = 1064;
-        /// <summary>
-        /// 缃戠粶閾炬帴涓�
+        public const int AddInfraredRemoteControlMsg5 = 1064;
+        /// <summary>
+        /// 缃戠粶閾炬帴涓�
         /// </summary>
-        public const int InTheNetworkLink = 1065;
-        /// <summary>
-        /// 涓婁紶鍒颁簯
+        public const int InTheNetworkLink = 1065;
+        /// <summary>
+        /// 涓婁紶鍒颁簯
         /// </summary>
-        public const int UploadToCloud = 1066;
-        /// <summary>
-        /// 杩炴帴鎴愬姛
+        public const int UploadToCloud = 1066;
+        /// <summary>
+        /// 杩炴帴鎴愬姛
         /// </summary>
-        public const int ConnectSuccess = 1067;
-        /// <summary>
-        /// 1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽寮�鍚摑鐗欏姛鑳絳0}3銆佸苟闀挎寜鎸夐挳10s锛屾寚绀虹伅甯镐寒
+        public const int ConnectSuccess = 1067;
+        /// <summary>
+        /// 1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽寮�鍚摑鐗欏姛鑳絳0}3銆佸苟闀挎寜鎸夐挳10s锛屾寚绀虹伅甯镐寒
         /// </summary>
         public const int AddInfraredRemoteControlMsg6 = 1068;
-        /// <summary>
-        /// 娣诲姞澶辫触
+        /// <summary>
+        /// 娣诲姞澶辫触
         /// </summary>
-        public const int AddFail = 1069;
-        /// <summary>
-        /// 娣诲姞鎴愬姛
+        public const int AddFail = 1069;
+        /// <summary>
+        /// 娣诲姞鎴愬姛
         /// </summary>
-        public const int AddSuccess = 1070;
-        /// <summary>
-        /// 鍙互寮�濮嬩娇鐢ㄧ孩澶栭仴鎺у姛鑳斤紒
+        public const int AddSuccess = 1070;
+        /// <summary>
+        /// 鍙互寮�濮嬩娇鐢ㄧ孩澶栭仴鎺у姛鑳斤紒
         /// </summary>
         public const int AddInfraredRemoteControlMsg7 = 1071;
-        /// <summary>
-        /// 寮�濮嬩娇鐢�
+        /// <summary>
+        /// 寮�濮嬩娇鐢�
         /// </summary>
         public const int StartUse = 1072;
-        /// <summary>
-        /// 璇锋墦寮�钃濈墮
+        /// <summary>
+        /// 璇锋墦寮�钃濈墮
         /// </summary>
         public const int PleaseTurnOnBluetooth = 1073;
-        /// <summary>
-        /// 浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
+        /// <summary>
+        /// 浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
         /// </summary>
-        public const int GbsIsNotAvailable = 1074;
-        /// <summary>
-        /// 缃戠粶涓嶅彲鐢�
+        public const int GbsIsNotAvailable = 1074;
+        /// <summary>
+        /// 缃戠粶涓嶅彲鐢�
         /// </summary>
         public const int NetworkIsNotAvailable = 1075;
-        /// <summary>
-        /// 閫夋嫨绾㈠閬ユ帶鍣�
+        /// <summary>
+        /// 閫夋嫨绾㈠閬ユ帶鍣�
         /// </summary>
-        public const int ChooseInfraredRemoteControl = 1076;
-        /// <summary>
-        /// 鏂伴
+        public const int ChooseInfraredRemoteControl = 1076;
+        /// <summary>
+        /// 鏂伴
         /// </summary>
-        public const int AirFresh = 1077;
-        /// <summary>
-        /// 褰撳墠婊ょ綉鍓╀綑
+        public const int AirFresh = 1077;
+        /// <summary>
+        /// 褰撳墠婊ょ綉鍓╀綑
         /// </summary>
-        public const int ResidualFilterScreen = 1078;
-        /// <summary>
-        /// 鑺傝兘
+        public const int ResidualFilterScreen = 1078;
+        /// <summary>
+        /// 鑺傝兘
         /// </summary>
-        public const int Energy = 1079;
-        /// <summary>
-        /// 閫氶
+        public const int Energy = 1079;
+        /// <summary>
+        /// 閫氶
         /// </summary>
-        public const int Ventilated = 1080;
-        /// <summary>
-        /// 1妗�
+        public const int Ventilated = 1080;
+        /// <summary>
+        /// 1妗�
         /// </summary>
         public const int OneGear = 1081;
-        /// <summary>
-        /// 2妗�
+        /// <summary>
+        /// 2妗�
         /// </summary>
         public const int TwoGear = 1082;
-        /// <summary>
-        /// 3妗�
+        /// <summary>
+        /// 3妗�
         /// </summary>
-        public const int ThreeGear = 1083;
-        /// <summary>
-        /// 椋庨��1妗�
+        public const int ThreeGear = 1083;
+        /// <summary>
+        /// 椋庨��1妗�
         /// </summary>
         public const int FanOneGear = 1084;
-        /// <summary>
-        /// 椋庨��2妗�
+        /// <summary>
+        /// 椋庨��2妗�
         /// </summary>
         public const int FanTwoGear = 1085;
-        /// <summary>
-        /// 椋庨��3妗�
+        /// <summary>
+        /// 椋庨��3妗�
         /// </summary>
-        public const int FanThreeGear = 1086;
-        /// <summary>
-        /// 涓�閿紑閿�
+        public const int FanThreeGear = 1086;
+        /// <summary>
+        /// 涓�閿紑閿�
         /// </summary>
-        public const int OneKeyUnlocking = 1087;
-        /// <summary>
-        /// 涓存椂瀵嗙爜寮�閿�
+        public const int OneKeyUnlocking = 1087;
+        /// <summary>
+        /// 涓存椂瀵嗙爜寮�閿�
         /// </summary>
-        public const int TemporaryPasswordUnlocking = 1088;
-        /// <summary>
-        /// 宸茶繛鎺�
+        public const int TemporaryPasswordUnlocking = 1088;
+        /// <summary>
+        /// 宸茶繛鎺�
         /// </summary>
-        public const int Connected = 1089;
-        /// <summary>
-        /// 鏈繛鎺�
+        public const int Connected = 1089;
+        /// <summary>
+        /// 鏈繛鎺�
         /// </summary>
-        public const int UnConnected = 1090;
-        /// <summary>
-        /// 鐢熸垚涓存椂瀵嗙爜
+        public const int UnConnected = 1090;
+        /// <summary>
+        /// 鐢熸垚涓存椂瀵嗙爜
         /// </summary>
-        public const int CreatTemporaryPassword = 1091;
-        /// <summary>
-        /// 鐢熸晥鏃堕棿
+        public const int CreatTemporaryPassword = 1091;
+        /// <summary>
+        /// 鐢熸晥鏃堕棿
         /// </summary>
-        public const int EffectiveTime = 1092;
-        /// <summary>
-        /// 澶辨晥鏃堕棿
+        public const int EffectiveTime = 1092;
+        /// <summary>
+        /// 澶辨晥鏃堕棿
         /// </summary>
-        public const int FailureTime = 1093;
-        /// <summary>
-        /// 閫夋嫨鏃堕棿
+        public const int FailureTime = 1093;
+        /// <summary>
+        /// 閫夋嫨鏃堕棿
         /// </summary>
-        public const int SelectTime = 1094;
-        /// <summary>
-        /// 閫夋嫨鏃ユ湡
+        public const int SelectTime = 1094;
+        /// <summary>
+        /// 閫夋嫨鏃ユ湡
         /// </summary>
         public const int SelectDate = 1095;
-        /// <summary>
-        /// 鐢熸垚
+        /// <summary>
+        /// 鐢熸垚
         /// </summary>
-        public const int Generate = 1096;
-        /// <summary>
-        /// 涓存椂瀵嗙爜宸茬粡澶嶅埗
+        public const int Generate = 1096;
+        /// <summary>
+        /// 涓存椂瀵嗙爜宸茬粡澶嶅埗
         /// </summary>
-        public const int TempPsswordHasBeenCopy = 1097;
-        /// <summary>
-        /// 娓呴櫎褰撳墠涓存椂瀵嗙爜锛�
+        public const int TempPsswordHasBeenCopy = 1097;
+        /// <summary>
+        /// 娓呴櫎褰撳墠涓存椂瀵嗙爜锛�
         /// </summary>
-        public const int ClearTempPsswordMsg = 1098;
-        /// <summary>
-        /// 鐢熸晥鏃堕棿蹇呴』澶т簬澶辨晥鏃堕棿
+        public const int ClearTempPsswordMsg = 1098;
+        /// <summary>
+        /// 鐢熸晥鏃堕棿蹇呴』澶т簬澶辨晥鏃堕棿
         /// </summary>
-        public const int EffectiveTimeMustBeOverFailureTime = 1099;
-        /// <summary>
-        /// 寮�閿佹柟寮忕鐞�
+        public const int EffectiveTimeMustBeOverFailureTime = 1099;
+        /// <summary>
+        /// 寮�閿佹柟寮忕鐞�
         /// </summary>
-        public const int UnlockingManagement = 1100;
-        /// <summary>
-        /// 鍒犻櫎鎿嶄綔灏嗚鍚屾浜庡疄浣撻攣涓婃槸鍚﹁繕闇�瑕佸垹闄わ紵
+        public const int UnlockingManagement = 1100;
+        /// <summary>
+        /// 鍒犻櫎鎿嶄綔灏嗚鍚屾浜庡疄浣撻攣涓婃槸鍚﹁繕闇�瑕佸垹闄わ紵
         /// </summary>
         public const int DeleteUnlockingMethordMsg = 1101;
-        /// <summary>
-        /// 纭鍒犻櫎
+        /// <summary>
+        /// 纭鍒犻櫎
         /// </summary>
-        public const int ConfirmDeletion = 1102;
-        /// <summary>
-        /// 淇敼澶囨敞鍚嶇О
+        public const int ConfirmDeletion = 1102;
+        /// <summary>
+        /// 淇敼澶囨敞鍚嶇О
         /// </summary>
-        public const int EditorRemarkName = 1103;
-        /// <summary>
-        /// 澶囨敞鍚嶇О涓嶈兘涓虹┖
+        public const int EditorRemarkName = 1103;
+        /// <summary>
+        /// 澶囨敞鍚嶇О涓嶈兘涓虹┖
         /// </summary>
         public const int RemarkNameCanNotEmpty = 1104;
-        /// <summary>
-        /// 鍒嗛厤鑷�
+        /// <summary>
+        /// 鍒嗛厤鑷�
         /// </summary>
         public const int AssignTo = 1105;
-        /// <summary>
-        /// 妫�娴嬩笉鍒板彲渚涢�夋嫨鐨勫満鏅�
+        /// <summary>
+        /// 妫�娴嬩笉鍒板彲渚涢�夋嫨鐨勫満鏅�
         /// </summary>
-        public const int NotHadCanSelectScene = 1106;
-        /// <summary>
-        /// 閫夋嫨鍦烘櫙
+        public const int NotHadCanSelectScene = 1106;
+        /// <summary>
+        /// 閫夋嫨鍦烘櫙
         /// </summary>
-        public const int SelectScene = 1107;
-        /// <summary>
-        /// 閿佸凡鎵撳紑
+        public const int SelectScene = 1107;
+        /// <summary>
+        /// 閿佸凡鎵撳紑
         /// </summary>
         public const int LockIsOpened = 1108;
-        /// <summary>
-        /// 甯稿紑
+        /// <summary>
+        /// 甯稿紑
         /// </summary>
         public const int AlwaysOn = 1109;
-        /// <summary>
-        /// 鏃舵晥鎬у父寮�璁剧疆
+        /// <summary>
+        /// 鏃舵晥鎬у父寮�璁剧疆
         /// </summary>
         public const int TimelyAlwaysOnSetting = 1110;
-        /// <summary>
-        /// 甯稿紑鑷姩鍖�
+        /// <summary>
+        /// 甯稿紑鑷姩鍖�
         /// </summary>
-        public const int AutomationAlwaysOn = 1111;
-        /// <summary>
-        /// 鎵撳紑甯稿紑妯″紡
+        public const int AutomationAlwaysOn = 1111;
+        /// <summary>
+        /// 鎵撳紑甯稿紑妯″紡
         /// </summary>
-        public const int OpenAlwaysOnModel = 1112;
-        /// <summary>
-        /// 鍏抽棴甯稿紑妯″紡
+        public const int OpenAlwaysOnModel = 1112;
+        /// <summary>
+        /// 鍏抽棴甯稿紑妯″紡
         /// </summary>
-        public const int CloseAlwaysOnModel = 1113;
-        /// <summary>
-        /// 缂栬緫
+        public const int CloseAlwaysOnModel = 1113;
+        /// <summary>
+        /// 缂栬緫
         /// </summary>
         public const int Edit = 1114;
-        /// <summary>
-        /// 甯稿紑妯″紡灏嗕簬{0}鍏抽棴
+        /// <summary>
+        /// 甯稿紑妯″紡灏嗕簬{0}鍏抽棴
         /// </summary>
-        public const int AlwaysOnWillCloseOnTime = 1115;
-        /// <summary>
-        /// 鏉′欢
+        public const int AlwaysOnWillCloseOnTime = 1115;
+        /// <summary>
+        /// 鏉′欢
         /// </summary>
         public const int Condtion = 1116;
-        /// <summary>
-        /// 鍔ㄤ綔
+        /// <summary>
+        /// 鍔ㄤ綔
         /// </summary>
         public const int Action = 1117;
-        /// <summary>
-        /// 甯稿紑妯″紡
+        /// <summary>
+        /// 甯稿紑妯″紡
         /// </summary>
-        public const int AlwaysOnModel = 1118;
-        /// <summary>
-        /// 閿�
+        public const int AlwaysOnModel = 1118;
+        /// <summary>
+        /// 閿�
         /// </summary>
-        public const int Lock = 1119;
-        /// <summary>
-        /// 鐢ㄦ埛
+        public const int Lock = 1119;
+        /// <summary>
+        /// 鐢ㄦ埛
         /// </summary>
-        public const int User = 1120;
-        /// <summary>
-        /// 寮�閿佹柟寮�
+        public const int User = 1120;
+        /// <summary>
+        /// 寮�閿佹柟寮�
         /// </summary>
-        public const int UnlockingMode = 1121;
-        /// <summary>
-        /// 鎸囩汗
+        public const int UnlockingMode = 1121;
+        /// <summary>
+        /// 鎸囩汗
         /// </summary>
-        public const int Fingerprints = 1122;
-        /// <summary>
-        /// 鍗�
+        public const int Fingerprints = 1122;
+        /// <summary>
+        /// 鍗�
         /// </summary>
-        public const int Card = 1123;
-        /// <summary>
-        /// 閽ュ寵
+        public const int Card = 1123;
+        /// <summary>
+        /// 閽ュ寵
         /// </summary>
-        public const int Key = 1124;
-        /// <summary>
-        /// 淇℃伅绫诲瀷
+        public const int Key = 1124;
+        /// <summary>
+        /// 淇℃伅绫诲瀷
         /// </summary>
-        public const int MessageType = 1125;
-        /// <summary>
-        /// 寮�閿佷俊鎭�
+        public const int MessageType = 1125;
+        /// <summary>
+        /// 寮�閿佷俊鎭�
         /// </summary>
-        public const int UnlockingMessage = 1126;
-        /// <summary>
-        /// 鎶ヨ绫讳俊鎭�
+        public const int UnlockingMessage = 1126;
+        /// <summary>
+        /// 鎶ヨ绫讳俊鎭�
         /// </summary>
-        public const int AlarmMessage = 1127;
-        /// <summary>
-        /// 璁惧涓嶅湪绾�
+        public const int AlarmMessage = 1127;
+        /// <summary>
+        /// 璁惧涓嶅湪绾�
         /// </summary>
-        public const int DeviceNotOnline = 1128;
-        /// <summary>
-        /// 绗竴娆′娇鐢紝璇峰厛缁戝畾闂ㄩ攣瀵嗙爜
+        public const int DeviceNotOnline = 1128;
+        /// <summary>
+        /// 绗竴娆′娇鐢紝璇峰厛缁戝畾闂ㄩ攣瀵嗙爜
         /// </summary>
         public const int PleaseBindTheDoorPswFirst = 1129;
-        /// <summary>
-        /// 璇疯緭鍏ラ棬閿佺鐞嗗憳瀵嗙爜
+        /// <summary>
+        /// 璇疯緭鍏ラ棬閿佺鐞嗗憳瀵嗙爜
         /// </summary>
-        public const int PleaseInputDoorAdminPassword = 1130;
-        /// <summary>
-        /// 闂ㄩ攣缁戝畾鎴愬姛
+        public const int PleaseInputDoorAdminPassword = 1130;
+        /// <summary>
+        /// 闂ㄩ攣缁戝畾鎴愬姛
         /// </summary>
         public const int BindDoorLockSuccess = 1131;
-        /// <summary>
-        /// 涓轰簡瀹夊叏锛岃璺宠浆鑷充釜浜轰腑蹇儃0}璁剧疆涓汉瀵嗙爜锛屽苟搴旂敤浜庨棬閿佸紑閿�
+        /// <summary>
+        /// 涓轰簡瀹夊叏锛岃璺宠浆鑷充釜浜轰腑蹇儃0}璁剧疆涓汉瀵嗙爜锛屽苟搴旂敤浜庨棬閿佸紑閿�
         /// </summary>
         public const int JumpToPersonalCentetToSetPasswordMsg = 1132;
-        /// <summary>
-        /// 璺宠浆
+        /// <summary>
+        /// 璺宠浆
         /// </summary>
-        public const int Jump = 1133;
-        /// <summary>
-        /// 璇风粯鍒跺浘妗�
+        public const int Jump = 1133;
+        /// <summary>
+        /// 璇风粯鍒跺浘妗�
         /// </summary>
-        public const int PleaseDrawPattern = 1134;
-        /// <summary>
-        /// 璁剧疆甯稿紑妯″紡鍚巤0}鎮ㄧ殑闂ㄩ攣灏嗗浜庢墦寮�鐘舵�亄0}鏄惁缁х画寮�鍚�
+        public const int PleaseDrawPattern = 1134;
+        /// <summary>
+        /// 璁剧疆甯稿紑妯″紡鍚巤0}鎮ㄧ殑闂ㄩ攣灏嗗浜庢墦寮�鐘舵�亄0}鏄惁缁х画寮�鍚�
         /// </summary>
-        public const int OpenAlwayOnConfirmMsg = 1135;
-        /// <summary>
-        /// 纭寮�鍚�
+        public const int OpenAlwayOnConfirmMsg = 1135;
+        /// <summary>
+        /// 纭寮�鍚�
         /// </summary>
-        public const int ConfirmOpen = 1136;
-        /// <summary>
-        /// 澶辨晥璁剧疆
+        public const int ConfirmOpen = 1136;
+        /// <summary>
+        /// 澶辨晥璁剧疆
         /// </summary>
-        public const int FailTimeSeetion = 1137;
-        /// <summary>
-        /// 甯稿紑妯″紡灏嗕簬{0}灏忔椂鍚庡け鏁�
+        public const int FailTimeSeetion = 1137;
+        /// <summary>
+        /// 甯稿紑妯″紡灏嗕簬{0}灏忔椂鍚庡け鏁�
         /// </summary>
-        public const int AlwayOnWillCloseAtTimeMsg = 1138;
-        /// <summary>
-        /// 璇疯緭鍏ュけ鏁堟椂闂�
+        public const int AlwayOnWillCloseAtTimeMsg = 1138;
+        /// <summary>
+        /// 璇疯緭鍏ュけ鏁堟椂闂�
         /// </summary>
-        public const int PleaseInputFailTime = 1139;
+        public const int PleaseInputFailTime = 1139;
         /// <summary>
         /// 澶辨晥鏃堕棿涓嶈兘澶т簬72灏忔椂
         /// </summary>
@@ -1132,109 +1132,109 @@
         /// <summary>
         /// 澶辨晥鏃堕棿涓嶈兘灏忎簬1灏忔椂
         /// </summary>
-        public const int InvalidTimeLessThan1 = 1141;
+        public const int InvalidTimeLessThan1 = 1141;
         /// <summary>
         /// 甯稿紑妯″紡鍏抽棴璁剧疆澶辨晥锛岃閲嶈瘯
         /// </summary>
-        public const int AlwayOnFailTimeSettionFailMsg = 1142;
+        public const int AlwayOnFailTimeSettionFailMsg = 1142;
         /// <summary>
         /// 绠$悊鍛樿韩浠介獙璇佸け璐�,璇烽噸鏂扮櫥褰�
         /// </summary>
-        public const int CheckAdminFailAndLoginAgain = 1143;
+        public const int CheckAdminFailAndLoginAgain = 1143;
         /// <summary>
         /// 鎮ㄧ殑浣忓畢灏嗚繃鎴风粰鍏朵粬HDL璐﹀彿
         /// </summary>
-        public const int YourHomeWillBeTransferredToOtherAccounts = 1144;
+        public const int YourHomeWillBeTransferredToOtherAccounts = 1144;
         /// <summary>
         /// 璇锋敞鎰忥細
         /// </summary>
-        public const int Attention = 1145;
+        public const int Attention = 1145;
         /// <summary>
         /// 1.璇ヤ綇瀹呮偍鐨勬暟鎹紙浜戠鏁版嵁锛夊皢鍏ㄩ儴杞Щ缁欐柊鐨勬埛涓粄0}2.杩囨埛鍚庯紝鍘熸湁鐨勬垚鍛樺皢鑷姩瑙g粦璇ヤ綇瀹厈0}3.鏂版埛涓昏处鍙蜂负鏈夋晥鐨凥DL璐﹀彿{0}4.鎺ユ敹鏂硅处鍙蜂笌杞Щ鏂硅处鍙蜂笉鍙负鍚屼竴涓处鍙�
         /// </summary>
-        public const int TransferreConfirmMsg1 = 1146;
-        /// <summary>
-        /// 纭杩囨埛
-        /// </summary>
-        public const int ConfirmTransferre = 1147;
-        /// <summary>
-        /// 璇疯緭鍏ユ帴鏀舵柟璐﹀彿
-        /// </summary>
+        public const int TransferreConfirmMsg1 = 1146;
+        /// <summary>
+        /// 纭杩囨埛
+        /// </summary>
+        public const int ConfirmTransferre = 1147;
+        /// <summary>
+        /// 璇疯緭鍏ユ帴鏀舵柟璐﹀彿
+        /// </summary>
         public const int PleaseInputReceiverAccount = 1148;
-        /// <summary>
-        /// 涓汉璧勬枡
+        /// <summary>
+        /// 涓汉璧勬枡
         /// </summary>
-        public const int Profile = 1149;
-        /// <summary>
-        /// 纭杩囨埛{0}鐨勭鐞嗗憳璐﹀彿缁欒处鍙穥1}
+        public const int Profile = 1149;
+        /// <summary>
+        /// 纭杩囨埛{0}鐨勭鐞嗗憳璐﹀彿缁欒处鍙穥1}
         /// </summary>
-        public const int TransferreConfirmMsg2 = 1150;
-        /// <summary>
-        /// 鐩爣璐﹀彿骞朵笉瀛樺湪
+        public const int TransferreConfirmMsg2 = 1150;
+        /// <summary>
+        /// 鐩爣璐﹀彿骞朵笉瀛樺湪
         /// </summary>
-        public const int TargetAcountDoesNotExist = 1151;
+        public const int TargetAcountDoesNotExist = 1151;
         /// <summary>
         /// 涓嶈兘鑷繁杩囨埛缁欒嚜宸�
         /// </summary>
         public const int YouCannotTransferOwnershipToYourself = 1152;
-        /// <summary>
-        /// 缁堟
+        /// <summary>
+        /// 缁堟
         /// </summary>
-        public const int Terminate = 1153;
-        /// <summary>
-        /// 姝e湪杩囨埛缁欑敤鎴�,璇风◢鍚�...
+        public const int Terminate = 1153;
+        /// <summary>
+        /// 姝e湪杩囨埛缁欑敤鎴�,璇风◢鍚�...
         /// </summary>
-        public const int IsTransferingPleaseWaitting = 1154;
+        public const int IsTransferingPleaseWaitting = 1154;
         /// <summary>
         /// 鐢ㄦ埛{0}宸茬粡鎴愪负浣忓畢琛岀鐞嗗憳
         /// </summary>
         public const int CongratulationsXXBecomingNNAdministrator = 1155;
-        /// <summary>
-        /// 璇ヤ綇瀹呯殑淇℃伅灏嗗湪鎮ㄧ殑璐﹀彿涓垹闄�
+        /// <summary>
+        /// 璇ヤ綇瀹呯殑淇℃伅灏嗗湪鎮ㄧ殑璐﹀彿涓垹闄�
         /// </summary>
         public const int ResidenceDataWillBeDeletedFromYourAccount = 1156;
-        /// <summary>
-        /// 杩囨埛澶辫触
+        /// <summary>
+        /// 杩囨埛澶辫触
         /// </summary>
         public const int TransferFail = 1157;
-        /// <summary>
-        /// 璇烽噸鏂板皾璇�
+        /// <summary>
+        /// 璇烽噸鏂板皾璇�
         /// </summary>
-        public const int PleaseTryAgain = 1158;
-        /// <summary>
-        /// 绠$悊鍛樻潈闄愯浆绉�
+        public const int PleaseTryAgain = 1158;
+        /// <summary>
+        /// 绠$悊鍛樻潈闄愯浆绉�
         /// </summary>
-        public const int AdminAuthorityTransfer = 1159;
-        /// <summary>
-        /// 鎮ㄥ皢杞Щ鎮ㄧ殑绠$悊鍛樻潈闄愮粰鍏朵粬鎴愬憳
+        public const int AdminAuthorityTransfer = 1159;
+        /// <summary>
+        /// 鎮ㄥ皢杞Щ鎮ㄧ殑绠$悊鍛樻潈闄愮粰鍏朵粬鎴愬憳
         /// </summary>
-        public const int AdminAuthorityTransferMag1 = 1160;
-        /// <summary>
-        /// 1.璇ヤ綇瀹呮偍鐨勭鐞嗗憳鏁版嵁锛堜簯绔暟鎹級灏嗗叏閮ㄨ浆绉荤粰鏂扮殑绠$悊鍛榹0}2.鎮ㄧ殑鏁版嵁灏嗕細涓庣洰鏍囨垚鍛樹簰鎹紝鎮ㄧ殑鏉冮檺灏嗗彉鏇翠负鐩爣鎴愬憳鐨勬潈闄�
+        public const int AdminAuthorityTransferMag1 = 1160;
+        /// <summary>
+        /// 1.璇ヤ綇瀹呮偍鐨勭鐞嗗憳鏁版嵁锛堜簯绔暟鎹級灏嗗叏閮ㄨ浆绉荤粰鏂扮殑绠$悊鍛榹0}2.鎮ㄧ殑鏁版嵁灏嗕細涓庣洰鏍囨垚鍛樹簰鎹紝鎮ㄧ殑鏉冮檺灏嗗彉鏇翠负鐩爣鎴愬憳鐨勬潈闄�
         /// </summary>
         public const int AdminAuthorityTransferMag2 = 1161;
-        /// <summary>
-        /// 纭杞Щ
+        /// <summary>
+        /// 纭杞Щ
         /// </summary>
-        public const int ConfirmTransfer2 = 1162;
-        /// <summary>
-        /// 妫�娴嬩笉鍒板彲渚涢�夋嫨鐨勬垚鍛�
+        public const int ConfirmTransfer2 = 1162;
+        /// <summary>
+        /// 妫�娴嬩笉鍒板彲渚涢�夋嫨鐨勬垚鍛�
         /// </summary>
-        public const int NotHadMemberToSelect = 1163;
-        /// <summary>
-        /// 纭杞Щ{0}鐨勭鐞嗗憳鏉冮檺缁欒处鍙穥1}
+        public const int NotHadMemberToSelect = 1163;
+        /// <summary>
+        /// 纭杞Щ{0}鐨勭鐞嗗憳鏉冮檺缁欒处鍙穥1}
         /// </summary>
-        public const int TransferreConfirmMsg3 = 1164;
-        /// <summary>
-        /// 杩佺Щ鎴愬姛
+        public const int TransferreConfirmMsg3 = 1164;
+        /// <summary>
+        /// 杩佺Щ鎴愬姛
         /// </summary>
-        public const int TransferreSuccess1 = 1165;
-        /// <summary>
-        /// 杩佺Щ澶辫触
+        public const int TransferreSuccess1 = 1165;
+        /// <summary>
+        /// 杩佺Щ澶辫触
         /// </summary>
-        public const int TransferreFail1 = 1166;
-        /// <summary>
-        /// 杩佺Щ鎴愬姛锛屾偍鐨勬潈闄愬皢鍙樹负鏅�氭垚鍛�
+        public const int TransferreFail1 = 1166;
+        /// <summary>
+        /// 杩佺Щ鎴愬姛锛屾偍鐨勬潈闄愬皢鍙樹负鏅�氭垚鍛�
         /// </summary>
         public const int TransferreSuccessMsg1 = 1167;
 
@@ -1386,7 +1386,7 @@
         public const int xuanzehongwaipinpai= 6081;
         public const int yaotou = 6082;
         public const int disu = 6083;
-        public const int zhongsu = 6084;
+        public const int fengsuqiehuan = 6084; 
         public const int gaosu = 6085;
         public const int zidong = 6086;
         public const int wendujia = 6087;
@@ -1534,6 +1534,16 @@
         public const int yizhixing = 7133;
         public const int mubiaozhuangtai = 7134;
         public const int diedao = 7135;
+        public const int wendu = 7136;
+        public const int shidu = 7137;
+        public const int pm25 = 7138;
+        public const int co2 = 7139;
+        public const int tvoc = 7140;
+        public const int chaobiao = 7141;
+        public const int yanzhong = 7142;
+        public const int piangao = 7143;
+        public const int youxiu = 7144;
+
 
         #region LE鏂板
         /// <summary>
diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs
index b80a9d6..d3819d6 100644
--- a/HDL_ON/DAL/Mqtt/MqttClient.cs
+++ b/HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -328,10 +328,7 @@
                                 }
 
                                 //涓�浜涚壒娈婄殑涓婚澶勭悊(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣� true:鎵ц浜嗙壒娈婂鐞� false:娌℃湁鎵ц鐗规畩澶勭悊)
-                                if (Stan.HdlCloudReceiveLogic.Current.CloudOverallMsgReceiveEx(topic, e.ApplicationMessage.Payload, mqttEncryptKey, tuyaEncryptKey) == true)
-                                {
-                                    return;
-                                }
+                                Stan.HdlCloudReceiveLogic.Current.CloudOverallMsgReceiveEx(topic, e.ApplicationMessage.Payload, mqttEncryptKey, tuyaEncryptKey);
 
                                 if (topic == $"/BusGateWayToClient/{UserInfo.Current.ID}" + PushNotifySqueeze)
                                 {
diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs
index d6399e0..ec3e6ad 100644
--- a/HDL_ON/DAL/Server/HttpServerRequest.cs
+++ b/HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -2481,7 +2481,7 @@
 
         #region 鈻� 鍙瀵硅_________________________
         /// <summary>
-        /// 妫�鏌ヤ綇瀹呮槸鍚︾粦瀹氫赴鏋楋紝骞惰幏鍙栭棬鍙f満鍒楄〃
+        /// 妫�鏌ヤ綇瀹呮槸鍚︾粦瀹氫赴鏋�
         /// </summary>
         /// <returns></returns>
         public ResponsePackNew CheckFlVideo()
diff --git a/HDL_ON/DAL/Server/HttpUtil.cs b/HDL_ON/DAL/Server/HttpUtil.cs
index 75c9b97..1673c11 100644
--- a/HDL_ON/DAL/Server/HttpUtil.cs
+++ b/HDL_ON/DAL/Server/HttpUtil.cs
@@ -164,7 +164,7 @@
 
 
                 ////**************娴嬭瘯**************
-                //string requestFullUrl = GlobalRequestHttpsHost + apiPath;
+                string requestFullUrl = GlobalRequestHttpsHost + apiPath;
                 ////**************娴嬭瘯**************
 
                 RestClient client = new RestClient(requestFullUrl);
@@ -284,7 +284,7 @@
 
 
         /// <summary>
-        /// 鍒锋柊Token
+        /// 鍒锋柊  Token
         /// </summary>
         /// <returns></returns>
         static bool RefreshToken()
diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs
index 577a028..4be919c 100644
--- a/HDL_ON/DAL/Server/NewAPI.cs
+++ b/HDL_ON/DAL/Server/NewAPI.cs
@@ -450,53 +450,6 @@
 
         #endregion
 
-        #region Kaede -- 瀹夐槻鎺ュ彛____________________________
-        /// <summary>
-        /// 鑾峰彇瀹夐槻鍒楄〃
-        /// </summary>
-        public const string Api_Post_Security_List = "/home-wisdom/app/security/list";
-        /// <summary>
-        /// 鑾峰彇瀹夐槻璇︽儏
-        /// </summary>
-        public const string Api_Post_Security_Info = "/home-wisdom/app/security/info";
-        /// <summary>
-        /// 娣诲姞瀹夐槻
-        /// </summary>
-        public const string Api_Post_Security_Add = "/home-wisdom/app/security/add";
-        /// <summary>
-        /// 缂栬緫瀹夐槻
-        /// </summary>
-        public const string Api_Post_Security_Edit = "/home-wisdom/app/security/update";
-        /// <summary>
-        /// 鍒犻櫎瀹夐槻
-        /// </summary>
-        public const string Api_Post_Security_Delete = "/home-wisdom/app/security/delete";
-        /// <summary>
-        /// 璇诲彇瀹夐槻闃插尯鐘舵��
-        /// </summary>
-        public const string Api_Post_Security_StatusRead = "/home-wisdom/app/security/statusRead";
-        /// <summary>
-        /// 璁剧疆瀹夐槻闃插尯鐘舵��
-        /// </summary>
-        public const string Api_Post_Security_StatusSet = "/home-wisdom/app/security/statusSet";
-        /// <summary>
-        /// 瀹夐槻bypass璁剧疆
-        /// </summary>
-        public const string Api_Post_Security_BypassSet = "/home-wisdom/app/security/bypassSet";
-        /// <summary>
-        /// 瀹夐槻bypass璇诲彇
-        /// </summary>
-        public const string Api_Post_Security_BypassRead = "/home-wisdom/app/security/bypassRead";
-        /// <summary>
-        /// 鏌ヨ瀹夐槻鎵�鏈夎褰�
-        /// </summary>
-        public const string Api_Post_Security_ListSecurityLog = "/home-wisdom/app/security/listSecurityLog";
-        /// <summary>
-        /// 鏌ヨ瀹夐槻鎶ヨ璁板綍
-        /// </summary>
-        public const string Api_Post_Security_ListAlarmLog = "/home-wisdom/app/security/listAlarmLog";
-
-        #endregion
 
 
         #region 鈻�  -- 鎴块棿銆佽澶囥�佸満鏅垎浜玙__________________________
@@ -606,7 +559,7 @@
 
         #region  鈻�  -- 涓版灄鐩稿叧鐩稿叧鎺ュ彛___________________________
         /// <summary>
-        /// 妫�鏌ヤ綇瀹呮槸鍚︾粦瀹氫赴鏋楋紝骞惰幏鍙栭棬鍙f満鍒楄〃
+        /// 妫�鏌ヤ綇瀹呮槸鍚︾粦瀹氫赴鏋�
         /// </summary>
         public const string API_POST_FL_Check = "/home-wisdom/app/fl/vi/check";
         /// <summary>
@@ -632,7 +585,8 @@
         /// <summary>
         /// 鑾峰彇閫氳瘽璁板綍
         /// </summary>
-        public const string API_POST_FL_GetCallList = "/home-wisdom/app/fl/vi/list";
+        //public const string API_POST_FL_GetCallList = "/home-wisdom/app/fl/vi/list";
+        public const string API_POST_FL_GetCallList = "/home-wisdom/platform/imou/listCallRecords";
         /// <summary>
         /// 鍒犻櫎閫氳瘽璁板綍
         /// </summary>
@@ -647,8 +601,22 @@
         public const string API_POST_FL_QRcode = "http://112.74.164.111:180/api.php/Device/setdynamicpwd";
         #endregion
 
-        #region  鈻�  -- 闂ㄩ攣鐩稿叧鎺ュ彛_______________________________
+        #region 鍙瀵硅鏍囧噯閫氱敤鎺ュ彛
+        /// <summary>
+        /// 鑾峰彇鍙瀵硅璁惧鍒楄〃锛堟墍鏈夊鎺ュ彲瑙嗗璁查兘鍖呭惈涓�璧凤級
+        /// </summary>
+        public const string API_POST_VideoDeviceList = "/home-wisdom/platform/imou/listVisualSpeaks";
+        /// <summary>
+        /// 杩滅▼寮�闂�
+        /// </summary>
+        public const string API_POST_VideoDevice_OpenDoorbell = "/home-wisdom/platform/imou/openDoorbell";
+        /// <summary>
+        /// 鏇存敼閫氳瘽鐘舵��
+        /// </summary>
+        public const string API_POST_VideoDevice_UpdateCallStatus = "/home-wisdom/platform/imou/updateCallStatus";
+        #endregion
 
+        #region 鍙瀵硅鏍囧噯閫氱敤鎺ュ彛
         /// <summary>
         /// 鍒ゆ柇闂ㄩ攣鏄惁绗竴浣跨敤
         /// </summary>
diff --git a/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs b/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
index 9758f95..b6ad254 100644
--- a/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
+++ b/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
@@ -3,9 +3,11 @@
 using HDL_ON.DAL.Server;
 using System.Threading;
 using System.Collections.Generic;
+using HDL_ON.UI.UI2.PersonalCenter.PirDevice;
 
 #if __IOS__
 using Shared.IOS.ESVideoOnSDK;
+using Shared.IOS.LCVideoOnSDK;
 using UIKit;
 using Foundation;
 #else
@@ -56,77 +58,151 @@
         /// <summary>
         /// 鐩戞帶椤甸潰
         /// </summary>
-        /// <param name="mESVideoInfo">涓版灄鐩戣鎵�闇�鐩稿叧鍙傛暟</param>
-        public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo)
+        /// <param name="mESVideoInfo"></param>
+        public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo, string interphoneType)
         {
-#if __IOS__
-             int roomID = 0;
+            this.esVideoInfo = mESVideoInfo;
+            int roomID = 0;
             int.TryParse(mESVideoInfo.roomno, out roomID);
-            ESOnMonitorViewController vc = new ESOnMonitorViewController();
-            vc.MESVideoID = mESVideoInfo.ESVideoUUID;
-            vc.MESRoomID =roomID;
-            vc.DeviceName = mESVideoInfo.DeviceName;
-            //vc.RoomName = mESVideoInfo.RoomName;
-            //vc.MESCallDelegate = new OnESCallDelegate(this);
-            mOnESCallDelegate = new OnESCallDelegate(this);
-            vc.MESCallDelegate = mOnESCallDelegate;
-            Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
-#else
 
-            Intent intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.VideoActivity));
+#if __IOS__
+            if (interphoneType == "IMOUVISIAL")
+            {
+                //涔愭鍙瀵硅
+                //1.鍒濆鍖朙COpenSDK_Api
+                LCApiKit.SharedInstance().InitSDKOpenApi(mESVideoInfo.Lc_AccessToken);
+                LCApiKit.SharedInstance().CurrentDevicePlayToken = mESVideoInfo.Lc_PlayToken;
+                LCApiKit.SharedInstance().CurrentDeviceId = mESVideoInfo.Lc_DeviceId;
+                LCApiKit.SharedInstance().CurrentDeviceName = mESVideoInfo.DeviceName;
+                LCApiKit.SharedInstance().CurrentPsk = mESVideoInfo.Lc_DeviceId;
+                //2.璋冩暣鐩戣椤甸潰
+                LCOnMonitorViewController vc = new LCOnMonitorViewController();
+                mOnLCCallDelegate = new OnLCCallDelegate(this);
+                vc.MLCCallDelegate = mOnLCCallDelegate;
+                //vc.MLCCallDelegate = new OnLCCallDelegate(this);
+                Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
+            }
+            else
+            {
+
+                ESOnMonitorViewController vc = new ESOnMonitorViewController();
+                vc.MESVideoID = mESVideoInfo.ESVideoUUID;
+                vc.MESRoomID = roomID;
+                vc.DeviceName = mESVideoInfo.DeviceName;
+                //vc.RoomName = mESVideoInfo.RoomName;
+                //vc.MESCallDelegate = new OnESCallDelegate(this);
+                Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
+            }
+#else
+            Intent intent = null;
+            if (interphoneType == "IMOUVISIAL")
+            {
+                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.LeChengVideoActivity));
+            }
+            else
+            {
+                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.VideoActivity));
+            }
+
             intent.PutExtra("ESVideoUUID", mESVideoInfo.ESVideoUUID);
             intent.PutExtra("uuid", mESVideoInfo.uuid);
             intent.PutExtra("DeviceName", mESVideoInfo.DeviceName);
             intent.PutExtra("cmtID", mESVideoInfo.cmtID);
             intent.PutExtra("roomno", mESVideoInfo.roomno);
             intent.PutExtra("unitno", mESVideoInfo.unitno);
-            //intent.PutExtra("HomeID", mESVideoInfo.HomeID);
+            intent.PutExtra("HomeID", PirSend.HomeId);
             intent.PutExtra("callId", mESVideoInfo.callId);
             intent.PutExtra("Type", 0);
+
+            //=========涔愭==========
+            intent.PutExtra("AccessToken", mESVideoInfo.Lc_AccessToken);
+            intent.PutExtra("DeviceId", mESVideoInfo.Lc_DeviceId);
+            intent.PutExtra("Location", OnAppConfig.Instance.RequestHttpsHost.Contains("China") ? 0 : 1);//濡傛灉鍩熷悕鍖呭惈china锛屽垯鏄浗鍐呰处鍙�);
+            intent.PutExtra("PlayToken", mESVideoInfo.Lc_PlayToken);
+            intent.PutExtra("Psk", mESVideoInfo.Lc_Psk);
+
             Shared.Application.Activity.StartActivity(intent);
 
 #endif
         }
-
-
 
         /// <summary>
         /// 琚懠鍙〉闈�
         /// </summary>
-        /// <param name="mESVideoInfo">涓版灄鍛煎彨鍔熻兘鎵�闇�鐩稿叧鍙傛暟</param>
-        public void ShowESvideoVideoIntercom(ESVideoInfo mESVideoInfo)
+        /// <param name="mESVideoInfo"></param>
+        public void ShowESvideoVideoIntercom(ESVideoInfo mESVideoInfo, string interphoneType)
         {
             this.esVideoInfo = mESVideoInfo;
-#if __IOS__
             int roomID = 0;
             int.TryParse(mESVideoInfo.roomno, out roomID);
-            ESOnIntercomViewController vc = new ESOnIntercomViewController();
-            vc.MESVideoID = mESVideoInfo.ESVideoUUID;
-            vc.MESRoomID = roomID;
-            vc.DeviceName = mESVideoInfo.DeviceName;
-            //vc.RoomName = mESVideoInfo.RoomName;
-            //vc.MESCallDelegate = new OnESCallDelegate(this);
-            mOnESCallDelegate = new OnESCallDelegate(this);
-            vc.MESCallDelegate = mOnESCallDelegate;
-            Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
-#else
+#if __IOS__
+            if (interphoneType == "IMOUVISIAL")
+            {
+                //涔愭鍙瀵硅
+                //1.鍒濆鍖朙COpenSDK_Api
+                LCApiKit.SharedInstance().InitSDKOpenApi(mESVideoInfo.Lc_AccessToken);
+                //2021-05-18 鐩墠鎺ㄩ�佺殑PlayToken;鏈夐棶棰樹細瀵艰嚧SDK宕╂簝锛屾殏鏃朵笉浼�
+                //LCApiKit.SharedInstance().CurrentDevicePlayToken = mESVideoInfo.Lc_PlayToken;
+                LCApiKit.SharedInstance().CurrentDeviceId = mESVideoInfo.Lc_DeviceId;
+                LCApiKit.SharedInstance().CurrentDeviceName = mESVideoInfo.DeviceName;
+                LCApiKit.SharedInstance().CurrentPsk = mESVideoInfo.Lc_DeviceId;
+                //2.璺宠浆涔愭鍛煎彨椤甸潰
+                LCOnIntercomViewController vc = new LCOnIntercomViewController();
+                mOnLCCallDelegate = new OnLCCallDelegate(this);
+                vc.MLCCallDelegate = mOnLCCallDelegate;
+                //vc.MLCCallDelegate = new OnLCCallDelegate(this);
+                Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
+            }
+            else
+            {
 
-            Intent intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.VideoActivity));
+                ESOnIntercomViewController vc = new ESOnIntercomViewController();
+                vc.MESVideoID = mESVideoInfo.ESVideoUUID;
+                vc.MESRoomID = roomID;
+                vc.DeviceName = mESVideoInfo.DeviceName;
+                //vc.RoomName = mESVideoInfo.RoomName;
+                //vc.MESCallDelegate = new OnESCallDelegate(this);
+                mOnESCallDelegate = new OnESCallDelegate(this);
+                vc.MESCallDelegate = mOnESCallDelegate;
+                Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
+            }
+#else
+            #region
+
+            Intent intent = null;
+            if (interphoneType == "IMOUVISIAL")
+            {
+                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.LeChengVideoActivity));
+            }
+            else
+            {
+                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.VideoActivity));
+            }
+
             intent.PutExtra("ESVideoUUID", mESVideoInfo.ESVideoUUID);
             intent.PutExtra("uuid", mESVideoInfo.uuid);
             intent.PutExtra("DeviceName", mESVideoInfo.DeviceName);
             intent.PutExtra("cmtID", mESVideoInfo.cmtID);
             intent.PutExtra("roomno", mESVideoInfo.roomno);
             intent.PutExtra("unitno", mESVideoInfo.unitno);
-            //intent.PutExtra("HomeID", mESVideoInfo.HomeID);
+            intent.PutExtra("HomeID", PirSend.HomeId);
             intent.PutExtra("callId", mESVideoInfo.callId);
             intent.PutExtra("Type", 1);
+
+            //=========涔愭==========
+            intent.PutExtra("AccessToken", mESVideoInfo.Lc_AccessToken);
+            intent.PutExtra("DeviceId", mESVideoInfo.Lc_DeviceId);
+            intent.PutExtra("Location", OnAppConfig.Instance.RequestHttpsHost.Contains("China") ? 0 : 1);//濡傛灉鍩熷悕鍖呭惈china锛屽垯鏄浗鍐呰处鍙�);
+            intent.PutExtra("PlayToken", mESVideoInfo.Lc_PlayToken);
+            intent.PutExtra("Psk", mESVideoInfo.Lc_Psk);
+
             Shared.Application.Activity.StartActivity(intent);
 
+            #endregion
 #endif
         }
 
-        #region 鍔ㄤ綔鍥炶皟锛屾彁浜よ褰曞埌浜戠
+        #region 鍔ㄤ綔鍥炶皟鍜屽師鐢熶氦浜掞紝鎻愪氦璁板綍鍒颁簯绔�
 
         /// <summary>
         /// 鍒ゆ柇callId鏄惁涓虹┖
@@ -188,7 +264,7 @@
                 }
                 else
                 {
-                    Utlis.WriteLine("POST 鎸傛柇澶辫触 code: "+ revertObj.Code);
+                    Utlis.WriteLine("POST 鎸傛柇澶辫触 code: " + revertObj.Code);
                 }
 
             })
@@ -262,6 +338,7 @@
         }
 
         DateTime UnlockDateTime = DateTime.MinValue;
+
         /// <summary>
         /// 寮�閿佹垚鍔�
         /// </summary>
@@ -272,9 +349,9 @@
             if (CheckESVideoInfoIsNullOrEmpty()) return;
 
             //3S鍐呬笉鍏佽瑙﹀彂绗簩娆�
-            if(UnlockDateTime.AddSeconds(3) > DateTime.Now)
+            if (UnlockDateTime.AddSeconds(3) > DateTime.Now)
             {
-               
+
                 Utlis.WriteLine("3S鍐呬笉鍏佽瑙﹀彂绗簩娆�");
                 //涓版灄SDKbug锛屽懠鍙殑鏃跺�欏紑閿佹垚鍔熶細鏈�2娆″洖璋冿紝
                 return;
@@ -302,6 +379,77 @@
             { IsBackground = false }.Start();
         }
 
+        #endregion
+
+        #region 鐜嬭耽鏂版帴鍚拰寮�閿佹帴鍙�
+        /// <summary>
+        /// 寮�閿�
+        /// </summary>
+        void HDLUnlockAction()
+        {
+            //Utlis.WriteLine("UnlockAction");
+
+            if (esVideoInfo == null) return;
+
+            new Thread(() =>
+            {
+                Dictionary<string, object> dic = new Dictionary<string, object>();
+                dic.Add("deviceId", esVideoInfo.Lc_DeviceId);//璁惧id
+                dic.Add("callId", esVideoInfo.callId);
+                var requestJson = HttpUtil.GetSignRequestJson(dic);
+                var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_VideoDevice_OpenDoorbell, requestJson);
+                if (revertObj.Code == StateCode.SUCCESS)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+#if __IOS__
+                        //鍜屽師鐢熺洃鎺х晫闈氦浜掋�佸彂閫佸紑閿佹垚鍔熼�氱煡
+                        NSNotificationCenter.DefaultCenter.PostNotificationName("lcCallDelegateOpenDoorSuccess", null);
+#endif
+                    });
+                }
+                else
+                {
+                    Utlis.WriteLine("POST 寮�閿佸け璐� code: " + revertObj.Code);
+                }
+
+            })
+            { IsBackground = false }.Start();
+        }
+
+        /// <summary>
+        /// 鏇存敼閫氳瘽鐘舵��
+        /// </summary>
+        void HDLUpdateCallStatus(CallStatusType callStatusType, InterphoneType interphoneType, int callDuration = 0) {
+
+            if (CheckESVideoInfoIsNullOrEmpty()) return;
+
+            new Thread(() =>
+            {
+                Dictionary<string, object> dic = new Dictionary<string, object>();
+                dic.Add("callId", esVideoInfo.callId);//鍛煎彨id
+                dic.Add("callStatus", callStatusType.ToString());//鍙敤鍊�:MISSED,RECEIVED,REJECT
+                dic.Add("interphoneTypeEnum", interphoneType.ToString());//鍙敤鍊�:FLVI,IMOUVISIAL
+                if (callStatusType == CallStatusType.RECEIVED && callDuration > 0)
+                {
+                    dic.Add("callDuration", callDuration);//閫氳瘽鏃堕暱锛堢锛�
+                }
+
+                var requestJson = HttpUtil.GetSignRequestJson(dic);
+                var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_VideoDevice_UpdateCallStatus, requestJson);
+                if (revertObj.Code == StateCode.SUCCESS)
+                {
+
+                }
+                else
+                {
+                    Utlis.WriteLine("POST 鏇存柊鐘舵�佸け璐� code: " + revertObj.Code);
+                }
+
+            })
+            { IsBackground = false }.Start();
+
+        }
         #endregion
 
 #if __IOS__
@@ -379,7 +527,77 @@
 
         }
 
-#endregion
+        #endregion
+
+        #region OnLCCallDelegate
+        /////// <summary>
+        /////// OnLCCallDelegate 缁ф壙鍝嶅簲浜嬩欢
+        /////// </summary>
+        OnLCCallDelegate mOnLCCallDelegate;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public class OnLCCallDelegate : LCCallDelegate
+        {
+
+            [Weak] ESOnVideo _ESOnVideo;
+
+            public OnLCCallDelegate(ESOnVideo mESOnVideo)
+            {
+                _ESOnVideo = mESOnVideo;
+            }
+
+            /// <summary>
+            /// 鎺ュ惉
+            /// </summary>
+            public override void OnAnswerAction()
+            {
+                _ESOnVideo.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.IMOUVISIAL);
+            }
+
+            /// <summary>
+            /// 鎸傛柇
+            /// </summary>
+            /// <param name="callDuration"></param>
+            public override void OnHangUpAction(int callDuration)
+            {
+                _ESOnVideo.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.IMOUVISIAL, callDuration);
+            }
+
+            /// <summary>
+            /// 鎷掓帴
+            /// </summary>
+            public override void OnRejectCallAction()
+            {
+                _ESOnVideo.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.IMOUVISIAL);
+            }
+
+            /// <summary>
+            /// 鎴浘鎴愬姛
+            /// </summary>
+            /// <param name="image"></param>
+            public override void OnScreenshotSuccessfulAction(UIImage image)
+            {
+                ////NSData imageData = UIImagePNGRepresentation(image); UIImage
+                //NSData imageData = image.AsPNG();
+                //byte[] dataBytes = new byte[imageData.Length];
+                //System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, dataBytes, 0, Convert.ToInt32(imageData.Length));
+                ////image.g
+                ////_ESOnVideo.ScreenshotSuccessfulAction(dataBytes);
+            }
+
+            /// <summary>
+            /// 寮�閿佹垚鍔�
+            /// </summary>
+            public override void OnUnlockAction()
+            {
+                _ESOnVideo.HDLUnlockAction();
+            }
+
+        }
+
+        #endregion
 #endif
 
         /// <summary>
@@ -392,23 +610,23 @@
             {
                 DeviceName = "瀹ゅ鏈�88",
                 ESVideoUUID = "JJY000019VPLLF",
-                 
+
             };
             if (isMonitor)
             {
-                ShowESVideoMonitor(eSVideoInfo);
+                ShowESVideoMonitor(eSVideoInfo, "");
             }
             else
             {
                 eSVideoInfo.callId = "88888";
-                ShowESvideoVideoIntercom(eSVideoInfo);
+                ShowESvideoVideoIntercom(eSVideoInfo, "");
             }
 
         }
     }
 
     /// <summary>
-    /// 涓版灄鐩戣鍜屽懠鍙姛鑳芥墍闇�鐩稿叧鍙傛暟
+    /// 鍙瀵硅鍙傛暟瀵硅薄锛堜粎鍦ㄦ渶鍚庝竴姝ヨ烦杞埌activity鏃舵墠璋冪敤,涓轰簡鍋氬吋瀹硅繖閲岄兘鏁版嵁鏈夌偣涔憋紝浠ュ悗鏈夋椂闂村啀鐞嗛『鎬濊矾浼樺寲锛�
     /// </summary>
     public class ESVideoInfo
     {
@@ -447,9 +665,68 @@
         /// </summary>
         public string callId = string.Empty;
 
+
+        //========================澶у崕==========================
+
+        /// <summary>
+        /// 璐﹀彿accessToken
+        /// </summary>
+        public string Lc_AccessToken = string.Empty;
+
+        /// <summary>
+        /// 璁惧搴忓垪鍙凤紝閫氳蹇呰瀛楁
+        /// </summary>
+        public string Lc_DeviceId = string.Empty;
+
+        /// <summary>
+        /// 澶囨敞锛燂紵锛�
+        /// </summary>
+        public string Lc_Psk = string.Empty;
+
+        /// <summary>
+        /// 棰勮鐢婚潰蹇呴』浣跨敤
+        /// </summary>
+        public string Lc_PlayToken = string.Empty;
+
+        /// <summary>
+        /// 璐﹀彿鏍囪锛�0鍥藉唴锛�1鍥藉锛涘浗鍐呭浗澶栬闂兘鍦板潃涓嶄竴鏍�
+        /// </summary>
+        public int Lc_Location = 0;
+
     }
 
-    
 
+    /// <summary>
+    /// 閫氳瘽鐘舵�佺被鍨�
+    /// </summary>
+    public enum CallStatusType
+    {
+        /// <summary>
+        /// 鏈帴
+        /// </summary>
+        MISSED,
+        /// <summary>
+        /// 宸叉帴鍚�
+        /// </summary>
+        RECEIVED,
+        /// <summary>
+        /// 鎷掓帴
+        /// </summary>
+        REJECT,
+    }
 
+    /// <summary>
+    /// 鍙瀵硅璁惧骞冲彴绫诲瀷
+    /// </summary>
+    public enum InterphoneType
+    {
+        /// <summary>
+        /// 涓版灄骞冲彴
+        /// </summary>
+        FLVI,
+        /// <summary>
+        /// 澶у崕鍙瀵硅骞冲彴
+        /// </summary>
+        IMOUVISIAL,
+    }
 }
diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 91adfe7..252f912 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -1173,7 +1173,10 @@
         /// 姣背娉紶鎰熷櫒
         /// </summary>
         public const string SenesorMegahealth = "sensor.megahealth";
-
+        /// <summary>
+        /// 鐜妫�娴嬩紶鎰熷櫒
+        /// </summary>
+        public const string SenesorEnvironment = "sensor.environment";
         /// <summary>
         /// 瀹夐槻浼犳劅鍣╯pk鍒楄〃
         /// </summary>
@@ -1336,7 +1339,6 @@
 
         #endregion
 
-
         #region 璁惧绫�
         /// <summary>
         /// 绾㈠瀹�
@@ -1394,6 +1396,12 @@
         }
         #endregion
 
+        /// <summary>
+        /// 娌℃湁鐘舵�佹樉绀虹殑鍔熻兘spk鍒楄〃
+        /// </summary>
+        public static List<string> NotStatusSpkList = new List<string> {
+            ElectricTV, FanIr, TvIr, TvXmIr, StbIr, PjtIr, IrLearn
+        };
 
         /// <summary>
         /// 绗笁鏂瑰搧鐗屽垪琛�
diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index b5622b0..1f2fe17 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -101,6 +101,7 @@
             return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
     
+      
         /// <summary>
         /// 绾㈠瀹濆垪琛�
         /// </summary>
@@ -127,7 +128,7 @@
         public List<Function> GetEnvirSensorsList()
         {
             var spkList = SPK.EnvironSpkList();
-            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
         /// <summary>
         /// 瀹夐槻璁惧鍒楄〃
@@ -139,9 +140,10 @@
         }
 
         /// <summary>
-        /// 鍙瀵硅鍒楄〃
+        /// 鍙瀵硅鍒楄〃,褰撲负null鎴杝ize涓�0鍒欎笉鏄剧ず鍙瀵硅icon
         /// </summary>
-        public UI.UI2.FuntionControlView.Video.VideoClouds videoIntercom;
+        // public UI.UI2.FuntionControlView.Video.VideoClouds videoIntercom;
+        public List<UI.UI2.FuntionControlView.Video.Video> videoIntercom = new List<UI.UI2.FuntionControlView.Video.Video>();
 
         List<Function> _OtherBrandFunction;
         /// <summary>
@@ -200,23 +202,23 @@
                 //{
                 //    UI.Music.A31MusicModel.A31MusicModelList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<UI.Music.A31MusicModel>(functionDataString));
                 //}
-                if (checkRepeat == true)
-                {
-                    //妫�娴嬮噸澶�
-                    for (int i = 0; i < Functions.Count; i++)
-                    {
-                        if (Functions[i].deviceId == tempFunction.deviceId)
-                        {
-                            //鍏堢Щ闄ゆ帀鍐嶅姞
-                            Functions.RemoveAt(i);
-                            Functions.Add(tempFunction);
-                            return;
-                        }
-                    }
+                if (checkRepeat == true)
+                {
+                    //妫�娴嬮噸澶�
+                    for (int i = 0; i < Functions.Count; i++)
+                    {
+                        if (Functions[i].deviceId == tempFunction.deviceId)
+                        {
+                            //鍏堢Щ闄ゆ帀鍐嶅姞
+                            Functions.RemoveAt(i);
+                            Functions.Add(tempFunction);
+                            return;
+                        }
+                    }
                 }
                 Functions.Add(tempFunction);
             }
-            else if (filePath.StartsWith("SceneData_"))
+            if (filePath.StartsWith("SceneData_"))
             {
                 var sceneDataBytes = FileUtlis.Files.ReadFile(filePath);
                 var sceneDataString = System.Text.Encoding.UTF8.GetString(sceneDataBytes);
@@ -347,6 +349,7 @@
                 List.scenes.Remove(scene);
             }
         }
+
         /// <summary>
         /// 鍒犻櫎鏈湴鍔熻兘鍙婃枃浠�
         /// </summary>
@@ -464,6 +467,7 @@
             })
             { IsBackground = true }.Start();
         }
+
         #region 鍦烘櫙鐩稿叧
         /// <summary>
         /// 娣诲姞鍦烘櫙
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index 5c7d4dd..73160f0 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -9,22 +9,9 @@
     <Import_RootNamespace>HDL_ON</Import_RootNamespace>
   </PropertyGroup>
   <ItemGroup>
-    <Compile Include="$(MSBuildThisFileDirectory)UI\BindingResidence\WellcomToHomeForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\MainPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\FileUtils.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\R.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Mqtt\MqttInfoConfig.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpServerRequest.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\RegionInfoRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\ResponsePack.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\EmptyHttpReques.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpServerRequestBase.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Room.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\Command.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\MyEnum.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\DB_ResidenceData.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Function.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\PublicAssmebly.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\BindingResidence\BindingResidencePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\BindingResidence\WellcomToHomeForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\CSS\CSS.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Common\CommonClass.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BottomControls\BottomDateSelectControl.cs" />
@@ -54,100 +41,28 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\UserPageBLL.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\UserPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\ClassificationPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\RoomPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionControlZoneBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionControlZone.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\RoomPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\ClassificaitionPublicBLL.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\ClassificationPageBLL.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FunctionBaseInfoSetPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ChooseFloorPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FunctionBaseInfoSetPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ChooseRoomPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\MotorCurtainPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\DimmerPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RelayPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RGBPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RGBPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RelayPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\1-HomePage\HomePageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\1-HomePage\HomePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalCenterPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalDataPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalCenterPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalDataPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditFunctionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\ResidentialManagePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditFunctionPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomsManagementPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\FloorsManagementPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\FloorsManagementPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\ResidentialManagePageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomsManagementPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\LoginPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\ForgetPasswordPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\LoginPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\ForgetPasswordPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\ResetPassword_VerificationCode.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\RegisterPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\BaseView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\RegisterPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\PublicAssmeblyBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\TopViewDiv.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\TopViewDivBLL.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ChooseRoomPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\DimmerPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\MotorCurtainPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\CurtainModulePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\CurtainModulePageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\RollingShutterPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\RollingShutterPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\AC\ACPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\AC\ACPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionControlZone.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionControlZoneBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\RoomPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\RoomPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\ClassificaitionPublicBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Scene.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\FunctionList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\AC.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Curtain.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\FloorHeating.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Light.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\CityInfo.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockSettingsPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockSettingsPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockPasswordPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\OperationSuccessPromptPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockGesturePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\AppUnlockPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FoolHeating\FloorHeatingPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FoolHeating\FloorHeatingPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\FanPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Fan.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\SwitchSocket.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\FanPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\SocketPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\SocketPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\TV.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TVPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TVPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalSciencePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Sensor.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalSciencePageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalSensorPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberManagementPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\ResidenceMemberInfo.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberManagementPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberPermissionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberFunctionPermissionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\AProtocolEntity.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberPermissionPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\AddMemberScanPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\AddMemberScanPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberFunctionPermissionPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FunctionBasePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ChooseRoomPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorWaterImmersionPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorDoorWinwsPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorSmokePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorPirPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\ArmSensorHistroyPaging.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\MusicMain.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31Radio.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\UpdateThread.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31RadioList.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MusicModel.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MusicSourcePage.cs" />
@@ -169,143 +84,229 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\TipView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\MusicSourceView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\SongView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\ChooseShareMemberTargetListPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\ChooseShareMemberTargetListPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\AccountBindInfoPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\ChangeBindAccountPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\ChangeBindVerificationCodePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\BindAccountPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EchartsOption.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\ResetAccountPassword\ResetPasswordOptionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\ResetAccountPassword\ResetPasswordVerificationCodePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\ResetAccountPassword\ResetPasswordPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\UpdateThread.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\MyListView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\UpdataSidDataDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\IntelligencePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\GalleryPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\NewSceneMenuListPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneEditPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneFunctionListChoosePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SetSceneFunctionInfoPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SetSceneLocationPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaFanPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\ClothesHangerPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\FanPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\ClothesHangerSetTimePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWeepRobotConsumablesMagPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TVPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\IrLearnPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TVPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWeepRobotHistoryPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWaterValvePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\SocketPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\SocketPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWeepRobotPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaAirCleanerPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\FanPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\VideoMainView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\VideoMethod.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\VideoSend.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\ObjectClass.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\View\ShowDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\View\FrameLayout60.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\View\FrameLayout50.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\AC\ACPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\AC\ACPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FoolHeating\FloorHeatingPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FoolHeating\FloorHeatingPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Panel\PanelPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\SearchDevicePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\VoicePanelScenePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Device\DeviceModule.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Device\SBK_SceneListObj.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\VoicePanelSettingPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\VoicePanelSceneListPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\NewAPI.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpUtil.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\IMessageCommon.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\NewApiRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\NewBindAccountPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\NewBindVerificationCodePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\HDLCommon.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\Constant.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\TextButton.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\SelectServerDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control_TcpClient.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control_TcpServer.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control_Udp.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\CRC.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Packet.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Target.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\UdpSocket.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\A_Protocol_Common.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Mqtt\MqttClient.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MyQRCodePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ListCellView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\UpdateTipDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MyServerInfoPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\AboutOnPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\FunctionIntroductionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\ComplaintsPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\EmptyTipView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\LineView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ConfirmDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\WebViewDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\GetSupport\FAQHelpPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ListIconCellView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\GetSupport\QuestionListPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\GetSupport\GetSupportPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferConfirmPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ConfirmButton.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\AdminMigrationConfirmPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferInputPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferUserConfirmPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\AirFreshControlPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\AcControlPage_AddIrButton.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\AcControlPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\TvControlPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\FhControlPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\MotorCurtainPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\RollingShutterPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\MotorCurtainPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\CurtainModulePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\RollingShutterPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\CurtainModulePageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Energy\EnergyMainPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalSciencePageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalSciencePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EchartsOption_Pie.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EchartsOption.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalSensorPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\ColorTureLampPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\ColorTureLampPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\DimmerPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\DimmerPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RelayPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RGBPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RGBPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RelayPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\1-HomePage\HomePageBLL.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\1-HomePage\MessageCenterPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\MenuButton.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\RoomGalleryPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AddInputType.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AddLogic.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AddTarget.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\1-HomePage\HomePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\IntelligencePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Send.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\FunTpye.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\InpOrOutLogicMethod.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Logic.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicMethod.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\MainView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Set.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\OutdoorEnvironment.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Weather.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\ConditionDeviceFunList.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\TimeTpye.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Logic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\PublicInterface.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\MainView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicMethod.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Time3.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AddLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Set.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\WeatherCondition.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\TargetDeviceFunList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\InpOrOutLogicMethod.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\SpeciaTime.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AddTarget.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AddInputType.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\FunAllAreaView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\DateView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\AreaView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\MonView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\LogicAddView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\FunTypeView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TopView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\SelectTypeView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\SwitchView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TemperatureView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\LogicTypeTitleView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TimeView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TimeHorizonView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TextSize.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\AddOutputInputView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TipPopView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\brightnessView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\AddOutputInputTextView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\SaveView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\SingleLogicView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Send.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\ImageUtlis.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\ConditionDeviceFunList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\TargetDeviceFunList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\FunTypeView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\CheckView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\FileUtlis.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\SingleLogicView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\CatchSceneAddPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneEditPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneAddPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SetSceneFunctionInfoPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\NewSceneMenuListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SetSceneLocationPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneFunctionListChoosePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\CatchSceneCatchFunctionListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalCenterPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalDataPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MyServerInfoPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalCenterPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalDataPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MyQRCodePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\GetSupport\GetSupportPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\GetSupport\FAQHelpPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\GetSupport\QuestionListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\AddControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\PirMain.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\Pir.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\PirSend.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\Matching.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\SetPir.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\BrandList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\EditControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\AddControlComplete.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\AddButton.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\BrandListView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PatchView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\TopView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\HeigthChangeView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PirNameView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\MainView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\ControlView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\FailView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PirView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\TipView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\ReplicationView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\FrameLayout50.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\SaveView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\Buttons.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\NewBindVerificationCodePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\NewBindAccountPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\BindAccountPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\AccountBindInfoPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\ChangeBindAccountPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\ChangeBindVerificationCodePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\ResetAccountPassword\ResetPasswordOptionPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\ResetAccountPassword\ResetPasswordPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\ResetAccountPassword\ResetPasswordVerificationCodePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\SearchDevicePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\VoicePanelSceneListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\VoicePanelSettingPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\VoicePanelScenePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditFunctionPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\ResidentialManagePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditFunctionPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomsManagementPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\FloorsManagementPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\FloorsManagementPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\ResidentialManagePageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomsManagementPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferInputPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferConfirmPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\AdminMigrationConfirmPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferUserConfirmPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\AddRoom\AddRoomPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\AddRoom\RoomBinglingFloorPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\BindingResidence\BindingResidencePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\DB_AccountList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\PublicInterface.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\OnAppConfig.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\UserInfo.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneAddPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\SelectPopupDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis\FloorSelectPopupDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\ColorTureLampPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\ColorTureLampPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis\FloorRoomSelectPopupView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\BrightnessView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\ApiUtlis.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TemperatureView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\DiySelectPopupDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ListCellDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\SpeciaTime.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Time3.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Weather.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\OutdoorEnvironment.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\WeatherCondition.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\1-test-\TestDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberFunctionPermissionPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberFunctionPermissionPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\AddMemberScanPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\ChooseShareMemberTargetListPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberManagementPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberPermissionPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\AddMemberScanPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberManagementPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberPermissionPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\ChooseShareMemberTargetListPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\ThirdPartyBrandListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\AddDevciePage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\AddThirdPartyBrandListpage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Integratedbrand\IntegratedBrand.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\AirCleaner.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\WeepRobot.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaAirCleanerPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaFanPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWeepRobotPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\DeviceListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\BrandListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockGesturePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockSettingsPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockSettingsPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockPasswordPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\FunctionIntroductionPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\AboutOnPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\ComplaintsPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\1-test-\TestDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\LoginPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\ForgetPasswordPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\LoginPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\ForgetPasswordPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\ResetPassword_VerificationCode.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\RegisterPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\BaseView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\RegisterPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\SelectServerDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\TopViewDivBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\RoomGalleryPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\DiySelectPopupDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\PublicAssmebly.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\AppUnlockPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\OperationSuccessPromptPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\UpdataSidDataDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\PublicAssmeblyBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\GalleryPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\TopViewDiv.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ListIconCellView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\TextButton.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\WebViewDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\IconTipDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\SelectPopupDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ConfirmButton.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ListCellDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\MenuButton.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\EmptyTipView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\UpdateTipDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ListCellView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ConfirmDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\LineView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Resourse\HdlControlResourse.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Form\HideOptionDirectoryListForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Form\HideOptionSearchAllFile.cs" />
@@ -318,7 +319,11 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlThreadLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlDeviceStatuPushLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlMessageLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlCloudReceiveLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlFormLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlBluetoothIOSLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlWifiLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlBluetoothAndroidLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BottomControls\BottomItemEditorControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BottomControls\BottomDialogCommon.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BottomControls\BottomTimeSelectControl.cs" />
@@ -345,21 +350,15 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\ListViewLayoutControls\VerticalFrameRefreshControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\ListViewLayoutControls\VerticalFrameControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\DialogTitleMenuControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\ProgressRowBar.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\NormalSelectControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\DirectionImageControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\SeekBarImageControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\BatteryPersentControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\FanGearSeekBarControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\ProgressBar.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWaterValvePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\BatteryPersentControl.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWeepRobotConsumablesMagPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWeepRobotHistoryPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\ClothesHangerPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FunctionBasePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorPirPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorWaterImmersionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorDoorWinwsPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorSmokePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\MyEnum.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\Command.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\ClothsHangerEnum.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\PirMain.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\TopView.cs" />
@@ -435,29 +434,63 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\SenesorMegahealth\SenesorMegahealthManagerPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SenesorMegahealthPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\IrFanPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\EmptyHttpReques.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Integratedbrand\IntegratedBrand.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\AirCleaner.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Scene.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\AC.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Sensor.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Curtain.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\FloorHeating.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Fan.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Light.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\SwitchSocket.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Function.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\WeepRobot.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\TV.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\RegionInfoRes.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\ResidenceMemberInfo.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\ResponsePack.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\CityInfo.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\FileUtils.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\ThirdPartySdk\ESOnVideo.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\IMessageCommon.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\NewAPI.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpUtil.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpServerRequest.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\NewApiRes.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpServerRequestBase.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\A_Protocol_Common.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\CRC.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control_TcpClient.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control_Udp.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control_TcpServer.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Packet.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Target.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\UdpSocket.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Mqtt\MqttClient.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Mqtt\MqttInfoConfig.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\ApiUtlis.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\ImageUtlis.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\R.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\OnAppConfig.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\DB_AccountList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\Constant.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\FileUtlis.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\UserInfo.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\HDLCommon.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis\FloorSelectPopupDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis\FloorRoomSelectPopupView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\AProtocolEntity.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\DB_ResidenceData.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\FunctionList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Room.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Device\DeviceModule.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Device\SBK_SceneListObj.cs" />
   </ItemGroup>
   <ItemGroup>
-    <Folder Include="$(MSBuildThisFileDirectory)DAL\" />
-    <Folder Include="$(MSBuildThisFileDirectory)DAL\Mqtt\" />
-    <Folder Include="$(MSBuildThisFileDirectory)Common\" />
-    <Folder Include="$(MSBuildThisFileDirectory)DAL\Server\" />
-    <Folder Include="$(MSBuildThisFileDirectory)Entity\" />
-    <Folder Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\" />
-    <Folder Include="$(MSBuildThisFileDirectory)Entity\Enumerative\" />
-    <Folder Include="$(MSBuildThisFileDirectory)Entity\Function\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\AC\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FoolHeating\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\ResetAccountPassword\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Panel\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\" />
     <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" />
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\" />
     <Folder Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\" />
diff --git a/HDL_ON/UI/UI0-Public/TopViewDiv.cs b/HDL_ON/UI/UI0-Public/TopViewDiv.cs
index 0cacd40..27de3ca 100644
--- a/HDL_ON/UI/UI0-Public/TopViewDiv.cs
+++ b/HDL_ON/UI/UI0-Public/TopViewDiv.cs
@@ -340,7 +340,7 @@
         /// <summary>
         /// 鎴愬憳椤堕儴鏍�
         /// </summary>
-        public void LoadTopView_MemberTopView(Action addAction, Action action)
+        public void LoadTopView_MemberTopView(Action callBack, Action action)
         {
             LoadTopView();
             backAction = action;
diff --git a/HDL_ON/UI/UI0-Public/Widget/DiySelectPopupDialog.cs b/HDL_ON/UI/UI0-Public/Widget/DiySelectPopupDialog.cs
deleted file mode 100644
index a66af36..0000000
--- a/HDL_ON/UI/UI0-Public/Widget/DiySelectPopupDialog.cs
+++ /dev/null
@@ -1,665 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using HDL_ON.UI.CSS;
-using Shared;
-
-namespace HDL_ON
-{
-    /// <summary>
-    /// 妤煎眰DiySelectPopupDialog
-    /// </summary>
-    public class DiySelectPopupDialog : Dialog
-    {
-        /// <summary>
-        /// ALLSELECT锛屾爣璇�
-        /// </summary>
-        public const string ALLSELECT = "ALLSELECT";
-
-        /// bodyView
-        /// </summary>
-        FrameLayout bodyView;
-        /// <summary>
-        /// 搴曢儴View
-        /// 鑷繁鏍规嵁闇�瑕佽皟鏁碭銆乊鍧愭爣
-        /// </summary>
-        public FrameLayout BackView;
-        /// <summary>
-        /// 鍏ㄩ儴鎸夐挳
-        /// </summary>
-        Button leftAllButton;
-        /// <summary>
-        /// 涓�绾ф粦鍔╒iew
-        /// </summary>
-        VerticalScrolViewLayout leftScrolView;
-        /// <summary>
-        /// 浜岀骇婊戝姩View
-        /// </summary>
-        VerticalScrolViewLayout rightScrolView;
-        /// <summary>
-        /// 閫変腑鍥炶皟浜嬩欢
-        /// </summary>
-        Action<string> SelectAction;
-        /// <summary>
-        /// 涓�绾ist
-        /// </summary>
-        List<RoomCellInfo> mFirstList = new List<RoomCellInfo>();
-        /// <summary>
-        /// 浜岀骇鑱斿姩List
-        /// </summary>
-        List<List<RoomCellInfo>> mSecondList = new List<List<RoomCellInfo>>();
-        /// <summary>
-        /// 浜岀骇鎵�鏈塋ist
-        /// </summary>
-        List<RoomCellInfo> mSecondAllList = new List<RoomCellInfo>();
-
-        /// <summary>
-        /// DiySelectPopupDialog
-        /// </summary>
-        public DiySelectPopupDialog()
-        {
-            bodyView = new FrameLayout();
-
-        }
-
-        /// <summary>
-        /// 鏄剧ずView
-        /// mFirstList銆乵SecondList涓嶅悎娉曢兘涓嶄細鏄剧ずView
-        /// mSecondList 涓嶄紶涓洪粯璁や竴绾�
-        /// </summary>
-        /// <param name="mFirstList">涓�绾ф暟鎹泦鍚�</param>
-        /// <param name="mSecondList">浜岀骇鏁版嵁闆嗗悎</param>
-        /// <param name="SelectAction">閫夋嫨鍥炶皟浜嬩欢</param>
-        /// <param name="selectTagId"></param>
-        public void ShowView(List<RoomCellInfo> mFirstList, List<List<RoomCellInfo>> mSecondList, Action<string> SelectAction, string selectTagId = ALLSELECT)
-        {
-            if (mFirstList == null)
-            {
-                Utlis.WriteLine("mFirstList null");
-                return;
-            }
-            //娉ㄥ唽鍥炶皟浜嬩欢
-            this.SelectAction = SelectAction;
-            //浜屾槸鍚﹂渶瑕佷簩绾у垽鏂�
-            if (mSecondList == null || mSecondList.Count == 0)
-            {
-                //涓�绾�
-                this.mFirstList = mFirstList;
-                //View鏄剧ず
-                ShowOneBaseView();
-                //鏁版嵁鍐呭濉厖
-                RefreshOneBaseView(selectTagId);
-            }
-            else
-            {
-                if (mFirstList.Count != mSecondList.Count)
-                {
-                    Utlis.WriteLine("鏁版嵁 涓嶈仈鍔ㄥ紓甯�");
-                    return;
-                }
-                //浜岀骇鑱斿姩
-                this.mFirstList = mFirstList;
-                this.mSecondList = mSecondList;
-                this.mSecondAllList.Clear();
-                foreach (var list in mSecondList)
-                {
-                    foreach (var data in list)
-                    {
-                        this.mSecondAllList.Add(data);
-                    }
-                }
-
-                //View鏄剧ず
-                ShowDoubleBaseView();
-                //鏁版嵁鍐呭濉厖
-                RefreshDoubleBaseView();
-                //閫変腑鏁堟灉
-                SetSelectTagId(selectTagId);
-
-            }
-            this.Show();
-        }
-
-
-        /// <summary>
-        /// 鍒锋柊UI锛岄�夋嫨鍏ㄩ儴
-        /// </summary>
-        void SelectAll()
-        {
-            RefreshSelectButton(leftScrolView, ALLSELECT);
-            var all = new RoomCellInfo()
-            {
-                TagId = ALLSELECT,
-                Title = "ALL",
-            };
-            LoadRightScrolView(all, this.mSecondAllList);
-        }
-
-        /// <summary>
-        /// 鏍规嵁tagID閫変腑
-        /// </summary>
-        void SetSelectTagId(string tagId)
-        {
-            if (string.IsNullOrEmpty(tagId) || tagId == ALLSELECT || mFirstList == null)
-            {
-                SelectAll();
-            }
-            else
-            {
-                //涓�绾фゼ灞傚尮閰嶆垚鍔�
-                var tagInfo = mFirstList.Find((m) => m.TagId == tagId);
-                if (tagInfo != null)
-                {
-                    var index = mFirstList.IndexOf(tagInfo);
-                    if (index < mSecondList.Count)
-                    {
-                        RefreshSelectButton(leftScrolView, tagId);
-                        LoadRightScrolView(tagInfo, mSecondList[index]);
-                        return;
-                    }
-                    else
-                    {
-                        SelectAll();
-                    }
-                }
-                else
-                {
-                    //SelectAll();
-                    //涓�绾х殑妤煎眰鍖归厤澶辫触锛屽皾璇曞尮閰嶄簩绾�
-                    if (mSecondList == null || mFirstList.Count != mSecondList.Count)
-                    {
-                        SelectAll();
-                    }
-                    else
-                    {
-                        //鏄惁鍖归厤鍒版埧闂�
-                        bool isFind = false;
-                        //1.閬嶅巻浜岀骇鎴块棿鏁版嵁
-                        for(var i = 0; i < mSecondList.Count; i++)
-                        {
-                            foreach (var room in mSecondList[i])
-                            {
-                                if(tagId == room.TagId)
-                                {
-                                    //鍖归厤鎴块棿鎴愬姛锛岄�変腑瀵逛簬鐨勬ゼ灞�
-                                    var tagFirstInfo = mFirstList[i];
-                                    isFind = true;
-                                    RefreshSelectButton(leftScrolView, tagFirstInfo.TagId);
-                                    LoadRightScrolView(tagFirstInfo, mSecondList[i]);
-                                    break;
-                                }
-                            }
-                        }
-
-                        //娌℃湁鍖归厤鍒版埧闂�
-                        if (!isFind)
-                        {
-                            SelectAll();
-                        }
-                    }
-
-
-                }
-            }
-        }
-
-        #region 浜岀骇鑱斿姩閫夋嫨鏁堟灉
-        /// <summary>
-        /// 鏄剧ず浜岀骇view
-        /// </summary>
-        void ShowDoubleBaseView()
-        {
-            bodyView.BackgroundColor = CSS_Color.DialogTransparentColor1;
-            this.AddChidren(bodyView);
-            bodyView.MouseUpEventHandler = (sender, e) =>
-            {
-                this.Close();
-            };
-
-            BackView = new FrameLayout()
-            {
-                X = Application.GetRealWidth(10),
-                Y = Application.GetRealHeight(104),
-                Width = Application.GetRealWidth(283),
-                Height = Application.GetRealWidth(242),
-            };
-            bodyView.AddChidren(BackView);
-
-            var backImageView = new ImageView(){
-                Width = BackView.Width,
-                Height = BackView.Height,
-                ImagePath = "Public/PopupDialog.png"
-            };
-            BackView.AddChidren(backImageView);
-
-            leftAllButton = new Button()
-            {
-                Y = Application.GetRealWidth(14),
-                X = Application.GetRealWidth(24),
-                Height = Application.GetRealWidth(44),
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextID = StringId.All,
-                IsSelected = true,
-                //IsBold = true,
-            };
-            BackView.AddChidren(leftAllButton);
-            //鍒嗗壊绾�
-            var lineView1 = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(112),
-                Height = Application.GetRealHeight(1),
-                Y = leftAllButton.Bottom,
-                X = leftAllButton.X,
-                BackgroundColor = CSS_Color.DividingLineColor,
-            };
-            BackView.AddChidren(lineView1);
-
-            leftScrolView = new VerticalScrolViewLayout()
-            {
-                X = Application.GetRealWidth(8),
-                Y = leftAllButton.Bottom,
-                Height = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(128),
-                VerticalScrollBarEnabled = false,
-            };
-            BackView.AddChidren(leftScrolView);
-
-            rightScrolView = new VerticalScrolViewLayout()
-            {
-                X = leftScrolView.Right + Application.GetRealWidth(12),
-                Y = Application.GetRealWidth(58),
-                Height = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(128),
-                VerticalScrollBarEnabled = false,
-            };
-            BackView.AddChidren(rightScrolView);
-
-            leftAllButton.MouseUpEventHandler = (sender, e) =>
-            {
-                leftAllButton.IsSelected = true;
-
-                //鍔犺浇鍏ㄩ儴
-                SelectAll();
-            };
-        }
-
-        /// <summary>
-        /// 鍒锋柊浜岀骇鑱斿姩鐨刅IEW
-        /// </summary>
-        void RefreshDoubleBaseView()
-        {
-            leftScrolView.RemoveAll();
-            for (var i = 0; i < mFirstList.Count; i++)
-            {
-                AddSelectButton(leftScrolView, mFirstList[i], mSecondList[i]);
-            }
-        }
-
-        /// <summary>
-        /// scrolView閲岄潰Button 閫変腑鏁堟灉浜掓枼
-        /// </summary>
-        /// <param name="scrolView"></param>
-        /// <param name="selectBtnTag"></param>
-        void RefreshSelectButton(VerticalScrolViewLayout scrolView, string selectBtnTag)
-        {
-            try
-            {
-                if (leftAllButton != null)
-                {
-                    leftAllButton.IsSelected = selectBtnTag == ALLSELECT;
-                }
-
-                if (scrolView != null)
-                {
-                    for (int i = 0; i < scrolView.ChildrenCount; i++)
-                    {
-                        if (scrolView.GetChildren(i).GetType() == typeof(FrameLayout))
-                        {
-                            var cellView = (FrameLayout)scrolView.GetChildren(i);
-                            for (int j = 0; j < cellView.ChildrenCount; j++)
-                            {
-                                if (cellView.GetChildren(j).GetType() == typeof(Button))
-                                {
-                                    var titleButton = (Button)cellView.GetChildren(j);
-                                    var o = titleButton.GetTagByKey("BtnKey");
-                                    if (o != null && o.ToString() == selectBtnTag)
-                                    {
-                                        titleButton.IsSelected = true;
-                                    }
-                                    else
-                                    {
-                                        titleButton.IsSelected = false;
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            catch
-            {
-
-            }
-        }
-
-        /// <summary>
-        /// 娣诲姞涓�绾фゼ灞傞�夋嫨CellView
-        /// </summary>
-        /// <param name="scrolView"></param>
-        /// <param name="firstData"></param>
-        /// <param name="rightList"></param>
-        void AddSelectButton(VerticalScrolViewLayout scrolView, RoomCellInfo firstData, List<RoomCellInfo> rightList)
-        {
-            var cellView = new FrameLayout()
-            {
-                Height = Application.GetRealWidth(44),
-                Tag = "cell"
-            };
-            scrolView.AddChidren(cellView);
-
-            var titleButton = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Height = Application.GetRealWidth(44),
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.TextFontSize,
-                TextAlignment = TextAlignment.CenterLeft,
-                Text = firstData.Title,
-            };
-            cellView.AddChidren(titleButton);
-            titleButton.AddTag("BtnKey", firstData.TagId);
-
-            //椤堕儴鍒嗗壊绾�
-            var lineView = new FrameLayout()
-            {
-                X = Application.GetRealWidth(16),
-                Height = Application.GetRealHeight(1),
-                Width = Application.GetRealWidth(112),
-                BackgroundColor = CSS_Color.DividingLineColor,
-                Y = cellView.Height - Application.GetRealHeight(1),
-            };
-            cellView.AddChidren(lineView);
-
-            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
-            {
-                //cellView.BackgroundColor = CSS_Color.viewTranslucence;
-                RefreshSelectButton(scrolView, firstData.TagId);
-                LoadRightScrolView(firstData, rightList);
-            };
-
-            titleButton.MouseUpEventHandler = eventHandler;
-            cellView.MouseUpEventHandler = eventHandler;
-
-            //EventHandler<MouseEventArgs> mousDownEventHandler = (sender, e) =>
-            //{
-            //    cellView.BackgroundColor = CSS_Color.TopViewColor;
-            //};
-
-            //titleButton.MouseDownEventHandler = mousDownEventHandler;
-            //cellView.MouseDownEventHandler = mousDownEventHandler;
-        }
-
-
-
-        /// <summary>
-        /// 鍔犺浇浜岀骇婊戝姩View
-        /// </summary>
-        /// <param name="firstData"></param>
-        /// <param name="rightList"></param>
-        void LoadRightScrolView(RoomCellInfo firstData, List<RoomCellInfo> rightList)
-        {
-            rightScrolView.RemoveAll();
-
-            //娣诲姞椤堕儴鍒嗗壊绾�
-            var lineView2 = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(112),
-                Height = Application.GetRealHeight(1),
-                BackgroundColor = CSS_Color.DividingLineColor,
-            };
-            rightScrolView.AddChidren(lineView2);
-            //娣诲姞鍏ㄩ儴鎸夐挳
-            var allInfo = new RoomCellInfo()
-            {
-                Title = Language.StringByID(StringId.All),
-                TagId = firstData.TagId,//涓婁竴绾фゼ灞侷D
-            };
-            AddRightSelectButton(rightScrolView, allInfo, true);
-
-            for (var i = 0; i < rightList.Count; i++)
-            {
-                AddRightSelectButton(rightScrolView, rightList[i]);
-            }
-
-        }
-
-        /// <summary>
-        ///  娣诲姞浜岀骇閫夋嫨CellView
-        /// </summary>
-        /// <param name="scrolView"></param>
-        /// <param name="secondData"></param>
-        /// <param name="isSelected"></param>
-        void AddRightSelectButton(VerticalScrolViewLayout scrolView, RoomCellInfo secondData, bool isSelected = false)
-        {
-            var cellView = new FrameLayout()
-            {
-                Height = Application.GetRealWidth(44),
-            };
-            scrolView.AddChidren(cellView);
-
-            var titleButton = new Button()
-            {
-                //X = Application.GetRealWidth(16),
-                Height = Application.GetRealWidth(44),
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.TextFontSize,
-                TextAlignment = TextAlignment.CenterLeft,
-                Text = secondData.Title,
-                IsSelected = isSelected
-            };
-            cellView.AddChidren(titleButton);
-
-            var lineView = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(112),
-                Height = Application.GetRealHeight(1),
-                Y = cellView.Height - Application.GetRealHeight(1),
-                BackgroundColor = CSS_Color.DividingLineColor,
-            };
-            cellView.AddChidren(lineView);
-
-            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
-            {
-                this.Close();
-                //鍥炶皟閫変腑绱㈠紩
-                SelectAction?.Invoke(secondData.TagId);
-            };
-
-            titleButton.MouseUpEventHandler = eventHandler;
-            cellView.MouseUpEventHandler = eventHandler;
-
-           
-        }
-
-        #endregion
-
-
-        #region 鍙湁涓�绾х殑鑱斿姩
-        /// <summary>
-        /// 閮芥樉绀轰竴绾х殑
-        /// </summary>
-        void ShowOneBaseView()
-        {
-            bodyView.BackgroundColor = CSS_Color.DialogTransparentColor1;
-            this.AddChidren(bodyView);
-            bodyView.MouseUpEventHandler = (sender, e) =>
-            {
-                this.Close();
-            };
-
-            BackView = new FrameLayout()
-            {
-                X = Application.GetRealWidth(10),
-                Y = Application.GetRealHeight(104),
-                Width = Application.GetRealWidth(160),
-                Height = Application.GetRealWidth(198),
-            };
-            bodyView.AddChidren(BackView);
-
-            var backImageView = new ImageView()
-            {
-                Width = BackView.Width,
-                Height = BackView.Height,
-                ImagePath = "PersonalCenter/HomeList3bg.png"
-            };
-            BackView.AddChidren(backImageView);
-
-            leftAllButton = new Button()
-            {
-                Y = Application.GetRealWidth(14),
-                X = Application.GetRealWidth(24),
-                Height = Application.GetRealWidth(44),
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextID = StringId.All,
-                //IsBold = true,
-            };
-            BackView.AddChidren(leftAllButton);
-            //鍒嗗壊绾�
-            var lineView1 = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(112),
-                Height = Application.GetRealHeight(1),
-                Y = leftAllButton.Bottom,
-                X = leftAllButton.X,
-                BackgroundColor = CSS_Color.DividingLineColor,
-            };
-            BackView.AddChidren(lineView1);
-
-            leftScrolView = new VerticalScrolViewLayout()
-            {
-                X = Application.GetRealWidth(8),
-                Y = leftAllButton.Bottom,
-                Height = Application.GetRealWidth(132),
-                Width = Application.GetRealWidth(144),
-                VerticalScrollBarEnabled = false,
-            };
-            BackView.AddChidren(leftScrolView);
-
-            leftAllButton.MouseUpEventHandler = (sender, e) =>
-            {
-                this.Close();
-                SelectAction?.Invoke(ALLSELECT);
-            };
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="tagId"></param>
-        void RefreshOneBaseView(string tagId)
-        {
-            if (leftAllButton != null)
-            {
-                leftAllButton.IsSelected = tagId == ALLSELECT;
-            }
-            leftScrolView.RemoveAll();
-            for (var i = 0; i < mFirstList.Count; i++)
-            {
-                AddOneSelectButton(leftScrolView, mFirstList[i], tagId);
-            }
-        }
-
-        /// <summary>
-        /// 娣诲姞涓�绾фゼ灞傞�夋嫨CellView
-        /// </summary>
-        /// <param name="scrolView"></param>
-        /// <param name="firstIndex"></param>
-        /// <param name="firstText"></param>
-        void AddOneSelectButton(VerticalScrolViewLayout scrolView, RoomCellInfo firstData, string tagId)
-        {
-            var cellView = new FrameLayout()
-            {
-                Height = Application.GetRealWidth(44),
-                Tag = "cell"
-            };
-            scrolView.AddChidren(cellView);
-
-            var titleButton = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Height = Application.GetRealWidth(44),
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.TextFontSize,
-                TextAlignment = TextAlignment.CenterLeft,
-                Text = firstData.Title,
-            };
-            cellView.AddChidren(titleButton);
-            titleButton.IsSelected = firstData.TagId == tagId;
-            titleButton.AddTag("BtnKey", firstData.TagId);
-
-            //椤堕儴鍒嗗壊绾�
-            var lineView = new FrameLayout()
-            {
-                X = Application.GetRealWidth(16),
-                Height = Application.GetRealHeight(1),
-                Width = Application.GetRealWidth(112),
-                BackgroundColor = CSS_Color.DividingLineColor,
-                Y = cellView.Height - Application.GetRealHeight(1),
-            };
-            cellView.AddChidren(lineView);
-
-            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
-            {
-                this.Close();
-                //鍥炶皟閫変腑绱㈠紩
-                SelectAction?.Invoke(firstData.TagId);
-            };
-
-            titleButton.MouseUpEventHandler = eventHandler;
-            cellView.MouseUpEventHandler = eventHandler;
-
-            //EventHandler<MouseEventArgs> mousDownEventHandler = (sender, e) =>
-            //{
-            //    cellView.BackgroundColor = CSS_Color.TopViewColor;
-            //};
-
-            //titleButton.MouseDownEventHandler = mousDownEventHandler;
-            //cellView.MouseDownEventHandler = mousDownEventHandler;
-        }
-
-        
-
-        #endregion
-
-
-        #region 閫夋嫨妤煎眰鍜屾埧闂翠笓鐢�
-
-
-        #endregion
-
-
-    }
-
-    /// <summary>
-    /// 
-    /// </summary>
-    public class RoomCellInfo
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        public string Title;
-        /// <summary>
-        /// 
-        /// </summary>
-        public string TagId;
-    }
-}
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index d58d0ec..63b97f5 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -948,12 +948,8 @@
                     LoadEvent_ControlCurtain(function, btnCurtainClose, btnCurtainOpen);
                 }
 
-                else if (function.spk == SPK.ElectricTV || function.spk == SPK.TvIr || function.spk == SPK.TvXmIr
-                    || function.spk == SPK.StbIr || function.spk == SPK.PjtIr)
+                else if (SPK.NotStatusSpkList.Contains(function.spk))
                 {
-                    //btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
-                    //btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
-
                     Button btnPower;
                     btnPower = new Button()
                     {
@@ -962,6 +958,7 @@
                         Width = Application.GetRealWidth(32),
                         Height = Application.GetRealWidth(32),
                         UnSelectedImagePath = "Public/PowerClose.png",
+                        SelectedImagePath = "Public/PowerOpen.png",
                     };
                     view.AddChidren(btnPower);
                     LoadEvent_ControlTV(function, btnPower);
@@ -1057,62 +1054,8 @@
                     };
                     view.AddChidren(btnSwitch);
 
-
                     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);
                 }
                 //鍙栨秷鏀惰棌浜嬩欢
@@ -1137,8 +1080,8 @@
                 btnName.MouseUpEventHandler = skipControlPageEvent;
                 btnIcon.MouseUpEventHandler = skipControlPageEvent;
                 btnState.MouseUpEventHandler = skipControlPageEvent;
-                //鐢佃涓嶉渶瑕佹洿鏂扮姸鎬�
-                if(function.spk!= SPK.ElectricTV && function.spk != SPK.StbIr && function.spk != SPK.PjtIr)
+                //涓嶉渶瑕佹洿鏂扮姸鎬佺殑鍔ㄨ兘鍒楄〃
+                if(!SPK.NotStatusSpkList.Contains(function.spk))
                 {
                     UpdataFunctionStates(function);
                 }
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
index b84b2a7..f0fdbc0 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -359,6 +359,13 @@
                 btnSwitch.IsSelected = !btnSwitch.IsSelected;
                 new System.Threading.Thread(() =>
                 {
+                    if(SPK.NotStatusSpkList.Contains(function.spk))
+                    {
+                        System.Threading.Thread.Sleep(1000);
+                        Application.RunOnMainThread(() => {
+                            btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                        });
+                    }
                     function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off";
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     if (function.spk == SPK.LightDimming || function.spk == SPK.LightRGB)
@@ -388,21 +395,35 @@
         /// <summary>
         /// 鍔犺浇鐢佃鎺у埗浜嬩欢
         /// </summary>
-        /// <param name="tV"></param>
-        /// <param name="button"></param>
-        void LoadEvent_ControlTV(Function tV, Button button)
+        /// <param name="function"></param>
+        /// <param name="btnSwitch"></param>
+        void LoadEvent_ControlTV(Function function, Button btnSwitch)
         {
-            button.MouseUpEventHandler = (sender, e) =>
+            btnSwitch.MouseUpEventHandler = (sender, e) =>
             {
                 if (DB_ResidenceData.Instance.GatewayType == 1)
                 {
-                    Dictionary<string, string> d = new Dictionary<string, string>();
-                    d.Add("on_off", "");
-                    Control.Ins.SendWriteCommand(tV, d);
+                    btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                    new System.Threading.Thread(() =>
+                    {
+                        if (SPK.NotStatusSpkList.Contains(function.spk))
+                        {
+                            System.Threading.Thread.Sleep(2000);
+                            Application.RunOnMainThread(() =>
+                            {
+                                btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                            });
+                        }
+
+                        Dictionary<string, string> d = new Dictionary<string, string>();
+                        d.Add("on_off", "");
+                        Control.Ins.SendWriteCommand(function, d);
+                    })
+                    { IsBackground = true }.Start();
                 }
                 else
                 {
-                    new TV().ControlTV(InfraredCode_TV.Power, tV);
+                    new TV().ControlTV(InfraredCode_TV.Power, function);
                 }
             };
         }
diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
index e78c6d0..606a378 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -719,7 +719,7 @@
                         functionCount = FunctionList.List.GetArmSensorList().Count;
                         break;
                     case ShowFunction.VideoIntercom:
-                        if (FunctionList.List.videoIntercom != null)
+                        if (FunctionList.List.videoIntercom != null && FunctionList.List.videoIntercom.Count > 0)
                         {
                             functionCount = 1;
                         }
@@ -1028,12 +1028,12 @@
                         btnName.TextID = StringId.Sensor;
                         functionPageTitleId = StringId.Sensor;
                         break;
-                    case ShowFunction.VideoIntercom:
+                    case ShowFunction.VideoIntercom://鍙瀵硅
                         btnName.TextID = StringId.VideoIntercom;
                         btnFunctionViewBg.MouseUpEventHandler = (sender, e) =>
                         {
                             var videoMethod = new UI2.FuntionControlView.Video.VideoMethod();
-                            videoMethod.MianView(this,FunctionList.List.videoIntercom);
+                            videoMethod.MianView(this);
                         };
                         break;
                     case ShowFunction.SecurityCenter:
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
index ba7121f..27ce249 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -160,7 +160,6 @@
                             LoadLastStatesButton();
                             break;
                         case FunctionCategory.Light:
-                            //btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightThinIcon.png";
                             btnSwitch.IsSelected = function.trait_on_off.curValue.ToString() == "on";
                             LoadLightControl();
                             break;
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
index 6f234d8..66a2ff8 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
@@ -81,7 +81,7 @@
             {
                 btnSwitch.IsSelected = !btnSwitch.IsSelected;
 
-                if(function.spk == SPK.IrLearn || function.spk == SPK.TvIr || function.spk == SPK.TvXmIr)
+                if(SPK.NotStatusSpkList.Contains( function.spk ))
                 {
                     new System.Threading.Thread(() => {
                         System.Threading.Thread.Sleep(2000);
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
index 2bc0a26..7698eca 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
@@ -252,7 +252,7 @@
                         ) =>
                     {
                         Logic.currlogic.name = logicName;
-                        Logic.currlogic.sid = LogicMethod.NewSid();
+                        Logic.currlogic.sid = LogicMethod.CurrLogicMethod.NewSid();
                         loading.Start();
                         new System.Threading.Thread(() =>
                         {
@@ -295,7 +295,7 @@
                                         }
 
                                         Logic.LogicList.Add(Logic.currlogic);
-                                        LogicMethod.RemoveAllView();
+                                        LogicMethod.CurrLogicMethod.RemoveAllView();
                                         MainView.MainShow();
                                     }
                                     else if (responsePackNew != null && responsePackNew.Code == "14005")
@@ -335,7 +335,7 @@
                                 loading.Hide();
                                 if (responsePackNew != null && responsePackNew.Code == "0")
                                 {
-                                    LogicMethod.RemoveAllView();
+                                    LogicMethod.CurrLogicMethod.RemoveAllView();
                                     MainView.MainShow();
                                 }
                                 else if (responsePackNew != null && responsePackNew.Code == "14005")
@@ -504,6 +504,7 @@
         {
             //瀹氫箟涓�涓眬閮╳eekList鍒楄〃鐢ㄦ潵璁板綍閫変腑鏁版嵁;
             List<string> weekStateList = new List<string>();
+
             PublicInterface weekView = new PublicInterface();
             if (Logic.currlogic.cycle.type == "week")
             {
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs
index d185e19..cdb06f7 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs
@@ -85,7 +85,7 @@
         /// </summary>
         public void SceneMethod()
         {
-            var sceneList = LogicMethod.GetSceneList();
+            var sceneList = LogicMethod.CurrLogicMethod.GetSceneList();
             List<string> nameList = new List<string>();
             for (int i = 0; i < sceneList.Count; i++) {
                 var scene = sceneList[i];
@@ -101,7 +101,7 @@
                 //娌″暐浣滅敤锛屼负浜嗗彂閫佹暟鎹牸寮忕粺涓�;
                 outputDevice.status = new List<Dictionary<string, string>> { new Dictionary<string, string> { { "key", "scene" }, { "value", "0" } } };
                 AddOutput(outputDevice);
-                LogicMethod.RemoveAllView();
+                LogicMethod.CurrLogicMethod.RemoveAllView();
                 AddLogic addLogic = new AddLogic();
                 MainPage.BasePageView.AddChidren(addLogic);
                 addLogic.Show();
@@ -168,11 +168,11 @@
                     return;
                 }
                 Output outputTime= new Output();
-                outputTime.sid = LogicMethod.NewSid();
+                outputTime.sid = LogicMethod.CurrLogicMethod.NewSid();
                 outputTime.target_type = "3";
                 Dictionary<string, string> dic = new Dictionary<string, string>();
-                LogicMethod.dictionary(dic, "key", "delay");
-                LogicMethod.dictionary(dic, "value", timepoint);
+                LogicMethod.CurrLogicMethod.dictionary(dic, "key", "delay");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "value", timepoint);
                 outputTime.status.Add(dic);
                 if (edit)
                 {
@@ -187,7 +187,7 @@
                     AddOutput(outputTime);
                 }
                 fLayout.RemoveFromParent();
-                LogicMethod.RemoveAllView();
+                LogicMethod.CurrLogicMethod.RemoveAllView();
                 AddLogic addLogic = new AddLogic();
                 MainPage.BasePageView.AddChidren(addLogic);
                 addLogic.Show();
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AirQuality.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AirQuality.cs
index 4176826..71b6f63 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AirQuality.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AirQuality.cs
@@ -72,7 +72,7 @@
                     AddDic(value);
                 };
             }
-      
+
         }
         /// <summary>
         /// 灏佽鏁版嵁
@@ -81,13 +81,13 @@
         private void AddDic(string value)
         {
             Input input = new Input();
-            input.sid = LogicMethod.NewSid();
+            input.sid = LogicMethod.CurrLogicMethod.NewSid();
             input.condition_type = "9";
             Dictionary<string, string> dic = new Dictionary<string, string>();
-            LogicMethod.dictionary(dic, "key", "air_quality");
-            LogicMethod.dictionary(dic, "comparator", "=");
-            LogicMethod.dictionary(dic, "data_type", "string");
-            LogicMethod.dictionary(dic, "value", value);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "key", "air_quality");
+            LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "=");
+            LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string");
+            LogicMethod.CurrLogicMethod.dictionary(dic, "value", value);
             input.condition.Add(dic);
             AddCondition(input);
         }
@@ -121,7 +121,7 @@
                 Logic.currlogic.input.Add(input);
             }
 
-            LogicMethod.RemoveAllView();
+            LogicMethod.CurrLogicMethod.RemoveAllView();
             AddLogic addLogic = new AddLogic();
             MainPage.BasePageView.AddChidren(addLogic);
             addLogic.Show();
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
index 3cbd448..e2ec5ee 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -3,6 +3,7 @@
 using System.Collections.Generic;
 using HDL_ON.Entity;
 
+
 namespace HDL_ON.UI.UI2.Intelligence.Automation
 {
     public class ConditionDeviceFunList : FrameLayout
@@ -19,6 +20,7 @@
         /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵��
         /// </summary>
         private string selectedState = "unknown";
+
         public void Show(Entity.Function device, int index, bool edit)
         {
             #region 鐣岄潰甯冨眬
@@ -188,7 +190,7 @@
                 case SPK.SenesorMegahealth:
                     {
                         LogicView.FunTypeView view = new LogicView.FunTypeView();
-                        view.btnText.TextID = StringId.mubiaozhuangtai ;//鐩爣鐘舵��
+                        view.btnText.TextID = StringId.mubiaozhuangtai;//鐩爣鐘舵��
                         fLayout.AddChidren(view.FLayoutView());
                         view.btnClick.MouseUpEventHandler += (sender, e) =>
                         {
@@ -200,7 +202,72 @@
                         }
                     }
                     break;
+                //鐜妫�娴嬩紶鎰熷櫒
+                case SPK.SenesorEnvironment:
+                    {
+                        #region 鐣岄潰
+                        ///娓╁害
+                        LogicView.FunTypeView wenuView = new LogicView.FunTypeView();
+                        wenuView.btnText.TextID = StringId.wendu;
+                        fLayout.AddChidren(wenuView.FLayoutView());
+                        ///婀垮害
+                        LogicView.FunTypeView shiduView = new LogicView.FunTypeView();
+                        shiduView.frameLayout.Y = wenuView.frameLayout.Bottom;
+                        shiduView.btnText.TextID = StringId.shidu;
+                        fLayout.AddChidren(shiduView.FLayoutView());
+                        ///pm2.5
+                        LogicView.FunTypeView pm25View = new LogicView.FunTypeView();
+                        pm25View.frameLayout.Y = shiduView.frameLayout.Bottom;
+                        pm25View.btnText.TextID = StringId.pm25;
+                        fLayout.AddChidren(pm25View.FLayoutView());
+                        ///co2
+                        LogicView.FunTypeView co2View = new LogicView.FunTypeView();
+                        co2View.frameLayout.Y = pm25View.frameLayout.Bottom;
+                        co2View.btnText.TextID = StringId.co2;
+                        fLayout.AddChidren(co2View.FLayoutView());
+                        ///tvoc
+                        LogicView.FunTypeView tvocView = new LogicView.FunTypeView();
+                        tvocView.frameLayout.Y = co2View.frameLayout.Bottom;
+                        tvocView.btnText.TextID = StringId.tvoc;
+                        fLayout.AddChidren(tvocView.FLayoutView());
+                        #endregion
+                        #region 鐐瑰嚮浜嬩欢
+                        ///娓╁害鐐瑰嚮浜嬩欢
+                        wenuView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            new PublicInterface { }.ViewZuHe(this, StringId.wendugaoyu, StringId.wendudiyu, (intText, view) =>
+                            {
+                                InputBoxAction(device,intText, index, edit);
+                            });
+                        };
+                        ///婀垮害鐐瑰嚮浜嬩欢
+                        shiduView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            new PublicInterface { }.ViewZuHe(this, StringId.shidugaoyu, StringId.shidudiyu, (intText, view) =>
+                            {
+                                InputBoxAction(device,intText, index, edit);
+                            });
 
+                        };
+                        ///pm2.5鐐瑰嚮浜嬩欢
+                        pm25View.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            PmCo2TvocAction(this,device, "pm25",StringId.pm25, index,edit);
+                        };
+                        ///co2鐐瑰嚮浜嬩欢
+                        co2View.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            PmCo2TvocAction(this,device, "co2", StringId.co2, index, edit);
+                        };
+                        ///tvoc鐐瑰嚮浜嬩欢
+                        tvocView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            PmCo2TvocAction(this,device, "tvoc", StringId.tvoc, index, edit);
+
+                        };
+                        #endregion
+                    }
+                    break;
             }
             #region  淇濆瓨
             ///淇濆瓨View
@@ -210,55 +277,65 @@
             this.AddChidren(saveView.FLayoutView());
             saveView.btnClick.MouseUpEventHandler += (sen, e) =>
             {
-                if (selectedState != "unknown")
-                {
-                    Input inputDevice = new Input();
-                    inputDevice.condition_type = "3";
-                    inputDevice.sid = device.sid;
-                    inputDevice.condition = dicSateteList;
-                    if (edit)
-                    {
-                        //绉婚櫎鏃ф暟鎹�
-                        Logic.currlogic.input.RemoveAt(index);
-                        //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃�;
-                        Logic.currlogic.input.Insert(index, inputDevice);
-                    }
-                    else
-                    {
-                        //娣诲姞涓�涓潯浠�
-                        AddCondition(inputDevice);
-                    }
-                }
-                else
-                {
-                    if (!edit)
-                    {
-                        //鎻愮ず鐢ㄦ埛
-                        return;
-                    }
-                    this.RemoveFromParent();
-                    return;
-                }
-                LogicMethod.RemoveAllView();
-
-                if (MainView.IsGatewayType)
-                { //A缃戝叧
-                    var addLogic = new AddLogic();
-                    MainPage.BasePageView.AddChidren(addLogic);
-                    addLogic.Show();
-                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                }
-                else
-                {
-                    //涓�绔彛缃戝叧
-                    var onePortAutomation = new OnePortAutomation();
-                    MainPage.BasePageView.AddChidren(onePortAutomation);
-                    onePortAutomation.Show();
-                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                }
+                Save(device,index, edit);
             };
 
             #endregion
+
+        }
+        /// <summary>
+        /// 淇濆瓨杈撳叆鏉′欢
+        /// </summary>
+        /// <param name="index">绱㈠紩鍊�</param>
+        /// <param name="edit"></param>
+        private void Save(Entity.Function device,int index, bool edit)
+        {
+            
+            if (selectedState != "unknown")
+            {
+                Input inputDevice = new Input();
+                inputDevice.condition_type = "3";
+                inputDevice.sid = device.sid;
+                inputDevice.condition = dicSateteList;
+                if (edit)
+                {
+                    //绉婚櫎鏃ф暟鎹�
+                    Logic.currlogic.input.RemoveAt(index);
+                    //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃�;
+                    Logic.currlogic.input.Insert(index, inputDevice);
+                }
+                else
+                {
+                    //娣诲姞涓�涓潯浠�
+                    AddCondition(inputDevice);
+                }
+            }
+            else
+            {
+                if (!edit)
+                {
+                    //鎻愮ず鐢ㄦ埛
+                    return;
+                }
+                this.RemoveFromParent();
+                return;
+            }
+            LogicMethod.CurrLogicMethod.RemoveAllView();
+            if (MainView.IsGatewayType)
+            { //A缃戝叧
+                var addLogic = new AddLogic();
+                MainPage.BasePageView.AddChidren(addLogic);
+                addLogic.Show();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            }
+            else
+            {
+                //涓�绔彛缃戝叧
+                var onePortAutomation = new OnePortAutomation();
+                MainPage.BasePageView.AddChidren(onePortAutomation);
+                onePortAutomation.Show();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            }
 
         }
         /// <summary>
@@ -268,7 +345,8 @@
         /// <param name="button">閫変腑鐘舵�佹樉绀烘枃鏈珺tn鎺т欢</param>
         /// <param name="btnText1">灞炴�х姸鎬佸�兼枃鏈�1</param>
         /// <param name="btnText2">灞炴�х姸鎬佸�兼枃鏈�2</param>
-        private void DeviceView(Entity.Function device,Button button,int btnText1,int btnText2) { 
+        private void DeviceView(Entity.Function device, Button button, int btnText1, int btnText2)
+        {
             FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence };
             this.AddChidren(frame);
             LogicView.SwitchView switchView = new LogicView.SwitchView();
@@ -375,6 +453,95 @@
 
         }
         /// <summary>
+        /// 娓╁害,婀垮害寮规璁剧疆鍊�
+        /// </summary>
+        /// <param name="textInt">鏂囨湰</param>
+        /// <param name="stateValue">缂栬緫涔嬪墠鐨勭姸鎬佸��,榛樿涓�20</param>
+        public void InputBoxAction(Entity.Function device, int textInt, int index, bool edit, string stateValue = "20")
+        {
+            if (edit)
+            {
+                Input inputs = Logic.currlogic.input[index];
+                //娓呴櫎涔嬪墠鏃ф暟鎹�
+                dicSateteList.Clear();
+                if (inputs.condition.Count != 0)
+                {
+                    //鏈夋暟鎹噸鏂拌祴鍊�
+                    dicSateteList = inputs.condition;
+                }
+            }
+            new LogicView.TipPopView { }.InputBox(textInt, stateValue, (value) =>
+            {
+                string keyValue = "20";
+                string data_type = "integer";
+                string comparator = "=";
+                switch (textInt)
+                {
+                    case StringId.wendugaoyu:
+                        {
+                            keyValue = "temperature";
+                            comparator = ">";
+                            data_type = "float";
+                        }
+                        break;
+                    case StringId.wendudiyu:
+                        {
+                            keyValue = "temperature";
+                            comparator = "<";
+                            data_type = "float";
+                        }
+                        break;
+                    case StringId.shidugaoyu:
+                        {
+                            keyValue = "humidity";
+                            comparator = ">";
+                        }
+                        break;
+                    case StringId.shidudiyu:
+                        {
+                            keyValue = "humidity";
+                            comparator = "<";
+                        }
+                        break;
+                }
+                selectedState = device.spk + "_" + value;
+                AddDictionary(keyValue, value, data_type, comparator);
+                Save(device,index, edit);
+            });
+        }
+        /// PM2.5,Co2,Tvoc璁剧疆鍊�
+        /// </summary>
+        /// <param name="frame">褰撳墠鐣岄潰</param>
+        /// <param name="key">灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�<</param>
+        /// <param name="title">鏍囬鏂囨湰</param>
+        /// <param name="index"></param>
+        /// <param name="edit"></param>
+        /// <param name="stateValue">缂栬緫涔嬪墠鐨勭姸鎬佸��,榛樿涓�""</param>
+        public void PmCo2TvocAction(FrameLayout frame, Entity.Function device,string key,int title, int index, bool edit, string stateValue = "")
+        {
+            if (edit)
+            {
+                Input inputs = Logic.currlogic.input[index];
+                //娓呴櫎涔嬪墠鏃ф暟鎹�
+                dicSateteList.Clear();
+                if (inputs.condition.Count != 0)
+                {
+                    //鏈夋暟鎹噸鏂拌祴鍊�
+                    dicSateteList = inputs.condition;
+                }
+            }
+            PublicInterface view = new PublicInterface();  
+            var listStr = view.GetViewList(key); 
+            view.SingleSelectionShow(frame, listStr, Language.StringByID(title), view.GetString(key, stateValue)
+               , (text) =>
+               {
+                   var value = view.GetValue(key, text);
+                   selectedState = device.spk + "_"+ key;
+                   AddDictionary(key, value, "integer");
+                   Save(device,index, edit);
+               });
+        }
+        /// <summary>
         /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
         /// </summary>
         /// <param name="device">缂栬緫璁惧</param>
@@ -403,15 +570,15 @@
         /// <param name="selectedValue">鐘舵�佸��</param>
         /// <param name="data_type">绫诲瀷</param>
         /// <param name="comparator">姣旇緝鍏崇郴</param>
-        private void AddDictionary(string KeyValue, string selectedValue,string data_type,string comparator="=")
+        private void AddDictionary(string KeyValue, string selectedValue, string data_type, string comparator = "=")
         {
             //鏁版嵁灏佽
             Dictionary<string, string> dic = new Dictionary<string, string>();
-            LogicMethod.dictionary(dic, "key", KeyValue);
-            LogicMethod.dictionary(dic, "comparator", comparator);
-            LogicMethod.dictionary(dic, "data_type", data_type);
-            LogicMethod.dictionary(dic, "value", selectedValue);
-            AddDictionaryList(KeyValue, comparator,dic);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "key", KeyValue);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", comparator);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", data_type);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "value", selectedValue);
+            AddDictionaryList(dic);
         }
         /// <summary>
         /// 鏇存柊鏁版嵁鍒楄〃
@@ -420,22 +587,9 @@
         /// <param name="comparator">姣旇緝鍏崇郴</param>
         /// <param name="dictionary">娣诲姞閫変腑鏁版嵁</param>
         /// <returns></returns>
-        private void AddDictionaryList(string keyValue,string comparator, Dictionary<string, string> dictionary) 
+        private void AddDictionaryList(Dictionary<string, string> dictionary)
         {
-            int indexValue = -1;
-            for (int i = 0; i < dicSateteList.Count; i++)
-            {
-                var dic = dicSateteList[i];
-                string key = dic["key"];
-                string comparatorValue = dic["comparator"];
-                if (key == keyValue && comparatorValue == comparator)
-                {
-                    //鍒ゆ柇鏄惁瀛樺湪
-                    indexValue = i;
-                    break;
-                }
-            }
-
+            var indexValue = IsContainsAll(dictionary, dicSateteList);
             if (indexValue != -1)
             {
                 //瀛樺湪绉婚櫎
@@ -461,8 +615,13 @@
             {
                 if (Logic.currlogic.input[i].sid == input.sid)
                 {
-                    indexValue = i;
-                    break;
+                    //鏈変簺璁惧姣旇緝鐗规畩锛堜緥濡傦細娴锋灄浼犳劅鍣ㄨ繕鏄鍒ゆ柇灞炴�у�硷紝娓╂箍搴﹀睘鎬ц繕瑕佸垽鏂瘮杈冨叧绯伙紝鎵嶈兘纭鏄惁宸茬粡瀛樺湪璇ユ潯浠讹紝鍏朵粬璁惧鏉′欢鐩存帴鐢╯id鍒ゆ柇鍗冲彲锛�
+                    //鍔犱竴绾у垽鏂槸涓哄吋瀹圭壒娈婅澶�
+                    if (IsContainsAll(input.condition, Logic.currlogic.input[i].condition))
+                    {
+                        indexValue = i;
+                        break;
+                    }
                 }
             }
 
@@ -477,5 +636,53 @@
             }
 
         }
+        /// <summary>
+        /// 鍒ゆ柇dictionaryB鍒楄〃鏄惁瀹屾暣鍖呭惈鍙︿竴涓猟ictionaryA
+        /// </summary>
+        /// <param name="dictionaryA">瀵硅薄</param>
+        /// <param name="dictionaryB">鍒楄〃</param>
+        /// <returns>杩斿洖鍒楄〃鐨勭储寮曞��</returns>
+        public int IsContainsAll(Dictionary<string, string> dictionaryA, List<Dictionary<string, string>> dictionaryB)
+        {
+            int valueInt = -1;
+            for (int i = 0; i < dictionaryB.Count; i++)
+            {
+                var dic = dictionaryB[i];
+                string key = dic["key"];
+                string comparatorValue = dic["comparator"];
+                if (dictionaryA["key"] == key && dictionaryA["comparator"] == comparatorValue)
+                {
+                    //鍒ゆ柇鏄惁瀛樺湪
+                    valueInt = i;
+                    break;
+                }
+            }
+            return valueInt;
+        }
+        /// <summary>
+        /// 鍒ゆ柇dictionaryB鏄惁瀹屾暣鍖呭惈鍙︿竴涓猟ictionaryA
+        /// </summary>
+        /// <param name="dictionaryA"></param>
+        /// <param name="dictionaryB"></param>
+        /// <returns></returns>
+        public bool IsContainsAll(List<Dictionary<string, string>> dictionaryA, List<Dictionary<string, string>> dictionaryB)
+        {
+
+            for (int i = 0; i < dictionaryA.Count; i++)
+            {
+                var dic = dictionaryA[i];
+                string key = dic["key"];
+                string comparatorValue = dic["comparator"];
+                var list = dictionaryB.FindAll((dictionary) => dictionary["key"] == key && dictionary["comparator"] == comparatorValue);
+                if (list.Count> 0)
+                {
+                    return true;
+                }
+
+            }
+            return false;
+        }
+
+       
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
index b79e2b2..addf896 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
@@ -81,7 +81,7 @@
                     Width = Application.GetRealWidth(144),
                     Height = Application.GetRealHeight(44 * 5),
                 };
-                var roomList = LogicMethod.GetGatewayRoomList(Language.StringByID(StringId.allAreas));
+                var roomList = LogicMethod.CurrLogicMethod.GetGatewayRoomList(Language.StringByID(StringId.allAreas));
                
                 if (roomList.Count > 5)
                 {
@@ -122,7 +122,7 @@
                         funAllAreaView.btnText2.Text = Language.StringByID(StringId.allFun);
                         selectedRoom = (areaView.btnClick.Tag as Entity.Room);
                         ///鑾峰彇鏄剧ず璁惧鍒楄〃
-                        var list = LogicMethod.GetFunctionDeviceList(areaView.btnClick.Tag as Entity.Room,if_type);
+                        var list = LogicMethod.CurrLogicMethod.GetFunctionDeviceList(areaView.btnClick.Tag as Entity.Room,if_type);
 
                         DeviceListView(vv, list);
                     };
@@ -138,9 +138,9 @@
             EventHandler<MouseEventArgs> funClick = (sender3, e3) =>{
 
                 //鑾峰彇鏈�缁堟樉绀哄垪琛�
-                var functionList = LogicMethod.GetFunctionDeviceList(selectedRoom, if_type);
+                var functionList = LogicMethod.CurrLogicMethod.GetFunctionDeviceList(selectedRoom, if_type);
                 //鑾峰彇璁惧鍒楄〃鐨勭被鍨嬶紙渚嬪锛氱伅鍏夌被锛岀獥甯樼被銆傘�傘�傦級
-                var deviceTypeList = LogicMethod.GetDeviceTypeList(functionList);
+                var deviceTypeList = LogicMethod.CurrLogicMethod.GetDeviceTypeList(functionList);
                 if (deviceTypeList.Count==0) {
                     //娌℃湁绫诲瀷鐩存帴杩斿洖鍘�;
                     return;
@@ -219,9 +219,9 @@
                         fLayout.RemoveFromParent();
                         funAllAreaView.btnText2.Text = areaView.btnClick.Tag.ToString();
                         ///鑾峰彇鍗曚釜绫诲瀷锛堜緥濡傦細鐏厜绫汇�傘�傦級璁惧FunctionType鍒楄〃
-                        var typeFunctionList = LogicMethod.GetDeviceTypeFunctionList(areaView.btnClick.Tag.ToString());
+                        var typeFunctionList = LogicMethod.CurrLogicMethod.GetDeviceTypeFunctionList(areaView.btnClick.Tag.ToString());
                         ///鑾峰彇鍗曚釜鐏厜绫诲瀷锛堜緥濡傦細鐏厜1,鐏厜2銆傘�傦級鏄剧ず璁惧鍒楄〃
-                        var lists = LogicMethod.GetShowDeviceList(typeFunctionList, functionList);
+                        var lists = LogicMethod.CurrLogicMethod.GetShowDeviceList(typeFunctionList, functionList);
                         DeviceListView(vv, lists);
                     };
                     if (deviceTypeList.Count - 1 == i)
@@ -234,7 +234,7 @@
             funAllAreaView.btnText2.MouseUpEventHandler += funClick;
             funAllAreaView.btnIcon2.MouseUpEventHandler += funClick;
             ///鑾峰彇鏄剧ず璁惧鍒楄〃
-            var deviceList = LogicMethod.GetFunctionDeviceList(selectedRoom, if_type);
+            var deviceList = LogicMethod.CurrLogicMethod.GetFunctionDeviceList(selectedRoom, if_type);
             DeviceListView(vv, deviceList);
 
         }
@@ -255,7 +255,7 @@
                 funView.btnLine.X = Application.GetRealWidth(16);
                 funView.btnLine.Width = Application.GetRealWidth(343);
                 verticalScrolView.AddChidren(funView.FLayoutView());
-                funView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(dev.spk);
+                funView.btnIcon.UnSelectedImagePath = LogicMethod.CurrLogicMethod.GetIconPath(dev.spk);
                 funView.btnDeviceName.Text = dev.name;
                 funView.btnRoomName.Text = dev.GetRoomListName();
                 funView.btnClick.MouseUpEventHandler += (sen,e) => {
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
index 7e25ab5..c2f9703 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -20,12 +20,14 @@
                 ///鍚勭鏉′欢鐨刅iew
                 LogicView.AddOutputInputView inputView = new LogicView.AddOutputInputView();
                 inputView.FLayoutView(viewLayout);
+                //娣诲姞娌℃湁寤舵椂锛岄殣钘忓欢鏃舵寜閽�;
+                inputView.btnDelay.Visible = false;
                 ///璁板綍鏉′欢绫诲瀷
                 inputView.btnClick.Name = inputCondition.condition_type;
                 ///璁板綍鏉′欢绱㈠紩
-                inputView.btnClick.Tag = inputCondition.sid;
+                inputView.btnClick.Tag = inputCondition;
                 ///鏉′欢鐘舵�佹暟缁�
-                List<Dictionary<string, string>> dicList = inputCondition.condition as List<Dictionary<string, string>>;
+                List<Dictionary<string, string>> dicList = inputCondition.condition;
                 //鏄剧ず鏉′欢鍚勭绫诲瀷鐘舵��
                 switch (inputCondition.condition_type)
                 {
@@ -123,9 +125,9 @@
                     case "3":
                         {
                             //鐢╯id鎵惧埌璁惧锛�
-                            var device = LogicMethod.GetDevice(inputCondition.sid);
+                            var device = LogicMethod.CurrLogicMethod.GetDevice(inputCondition.sid);
                             //鐢ㄨ澶囩殑functionType绫诲瀷鎵惧埌瀵瑰簲鍥炬爣锛�
-                            inputView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.spk);
+                            inputView.btnIcon.UnSelectedImagePath = LogicMethod.CurrLogicMethod.GetIconPath(device.spk);
                             //鏄剧ず璁惧鍚嶇О
                             inputView.btnText.Text = device.name;
                             //鏀瑰彉璁惧鍚嶇О鏄剧ず鎺т欢瀹藉害
@@ -268,7 +270,7 @@
                                                     {
                                                         if (value == "true")
                                                         {
-                                                            str+= Language.StringByID(StringId.youren)+";";
+                                                            str += Language.StringByID(StringId.youren) + ";";
                                                         }
                                                         else
                                                         {
@@ -313,6 +315,65 @@
                                         }
                                     }
                                     break;
+                                case SPK.SenesorEnvironment:
+                                    {
+                                        string strtext = "";
+                                        foreach (var dic in dicList)
+                                        {
+                                            string key = dic["key"];
+                                            string value = dic["value"];
+                                            string comparator = dic["comparator"];
+                                            switch (key)
+                                            {
+
+                                                case "temperature":
+                                                    {
+                                                        if (comparator == ">")
+                                                        {
+                                                            strtext = ">" + value + "鈩�";
+                                                        }
+                                                        else if (comparator == "<")
+                                                        {
+                                                            strtext = "<" + value + "鈩�";
+                                                        }
+
+                                                    }
+                                                    break;
+                                                case "humidity":
+                                                    {
+                                                        if (comparator == ">")
+                                                        {
+                                                            strtext = ">" + value + "%";
+                                                        }
+                                                        else if (comparator == "<")
+                                                        {
+                                                            strtext = "<" + value + "%";
+                                                        }
+
+                                                    }
+                                                    break;
+                                                case "co2":
+                                                    {
+                                                        strtext = Language.StringByID(StringId.co2) + new PublicInterface { }.GetString("co2", value);
+                                                    }
+                                                    break;
+                                                case "pm25":
+                                                    {
+                                                        strtext = Language.StringByID(StringId.pm25) + new PublicInterface { }.GetString("pm25", value);
+                                                    }
+                                                    break;
+                                                case "tvoc":
+                                                    {
+                                                        strtext = Language.StringByID(StringId.tvoc) + new PublicInterface { }.GetString("tvoc", value);
+                                                    }
+                                                    break;
+                                            }
+                                            inputView.btnState.Text = strtext;
+                                        }
+
+
+                                    }
+                                    break;
 
                             }
                         }
@@ -332,7 +393,7 @@
                                 {
                                     case "outdoor_temp":
                                         {
-                                            strvalue = value;
+                                            strvalue = value + "鈩�";
                                             if (comparator == ">")
                                             {
                                                 strtext = Language.StringByID(StringId.wendugaoyu);
@@ -346,7 +407,7 @@
                                         break;
                                     case "outdoor_humity":
                                         {
-                                            strvalue = value;
+                                            strvalue = value + "%";
                                             if (comparator == ">")
                                             {
                                                 strtext = Language.StringByID(StringId.shidugaoyu);
@@ -361,7 +422,7 @@
                                     case "pm2.5":
                                         {
                                             strtext = Language.StringByID(StringId.PM25);
-                                            strvalue = new OutdoorEnvironment { }.GetString(value);
+                                            strvalue = new PublicInterface { }.GetString("pm25", value);
                                         }
                                         break;
 
@@ -407,57 +468,40 @@
                             }
                         }
                         break;
-                    case "9":
-                        {
-                            inputView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png";
-                            foreach (var dic in dicList)
-                            {
-                                string strtext = "";
-                                string value = dic["value"];
-                                switch (value)
-                                {
-                                    case "excellent":
-                                        {
-                                            strtext = Language.StringByID(StringId.kongqiyou);
-
-                                        }
-                                        break;
-                                    case "good":
-                                        {
-
-                                            strtext = Language.StringByID(StringId.kongqiliang);
-
-                                        }
-                                        break;
-                                    case "poor":
-                                        {
-                                            strtext = Language.StringByID(StringId.kongqicha);
-                                        }
-                                        break;
-
-                                }
-                                inputView.btnText.TextID = StringId.kongqizhiliang;
-                                inputView.btnState.Text = strtext;
-                            }
-                        }
-                        break;
 
                 }
                 //鍐嶆缂栬緫鏉′欢鐘舵�佺偣鍑讳簨浠�
                 inputView.btnClick.MouseUpEventHandler += (sen, e) =>
                 {
                     Button button = (Button)sen;
+                    //褰撳墠缂栬緫鐨勬潯浠�
+                    Input ckcliInput = inputView.btnClick.Tag as Input;
                     //鎵惧埌褰撳墠缂栬緫鐨勭储寮�
                     int indexVulae = 0;
                     for (int index = 0; index < Logic.currlogic.input.Count; index++)
                     {
                         Input input = Logic.currlogic.input[index];
-                        if (input.sid == inputView.btnClick.Tag.ToString())
+                        if (input.sid == ckcliInput.sid)
                         {
-                            //鐢ㄦ埛鍙兘鍒犻櫎鏁版嵁锛屼娇鍒楄〃绱㈠紩鍙戠敓鏀瑰彉锛�
-                            //閫氳繃鍞竴sid閲嶆柊鏌ユ壘鍒扮储寮曚笖鏇存柊绱㈠紩鍊�
-                            indexVulae = index;
-                            break;
+                            if (button.Name == "3")
+                            {
+                                //鏈変簺璁惧姣旇緝鐗规畩锛堜緥濡傦細娴锋灄浼犳劅鍣ㄨ繕鏄鍒ゆ柇灞炴�у�硷紝娓╂箍搴﹀睘鎬ц繕瑕佸垽鏂瘮杈冨叧绯伙紝鎵嶈兘纭鏄惁宸茬粡瀛樺湪璇ユ潯浠讹紝鍏朵粬璁惧鏉′欢鐩存帴鐢╯id鍒ゆ柇鍗冲彲锛�
+                                //鍔犱竴绾у垽鏂槸涓哄吋瀹圭壒娈婅澶�
+                                if (new ConditionDeviceFunList { }.IsContainsAll(ckcliInput.condition, input.condition))
+                                {
+                                    //鐢ㄦ埛鍙兘鍒犻櫎鏁版嵁锛屼娇鍒楄〃绱㈠紩鍙戠敓鏀瑰彉锛�
+                                    //閫氳繃鍞竴sid閲嶆柊鏌ユ壘鍒扮储寮曚笖鏇存柊绱㈠紩鍊�
+                                    indexVulae = index;
+                                    break;
+                                }
+                            }
+                            else
+                            {
+                                //鐢ㄦ埛鍙兘鍒犻櫎鏁版嵁锛屼娇鍒楄〃绱㈠紩鍙戠敓鏀瑰彉锛�
+                                //閫氳繃鍞竴sid閲嶆柊鏌ユ壘鍒扮储寮曚笖鏇存柊绱㈠紩鍊�
+                                indexVulae = index;
+                                break;
+                            }
                         }
                     }
                     //鏍囪缂栬緫鐘舵��
@@ -470,7 +514,7 @@
                                 Input _input = Logic.currlogic.input[indexVulae];
                                 if (_input.condition_type == "1")
                                 {
-                                    var dicLists = _input.condition as List<Dictionary<string, string>>;
+                                    var dicLists = _input.condition;
                                     foreach (var dic in dicLists)
                                     {
                                         string keyValue = dic["key"];
@@ -520,11 +564,78 @@
                         case "3":
                             {
                                 //鐢╯id鎵惧埌璁惧锛�
-                                var device = LogicMethod.GetDevice(inputCondition.sid);
-                                ConditionDeviceFunList deviceFunList = new ConditionDeviceFunList();
-                                MainPage.BasePageView.AddChidren(deviceFunList);
-                                deviceFunList.Show(device, indexVulae, edit);
-                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                                var device = LogicMethod.CurrLogicMethod.GetDevice(inputCondition.sid);
+                                if (device.spk == SPK.SenesorEnvironment)
+                                {
+                                    //杩欎釜璁惧姣旇緝鐗规畩
+                                    ConditionDeviceFunList conditionDeviceFunList = new ConditionDeviceFunList();
+                                    ///褰撳墠鐨勭储寮曞�兼暟鎹璞�
+                                    Input inputedit = Logic.currlogic.input[indexVulae];
+                                    ///鐘舵�佸��
+                                    string stateValue = "";
+                                    foreach (var dic in inputedit.condition)
+                                    {
+                                        string key = dic["key"];
+                                        string comparator = dic["comparator"];
+                                        stateValue = dic["value"];
+                                        switch (key)
+                                        {
+
+                                            case "temperature":
+                                                {
+                                                    int titleInt = 0;
+                                                    if (comparator == ">")
+                                                    {
+                                                        titleInt = StringId.wendugaoyu;
+                                                    }
+                                                    else if (comparator == "<")
+                                                    {
+                                                        titleInt = StringId.wendudiyu;
+                                                    }
+                                                    conditionDeviceFunList.InputBoxAction(device, titleInt, indexVulae, true, stateValue);
+                                                }
+                                                break;
+                                            case "humidity":
+                                                {
+                                                    int titleInt = 0;
+                                                    if (comparator == ">")
+                                                    {
+                                                        titleInt = StringId.shidugaoyu;
+                                                    }
+                                                    else if (comparator == "<")
+                                                    {
+                                                        titleInt = StringId.shidudiyu;
+                                                    }
+                                                    conditionDeviceFunList.InputBoxAction(device, titleInt, indexVulae, true, stateValue);
+                                                }
+                                                break;
+                                            case "co2":
+                                                {
+                                                    conditionDeviceFunList.PmCo2TvocAction(thisView, device, "co2", StringId.co2, indexVulae, true, stateValue);
+                                                }
+                                                break;
+                                            case "pm25":
+                                                {
+                                                    conditionDeviceFunList.PmCo2TvocAction(thisView, device, "pm25", StringId.pm25, indexVulae, true, stateValue);
+
+                                                }
+                                                break;
+                                            case "tvoc":
+                                                {
+                                                    conditionDeviceFunList.PmCo2TvocAction(thisView, device, "tvoc", StringId.tvoc, indexVulae, true, stateValue);
+                                                }
+                                                break;
+                                        }
+                                    }
+
+                                }
+                                else
+                                {
+                                    ConditionDeviceFunList deviceFunList = new ConditionDeviceFunList();
+                                    MainPage.BasePageView.AddChidren(deviceFunList);
+                                    deviceFunList.Show(device, indexVulae, edit);
+                                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                                }
                             }
                             break;
                         case "4":
@@ -599,15 +710,6 @@
                                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                             }
                             break;
-                        case "9":
-                            {
-
-                                AirQuality airQuality = new AirQuality();
-                                MainPage.BasePageView.AddChidren(airQuality);
-                                airQuality.Show();
-                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                            }
-                            break;
                     }
                 };
                 ///鍒犻櫎鎺т欢
@@ -638,7 +740,7 @@
                 ///璁板綍鏉′欢绱㈠紩
                 targetView.btnClick.Tag = outputTarget.sid;
                 ///鏉′欢鐘舵�佹暟缁�
-                List<Dictionary<string, string>> dicList = outputTarget.status as List<Dictionary<string, string>>;
+                List<Dictionary<string, string>> dicList = outputTarget.status;
                 //鏄剧ず鐘舵�佸��
                 string stateStr = "";
                 //鏄剧ず杈撳嚭鏉′欢鍚勭绫诲瀷鐘舵��
@@ -647,14 +749,14 @@
                     case "1":
                         {
                             //鐢╯id鎵惧埌璁惧锛�
-                            var device = LogicMethod.GetDevice(outputTarget.sid);
+                            var device = LogicMethod.CurrLogicMethod.GetDevice(outputTarget.sid);
                             //鐢ㄨ澶囩殑functionType绫诲瀷鎵惧埌瀵瑰簲鍥炬爣锛�
-                            targetView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.spk);
+                            targetView.btnIcon.UnSelectedImagePath = LogicMethod.CurrLogicMethod.GetIconPath(device.spk);
                             //鏄剧ず璁惧鍚嶇О
                             targetView.btnText.Text = device.name;
                             //鏀瑰彉璁惧鍚嶇О鏄剧ず鎺т欢瀹藉害
                             targetView.btnText.Width = Application.GetRealWidth(80);
-                          
+
                             //鍖哄埆涓嶅悓璁惧锛屾樉绀轰笉鍚岃澶囩姸鎬�
                             switch (device.spk)
                             {
@@ -699,7 +801,7 @@
                                         {
                                             stateStr = brightness + "%";
                                         }
-                                      
+
                                     }
                                     break;
                                 case SPK.CurtainSwitch:
@@ -932,7 +1034,7 @@
                     case "2":
                         {
                             //鐢╯id鎵惧埌鍦烘櫙锛�
-                            var scene = LogicMethod.GetSecne(outputTarget.sid);
+                            var scene = LogicMethod.CurrLogicMethod.GetSecne(outputTarget.sid);
                             targetView.btnIcon.UnSelectedImagePath = "LogicIcon/scene.png";
                             targetView.btnNextIcon.Visible = false;
                             //鏄剧ず鍦烘櫙鍚嶇О
@@ -957,7 +1059,7 @@
                 }
                 else
                 {
-                    targetView.btnText.Text = new InpOrOutLogicMethod { }.GetTimeText(outputTarget.delay)+ stateStr;
+                    targetView.btnText.Text = new InpOrOutLogicMethod { }.GetTimeText(outputTarget.delay) + stateStr;
                 }
                 //鍐嶆缂栬緫鏉′欢鐘舵�佺偣鍑讳簨浠�
                 targetView.btnClick.MouseUpEventHandler += (sen, e) =>
@@ -983,7 +1085,7 @@
                         case "1":
                             {
                                 //鐢╯id鎵惧埌璁惧锛�
-                                var device = LogicMethod.GetDevice(outputTarget.sid);
+                                var device = LogicMethod.CurrLogicMethod.GetDevice(outputTarget.sid);
                                 TargetDeviceFunList deviceFunList = new TargetDeviceFunList();
                                 MainPage.BasePageView.AddChidren(deviceFunList);
                                 deviceFunList.Show(device, indexVulae, edit);
@@ -1023,7 +1125,7 @@
                             targetView.btnText.Text = new InpOrOutLogicMethod { }.GetTimeText(outputTarget.delay) + stateStr;
                         }
                     });
-                 
+
                 };
                 ///鍒犻櫎鎺т欢
                 targetView.btnDel.MouseUpEventHandler += (sender, e) =>
@@ -1086,7 +1188,11 @@
                                     break;
                                 case "brightness":
                                     {
-
+                                        if (button2 == null)
+                                        {
+                                            //鎬曡皟璇曡蒋浠朵贡涓婁笢瑗垮鑷存姏寮傚父
+                                            break;
+                                        }
                                         button2.Text = value + "%";
                                     }
                                     break;
@@ -1149,11 +1255,21 @@
                                     break;
                                 case "set_temp":
                                     {
+                                        if (button2 == null)
+                                        {
+                                            //鎬曡皟璇曡蒋浠朵贡涓婁笢瑗垮鑷存姏寮傚父
+                                            break;
+                                        }
                                         button2.Text = value + "鈩�";
                                     }
                                     break;
                                 case "mode":
                                     {
+                                        if (button3 == null)
+                                        {
+                                            //鎬曡皟璇曡蒋浠朵贡涓婁笢瑗垮鑷存姏寮傚父
+                                            break;
+                                        }
                                         switch (value)
                                         {
                                             case "cool":
@@ -1184,6 +1300,11 @@
                                     break;
                                 case "fan":
                                     {
+                                        if (button4 == null)
+                                        {
+                                            //鎬曡皟璇曡蒋浠朵贡涓婁笢瑗垮鑷存姏寮傚父
+                                            break;
+                                        }
                                         switch (value)
                                         {
                                             case "high":
@@ -1246,11 +1367,21 @@
                                     break;
                                 case "set_temp":
                                     {
+                                        if (button2 == null)
+                                        {
+                                            //鎬曡皟璇曡蒋浠朵贡涓婁笢瑗垮鑷存姏寮傚父
+                                            break;
+                                        }
                                         button2.Text = value + "鈩�";
                                     }
                                     break;
                                 case "mode":
                                     {
+                                        if (button3 == null)
+                                        {
+                                            //鎬曡皟璇曡蒋浠朵贡涓婁笢瑗垮鑷存姏寮傚父
+                                            break;
+                                        }
                                         switch (value)
                                         {
                                             case "day":
@@ -1482,7 +1613,7 @@
                     case "3":
                         {
                             //鐢╯id鎵惧埌璁惧锛�
-                            var device = LogicMethod.GetDevice(inputCondition.sid);
+                            var device = LogicMethod.CurrLogicMethod.GetDevice(inputCondition.sid);
                             name = device.name + "-";
                         }
                         break;
@@ -1497,7 +1628,7 @@
                     case "1":
                         {
                             //鐢╯id鎵惧埌璁惧锛�
-                            var device = LogicMethod.GetDevice(outputTarget.sid);
+                            var device = LogicMethod.CurrLogicMethod.GetDevice(outputTarget.sid);
                             //鏄剧ず璁惧鍚嶇О
                             name += device.name;
                             string stateStr = "";
@@ -1602,7 +1733,7 @@
                     case "2":
                         {
                             //鐢╯id鎵惧埌鍦烘櫙锛�
-                            var scene = LogicMethod.GetSecne(outputTarget.sid);
+                            var scene = LogicMethod.CurrLogicMethod.GetSecne(outputTarget.sid);
                             name += scene.name;
 
                         }
@@ -1620,7 +1751,7 @@
         /// <param name="fLayout">鍦ㄥ摢涓晫闈㈡樉绀�</param>
         /// <param name="edit">锛坱rue=缂栬緫锛沠alse=鏂板缓锛�</param>
         /// <param name="index">缂栬緫鏉′欢鐨勭储寮�</param>
-        private void Delayed(FrameLayout thisFLayout, Output output,Action<int>action)
+        private void Delayed(FrameLayout thisFLayout, Output output, Action<int> action)
         {
             FrameLayout fLayout = new FrameLayout
             {
@@ -1666,12 +1797,12 @@
                 string second = timePointView.GetmStringList()[index2].Split(' ')[0];
                 int minuetIntValue = int.Parse(minuet);
                 int secondIntValue = int.Parse(second);
-                timepoint = minuetIntValue*60+secondIntValue;
+                timepoint = minuetIntValue * 60 + secondIntValue;
             };
             //纭畾鐐瑰嚮浜嬩欢
             timePointView.btnConfirm.MouseUpEventHandler += (sender, e3) =>
             {
-                if (timepoint==0)
+                if (timepoint == 0)
                 {
                     //鎻愮ず
                     return;
@@ -1709,7 +1840,11 @@
                     state = seconds.ToString() + Language.StringByID(StringId.s);
                 }
             }
+            if (!string.IsNullOrEmpty(state)) {
+                state = Language.StringByID(StringId.delayLogic) + state;
+            }
             return state;
         }
+
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
index f076168..92d5437 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
@@ -5,7 +5,6 @@
     /// <summary>
     /// 閫昏緫瀛樺偍鏁版嵁瀵硅薄
     /// </summary>
-    [Serializable]
     public class Logic
     {
 
@@ -63,7 +62,6 @@
     /// <summary>
     /// 鎵ц鍛ㄦ湡瀵硅薄
     /// </summary>
-    [Serializable]
     public class Cycle
     {
         /// <summary>
@@ -76,7 +74,6 @@
     /// <summary>
     /// 杈撳叆鏉′欢瀵硅薄
     /// </summary>
-    [Serializable]
     public class Input
     {
         /// <summary>
@@ -96,15 +93,10 @@
         /// </summary>
         public string condition_type = "";
         public List<Dictionary<string, string>> condition = new List<Dictionary<string, string>>();
-        /// <summary>
-        /// 鍦扮悊鍥存爮閰嶇疆
-        /// </summary>
-        public Fence geo_fence = new Fence();
     }
     /// <summary>
     /// 杈撳嚭鐩爣瀵硅薄
     /// </summary>
-    [Serializable]
     public class Output
     {
         /// <summary>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
index d40c649..da993e1 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -8,6 +8,22 @@
 
     public class LogicMethod
     {
+
+        private static LogicMethod logicMethod = null;
+
+        public static LogicMethod CurrLogicMethod
+        {
+            get
+            {
+                if (logicMethod == null)
+                {
+                    return new LogicMethod();
+                }
+                return logicMethod;
+            }
+
+        }
+
         /// <summary>
         /// 琛ㄧず鏄潯浠�
         /// </summary>
@@ -19,15 +35,15 @@
         /// <summary>
         /// 绉婚櫎鎵�鏈�"Logic"鐣岄潰
         /// </summary>
-        public static void RemoveAllView()
+        public void RemoveAllView()
         {
             MainPage.BasePageView.RemoveViewByTag("Logic");
         }
-       
+
         /// <summary> Converts an array of bytes into a formatted string of hex digits (ex: E4 CA B2)</summary>
         /// <param name="data"> The array of bytes to be translated into a string of hex digits. </param>
         /// <returns> Returns a well formatted string of hex digits with spacing. </returns>
-        static string byteArrayToHexString(byte[] data)
+        public string byteArrayToHexString(byte[] data)
         {
             System.Text.StringBuilder sb = new System.Text.StringBuilder();
             foreach (byte b in data)
@@ -46,7 +62,7 @@
   * @param i 涓�涓猧nt鏁板瓧
   * @return byte[]
   */
-        public static byte[] int2ByteArray(int i)
+        public byte[] int2ByteArray(int i)
         {
             byte[] result = new byte[4];
             result[0] = (byte)((i >> 24) & 0xFF);
@@ -59,7 +75,7 @@
         /// 鑾峰彇鏃堕棿鎴�
         /// </summary>
         /// <returns></returns>
-        static int getTimeStamp()
+        public int getTimeStamp()
         {
             TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
             return (int)ts.TotalSeconds;
@@ -67,7 +83,7 @@
         /// <summary>
         /// 鐢熸垚閫昏緫sid鏂规硶
         /// </summary>
-        public static string NewSid()
+        public string NewSid()
         {
             string logicId = "";
             try
@@ -111,7 +127,7 @@
         /// <param name="dic">Dictionary绫�</param>
         /// <param name="key">鍋�</param>
         /// <param name="value">鍊�</param>
-        public static void dictionary(Dictionary<string, string> dic, string key, string value)
+        public void dictionary(Dictionary<string, string> dic, string key, string value)
         {
             if (dic.ContainsKey(key)) //鍒ゆ柇鏄惁瀛樺湪閿��
             {
@@ -125,7 +141,7 @@
         /// 鑾峰彇缃戝叧鎴块棿鍒楄〃
         /// </summary>
         /// <returns></returns>
-        public static List<HDL_ON.Entity.Room> GetGatewayRoomList()
+        public List<HDL_ON.Entity.Room> GetGatewayRoomList()
         {
             return HDL_ON.Entity.SpatialInfo.CurrentSpatial.RoomList;
         }
@@ -133,7 +149,7 @@
         /// 鑾峰彇缃戝叧鎴块棿鍒楄〃
         /// </summary>
         /// <returns></returns>
-        public static List<HDL_ON.Entity.Room> GetGatewayRoomList(string name)
+        public List<HDL_ON.Entity.Room> GetGatewayRoomList(string name)
         {
             List<Entity.Room> roomList = new List<Entity.Room>();
             Entity.Room room1 = new Entity.Room();
@@ -158,7 +174,7 @@
         /// 鑾峰彇缃戝叧璁惧鍒楄〃
         /// </summary>
         /// <returns></returns>
-        public static List<HDL_ON.Entity.Function> GetGatewayDeviceList()
+        public List<HDL_ON.Entity.Function> GetGatewayDeviceList()
         {
             return Entity.FunctionList.List.GetDeviceFunctionList();
         }
@@ -166,7 +182,7 @@
         /// 鑾峰彇缃戝叧鍦烘櫙鍒楄〃
         /// </summary>
         /// <returns></returns>
-        public static List<HDL_ON.Entity.Scene> GetSceneList()
+        public List<HDL_ON.Entity.Scene> GetSceneList()
         {
             return HDL_ON.Entity.FunctionList.List.scenes;
         }
@@ -175,7 +191,7 @@
         /// </summary>
         /// <param name="room">褰撳墠鎴块棿</param>
         /// <returns></returns>
-        public static List<HDL_ON.Entity.Function> GetRoomDevice(HDL_ON.Entity.Room room)
+        public List<HDL_ON.Entity.Function> GetRoomDevice(HDL_ON.Entity.Room room)
         {
             List<HDL_ON.Entity.Function> deviceLists = new List<Entity.Function>();
             List<HDL_ON.Entity.Function> lists = GetGatewayDeviceList();
@@ -205,7 +221,7 @@
         /// </summary>
         /// <param name="sid">璁惧鍞竴鏍囪瘑</param>
         /// <returns></returns>
-        public static HDL_ON.Entity.Function GetDevice(string sid)
+        public HDL_ON.Entity.Function GetDevice(string sid)
         {
             HDL_ON.Entity.Function device = new Entity.Function() { name = "Unknown" };
             List<HDL_ON.Entity.Function> deviceLists = GetGatewayDeviceList();
@@ -226,7 +242,7 @@
         /// </summary>
         /// <param name="sid">鍦烘櫙鍞竴鏍囪瘑</param>
         /// <returns></returns>
-        public static HDL_ON.Entity.Scene GetSecne(string sid)
+        public HDL_ON.Entity.Scene GetSecne(string sid)
         {
             HDL_ON.Entity.Scene scene = new Entity.Scene() { name = "Unknown" };
             List<HDL_ON.Entity.Scene> sceneLists = GetSceneList();
@@ -246,7 +262,7 @@
         /// </summary>
         /// <param name="device">璁惧</param>
         /// <returns></returns>
-        public static string GetGetRoomName(HDL_ON.Entity.Function device)
+        public string GetGetRoomName(HDL_ON.Entity.Function device)
         {
             string roomName = "";
             List<HDL_ON.Entity.Room> roomLists = GetGatewayRoomList();
@@ -268,7 +284,7 @@
         /// </summary>
         /// <param name="functionType">璁惧绫诲瀷</param>
         /// <returns></returns>
-        public static string GetIconPath(string functionType)
+        public string GetIconPath(string functionType)
         {
             string strPath = "";
             switch (functionType)
@@ -309,6 +325,7 @@
                 case SPK.SensorDoorWindow:
                 case SPK.SensoruUtrasonic:
                 case SPK.SenesorMegahealth:
+                case SPK.SenesorEnvironment:
                     {
                         strPath = "LogicIcon/sensor.png";
                     }
@@ -322,7 +339,7 @@
         /// </summary>
         /// <param name="deviceList">璁惧鍒楄〃</param>
         /// <returns></returns>
-        public static List<string> GetDeviceTypeList(List<HDL_ON.Entity.Function> deviceList)
+        public List<string> GetDeviceTypeList(List<HDL_ON.Entity.Function> deviceList)
         {
             List<string> deviceStrTypeList = new List<string>();
             deviceStrTypeList.Clear();
@@ -367,6 +384,7 @@
             || device.spk == SPK.SensorDoorWindow
             || device.spk == SPK.SensoruUtrasonic
             || device.spk == SPK.SenesorMegahealth
+            || device.spk == SPK.SenesorEnvironment
             );
             if (sensor != null)
             {
@@ -380,7 +398,7 @@
         /// </summary>
         /// <param name="deviceType">璁惧绫诲瀷(鐏厜绫伙紝绐楀笜绫汇��)</param>
         /// <returns></returns>
-        public static List<string> GetDeviceTypeFunctionList(string deviceType)
+        public List<string> GetDeviceTypeFunctionList(string deviceType)
         {
             List<string> functionTypeList = new List<string>();
             if (deviceType == Language.StringByID(StringId.Lights))
@@ -417,6 +435,8 @@
                 functionTypeList.Add(SPK.SensorDoorWindow);
                 functionTypeList.Add(SPK.SensoruUtrasonic);
                 functionTypeList.Add(SPK.SenesorMegahealth);
+                functionTypeList.Add(SPK.SenesorEnvironment);
+
 
             }
             return functionTypeList;
@@ -426,7 +446,7 @@
         /// 鏉′欢/鐩爣鏀寔璁惧
         /// </summary>
         /// <returns></returns>
-        public static List<string> GetSupportEquipment(string if_type)
+        public List<string> GetSupportEquipment(string if_type)
         {
             List<string> deviceTypeList = new List<string>();
             switch (if_type)
@@ -453,6 +473,8 @@
                         deviceTypeList.Add(SPK.SensorDoorWindow);
                         deviceTypeList.Add(SPK.SensoruUtrasonic);
                         deviceTypeList.Add(SPK.SenesorMegahealth);
+                        deviceTypeList.Add(SPK.SenesorEnvironment);
+
                     }
                     break;
                 case target_if:
@@ -479,7 +501,7 @@
         /// <param name="functionType">婧愭暟鎹垪琛�1</param>
         /// <param name="deviceList">婧愭暟鎹垪琛�2</param>
         /// <returns></returns>
-        public static List<Entity.Function> GetShowDeviceList(List<string> functionType, List<HDL_ON.Entity.Function> deviceList)
+        public List<Entity.Function> GetShowDeviceList(List<string> functionType, List<HDL_ON.Entity.Function> deviceList)
         {
             List<HDL_ON.Entity.Function> devList = new List<Entity.Function>();
             for (int i = 0; i < deviceList.Count; i++)
@@ -501,7 +523,7 @@
         /// <param name="room">褰撳墠鎴块棿</param>
         /// <param name="str">鍒ゆ柇绗︼紙琛ㄧず=杈撳叆璁惧鍜岃緭鍑鸿澶囷級</param>
         /// <returns></returns>
-        public static List<Entity.Function> GetFunctionDeviceList(Entity.Room room, string str)
+        public List<Entity.Function> GetFunctionDeviceList(Entity.Room room, string str)
         {
             List<string> functionTypeList = GetSupportEquipment(str);
             //杩斿洖鎴块棿璁惧鍒楄〃
@@ -513,7 +535,7 @@
         /// <summary>
         /// 缃戝叧ID(鑾峰彇鍢変箰缃戝叧ID)
         /// </summary>
-        public static string GatewayId
+        public string GatewayId
         {
             get
             {
@@ -527,7 +549,7 @@
         /// <summary>
         /// 浣忓畢ID
         /// </summary>
-        public static string HomeId
+        public string HomeId
         {
             get
             {
@@ -537,12 +559,14 @@
         /// <summary>
         /// 鏄惁涓哄叾浠栦富鐢ㄦ埛鍒嗕韩杩囨潵鐨勪綇瀹�
         /// </summary>
-        public static bool IsOthreShare
+        public bool IsOthreShare
         {
             get
             {
                 return Entity.DB_ResidenceData.Instance.CurrentRegion.isOtherShare;
             }
         }
+
+
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputTextView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputTextView.cs
index 90736a0..9360e67 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputTextView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputTextView.cs
@@ -35,6 +35,7 @@
             frameLayout.Height = Application.GetRealHeight(flHeight);
             btnIf.Y= Application.GetRealHeight(btnY);
             frameLayout.AddChidren(btnIf);
+
             return frameLayout;
         }
     }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SelectTypeView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SelectTypeView.cs
index a674af7..dd2ea61 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SelectTypeView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SelectTypeView.cs
@@ -132,5 +132,7 @@
             frameLayout.AddChidren(btnClick);
             return frameLayout;
         }
+       
+
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TopView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TopView.cs
index c7d0a64..00a669b 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TopView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TopView.cs
@@ -9,7 +9,7 @@
         /// <summary>
         /// 鏈�涓婇潰鍧梀iew
         /// </summary>
-        public FrameLayout frameLayout = new FrameLayout
+        public FrameLayout frameLayout = new FrameLayout 
         {
             BackgroundColor = CSS.CSS_Color.viewTop,
             Height = Application.GetRealHeight(64),
@@ -22,7 +22,7 @@
         {
             TextSize = TextSize.text18,
             TextColor = CSS.CSS_Color.textColor,
-            Width = Application.GetRealWidth(TextSize.view375 - 60 - 60),
+            Width = Application.GetRealWidth(TextSize.view375-60-60),
             Height = Application.GetRealHeight(25),
             Y = Application.GetRealHeight(30),
             X = Application.GetRealWidth(60)
@@ -62,7 +62,7 @@
         /// <summary>
         /// 璁剧疆鍥炬爣澧炲姞鐑敭澶у皬
         /// </summary>
-        public Button clickSetBtn = new Button
+        public Button clickSetBtn = new Button 
         {
             X = Application.GetRealWidth(337 - 37),
             Width = Application.GetRealWidth(28 + 37),
@@ -82,35 +82,6 @@
             return frameLayout;
         }
         #endregion
-
-        /// <summary>
-        /// 鏄剧ず浣嶇疆
-        /// </summary>
-        public void Location()
-        {
-            //鑾峰彇瀹藉害
-            int widthValue = topNameBtn.GetTextWidth();
-            int textWidth = (Application.GetRealWidth(255) - widthValue) / 2;
-            Button locationBtn = new Button
-            {
-                Width = Application.GetRealWidth(18),
-                Height = Application.GetRealWidth(18),
-                X = Application.GetRealWidth(60 + 4) + textWidth + widthValue,
-                Y = Application.GetRealHeight(34 + 1),
-                UnSelectedImagePath = "LogicIcon/location.png",
-            };
-            frameLayout.AddChidren(locationBtn);
-
-            Button textBtn = new Button
-            {
-                Height = Application.GetRealHeight(14),
-                Y = Application.GetRealHeight(57),
-                TextSize = LogicView.TextSize.text10,
-                TextColor = CSS.CSS_Color.textCancelColor,
-                Text = "骞夸笢骞垮窞甯傜暘绂哄尯鐭虫ゼ闀�",
-            };
-            frameLayout.AddChidren(textBtn);
-        }
     }
 }
 
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
index ae546df..50c4e4f 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
@@ -261,7 +261,7 @@
             if (idStr.Code == "0" && idStr.Data != null && idStr.Data.ToString() != "")
             {
                 var date = Newtonsoft.Json.JsonConvert.SerializeObject(idStr.Data);
-                var dateList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<LogicData>>(date);
+                var dateList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Date>>(date);
                 for (int i = 0; i < dateList.Count; i++)
                 {
                     //娣诲姞閫昏緫ID
@@ -526,12 +526,12 @@
             }
         }
     }
-    class LogicData
+    class Date
     {
         /// <summary>
         /// 浜戠鍞竴id
         /// </summary>
-        public string userLogicId = ""; 
+        public string userLogicId = "";
         /// <summary>
         /// 缃戝叧id
         /// </summary>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/OnePortAutomation.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/OnePortAutomation.cs
index 4610303..37d4567 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/OnePortAutomation.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/OnePortAutomation.cs
@@ -199,7 +199,7 @@
                         ) =>
                     {
                         Logic.currlogic.name = logicName;
-                        Logic.currlogic.sid = LogicMethod.NewSid();
+                        Logic.currlogic.sid = LogicMethod.CurrLogicMethod.NewSid();
                         loading.Start();
                         new System.Threading.Thread(() =>
                         {
@@ -242,7 +242,7 @@
                                         }
 
                                         Logic.LogicList.Add(Logic.currlogic);
-                                        LogicMethod.RemoveAllView();
+                                        LogicMethod.CurrLogicMethod.RemoveAllView();
                                         MainView.MainShow();
                                     }
                                     else if (responsePackNew != null && responsePackNew.Code == "14005")
@@ -282,7 +282,7 @@
                                 loading.Hide();
                                 if (responsePackNew != null && responsePackNew.Code == "0")
                                 {
-                                    LogicMethod.RemoveAllView();
+                                    LogicMethod.CurrLogicMethod.RemoveAllView();
                                     MainView.MainShow();
                                 }
                                 else if (responsePackNew != null && responsePackNew.Code == "14005")
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/OutdoorEnvironment.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/OutdoorEnvironment.cs
index 8d7f8e3..d8930a7 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/OutdoorEnvironment.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/OutdoorEnvironment.cs
@@ -164,31 +164,11 @@
         public void PmAction(FrameLayout frame, string stateValue = "")
         {
             PublicInterface pmView = new PublicInterface();
-            var pmListStr = pmView.GetViewList("pm2.5");
-            pmView.SingleSelectionShow(frame, pmListStr, Language.StringByID(StringId.PM25), GetString(stateValue)
+            var pmListStr = pmView.GetViewList("pm25");
+            pmView.SingleSelectionShow(frame, pmListStr, Language.StringByID(StringId.PM25), pmView.GetString("pm25", stateValue)
                , (text) =>
                {
-                   string value = "";
-                   if (text == Language.StringByID(StringId.pmyou))
-                   {
-                       value = "10";
-                   }
-                   else if (text == Language.StringByID(StringId.pmliang))
-                   {
-                       value = "50";
-                   }
-                   else if (text == Language.StringByID(StringId.pmqingdu))
-                   {
-                       value = "90";
-                   }
-                   else if (text == Language.StringByID(StringId.pmzhongdu))
-                   {
-                       value = "130";
-                   }
-                   else if (text == Language.StringByID(StringId.pmzhongduwuran))
-                   {
-                       value = "170";
-                   }
+                   var value= pmView.GetValue("pm25", text);
                    AddDic("pm2.5", "=", value);
                });
         }
@@ -201,13 +181,13 @@
         private void AddDic(string keyValue, string comparator, string value)
         {
             Input input = new Input();
-            input.sid = LogicMethod.NewSid();
+            input.sid = LogicMethod.CurrLogicMethod.NewSid();
             input.condition_type = "4";
             Dictionary<string, string> dic = new Dictionary<string, string>();
-            LogicMethod.dictionary(dic, "key", keyValue);
-            LogicMethod.dictionary(dic, "comparator", comparator);
-            LogicMethod.dictionary(dic, "data_type", "float");
-            LogicMethod.dictionary(dic, "value", value);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "key", keyValue);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", comparator);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "float");
+            LogicMethod.CurrLogicMethod.dictionary(dic, "value", value);
             input.condition.Add(dic);
             AddCondition(input, keyValue, comparator);
         }
@@ -247,7 +227,7 @@
                 Logic.currlogic.input.Add(input);
             }
 
-            LogicMethod.RemoveAllView();
+            LogicMethod.CurrLogicMethod.RemoveAllView();
             AddLogic addLogic = new AddLogic();
             MainPage.BasePageView.AddChidren(addLogic);
             addLogic.Show();
@@ -277,41 +257,6 @@
             return false;
         }
 
-        /// <summary>
-        /// 鏁板�艰繑鍥炴枃鏈�
-        /// </summary>
-        /// <param name="strValue">鍊�</param>
-        /// <returns></returns>
-        public string GetString(string strValue)
-        {
-            string text = "";
-            int intValue = 0;
-            if (strValue != "")
-            {
-                intValue = int.Parse(strValue);
-            }
-            if (intValue > 0 && intValue < 35)
-            {
-                text = Language.StringByID(StringId.pmyou);
-            }
-            else if (intValue > 35 && intValue < 75)
-            {
-                text = Language.StringByID(StringId.pmliang);
-            }
-            else if (intValue > 75 && intValue < 115)
-            {
-                text = Language.StringByID(StringId.pmqingdu);
-            }
-            else if (intValue > 115 && intValue < 150)
-            {
-                text = Language.StringByID(StringId.pmzhongdu);
-            }
-            else if (intValue > 150)
-            {
-                text = Language.StringByID(StringId.pmzhongduwuran);
-            }
-
-            return text;
-        }
+     
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
index 18ec0c8..4683464 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
@@ -16,6 +16,10 @@
         /// <param name="textSize">鏄剧ず鏂囨湰瀛椾綋澶у皬</param>
         public void SingleSelectionShow(FrameLayout frame, List<string> list, string titleText, string stateText, Action<string> action, int textSize = LogicView.TextSize.text14)
         {
+            if (list == null)
+            {
+                return;
+            }
             FrameLayout frameLayout = new FrameLayout
             {
                 BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
@@ -75,7 +79,7 @@
             };
 
         }
-       
+
         /// <summary>
         /// 澶氶�夋嫨
         /// </summary>
@@ -259,7 +263,8 @@
         /// <param name="list">鏄剧ず鏁版嵁婧�</param>
         /// <param name="titleText">鏍囬</param>
         /// <param name="action">杩斿洖鍊肩储寮曞��</param>
-        public void FrameOrVv(FrameLayout frame, List<string>list, int titleText,Action<int> action) { 
+        public void FrameOrVv(FrameLayout frame, List<string> list, int titleText, Action<int> action)
+        {
 
             int line = 0;
             if (list.Count == 0 || list.Count > 5)
@@ -396,7 +401,7 @@
         /// <param name="stateList">涔嬪墠鐘舵�佹暟鎹簮</param>
         /// <param name="titleText">鏍囬</param>
         /// <param name="action">杩斿洖鍊肩储寮曞��</param>
-        public void FrameOrVvList(FrameLayout frame, List<string> list,List<string>stateList, int titleText, Action<List<string>> action)
+        public void FrameOrVvList(FrameLayout frame, List<string> list, List<string> stateList, int titleText, Action<List<string>> action)
         {
 
             int line = 0;
@@ -495,7 +500,8 @@
                 {
                     verticalRefresh.AddChidren(checkView.FLayoutView());
                 }
-                if (stateList.Contains(strName)) {
+                if (stateList.Contains(strName))
+                {
                     checkView.btnClick.IsSelected = true;
                     checkView.btnCheckIcon.IsSelected = true;
                     selecetdList.Add(strName);
@@ -539,6 +545,63 @@
 
         }
 
+        /// <summary>
+        /// 娓╂箍搴︾粍鍚堢晫闈�
+        /// </summary>
+        /// <param name="frameLayout">鐖舵帶浠�</param>
+        /// <param name="text1">鏍囬鏂囨湰1</param>
+        /// <param name="text2">鏍囬鏂囨湰2</param>
+        /// <param name="action">鍥炶皟鍑芥暟</param>
+        public void ViewZuHe(FrameLayout frameLayout, int text1, int text2, Action<int, FrameLayout> action)
+        {
+
+            FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewMiddle };
+            frameLayout.AddChidren(frame);
+            LogicView.TopView topView = new LogicView.TopView();
+            topView.topNameBtn.TextID = StringId.wendu;
+            frame.AddChidren(topView.FLayoutView());
+            topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
+            {
+                frame.RemoveFromParent();
+            };
+            FrameLayout viewLayout = new FrameLayout
+            {
+                Y = Application.GetRealHeight(64),
+                Width = Application.GetRealWidth(LogicView.TextSize.view375),
+                Height = Application.GetRealHeight(LogicView.TextSize.view667 - 64),
+                BackgroundColor = CSS.CSS_Color.viewMiddle,
+            };
+            frame.AddChidren(viewLayout);
+
+            //娓�,婀垮害楂樹簬
+            LogicView.SelectTypeView temperaturehigherView = new LogicView.SelectTypeView();
+            temperaturehigherView.btnIcon.Visible = false;
+            temperaturehigherView.btnText.X = Application.GetRealWidth(16);
+            temperaturehigherView.btnLine.X = Application.GetRealWidth(16);
+            temperaturehigherView.btnLine.Width = Application.GetRealWidth(375 - 16 - 16);
+            temperaturehigherView.btnText.TextID = text1;
+            viewLayout.AddChidren(temperaturehigherView.FLayoutView());
+            //娓�,婀垮害浣庝簬
+            LogicView.SelectTypeView temperatureunderView = new LogicView.SelectTypeView();
+            temperatureunderView.frameLayout.Y = temperaturehigherView.frameLayout.Bottom;
+            temperatureunderView.btnIcon.Visible = false;
+            temperatureunderView.btnText.X = Application.GetRealWidth(16);
+            temperatureunderView.btnLine.X = Application.GetRealWidth(16);
+            temperatureunderView.btnLine.Width = Application.GetRealWidth(375 - 16 - 16);
+            temperatureunderView.btnText.TextID = text2;
+            viewLayout.AddChidren(temperatureunderView.FLayoutView());
+
+            //娓�,婀垮害楂樹簬
+            temperaturehigherView.btnClick.MouseUpEventHandler += (sen, e) =>
+            {
+                action(text1, frame);
+            };
+            //娓�,婀垮害浣庝簬
+            temperatureunderView.btnClick.MouseUpEventHandler += (sen, e) =>
+            {
+                action(text2, frame);
+            };
+        }
 
         /// <summary>
         /// 鑾峰彇鐣岄潰鍒楄〃
@@ -613,7 +676,7 @@
                       };
                     }
                     break;
-                case "pm2.5":
+                case "pm25":
                     {
                         list = new List<string> {
              Language.StringByID(StringId.pmyou),
@@ -621,6 +684,24 @@
              Language.StringByID(StringId.pmqingdu),
              Language.StringByID(StringId.pmzhongdu),
              Language.StringByID(StringId.pmzhongduwuran),
+                      };
+                    }
+                    break;
+                case "co2":
+                    {
+                        list = new List<string> {
+             Language.StringByID(StringId.zhengchang),
+             Language.StringByID(StringId.piangao),
+             Language.StringByID(StringId.chaobiao),
+                      };
+                    }
+                    break;
+                case "tvoc":
+                    {
+                        list = new List<string> {
+             Language.StringByID(StringId.zhengchang),
+             Language.StringByID(StringId.chaobiao),
+             Language.StringByID(StringId.yanzhong),
                       };
                     }
                     break;
@@ -798,6 +879,157 @@
 
             return stateList;
         }
+        /// <summary>
+        /// 鏁板�艰繑鍥炴枃鏈�
+        /// </summary>
+        /// <param name="type">绫诲瀷</param>
+        /// <param name="strValue">鍊�</param>
+        /// <returns></returns>
+        public string GetString(string type, string strValue)
+        {
+            string text = "";
+            int intValue = 0;
+            if (strValue != "")
+            {
+                intValue = int.Parse(strValue);
+            }
+
+            switch (type)
+            {
+                case "pm25":
+                    {
+
+                        if (intValue > 0 && intValue < 35)
+                        {
+                            text = Language.StringByID(StringId.pmyou);
+                        }
+                        else if (intValue > 35 && intValue < 75)
+                        {
+                            text = Language.StringByID(StringId.pmliang);
+                        }
+                        else if (intValue > 75 && intValue < 115)
+                        {
+                            text = Language.StringByID(StringId.pmqingdu);
+                        }
+                        else if (intValue > 115 && intValue < 150)
+                        {
+                            text = Language.StringByID(StringId.pmzhongdu);
+                        }
+                        else if (intValue > 150)
+                        {
+                            text = Language.StringByID(StringId.pmzhongduwuran);
+                        }
+                    }
+                    break;
+                case "co2":
+                    {
+
+                        if (intValue > 0 && intValue < 800)
+                        {
+                            text = Language.StringByID(StringId.zhengchang);
+                        }
+                        else if (intValue > 800 && intValue < 1100)
+                        {
+                            text = Language.StringByID(StringId.piangao);
+                        }
+                        else if (intValue > 1100)
+                        {
+                            text = Language.StringByID(StringId.chaobiao);
+                        }
+                    }
+                    break;
+                case "tvoc":
+                    {
+
+                        if (intValue >=1 && intValue <= 3)
+                        {
+                            text = Language.StringByID(StringId.zhengchang);
+                        }
+                        else if (intValue >=4 && intValue<=6)
+                        {
+                            text = Language.StringByID(StringId.chaobiao);
+                        }
+                        else if (intValue >= 7 && intValue <= 9)
+                        {
+                            text = Language.StringByID(StringId.yanzhong);
+                        }
+                    }
+                    break;
+            }
+            return text;
+        }
+
+        /// <summary>
+        /// 鏈枃杩斿洖鏁板�艰繑鍥�
+        /// </summary>
+        /// <param name="type">绫诲瀷</param>
+        /// <param name="text">鏂囨湰</param>
+        /// <returns></returns>
+        public string GetValue(string type, string text)
+        {
+            string value = "";
+            switch (type)
+            {
+                case "pm25":
+                    {
+                        if (text == Language.StringByID(StringId.pmyou))
+                        {
+                            value = "10";
+                        }
+                        else if (text == Language.StringByID(StringId.pmliang))
+                        {
+                            value = "50";
+                        }
+                        else if (text == Language.StringByID(StringId.pmqingdu))
+                        {
+                            value = "90";
+                        }
+                        else if (text == Language.StringByID(StringId.pmzhongdu))
+                        {
+                            value = "130";
+                        }
+                        else if (text == Language.StringByID(StringId.pmzhongduwuran))
+                        {
+                            value = "170";
+                        }
+                    }
+                    break;
+                case "co2":
+                    {
+                        if (text == Language.StringByID(StringId.zhengchang))
+                        {
+                            value = "400";
+                        }
+                        else if (text == Language.StringByID(StringId.piangao))
+                        {
+                            value = "850";
+                        }
+                        else if (text == Language.StringByID(StringId.chaobiao))
+                        {
+                            value = "1200";
+                        }
+                    }
+                    break;
+                case "tvoc":
+                    {
+                        if (text == Language.StringByID(StringId.zhengchang))
+                        {
+                            value = "2";
+                        }
+                        else if (text == Language.StringByID(StringId.chaobiao))
+                        {
+                            value = "5";
+                        }
+                        else if (text == Language.StringByID(StringId.yanzhong))
+                        {
+                            value = "8";
+                        }
+                    }
+                    break;
+
+            }
+            return value;
+        }
 
 
     }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
index 2f32631..d95ea34 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -4,40 +4,18 @@
 using HDL_ON.DAL.Server;
 using Newtonsoft.Json.Linq;
 using System.Collections.Generic;
-using HDL_ON.Entity;
 
 namespace HDL_ON.UI.UI2.Intelligence.Automation
 {
     public  class Send
     {
-
-        /// <summary>
-        /// 璋冪敤鑾峰彇浣忓畢瀛愯处鍙峰垪琛�
-        /// </summary>
-        public static List<ResidenceMemberInfo> GetResidenceMemberAccount()
-        {
-
-            var responePack = new HttpServerRequest().GetResidenceMemberAccount();
-            if (responePack.Code == StateCode.SUCCESS)
-            {
-                return Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceMemberInfo>>(responePack.Data.ToString());
-            }
-            //澶辫触
-            else
-            {
-                //鎻愮ず
-                IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code);
-            }
-            return new List<ResidenceMemberInfo>();
-        }
-
         /// <summary>
         /// 鑾峰彇閫昏緫ID鍒楄〃
         /// </summary>
         /// <returns></returns>
         public static ResponsePackNew GetLogicIdList() 
         {
-            var jObject = new JObject { { "homeId", LogicMethod.HomeId } };
+            var jObject = new JObject { { "homeId", LogicMethod.CurrLogicMethod.HomeId } };
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_List);
             //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
             if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
@@ -154,7 +132,7 @@
                 var logicjArray = new JArray { };
                 var logicIfon = new JObject { };
                 logicIfon.Add("sid", logic.sid);
-                logicIfon.Add("gatewayId", LogicMethod.GatewayId);
+                logicIfon.Add("gatewayId", LogicMethod.CurrLogicMethod.GatewayId);
                 logicIfon.Add("name", logic.name);
                 logicIfon.Add("relation", logic.relation);
                 logicIfon.Add("enable", logic.enable);
@@ -164,7 +142,7 @@
                 logicIfon.Add("noticeConfig", noticeConfigJObject);
                 logicIfon.Add("pushConfigs", pushConfigsArray);
                 logicjArray.Add(logicIfon);
-                var jObject = new JObject { { "homeId", LogicMethod.HomeId }, { "logics", logicjArray } };
+                var jObject = new JObject { { "homeId", LogicMethod.CurrLogicMethod.HomeId }, { "logics", logicjArray } };
                 responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add,5);
                 //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
                 if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
@@ -268,7 +246,7 @@
                 var logicIfon = new JObject { };
                 logicIfon.Add("userLogicId", logic.userLogicId);
                 logicIfon.Add("sid", logic.sid);
-                logicIfon.Add("gatewayId", LogicMethod.GatewayId);
+                logicIfon.Add("gatewayId", LogicMethod.CurrLogicMethod.GatewayId);
                 logicIfon.Add("name", logic.name);
                 logicIfon.Add("relation", logic.relation);
                 logicIfon.Add("enable", logic.enable);
@@ -279,7 +257,7 @@
                 logicIfon.Add("pushConfigs", pushConfigsArray);
 
                 logicjArray.Add(logicIfon);
-                var jObject = new JObject { { "homeId", LogicMethod.HomeId }, { "logics", logicjArray } };
+                var jObject = new JObject { { "homeId", LogicMethod.CurrLogicMethod.HomeId }, { "logics", logicjArray } };
                 responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update,5);
                 //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
                 if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Set.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Set.cs
index 442dae4..7113132 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Set.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Set.cs
@@ -118,7 +118,7 @@
                                 loading.Hide();
                                 if (responsePackNew != null && responsePackNew.Code == "0")
                                 {
-                                    LogicMethod.RemoveAllView();
+                                    LogicMethod.CurrLogicMethod.RemoveAllView();
                                     Logic.LogicList.Remove(Logic.currlogic);
                                     MainView.MainShow();
                                     //鍙戦�佸垹闄ら�昏緫鍛戒护锛�
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
index 2bc0fba..ecd18e9 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
@@ -387,6 +387,8 @@
 
                     if (edit)
                     {
+                        //鏇存柊寤舵椂鏃堕棿
+                        outputDevice.delay = Logic.currlogic.output[index].delay;
                         //绉婚櫎鏃ф暟鎹�
                         Logic.currlogic.output.RemoveAt(index);
                         //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃�;
@@ -408,7 +410,7 @@
                     this.RemoveFromParent();
                     return;
                 }
-                LogicMethod.RemoveAllView();
+                LogicMethod.CurrLogicMethod.RemoveAllView();
                 AddLogic addLogic = new AddLogic();
                 MainPage.BasePageView.AddChidren(addLogic);
                 addLogic.Show();
@@ -514,7 +516,7 @@
         private void GetEditState(Entity.Function device, int index, Button button1, Button button2, Button button3, Button button4)
         {
             Output outputs = Logic.currlogic.output[index];
-            var dicList = outputs.status as List<Dictionary<string, string>>;
+            var dicList = outputs.status;
             //娓呴櫎涔嬪墠鏃ф暟鎹�
             dicSateteList.Clear();
             if (dicList.Count != 0)
@@ -533,8 +535,8 @@
         {
             //鏁版嵁灏佽
             Dictionary<string, string> dic = new Dictionary<string, string>();
-            LogicMethod.dictionary(dic, "key", KeyValue);
-            LogicMethod.dictionary(dic, "value", selectedValue);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "key", KeyValue);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "value", selectedValue);
             AddDictionaryList(KeyValue, dic);
         }
         /// <summary>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Time3.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Time3.cs
index 7d58572..9d4af53 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Time3.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Time3.cs
@@ -18,7 +18,29 @@
             topView.frameLayout.Height = Application.GetRealHeight(64 + 20);
             this.AddChidren(topView.FLayoutView());
             topView.topNameBtn.Text = titelText;
-            topView.Location();
+            //鑾峰彇瀹藉害
+            int widthValue = topView.topNameBtn.GetTextWidth();
+            int textWidth = (Application.GetRealWidth(255) - widthValue) / 2;
+            Button locationBtn = new Button
+            {
+                Width = Application.GetRealWidth(18),
+                Height = Application.GetRealWidth(18),
+                X = Application.GetRealWidth(60 + 4) + textWidth + widthValue,
+                Y = Application.GetRealHeight(34 + 1),
+                UnSelectedImagePath = "LogicIcon/location.png",
+
+            };
+            topView.frameLayout.AddChidren(locationBtn);
+
+            Button textBtn = new Button
+            {
+                Height = Application.GetRealHeight(14),
+                Y = Application.GetRealHeight(57),
+                TextSize = LogicView.TextSize.text10,
+                TextColor = CSS.CSS_Color.textCancelColor,
+                Text = "骞夸笢骞垮窞甯傜暘绂哄尯鐭虫ゼ闀�",
+            };
+            topView.frameLayout.AddChidren(textBtn);
             topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
             {
                 RemoveFromParent();
@@ -222,13 +244,13 @@
         private void AddDic(string keyValue, string value, bool edit, int index)
         {
             Input inputTime = new Input();
-            inputTime.sid = LogicMethod.NewSid();
+            inputTime.sid = LogicMethod.CurrLogicMethod.NewSid();
             inputTime.condition_type = "1";
             Dictionary<string, string> dic = new Dictionary<string, string>();
-            LogicMethod.dictionary(dic, "key", keyValue);
-            LogicMethod.dictionary(dic, "comparator", "=");
-            LogicMethod.dictionary(dic, "data_type", "string");
-            LogicMethod.dictionary(dic, "value", value);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "key", keyValue);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "=");
+            LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string");
+            LogicMethod.CurrLogicMethod.dictionary(dic, "value", value);
             inputTime.condition.Add(dic);
             AddCondition(inputTime, edit, index);
         }
@@ -250,7 +272,7 @@
                 //娣诲姞涓�涓柊鐨勬椂闂存潯浠�
                 Logic.currlogic.input.Add(input);
             }
-            LogicMethod.RemoveAllView();
+            LogicMethod.CurrLogicMethod.RemoveAllView();
             AddLogic addLogic = new AddLogic();
             MainPage.BasePageView.AddChidren(addLogic);
             addLogic.Show();
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs
index ee08deb..fb0a481 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs
@@ -129,13 +129,13 @@
             timePointView.FLayoutView(fLayout);
             timePointView.TimePoint(fLayout, editTime, (timeValue)=>{
                 Input inputTime = new Input();
-                inputTime.sid = LogicMethod.NewSid();
+                inputTime.sid = LogicMethod.CurrLogicMethod.NewSid();
                 inputTime.condition_type = "1";
                 Dictionary<string, string> dic = new Dictionary<string, string>();
-                LogicMethod.dictionary(dic, "key", "timepoint");
-                LogicMethod.dictionary(dic, "comparator", "=");
-                LogicMethod.dictionary(dic, "data_type", "string");
-                LogicMethod.dictionary(dic, "value", timeValue);
+                LogicMethod.CurrLogicMethod.dictionary(dic, "key", "timepoint");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "=");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "value", timeValue);
                 inputTime.condition.Add(dic);
                 AddCondition(inputTime, edit, index);
             });
@@ -252,13 +252,13 @@
                 }
 
                 Input inputTime = new Input();
-                inputTime.sid = LogicMethod.NewSid();
+                inputTime.sid = LogicMethod.CurrLogicMethod.NewSid();
                 inputTime.condition_type = "2";
                 Dictionary<string, string> dic = new Dictionary<string, string>();
-                LogicMethod.dictionary(dic, "key", "timesection");
-                LogicMethod.dictionary(dic, "comparator", "=");
-                LogicMethod.dictionary(dic, "data_type", "string");
-                LogicMethod.dictionary(dic, "value", btnStartTimeText.Text + "-" + btnEndTimeText.Text);
+                LogicMethod.CurrLogicMethod.dictionary(dic, "key", "timesection");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "=");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "value", btnStartTimeText.Text + "-" + btnEndTimeText.Text);
                 inputTime.condition.Add(dic);
                 AddCondition(inputTime, edit, index);
 
@@ -349,7 +349,7 @@
                 //娣诲姞涓�涓柊鐨勬椂闂存潯浠�
                 Logic.currlogic.input.Add(input);
             }
-            LogicMethod.RemoveAllView();
+            LogicMethod.CurrLogicMethod.RemoveAllView();
             AddLogic addLogic = new AddLogic();
             MainPage.BasePageView.AddChidren(addLogic);
             addLogic.Show();
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Weather.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Weather.cs
index e0d3cbc..90ab211 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Weather.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Weather.cs
@@ -72,14 +72,7 @@
                 weatherCondition.Show();
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
             };
-            //绌烘皵璐ㄩ噺
-            kongqiViewk.btnClick.MouseUpEventHandler += (sen, e) => {
-                AirQuality airQuality = new AirQuality();
-                MainPage.BasePageView.AddChidren(airQuality);
-                airQuality.Show();
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-            };
-
+          
             #endregion
         }
     }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/WeatherCondition.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/WeatherCondition.cs
index fbe50e2..f1da613 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/WeatherCondition.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/WeatherCondition.cs
@@ -16,7 +16,29 @@
             topView.frameLayout.Height = Application.GetRealHeight(64 + 20);
             this.AddChidren(topView.FLayoutView());
             topView.topNameBtn.TextID = StringId.selectionCondition;
-            topView.Location();
+            //鑾峰彇瀹藉害
+            int widthValue = topView.topNameBtn.GetTextWidth();
+            int textWidth = (Application.GetRealWidth(255) - widthValue) / 2;
+            Button locationBtn = new Button
+            {
+                Width = Application.GetRealWidth(18),
+                Height = Application.GetRealWidth(18),
+                X = Application.GetRealWidth(60 + 4) + textWidth + widthValue,
+                Y = Application.GetRealHeight(34 + 1),
+                UnSelectedImagePath = "LogicIcon/location.png",
+
+            };
+            topView.frameLayout.AddChidren(locationBtn);
+
+            Button textBtn = new Button
+            {
+                Height = Application.GetRealHeight(14),
+                Y = Application.GetRealHeight(57),
+                TextSize = LogicView.TextSize.text10,
+                TextColor = CSS.CSS_Color.textCancelColor,
+                Text = "骞夸笢骞垮窞甯傜暘绂哄尯鐭虫ゼ闀�",
+            };
+            topView.frameLayout.AddChidren(textBtn);
             topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
             {
                 RemoveFromParent();
@@ -78,13 +100,13 @@
         private void AddDic(string value)
         {
             Input input = new Input(); 
-            input.sid = LogicMethod.NewSid();
+            input.sid = LogicMethod.CurrLogicMethod.NewSid();
             input.condition_type = "6";
             Dictionary<string, string> dic = new Dictionary<string, string>();
-            LogicMethod.dictionary(dic, "key", "weather");
-            LogicMethod.dictionary(dic, "comparator", "=");
-            LogicMethod.dictionary(dic, "data_type", "string");
-            LogicMethod.dictionary(dic, "value", value);
+            LogicMethod.CurrLogicMethod.dictionary(dic, "key", "weather");
+            LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "=");
+            LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string");
+            LogicMethod.CurrLogicMethod.dictionary(dic, "value", value);
             input.condition.Add(dic);
             AddCondition(input);
         }
@@ -118,7 +140,7 @@
                 Logic.currlogic.input.Add(input);
             }
 
-            LogicMethod.RemoveAllView();
+            LogicMethod.CurrLogicMethod.RemoveAllView();
             AddLogic addLogic = new AddLogic();
             MainPage.BasePageView.AddChidren(addLogic);
             addLogic.Show();
diff --git a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
index d647195..85ad984 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -606,8 +606,7 @@
                 else
                 {
                     //璺宠浆鍒伴�昏緫鐣岄潰
-                    UI2.Intelligence.Automation.MainView logicMainView = new UI2.Intelligence.Automation.MainView();
-                    logicMainView.SkipAddLogicPage();
+                    UI2.Intelligence.Automation.MainView.SkipAddLogicPage();
                 }
             };
         }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs
index 2f0e76b..8b7f266 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs
@@ -1,7 +1,5 @@
 锘縰sing System;
 using System.Collections.Generic;
-using System.Threading;
-using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using Shared;
@@ -21,36 +19,6 @@
         private Button btnChooseZoneViewTitle;
         private VerticalScrolViewLayout functionListView;
         private Button btnComplete;
-
-        #region 鍥炬爣閫夋嫨閮ㄥ垎鍥炬爣
-        /// <summary>
-        /// 鑳屾櫙鍥鹃�夐」鍖哄煙
-        /// </summary>
-        FrameLayout pictureOptionView;
-        /// <summary>
-        /// 鑳屾櫙鍥鹃�夐」閫夋嫨鍖哄煙
-        /// </summary>
-        VerticalScrolViewLayout optionView;
-        /// <summary>
-        /// 榛樿鍥惧簱鎸夐挳
-        /// </summary>
-        Button btnDefaultGallery;
-        /// <summary>
-        /// 鎷嶇収鎸夐挳
-        /// </summary>
-        Button btnTakePicture;
-        /// <summary>
-        /// 鐩稿唽鎸夐挳
-        /// </summary>
-        Button btnAlbum;
-        /// <summary>
-        /// 鍙栨秷鎸夐挳
-        /// </summary>
-        Button btnCancel;
-        #endregion
-
-
-
         /// <summary>
         /// 鎹曟崏鐨勫尯鍩熷垪琛�
         /// </summary>
@@ -69,6 +37,7 @@
                 RemoveFromParent();
             };
         }
+
 
         public void LoadPage()
         {
@@ -105,14 +74,6 @@
 
             //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
             ImageUtlis.Current.LoadLocalOrNetworkImages(scene.ImagePath, addSceneImageView);
-
-            /// <summary>
-            /// 淇敼鍦烘櫙鑳屾櫙浜嬩欢
-            /// </summary>
-            addSceneImageView.MouseUpEventHandler = (sender, e) =>
-            {
-                LoadPictureOptionView();
-            };
 
             #region 鍦烘櫙鍚嶇Оrow
             sceneNameView = new FrameLayout()
@@ -213,6 +174,71 @@
                 BackgroundColor = CSS_Color.BackgroundColor,
             });
             #endregion
+            #region 鍦烘櫙寤舵椂row
+            /*
+            if (DB_ResidenceData.Instance.GatewayType == 1)
+            {
+                FrameLayout sceneDelayRow = new FrameLayout()
+                {
+                    Y = sceneNameView.Bottom,
+                    Height = Application.GetRealWidth(50),
+                };
+                contentView.AddChidren(sceneDelayRow);
+
+                Button btnSceneDelayRight = new Button()
+                {
+                    X = Application.GetRealWidth(339),
+                    Gravity = Gravity.CenterVertical,
+                    Width = Application.GetMinRealAverage(16),
+                    Height = Application.GetMinRealAverage(16),
+                    UnSelectedImagePath = "Public/Right.png",
+                };
+                sceneDelayRow.AddChidren(btnSceneDelayRight);
+
+                var btnSceneDelayInfo = new Button()
+                {
+                    Width = Application.GetRealWidth(327),
+                    TextAlignment = TextAlignment.CenterRight,
+                    TextColor = CSS_Color.PromptingColor1,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                    Text = scene.GetDelayText()
+                };
+                sceneDelayRow.AddChidren(btnSceneDelayInfo);
+
+                Button btnSceneDelayTitle = new Button()
+                {
+                    X = Application.GetRealWidth(16),
+                    //Width = Application.GetRealWidth(90),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    TextID = StringId.SceneDelay,
+                };
+                sceneDelayRow.AddChidren(btnSceneDelayTitle);
+
+                btnSceneDelayTitle.MouseUpEventHandler = (sender, e) =>
+                {
+                    Action<string> action = (obj) => {
+                        scene.delay = obj;
+                        btnSceneDelayInfo.Text = scene.GetDelayText();
+                    };
+                    Dictionary<string, string> items = new Dictionary<string, string>();
+                    items.Add("30", "30s");
+                    items.Add("60", "1min");
+                    items.Add("120", "2min");
+                    items.Add("300", "5min");
+                    new PublicAssmebly().SetSceneDelayDialog(items, action, scene.delay);
+                };
+
+                contentView.AddChidren(new Button()
+                {
+                    Y = sceneDelayRow.Bottom,
+                    Height = Application.GetRealHeight(8),
+                    BackgroundColor = CSS_Color.BackgroundColor,
+                });
+            }
+            */
+            #endregion
 
             #region 閫夋嫨鍖哄煙
             FrameLayout chooseZoneView = new FrameLayout()
@@ -247,6 +273,8 @@
                 BackgroundColor = CSS_Color.BackgroundColor,
             };
             contentView.AddChidren(btnLine1);
+
+
 
             #endregion
 
@@ -317,6 +345,8 @@
                 }
             };
         }
+
+
 
         /// <summary>
         /// 鍔犺浇鍔熻兘鍒楄〃
@@ -405,273 +435,6 @@
             }
         }
 
-        /// <summary>
-        /// 鍔犺浇鍥炬爣閫夋嫨閫夐」
-        /// </summary>
-        void LoadPictureOptionView()
-        {
-            var pView = new FrameLayout()
-            {
-                BackgroundColor = CSS_Color.DialogTransparentColor1,
-            };
-            bodyView.AddChidren(pView);
-
-            pictureOptionView = new FrameLayout()
-            {
-                Y = Application.GetRealHeight(445),
-                Height = Application.GetRealHeight(250),
-                AnimateSpeed = 0.3f,
-                Animate = Animate.DownToUp,
-            };
-            pView.AddChidren(pictureOptionView);
-
-            optionView = new VerticalScrolViewLayout()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(150),
-                BackgroundColor = CSS_Color.MainBackgroundColor,
-                Radius = (uint)Application.GetRealWidth(12),
-            };
-            pictureOptionView.AddChidren(optionView);
-
-            btnDefaultGallery = new Button()
-            {
-                Height = Application.GetRealHeight(50),
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.TextualColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextID = StringId.DefaultGallery,
-            };
-            optionView.AddChidren(btnDefaultGallery);
-
-            optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
-
-            btnTakePicture = new Button()
-            {
-                Height = Application.GetRealHeight(50),
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.TextualColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextID = StringId.TakePicture,
-            };
-            optionView.AddChidren(btnTakePicture);
-
-            optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
-
-            btnAlbum = new Button()
-            {
-                Height = Application.GetRealHeight(50),
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.TextualColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextID = StringId.Album,
-            };
-            optionView.AddChidren(btnAlbum);
-
-            optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
-
-            btnCancel = new Button()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Y = Application.GetRealHeight(8) + optionView.Bottom,
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(50),
-                BackgroundColor = CSS_Color.MainBackgroundColor,
-                Radius = (uint)Application.GetRealWidth(12),
-                TextID = StringId.Cancel,
-                TextColor = CSS_Color.WarningColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-            };
-            pictureOptionView.AddChidren(btnCancel);
-
-
-            LoadEvent_PictureOptionViewEventList(pView);
-        }
-
-        /// <summary>
-        /// 鍔犺浇鑳屾櫙鍥鹃�夋嫨鍖哄煙浜嬩欢鍒楄〃
-        /// </summary>
-        void LoadEvent_PictureOptionViewEventList(FrameLayout pView)
-        {
-            pictureOptionView.MouseUpEventHandler = (sender, e) =>
-            {
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-            pView.MouseUpEventHandler = (sender, e) =>
-            {
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-
-            btnCancel.MouseUpEventHandler = (sender, e) =>
-            {
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-            btnTakePicture.MouseDownEventHandler = (sender, e) => {
-                btnTakePicture.IsSelected = true;
-            };
-            btnTakePicture.MouseUpEventHandler = (sender, e) =>
-            {
-                btnTakePicture.IsSelected = false;
-
-                var imageName = Guid.NewGuid().ToString();
-                CropImage.TakePicture((imagePath) =>
-                {
-                    CropImageCallBack(imagePath);
-
-                }, imageName, 4, 3);
-
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-            btnAlbum.MouseDownEventHandler = (sender, e) => {
-                btnAlbum.IsSelected = true;
-            };
-
-            btnAlbum.MouseUpEventHandler = (sender, e) =>
-            {
-                btnAlbum.IsSelected = false;
-
-                //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
-                var imageName = Guid.NewGuid().ToString();
-                //var imageName = scene.sid;
-                CropImage.SelectPicture((imagePath) =>
-                {
-                    CropImageCallBack(imagePath);
-                }, imageName, 4, 3);
-
-
-                //if (pageTitleId == StringId.EditScene)
-                //{
-                //    scene.SaveFunctionData();
-                //}
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-
-            btnDefaultGallery.MouseUpEventHandler = (sender, e) => {
-                pictureOptionView.Parent.RemoveFromParent();
-                Action<string> action = (obj) => {
-                    scene.ImagePath = obj;
-                    addSceneImageView.ImageBytes = null;//瑙e喅鏈塈mageBytes涓嶅姞杞絀magePath
-                    addSceneImageView.ImagePath = scene.ImagePath;
-                };
-
-                var galleryPage = new GalleryPage(scene.ImagePath, action);
-                MainPage.BasePageView.AddChidren(galleryPage);
-                galleryPage.LoadPage(true);
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-            };
-
-        }
-
-        /// <summary>
-        /// 瑁佸壀瀹岀収鐗囧洖璋冿紝缁熶竴澶勭悊
-        /// </summary>
-        /// <param name="imagePath">瑁佸壀鍚庣殑鐪熷疄璺緞</param>
-        /// <param name="imageName">鑷畾涔夌殑鍥剧墖鍚嶇О</param>
-        void CropImageCallBack(string selectImagePath)
-        {
-            if (string.IsNullOrEmpty(selectImagePath) == true)
-            {
-                return;
-            }
-
-            //涓婁紶鎴愬姛鍒板洖璋�
-            Action<string> uploadSuccessAction = (imageUrl) =>
-            {
-                //2020-12-03 闇�瑕佽鏈�鏂扮殑鍥剧墖璺緞鍚屾鍒颁簯绔�
-                scene.ImagePath = imageUrl;
-            };
-            //涓婁紶鍥剧墖鍒颁簯绔�
-            UploadImage(selectImagePath, addSceneImageView, scene, uploadSuccessAction);
-        }
-
-        /// <summary>
-        /// 涓婁紶鍥剧墖鏂规硶
-        /// </summary>
-        /// <param name="selectImagePath">瑁佸壀鍚庣殑鍥剧墖璺緞</param>
-        /// <param name="imageView"></param>
-        /// <param name="uploadSuccessAction"></param>
-        void UploadImage(string selectImagePath, ImageView imageView, Scene mScene, Action<string> uploadSuccessAction)
-        {
-            try
-            {
-                //MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + selectImagePath);
-                //1.璇诲彇瑁佸壀鍚庣殑鍥剧墖锛岀劧鍚庡垹闄�
-                var imageBytes = Shared.IO.FileUtils.ReadFile(selectImagePath);
-                System.IO.File.Delete(selectImagePath);
-
-                var waitPage = new Loading();
-                bodyView.AddChidren(waitPage);
-                waitPage.Start(Language.StringByID(StringId.PleaseWait));
-                //寮�濮嬩笂浼�
-                new Thread(() =>
-                {
-                    try
-                    {
-                        var newImageName = mScene.name.Trim() + ".png";
-                        var uploadImageObj = new UploadImageObj()
-                        {
-                            prefix = "Scene" + Utlis.GetTimestamp(),
-                            fileName = newImageName,
-                            uid = mScene.sid,
-                            content = imageBytes,
-                        };
-
-                        var imageUrl = ImageUtlis.Current.UploadImage(uploadImageObj);
-                        if (!string.IsNullOrEmpty(imageUrl) && imageUrl.Contains(newImageName))
-                        {
-                            //涓婁紶鎴愬姛
-                            Application.RunOnMainThread(() =>
-                            {
-                                //Utlis.WriteLine("涓婁紶鎴愬姛锛�" + imageUrl);
-                                //1.2濡傛灉鏄嚜瀹氫箟鍥剧墖鍒犻櫎涔嬪墠鐨�
-                                if (!string.IsNullOrEmpty(imageView.ImagePath) && !imageView.ImagePath.Contains("Classification/Room/Roombg"))
-                                {
-                                    //Utlis.WriteLine("鍒犻櫎: " + imageView.ImagePath);
-                                    System.IO.File.Delete(imageView.ImagePath);
-                                }
-                                //閲嶅懡鍚嶄繚瀛�
-                                ImageUtlis.Current.WriteFileByBytes(imageUrl, imageBytes);
-                                imageView.ImagePath = null;
-                                imageView.ImageBytes = imageBytes;
-                                //涓婁紶鎴愬姛
-                                Utlis.ShowTip(Language.StringByID(StringId.UploadSuccessfully));
-                                uploadSuccessAction?.Invoke(imageUrl);
-                            });
-                        }
-                        else
-                        {
-                            //涓婁紶澶辫触
-                            Application.RunOnMainThread(() =>
-                            {
-                                //涓婁紶澶辫触
-                                Utlis.ShowTip(Language.StringByID(StringId.UploadFailed));
-                            });
-                        }
-
-                    }
-                    catch (Exception ex)
-                    {
-                    }
-                    finally
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            if (waitPage != null)
-                            {
-                                waitPage.RemoveFromParent();
-                                waitPage = null;
-                            }
-                        });
-                    }
-                })
-                { IsBackground = true }.Start();
-            }
-            catch { }
-        }
 
     }
 }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs
index dd7c026..c770e5a 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs
@@ -82,7 +82,7 @@
             quyuPatchView.frameLayout.Y = namePatchView.frameLayout.Bottom;
             this.AddChidren(quyuPatchView.FLayoutView());
             quyuPatchView.btnText1.TextID = StringId.suoshuquyu;
-            quyuPatchView.btnText2.Text = Intelligence.Automation.LogicMethod.GetGetRoomName(GetFunction(control.deviceId));
+            quyuPatchView.btnText2.Text = Intelligence.Automation.LogicMethod.CurrLogicMethod.GetGetRoomName(GetFunction(control.deviceId));
 
             //缁х画娣诲姞
             Button addBtn = new Button
@@ -137,7 +137,7 @@
                 method.ManagementPosition(GetFunction(control.deviceId), () =>
                 {
                     //鏇存柊鍖哄煙
-                    quyuPatchView.btnText2.Text = Intelligence.Automation.LogicMethod.GetGetRoomName(GetFunction(control.deviceId));
+                    quyuPatchView.btnText2.Text = Intelligence.Automation.LogicMethod.CurrLogicMethod.GetGetRoomName(GetFunction(control.deviceId));
                 });
             };
             //缁х画娣诲姞鐐瑰嚮浜嬩欢
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/EditControl.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/EditControl.cs
index 0c14256..547e878 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/EditControl.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/EditControl.cs
@@ -43,7 +43,7 @@
             //閬ユ帶鍣ㄦ墍灞炲尯鍩�:
             FrameLayout50 areaFLayout = new FrameLayout50(); 
             areaFLayout.btnText.Text = Language.StringByID(StringId.yaokongqiquyu);
-            areaFLayout.btnEditText.Text = Intelligence.Automation.LogicMethod.GetGetRoomName(control);
+            areaFLayout.btnEditText.Text = Intelligence.Automation.LogicMethod.CurrLogicMethod.GetGetRoomName(control);
             areaFLayout.frameLayout.Y = editNameFLayout.frameLayout.Bottom;
             viewLayout.AddChidren(areaFLayout.FLayoutView());
             #endregion
@@ -77,7 +77,7 @@
                 method.ManagementPosition(control, () =>
                 {
                     //鏇存柊鍖哄煙
-                    areaFLayout.btnEditText.Text = Intelligence.Automation.LogicMethod.GetGetRoomName(control);
+                    areaFLayout.btnEditText.Text = Intelligence.Automation.LogicMethod.CurrLogicMethod.GetGetRoomName(control);
                 });
             };
             #endregion
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs
index ecd6e28..b59e237 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs
@@ -323,9 +323,9 @@
                                     value = "on";
                                 }
                                 break;
-                            case StringId.zhongsu:
+                            case StringId.fengsuqiehuan:
                                 {
-                                    key = "middle";
+                                    key = "speed";
                                     value = "";
                                 }
                                 break;
@@ -532,7 +532,7 @@
                                 break;
                             case 2:
                                 {
-                                    textValue = StringId.zhongsu;
+                                    textValue = StringId.fengsuqiehuan;
                                 }
                                 break;
                             case 3:
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
index 721151e..38b713e 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
@@ -197,7 +197,7 @@
                 //閬ユ帶鍣ㄥ悕绉�
                 controlView.nameBtn.Text = control.name;
                 //閬ユ帶鍣ㄥ瓨鏀惧尯鍩�
-                controlView.areaBtn.Text = Intelligence.Automation.LogicMethod.GetGetRoomName(control);
+                controlView.areaBtn.Text = Intelligence.Automation.LogicMethod.CurrLogicMethod.GetGetRoomName(control);
                 //鏍囪閬ユ帶鍣�
                 controlView.delBtn.Tag = control;
                 //鍒犻櫎鐐瑰嚮浜嬩欢
@@ -236,7 +236,7 @@
                     {
                         //鍥炶皟鏇存柊鍚嶅瓧/鍖哄煙
                         controlView.nameBtn.Text = device.name;
-                        controlView.areaBtn.Text = Intelligence.Automation.LogicMethod.GetGetRoomName(device);
+                        controlView.areaBtn.Text = Intelligence.Automation.LogicMethod.CurrLogicMethod.GetGetRoomName(device);
 
                     });
                     MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
index ced74cc..f140aab 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
@@ -36,6 +36,12 @@
                 return Entity.DB_ResidenceData.Instance.CurrentRegion.id;
             }
         }
+
+        /// <summary>
+        /// 涔愭subAccessToken
+        /// </summary>
+        public static string LcSubAccessToken = "";
+
         /// <summary>
         /// 鏄惁涓哄叾浠栦富鐢ㄦ埛鍒嗕韩杩囨潵鐨勪綇瀹�
         /// </summary>
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs
index 5a653c0..3cc7993 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs
@@ -44,7 +44,7 @@
                 Gravity = Gravity.CenterHorizontal,
                 Y = Application.GetRealHeight(88),
                 Width = Application.GetRealWidth(134),
-                Height = Application.GetRealHeight(134),
+                Height = Application.GetRealWidth(134),
                 UnSelectedImagePath = "FunctionIcon/IrFan/FanIcon.png",
             };
             FrameWhiteCentet1.AddChidren(btnIcon);
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs
index 523142c..7b051bd 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs
@@ -47,7 +47,6 @@
         #endregion
 
         #region 鍖哄煙鍙橀噺
-        //TV tvTemp = new TV();
         Function device;
         Button btnCollection_Out;
         Button btnFunctionName_Out;
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs
index b96c396..b6557c1 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs
@@ -46,7 +46,7 @@
         #endregion
 
         #region 鍖哄煙鍙橀噺
-        Function function;
+        Function device;
         Button btnCollection_Out;
         Button btnFunctionName_Out;
         Button btnFromFloor_Out;
@@ -59,7 +59,7 @@
         public StbPage(Function func)
         {
             bodyView = this;
-            function = func;
+            device = func;
         }
 
 
@@ -89,7 +89,7 @@
                 TextColor = CSS_Color.FirstLevelTitleColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
-                Text = function.name,
+                Text = device.name,
             };
             controlView.AddChidren(btnFunctionName);
 
@@ -102,7 +102,7 @@
                 TextColor = CSS_Color.PromptingColor1,
                 TextAlignment = TextAlignment.CenterLeft,
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                Text = function.GetRoomListName()
+                Text = device.GetRoomListName()
             };
             controlView.AddChidren(btnFromFoorAndRoom);
 
@@ -114,7 +114,7 @@
                 Height = Application.GetMinRealAverage(40),
                 SelectedImagePath = "Collection/CollectionIcon.png",
                 UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
-                IsSelected = function.collect
+                IsSelected = device.collect
             };
             controlView.AddChidren(btnCollection);
             //2020-12-16 濡傛灉鏄垚鍛橀殣钘忔敹钘忓姛鑳�
@@ -322,6 +322,9 @@
                 UnSelectedImagePath = "FunctionIcon/AC/More.png",
             };
             controlView.AddChidren(btnMore);
+            btnMore.MouseUpEventHandler = (sender, e) => {
+                LoadDialog_IrMoreView();
+            };
 
             btnPower = new Button()
             {
@@ -337,8 +340,8 @@
 
             LoadEventList();
 
-            new TopViewDiv(bodyView, Language.StringByID(StringId.STB)).LoadTopView_FunctionTop(function, actionRefresh);
-            DriverLayer.Control.Ins.SendReadCommand(function);
+            new TopViewDiv(bodyView, Language.StringByID(StringId.STB)).LoadTopView_FunctionTop(device, actionRefresh);
+            Control.Ins.SendReadCommand(device);
 
         }
 
@@ -426,7 +429,7 @@
                     {
                         Dictionary<string, string> d = new Dictionary<string, string>();
                         d.Add($"number_{index}", "");
-                        Control.Ins.SendWriteCommand(function, d);
+                        Control.Ins.SendWriteCommand(device, d);
                     }
                 };
                 btn.MouseDownEventHandler = (sender, e) => {
@@ -449,9 +452,9 @@
 
             //鍥為��鍒锋柊淇℃伅浜嬩欢
             actionRefresh = () => {
-                btnFunctionName.Text = btnFunctionName_Out.Text = function.name;
-                btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = function.GetRoomListName();
-                function.UpdataFuncitonInfo();
+                btnFunctionName.Text = btnFunctionName_Out.Text = device.name;
+                btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = device.GetRoomListName();
+                device.UpdataFuncitonInfo();
             };
         }
 
@@ -461,8 +464,8 @@
         void LoadCollectionEvent()
         {
             btnCollection.MouseUpEventHandler += (sender, e) => {
-                btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected;
-                function.CollectFunction();
+                btnCollection.IsSelected = device.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected;
+                device.CollectFunction();
             };
         }
 
@@ -477,7 +480,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("av_tv", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnChlPlus.MouseUpEventHandler = (sender, e) =>
@@ -486,7 +489,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("ch+", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnChlReduce.MouseUpEventHandler = (sender, e) =>
@@ -495,7 +498,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("ch-", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnVolPlus.MouseUpEventHandler = (sender, e) =>
@@ -504,7 +507,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("volume+", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnVolReduce.MouseUpEventHandler = (sender, e) =>
@@ -513,7 +516,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("volume-", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnBack.MouseUpEventHandler = (sender, e) =>
@@ -522,7 +525,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("return", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
 
@@ -532,7 +535,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("menu", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btn123.MouseUpEventHandler = (sender, e) =>
@@ -545,7 +548,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("mute", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnPower.MouseUpEventHandler = (sender, e) =>
@@ -554,7 +557,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("on_off", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
 
@@ -581,7 +584,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("menu", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnTopMenuUp.MouseUpEventHandler = (sender, e) => {
@@ -590,7 +593,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("up", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnTopMenuLeft.MouseUpEventHandler = (sender, e) => {
@@ -599,7 +602,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("left", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnTopMenuRight.MouseUpEventHandler = (sender, e) => {
@@ -608,7 +611,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("right", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnTopMenuDown.MouseUpEventHandler = (sender, e) => {
@@ -617,7 +620,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("down", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnOk.MouseUpEventHandler = (sender, e) => {
@@ -626,12 +629,188 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("ok", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
 
 
         }
 
+
+        /// <summary>
+        /// 鍔犺浇棰濆瀵圭孩澶栨寜閽晫闈�
+        /// </summary>
+        void LoadDialog_IrMoreView()
+        {
+            Dialog dialog = new Dialog();
+
+            var div = new FrameLayout();
+            dialog.AddChidren(div);
+            div.MouseUpEventHandler = (sender, e) => {
+                dialog.Close();
+            };
+
+            var bodyView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(427),//667
+                Height = Application.GetRealHeight(240),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+            };
+            div.AddChidren(bodyView);
+
+            var contentView = new VerticalScrolViewLayout()
+            {
+                Y = Application.GetRealHeight(16),
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(296 + 200),
+            };
+            bodyView.AddChidren(contentView);
+
+
+            var row = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(60),
+                Width = Application.GetRealWidth(296),
+                Gravity = Gravity.CenterHorizontal,
+            };
+            contentView.AddChidren(row);
+
+            int index = 0;
+            List<FunctionAttributes> attrList = new List<FunctionAttributes>();
+            attrList.AddRange(device.attributes);
+            attrList.Add(new FunctionAttributes()
+            {
+                key = "+",
+            });
+
+            foreach (var attr in attrList)
+            {
+                if (attr.key == "up"
+                    || attr.key == "down"
+                    || attr.key == "right"
+                    || attr.key == "left"
+                    || attr.key == "zoom+"
+                    || attr.key == "zoom-"
+                    || attr.key == "volume+"
+                    || attr.key == "volume-"
+                    || attr.key == "back"
+                    || attr.key == "menu"
+                    || attr.key == FunctionAttributeKey.OnOff
+                    )
+                {
+                    continue;
+                }
+                if (index != 0 && index % 3 == 0)
+                {
+                    row = new FrameLayout()
+                    {
+                        Height = Application.GetRealHeight(56),
+                        Width = Application.GetRealWidth(296),
+                        Gravity = Gravity.CenterHorizontal,
+                    };
+                    contentView.AddChidren(row);
+                }
+                if (attr.key == "+")
+                {
+                    var addView = new FrameLayout()
+                    {
+                        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),
+                    };
+
+
+                    if (index % 3 == 1)
+                    {
+                        addView.Gravity = Gravity.Center;
+                    }
+                    else if (index % 3 == 2)
+                    {
+                        addView.X = Application.GetRealWidth(208);
+                    }
+                    row.AddChidren(addView);
+
+                    var btnAdd = new Button()
+                    {
+                        Gravity = Gravity.Center,
+                        UnSelectedImagePath = "Public/PlusSignIcon.png",
+                        Width = Application.GetRealWidth(32),
+                        Height = Application.GetRealWidth(32),
+                    };
+                    addView.AddChidren(btnAdd);
+
+                    btnAdd.MouseUpEventHandler = (sender, e) =>
+                    {
+                        dialog.Close();
+                        Action action = () => {
+                            LoadDialog_IrMoreView();
+                        };
+                        var addButton = new AcControlPage_AddIrButton(action);
+                        MainPage.BasePageView.AddChidren(addButton);
+                        addButton.Show(device);
+                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                    };
+
+
+                }
+                else
+                {
+
+                    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) =>
+                    {
+                        Dictionary<string, string> d = new Dictionary<string, string>();
+                        d.Add(attr.key, "");
+                        Control.Ins.SendWriteCommand(device, d);
+
+                        new System.Threading.Thread(() =>
+                        {
+                            System.Threading.Thread.Sleep(2000);
+                            Application.RunOnMainThread(() =>
+                            {
+                                btn.IsSelected = false;
+                            });
+                        })
+                        { IsBackground = true }.Start();
+                    };
+
+                }
+
+                index++;
+            }
+
+            dialog.Show();
+        }
+
     }
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs
index 6114108..f6d8549 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs
@@ -7,6 +7,7 @@
     {
        
     }
+
     [Serializable]
     public class VideoClouds
     {
@@ -52,6 +53,7 @@
         public string flCmtId = string.Empty;
 
     }
+
     [Serializable]
     public class Call
     {
@@ -88,6 +90,7 @@
         /// </summary>
         public string flBindId = string.Empty;
     }
+
     [Serializable]
     public class CallView
     {
@@ -99,6 +102,7 @@
         public List<Call> callList = new List<Call>();
 
     }
+
     [Serializable]
     public class FlVideo
     {
@@ -112,4 +116,92 @@
         public string devType = string.Empty;
         public string uuid = string.Empty;
     }
+
+    /// <summary>
+    /// 鍙瀵硅(閫氱敤)
+    /// </summary>
+    [Serializable]
+    public class Video
+    {
+        /// <summary>
+        /// 瀛愯处鍙穉ccessToken
+        /// </summary>
+        public string subAccountToken = string.Empty;
+        /// <summary>
+        /// 璁惧鍚嶇О
+        /// </summary>
+        public string deviceName = string.Empty;
+        /// <summary>
+        /// 璁惧id銆佸簭鍒楀彿銆乽uid
+        /// </summary>
+        public string deviceId = string.Empty;
+        /// <summary>
+        /// 璁惧绫诲瀷:IMOUVISIAL(涔愭)銆�
+        /// </summary>
+        public string interphoneType = string.Empty;
+        /// <summary>
+        /// 涔愭playToken,棰勮鐢婚潰鏃跺繀椤讳娇鐢ㄧ殑鍙傛暟
+        /// </summary>
+        public string playToken = string.Empty;
+        /// <summary>
+        /// 鐘舵�侊細online
+        /// </summary>
+        public string status = string.Empty;
+        /// <summary>
+        /// 璁惧绫诲瀷锛�(1瀹ゅ唴鏈�,2瀹ゅ鏈猴紝3鍥村鏈猴紝4绠$悊鏈�,5浜屾纭鏈�)
+        /// </summary>
+        public string devType = string.Empty;
+        /// <summary>
+        /// 涓版灄鍙瀵硅data
+        /// </summary>
+        public VideoFlData flRoomBindVO = new VideoFlData();
+    }
+
+    /// <summary>
+    /// 涓版灄鍙瀵硅鏁版嵁
+    /// </summary>
+    [Serializable]
+    public class VideoFlData
+    {
+        /// <summary>
+        /// 涓版灄缁戝畾id锛坒lBindId锛�(userKey)
+        /// </summary>
+        public string id = string.Empty;
+        /// <summary>
+        /// 浣忓畢id
+        /// </summary>
+        public string homeId = string.Empty;
+        /// <summary>
+        /// 铏氭嫙鎵嬫満鍙�
+        /// </summary>
+        public string phone = string.Empty;
+        /// <summary>
+        /// 铏氭嫙韬唤璇佸彿鐮�
+        /// </summary>
+        public string idCard = string.Empty;
+        /// <summary>
+        /// 绀惧尯涓婚敭Id
+        /// </summary>
+        public string communtiyId = string.Empty;
+        /// <summary>
+        /// 涓版灄妤兼爧鍙�
+        /// </summary>
+        public string flBuildingId = string.Empty;
+        /// <summary>
+        /// 涓版灄妤兼爧鍚嶇О
+        /// </summary>
+        public string flBuildingName = string.Empty;
+        /// <summary>
+        /// 涓版灄鎴块棿鍚嶇О
+        /// </summary>
+        public string flRoomId = string.Empty;
+        /// <summary>
+        /// 涓版灄瀹夊叏瀵嗛挜
+        /// </summary>
+        public string flSecretKey = string.Empty;
+        /// <summary>
+        /// 涓版灄鐨勫皬鍖篒d
+        /// </summary>
+        public string flCmtId = string.Empty;
+    }
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs
index 109cdc4..de7c61b 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs
@@ -4,6 +4,7 @@
 using Shared;
 using HDL_ON.Stan;
 using ZXing.QrCode.Internal;
+using static HDL_ON.UI.UI2.FuntionControlView.Video.VideoMethod;
 
 namespace HDL_ON.UI.UI2.FuntionControlView.Video
 {
@@ -12,10 +13,9 @@
         /// <summary>
         /// 鍔犺浇鍙瀵硅UI
         /// </summary>
-        /// <param name="listVideo">闂ㄥ彛鏈哄垪琛�</param>
         /// <param name="listCall">閫氳瘽璁板綍鍒楄〃</param>
-        /// <param name="video">褰撳墠鐨勫彲瑙嗗璁�</param>
-        public void Show(List<FlVideo> listVideo, List<CallView> listCall, VideoClouds video)
+        /// <param name="videoList">鍙瀵硅鍒楄〃</param>
+        public void Show(List<CallView> listCall, List<Video> videoList)
         {
             #region 甯冨眬鐣岄潰
             this.BackgroundColor = MusicColor.ViewColor;
@@ -35,8 +35,8 @@
             pageView.AddChidren(view1);
             var view2 = new FrameLayout();
             pageView.AddChidren(view2);
-            ViewFrameLayout1(view1, listVideo, video);
-            ViewFrameLayout2(view2, listCall, video);
+            View1(view1, videoList);
+            View2(view2, listCall, videoList);
             Button btn11 = new Button
             {
                 X = Application.GetRealWidth(170),
@@ -107,13 +107,13 @@
             };
             #endregion
         }
+
         /// <summary>
         /// 绗竴涓晫闈�
         /// </summary>
         /// <param name="view1">鐖舵帶浠�</param>
-        /// <param name="list">闂ㄥ彛鏈哄垪琛�</param>
-        /// <param name="videoClouds">褰撳墠鐨勫彲瑙嗗璁�</param>
-        void ViewFrameLayout1(FrameLayout view1, List<FlVideo> list, VideoClouds videoClouds)
+        /// <param name="video">鍙瀵硅瀵硅薄</param>
+        void View1(FrameLayout view1, List<Video> videoList)
         {
 
 
@@ -190,23 +190,25 @@
                 Width = Application.GetRealWidth(327),
             };
             bjFl.AddChidren(vv);
-            if (list.Count > 0)
+
+            bool bol = haveFlVideo(videoList);
+            if (bol)
             {
                 //闂ㄧ浜岀淮鐮佸浐瀹氭湁鐨�,铏氭嫙涓�涓嚭鏉�
-                list.Add(new FlVideo { aliasName = Language.StringByID(StringId.menjinerweima), devType = "100" });
+                videoList.Add(new Video { deviceName = Language.StringByID(StringId.menjinerweima), interphoneType = "100" });
             }
             //鏁扮粍涓暟
             //int value = 15;
             //鍏堣绠楁暟鎹墍闇�瑕佺殑寰堥珮搴︼紱
             int l = 0;
-            if (list.Count % 3 == 0)
+            if (videoList.Count % 3 == 0)
             {
-                l = list.Count / 3;
+                l = videoList.Count / 3;
             }
             else
             {
 
-                l = (list.Count / 3) + 1;
+                l = (videoList.Count / 3) + 1;
             }
             var fL = new FrameLayout
             {
@@ -216,9 +218,9 @@
             vv.AddChidren(fL);
             int line = 0;
             #endregion
-            for (int i = 1, j = 0; i <= list.Count; i++, j++)
+            for (int i = 1, j = 0; i <= videoList.Count; i++, j++)
             {
-                var video = list[i - 1];
+                var video = videoList[i - 1];
                 #region
                 var fLayout = new FrameLayout
                 {
@@ -247,7 +249,7 @@
                     TextSize = TextSize.Text10,
                     TextColor = CSS.CSS_Color.TextualColor,
                     TextAlignment = TextAlignment.Center,
-                    Text = video.aliasName,
+                    Text = video.deviceName,
                 };
                 fLayout.AddChidren(deviceNameBtn);
 
@@ -265,11 +267,11 @@
                 //闂ㄥ彛鏈虹殑鐐瑰嚮浜嬩欢
                 clickBtn.MouseUpEventHandler += (sender, e) =>
                 {
-                    var flVideo = clickBtn.Tag as FlVideo;
-                    if (flVideo.devType == "100")
+                    var video2 = clickBtn.Tag as Video;
+                    if (video2.devType == "100")
                     {
                         //闂ㄧ浜岀淮鐮佸浐瀹氭湁鐨�
-                        VideoSend.GetQRcode(this, videoClouds, (tag, paw) =>
+                        VideoSend.GetQRcode(this, video2, (tag, paw) =>
                         {
                             if (tag)
                             {
@@ -281,36 +283,44 @@
                     }
                     else
                     {
-                        if (string.IsNullOrEmpty(flVideo.uuid))
+
+                        if (string.IsNullOrEmpty(video.deviceId))
                         {
                             new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.peizhicanshuyouyichang));
                             return;
                         }
+
+                        //Unitno = Intent.GetStringExtra("unitno");
+                        //HomeID = Intent.GetStringExtra("HomeID");
+
+
                         ESVideoInfo eSVideoInfo = new ESVideoInfo
                         {
-                            ESVideoUUID = getUuid(flVideo.uuid),
-                            DeviceName = flVideo.aliasName,
-                            roomno = videoClouds.flRoomId,
-                            unitno = videoClouds.flBuildingId,
+                            ESVideoUUID = getUuid(video.deviceId),
+                            DeviceName = video.deviceName,
+                            roomno = video.flRoomBindVO.flRoomId,
+                            unitno = video.flRoomBindVO.flBuildingId,
+                            uuid= getUuid(video.deviceId),
+                            cmtID=video.flRoomBindVO.flCmtId,
+                            Lc_AccessToken = video.subAccountToken,
+                            Lc_DeviceId = video.deviceId,
+                            Lc_Psk = video.deviceName,
+                            Lc_PlayToken = video.playToken,
                         };
-                        ESOnVideo.Current.ShowESVideoMonitor(eSVideoInfo);
+                        ESOnVideo.Current.ShowESVideoMonitor(eSVideoInfo, video.interphoneType);
                     }
-
-
                 };
             }
-
-
         }
+
         /// <summary>
         /// 绗簩涓晫闈�
         /// </summary>
         /// <param name="view2">鐖舵帶浠�</param>
         /// <param name="listCall">閫氳瘽璁板綍鍒楄〃</param>
-        /// <param name="video">褰撳墠鐨勫彲瑙嗗璁�</param>
-        void ViewFrameLayout2(FrameLayout view2, List<CallView> listCall, VideoClouds video) 
+        /// <param name="videoList">鍙瀵硅鍒楄〃</param>
+        void View2(FrameLayout view2, List<CallView> listCall, List<Video> videoList)
         {
-
             var bjFl = new FrameLayout
             {
                 Y = Application.GetRealHeight(24),
@@ -349,20 +359,20 @@
                 TextAlignment = TextAlignment.CenterLeft,
                 TextID = StringId.baolu30,
             };
-            //bjFl.AddChidren(regionBtn);
+            bjFl.AddChidren(regionBtn);
 
             var vv = new VerticalRefreshLayout
             {
                 X = Application.GetRealWidth(16),
-                Y = Application.GetRealHeight(58),
-                Height = Application.GetRealHeight(458),
+                Y = Application.GetRealHeight(58 + 17),
+                Height = Application.GetRealHeight(458 - 17),
                 Width = Application.GetRealWidth(295),
             };
             bjFl.AddChidren(vv);
             vv.BeginHeaderRefreshingAction += () =>
             {
                 VideoMethod videoMethod = new VideoMethod();
-                var list = videoMethod.GetCall(video.id);
+                var list = videoMethod.GetCall();
                 RefreshView(vv, list);
                 //鍏抽棴鍒锋柊View锛�
                 vv.EndHeaderRefreshing();
@@ -370,6 +380,7 @@
             RefreshView(vv, listCall);
 
         }
+
         /// <summary>
         /// 閫氳瘽璁板綍鍒锋柊鐣岄潰
         /// </summary>
@@ -395,6 +406,7 @@
                     frameLayout60.btnTime.Text = getTime(call.callTime);
                     ///鍛煎彨鐘舵�侊紙0锛氭湭鎺ワ紱1锛氬凡鎺ワ紱2锛氭嫆鎺ワ級锛涙槸鍚﹀紑閿侊紱
                     frameLayout60.btnStateText.Text = getStateText(call.callStatus) + "," + getUnlockText(call.isUnlock);
+
                 }
 
             }
@@ -406,11 +418,11 @@
         /// </summary>
         /// <param name="flVideo"></param>
         /// <param name="iconBtn">鍥炬爣</param>
-        private void getIconAndText(FlVideo flVideo, Button iconBtn)
+        private void getIconAndText(Video Video, Button iconBtn)
         {
             //(1瀹ゅ唴鏈�,2瀹ゅ鏈猴紝3鍥村鏈猴紝4绠$悊鏈�,5浜屾纭鏈�)
             string iconstr = "";
-            switch (flVideo.devType)
+            switch (Video.devType)
             {
                 case "1":
                     {
@@ -461,10 +473,7 @@
         {
             var utcTime = Convert.ToDateTime(str);
             var dateTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, TimeZoneInfo.Local);
-            // var monday = dateTime.ToString("MM") + Language.StringByID(StringId.month) + dateTime.ToString("dd") + Language.StringByID(StringId.day);
-            var monday = dateTime.ToString("MM") + "/" + dateTime.ToString("dd");
-            var time = dateTime.ToString("HH") + ":" + dateTime.ToString("mm");
-            return monday + " " + time;
+            return dateTime.ToString("HH") + ":" + dateTime.ToString("mm");
         }
         /// <summary>
         /// 鑾峰彇鍛煎彨鐘舵�佹枃鏈�
@@ -501,14 +510,16 @@
         /// <returns></returns>
         private string getUnlockText(bool if_bool)
         {
+            string s = "";
             if (if_bool)
             {
-                return Language.StringByID(StringId.yikaisuo);
+                s = Language.StringByID(StringId.yikaisuo);
             }
             else
             {
-                return Language.StringByID(StringId.weikaisuo);
+                s = Language.StringByID(StringId.weikaisuo);
             }
+            return s;
         }
         /// <summary>
         /// 鑾峰彇uuid
@@ -528,6 +539,22 @@
             }
         }
 
+
+        //鍒ゆ柇鏄惁鏈� 涓版灄鍙瀵硅
+        private bool haveFlVideo(List<Video> videoList)
+        {
+            bool bol = false;
+
+            for (int i = 0; i < videoList.Count; i++)
+            {
+                var _video = videoList[i];
+                if (_video.interphoneType == "FLVI")
+                    return true;
+            }
+
+            return bol;
+        }
+
     }
 
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs
index c7d4797..cb881c5 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs
@@ -3,6 +3,8 @@
 using HDL_ON.UI.UI2.PersonalCenter.PirDevice;
 using System.Collections.Generic;
 using Shared;
+using HDL_ON.Entity;
+using Newtonsoft.Json;
 
 namespace HDL_ON.UI.UI2.FuntionControlView.Video
 {
@@ -13,24 +15,31 @@
         /// </summary>
         /// <param name="frameLayout">log鐖舵帶浠�</param>
         /// <param name="video">鍙瀵硅瀵硅薄</param>
-        public void MianView(FrameLayout frameLayout, VideoClouds video)
+        public void MianView(FrameLayout frameLayout)
         {
             //鍔犺浇log
             Loading loading = new Loading();
             frameLayout.AddChidren(loading);
             loading.Start();
-            List<FlVideo> listESVideoInfo = new List<FlVideo>();
             List<CallView> listCall = new List<CallView>();
             new System.Threading.Thread(() =>
             {
                 try
                 {
-                    listESVideoInfo = VideoSend.GetVideoInfoList(video);
-                    listCall = GetCall(video.id);
+                    // 杩欓噷鍐嶈幏鍙栦竴娆¤澶囧垪琛紙鏇存柊鏁版嵁锛�
+                    var videoInfo = VideoSend.GetVideoInfoList();
+                    if (videoInfo.Code == StateCode.SUCCESS)
+                    {
+                        string data_str = videoInfo.Data.ToString();
+                        FunctionList.List.videoIntercom = JsonConvert.DeserializeObject<List<UI.UI2.FuntionControlView.Video.Video>>(data_str);
+                    }
+
+                    // 鑾峰彇閫氳瘽璁板綍
+                    listCall = GetCall();
                 }
                 catch
                 {
-
+                    //
                 }
                 finally
                 {
@@ -39,13 +48,14 @@
                         loading.Hide();
                         var mainView = new VideoMainView();
                         MainPage.BasePageView.AddChidren(mainView);
-                        mainView.Show(listESVideoInfo, listCall, video);
+                        mainView.Show(listCall, FunctionList.List.videoIntercom);
                         MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                     });
                 }
             })
             { IsBackground = true }.Start();
         }
+
         /// <summary>
         /// 鑾峰彇鍙瀵硅
         /// </summary>
@@ -68,18 +78,18 @@
                  }
              }, "鑾峰彇鍙瀵硅", "fram", frame, null, tag);
         } 
+
         /// <summary>
         /// 鑾峰彇鍘嗗彶閫氳瘽璁板綍
         /// </summary>
-        /// <param name="id"></param>
-        public List<CallView> GetCall(string id)
+        public List<CallView> GetCall()
         {
             List<CallView> callViewList = new List<CallView>();
             try
             {
 
                 List<Call> listCall = new List<Call>();
-                var responsePackNew = VideoSend.GetCall(id);
+                var responsePackNew = VideoSend.GetCall();
                 if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
                 {
                     var jobject = Newtonsoft.Json.Linq.JObject.Parse(responsePackNew.Data.ToString());
@@ -132,6 +142,7 @@
             catch { }
             return callViewList;
         } 
+
         /// <summary>
         /// 鍙戦�佸懡浠ょ嚎绋�
         /// </summary>
@@ -165,11 +176,12 @@
                 {
                     if (str == "鑾峰彇鍙瀵硅")
                     {
-                        responsePackNew = VideoSend.GetVideo();
+                        // responsePackNew = VideoSend.GetVideo();
+                        responsePackNew = VideoSend.GetVideoInfoList();
                     }
                     else if (str == "鑾峰彇閫氳瘽璁板綍")
                     {
-                        responsePackNew = VideoSend.GetCall(videoObj.id);
+                        responsePackNew = VideoSend.GetCall();
                     }
 
                 }
@@ -206,6 +218,7 @@
 
 
         }
+
         /// <summary>
         /// 闅忔満瀵嗙爜6浣�
         /// </summary>
@@ -220,6 +233,7 @@
             }
             return code;
         } 
+
         /// <summary>
         /// 鑾峰彇褰撳墠鏃堕棿鎴�
         /// </summary>
@@ -234,6 +248,7 @@
             return ((long)(DateTime.Now - startTime).TotalSeconds).ToString(); // 鐩稿樊绉掓暟
             
         }
+
         /// <summary>
         /// 鑾峰彇褰撳墠鏃堕棿鎴�
         /// </summary>
@@ -246,7 +261,6 @@
             System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯
             return ((long)(DateTime.Now.AddDays(1) - startTime).TotalSeconds).ToString(); // 鐩稿樊绉掓暟
         }
-     
 
     }
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs
index 5a8a945..ae759bb 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs
@@ -22,16 +22,18 @@
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_FL_Check);
             return responsePackNew;
         }
+
         /// <summary>
         /// 鑾峰彇閫氳瘽璁板綍
         /// </summary>
         /// <returns></returns>
-        public static ResponsePackNew GetCall(string flBindId)
+        public static ResponsePackNew GetCall()
         {
-            var jObject = new JObject { { "homeId", PirSend.HomeId }, { "flBindId", flBindId }, { "pageSize", int.MaxValue } };
+            var jObject = new JObject { { "homeId", PirSend.HomeId }, { "pageSize", int.MaxValue } };
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_FL_GetCallList);
             return responsePackNew;
         }
+
         /// <summary>
         /// 鑾峰彇闂ㄥ彛鏈哄垪琛�(1瀹ゅ唴鏈�,2瀹ゅ鏈猴紝3鍥村鏈猴紝4绠$悊鏈�,5浜屾纭鏈�)
         /// </summary>
@@ -64,21 +66,36 @@
             catch { }
             return eSVideoInfosList;
         }
+
+        /// <summary>
+        /// 鑾峰彇鍙瀵硅璁惧鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static ResponsePackNew GetVideoInfoList()
+        {
+            var jobject = new JObject();
+            jobject.Add("homeId", PirSend.HomeId);//1382596006055460866
+            var requestJson = HttpUtil.GetSignRequestJson(jobject);//鏁版嵁绛惧悕
+            // 鑾峰彇鍙瀵硅璁惧鍒楄〃
+            var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_VideoDeviceList, requestJson);
+            return revertObj;
+        }
+
         /// <summary>
         /// 涓婃姤鍔ㄦ�佸紑閿佸瘑鐮�(娉ㄦ剰锛氬瘑鐮佹湁鍙兘寤舵椂1鍒嗛挓鐢熸晥)
         /// </summary>
-        public static void GetQRcode(FrameLayout frame, VideoClouds video, Action<bool, string> action)
+        public static void GetQRcode(FrameLayout frame, Video video, Action<bool, string> action)
         {
             ///鏍囪鏄惁鎴愬姛
             bool if_bool = false;
             //涓存椂瀵嗙爜
             string pwd = VideoMethod.GetCode();
-            var jobject = new JObject();
            jobject.Add("communityID", video.flCmtId);//绀惧尯ID
+            var jobject = new JObject();
            jobject.Add("communityID", video.flRoomBindVO.flCmtId);//绀惧尯ID
             jobject.Add("fromTime", VideoMethod.GetCurrentTimeStamp());//寮�濮嬫椂闂�
             jobject.Add("validTime", VideoMethod.GetTomorrowTimeStamp());//鏈夋晥鏃堕棿
-            jobject.Add("unitno", video.flBuildingId);//鍗曞厓鍙�
-            jobject.Add("roomno", video.flRoomId);//鎴块棿鍙�
-            jobject.Add("code", pwd);
            jobject.Add("userKey", video.id);
            jobject.Add("timestamp", VideoMethod.GetCurrentTimeStamp());
            jobject.Add("secretKey", video.flSecretKey);
            jobject.Add("method", "setdynamicpwd");
            jobject.Add("numTimes", "5");
+            jobject.Add("unitno", video.flRoomBindVO.flBuildingId);//鍗曞厓鍙�
+            jobject.Add("roomno", video.flRoomBindVO.flRoomId);//鎴块棿鍙�
+            jobject.Add("code", pwd);
            jobject.Add("userKey", video.flRoomBindVO.id);
            jobject.Add("timestamp", VideoMethod.GetCurrentTimeStamp());
            jobject.Add("secretKey", video.flRoomBindVO.flSecretKey);
            jobject.Add("method", "setdynamicpwd");
            jobject.Add("numTimes", "5");
             //鍔犺浇log
             Loading loading = new Loading();
             frame.AddChidren(loading);
@@ -90,29 +107,13 @@
                     var str = HttpWebRequest(NewAPI.API_POST_FL_QRcode, jobject.ToString(), "POST");
                     if (!string.IsNullOrEmpty(str))
                     {
-                        if (str.Contains("status"))
+                        var json = JObject.Parse(str);
+                        if (json != null)
                         {
-                            //var json = JObject.Parse(str);
-                            //if (json != null)
-                            //{
-                            //    var stateCode = json["status"].ToString();
-                            //    if (stateCode == "0")
-                            //    {
-                            //        if_bool = true;
-                            //    }
-                            //}
-                            if_bool = true;
-                        }
-                        else {
-                            var json = JObject.Parse(str);
-                            if (json != null)
+                            var stateCode = json["status"].ToString();
+                            if (stateCode == "0")
                             {
-                                var stateCode = json["desc"].ToString();
-                                Application.RunOnMainThread(() =>
-                                {
-                                    //閿欒鎻愮ず
-                                    new Intelligence.Automation.LogicView.TipPopView().FlashingBox(stateCode);
-                                });
+                                if_bool = true;
                             }
                         }
                     }
@@ -131,6 +132,7 @@
             })
             { IsBackground = true }.Start();
         }
+
         /// <summary>
         /// 涓嬭浇鍥剧墖
         /// </summary>
@@ -158,6 +160,7 @@
             })
             { IsBackground = true }.Start();
         }
+
         /// <summary>
         ///  璇锋眰鏈嶅姟鍣ㄧ殑鏂规硶(鏀寔璇锋眰鏂瑰紡涓篜OST/GET)
         /// </summary>
@@ -201,6 +204,7 @@
                 return null;
             }
         }
+
         /// <summary>
         ///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛� 
         /// </summary>
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout50.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout50.cs
index 53c9190..fa8d245 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout50.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout50.cs
@@ -8,10 +8,10 @@
         /// <summary>
         /// 涓绘帶浠禫iew
         /// </summary>
-        public RowLayout frameLayout = new RowLayout
+        public FrameLayout frameLayout = new FrameLayout
         {
             Height = Application.GetRealHeight(50),
-            LineColor = CSS.CSS_Color.view,
+            // BackgroundColor = CSS.CSS_Color.view,
         };
         /// <summary>
         /// 鏂囨湰鎻忚堪
@@ -36,7 +36,7 @@
         /// View鐨勬柟娉�
         /// </summary>
         /// <returns></returns>
-        public RowLayout FLayoutView()
+        public FrameLayout FLayoutView()
         {
             frameLayout.AddChidren(btnText);
             frameLayout.AddChidren(btnClick);
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout60.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout60.cs
index dd1c231..9eb9fc4 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout60.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout60.cs
@@ -8,10 +8,10 @@
         /// <summary>
         /// 涓绘帶浠禫iew
         /// </summary>
-        public RowLayout frameLayout = new RowLayout
+        public FrameLayout frameLayout = new FrameLayout
         {
             Height = Application.GetRealHeight(60),
-            LineColor = CSS.CSS_Color.view,
+            //BackgroundColor = CSS.CSS_Color.view,
         };
 
         /// <summary>
@@ -37,10 +37,10 @@
             Y = Application.GetRealHeight(10),
             Width = Application.GetRealWidth(120),
             Height = Application.GetRealHeight(20),
-            TextColor = CSS.CSS_Color.textCancelColor,
+            TextColor = CSS.CSS_Color.textColor,
             TextSize = TextSize.text14,
             TextAlignment=TextAlignment.CenterLeft,
-            //Text = "15:01",
+            Text = "15:01",
         };
         /// <summary>
         /// 鐘舵�佹枃鏈�
@@ -53,6 +53,7 @@
             TextSize = TextSize.text12,
             TextColor = CSS.CSS_Color.textCancelColor,
             TextAlignment = TextAlignment.CenterLeft,
+            Text = "宸叉帴鍚�, 宸插紑閿�",
         };
 
 
@@ -87,7 +88,7 @@
         /// View鐨勬柟娉�
         /// </summary>
         /// <returns></returns>
-        public RowLayout FLayoutView()
+        public FrameLayout FLayoutView()
         {
             frameLayout.AddChidren(btnText);
             frameLayout.AddChidren(btnTime);
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs
index cbb2043..d5a2001 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs
@@ -125,12 +125,12 @@
             //瀵嗙爜
             Button btnpaw = new Button()
             {
-                X=Application.GetRealWidth(95),
+                X=Application.GetRealWidth(100),
                 Y = Application.GetRealHeight(62),
                 Height = Application.GetRealHeight(32),
-                Width = Application.GetRealWidth(82+5),
+                Width = Application.GetRealWidth(82),
                 TextColor = MusicColor.SelectedColor,
-                TextSize =18,//24
+                TextSize =24,
                 TextAlignment = TextAlignment.Center,
                 IsBold = true,
                 Text = str1,
@@ -143,7 +143,7 @@
                 Width = Application.GetRealWidth(20),
                 Height = Application.GetRealWidth(20),
                 UnSelectedImagePath = "LoginIcon/ShowPasswordIcon.png",
-                SelectedImagePath = "LoginIcon/HidePasswordIcon.png",
+                SelectedImagePath = "LoginIcon/HidePasswordIcon.png",
             };
             whiteView.AddChidren(iconBtn);
             //浜岀淮鐮�
diff --git a/HDL_ON/UI/UI2/UserPageBLL.cs b/HDL_ON/UI/UI2/UserPageBLL.cs
index e48e51e..b7c69dd 100644
--- a/HDL_ON/UI/UI2/UserPageBLL.cs
+++ b/HDL_ON/UI/UI2/UserPageBLL.cs
@@ -1,4 +1,5 @@
 锘縰sing System;
+//using Android.Content;
 using Shared;
 
 namespace HDL_ON.UI

--
Gitblit v1.8.0