From df7dd3e3f8830eceb615c59099631fc2a744b0ee Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 27 一月 2021 17:20:42 +0800
Subject: [PATCH] Merge branch 'WJC' into NewFilePath

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/FunTypeView.cs  |    1 
 HDL-ON_Android/Assets/Language.ini                                |   16 
 .vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm                    |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs    |  310 ++++++++++
 HDL-ON_iOS/HDL-ON_iOS.csproj                                      |    1 
 HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs |  235 +++++++-
 HDL_ON/Common/ApiUtlis.cs                                         |    3 
 DLL/Shared.IOS.TBL.dll                                            |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/SearchDevice/SearchDevicePage.cs   |    2 
 HDL_ON/UI/UI2/3-Intelligence/Automation/EmptyClass.cs             |  475 ++++++++++++++++
 DLL/Shared.Droid.xml                                              |  147 ++++
 HDL_ON/HDL_ON.projitems                                           |    1 
 .vs/HDL_APP_Project/xs/project-cache/Blufi-Debug.json             |    2 
 DLL/Shared.IOS.xml                                                |  175 +++++
 HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs               |   10 
 HDL-ON_Android/HDL-ON_Android.csproj                              |    1 
 HDL-ON_iOS/Resources/Language.ini                                 |   15 
 HDL-ON_Android/Assets/Phone/LogicIcon/sensor.png                  |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs            |   90 +++
 HDL-ON_Android/Resources/Resource.designer.cs                     |    3 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SwitchView.cs   |   56 ++
 HDL_ON/UI/CSS/CSS.cs                                              |    0 
 DLL/Shared.Droid.HDLWidget.dll                                    |    0 
 .vs/HDL_APP_Project/xs/sqlite3/storage.ide                        |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/sensor.png                   |    0 
 HDL_ON/UI/MainPage.cs                                             |    9 
 DLL/Shared.Droid.dll                                              |    0 
 HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs                  |    2 
 DLL/.DS_Store                                                     |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs           |    5 
 DLL/IOS/Shared.IOS.JLCountryCode.dll                              |    0 
 HDL_ON/Entity/FunctionList.cs                                     |   27 
 HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs    |    5 
 DLL/Shared.IOS.dll                                                |    0 
 HDL_ON/Entity/Function/Function.cs                                |   28 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs                   |   36 -
 HDL_ON/Common/R.cs                                                |   17 
 .vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal                    |    0 
 38 files changed, 1,533 insertions(+), 139 deletions(-)

diff --git a/.vs/HDL_APP_Project/xs/project-cache/Blufi-Debug.json b/.vs/HDL_APP_Project/xs/project-cache/Blufi-Debug.json
index 6a84bc5..1c1238c 100644
--- a/.vs/HDL_APP_Project/xs/project-cache/Blufi-Debug.json
+++ b/.vs/HDL_APP_Project/xs/project-cache/Blufi-Debug.json
@@ -1 +1 @@
-{"Format":1,"ProjectReferences":[],"MetadataReferences":[{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/14.6.0.15/lib/mono/Xamarin.iOS/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/14.6.0.15/lib/mono/Xamarin.iOS/System.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/14.6.0.15/lib/mono/Xamarin.iOS/Facades/System.Drawing.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/14.6.0.15/lib/mono/Xamarin.iOS/Xamarin.iOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/14.6.0.15/lib/mono/Xamarin.iOS/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/14.6.0.15/lib/bgen/Xamarin.iOS.BindingAttributes.dll","Aliases":[],"Framework":null}],"Files":["/Users/kaede/Desktop/HDL_APP_Project/HdlBluWi/Properties/AssemblyInfo.cs","/Users/kaede/Desktop/HDL_APP_Project/HdlBluWi/ApiDefinition.cs","/Users/kaede/Desktop/HDL_APP_Project/HdlBluWi/Structs.cs"],"BuildActions":["Compile","ObjcBindingApiDefinition","ObjcBindingCoreSource"],"Analyzers":[],"AdditionalFiles":[],"EditorConfigFiles":[]}
\ No newline at end of file
+{"Format":1,"ProjectReferences":[],"MetadataReferences":[{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Xamarin.iOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/bgen/Xamarin.iOS.BindingAttributes.dll","Aliases":[],"Framework":null}],"Files":["/Users/hdl/Desktop/wjc/HDL_APP_Project/HdlBluWi/Properties/AssemblyInfo.cs","/Users/hdl/Desktop/wjc/HDL_APP_Project/HdlBluWi/ApiDefinition.cs","/Users/hdl/Desktop/wjc/HDL_APP_Project/HdlBluWi/Structs.cs"],"BuildActions":["Compile","ObjcBindingApiDefinition","ObjcBindingCoreSource"],"Analyzers":[]}
\ No newline at end of file
diff --git a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide
index 03e4efc..4b5a04b 100644
--- a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide
+++ b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide
Binary files differ
diff --git a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm
new file mode 100644
index 0000000..860e660
--- /dev/null
+++ b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm
Binary files differ
diff --git a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal
new file mode 100644
index 0000000..e3288b2
--- /dev/null
+++ b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal
Binary files differ
diff --git a/DLL/.DS_Store b/DLL/.DS_Store
new file mode 100644
index 0000000..8738480
--- /dev/null
+++ b/DLL/.DS_Store
Binary files differ
diff --git a/DLL/IOS/Shared.IOS.JLCountryCode.dll b/DLL/IOS/Shared.IOS.JLCountryCode.dll
index 7a7d0cd..245c88c 100644
--- a/DLL/IOS/Shared.IOS.JLCountryCode.dll
+++ b/DLL/IOS/Shared.IOS.JLCountryCode.dll
Binary files differ
diff --git a/DLL/Shared.Droid.HDLWidget.dll b/DLL/Shared.Droid.HDLWidget.dll
index e2a1608..4153dfa 100644
--- a/DLL/Shared.Droid.HDLWidget.dll
+++ b/DLL/Shared.Droid.HDLWidget.dll
Binary files differ
diff --git a/DLL/Shared.Droid.dll b/DLL/Shared.Droid.dll
index d91451f..8ac3b4a 100644
--- a/DLL/Shared.Droid.dll
+++ b/DLL/Shared.Droid.dll
Binary files differ
diff --git a/DLL/Shared.Droid.xml b/DLL/Shared.Droid.xml
index 8443fe6..3dc8941 100644
--- a/DLL/Shared.Droid.xml
+++ b/DLL/Shared.Droid.xml
@@ -1054,6 +1054,18 @@
         <member name="P:Shared.VerticalScrolViewLayout.VerticalScrollBarEnabled">
             <summary>鈥�        /// 鏄惁鏄剧ず婊氬姩鏉♀��        /// </summary>
         </member>
+        <member name="M:Shared.VerticalScrolViewLayout.ScrollToViewIndex(System.Int32)">
+            <summary>
+            婊戝姩鍒版寚瀹歏iew
+            </summary>
+            <param name="viewIndex"> 鎸囧畾view鐨勭储寮曞��</param>
+        </member>
+        <member name="M:Shared.VerticalScrolViewLayout.ScrollToY(System.Int32)">
+            <summary>
+            婊戝姩鍒版寚瀹氫綅缃� Y
+            </summary>
+            <param name="viewY"></param>
+        </member>
         <member name="T:Shared.AndroidScrolView">
             <summary>鈥�    /// 绔栫洿鏂瑰悜婊戝姩鎺т欢鈥�    /// </summary>鈥�
         </member>
@@ -1331,6 +1343,13 @@
             璁惧鎺т欢鑳屾櫙鍥�
             </summary>
             <param name="filePath"></param>
+        </member>
+        <member name="M:Shared.View.getDrawable(System.String)">
+            <summary>
+            2020-12-23 褰摜鏂颁慨鏀规柟娉�
+            </summary>
+            <param name="filePath"></param>
+            <returns></returns>
         </member>
         <member name="P:Shared.View.Padding">
             <summary>
@@ -2973,16 +2992,6 @@
             </summary>
             <value>鏄惁鍙互婊戝姩</value>
         </member>
-        <member name="P:Shared.CurtainSeekBar.CurtainPaddingLeftRight">
-            <summary>
-            杩涘害鏉′笌宸﹀彸杈规杈硅窛
-            </summary>
-        </member>
-        <member name="P:Shared.CurtainSeekBar.CurtainPaddingTop">
-            <summary>
-            椤堕儴padding
-            </summary>
-        </member>
         <member name="P:Shared.CurtainSeekBar.IsOffline">
             <summary>
             鏄惁绂荤嚎 绂荤嚎鐨勮瘽绂佹婊戝姩骞剁粯鍒惰儗鏅伄鎸″眰
@@ -4249,6 +4258,23 @@
              Option鐨勯厤缃甁sonString
             </summary>
         </member>
+        <member name="M:Shared.MyEchartsViewOn.#ctor">
+            <summary>
+            MyEchartsViewOn
+            </summary>
+        </member>
+        <member name="F:Shared.MyEchartsViewOn.IsLoadEchartsNew">
+            <summary>
+            鏄惁閲囩敤LoadEchartsNew鐨勬柟寮�
+            </summary>
+        </member>
+        <member name="M:Shared.MyEchartsViewOn.ShowWithOption(System.String)">
+            <summary>
+            鍔犺浇Option閰嶇疆鍙傛暟
+            鍒锋柊鍥捐〃
+            </summary>
+            <param name="option"></param>
+        </member>
         <member name="M:Shared.MyEchartsViewOn.ShowWithOptionJsonString(System.String)">
             <summary>
             鍔犺浇Option閰嶇疆JsonString
@@ -4259,6 +4285,11 @@
         <member name="M:Shared.MyEchartsViewOn.refreshEcharts">
             <summary>
             鍒锋柊鐣岄潰
+            </summary>
+        </member>
+        <member name="P:Shared.MyEchartsViewOn.webView">
+            <summary>
+            MyWebView
             </summary>
         </member>
         <member name="T:Shared.WebView">
@@ -4302,6 +4333,102 @@
             MyWebView
             </summary>
         </member>
+        <member name="T:Shared.CurtainSingleSeekBar">
+            <summary>
+            CurtainSingleSeekBar
+            鍚戝乏鎴栬�呭悜鍙筹紝鍗曞悜鎵撳紑鐨勫紑鍚堝笜
+            IsRightOpenStyle
+            false锛氬彸婊戝叧闂紝杩涘害Progress 100-->0
+            true锛氬彸婊戞墦寮�锛岃繘搴rogress 0-->100
+            </summary>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.mHDLOACSingleCurtainSeekBar">
+            <summary>
+             褰撳墠瑙嗗浘
+            </summary>
+            <value>The HDLOACSingleCurtainSeekBar.</value>
+        </member>
+        <member name="M:Shared.CurtainSingleSeekBar.#ctor">
+            <summary>
+            鏋勯�犲嚱鏁�
+            </summary>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.ProgressBarUnitSring">
+            <summary>
+            杩涘害鍊兼樉绀哄崟浣�
+            </summary>
+            <value>鍗曚綅瀛楃</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.MaxValue">
+            <summary>
+            杩涘害鍊兼渶澶у��
+            </summary>
+            <value>鏈�澶у��</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.MinValue">
+            <summary>
+            杩涘害鍊兼渶灏忓��
+            </summary>
+            <value>鏈�灏忓��</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.Progress">
+            <summary>
+            褰撳墠杩涘害鍊�
+            </summary>
+            <value>杩涘害鍊�</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.ProgressTextColor">
+            <summary>
+            褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧棰滆壊
+            </summary>
+            <value>鏂囧瓧棰滆壊</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.ProgressTextSize">
+            <summary>
+            褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧澶у皬
+            </summary>
+            <value>鏂囧瓧澶у皬</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.IsClickable">
+            <summary>
+            鏄惁鍙互婊戝姩
+            </summary>
+            <value>鏄惁鍙互婊戝姩</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.IsProgressTextShow">
+            <summary>
+            鏄惁鍙互婊戝姩
+            </summary>
+            <value>鏄惁鍙互婊戝姩</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.IsOffline">
+            <summary>
+            鏄惁绂荤嚎 绂荤嚎鐨勮瘽绂佹婊戝姩骞剁粯鍒惰儗鏅伄鎸″眰
+            </summary>
+            <value>鏄惁绂荤嚎</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.NowProgressX">
+            <summary>
+            褰撳墠杩涘害鍊� X鍧愭爣
+            </summary>
+            <value>X鍧愭爣</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.IsRightOpenStyle">
+            <summary>
+            鏄惁浠庡乏鍒板彸鎵撳紑鍒�100%锛岄粯璁alse
+            </summary>
+            <value>榛樿false</value>
+        </member>
+        <member name="F:Shared.CurtainSingleSeekBar.OnProgressChangedEvent">
+            <summary>
+            EventHandler
+            </summary>
+        </member>
+        <member name="F:Shared.CurtainSingleSeekBar.mOnProgressChangeListener">
+            <summary>
+            OnProgressChangeListener 缁ф壙鍝嶅簲浜嬩欢
+            </summary>
+        </member>
         <member name="T:ViewFlow.ViewSwitchListener">
             Receives call backs when a new {@link View} has been scrolled to.
         </member>
diff --git a/DLL/Shared.IOS.TBL.dll b/DLL/Shared.IOS.TBL.dll
index b66ef5a..d400378 100644
--- a/DLL/Shared.IOS.TBL.dll
+++ b/DLL/Shared.IOS.TBL.dll
Binary files differ
diff --git a/DLL/Shared.IOS.dll b/DLL/Shared.IOS.dll
index da37a64..2155c2e 100644
--- a/DLL/Shared.IOS.dll
+++ b/DLL/Shared.IOS.dll
Binary files differ
diff --git a/DLL/Shared.IOS.xml b/DLL/Shared.IOS.xml
index ff15121..7c2ae1b 100644
--- a/DLL/Shared.IOS.xml
+++ b/DLL/Shared.IOS.xml
@@ -1177,6 +1177,18 @@
         <member name="P:Shared.VerticalScrolViewLayout.VerticalScrollBarEnabled">
             <summary>鈥�        /// 鏄惁鏄剧ず鍨傜洿婊氬姩鏉♀��        /// </summary>
         </member>
+        <member name="M:Shared.VerticalScrolViewLayout.ScrollToY(System.Int32)">
+            <summary>
+            婊戝姩鍒版寚瀹氫綅缃�
+            </summary>
+            <param name="viewY"></param>
+        </member>
+        <member name="M:Shared.VerticalScrolViewLayout.ScrollToViewIndex(System.Int32)">
+            <summary>
+            婊戝姩鍒版寚瀹歏IEW
+            </summary>
+            <param name="viewIndex"></param>
+        </member>
         <member name="T:Shared.VerticalSeekBar">
             <summary>
             浣嶇疆甯冨眬
@@ -3369,16 +3381,6 @@
             </summary>
             <value>杩涘害鍊�</value>
         </member>
-        <member name="P:Shared.CurtainSeekBar.CurtainPaddingLeftRight">
-            <summary>
-            杩涘害鏉′笌宸﹀彸杈规杈硅窛
-            </summary>
-        </member>
-        <member name="P:Shared.CurtainSeekBar.CurtainPaddingTop">
-            <summary>
-            椤堕儴padding
-            </summary>
-        </member>
         <member name="P:Shared.CurtainSeekBar.IsOffline">
             <summary>
             鏄惁绂荤嚎 绂荤嚎鐨勮瘽绂佹婊戝姩骞剁粯鍒惰儗鏅伄鎸″眰
@@ -5001,7 +5003,6 @@
         <member name="T:Shared.MyEchartsViewOn">
             <summary>
             MyEchartsViewOn HDLON+
-            
             </summary>
         </member>
         <member name="F:Shared.MyEchartsViewOn.optionJsonString">
@@ -5014,15 +5015,47 @@
             WKWebView鎺т欢
             </summary>
         </member>
+        <member name="M:Shared.MyEchartsViewOn.#ctor">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="M:Shared.MyEchartsViewOn.LoadFileUrl">
+            <summary>
+            鍔犺浇鏈湴HTML
+            </summary>
+        </member>
+        <member name="F:Shared.MyEchartsViewOn.htmlPathName">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="F:Shared.MyEchartsViewOn.IsLoadEchartsNew">
+            <summary>
+            鏄惁閲囩敤LoadEchartsNew鐨勬柟寮�
+            </summary>
+        </member>
+        <member name="M:Shared.MyEchartsViewOn.ShowWithOption(System.String)">
+            <summary>
+            鍔犺浇Option閰嶇疆鍙傛暟
+            鍒锋柊鍥捐〃
+            </summary>
+            <param name="option"></param>
+        </member>
         <member name="M:Shared.MyEchartsViewOn.ShowWithOptionJsonString(System.String)">
             <summary>
             鍔犺浇Option閰嶇疆jsonString
             </summary>
             <param name="jsonString"></param>
         </member>
-        <member name="M:Shared.MyEchartsViewOn.LoadFileUrl">
+        <member name="M:Shared.MyEchartsViewOn.EvaluateJavascript">
             <summary>
-            鍔犺浇鏈湴HTML
+            EvaluateJavascript
+            </summary>
+        </member>
+        <member name="T:Shared.MyEchartsViewOn.OnWKNavigationDelegate">
+            <summary>
+            OnWKNavigationDelegate
             </summary>
         </member>
         <member name="T:Shared.WaveSeekBarOn">
@@ -5172,6 +5205,122 @@
             EventHandler
             </summary>
         </member>
+        <member name="T:Shared.CurtainSingleSeekBar">
+            <summary>
+            CurtainSingleSeekBar
+            鍚戝乏鎴栬�呭悜鍙筹紝鍗曞悜鎵撳紑鐨勫紑鍚堝笜
+            IsRightOpenStyle
+            false锛氬彸婊戝叧闂紝杩涘害Progress 100-->0
+            true锛氬彸婊戞墦寮�锛岃繘搴rogress 0-->100
+            </summary>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.mHDLOACSingleCurtainSeekBar">
+            <summary>
+             褰撳墠瑙嗗浘
+            </summary>
+            <value>The HDLOACSingleCurtainSeekBar.</value>
+        </member>
+        <member name="M:Shared.CurtainSingleSeekBar.#ctor">
+            <summary>
+            鏋勯�犲嚱鏁�
+            </summary>
+        </member>
+        <member name="M:Shared.CurtainSingleSeekBar.RefreshFrame">
+            <summary>
+            鍒锋柊甯冨眬
+            </summary>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.Width">
+            <summary>
+            鎺т欢瀹藉害
+            </summary>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.Height">
+            <summary>
+            鎺т欢鐨勯珮搴�
+            </summary>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.X">
+            <summary>
+            鎺т欢鐨刋鍧愭爣
+            </summary>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.Y">
+            <summary>
+            鎺т欢鐨刋鍧愭爣
+            </summary>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.ProgressBarUnitSring">
+            <summary>
+            杩涘害鍊兼樉绀哄崟浣�
+            </summary>
+            <value>鍗曚綅瀛楃</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.MaxValue">
+            <summary>
+            杩涘害鍊兼渶澶у��
+            </summary>
+            <value>鏈�澶у��</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.MinValue">
+            <summary>
+            杩涘害鍊兼渶灏忓��
+            </summary>
+            <value>鏈�灏忓��</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.Progress">
+            <summary>
+            褰撳墠杩涘害鍊�
+            </summary>
+            <value>杩涘害鍊�</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.IsOffline">
+            <summary>
+            鏄惁绂荤嚎 绂荤嚎鐨勮瘽绂佹婊戝姩骞剁粯鍒惰儗鏅伄鎸″眰
+            </summary>
+            <value>鏄惁绂荤嚎</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.ProgressTextColor">
+            <summary>
+            褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧棰滆壊
+            </summary>
+            <value>鏂囧瓧棰滆壊</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.ProgressTextSize">
+            <summary>
+            褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧澶у皬
+            </summary>
+            <value>鏂囧瓧澶у皬</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.IsClickable">
+            <summary>
+            鏄惁鍙互婊戝姩
+            </summary>
+            <value>鏄惁鍙互婊戝姩</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.IsProgressTextShow">
+            <summary>
+            鏄惁鏄剧ず杩涘害鏂囧瓧
+            </summary>
+            <value>鏄惁鏄剧ず杩涘害鏂囧瓧</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.NowProgressX">
+            <summary>
+            褰撳墠杩涘害鍊� X鍧愭爣
+            </summary>
+            <value>X鍧愭爣</value>
+        </member>
+        <member name="P:Shared.CurtainSingleSeekBar.IsRightOpenStyle">
+            <summary>
+            鏄惁浠庡乏鍒板彸鎵撳紑鍒�100%锛岄粯璁alse
+            </summary>
+            <value>榛樿false</value>
+        </member>
+        <member name="F:Shared.CurtainSingleSeekBar.OnProgressChangedEvent">
+            <summary>
+            EventHandler
+            </summary>
+        </member>
         <member name="F:com.hdl.on.Volume.VolumeChange">
             <summary>
             澹伴煶鍙樺寲浜嬩欢
diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index cc8616d..98a2494 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -1202,7 +1202,21 @@
 7105=杞诲害姹℃煋:75~115ug/m鲁
 7106=涓害姹℃煋:115~150ug/m鲁
 7107=閲嶅害姹℃煋:>150ug/m鲁
-
+7108=娉勬紡/鏃犳硠婕�
+7109=娉勬紡
+7110=鏃犳硠婕�
+7111=婕忔按/鏃犳紡姘�
+7112=婕忔按
+7113=鏃犳紡姘�
+7114=鏈変汉/鏃犱汉
+7115=鏈変汉
+7116=鏃犱汉
+7117=寮�鍚�/闂悎
+7118=寮�鍚�
+7119=闂悎
+7120=闃叉媶鍔熻兘
+7121=鍦ㄧ嚎
+7122=涓嶅湪绾�
 
 9000=璇蜂娇鐢ㄦ柊鐨勬墜鏈鸿处鍙风櫥褰旳PP
 9001=璇蜂娇鐢ㄦ柊鐨勯偖绠辫处鍙风櫥褰旳PP
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/sensor.png b/HDL-ON_Android/Assets/Phone/LogicIcon/sensor.png
new file mode 100755
index 0000000..21393a2
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/sensor.png
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index d53e103..6fd6c59 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -679,6 +679,7 @@
     <AndroidAsset Include="Assets\Phone\LogicIcon\location.png" />
     <AndroidAsset Include="Assets\Phone\LogicIcon\changesinoutdoor.png" />
     <AndroidAsset Include="Assets\Phone\PersonalCenter\UserTypebg2.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\sensor.png" />
   </ItemGroup>
   <ItemGroup>
     <AndroidNativeLibrary Include="libs\armeabi-v7a\libelianjni.so" />
diff --git a/HDL-ON_Android/Resources/Resource.designer.cs b/HDL-ON_Android/Resources/Resource.designer.cs
index 52baaa6..506131b 100644
--- a/HDL-ON_Android/Resources/Resource.designer.cs
+++ b/HDL-ON_Android/Resources/Resource.designer.cs
@@ -2,6 +2,7 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
 //     the code is regenerated.
@@ -14,7 +15,7 @@
 {
 	
 	
-	[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
+	[System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
 	public partial class Resource
 	{
 		
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index 6e4b340..b811ebc 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -659,6 +659,7 @@
       <BundleResource Include="Resources\Phone\LogicIcon\location.png" />
       <BundleResource Include="Resources\Phone\LoginIcon\changesinoutdoor.png" />
       <BundleResource Include="Resources\Phone\PersonalCenter\UserTypebg2.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\sensor.png" />
     </ItemGroup>
     <ItemGroup>
       <ITunesArtwork Include="iTunesArtwork" />
diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini
index 9d4699e..00d1fa1 100644
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -1209,6 +1209,21 @@
 7105=杞诲害姹℃煋:75~115ug/m鲁
 7106=涓害姹℃煋:115~150ug/m鲁
 7107=閲嶅害姹℃煋:>150ug/m鲁
+7108=娉勬紡/鏃犳硠婕�
+7109=娉勬紡
+7110=鏃犳硠婕�
+7111=婕忔按/鏃犳紡姘�
+7112=婕忔按
+7113=鏃犳紡姘�
+7114=鏈変汉/鏃犱汉
+7115=鏈変汉
+7116=鏃犱汉
+7117=寮�鍚�/闂悎
+7118=寮�鍚�
+7119=闂悎
+7120=闃叉媶鍔熻兘
+7121=鍦ㄧ嚎
+7122=涓嶅湪绾�
 
 
 9000=璇蜂娇鐢ㄦ柊鐨勬墜鏈鸿处鍙风櫥褰旳PP
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/sensor.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/sensor.png
new file mode 100755
index 0000000..21393a2
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/sensor.png
Binary files differ
diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs
index a54fab4..832bfa5 100644
--- a/HDL_ON/Common/ApiUtlis.cs
+++ b/HDL_ON/Common/ApiUtlis.cs
@@ -161,6 +161,7 @@
                         }
                         if (FunctionList.List.GetDeviceFunctionList().Count > 0)
                         {
+
                             for (int i = 0; i < FunctionList.List.GetDeviceFunctionList().Count;)
                             {
                                 var localFunction = FunctionList.List.GetDeviceFunctionList()[i];
@@ -191,6 +192,8 @@
                                     deviceList.list.Remove(newFunction);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘
                                 }
                             }
+
+
                         }
                         //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳�
                         foreach (var newFunction in deviceList.list)
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index c63bf59..280ae05 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -566,8 +566,21 @@
         public const int pmqingdu= 7105;
         public const int pmzhongdu = 7106;
         public const int pmzhongduwuran= 7107;
-
-
+        public const int xieluoandwuxieluo=7108;
+        public const int xieluo = 7109;
+        public const int wuxieluo = 7110;
+        public const int luoshuiandwuluoshui = 7111;
+        public const int luoshui = 7112;
+        public const int wuluoshui = 7113;
+        public const int yourenandwuren = 7114;
+        public const int youren = 7115;
+        public const int wuren = 7116;
+        public const int kaiqiandbihe = 7117;
+        public const int kaiqi = 7118;
+        public const int bihe = 7119;
+        public const int fangchaigongneng = 7120;
+        public const int zaixian = 7121;
+        public const int buzaixian = 7122;
 
         #region LE鏂板
         /// <summary>
diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index ee358af..bf517fe 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -837,10 +837,36 @@
         /// 婀垮害浼犳劅鍣�
         /// </summary>
         public const string SensorHumidity = "sensor.humidity";
+
+        /// <summary>
+        /// 鐑熼浘浼犳劅鍣�
+        /// </summary>
+        public const string SensorSmoke = "sensor.smoke";
+        /// <summary>
+        /// 姘存蹈浼犳劅鍣�
+        /// </summary>
+        public const string SensorWater = "sensor.water";
+        /// <summary>
+        /// 鐕冩皵浼犳劅鍣�
+        /// </summary>
+        public const string SensorGas= "sensor.gas";
+        /// <summary>
+        /// 绾㈠鐝婃爮浼犳劅鍣�      
+        /// </summary>
+        public const string SensorShanLan = "sensor.shanlan";
+        /// <summary>
+        /// 绾㈠瀵瑰皠浼犳劅鍣�
+        /// </summary>
+        public const string SensorDuiShe = "sensor.duishe";
+        /// <summary>
+        /// 瓒呭0娉紶鎰熷櫒
+        /// </summary>
+        public const string SensoruUtrasonic = "sensor.ultrasonic";
+
         /// <summary>
         /// 锛堝共鎺ョ偣锛�
         /// </summary>
-        public const string DryContact = "dryContact.standard";
+        public const string SensorDryContact = "sensor.dryContact";
         /// <summary>
         /// 瀹剁數銆佹彃搴�
         /// </summary>
diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index 71a7204..5898500 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -91,6 +91,10 @@
         /// 鐜浼犳劅鍣ㄥ垪琛�
         /// </summary>
         public List<Sensor> sensorsEnvironmentalScience = new List<Sensor>();
+        /// <summary>
+        /// 瀹夐槻璁惧鍒楄〃
+        /// </summary>
+        public List<Sensor> sensorsArm = new List<Sensor>();
 
         public List<Scene> scenes = new List<Scene>();
         /// <summary>
@@ -182,9 +186,16 @@
                             deviceFunctionList.Add(tv);
                             break;
                         case SPK.ElectricFan:
-                            var  fan = Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(functionDataString);
+                            var fan = Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(functionDataString);
                             List.fans.Add(fan);
                             deviceFunctionList.Add(fan);
+                            break;
+                        case SPK.SensorSmoke:
+                        case SPK.SensorWater:
+                        case SPK.SensorGas:
+                            var ser = Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(functionDataString);
+                            List.sensorsArm.Add(ser);
+                            deviceFunctionList.Add(ser);
                             break;
                     }
                 }
@@ -212,6 +223,7 @@
                 deviceFunctionList.AddRange(floorHeatings);
                 deviceFunctionList.AddRange(electricals);
                 deviceFunctionList.AddRange(sensorsEnvironmentalScience);
+                deviceFunctionList.AddRange(sensorsArm);
                 deviceFunctionList.AddRange(UI.Music.A31MusicModel.A31MusicModelList);
             }
             try
@@ -350,7 +362,7 @@
                     }
                     break;
                 case FunctionCategory.Sensor:
-                    switch(f.spk)
+                    switch (f.spk)
                     {
                         case SPK.SensorTVOC:
                         case SPK.SensorCO2:
@@ -359,6 +371,17 @@
                         case SPK.SensorTemperature:
                             List.sensorsEnvironmentalScience.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(obj.ToString()));
                             break;
+                        case SPK.SensorWater:
+                        case SPK.SensorSmoke:
+                        case SPK.SensorGas:
+                        case SPK.SensorDryContact:
+                        case SPK.SensorShanLan:
+                        case SPK.SensorDuiShe:
+                        case SPK.SensorPir:
+                        case SPK.SensorDoorWindow:
+                        case SPK.SensoruUtrasonic:
+                            List.sensorsArm.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(obj.ToString()));
+                            break;
                     }
                     break;
             }
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index 532d7b7..fa71df5 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -275,6 +275,7 @@
     <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\AddFunction\ThirdPartyBrandListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\EmptyClass.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="$(MSBuildThisFileDirectory)UI\" />
diff --git a/HDL_ON/UI/CSS/CSS.cs b/HDL_ON/UI/CSS/CSS.cs
old mode 100755
new mode 100644
diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs
index f1271bf..b4f8668 100644
--- a/HDL_ON/UI/MainPage.cs
+++ b/HDL_ON/UI/MainPage.cs
@@ -171,7 +171,6 @@
                 addResidencePage.LoadView();
                 return;
             }
-
             new System.Threading.Thread(() =>
             {
                 try
@@ -209,11 +208,14 @@
                         };
                         BaseView.AddChidren(BasePageView);
 
+                      
                         //璺宠浆椤甸潰----
                         var UserBasePage = new UserPage();
                         BasePageView.AddChidren(UserBasePage);
                         UserBasePage.LoadPage();
                         BasePageView.PageIndex = 0;
+
+                   
 
                         if (isFirstOpen)
                         {
@@ -232,11 +234,16 @@
                 {
                     Application.RunOnMainThread(() =>
                     {
+                      
+
                         if (downloadData)
                         {
                             ///鍒濆鍖朼pp鏁版嵁
                             Common.ApiUtlis.Ins.DownloadData();
                         };
+
+                       
+
                     });
                 }
             }).Start();
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
index e1e05bc..df31fec 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -55,48 +55,123 @@
                 //鍦扮儹
                 case SPK.FloorHeatStandard:
                     {
-                        LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
-                        lightSwitchView.btnText.TextID = StringId.switchLogic;
-                        lightSwitchView.btnState.Text = "";
-                        fLayout.AddChidren(lightSwitchView.FLayoutView());
-                        lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
-                        {
-                            FrameLayout frame = new FrameLayout
-                            {
-                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
-                            };
-                            this.AddChidren(frame);
-                            LogicView.SwitchView switchView = new LogicView.SwitchView();
-                            switchView.FLayoutView(frame, 2, lightSwitchView.btnState.Text, (strValue) =>
-                            {
-                                int id = 0;
-                                switch (strValue)
-                                {
-                                    case "on":
-                                        {
-                                            id = StringId.onLogic;
-                                        }
-                                        break;
-                                    case "off":
-                                        {
-                                            id = StringId.offLogic;
-                                        }
-                                        break;
-                                }
-                                //鏄剧ず鏂囨湰
-                                lightSwitchView.btnState.TextID = id;
-                                selectedState = device.spk + "_" + strValue;
-                                //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�;
-                                string keyVlaue = "on_off";
-                                AddDictionary(keyVlaue, strValue);
 
-                            });
+                        LogicView.FunTypeView view = new LogicView.FunTypeView();
+                        view.btnText.TextID = StringId.switchLogic;
+                        fLayout.AddChidren(view.FLayoutView());
+                        view.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            DeviceView(device, view.btnState, StringId.onLogic, StringId.offLogic);
                         };
                         if (edit)
                         {
-                            GetEditState(device, index, lightSwitchView.btnState, null, null, null);
+                            GetEditState(device, index, view.btnState, null, null, null);
+                        }
+                    }
+                    break;
+                case SPK.SensorWater:
+                    {
+                        LogicView.FunTypeView view = new LogicView.FunTypeView();
+                        view.btnText.TextID = StringId.luoshuiandwuluoshui;
+                        fLayout.AddChidren(view.FLayoutView());
+                        view.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            DeviceView(device, view.btnState, StringId.luoshui, StringId.wuluoshui);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, index, view.btnState, null, null, null);
                         }
 
+                    }
+                    break;
+                case SPK.SensorSmoke:
+                case SPK.SensorGas:
+                    {
+                        LogicView.FunTypeView view = new LogicView.FunTypeView();
+                        view.btnText.TextID = StringId.xieluoandwuxieluo;
+                        fLayout.AddChidren(view.FLayoutView());
+                        view.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            DeviceView(device, view.btnState, StringId.xieluo, StringId.wuxieluo);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, index, view.btnState, null, null, null);
+                        }
+
+                    }
+                    break;
+                case SPK.SensorDryContact:
+                    {
+                        LogicView.FunTypeView view = new LogicView.FunTypeView();
+                        view.btnText.TextID = StringId.switchLogic;
+                        fLayout.AddChidren(view.FLayoutView());
+                        view.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            DeviceView(device, view.btnState, StringId.onLogic, StringId.offLogic);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, index, view.btnState, null, null, null);
+                        }
+
+                    }
+                    break;
+                case SPK.SensorShanLan:
+                case SPK.SensorDuiShe:
+                case SPK.SensorPir:
+                    {
+                        LogicView.FunTypeView view = new LogicView.FunTypeView();
+                        view.btnText.TextID = StringId.yourenandwuren;
+                        fLayout.AddChidren(view.FLayoutView());
+                        view.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            DeviceView(device, view.btnState, StringId.youren, StringId.wuren);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, index, view.btnState, null, null, null);
+                        }
+                    }
+                    break;
+                case SPK.SensorDoorWindow: {
+                        LogicView.FunTypeView view = new LogicView.FunTypeView();
+                        view.btnText.TextID = StringId.kaiqiandbihe;
+                        fLayout.AddChidren(view.FLayoutView());
+                        view.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            DeviceView(device, view.btnState, StringId.kaiqi , StringId.bihe);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, index, view.btnState, null, null, null);
+                        }
+                    }
+                    break;
+                case SPK.SensoruUtrasonic:
+                    {
+                        
+                        LogicView.FunTypeView view = new LogicView.FunTypeView();
+                        view.btnText.TextID = StringId.yourenandwuren;
+                        fLayout.AddChidren(view.FLayoutView());
+                        view.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            DeviceView(device, view.btnState, StringId.youren, StringId.wuren);
+                        };
+                        LogicView.FunTypeView view1 = new LogicView.FunTypeView();
+                        view1.frameLayout.Y = view.frameLayout.Bottom;
+                        view1.btnText.TextID = StringId.fangchaigongneng;
+                        fLayout.AddChidren(view1.FLayoutView());
+                        view1.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            DeviceView(device, view1.btnState, StringId.zaixian, StringId.buzaixian);
+                        };
+
+                        if (edit)
+                        {
+                            GetEditState(device, index, view.btnState, view1.btnState, null, null);
+                        }
                     }
                     break;
 
@@ -149,6 +224,94 @@
 
         }
         /// <summary>
+        /// 璁惧閫夋嫨鏉′欢鐣岄潰
+        /// </summary>
+        /// <param name="device">璁惧</param>
+        /// <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) { 
+            FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence };
+            this.AddChidren(frame);
+            LogicView.SwitchView switchView = new LogicView.SwitchView();
+            switchView.FLayoutView(frame, btnText1, btnText2, button.Text, (intValue) =>
+            {
+                //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�;
+                string keyVlaue = "on_off";
+                string value = "";
+                switch (device.spk)
+                {
+                    //浼犳劅鍣�
+                    case SPK.SensorWater:
+                    case SPK.SensorSmoke:
+                    case SPK.SensorGas:
+                    case SPK.SensorDryContact:
+                    case SPK.SensorShanLan:
+                    case SPK.SensorDuiShe:
+                    case SPK.SensorPir:
+                    case SPK.SensorDoorWindow:
+                    case SPK.SensoruUtrasonic:
+                        {
+                            keyVlaue = "status";
+                        }
+                        break;
+
+                }
+                switch (intValue)
+                {
+                    case StringId.xieluo:
+                    case StringId.luoshui:
+                        {
+                            value = "alarm";
+                        }
+                        break;
+                    case StringId.wuxieluo:
+                    case StringId.wuluoshui:
+                        {
+                            value = "normal";
+                        }
+                        break;
+                    case StringId.onLogic:
+                        {
+                            value = "on";
+                        }
+                        break;
+                    case StringId.offLogic:
+                        {
+                            value = "off";
+                        }
+                        break;
+                    case StringId.youren:
+                    case StringId.kaiqi:
+                        {
+                            value = "true";
+                        }
+                        break;
+                    case StringId.wuren:
+                    case StringId.bihe:
+                        {
+                            value = "false";
+                        }
+                        break;
+                    case StringId.zaixian: {
+                            keyVlaue = "dismantle";
+                            value = "true";
+                        };break;
+                    case StringId.buzaixian:
+                        {
+                            keyVlaue = "dismantle";
+                            value = "false";
+                        }; break;
+                }
+                //鏄剧ず鏂囨湰
+                button.TextID = intValue;
+                selectedState = device.spk + "_" + value;
+                AddDictionary(keyVlaue, value);
+
+            });
+
+        }
+        /// <summary>
         /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
         /// </summary>
         /// <param name="device">缂栬緫璁惧</param>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/EmptyClass.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/EmptyClass.cs
new file mode 100644
index 0000000..2293a25
--- /dev/null
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/EmptyClass.cs
@@ -0,0 +1,475 @@
+锘縰sing System;
+using HDL_ON.UI.UI2.Intelligence.Automation.LogicView;
+using Shared;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.UI.UI2.Intelligence.Automation
+{
+    public class EmptyClass : FrameLayout
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="list">琛ㄧず璇ュ垪琛ㄥ厓绱燗-Z瀛楁瘝绛涢�夋樉绀哄嚭鏉�</param>
+        /// <param name="list6">琛ㄧず璇ュ垪琛ㄥ厓绱犳樉绀哄湪list鍓嶉潰(璇ュ垪琛ㄥ厓绱犱笉鍋欰-Z瀛楁瘝绛涢��),娌℃湁鍙互涓簂ist6=null</param>
+        /// <param name="action">杩斿洖閫変腑鏂囨湰</param>
+        public void Show(List<string> list, List<string> list6, Action<string> action) 
+        {
+
+
+            //string text = "30";
+            //byte[] bytes = new byte[text.Length / 2];
+            //for (int i = 0, j = 0; i < bytes.Length; j += 2, i++)
+            //{
+            //    //鎶�16杩涘害杞崲鎴恇yte
+            //    bytes[i] = Convert.ToByte(text.Substring(j, 2), 16);
+            //}
+            ////鎶奲yte鏁扮粍杞崲鎴愭枃瀛�
+            //string str = System.Text.Encoding.UTF8.GetString(bytes);
+
+
+            var frameLayout = new FrameLayout
+            {
+                BackgroundColor = CSS.CSS_Color.viewTop,
+                Height = Application.GetRealHeight(112),
+                Width = Application.GetRealWidth(375),
+            };
+            this.AddChidren(frameLayout);
+
+            var topNameBtn = new Button
+            {
+                TextSize = TextSize.text18,
+                TextColor = CSS.CSS_Color.textColor,
+                Width = Application.GetRealWidth(TextSize.view375 - 60 - 60),
+                Height = Application.GetRealHeight(25),
+                Y = Application.GetRealHeight(30),
+                X = Application.GetRealWidth(60),
+                Text = "璇烽�夋嫨鍝佺墝",
+
+            };
+            frameLayout.AddChidren(topNameBtn);
+
+            var backBtn = new Button
+            {
+                Width = Application.GetRealWidth(12),
+                Height = Application.GetRealWidth(20),
+                X = Application.GetRealWidth(TextSize.left16),
+                Y = Application.GetRealHeight(32),
+                UnSelectedImagePath = "LogicIcon/back.png",
+            };
+            frameLayout.AddChidren(backBtn);
+            backBtn.MouseUpEventHandler += (sen, e) =>
+            {
+                this.RemoveFromParent();
+            };
+
+            var editText = new EditText
+            {
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealWidth(28),
+                X = Application.GetRealWidth(TextSize.left16),
+                Y = Application.GetRealHeight(76),
+                BackgroundColor = CSS.CSS_Color.view,
+                TextColor = CSS.CSS_Color.textColor,
+                TextAlignment = TextAlignment.Center,
+
+            };
+            frameLayout.AddChidren(editText);
+
+            var fram = new FrameLayout
+            {
+                Y = Application.GetRealHeight(112),
+                Height = Application.GetRealHeight(667 - 112),
+                Width = Application.GetRealWidth(375),
+                BackgroundColor = CSS.CSS_Color.view,
+            };
+            this.AddChidren(fram);
+
+
+            //var list11 = new List<string> {
+            //   "鐖变綘", "鍝庡懄","鍩冨強","鍝堝紬鎹㈠3鍝堝紬", "鐖卞痉鍗庡v","淇哄嚑涓柉浜�",
+            //    "鎷滀簡", "宸村+", "鐧惧か",  "鐧惧悎鍦扮悊璇句綘鎵撶畻", "涓嶅害鑰侀浼忔灔", "姣斿埌涔濈偣",
+            //    "杞︾珯","娴嬭瘯","姝ゅ湴", "鎵嶇湅瑙佸ソ寰楀揩","鍚冭蒋楗�","浠庣湅瑙佷簩鍗佸",
+            //   "绛夊緟鏈轰細鍚�","鐨勫鎴�", "澶氬枬鐐�", "鐧昏鍝︾劧鍚�", "鎵撶數璇�",
+            //     "鎭╄偆闇滅湅灏辩湅浜�", "楗挎os","鎭堕瓟鍩�","鍎跨鑱斿姩", "鎭╁叚棰楀瓙寮规媺鎷夎¥娲楁尽浜�","鍙戝ぇ瀛︾敓鍙戝彂",
+            //    "鐪熷帀瀹砳鍙戝灏�", "鐭ラ亾浣犱粯娆句簡鍙�", "灏厭鍥炲",  "鏀硅繘鐨勮瘽", "澶╁ぉ閫熷害鍥炵瓟", "澶ソ浜嗗紑杞�",
+            //    "鍑忚偉鐨勭湅杩�","妗″嚭鍙e閭�","濡傛灉瑙夊緱", "寰堣垝鏈嶇殑","鍚冭蒋楗�","浠庣湅瑙佷簩鍗佸",
+            //   "榫欏嵎椋庝簭澶у彂","鍘诲ソ鐪�", "澶氬枬鐐�", "濂芥氮璐瑰ソ", "鎵撶數璇�"};
+            if (list == null)
+            {
+                list = new List<string>();
+            }
+            if (list6 == null)
+            {
+                list6 = new List<string>();
+            }
+            var list1 = GetDateList(list);
+            list1.Add("1");
+            list1.InsertRange(0, list6);
+
+
+
+            var vv = new VerticalScrolViewLayout();
+            fram.AddChidren(vv);
+            var listStr = new List<string>();
+            listStr.AddRange(list1);
+            editText.TextChangeEventHandler += (view, strView) =>
+            {
+                listStr.Clear();
+                for (int i = 0; i < list1.Count; i++)
+                {
+                    var s = list1[i];
+                    if (s.Contains(strView))
+                    {
+                        listStr.Add(s);
+                    }
+                }
+                RefreshLayout(vv, listStr, action);
+
+            };
+
+            #region A-Z
+
+
+            var a_zFra = new FrameLayout
+            {
+                Y = Application.GetRealHeight(46),
+                X = Application.GetRealWidth(362 - 6),
+                Height = Application.GetRealHeight(351),
+                Width = Application.GetRealWidth(10 + 6),
+            };
+            fram.AddChidren(a_zFra);
+            var list2 = GetList();  
+            for (int i = 0; i < list2.Count; i++)
+            {
+
+                var a_zBtn = new Button
+                {
+                    Padding = new Padding(0, 6, 0, 0),
+                    Y = Application.GetRealHeight(i * 13),
+                    Width = Application.GetRealWidth(16),
+                    Height = Application.GetRealHeight(10),
+                    Text = list2[i],
+                    TextSize = TextSize.text10,
+                    TextColor = CSS.CSS_Color.textConfirmColor,
+                    Tag = list2[i],
+                };
+                a_zFra.AddChidren(a_zBtn);
+
+
+                a_zBtn.MouseUpEventHandler += (sender, e) =>
+                {
+
+                    try
+                    {
+                        //鎵惧埌绱㈠紩鍊�
+                        var index = listStr.IndexOf(a_zBtn.Tag.ToString());
+                        if (index != -1)
+                        {
+                            vv.ScrollToViewIndex(index);
+                        }
+                        else
+                        {
+                            if (a_zBtn.Tag.ToString() == "#")
+                            {
+                                vv.ScrollToViewIndex(0);
+                            }
+                        }
+                    }
+                    catch { }
+                };
+
+            }
+            #endregion
+
+            RefreshLayout(vv, list1,action);
+
+
+
+
+
+        }
+        /// <summary>
+        /// 鏇存柊鍒楄〃Viev
+        /// </summary>
+        /// <param name="vv">鐖舵帶浠�</param>
+        /// <param name="list">鏄剧ず鍒楄〃</param>
+        private void RefreshLayout(VerticalScrolViewLayout vv, List<string> list,Action<string> action)
+        {
+            vv.RemoveAll();
+            foreach (var str in list)
+            {
+                var rowLayout = new RowLayout { LineColor = CSS.CSS_Color.view };
+                var textName = new Button
+                {
+                    TextSize = TextSize.text16,
+                    TextColor = CSS.CSS_Color.textColor,
+                    Width = Application.GetRealWidth(300),
+                    Height = Application.GetRealHeight(22),
+                    X = Application.GetRealWidth(16),
+                    Gravity = Gravity.CenterVertical,
+                    TextAlignment = TextAlignment.CenterLeft,
+                    Text = str,
+                };
+                var clickBtn = new Button
+                {
+                    Tag = str,
+                    Width = Application.GetRealWidth(350),
+                };
+
+                if (Exist(str))
+                {
+                    //鍥犱负瀛楁瘝娌℃湁鐐瑰嚮浜嬩欢
+                    rowLayout.Height = Application.GetRealHeight(24);
+                    rowLayout.BackgroundColor = CSS.CSS_Color.viewTop;
+                    textName.TextSize = TextSize.text12;
+                    rowLayout.AddChidren(textName);
+                }
+                else
+                {
+                    rowLayout.Height = Application.GetRealHeight(44);
+                    rowLayout.AddChidren(textName);
+                    rowLayout.AddChidren(clickBtn);
+                }
+                vv.AddChidren(rowLayout);
+                clickBtn.MouseUpEventHandler += (sen, e) =>
+                {
+                    //鎵惧埌绱㈠紩鍊�
+                    var index = list.IndexOf(clickBtn.Tag.ToString());
+
+                    this.RemoveFromParent();
+                };
+
+            }
+
+        }
+        /// <summary>
+        /// 鍒楄〃鏄惁鍖呭惈璇ュ��(true=鍖呭惈锛宖alse=涓嶅寘鍚�)
+        /// </summary>
+        /// <param name="str"></param>
+        /// <returns></returns>
+        private bool Exist(string str)
+        {
+
+            if (GetList().Contains(str) || "涓绘祦鍝佺墝" == str)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏄剧ず鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        private List<string> GetDateList(List<string> mList)
+        {
+            var list = new List<string>();
+            //鑾峰彇A-Z瀛楁瘝鍒楄〃
+            var a_zList = GetList(false);
+            //閬嶅巻A-Z瀛楁瘝鍒楄〃
+            for (int i = 0; i < a_zList.Count; i++)
+            {
+                var zimu = a_zList[i];
+                //閬嶅巻瀛楃涓插垪琛�
+                for (int a = 0; a < mList.Count; a++)
+                {
+                    var str = mList[a];
+                    //鎻愬彇瀛楃涓茬涓�浣�
+                    string s = str.Substring(0, 1);
+                    //杩斿洖瀛楃涓茬涓�浣嶉瀛楁瘝锛堝ぇ鍐欙級
+                    var a_z = GetCharSpellCode(s);
+                    //鍒ゆ柇鏄惁鍚屽瓧姣�
+                    if (zimu == a_z)
+                    {
+                        //鍒ゆ柇鍒楄〃鏄惁瀛樺湪瀛楁瘝
+                        if (!list.Contains(zimu))
+                        {
+                            //娣诲姞瀛楁瘝
+                            list.Add(zimu);
+                        }
+                        //娣诲姞棣栧瓧鍚屼竴涓瓧姣嶇殑鏁版嵁
+                        list.Add(str);
+                    }
+
+                }
+            }
+            return list;
+        }
+
+        /// <summary>
+        /// 鑾峰彇A-Z瀛楁瘝鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        private List<string> GetList(bool value = true)
+        {
+            var list = new List<string>();
+            if (value)
+            {
+                list.Add("#");
+            }
+            for (int j = 65; j <= 90; j++)
+            {
+                char c = (char)j;
+                string s = c.ToString();
+                list.Add(s);
+
+            }
+            return list;
+        }
+
+        /// <summary>
+        /// 鑾峰彇姹夊瓧棣栧瓧姣�
+        /// </summary>
+        /// <param name="textValue"></param>
+        /// <returns></returns>
+        private string GetCharSpellCode(string textValue)
+        {
+            long iCnChar;
+
+            byte[] ZW = Encoding.GetEncoding("gb2312").GetBytes(textValue);
+
+            //濡傛灉鏄瓧姣嶏紝鍒欑洿鎺ヨ繑鍥� 
+            if (ZW.Length == 1)
+            {
+                return textValue.ToUpper();
+            }
+            else
+            {
+                // get the array of byte from the single char 
+                int i1 = (short)(ZW[0]);
+                int i2 = (short)(ZW[1]);
+                iCnChar = i1 * 256 + i2;
+            }
+
+            //expresstion 
+            //table of the constant list 
+            // 'A'; //45217..45252 
+            // 'B'; //45253..45760 
+            // 'C'; //45761..46317 
+            // 'D'; //46318..46825 
+            // 'E'; //46826..47009 
+            // 'F'; //47010..47296 
+            // 'G'; //47297..47613 
+
+            // 'H'; //47614..48118 
+            // 'J'; //48119..49061 
+            // 'K'; //49062..49323 
+            // 'L'; //49324..49895 
+            // 'M'; //49896..50370 
+            // 'N'; //50371..50613 
+            // 'O'; //50614..50621 
+            // 'P'; //50622..50905 
+            // 'Q'; //50906..51386 
+
+            // 'R'; //51387..51445 
+            // 'S'; //51446..52217 
+            // 'T'; //52218..52697 
+            //娌℃湁U,V 
+            // 'W'; //52698..52979 
+            // 'X'; //52980..53640 
+            // 'Y'; //53689..54480 
+            // 'Z'; //54481..55289 
+
+            // iCnChar match the constant 
+            if ((iCnChar >= 45217) && (iCnChar <= 45252))
+            {
+                return "A";
+            }
+            else if ((iCnChar >= 45253) && (iCnChar <= 45760))
+            {
+                return "B";
+            }
+            else if ((iCnChar >= 45761) && (iCnChar <= 46317))
+            {
+                return "C";
+            }
+            else if ((iCnChar >= 46318) && (iCnChar <= 46825))
+            {
+                return "D";
+            }
+            else if ((iCnChar >= 46826) && (iCnChar <= 47009))
+            {
+                return "E";
+            }
+            else if ((iCnChar >= 47010) && (iCnChar <= 47296))
+            {
+                return "F";
+            }
+            else if ((iCnChar >= 47297) && (iCnChar <= 47613))
+            {
+                return "G";
+            }
+            else if ((iCnChar >= 47614) && (iCnChar <= 48118))
+            {
+                return "H";
+            }
+            else if ((iCnChar >= 48119) && (iCnChar <= 49061))
+            {
+                return "J";
+            }
+            else if ((iCnChar >= 49062) && (iCnChar <= 49323))
+            {
+                return "K";
+            }
+            else if ((iCnChar >= 49324) && (iCnChar <= 49895))
+            {
+                return "L";
+            }
+            else if ((iCnChar >= 49896) && (iCnChar <= 50370))
+            {
+                return "M";
+            }
+
+            else if ((iCnChar >= 50371) && (iCnChar <= 50613))
+            {
+                return "N";
+            }
+            else if ((iCnChar >= 50614) && (iCnChar <= 50621))
+            {
+                return "O";
+            }
+            else if ((iCnChar >= 50622) && (iCnChar <= 50905))
+            {
+                return "P";
+            }
+            else if ((iCnChar >= 50906) && (iCnChar <= 51386))
+            {
+                return "Q";
+            }
+            else if ((iCnChar >= 51387) && (iCnChar <= 51445))
+            {
+                return "R";
+            }
+            else if ((iCnChar >= 51446) && (iCnChar <= 52217))
+            {
+                return "S";
+            }
+            else if ((iCnChar >= 52218) && (iCnChar <= 52697))
+            {
+                return "T";
+            }
+            else if ((iCnChar >= 52698) && (iCnChar <= 52979))
+            {
+                return "W";
+            }
+            else if ((iCnChar >= 52980) && (iCnChar <= 53640))
+            {
+                return "X";
+            }
+            else if ((iCnChar >= 53689) && (iCnChar <= 54480))
+            {
+                return "Y";
+            }
+            else if ((iCnChar >= 54481) && (iCnChar <= 55289))
+            {
+                return "Z";
+            }
+            else return ("ZZ");
+        }
+    }
+}
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
index 522f09c..190ce80 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -50,7 +50,7 @@
                                             {
                                                 strtext = Language.StringByID(StringId.sunrise);
                                                 statetext = Language.StringByID(StringId.advanced);
-                                              
+
                                             }
                                             break;
                                         case "before_sunset":
@@ -58,8 +58,9 @@
 
                                                 strtext = Language.StringByID(StringId.sunset);
                                                 statetext = Language.StringByID(StringId.advanced);
-                                              
-                                            } break;
+
+                                            }
+                                            break;
                                         case "before_noon":
                                             {
                                                 strtext = Language.StringByID(StringId.at);
@@ -70,12 +71,14 @@
                                             {
                                                 strtext = Language.StringByID(StringId.sunrise);
                                                 statetext = Language.StringByID(StringId.delayLogic);
-                                            } break;
+                                            }
+                                            break;
                                         case "after_sunset":
                                             {
                                                 strtext = Language.StringByID(StringId.sunset);
                                                 statetext = Language.StringByID(StringId.delayLogic);
-                                            } break;
+                                            }
+                                            break;
                                         case "after_noon":
                                             {
                                                 strtext = Language.StringByID(StringId.at);
@@ -161,6 +164,140 @@
                                         }
                                     }
                                     break;
+                                //浼犳劅鍣�
+                                case SPK.SensorSmoke:
+                                case SPK.SensorGas:
+                                    {
+                                        foreach (var dic in dicList)
+                                        {
+                                            string value = dic["value"];
+                                            if (value == "alarm")
+                                            {
+                                                inputView.btnState.Text = Language.StringByID(StringId.xieluo);
+
+                                            }
+                                            else
+                                            {
+                                                inputView.btnState.Text = Language.StringByID(StringId.wuxieluo);
+                                            }
+                                        }
+                                    }
+                                    break;
+                                case SPK.SensorWater:
+                                    {
+                                        foreach (var dic in dicList)
+                                        {
+                                            string value = dic["value"];
+                                            if (value == "alarm")
+                                            {
+                                                inputView.btnState.Text = Language.StringByID(StringId.luoshui);
+
+                                            }
+                                            else
+                                            {
+                                                inputView.btnState.Text = Language.StringByID(StringId.wuluoshui);
+                                            }
+                                        }
+                                    }
+                                    break;
+                                case SPK.SensorDryContact:
+                                    {
+                                        foreach (var dic in dicList)
+                                        {
+
+                                            string value = dic["value"];
+                                            if (value == "on")
+                                            {
+                                                inputView.btnState.Text = Language.StringByID(StringId.onLogic);
+
+                                            }
+                                            else
+                                            {
+                                                inputView.btnState.Text = Language.StringByID(StringId.offLogic);
+                                            }
+                                        }
+                                    }
+                                    break;
+                                case SPK.SensorShanLan:
+                                case SPK.SensorDuiShe:
+                                case SPK.SensorPir:
+                                    {
+                                        foreach (var dic in dicList)
+                                        {
+
+                                            string value = dic["value"];
+                                            if (value == "true")
+                                            {
+                                                inputView.btnState.Text = Language.StringByID(StringId.youren);
+
+                                            }
+                                            else
+                                            {
+                                                inputView.btnState.Text = Language.StringByID(StringId.wuren);
+                                            }
+                                        }
+                                    }
+                                    break;
+                                case SPK.SensorDoorWindow:
+                                    {
+                                        foreach (var dic in dicList)
+                                        {
+
+                                            string value = dic["value"];
+                                            if (value == "true")
+                                            {
+                                                inputView.btnState.Text = Language.StringByID(StringId.kaiqi);
+
+                                            }
+                                            else
+                                            {
+                                                inputView.btnState.Text = Language.StringByID(StringId.bihe);
+                                            }
+                                        }
+                                    }
+                                    break;
+                                case SPK.SensoruUtrasonic:
+                                    {
+                                        string str = "";
+                                        foreach (var dic in dicList)
+                                        {
+                                            string value = dic["value"];
+                                            switch (dic["key"])
+                                            {
+                                                case "status":
+                                                    {
+                                                        if (value == "true")
+                                                        {
+                                                            str+= Language.StringByID(StringId.youren)+";";
+                                                        }
+                                                        else
+                                                        {
+                                                            str += Language.StringByID(StringId.wuren) + ";";
+                                                        }
+
+
+                                                    }
+                                                    break;
+                                                case "dismantle":
+                                                    {
+                                                        if (value == "true")
+                                                        {
+                                                            str += Language.StringByID(StringId.zaixian);
+                                                        }
+                                                        else
+                                                        {
+                                                            str += Language.StringByID(StringId.buzaixian);
+                                                        }
+                                                    }
+                                                    break;
+
+                                            }
+
+                                        }
+                                        inputView.btnState.Text = str;
+                                    }
+                                    break;
+
                             }
                         }
                         break;
@@ -180,10 +317,12 @@
                                     case "outdoor_temp":
                                         {
                                             strvalue = value;
-                                            if (comparator==">") {
+                                            if (comparator == ">")
+                                            {
                                                 strtext = Language.StringByID(StringId.wendugaoyu);
                                             }
-                                            else  if(comparator == "<"){
+                                            else if (comparator == "<")
+                                            {
                                                 strtext = Language.StringByID(StringId.wendudiyu);
                                             }
 
@@ -212,7 +351,7 @@
 
                                 }
 
-                               
+
                             }
                             inputView.btnText.Text = strtext;
                             inputView.btnState.Text = strvalue;
@@ -245,9 +384,9 @@
                                             strtext = Language.StringByID(StringId.rain);
                                         }
                                         break;
-                                 
+
                                 }
-                                inputView.btnText.TextID =StringId.tianqibianhua;
+                                inputView.btnText.TextID = StringId.tianqibianhua;
                                 inputView.btnState.Text = strtext;
                             }
                         }
@@ -357,12 +496,12 @@
                                             {
                                                 if (comparator == ">")
                                                 {
-                                                    intValue=StringId.wendugaoyu;
+                                                    intValue = StringId.wendugaoyu;
                                                 }
                                                 else if (comparator == "<")
                                                 {
                                                     intValue = StringId.wendudiyu;
-                                                  
+
                                                 }
 
                                             }
@@ -428,7 +567,7 @@
         /// <param name="viewLayout">涓婁笅婊戝姩鎺т欢</param>
         public static void OutputTarget(FrameLayout thisView, VerticalScrolViewLayout viewLayout)
         {
-            
+
             for (int i = 0; i < Logic.currlogic.output.Count; i++)
             {
                 Output outputTarget = Logic.currlogic.output[i];
@@ -533,17 +672,19 @@
                                         targetView.btnState.Text = stateStr;
                                     }
                                     break;
-                                case SPK.AcStandard: {
+                                case SPK.AcStandard:
+                                    {
                                         string on_off = GetKeyValue("on_off", dicList);
                                         string set_temp = GetKeyValue("set_temp", dicList);
                                         string mode = GetKeyValue("mode", dicList);
                                         string fan = GetKeyValue("fan", dicList);
-                                        if (on_off != "") {
+                                        if (on_off != "")
+                                        {
                                             switch (on_off)
                                             {
                                                 case "on":
                                                     {
-                                                        stateStr = Language.StringByID(StringId.onLogic)+",";
+                                                        stateStr = Language.StringByID(StringId.onLogic) + ",";
                                                     }
                                                     break;
                                                 case "off":
@@ -551,7 +692,7 @@
                                                         stateStr = Language.StringByID(StringId.offLogic) + ",";
                                                     }
                                                     break;
-                                               
+
                                             }
                                         }
 
@@ -568,7 +709,7 @@
                                             {
                                                 case "cool":
                                                     {
-                                                        stateStr += Language.StringByID(StringId.coolLogic)+",";
+                                                        stateStr += Language.StringByID(StringId.coolLogic) + ",";
                                                     }
                                                     break;
                                                 case "heat":
@@ -597,7 +738,7 @@
                                             {
                                                 case "high":
                                                     {
-                                                        stateStr += Language.StringByID(StringId.HighWindSpeed)+",";
+                                                        stateStr += Language.StringByID(StringId.HighWindSpeed) + ",";
                                                     }
                                                     break;
                                                 case "medium":
@@ -622,7 +763,8 @@
                                         {
                                             targetView.btnState.Text = Language.StringByID(StringId.offLogic);
                                         }
-                                        else {
+                                        else
+                                        {
                                             targetView.btnState.Text = stateStr.TrimEnd(',');
 
                                         }
@@ -663,7 +805,7 @@
                                             {
                                                 case "day":
                                                     {
-                                                        stateStr += Language.StringByID(StringId.dayMode)+",";
+                                                        stateStr += Language.StringByID(StringId.dayMode) + ",";
                                                     }
                                                     break;
                                                 case "night":
@@ -717,7 +859,7 @@
                                         }
                                         if (on_off != "" && on_off == "off")
                                         {
-                                            targetView.btnState.Text =Language.StringByID(StringId.offLogic);
+                                            targetView.btnState.Text = Language.StringByID(StringId.offLogic);
                                         }
                                         else
                                         {
@@ -755,7 +897,7 @@
                 {
                     Button button = (Button)sen;
                     //鎵惧埌褰撳墠缂栬緫鐨勭储寮�
-                    int indexVulae =0;
+                    int indexVulae = 0;
                     for (int index = 0; index < Logic.currlogic.output.Count; index++)
                     {
                         Output target = Logic.currlogic.output[index];
@@ -1064,6 +1206,128 @@
 
                     }
                     break;
+                case SPK.SensorGas:
+                case SPK.SensorSmoke:
+                    {
+                        foreach (var dic in dicList)
+                        {
+                            string value = dic["value"];
+                            if (value == "alarm")
+                            {
+                                button1.Text = Language.StringByID(StringId.xieluo);
+                            }
+                            else
+                            {
+                                button1.Text = Language.StringByID(StringId.wuxieluo);
+                            }
+                        }
+                    }
+                    break;
+                case SPK.SensorWater:
+                    {
+                        foreach (var dic in dicList)
+                        {
+                            string value = dic["value"];
+                            if (value == "alarm")
+                            {
+                                button1.Text = Language.StringByID(StringId.luoshui);
+                            }
+                            else
+                            {
+                                button1.Text = Language.StringByID(StringId.wuluoshui);
+                            }
+                        }
+                    }
+                    break;
+                case SPK.SensorDryContact:
+                    {
+                        foreach (var dic in dicList)
+                        {
+                            string value = dic["value"];
+                            if (value == "on")
+                            {
+                                button1.Text = Language.StringByID(StringId.onLogic);
+                            }
+                            else
+                            {
+                                button1.Text = Language.StringByID(StringId.offLogic);
+                            }
+                        }
+                    }
+                    break;
+                case SPK.SensorShanLan:
+                case SPK.SensorDuiShe:
+                case SPK.SensorPir:
+                    {
+                        foreach (var dic in dicList)
+                        {
+                            string value = dic["value"];
+                            if (value == "true")
+                            {
+                                button1.Text = Language.StringByID(StringId.youren);
+                            }
+                            else
+                            {
+                                button1.Text = Language.StringByID(StringId.wuren);
+                            }
+                        }
+                    }
+                    break;
+                case SPK.SensorDoorWindow:
+                    {
+                        foreach (var dic in dicList)
+                        {
+                            string value = dic["value"];
+                            if (value == "true")
+                            {
+                                button1.Text = Language.StringByID(StringId.kaiqi);
+                            }
+                            else
+                            {
+                                button1.Text = Language.StringByID(StringId.bihe);
+                            }
+                        }
+                    }
+                    break;
+                case SPK.SensoruUtrasonic:
+                    {
+                        foreach (var dic in dicList)
+                        {
+                            string value = dic["value"];
+                            switch (dic["key"])
+                            {
+                                case "status":
+                                    {
+                                        if (value == "true")
+                                        {
+                                            button1.Text = Language.StringByID(StringId.youren);
+                                        }
+                                        else
+                                        {
+                                            button1.Text = Language.StringByID(StringId.wuren);
+                                        }
+
+
+                                    }
+                                    break;
+                                case "dismantle":
+                                    {
+                                        if (value == "true")
+                                        {
+                                            button1.Text = Language.StringByID(StringId.zaixian);
+                                        }
+                                        else
+                                        {
+                                            button1.Text = Language.StringByID(StringId.buzaixian);
+                                        }
+                                    }
+                                    break;
+
+                            }
+
+                        }
+                    }
+                    break;
             }
         }
         /// <summary>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
index 442b6f9..d4c9df7 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -23,7 +23,7 @@
         {
             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>
@@ -262,6 +262,7 @@
 
             return roomName.TrimEnd(',');
         }
+        #region   鍔ㄤ竴鏀瑰洓
         /// <summary>
         /// 鑾峰彇璁惧绫诲瀷鍥炬爣
         /// </summary>
@@ -296,6 +297,19 @@
                 case SPK.FloorHeatStandard:
                     {
                         strPath = "LogicIcon/heatlogic.png";
+                    }
+                    break;
+                case SPK.SensorSmoke:
+                case SPK.SensorWater:
+                case SPK.SensorGas:
+                case SPK.SensorDryContact:
+                case SPK.SensorShanLan:
+                case SPK.SensorDuiShe:
+                case SPK.SensorPir:
+                case SPK.SensorDoorWindow:
+                case SPK.SensoruUtrasonic:
+                    {
+                        strPath = "LogicIcon/sensor.png";
                     }
                     break;
 
@@ -333,6 +347,21 @@
             {
                 deviceStrTypeList.Add(Language.StringByID(StringId.FloorHeating));
             }
+            var sensor = deviceList.Find((device) =>
+            device.spk == SPK.SensorWater
+            || device.spk == SPK.SensorGas
+            || device.spk == SPK.SensorSmoke
+            || device.spk == SPK.SensorDryContact
+            || device.spk == SPK.SensorShanLan
+            || device.spk == SPK.SensorDuiShe
+            || device.spk == SPK.SensorPir
+            || device.spk == SPK.SensorDoorWindow
+            || device.spk == SPK.SensoruUtrasonic
+            );
+            if (sensor != null)
+            {
+                deviceStrTypeList.Add(Language.StringByID(StringId.Sensor));
+            }
             return deviceStrTypeList;
 
         }
@@ -366,6 +395,19 @@
             {
                 functionTypeList.Add(SPK.FloorHeatStandard);
             }
+            else if (deviceType == Language.StringByID(StringId.Sensor))
+            {
+                functionTypeList.Add(SPK.SensorSmoke);
+                functionTypeList.Add(SPK.SensorWater);
+                functionTypeList.Add(SPK.SensorGas);
+                functionTypeList.Add(SPK.SensorDryContact);
+                functionTypeList.Add(SPK.SensorShanLan);
+                functionTypeList.Add(SPK.SensorDuiShe);
+                functionTypeList.Add(SPK.SensorPir);
+                functionTypeList.Add(SPK.SensorDoorWindow);
+                functionTypeList.Add(SPK.SensoruUtrasonic);
+              
+            }
             return functionTypeList;
 
         }
@@ -390,6 +432,15 @@
                         deviceTypeList.Add(SPK.CurtainTrietex);
                         deviceTypeList.Add(SPK.AcStandard);
                         deviceTypeList.Add(SPK.FloorHeatStandard);
+                        deviceTypeList.Add(SPK.SensorSmoke);
+                        deviceTypeList.Add(SPK.SensorWater);
+                        deviceTypeList.Add(SPK.SensorGas);
+                        deviceTypeList.Add(SPK.SensorDryContact);
+                        deviceTypeList.Add(SPK.SensorShanLan);
+                        deviceTypeList.Add(SPK.SensorDuiShe);
+                        deviceTypeList.Add(SPK.SensorPir);
+                        deviceTypeList.Add(SPK.SensorDoorWindow);
+                        deviceTypeList.Add(SPK.SensoruUtrasonic);
                     }
                     break;
                 case target_if:
@@ -409,6 +460,7 @@
             }
             return deviceTypeList;
         }
+        #endregion
         /// <summary>
         /// 鏄剧ず鐨勮澶囧垪琛�
         /// </summary>
@@ -421,9 +473,9 @@
             for (int i = 0; i < deviceList.Count; i++)
             {
                 var dev = deviceList[i];
+                //杩囨护鎺変笉闇�瑕佹樉绀虹殑璁惧
                 if (functionType.Contains(dev.spk))
                 {
-                    ///杩囨护鎺変笉闇�瑕佹樉绀虹殑璁惧
                     devList.Add(dev);
                 }
 
@@ -446,5 +498,39 @@
             var list = GetShowDeviceList(functionTypeList, roomDeviceList);
             return list;
         }
+        /// <summary>
+        /// 缃戝叧ID(鑾峰彇鍢変箰缃戝叧ID)
+        /// </summary>
+        public static string GatewayId
+        {
+            get
+            {
+                if (Entity.DB_ResidenceData.Instance.HomeGateway == null)
+                {
+                    return DriverLayer.Control.Ins.GatewayId;
+                }
+                return Entity.DB_ResidenceData.Instance.HomeGateway.gatewayId;
+            }
+        }
+        /// <summary>
+        /// 浣忓畢ID
+        /// </summary>
+        public static string HomeId
+        {
+            get
+            {
+                return Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID;
+            }
+        }
+        /// <summary>
+        /// 鏄惁涓哄叾浠栦富鐢ㄦ埛鍒嗕韩杩囨潵鐨勪綇瀹�
+        /// </summary>
+        public static bool IsOthreShare
+        {
+            get
+            {
+                return Entity.DB_ResidenceData.Instance.CurrentRegion.IsOthreShare;
+            }
+        }
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/FunTypeView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/FunTypeView.cs
old mode 100755
new mode 100644
index 7bba7b2..7ef9350
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/FunTypeView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/FunTypeView.cs
@@ -12,7 +12,6 @@
             Height = Application.GetRealHeight(50),
             BackgroundColor = CSS.CSS_Color.view,
         };
-      
         /// <summary>
         /// 鏂囨湰鎻忚堪
         /// </summary>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SwitchView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SwitchView.cs
old mode 100755
new mode 100644
index 078ef48..46020f5
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SwitchView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SwitchView.cs
@@ -162,6 +162,62 @@
         }
 
 
+        /// <summary>
+        /// View鐨勬柟娉�
+        /// </summary>
+        ///  <param name="frame">鐖舵帶浠�</param>
+        /// <param name="text1">鐖舵帶浠�</param>
+        /// <param name="text2">鏄剧ず閫夋嫨View鏁伴噺</param>
+        ///<param name="stateVuale">涔嬪墠鐨勭姸鎬佸��</param>
+        /// <param name="action">杩斿洖鍥炶皟</param>
+        /// <returns></returns>
+        public void FLayoutView(FrameLayout frame, int text1, int text2, string stateVuale, Action<int> action)
+        {
+            int i = 2;
+            frameLayout.Y = Application.GetRealHeight(603 - (44 * i));
+            frameLayout.Height = Application.GetRealHeight(44 * i);
+            frame.AddChidren(frameLayout);
+            frame.AddChidren(btnCancel);
+            btnOn.TextID = text1;
+            btnOff.TextID = text2;
+            frameLayout.AddChidren(btnOn);
+            frameLayout.AddChidren(btnLine);
+            frameLayout.AddChidren(btnOff);
+            //鍙栨秷鐐瑰嚮浜嬩欢
+            btnCancel.MouseUpEventHandler += (sender1, e1) =>
+            {
+                frame.RemoveFromParent();
+            };
+
+            ///鏄剧ず涔嬪墠鐘舵��
+            if (stateVuale != "")
+            {
+                if (stateVuale == btnOn.Text)
+                {
+                    btnOn.TextColor = CSS.CSS_Color.textConfirmColor;
+                }
+                else if (stateVuale == btnOff.Text)
+                {
+                    btnOff.TextColor = CSS.CSS_Color.textConfirmColor;
+                }
+
+            }
+
+            //鐐瑰嚮浜嬩欢
+            btnOn.MouseUpEventHandler += (sender2, e2) =>
+            {
+                action(btnOn.TextID);
+                frame.RemoveFromParent();
+            };
+            //鐐瑰嚮浜嬩欢
+            btnOff.MouseUpEventHandler += (sender3, e3) =>
+            {
+                action(btnOff.TextID);
+                frame.RemoveFromParent();
+            };
+
+
+        }
 
 
         ///// <summary>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
index c073d7f..fbfc392 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
@@ -9,7 +9,7 @@
     public class MainView
     {
         /// <summary>
-        /// 璁板綍閫昏緫鑷姩鍖栫埗鎺т欢
+        /// VerticalRefreshLayout鐖舵帶浠�
         /// </summary>
         public static FrameLayout automationPage;
         /// <summary>
@@ -328,7 +328,7 @@
         /// 鏄剧ず鏉′欢鎴栬�呯洰鏍囩被鍨嬪浘鏍�
         /// </summary>
         /// <param name="layouFrame">鐖舵帶浠�</param>
-        /// <param name="logic">褰撳墠閫昏緫</param>
+        /// <param name="logic">褰撳墠鑷姩鍖�</param>
         private static void GetSelectIcon(FrameLayout layouFrame, Logic logic)
         {
 
@@ -341,12 +341,6 @@
             //2-鍔熻兘鍥炬爣
             for (int i = 0; i < logic.input.Count; i++)
             {
-                if (logic.input[i] == null || logic.input[i].ToString() == "")
-                {
-                    //闃叉鏈夌殑绌哄璞★紱
-                    //姝e父鎯呭喌涓嬩笉浼氳鐜拌薄锛�
-                    continue;
-                }
 
                 var int1 = int.Parse(logic.input[i].condition_type);
                 int iconInt = 0;
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
old mode 100755
new mode 100644
index 494a69d..afb33d1
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -10,38 +10,12 @@
     public  class Send
     {
         /// <summary>
-        /// 缃戝叧ID(鑾峰彇鍢変箰缃戝叧ID)
-        /// </summary>
-        public static string GatewayId
-        {
-            get
-            {
-                if (Entity.DB_ResidenceData.Instance.HomeGateway == null)
-                {
-                    return DriverLayer.Control.Ins.GatewayId;
-                }
-                return Entity.DB_ResidenceData.Instance.HomeGateway.gatewayId;
-            }
-        }
-         
-        /// <summary>
-        /// 浣忓畢ID
-        /// </summary>
-        public static string HomeId
-        {
-            get
-            {
-                return Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID; 
-            }
-        }
-
-        /// <summary>
         /// 鑾峰彇閫昏緫ID鍒楄〃
         /// </summary>
         /// <returns></returns>
         public static ResponsePackNew GetLogicIdList() 
         {
-            var jObject = new JObject { { "homeId", HomeId } };
+            var jObject = new JObject { { "homeId", LogicMethod.HomeId } };
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_List);
             //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
             if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
@@ -134,7 +108,7 @@
                 var logicjArray = new JArray { };
                 var logicIfon = new JObject { };
                 logicIfon.Add("sid", logic.sid);
-                logicIfon.Add("gatewayId", GatewayId);
+                logicIfon.Add("gatewayId", LogicMethod.GatewayId);
                 logicIfon.Add("name", logic.name);
                 logicIfon.Add("relation", logic.relation);
                 logicIfon.Add("enable", logic.enable);
@@ -142,7 +116,7 @@
                 logicIfon.Add("input", inputArray);
                 logicIfon.Add("output", outputArray);
                 logicjArray.Add(logicIfon);
-                var jObject = new JObject { { "homeId", HomeId }, { "logics", logicjArray } };
+                var jObject = new JObject { { "homeId", LogicMethod.HomeId }, { "logics", logicjArray } };
                 responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add);
                 //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
                 if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
@@ -222,7 +196,7 @@
                 var logicIfon = new JObject { };
                 logicIfon.Add("userLogicId", logic.userLogicId);
                 logicIfon.Add("sid", logic.sid);
-                logicIfon.Add("gatewayId", GatewayId);
+                logicIfon.Add("gatewayId", LogicMethod.GatewayId);
                 logicIfon.Add("name", logic.name);
                 logicIfon.Add("relation", logic.relation);
                 logicIfon.Add("enable", logic.enable);
@@ -230,7 +204,7 @@
                 logicIfon.Add("input", inputArray);
                 logicIfon.Add("output", outputArray);
                 logicjArray.Add(logicIfon);
-                var jObject = new JObject { { "homeId", HomeId }, { "logics", logicjArray } };
+                var jObject = new JObject { { "homeId", LogicMethod.HomeId }, { "logics", logicjArray } };
                 responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update);
                 //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
                 if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
index 30c4eaf..2bc0fba 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
@@ -426,10 +426,7 @@
         private void SwitchViewMethod(Entity.Function device, Button button, int len)
         {
             #region 鐣岄潰
-            FrameLayout frame = new FrameLayout
-            {
-                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
-            };
+            FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence };
             this.AddChidren(frame);
             LogicView.SwitchView switchView = new LogicView.SwitchView();
             switchView.FLayoutView(frame, len, button.Text, (strValue) =>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
index 67f73fc..9f2bcf7 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -71,7 +71,7 @@
             bodyView.AddChidren(topView);
 
             //涓嶆槸A缃戝叧鎴栬�呮槸鎴愬憳 鍙厑璁告坊鍔犲満鏅殣钘忚嚜鍔ㄥ寲
-            var HideAutoPage = DB_ResidenceData.Instance.GatewayType != 1 || DB_ResidenceData.Instance.CurrentRegion.IsOthreShare;
+            var HideAutoPage = DB_ResidenceData.Instance.GatewayType != 1|| DB_ResidenceData.Instance.CurrentRegion.IsOthreShare;
             //鍒ゆ柇鏄惁闇�瑕侀殣钘忚嚜鍔ㄥ寲
             if (HideAutoPage)
             {
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
index f331743..f824674 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -262,8 +262,11 @@
             EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
             {
                 var page = new ThirdPartyBrandListPage();
+                var page = new HDL_ON.UI.UI2.Intelligence.Automation.EmptyClass();
                 MainPage.BasePageView.AddChidren(page);
-                page.LoadPage();
+                page.Show(new System.Collections.Generic.List<string>(),null,(str)=> {
+
+                });
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
             };
             btnResidenceAddFunctionIcon.MouseUpEventHandler = eventHandler;
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/SearchDevice/SearchDevicePage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/SearchDevice/SearchDevicePage.cs
old mode 100755
new mode 100644
index 22ece99..1d11b35
--- a/HDL_ON/UI/UI2/4-PersonalCenter/SearchDevice/SearchDevicePage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/SearchDevice/SearchDevicePage.cs
@@ -30,6 +30,8 @@
             };
             bodyView.AddChidren(contentView);
 
+          
+
             contentView.BeginHeaderRefreshingAction += () =>
             {
                 deviceIpList.Clear();

--
Gitblit v1.8.0