From 6ba43603ccd8868a4ee73e9b978b7cb20a5b2c52 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期五, 04 十二月 2020 14:24:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/WJC'

---
 HDL-ON_iOS/Resources/Phone/LogicIcon/selected-.png                      |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/FunTypeView.cs        |   88 ++
 HDL-ON_Android/Assets/Phone/LogicIcon/bjicon2.png                       |    0 
 HDL-ON_Android/Assets/Phone/.DS_Store                                   |    0 
 HDL-ON_Android/Assets/Language.ini                                      |    5 
 HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon4.png                        |    0 
 HDL-ON_iOS/HDL-ON_iOS.csproj                                            |   30 
 HDL-ON_iOS/Resources/Phone/LogicIcon/weekoff.png                        |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs       |  305 ++++++++
 HDL-ON_iOS/Resources/Phone/LogicIcon/back.png                           |    0 
 HDL-ON_Android/HDL-ON_Android.csproj                                    |   30 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/brightnessView.cs     |  143 +++
 HDL-ON_Android/Assets/Phone/LogicIcon/-.png                             |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/ModeView.cs           |  130 +++
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs                  |  184 +++++
 HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon5.png                        |    0 
 HDL_ON/Entity/Enumerative/MyEnum.cs                                     |   23 
 HDL-ON_Android/Resources/Resource.designer.cs                           |    3 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TipPopView.cs         |   18 
 HDL-ON_iOS/Resources/Phone/LogicIcon/lightloguc.png                     |    0 
 HDL-ON_Android/Assets/Phone/LogicIcon/bjicon3.png                       |    0 
 HDL-ON_Android/Assets/Phone/LogicIcon/ selected+.png                    |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/down.png                           |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/functionicon.png                   |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SelectTypeView.cs     |    1 
 HDL-ON_iOS/Resources/Phone/LogicIcon/next.png                           |    0 
 HDL-ON_Android/Assets/Phone/LogicIcon/bjicon4.png                       |    0 
 HDL-ON_Android/Assets/Phone/LogicIcon/point.png                         |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs                      |   37 
 HDL-ON_iOS/Resources/Phone/LogicIcon/+.png                              |    0 
 HDL_ON/Entity/Function/Function.cs                                      |    8 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs                        |    5 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs                         |   23 
 HDL-ON_iOS/Resources/Phone/LogicIcon/addconditiontarget.png             |    0 
 HDL-ON_Android/Assets/Phone/LogicIcon/+.png                             |    0 
 HDL-ON_Android/Assets/Phone/LogicIcon/bjicon5.png                       |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SingleLogicView.cs    |    2 
 HDL-ON_iOS/Resources/Phone/LogicIcon/editname.png                       |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/on.png                             |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs          |  117 ++
 HDL-ON_iOS/Resources/Phone/LogicIcon/timecondition.png                  |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/airconditionerlogic.png            |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs                     |  120 +++
 HDL-ON_iOS/Resources/Language.ini                                       |    9 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/.DS_Store             |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Set.cs                          |   16 
 HDL-ON_iOS/Resources/Phone/LogicIcon/point.png                          |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SwitchView.cs         |   77 ++
 HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon1.png                        |    0 
 .vs/HDL_APP_Project/xs/sqlite3/storage.ide                              |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/scene.png                          |    0 
 HDL-ON_Android/Assets/Phone/Public/.DS_Store                            |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon2.png                        |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/timeicon.png                       |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/weekon.png                         |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/delayed.png                        |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/off.png                            |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/outletlogic.png                    |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/-.png                              |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/heatlogic.png                      |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs          |  579 ++++++++++++++++
 HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon3.png                        |    0 
 /dev/null                                                               |   10 
 HDL_ON/DAL/Server/NewAPI.cs                                             |    4 
 HDL-ON_Android/Assets/Phone/LogicIcon/bjicon1.png                       |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/LogicTypeTitleView.cs |    2 
 HDL-ON_iOS/Resources/Phone/LogicIcon/ selected+.png                     |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs                     |   91 +-
 HDL_ON/UI/UI2/3-Intelligence/Automation/.DS_Store                       |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputView.cs |   42 
 HDL_ON/Common/R.cs                                                      |    6 
 HDL-ON_iOS/Resources/Phone/LogicIcon/set.png                            |    0 
 HDL-ON_Android/Assets/Phone/LogicIcon/selected-.png                     |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/curtainlogic.png                   |    0 
 74 files changed, 1,976 insertions(+), 132 deletions(-)

diff --git a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide
index 93a5304..52efe68 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/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index 9ff8292..e79a894 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -486,6 +486,11 @@
 7049=鏄惁瑕佸垹闄よ嚜鍔ㄥ寲锛�
 7050=娣诲姞鍦烘櫙
 7051=寤舵椂
+7052=淇濆瓨澶辫触锛岃閲嶈瘯
+7053=鍒犻櫎澶辫触锛岃閲嶈瘯
+7054=鏆傚仠
+7055=浜害
+7056=鐧惧垎姣�
 
 
 
diff --git a/HDL-ON_Android/Assets/Phone/.DS_Store b/HDL-ON_Android/Assets/Phone/.DS_Store
new file mode 100644
index 0000000..3d7015f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/.DS_Store
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/ selected+.png b/HDL-ON_Android/Assets/Phone/LogicIcon/ selected+.png
new file mode 100755
index 0000000..0a3a7b0
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/ selected+.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/+.png b/HDL-ON_Android/Assets/Phone/LogicIcon/+.png
new file mode 100755
index 0000000..4dff907
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/+.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/-.png b/HDL-ON_Android/Assets/Phone/LogicIcon/-.png
new file mode 100755
index 0000000..780125f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/-.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon1.png b/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon1.png
new file mode 100755
index 0000000..7b9de73
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon1.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon2.png b/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon2.png
new file mode 100755
index 0000000..40cce9f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon2.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon3.png b/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon3.png
new file mode 100755
index 0000000..b114f71
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon3.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon4.png b/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon4.png
new file mode 100755
index 0000000..3ac7cb6
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon4.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon.png b/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon5.png
similarity index 100%
rename from HDL-ON_Android/Assets/Phone/LogicIcon/bjicon.png
rename to HDL-ON_Android/Assets/Phone/LogicIcon/bjicon5.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/point.png b/HDL-ON_Android/Assets/Phone/LogicIcon/point.png
new file mode 100755
index 0000000..0447100
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/point.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/selected-.png b/HDL-ON_Android/Assets/Phone/LogicIcon/selected-.png
new file mode 100755
index 0000000..bd5286e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/selected-.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/Public/.DS_Store b/HDL-ON_Android/Assets/Phone/Public/.DS_Store
new file mode 100644
index 0000000..3cc30ee
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/Public/.DS_Store
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index ebcbe32..093a46e 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -617,6 +617,36 @@
     <AndroidAsset Include="Assets\Phone\Classification\Room\Roombg8.png" />
     <AndroidAsset Include="Assets\Phone\Classification\Room\Roombg9.png" />
     <AndroidAsset Include="Assets\Phone\Classification\Room\Roombg10.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\heatlogic.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\on.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\off.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\timecondition.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\down.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\timeicon.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\lightloguc.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\set.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\addconditiontarget.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\functionicon.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\airconditionerlogic.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\bjicon5.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\delayed.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\next.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\curtainlogic.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\weekoff.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\weekon.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\outletlogic.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\back.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\scene.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\editname.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\bjicon1.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\bjicon2.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\bjicon3.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\bjicon4.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\-.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\+.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\point.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\ selected+.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\selected-.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 9acaeea..7562ddb 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 ef64313..052cf7d 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -591,6 +591,36 @@
       <BundleResource Include="Resources\Phone\Classification\Room\Roombg8.png" />
       <BundleResource Include="Resources\Phone\Classification\Room\Roombg9.png" />
       <BundleResource Include="Resources\Phone\Classification\Room\Roombg10.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\heatlogic.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\on.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\off.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\timecondition.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\down.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\timeicon.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\lightloguc.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\set.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\addconditiontarget.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\functionicon.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\airconditionerlogic.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\bjicon5.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\delayed.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\next.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\curtainlogic.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\weekoff.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\weekon.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\outletlogic.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\back.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\scene.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\editname.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\bjicon1.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\bjicon2.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\bjicon3.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\bjicon4.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\-.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\+.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\point.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\ selected+.png" />
+      <BundleResource Include="Resources\Phone\LogicIcon\selected-.png" />
     </ItemGroup>
     <ItemGroup>
       <ITunesArtwork Include="iTunesArtwork" />
diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini
index 82e1aa2..7b6b259 100644
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -433,7 +433,6 @@
 5047=浣犳墜鏈烘殏鏈畨瑁�"QQ闊充箰"{\r\n}璇峰墠寰�鎵嬫満鍟嗗満瀹夎
 
 
-
 7000=鏂板缓鑷姩鍖�
 7001=缂栬緫鑷姩鍖�
 7002=濡傛灉
@@ -486,7 +485,11 @@
 7049=鏄惁瑕佸垹闄よ嚜鍔ㄥ寲锛�
 7050=娣诲姞鍦烘櫙
 7051=寤舵椂
-
+7052=淇濆瓨澶辫触锛岃閲嶈瘯
+7053=鍒犻櫎澶辫触锛岃閲嶈瘯
+7054=鏆傚仠
+7055=浜害
+7056=鐧惧垎姣�
 
 
 9000=璇蜂娇鐢ㄦ柊鐨勬墜鏈鸿处鍙风櫥褰旳PP
@@ -533,8 +536,6 @@
 9041=绯荤粺淇℃伅
 9042=淇℃伅涓績
 9043=璇ヨ处鍙峰凡鍦ㄥ叾瀹冭澶囩櫥褰�
-9044=涓婁紶鎴愬姛
-9045=涓婁紶澶辫触
 
 
 10000=鏃犳晥鐧诲綍瀵嗛挜锛岃閲嶆柊鐧诲綍锛�
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/ selected+.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/ selected+.png
new file mode 100755
index 0000000..0a3a7b0
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/ selected+.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/+.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/+.png
new file mode 100755
index 0000000..4dff907
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/+.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/-.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/-.png
new file mode 100755
index 0000000..780125f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/-.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/addconditiontarget.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/addconditiontarget.png
new file mode 100755
index 0000000..ac6e7ec
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/addconditiontarget.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/airconditionerlogic.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/airconditionerlogic.png
new file mode 100755
index 0000000..6123b42
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/airconditionerlogic.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/back.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/back.png
new file mode 100755
index 0000000..d10ae27
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/back.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon1.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon1.png
new file mode 100755
index 0000000..7b9de73
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon1.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon2.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon2.png
new file mode 100755
index 0000000..40cce9f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon2.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon3.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon3.png
new file mode 100755
index 0000000..b114f71
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon3.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon4.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon4.png
new file mode 100755
index 0000000..3ac7cb6
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon4.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/bjicon.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon5.png
similarity index 100%
copy from HDL-ON_Android/Assets/Phone/LogicIcon/bjicon.png
copy to HDL-ON_iOS/Resources/Phone/LogicIcon/bjicon5.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/curtainlogic.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/curtainlogic.png
new file mode 100755
index 0000000..0dc4af4
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/curtainlogic.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/delayed.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/delayed.png
new file mode 100755
index 0000000..df66c33
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/delayed.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/down.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/down.png
new file mode 100755
index 0000000..ad0f3b1
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/down.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/editname.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/editname.png
new file mode 100755
index 0000000..52727a2
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/editname.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/functionicon.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/functionicon.png
new file mode 100755
index 0000000..e1ea93a
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/functionicon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/heatlogic.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/heatlogic.png
new file mode 100755
index 0000000..eecd1a2
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/heatlogic.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/lightloguc.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/lightloguc.png
new file mode 100755
index 0000000..722c37e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/lightloguc.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/next.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/next.png
new file mode 100755
index 0000000..293a8c5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/next.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/off.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/off.png
new file mode 100755
index 0000000..bc2f19c
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/off.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/on.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/on.png
new file mode 100755
index 0000000..c6318d6
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/on.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/outletlogic.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/outletlogic.png
new file mode 100755
index 0000000..798bcbf
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/outletlogic.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/point.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/point.png
new file mode 100755
index 0000000..0447100
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/point.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/scene.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/scene.png
new file mode 100755
index 0000000..0585769
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/scene.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/selected-.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/selected-.png
new file mode 100755
index 0000000..bd5286e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/selected-.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/set.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/set.png
new file mode 100755
index 0000000..32b42f6
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/set.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/timecondition.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/timecondition.png
new file mode 100755
index 0000000..5b638b7
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/timecondition.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/timeicon.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/timeicon.png
new file mode 100755
index 0000000..df66c33
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/timeicon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/weekoff.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/weekoff.png
new file mode 100755
index 0000000..3f2fe5b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/weekoff.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/weekon.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/weekon.png
new file mode 100755
index 0000000..9b0a3d2
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/weekon.png
Binary files differ
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index a1d4f33..d7c9a07 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -479,6 +479,12 @@
         public const int delAutomation = 7049;
         public const int addSceneLogic = 7050;
         public const int delayLogic = 7051;
+        public const int saveFail = 7052;
+        public const int delFail = 7053;
+        public const int stop= 7054;
+        public const int brightnesLogic= 7055;
+        public const int percentum = 7056;
+        
 
 
         #region LE鏂板
diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs
index 8d2677c..6c41067 100644
--- a/HDL_ON/DAL/Server/NewAPI.cs
+++ b/HDL_ON/DAL/Server/NewAPI.cs
@@ -425,7 +425,7 @@
         /// <summary>
         /// 缂栬緫鑷姩鍖�
         /// </summary>
-        public const string API_POST_Logic_Update = ":/home-wisdom/app/logic/update";
+        public const string API_POST_Logic_Update = "/home-wisdom/app/logic/update";
         /// <summary>
         /// 鍒犻櫎鑷姩鍖�
         /// </summary>
@@ -433,7 +433,7 @@
         /// <summary>
         /// 鍚敤绂佺敤鑷姩鍖�
         /// </summary>
-        public const string API_POST_Logic_Enable = ":/home-wisdom/app/logic/enable";
+        public const string API_POST_Logic_Enable = "/home-wisdom/app/logic/enable";
         #endregion
 
 
diff --git a/HDL_ON/Entity/Enumerative/MyEnum.cs b/HDL_ON/Entity/Enumerative/MyEnum.cs
index 22a4502..a4db6f7 100644
--- a/HDL_ON/Entity/Enumerative/MyEnum.cs
+++ b/HDL_ON/Entity/Enumerative/MyEnum.cs
@@ -64,7 +64,7 @@
         /// <summary>
         /// 鑹叉俯
         /// </summary>
-        ColorTemperature =0x0203,
+        ColorTemperature = 0x0203,
         RGB = 0x0204,
         Curtain = 0x0301,
         MotorCurtain = 0x0303,
@@ -74,7 +74,7 @@
 
         Fan = 0x1001,
         TV = 0x1002,
-        Socket =0x0102,
+        Socket = 0x0102,
 
         PM25 = 0x0506,
         CO2 = 0x0507,
@@ -83,6 +83,25 @@
         Humidity = 0x0503,
 
         A31Music = 0x0902,
+
+        //铏氭嫙鐨勫厛鐢ㄦ潵璋冭瘯鐣岄潰
+        /// <summary>
+        /// RGBW
+        /// </summary>
+        RGBW = 0x0102,
+        /// <summary>
+        /// CCT鐏�
+        /// </summary>
+        CCT = 0x0103,
+        /// <summary>
+        /// 寮�鍚堝笜
+        /// </summary>
+        TrietexCurtain = 0x0104,
+        /// <summary>
+        /// 鍗峰笜
+        /// </summary>
+        RollerCurtain = 0x0105,
+
     }
 
     /// <summary>
diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 1dc4393..29ec0d6 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -30,6 +30,7 @@
         public Function()
         {
         }
+      
 
         #region base info
         /// <summary>
@@ -89,15 +90,16 @@
                 }
             }
         }
-        /// <summary>
-        /// 鍔熻兘绫诲瀷
-        /// </summary>
+        ///// <summary>
+        ///// 鍔熻兘绫诲瀷
+        ///// </summary>
         public FunctionType functionType
         {
             get
             {
                 var _functionTypeString = sid.Substring(16, 4);
                 return (FunctionType)Enum.ToObject(typeof(FunctionType), Convert.ToInt32(_functionTypeString, 16));
+
             }
         }
 
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/.DS_Store b/HDL_ON/UI/UI2/3-Intelligence/Automation/.DS_Store
index ca6baf5..771fadd 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/.DS_Store
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/.DS_Store
Binary files differ
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
index c877f26..8640e96 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
@@ -35,7 +35,8 @@
                 topView.setBtn.Visible = true;
                 topView.clickSetBtn.Visible = true;
             }
-            topView.clickSetBtn.MouseUpEventHandler += (sender,e) => {
+            topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
+            {
                 Set set = new Set();
                 MainPage.BasePageView.AddChidren(set);
                 set.Show();
@@ -43,7 +44,7 @@
 
             };
 
-           VerticalScrolViewLayout viewLayout = new VerticalScrolViewLayout
+            VerticalScrolViewLayout viewLayout = new VerticalScrolViewLayout
             {
                 Y = Application.GetRealHeight(64),
                 Width = Application.GetRealWidth(LogicView.TextSize.view375),
@@ -97,6 +98,7 @@
             LogicView.LogicTypeTitleView titleOutpu = new LogicView.LogicTypeTitleView();
             titleOutpu.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
             titleOutpu.btnText.TextID = StringId.theFollowingActions;
+            titleOutpu.btnNextIcon.Visible = false;
             viewLayout.AddChidren(titleOutpu.FLayoutView());
             //鐩爣澶勭悊鏂规硶
             InpOrOutLogicMethod.OutputTarget(this, viewLayout);
@@ -145,6 +147,11 @@
             push.frameLayout.Height = Application.GetRealHeight(50);
             push.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
             push.btnText.TextID = StringId.push;
+            push.btnNextIcon.Width = Application.GetMinRealAverage(36);
+            push.btnNextIcon.Height = Application.GetMinRealAverage(36);
+            push.btnNextIcon.X = Application.GetRealWidth(305);
+            push.btnNextIcon.UnSelectedImagePath = "LogicIcon/off.png";
+            push.btnNextIcon.SelectedImagePath = "LogicIcon/on.png";
             viewLayout.AddChidren(push.FLayoutView());
             ///鍙戦�侀�氱煡View        
             LogicView.LogicTypeTitleView notification = new LogicView.LogicTypeTitleView();
@@ -162,50 +169,45 @@
             this.AddChidren(saveView.FLayoutView());
             saveView.btnClick.MouseUpEventHandler += (sender, e) =>
             {
+                if (string.IsNullOrEmpty(Logic.currlogic.sid))
+                {
+                    List<string> list = new List<string>();
+                    foreach (var logic in Logic.LogicList)
+                    {
+                        list.Add(logic.name);
+                    }
+                    new LogicView.TipPopView().InputBox(StringId.editName, Logic.currlogic.name, StringId.nameNull, StringId.NameAlreadyExists, list, (logicName) =>
+                    {
+                        Logic.currlogic.name = logicName;
+                        Logic.currlogic.sid = LogicMethod.NewSid();
+                        //鍙戦�佹柊鍔犱慨鏀归�昏緫鍛戒护锛�
+                        var responsePackNew = Send.AddLogic(Logic.currlogic);
+                        if (responsePackNew.Code == "0")
+                        {
+                            Logic.LogicList.Add(Logic.currlogic);
+                            LogicMethod.RemoveAllView();
+                            MainView.MainShow();
+                        }
+                        else {
+                            new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
+                        }
 
-                Logic.currlogic.sid = "000101000000000A0A0100CC1100";
-                //Logic.currlogic.sid = LogicMethod.NewSid();
-                //var f = Send.AddLogic(Logic.currlogic);
+                    });
 
-                //var a = Send.getLogicIdList();
-
-                //var d = Send.getLogic(Logic.currlogic);
-
-               // var c = Send.delLogic(Logic.currlogic);
-
-                var e1= Send.switchLogic(Logic.currlogic);
-
-
-
-                //if (string.IsNullOrEmpty(Logic.currlogic.sid))
-                //{
-                //    List<string> list = new List<string>();
-                //    foreach (var logic in Logic.LogicList)
-                //    {
-                //        list.Add(logic.name);
-                //    }
-                //    new LogicView.TipPopView().InputBox(StringId.editName, Logic.currlogic.name, StringId.nameNull, StringId.NameAlreadyExists, list, (logicName) =>
-                //    {
-                //        Logic.currlogic.name = logicName;
-                //        Logic.currlogic.sid = LogicMethod.NewSid();
-                //        var responsePackNew = Send.AddLogic(Logic.currlogic);
-                //        if (responsePackNew.Code == "0")
-                //        {
-                //            Logic.LogicList.Add(Logic.currlogic);
-                //            LogicMethod.RemoveAllView();
-                //            MainView.MainShow();
-                //        }
-                //        //鍙戦�佹柊鍔犱慨鏀归�昏緫鍛戒护锛�
-
-                //    });
-               
-                //}
-                //else
-                //{
-                //    LogicMethod.RemoveAllView();
-                //    MainView.MainShow();
-                //    //鍙戦�佹柊鍔犱慨鏀归�昏緫鍛戒护锛�
-                //}
+                }
+                else
+                {
+                    //鍙戦�佹柊鍔犱慨鏀归�昏緫鍛戒护锛�
+                    var responsePackNew = Send.updateLogic(Logic.currlogic);
+                    if (responsePackNew.Code == "0")
+                    {
+                        LogicMethod.RemoveAllView();
+                        MainView.MainShow();
+                    }
+                    else {
+                        new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
+                    }
+                }
 
             };
             #endregion
@@ -575,7 +577,6 @@
                 fLayout.RemoveFromParent();
             };
         }
-
         /// <summary>
         /// 婊¤冻鏉′欢
         /// </summary>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
new file mode 100644
index 0000000..5474311
--- /dev/null
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -0,0 +1,305 @@
+锘縰sing System;
+using Shared;
+using System.Collections.Generic;
+namespace HDL_ON.UI.UI2.Intelligence.Automation
+{
+    public class ConditionDeviceFunList : FrameLayout
+    {
+        public ConditionDeviceFunList()
+        {
+            Tag = "Logic";
+        }
+        /// <summary>
+        /// 瀹氫箟涓�涓褰曢�変腑璁惧鐘舵�佸垪琛紱
+        /// </summary>
+        private List<Dictionary<string, string>> dicSateteList = new List<Dictionary<string, string>>();
+        /// <summary>
+        /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵��
+        /// </summary>
+        private string selectedState = "unknown";
+        /// <summary>
+        /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵�佽褰曞睘鎬�
+        /// </summary>
+        private string keyVlaue = "";
+        public void Show(Entity.Function device, int index, bool edit)
+        {
+            #region 鐣岄潰甯冨眬
+            this.BackgroundColor = CSS.CSS_Color.viewMiddle;
+            LogicView.TopView topView = new LogicView.TopView();
+            this.AddChidren(topView.FLayoutView());
+            topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
+            {
+                RemoveFromParent();
+            };
+            topView.topNameBtn.Text = device.name;
+
+            FrameLayout fLayout = new FrameLayout
+            {
+                Y = Application.GetRealHeight(64),
+                Height = Application.GetRealHeight(667 - 64),
+            };
+            this.AddChidren(fLayout);
+            #endregion
+            switch (device.functionType)
+            {
+                //寮�鍏崇伅鍏� light.Switch
+                case FunctionType.Dimmer:
+                case FunctionType.RGB:
+                case FunctionType.RGBW:
+                case FunctionType.CCT:
+                case FunctionType.Relay:
+                //绐楀笜
+                case FunctionType.Curtain:
+                case FunctionType.RollerCurtain:
+                case FunctionType.TrietexCurtain:
+                //绌鸿皟
+                case FunctionType.AC:
+                //鍦扮儹
+                case FunctionType.FloorHeating:
+                    {
+                        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);
+                            SwitchViewMethod(frame, device, lightSwitchView.btnState, 2);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, index, lightSwitchView.btnState, null, null, null);
+                        }
+
+                    }
+                    break;
+
+
+
+
+
+            }
+            #region  淇濆瓨
+            ///淇濆瓨View
+            LogicView.SaveView saveView = new LogicView.SaveView();
+            saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
+            saveView.btnSave.TextID = StringId.completeLogic;
+            this.AddChidren(saveView.FLayoutView());
+            saveView.btnClick.MouseUpEventHandler += (sen, e) =>
+            {
+
+
+                if (selectedState != "unknown")
+                {
+                    Input inputDevice = new Input();
+                    inputDevice.condition_type = "3";
+                    inputDevice.sid = device.sid;
+                    inputDevice.condition = dicSateteList;
+                    if (edit)
+                    {
+                        //绉婚櫎鏃ф暟鎹�
+                        Logic.currlogic.input.RemoveAt(index);
+                        //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃�;
+                        Logic.currlogic.input.Insert(index, inputDevice);
+                    }
+                    else
+                    {
+                        //娣诲姞涓�涓潯浠�
+                        AddCondition(inputDevice);
+                    }
+                }
+                else
+                {
+                    if (!edit)
+                    {
+                        //鎻愮ず鐢ㄦ埛
+                        return;
+                    }
+                    this.RemoveFromParent();
+                    return;
+                }
+                LogicMethod.RemoveAllView();
+                AddLogic addLogic = new AddLogic();
+                MainPage.BasePageView.AddChidren(addLogic);
+                addLogic.Show();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+
+            #endregion
+
+        }
+        /// <summary>
+        /// 绉婚櫎鎺т欢
+        /// </summary>
+        /// <param name="frame"></param>
+        private void RemView(FrameLayout frame)
+        {
+            frame.RemoveFromParent();
+        }
+        /// <summary>
+        /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
+        /// </summary>
+        /// <param name="device">缂栬緫璁惧</param>
+        /// <param name="index">缂栬緫鏁版嵁鐨勭储寮�</param>
+        /// <param name="button1">鏄剧ずBtn</param>
+        /// <param name="button2">鏄剧ずBtn</param>
+        /// <param name="button3">鏄剧ずBtn</param>
+        /// <param name="button4">鏄剧ずBtn</param>
+        private void GetEditState(Entity.Function device , int index, Button button1, Button button2, Button button3, Button button4)
+        {
+            Input inputs = Logic.currlogic.input[index];
+            var dicList = inputs.condition as List<Dictionary<string, string>>;
+            //娓呴櫎涔嬪墠鏃ф暟鎹�
+            dicSateteList.Clear();
+            if (dicList.Count != 0)
+            {
+                //鏈夋暟鎹噸鏂拌祴鍊�
+                dicSateteList = dicList;
+            }
+            switch (device.functionType)
+            {
+                //寮�鍏崇伅鍏� light.Switch
+                case FunctionType.Dimmer:
+                case FunctionType.RGB:
+                case FunctionType.RGBW:
+                case FunctionType.CCT:
+                case FunctionType.Relay:
+                //绐楀笜
+                case FunctionType.Curtain:
+                case FunctionType.RollerCurtain:
+                case FunctionType.TrietexCurtain:
+                //绌鸿皟
+                case FunctionType.AC:
+                //鍦扮儹
+                case FunctionType.FloorHeating:
+                    {
+                        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;
+
+            }
+        }
+        /// <summary>
+        /// 娣诲姞閫変腑鏁版嵁
+        /// </summary>
+        /// <param name="dicList">瀛樺偍鏁版嵁鍒楄〃</param>
+        /// <param name="keyValue">璇嗗埆璁惧</param> 
+        /// <param name="dictionary">閫変腑鏁版嵁</param>
+        /// <returns></returns>
+        private void AddDictionaryData(List<Dictionary<string, string>> dicList, string keyValue, Dictionary<string, string> dictionary)
+        {
+            int indexValue = -1;
+            for (int i = 0; i < dicList.Count; i++)
+            {
+                var dic = dicList[i];
+                if (dic.ContainsValue(keyValue))
+                {
+                    //鍒ゆ柇鏄惁瀛樺湪
+                    indexValue = i;
+                    break;
+                }
+            }
+
+            if (indexValue != -1)
+            {
+                //瀛樺湪绉婚櫎
+                dicList.RemoveAt(indexValue);
+                //閲嶆柊娣诲姞
+                dicList.Insert(indexValue, dictionary);
+            }
+            else
+            {
+                //鏂版坊鍔�
+                dicList.Add(dictionary);
+            }
+
+        }
+        /// <summary>
+        /// 娣诲姞鏉′欢
+        /// </summary>
+        /// <param name="input"></param>
+        private void AddCondition(Input input)
+        {
+            int indexValue = -1;
+            for (int i = 0; i < Logic.currlogic.input.Count; i++)
+            {
+                if (Logic.currlogic.input[i].sid == input.sid)
+                {
+                    indexValue = i;
+                    break;
+                }
+            }
+
+            if (indexValue != -1)
+            {
+                Logic.currlogic.input.RemoveAt(indexValue);
+                Logic.currlogic.input.Insert(indexValue, input);
+            }
+            else
+            {
+                Logic.currlogic.input.Add(input);
+            }
+
+        }
+        /// <summary>
+        /// 寮�鍏冲姛鑳藉睍寮�鐣岄潰
+        /// </summary>
+        /// <param name="frame"></param>
+        /// <param name="device"></param>
+        /// <param name="button"></param>
+        /// <param name="len"></param>
+        public void SwitchViewMethod(FrameLayout frame, Entity.Function device, Button button, int len)
+        {
+
+            LogicView.SwitchView switchView = new LogicView.SwitchView();
+            switchView.FLayoutView(frame, len);
+            Dictionary<string, string> dic = new Dictionary<string, string>();
+            LogicMethod.dictionary(dic, "key", "on_off");
+            LogicMethod.dictionary(dic, "comparator", "=");
+            LogicMethod.dictionary(dic, "data_type", "string");
+            keyVlaue = "on_off";
+            switchView.btnOn.MouseUpEventHandler += (sender2, e2) =>
+            {
+                LogicMethod.dictionary(dic, "value", "on");
+                button.TextID = StringId.onLogic;
+                selectedState = device.functionType + "_on";
+                AddDictionaryData(dicSateteList, keyVlaue, dic);
+                RemView(frame);
+            };
+            switchView.btnOff.MouseUpEventHandler += (sender3, e3) =>
+            {
+                LogicMethod.dictionary(dic, "value", "off");
+                button.TextID = StringId.offLogic;
+                selectedState = device.functionType + "_off";
+                AddDictionaryData(dicSateteList, keyVlaue, dic);
+                RemView(frame);
+            };
+            if (button.Text != "")
+            {
+                if (button.Text == switchView.btnOn.Text)
+                {
+                    switchView.btnOn.TextColor = CSS.CSS_Color.textConfirmColor;
+                }
+                else if (button.Text == switchView.btnOff.Text)
+                {
+                    switchView.btnOff.TextColor = CSS.CSS_Color.textConfirmColor;
+                }
+            }
+        }
+    }
+}
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/DeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/DeviceFunList.cs
deleted file mode 100644
index e6e5698..0000000
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/DeviceFunList.cs
+++ /dev/null
@@ -1,386 +0,0 @@
-锘縰sing System;
-using Shared;
-using System.Collections.Generic;
-namespace HDL_ON.UI.UI2.Intelligence.Automation
-{
-    public class DeviceFunList : FrameLayout
-    {
-        public DeviceFunList()
-        {
-            Tag = "Logic";
-        }
-        /// <summary>
-        /// 琛ㄧず鏄�(鏉′欢/鐩爣)
-        /// </summary>
-        private string if_type;
-        public void Show(Entity.Function device, int index, bool edit, string str)
-        {
-            if_type = str;
-            #region 鐣岄潰甯冨眬
-            this.BackgroundColor = CSS.CSS_Color.viewMiddle;
-            LogicView.TopView topView = new LogicView.TopView();
-            this.AddChidren(topView.FLayoutView());
-            topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
-            {
-                RemoveFromParent();
-            };
-            topView.topNameBtn.Text = device.name;
-
-            FrameLayout fLayout = new FrameLayout
-            {
-                Y = Application.GetRealHeight(64),
-                Height = Application.GetRealHeight(667 - 64),
-            };
-            this.AddChidren(fLayout);
-            #endregion
-            //瀹氫箟涓�涓褰曢�変腑璁惧鐘舵�佸垪琛紱
-            List<Dictionary<string, string>> dicSateteList = new List<Dictionary<string, string>>();
-            //瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵��
-            string selectedState = "unknown";
-            //瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵�佽褰曞睘鎬�
-            string keyVlaue = "";
-            switch (device.functionType)
-            {
-                //寮�鍏崇伅鍏�
-                case FunctionType.Relay:
-                    {
-                        //for (int i = 0; i < device.function.Count; i++)
-                        //{
-                        //}
-                        LogicView.SelectTypeView relayView = new LogicView.SelectTypeView();
-                        relayView.btnIcon.Visible = false;
-                        relayView.btnState.Visible = true;
-                        relayView.btnText.TextSize = LogicView.TextSize.text16;
-                        relayView.btnText.Height = Application.GetRealHeight(22);
-                        relayView.btnText.TextID = StringId.switchLogic;
-                        relayView.btnText.X = Application.GetRealWidth(16);
-                        relayView.btnText.Width = Application.GetRealWidth(130);
-                        relayView.btnLine.X = Application.GetRealWidth(16);
-                        relayView.btnLine.Width = Application.GetRealWidth(343);
-                        relayView.btnState.Text = "";
-                        fLayout.AddChidren(relayView.FLayoutView());
-                        relayView.btnClick.MouseUpEventHandler += (sender, e) =>
-                        {
-                            FrameLayout relayFunView = new FrameLayout
-                            {
-                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
-                            };
-                            this.AddChidren(relayFunView);
-                            LogicView.SwitchView switchView = new LogicView.SwitchView();
-                            switchView.FLayoutView(relayFunView, 2);
-
-                            Button btnOn = new Button
-                            {
-                                TextAlignment = TextAlignment.Center,
-                                TextSize = LogicView.TextSize.text16,
-                                TextColor = CSS.CSS_Color.textCancelColor,
-                                TextID = StringId.onLogic,
-                                Height = Application.GetRealHeight(44),
-                                Width = Application.GetRealWidth(343),
-
-                            };
-                            switchView.frameLayout.AddChidren(btnOn);
-                            Button btnLine = new Button
-                            {
-                                Height = 1,
-                                BackgroundColor = CSS.CSS_Color.viewLine,
-                                Y = btnOn.Bottom,
-                            };
-                            switchView.frameLayout.AddChidren(btnLine);
-                            Button btnOff = new Button
-                            {
-                                Y = btnLine.Bottom,
-                                TextAlignment = TextAlignment.Center,
-                                TextSize = LogicView.TextSize.text16,
-                                TextColor = CSS.CSS_Color.textCancelColor,
-                                TextID = StringId.offLogic,
-                                Height = Application.GetRealHeight(44),
-                                Width = Application.GetRealWidth(343),
-                            };
-                            switchView.frameLayout.AddChidren(btnOff);
-
-                            Dictionary<string, string> dic = new Dictionary<string, string>();
-                            switch (if_type)
-                            {
-                                case LogicMethod.condition_if:
-                                    {
-                                        LogicMethod.dictionary(dic, "key", "on_off");
-                                        LogicMethod.dictionary(dic, "comparator", "=");
-                                        LogicMethod.dictionary(dic, "data_type", "string");
-                                        keyVlaue = "on_off";
-                                    }
-                                    break;
-                                case LogicMethod.target_if:
-                                    {
-                                        LogicMethod.dictionary(dic, "key", "on_off");
-                                        keyVlaue = "on_off";
-                                    }
-                                    break;
-                            }
-
-                            btnOn.MouseUpEventHandler += (sender2, e2) =>
-                            {
-                                LogicMethod.dictionary(dic, "value", "on");
-                                RemView(relayFunView);
-                                relayView.btnState.TextID = StringId.onLogic;
-                                selectedState = device.functionType + "_on";
-                                AddDictionaryData(dicSateteList, keyVlaue, dic);
-                            };
-                            btnOff.MouseUpEventHandler += (sender3, e3) =>
-                            {
-                                LogicMethod.dictionary(dic, "value", "off");
-                                RemView(relayFunView);
-                                relayView.btnState.TextID = StringId.offLogic;
-                                selectedState = device.functionType + "_off";
-                                AddDictionaryData(dicSateteList, keyVlaue, dic);
-                            };
-
-                            if (relayView.btnState.Text != "")
-                            {
-                                if (relayView.btnState.Text == btnOn.Text)
-                                {
-                                    btnOn.TextColor = CSS.CSS_Color.textConfirmColor;
-                                }
-                                else
-                                {
-                                    btnOff.TextColor = CSS.CSS_Color.textConfirmColor;
-                                }
-                            }
-
-                        };
-                        if (edit)
-                        {
-                            GetEditState(device, edit, index, relayView.btnState, null, null, null);
-                        }
-
-                    }
-                    break;
-
-            }
-
-
-
-            #region  淇濆瓨
-            ///淇濆瓨View
-            LogicView.SaveView saveView = new LogicView.SaveView();
-            saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
-            saveView.btnSave.TextID = StringId.completeLogic;
-            this.AddChidren(saveView.FLayoutView());
-            saveView.btnClick.MouseUpEventHandler += (sen, e) =>
-            {
-
-
-                if (selectedState != "unknown")
-                {
-                    if (if_type == LogicMethod.condition_if)
-                    {
-
-                        Input inputDevice = new Input(); 
-                        inputDevice.condition_type = "3";
-                        inputDevice.sid = device.sid;
-                        inputDevice.condition = dicSateteList;
-
-
-                        if (edit)
-                        {
-                            //绉婚櫎鏃ф暟鎹�
-                            Logic.currlogic.input.RemoveAt(index);
-                            //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃�;
-                            Logic.currlogic.input.Insert(index, inputDevice);
-                        }
-                        else
-                        {
-                            //娣诲姞涓�涓潯浠�
-                            AddCondition(inputDevice);
-                        }
-                    }
-                    else
-                    {
-                        Output outputDevice = new Output();
-                        outputDevice.target_type = "1";
-                        outputDevice.sid = device.sid;
-                        outputDevice.status = dicSateteList;
-                        if (edit)
-                        {
-                            //绉婚櫎鏃ф暟鎹�
-                            Logic.currlogic.output.RemoveAt(index);
-                            //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃�;
-                            Logic.currlogic.output.Insert(index, outputDevice);
-                        }
-                        else
-                        {
-                            //娣诲姞涓�涓潯浠�
-                            AddTarget(outputDevice);
-                        }
-                    }
-                }
-                else
-                {
-                    if (!edit)
-                    {
-                        //鎻愮ず鐢ㄦ埛
-                        return;
-                    }
-                    this.RemoveFromParent();
-                    return;
-                }
-                LogicMethod.RemoveAllView();
-                AddLogic addLogic = new AddLogic();
-                MainPage.BasePageView.AddChidren(addLogic);
-                addLogic.Show();
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-            };
-
-            #endregion
-
-        }
-        /// <summary>
-        /// 绉婚櫎鎺т欢
-        /// </summary>
-        /// <param name="frame"></param>
-        private void RemView(FrameLayout frame)
-        {
-            frame.RemoveFromParent();
-        }
-        /// <summary>
-        /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
-        /// </summary>
-        /// <param name="device">缂栬緫璁惧</param>
-        /// <param name="edit">缂栬緫鐘舵��</param>
-        /// <param name="index">缂栬緫鏁版嵁鐨勭储寮�</param>
-        /// <param name="button1">鏄剧ずBtn</param>
-        /// <param name="button2">鏄剧ずBtn</param>
-        /// <param name="button3">鏄剧ずBtn</param>
-        /// <param name="button4">鏄剧ずBtn</param>
-        private void GetEditState(Entity.Function device, bool edit, int index, Button button1, Button button2, Button button3, Button button4)
-        {
-            var dicList = new List<Dictionary<string, string>>();
-            switch (if_type)
-            {
-                case LogicMethod.condition_if:
-                    {
-                        Input inputs = Logic.currlogic.input[index];
-                        dicList = inputs.condition as List<Dictionary<string, string>>;
-                    }
-                    break;
-                case LogicMethod.target_if:
-                    {
-                        Output outputs = Logic.currlogic.output[index];
-                        dicList = outputs.status as List<Dictionary<string, string>>;
-                    }
-                    break;
-            }
-            switch (device.functionType)
-            {
-                //寮�鍏崇伅鍏�
-                case FunctionType.Relay:
-                    {
-                        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;
-
-            }
-
-        }
-        /// <summary>
-        /// 娣诲姞閫変腑鏁版嵁
-        /// </summary>
-        /// <param name="dicList">鏁版嵁鍒楄〃</param>
-        /// <param name="keyValue">璇嗗埆璁惧</param>
-        /// <param name="dictionary">閫変腑鏁版嵁</param>
-        /// <returns></returns>
-        private void AddDictionaryData(List<Dictionary<string, string>> dicList, string keyValue, Dictionary<string, string> dictionary)
-        {
-            int indexValue = -1;
-            for (int i = 0; i < dicList.Count; i++)
-            {
-                var dic = dicList[i];
-                if (dic.ContainsValue(keyValue))
-                {
-                    //鍒ゆ柇鏄惁瀛樺湪
-                    indexValue = i;
-                    break;
-                }
-            }
-
-            if (indexValue != -1)
-            {
-                //瀛樺湪绉婚櫎
-                dicList.RemoveAt(indexValue);
-                //閲嶆柊娣诲姞
-                dicList.Insert(indexValue, dictionary);
-            }
-            else
-            {
-                //鏂版坊鍔�
-                dicList.Add(dictionary);
-            }
-
-        }
-        /// <summary>
-        /// 娣诲姞鏉′欢
-        /// </summary>
-        /// <param name="input"></param>
-        private void AddCondition(Input input)
-        {
-            int indexValue = -1;
-            for (int i = 0; i < Logic.currlogic.input.Count; i++)
-            {
-                if (Logic.currlogic.input[i].sid == input.sid)
-                {
-                    indexValue = i;
-                    break;
-                }
-            }
-
-            if (indexValue != -1)
-            {
-                Logic.currlogic.input.RemoveAt(indexValue);
-                Logic.currlogic.input.Insert(indexValue, input);
-            }
-            else
-            {
-                Logic.currlogic.input.Add(input);
-            }
-
-        }
-        /// <summary>
-        /// 娣诲姞鐩爣
-        /// </summary>
-        /// <param name="target"></param>
-        private void AddTarget(Output target)
-        {
-            int indexValue = -1;
-            for (int i = 0; i < Logic.currlogic.output.Count; i++)
-            {
-                if (Logic.currlogic.output[i].sid == target.sid)
-                {
-                    indexValue = i;
-                    break;
-                }
-            }
-
-            if (indexValue != -1)
-            {
-                Logic.currlogic.output.RemoveAt(indexValue);
-                Logic.currlogic.output.Insert(indexValue, target);
-            }
-            else
-            {
-                Logic.currlogic.output.Add(target);
-            }
-
-        }
-    }
-}
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
index c95c370..9c457be 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
@@ -63,7 +63,7 @@
                     Y = Application.GetRealHeight(103),
                     Width = Application.GetRealWidth(160),
                     Height = Application.GetRealHeight(21 + 44),
-                    BackgroundImagePath = "LogicIcon/bjicon.png",
+                    //BackgroundImagePath = "LogicIcon/bjicon.png",
                 };
                 fLayout.AddChidren(bghFrameLyout);
 
@@ -86,7 +86,7 @@
                 {
                     bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * 5);
                     bghFrameLyout.AddChidren(vvBgh);
-
+                    bghFrameLyout.BackgroundImagePath = "LogicIcon/bjicon5.png";
                 }
                 else
                 {
@@ -94,6 +94,7 @@
                     bghFrameLyout.AddChidren(areaBgh);
                     bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * roomList.Count);
                     areaBgh.Height = Application.GetRealHeight(44 * roomList.Count);
+                    bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{roomList.Count+1}.png";
                 }
                 #endregion
 
@@ -124,7 +125,10 @@
 
                         DeviceListView(vv, list);
                     };
-
+                    if (roomList.Count-1==i) {
+                        ///鏀瑰彉鏈�鍚庨偅鏉′竴涓嚎鐨勯鑹�,鐣岄潰鏄剧ず鏁堟灉浣滅敤;
+                        areaView.btnLine.BackgroundColor = CSS.CSS_Color.view;
+                    }
                 }
             };
             funAllAreaView.btnText1.MouseUpEventHandler += roomClick;
@@ -148,7 +152,7 @@
                     Y = Application.GetRealHeight(103),
                     Width = Application.GetRealWidth(160),
                     Height = Application.GetRealHeight(21 + 44),
-                    BackgroundImagePath = "LogicIcon/bjicon.png",
+                    //BackgroundImagePath = "LogicIcon/bjicon5.png",
                 };
                 fLayout.AddChidren(bghFrameLyout);
 
@@ -177,13 +181,14 @@
                 {
                     bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * 5);
                     bghFrameLyout.AddChidren(vvBgh);
-
+                    bghFrameLyout.BackgroundImagePath = "LogicIcon/bjicon5.png";
                 }
                 else
                 {
                     bghFrameLyout.AddChidren(areaBgh);
                     bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * deviceTypeList.Count);
                     areaBgh.Height = Application.GetRealHeight(44 * deviceTypeList.Count);
+                    bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{deviceTypeList.Count+1}.png";
                 }
                 #endregion
 
@@ -212,7 +217,11 @@
                         var lists = LogicMethod.GetShowDeviceList(typeFunctionList, functionList);
                         DeviceListView(vv, lists);
                     };
-
+                    if (deviceTypeList.Count - 1 == i)
+                    {
+                        ///鏀瑰彉鏈�鍚庨偅鏉′竴涓嚎鐨勯鑹�,鐣岄潰鏄剧ず鏁堟灉浣滅敤;
+                        areaView.btnLine.BackgroundColor = CSS.CSS_Color.view;
+                    }
                 }
             };
             funAllAreaView.btnText2.MouseUpEventHandler += funClick;
@@ -243,10 +252,18 @@
                 funView.btnDeviceName.Text = dev.name;
                 funView.btnRoomName.Text = dev.GetRoomListName();
                 funView.btnClick.MouseUpEventHandler += (sen,e) => {
-                    DeviceFunList deviceFunList = new DeviceFunList();
-                    MainPage.BasePageView.AddChidren(deviceFunList);
-                    deviceFunList.Show(dev,0,false,if_type);
-                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                    if (if_type == LogicMethod.condition_if) {
+                        ConditionDeviceFunList conditionDeviceFunList = new ConditionDeviceFunList();
+                        MainPage.BasePageView.AddChidren(conditionDeviceFunList);
+                        conditionDeviceFunList.Show(dev, 0, false);
+                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                    } else {
+                        TargetDeviceFunList targetDeviceFunList = new TargetDeviceFunList();
+                        MainPage.BasePageView.AddChidren(targetDeviceFunList);
+                        targetDeviceFunList.Show(dev, 0, false);
+                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                    }
+                   
                 };
             }
         }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
index 5f3a71b..bff9973 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -10,14 +10,14 @@
         /// </summary>
         /// <param name="thisView">褰撳墠鐣岄潰</param>
         /// <param name="viewLayout">涓婁笅婊戝姩鎺т欢</param>
-        public static void InputCondition(FrameLayout thisView,VerticalScrolViewLayout viewLayout)
+        public static void InputCondition(FrameLayout thisView, VerticalScrolViewLayout viewLayout)
         {
             for (int i = 0; i < Logic.currlogic.input.Count; i++)
             {
                 Input inputCondition = Logic.currlogic.input[i];
                 ///鍚勭鏉′欢鐨刅iew
                 LogicView.AddOutputInputView inputView = new LogicView.AddOutputInputView();
-                viewLayout.AddChidren(inputView.FLayoutView());
+                inputView.FLayoutView(viewLayout);
                 ///璁板綍鏉′欢绫诲瀷
                 inputView.btnClick.Name = inputCondition.condition_type;
                 ///璁板綍鏉′欢绱㈠紩
@@ -36,7 +36,6 @@
                                 inputView.btnText.Text = Language.StringByID(StringId.hour) + ": " + value;
                                 inputView.btnClick.AddTag("timepoint", value);
                             }
-
                         }
                         break;
                     case "2":
@@ -64,11 +63,24 @@
                             //鍖哄埆涓嶅悓璁惧锛屾樉绀轰笉鍚岃澶囩姸鎬�
                             switch (device.functionType)
                             {
+                                //寮�鍏崇伅鍏� light.Switch
+                                case FunctionType.Dimmer:
+                                case FunctionType.RGB:
+                                case FunctionType.RGBW:
+                                case FunctionType.CCT:
                                 case FunctionType.Relay:
+                                //绐楀笜
+                                case FunctionType.Curtain:
+                                case FunctionType.RollerCurtain:
+                                case FunctionType.TrietexCurtain:
+                                //绌鸿皟
+                                case FunctionType.AC:
+                                //鍦扮儹
+                                case FunctionType.FloorHeating:
                                     {//寮�鍏崇伅
                                         foreach (var dic in dicList)
                                         {
-                                            
+
                                             string value = dic["value"];
                                             if (value == "on")
                                             {
@@ -95,8 +107,6 @@
                     int indexVulae = int.Parse(inputView.btnClick.Tag.ToString());
                     //鏍囪缂栬緫鐘舵��
                     bool edit = true;
-                    //琛ㄧず鏄潯浠�
-                    string if_type = LogicMethod.condition_if;
                     switch (button.Name)
                     {
                         case "1":
@@ -126,15 +136,21 @@
                             {
                                 //鐢╯id鎵惧埌璁惧锛�
                                 var device = LogicMethod.GetDevice(inputCondition.sid);
-                                DeviceFunList deviceFunList = new DeviceFunList();
+                                ConditionDeviceFunList deviceFunList = new ConditionDeviceFunList();
                                 MainPage.BasePageView.AddChidren(deviceFunList);
-                                deviceFunList.Show(device, indexVulae,edit, if_type);
+                                deviceFunList.Show(device, indexVulae, edit);
                                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                             }
                             break;
 
-                        
+
                     }
+                };
+                ///鍒犻櫎鎺т欢
+                inputView.btnDel.MouseUpEventHandler += (sender, e) =>
+                {
+                    Logic.currlogic.input.Remove(inputCondition);
+                    inputView.frameLayout.RemoveFromParent();
                 };
             }
 
@@ -152,7 +168,7 @@
                 Output outputTarget = Logic.currlogic.output[i];
                 ///鍚勭鏉′欢鐨刅iew
                 LogicView.AddOutputInputView targetView = new LogicView.AddOutputInputView();
-                viewLayout.AddChidren(targetView.FLayoutView());
+                targetView.FLayoutView(viewLayout);
                 ///璁板綍鏉′欢绫诲瀷
                 targetView.btnClick.Name = outputTarget.target_type;
                 ///璁板綍鏉′欢绱㈠紩
@@ -172,6 +188,8 @@
                             targetView.btnText.Text = device.name;
                             //鏀瑰彉璁惧鍚嶇О鏄剧ず鎺т欢瀹藉害
                             targetView.btnText.Width = Application.GetRealWidth(80);
+                            //绗竴涓彉閲忔樉绀虹姸鎬佸��
+                            string stateStr = "";
                             //鍖哄埆涓嶅悓璁惧锛屾樉绀轰笉鍚岃澶囩姸鎬�
                             switch (device.functionType)
                             {
@@ -183,14 +201,77 @@
                                             string value = dic["value"];
                                             if (value == "on")
                                             {
-                                                targetView.btnState.Text = Language.StringByID(StringId.onLogic);
+                                                stateStr = Language.StringByID(StringId.onLogic);
 
                                             }
                                             else
                                             {
-                                                targetView.btnState.Text = Language.StringByID(StringId.offLogic);
+                                                stateStr = Language.StringByID(StringId.offLogic);
                                             }
                                         }
+                                        targetView.btnState.Text = stateStr;
+                                    }
+                                    break;
+                                case FunctionType.Dimmer:
+                                    {
+                                        bool _if = false;
+                                        foreach (var dic in dicList)
+                                        {
+
+                                            if (dic["key"] == "on_off")
+                                            {
+                                                string value = dic["value"];
+                                                if (value == "on")
+                                                {
+                                                    targetView.btnState.Text = Language.StringByID(StringId.onLogic);
+                                                    _if = false;
+                                                }
+                                                else
+                                                {
+                                                    targetView.btnState.Text = Language.StringByID(StringId.offLogic);
+                                                    _if = true;
+                                                }
+                                            }
+
+                                        }
+                                        foreach (var dic in dicList)
+                                        {
+                                            if (dic["key"] == "brightness")
+                                            {
+                                                string value = dic["value"];
+                                                if (!_if)
+                                                {
+                                                    targetView.btnState.Text += value;
+                                                }
+                                            }
+                                        }
+                                    }
+                                    break;
+                                case FunctionType.Curtain:
+                                    {//寮�鍏崇伅
+                                        foreach (var dic in dicList)
+                                        {
+                                            string value = dic["value"];
+                                            switch (value)
+                                            {
+                                                case "on":
+                                                    {
+                                                        stateStr = Language.StringByID(StringId.onLogic);
+                                                    }
+                                                    break;
+                                                case "off":
+                                                    {
+                                                        stateStr = Language.StringByID(StringId.offLogic);
+                                                    }
+                                                    break;
+                                                case "stop":
+                                                    {
+                                                        stateStr = Language.StringByID(StringId.stop);
+                                                    }
+                                                    break;
+                                            }
+                                        }
+                                        targetView.btnState.Text = stateStr;
                                     }
                                     break;
                             }
@@ -225,17 +306,15 @@
                     int indexVulae = int.Parse(targetView.btnClick.Tag.ToString());
                     //鏍囪缂栬緫鐘舵��
                     bool edit = true;
-                    //琛ㄧず鏄洰鏍�
-                    string if_type = LogicMethod.target_if;
                     switch (button.Name)
                     {
                         case "1":
                             {
                                 //鐢╯id鎵惧埌璁惧锛�
                                 var device = LogicMethod.GetDevice(outputTarget.sid);
-                                DeviceFunList deviceFunList = new DeviceFunList();
+                                TargetDeviceFunList deviceFunList = new TargetDeviceFunList();
                                 MainPage.BasePageView.AddChidren(deviceFunList);
-                                deviceFunList.Show(device, indexVulae, edit, if_type);
+                                deviceFunList.Show(device, indexVulae, edit);
                                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                             }
                             break;
@@ -255,6 +334,12 @@
                             break;
                     }
                 };
+                ///鍒犻櫎鎺т欢
+                targetView.btnDel.MouseUpEventHandler += (sender, e) =>
+                {
+                    Logic.currlogic.output.Remove(outputTarget);
+                    targetView.frameLayout.RemoveFromParent();
+                };
             }
         }
 
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
index 95f9f48..a388ffb 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
@@ -7,6 +7,7 @@
     /// </summary>
     public class Logic
     {
+
         /// <summary>
         /// 閫昏緫鍒楄〃
         /// </summary>
@@ -16,6 +17,10 @@
         /// </summary>
         public static Logic currlogic;
         /// <summary>
+        /// 浜戠鍞竴id
+        /// </summary>
+        public string userLogicId = "";
+        /// <summary>
         /// 閫昏緫鍞竴鏍囪瘑
         /// </summary>
         public string sid = "";
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
index 84d4f9d..1dbe612 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -73,6 +73,54 @@
             }
             return logicId;
         }
+
+        /// <summary>
+        /// 鐢熸垚閫昏緫sid鏂规硶
+        /// </summary>
+        //public static string NewSid()
+        //{
+        //    String sLogicid = "";
+        //    try
+        //    {
+        //        String sOidBeginsWith = "000101";//鍘傚晢 + 閫氳鏂瑰紡
+        //        //鐢熸垚4涓猙yte鏃堕棿鎴�
+        //        DateTime dt = DateTime.Now;
+        //        long sTimeSp = GateWay.ConvertDateTimeLong(dt);
+        //        string sTimeSpan = "";
+        //        GateWay.ConvertIntToByteArray(sTimeSp, ref sTimeSpan);
+        //        if (sTimeSpan.Length != 8) return sLogicid;
+        //        //闂撮殧10姣 閿欏紑鏃堕棿鎴�
+        //        HDLUDP.TimeBetwnNext(10);
+        //        sLogicid = sOidBeginsWith + sTimeSpan;
+        //        //1501 鐗╂ā鍨嬩负鑷姩鍖栵紝 0001 琛ㄧず 1 鍙疯嚜鍔ㄥ寲鍔熻兘
+        //        sLogicid += "15";
+        //        sLogicid += "1501";
+        //        //鑷姩鍖栧彿鑷
+        //        int iTopSceneId = 1;
+        //        if (myGateway.LogicResponse != null)
+        //        {
+        //            if (myGateway.LogicResponse.objects != null)
+        //            {
+        //                for (int i = 0; i < myGateway.LogicResponse.objects.Count; i++)
+        //                {
+        //                    string ccc = myGateway.LogicResponse.objects[i].sid.Substring(myGateway.LogicResponse.objects[i].sid.Length - 8, 4);
+        //                    int iThisSceneId = Convert.ToInt16(myGateway.LogicResponse.objects[i].sid.Substring(myGateway.LogicResponse.objects[i].sid.Length - 8, 4), 16);
+        //                    if (iThisSceneId >= iTopSceneId)
+        //                        iTopSceneId = iThisSceneId + 1;
+        //                }
+        //            }
+        //        }
+        //        sLogicid += iTopSceneId.ToString("X4");//鍦烘櫙鍙� 涓や釜byte 
+        //                                               //澶х被灏忕被娌℃湁鐢ㄥ埌 鍥哄畾涓�0
+        //        sLogicid += "0000";
+        //        return sLogicid;
+        //    }
+        //    catch
+        //    {
+        //        return sLogicid;
+        //    }
+        //}
+
         /// <summary>
         /// 灏佽Dictionary瀵硅薄
         /// </summary>
@@ -123,8 +171,81 @@
         /// <returns></returns>
         public static List<HDL_ON.Entity.Function> GetGatewayDeviceList()
         {
+            List<HDL_ON.Entity.Function> list = new List<Entity.Function>();
+            for (int i=0;i<10;i++) {
+                HDL_ON.Entity.Function function = new Entity.Function();
+                switch (i) {
+                    case 0: {
+                            function.sid = "1234560001212121020182";
+                            function.name ="鐏厜";
+                            list.Add(function);
+                        }
+                        break;
+                    case 1: {
+                          
+                            function.sid = "1234560001212121030182";
+                            function.name = "绐楀笜";
+                            list.Add(function);
+                        } break;
+                    case 2: {
+                            function.sid = "1234560001212121040182";
+                            function.name = "绌鸿皟";
+                            list.Add(function);
+                        } break;
+                    case 3:
+                        {
+                            function.sid = "1234560001212121010282";
+                            function.name = "RGBW";
+                            list.Add(function);
+                        }
+                        break;
+                    case 4:
+                        {
 
-            return HDL_ON.Entity.DB_ResidenceData.functionList.GetAllFunction();
+                            function.sid = "1234560001212121010382";
+                            function.name = "CCT鐏�";
+                            list.Add(function);
+                        }
+                        break;
+                    case 5:
+                        {
+                            function.sid = "1234560001212121010482";
+                            function.name = "寮�鍚堝笜";
+                            list.Add(function);
+                        }
+                        break;
+                    case 6:
+                        {
+                            function.sid = "1234560001212121010582";
+                            function.name = "鍗峰笜";
+                            list.Add(function);
+                        }
+                        break;
+                    case 7:
+                        {
+                            function.sid = "1234560001212121040282";
+                            function.name = "鍦扮儹";
+                            list.Add(function);
+                        }
+                        break;
+                    case 8:
+                        {
+                            function.sid = "1234560001212121020282";
+                            function.name = "璋冨叧";
+                            list.Add(function);
+                        }
+                        break;
+                    case 9:
+                        {
+                            function.sid = "1234560001212121020482";
+                            function.name = "RGB";
+                            list.Add(function);
+                        }
+                        break;
+                }
+            }
+            return list;
+            //return HDL_ON.Entity.DB_ResidenceData.functionList.GetAllFunction();
         }
         /// <summary>
         /// 鑾峰彇缃戝叧鍦烘櫙鍒楄〃
@@ -229,8 +350,29 @@
             switch (functionType)
             {
                 case FunctionType.Relay:
+                case FunctionType.RGB:
+                case FunctionType.RGBW:
+                case FunctionType.CCT:
+                case FunctionType.Dimmer:
                     {
                         strPath = "LogicIcon/lightloguc.png";
+                    }
+                    break;
+                case FunctionType.Curtain:
+                case FunctionType.RollerCurtain:
+                case FunctionType.TrietexCurtain:
+                    {
+                        strPath = "LogicIcon/curtainlogic.png";
+                    }
+                    break;
+                case FunctionType.AC:
+                    {
+                        strPath = "LogicIcon/airconditionerlogic.png";
+                    }
+                    break;
+                case FunctionType.FloorHeating:
+                    {
+                        strPath = "LogicIcon/heatlogic.png";
                     }
                     break;
 
@@ -246,13 +388,13 @@
         {
             List<string> deviceStrTypeList = new List<string>(); 
             deviceStrTypeList.Clear();
-            var lightjosn = deviceList.Find((device) => device.functionType == FunctionType.Relay || device.functionType == FunctionType.Dimmer);
+            var lightjosn = deviceList.Find((device) => device.functionType == FunctionType.Relay || device.functionType == FunctionType.Dimmer|| device.functionType == FunctionType.CCT || device.functionType == FunctionType.RGB|| device.functionType == FunctionType.RGBW);
             if (lightjosn != null)
             {
                 deviceStrTypeList.Add(Language.StringByID(StringId.Lights));
             }
 
-            var curtainjosn = deviceList.Find((device) => device.functionType ==FunctionType.Curtain);
+            var curtainjosn = deviceList.Find((device) => device.functionType ==FunctionType.Curtain|| device.functionType == FunctionType.TrietexCurtain|| device.functionType == FunctionType.RollerCurtain);
             if (curtainjosn != null)
             {
                 deviceStrTypeList.Add(Language.StringByID(StringId.Curtain));
@@ -262,6 +404,11 @@
             if (ac != null)
             {
                 deviceStrTypeList.Add(Language.StringByID(StringId.AC));
+            }
+            var floorHeating = deviceList.Find((device) => device.functionType == FunctionType.FloorHeating);
+            if (ac != null)
+            {
+                deviceStrTypeList.Add(Language.StringByID(StringId.FloorHeating));
             }
             return deviceStrTypeList;
 
@@ -278,10 +425,23 @@
             {
                 functionTypeList.Add(FunctionType.Relay);
                 functionTypeList.Add(FunctionType.Dimmer);
+                functionTypeList.Add(FunctionType.RGB);
+                functionTypeList.Add(FunctionType.RGBW);
+                functionTypeList.Add(FunctionType.CCT);
             }
             else if (deviceType == Language.StringByID(StringId.Curtain))
             {
                 functionTypeList.Add(FunctionType.Curtain);
+                functionTypeList.Add(FunctionType.RollerCurtain);
+                functionTypeList.Add(FunctionType.TrietexCurtain);
+            }
+            else if (deviceType == Language.StringByID(StringId.AC))
+            {
+                functionTypeList.Add(FunctionType.AC);
+            }
+            else if (deviceType == Language.StringByID(StringId.FloorHeating))
+            {
+                functionTypeList.Add(FunctionType.FloorHeating);
             }
             return functionTypeList;
 
@@ -296,11 +456,29 @@
             switch (if_type) {
                 case condition_if: {
                         deviceTypeList.Add(FunctionType.Relay);
+                        deviceTypeList.Add(FunctionType.RGB);
+                        deviceTypeList.Add(FunctionType.RGBW);
+                        deviceTypeList.Add(FunctionType.Dimmer);
+                        deviceTypeList.Add(FunctionType.CCT);
+                        deviceTypeList.Add(FunctionType.Curtain);
+                        deviceTypeList.Add(FunctionType.RollerCurtain);
+                        deviceTypeList.Add(FunctionType.TrietexCurtain);
+                        deviceTypeList.Add(FunctionType.AC);
+                        deviceTypeList.Add(FunctionType.FloorHeating);
                     }
                     break;
                 case target_if:
                     {
                         deviceTypeList.Add(FunctionType.Relay);
+                        deviceTypeList.Add(FunctionType.RGB);
+                        deviceTypeList.Add(FunctionType.RGBW);
+                        deviceTypeList.Add(FunctionType.Dimmer);
+                        deviceTypeList.Add(FunctionType.CCT);
+                        deviceTypeList.Add(FunctionType.Curtain);
+                        deviceTypeList.Add(FunctionType.RollerCurtain);
+                        deviceTypeList.Add(FunctionType.TrietexCurtain);
+                        deviceTypeList.Add(FunctionType.AC);
+                        deviceTypeList.Add(FunctionType.FloorHeating);
                     }
                     break;
             }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/.DS_Store b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/.DS_Store
new file mode 100644
index 0000000..5008ddf
--- /dev/null
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/.DS_Store
Binary files differ
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputView.cs
index 8fae4eb..15586e8 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputView.cs
@@ -7,12 +7,23 @@
         /// <summary>
         /// 涓绘帶浠禫iew
         /// </summary>
-        public FrameLayout frameLayout = new FrameLayout
+        public FrameLayout frameLayout= new FrameLayout
         {
             Height = Application.GetRealHeight(44),
             Width = Application.GetRealWidth(343),
            BackgroundColor= CSS.CSS_Color.view,
             X = Application.GetRealWidth(LogicView.TextSize.left16),
+        };
+
+        /// <summary>
+        /// 涓绘帶浠禫iew
+        /// </summary>
+        public RowLayout rowLayout = new RowLayout
+        {
+            Height = Application.GetRealHeight(43),
+            Width = Application.GetRealWidth(343),
+            LineColor = CSS.CSS_Color.viewTranslucence,
+            SubViewWidth=Application.GetRealWidth(68),
         };
         /// <summary>
         /// 锛堟潯浠舵垨鑰呯洰鏍囷級鍥炬爣
@@ -77,7 +88,16 @@
             BackgroundColor = CSS.CSS_Color.viewLine,
 
         };
-
+        public Button btnDel = new Button
+        {
+            BackgroundColor = CSS.CSS_Color.textRedColor,
+            TextID = StringId.Del,
+            TextSize = LogicView.TextSize.text16,
+            TextColor = CSS.CSS_Color.view,
+            Gravity = Gravity.Center,
+            TextAlignment = TextAlignment.Center,
+        };
+       
         public Button btnClick = new Button
         {
             Height = Application.GetRealHeight(44),
@@ -87,20 +107,24 @@
         /// View鐨勬柟娉�
         /// </summary>
         /// <returns></returns>
-        public FrameLayout FLayoutView()
+        public void FLayoutView(VerticalScrolViewLayout verticalScrolView)
         {
+            verticalScrolView.AddChidren(frameLayout);
+            frameLayout.AddChidren(rowLayout);
             btnIcon.Gravity = Gravity.CenterVertical;
             btnText.Gravity = Gravity.CenterVertical;
             btnText.TextAlignment = TextAlignment.CenterLeft;
             btnNextIcon.Gravity = Gravity.CenterVertical;
-            frameLayout.AddChidren(btnIcon);
-            frameLayout.AddChidren(btnText);
-            frameLayout.AddChidren(btnState);
-            frameLayout.AddChidren(btnNextIcon);
+            rowLayout.AddChidren(btnIcon);
+            rowLayout.AddChidren(btnText);
+            rowLayout.AddChidren(btnState);
+            rowLayout.AddChidren(btnNextIcon);
+            rowLayout.AddRightView(btnDel);
+            rowLayout.AddChidren(btnClick);
             btnLine.Y = frameLayout.Height - 1;
             frameLayout.AddChidren(btnLine);
-            frameLayout.AddChidren(btnClick);
-            return frameLayout;
+
         }
+      
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/ConfirmPopView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/ConfirmPopView.cs
deleted file mode 100644
index b27bab0..0000000
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/ConfirmPopView.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-锘縰sing System;
-namespace HDL_ON.UI.UI2.Intelligence.Automation.LogicView
-{
-    public class ConfirmPopView
-    {
-        public ConfirmPopView()
-        {
-        }
-    }
-}
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/EditPopView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/EditPopView.cs
deleted file mode 100644
index febed1c..0000000
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/EditPopView.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-锘縰sing System;
-namespace HDL_ON.UI.UI2.Intelligence.Automation.LogicView
-{
-    public class EditPopView
-    {
-        public EditPopView()
-        {
-        }
-    }
-}
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/FunTypeView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/FunTypeView.cs
new file mode 100644
index 0000000..4422b6d
--- /dev/null
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/FunTypeView.cs
@@ -0,0 +1,88 @@
+锘縰sing System;
+using Shared;
+namespace HDL_ON.UI.UI2.Intelligence.Automation.LogicView
+{
+    public class FunTypeView
+    {
+        /// <summary>
+        /// 涓绘帶浠禫iew
+        /// </summary>
+        public FrameLayout frameLayout = new FrameLayout
+        {
+            Height = Application.GetRealHeight(50),
+            BackgroundColor = CSS.CSS_Color.view,
+        };
+      
+        /// <summary>
+        /// 鏂囨湰鎻忚堪
+        /// </summary>
+        public Button btnText = new Button
+        {
+            TextSize = TextSize.text16,
+            Width = Application.GetRealWidth(130),
+            Height = Application.GetRealHeight(22),
+            TextColor = CSS.CSS_Color.textColor,
+            //Y=Application.GetRealHeight(12),
+            X = Application.GetRealWidth(16),
+            Gravity = Gravity.CenterVertical,
+            TextAlignment = TextAlignment.CenterLeft,
+        };
+       
+        /// <summary>
+        /// 锛堟潯浠舵垨鑰呯洰鏍囷級璁惧鐘舵�佹枃鏈弿杩�
+        /// </summary>
+        public Button btnState = new Button
+        {
+            TextSize = TextSize.text12,
+            Width = Application.GetRealWidth(130),
+            Height = Application.GetRealHeight(17),
+            TextColor = CSS.CSS_Color.textCancelColor,
+            Y = Application.GetRealHeight(17),
+            X = Application.GetRealWidth(375 - 48 - 130),
+            TextAlignment = TextAlignment.CenterRight,
+            Text="",
+        };
+        /// <summary>
+        /// 鍥炬爣
+        /// </summary>
+        public Button btnNextIcon = new Button
+        {
+            Width = Application.GetMinRealAverage(16),
+            Height = Application.GetMinRealAverage(16),
+            UnSelectedImagePath = "LogicIcon/next.png",
+            X = Application.GetRealWidth(339),
+        };
+
+        /// <summary>
+        /// 绾�
+        /// </summary>
+        public Button btnLine = new Button
+        {
+            Width = Application.GetRealWidth(343),
+            X = Application.GetRealWidth(16),
+            Height = 1,
+            BackgroundColor = CSS.CSS_Color.viewLine,
+
+        };
+
+        public Button btnClick = new Button
+        {
+            Height = Application.GetRealHeight(50),
+        };
+        /// <summary>
+        /// View鐨勬柟娉�
+        /// </summary>
+        /// <returns></returns>
+        public FrameLayout FLayoutView()
+        {
+            btnNextIcon.Gravity = Gravity.CenterVertical;
+            frameLayout.AddChidren(btnText);
+            frameLayout.AddChidren(btnState);
+            frameLayout.AddChidren(btnNextIcon);
+            btnLine.Y = frameLayout.Height - 1;
+            frameLayout.AddChidren(btnLine);
+            frameLayout.AddChidren(btnClick);
+            return frameLayout;
+        }
+    }
+}
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/LogicTypeTitleView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/LogicTypeTitleView.cs
index 6870204..2e008e0 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/LogicTypeTitleView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/LogicTypeTitleView.cs
@@ -66,7 +66,7 @@
         /// <returns></returns>
         public FrameLayout FLayoutView()
         {
-            btnText.TextAlignment = TextAlignment.BottomLeft;
+            btnText.TextAlignment = TextAlignment.CenterLeft;
             btnNextIcon.Gravity = Gravity.CenterVertical;
             frameLayout.AddChidren(btnText);
             frameLayout.AddChidren(btnNextIcon);
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/ModeView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/ModeView.cs
new file mode 100644
index 0000000..0a33145
--- /dev/null
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/ModeView.cs
@@ -0,0 +1,130 @@
+锘縰sing System;
+using Shared;
+using System.Collections.Generic;
+namespace HDL_ON.UI.UI2.Intelligence.Automation.LogicView
+{
+    public class ModeView
+    {
+        /// <summary>
+        /// 涓绘帶浠禫iew
+        /// </summary>
+        public FrameLayout frameLayout = new FrameLayout
+        {
+            Height = Application.GetRealHeight(50),
+            BackgroundColor = CSS.CSS_Color.view,
+        };
+
+        /// <summary>
+        /// 鏂囨湰鎻忚堪
+        /// </summary>
+        public Button btnText = new Button
+        {
+            TextSize = TextSize.text14,
+            Width = Application.GetRealWidth(130),
+            Height = Application.GetRealHeight(20),
+            TextColor = CSS.CSS_Color.textColor,
+            X = Application.GetRealWidth(20),
+            Gravity = Gravity.CenterVertical,
+            TextAlignment = TextAlignment.CenterLeft,
+        };
+
+        /// <summary>
+        /// 鍥炬爣
+        /// </summary>
+        public Button btnClickIcon = new Button
+        {
+            X = Application.GetRealWidth(303),
+            Width = Application.GetMinRealAverage(28),
+            Height = Application.GetMinRealAverage(28),
+            UnSelectedImagePath = "LogicIcon/weekoff.png",
+            SelectedImagePath = "LogicIcon/weekon.png",
+            Gravity = Gravity.CenterVertical,
+        };
+
+        /// <summary>
+        /// 绾�
+        /// </summary>
+        public Button btnLine = new Button
+        {
+            Width = Application.GetRealWidth(343),
+            X = Application.GetRealWidth(16),
+            Height = 1,
+            BackgroundColor = CSS.CSS_Color.viewLine,
+
+        };
+
+        public Button btnClick = new Button
+        {
+            Height = Application.GetRealHeight(50),
+        };
+        /// <summary>
+        /// View鐨勬柟娉�
+        /// </summary>
+        /// <param name="fLayout"></param>
+        /// <param name="list"></param>
+        public void FLayoutView(FrameLayout fLayout, List<string> list)
+        {
+            /// 涓绘帶浠�
+            FrameLayout frameLayout1 = new FrameLayout
+            {
+                Y = Application.GetRealHeight(460),
+                Height = Application.GetRealHeight(56 + 150),
+                Width = Application.GetRealWidth(343),
+                X = Application.GetRealWidth(16),
+                BackgroundColor = CSS.CSS_Color.view,
+                Radius = (uint)Application.GetRealHeight(12),
+            };
+            /// 鏍囬Btn
+            Button btnTitle = new Button
+            {
+                TextID = StringId.timeHorizon,
+                TextSize = TextSize.text16,
+                TextColor = CSS.CSS_Color.textColor,
+                IsBold = true,
+                Width = Application.GetRealWidth(343 - (52 + 4 + 10) * 2),
+                Height = Application.GetRealHeight(22),
+                Y = Application.GetRealHeight(17),
+                X = Application.GetRealWidth(52 + 4 + 10)
+            };
+            /// 鍙栨秷Btn
+            Button btnCancel = new Button
+            {
+                TextID = StringId.cancelSelected,
+                TextSize = TextSize.text14,
+                TextColor = CSS.CSS_Color.textCancelColor,
+                Width = Application.GetRealWidth(52),
+                Height = Application.GetRealHeight(32),
+                Y = Application.GetRealHeight(10),
+                X = Application.GetRealWidth(4)
+            };
+            /// 纭畾Btn
+            Button btnConfirm = new Button
+            {
+                TextID = StringId.confirmSelected,
+                TextSize = TextSize.text14,
+                TextColor = CSS.CSS_Color.textConfirmColor,
+                Width = Application.GetRealWidth(52),
+                Height = Application.GetRealHeight(32),
+                X = Application.GetRealWidth(343 - 4 - 52),
+                Y = Application.GetRealHeight(10),
+            };
+            fLayout.AddChidren(frameLayout);
+            frameLayout1.Y = Application.GetRealHeight(667 - 20 - 56 - 50 * list.Count);
+            frameLayout1.Height = Application.GetRealHeight(56 + 50 * list.Count);
+            frameLayout1.AddChidren(btnTitle);
+            frameLayout1.AddChidren(btnCancel);
+            frameLayout1.AddChidren(btnConfirm);
+            for (int j = 0; j < list.Count; j++)
+            {
+                frameLayout.Y = Application.GetRealHeight(56 + 50 * j);
+                frameLayout1.AddChidren(frameLayout);
+                frameLayout.AddChidren(btnText);
+                frameLayout.AddChidren(btnClickIcon);
+                btnLine.Y = frameLayout.Height - 1;
+                frameLayout.AddChidren(btnLine);
+                frameLayout.AddChidren(btnClick);
+                btnClick.Tag = list[j];
+            }
+        }
+    }
+}
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SelectTypeView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SelectTypeView.cs
index dc9ea5c..8e33c87 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SelectTypeView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SelectTypeView.cs
@@ -120,6 +120,7 @@
             btnText.Gravity = Gravity.CenterVertical;
             btnText.TextAlignment = TextAlignment.CenterLeft;
             btnNextIcon.Gravity = Gravity.CenterVertical;
+            btnDeviceName.Gravity= Gravity.CenterVertical;
             frameLayout.AddChidren(btnIcon);
             frameLayout.AddChidren(btnText);
             frameLayout.AddChidren(btnDeviceName);
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SingleLogicView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SingleLogicView.cs
index 32f8898..1356c70 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SingleLogicView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SingleLogicView.cs
@@ -10,7 +10,7 @@
         public FrameLayout frameLayout = new FrameLayout
         {
             X = Application.GetRealWidth(16),
-            Y = Application.GetRealHeight(12),
+            //Y = Application.GetRealHeight(12),
             Width = Application.GetRealWidth(343),
             Height = Application.GetRealHeight(102),
             BackgroundColor = CSS.CSS_Color.view,
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SwitchView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SwitchView.cs
index 881aa54..df964b6 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SwitchView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SwitchView.cs
@@ -13,9 +13,9 @@
             BackgroundColor = CSS.CSS_Color.view,
             Y = Application.GetRealHeight(515),
             X = Application.GetRealWidth(16),
-            Height = Application.GetRealHeight(44*44),
+            Height = Application.GetRealHeight(44 * 44),
             Width = Application.GetRealWidth(343),
-            Radius=(uint)Application.GetRealHeight(12)
+            Radius = (uint)Application.GetRealHeight(12)
         };
         /// <summary>
         /// 鍙栨秷
@@ -25,7 +25,7 @@
             TextAlignment = TextAlignment.Center,
             TextSize = TextSize.text16,
             TextColor = CSS.CSS_Color.textRedColor,
-            TextID=StringId.cancelSelected,
+            TextID = StringId.cancelSelected,
             Y = Application.GetRealHeight(611),
             X = Application.GetRealWidth(16),
             Height = Application.GetRealHeight(44),
@@ -34,17 +34,84 @@
             Radius = (uint)Application.GetRealHeight(12)
         };
         /// <summary>
+        /// 寮�
+        /// </summary>
+        public Button btnOn = new Button
+        {
+            TextAlignment = TextAlignment.Center,
+            TextSize = LogicView.TextSize.text16,
+            TextColor = CSS.CSS_Color.textCancelColor,
+            TextID = StringId.onLogic,
+            Height = Application.GetRealHeight(44),
+            Width = Application.GetRealWidth(343),
+
+        };
+        /// <summary>
+        /// 绾�
+        /// </summary>
+        public Button btnLine = new Button
+        {
+            Height = 1,
+            BackgroundColor = CSS.CSS_Color.viewLine,
+            Y = Application.GetRealHeight(43),
+        };
+        /// <summary>
+        /// 鍏�
+        /// </summary>
+        public Button btnOff = new Button
+        {
+            Y = Application.GetRealHeight(44),
+            TextAlignment = TextAlignment.Center,
+            TextSize = LogicView.TextSize.text16,
+            TextColor = CSS.CSS_Color.textCancelColor,
+            TextID = StringId.offLogic,
+            Height = Application.GetRealHeight(44),
+            Width = Application.GetRealWidth(343),
+        };
+        /// <summary>
+        /// 绾�1
+        /// </summary>
+        public Button btnLine1 = new Button
+        {
+            Height = 1,
+            BackgroundColor = CSS.CSS_Color.viewLine,
+            Y = Application.GetRealHeight(43 + 44),
+        };
+        /// <summary>
+        /// 鏆傚仠
+        /// </summary>
+        public Button btnStop = new Button
+        {
+            Y = Application.GetRealHeight(44 + 44),
+            TextAlignment = TextAlignment.Center,
+            TextSize = LogicView.TextSize.text16,
+            TextColor = CSS.CSS_Color.textCancelColor,
+            TextID = StringId.stop,
+            Height = Application.GetRealHeight(44),
+            Width = Application.GetRealWidth(343),
+        };
+
+        /// <summary>
         /// View鐨勬柟娉�
         /// </summary>
         ///  <param name="frame">鐖舵帶浠�</param>
-        /// <param name="i">鏄剧ずView鏁伴噺</param>
+        /// <param name="i">鏄剧ず閫夋嫨View鏁伴噺</param>
         /// <returns></returns>
-        public void FLayoutView(FrameLayout frame,int i)
+        public void FLayoutView(FrameLayout frame, int i)
         {
             frameLayout.Y = Application.GetRealHeight(603 - (44 * i));
             frameLayout.Height = Application.GetRealHeight(44 * i);
             frame.AddChidren(frameLayout);
             frame.AddChidren(btnCancel);
+            frameLayout.AddChidren(btnOn);
+            frameLayout.AddChidren(btnLine);
+            frameLayout.AddChidren(btnOff);
+            if (i > 2)
+            {
+                /// 鍒ゆ柇鏄惁瑕佹槸鏄剧ず"鏆傚仠"鎸夐挳
+                frameLayout.AddChidren(btnLine1);
+                frameLayout.AddChidren(btnStop);
+            }
             btnCancel.MouseUpEventHandler += (sender1, e1) =>
             {
                 frame.RemoveFromParent();
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TipPopView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TipPopView.cs
index 9603b0c..54fb5ad 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TipPopView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TipPopView.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
+using System.Threading;
 using HDL_ON.UI.CSS;
 using Shared;
 
@@ -52,7 +53,7 @@
                 X = Application.GetRealWidth(35),
                 Height = Application.GetRealHeight(22),
                 Width = Application.GetRealWidth(200),
-                TextColor =CSS_Color.textConfirmColor,
+                TextColor = CSS_Color.textConfirmColor,
                 TextSize = TextSize.text16,
                 TextAlignment = TextAlignment.Center,
                 TextID = titleId,
@@ -116,7 +117,7 @@
                 Width = Application.GetRealWidth(135),
                 Height = Application.GetRealHeight(44),
                 TextAlignment = TextAlignment.Center,
-                TextColor =CSS_Color.textTipColor,
+                TextColor = CSS_Color.textTipColor,
                 TextSize = TextSize.text16,
                 TextID = StringId.cancelMusic,
                 Gravity = Gravity.BottomLeft,
@@ -401,7 +402,7 @@
                 X = Application.GetRealWidth(20),
                 Height = Application.GetRealHeight(22),
                 Width = Application.GetRealWidth(270 - 20 * 2),
-                TextColor =CSS_Color.textTipColor,
+                TextColor = CSS_Color.textTipColor,
                 TextSize = TextSize.text12,
                 TextAlignment = TextAlignment.Center,
                 TextID = tipTxet,
@@ -423,7 +424,7 @@
                 Width = Application.GetRealWidth(135),
                 Height = Application.GetRealHeight(44),
                 TextAlignment = TextAlignment.Center,
-                TextColor =CSS_Color.textTipColor,
+                TextColor = CSS_Color.textTipColor,
                 TextSize = TextSize.text16,
                 TextID = StringId.cancelMusic,
                 Gravity = Gravity.BottomLeft,
@@ -565,5 +566,14 @@
             };
 
         }
+
+        /// <summary>
+        /// 淇℃伅鎻愮ず绐楀彛锛岃嚜鍔ㄥ叧闂�
+        /// </summary>
+        /// <param name="msg">鎻愮ず閿欒鏂囨湰</param>
+        public void FlashingBox(string msg)
+        {
+            new PublicAssmebly().TipMsgAutoClose(msg, false, 2000);
+        }
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/brightnessView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/brightnessView.cs
new file mode 100644
index 0000000..69e89d1
--- /dev/null
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/brightnessView.cs
@@ -0,0 +1,143 @@
+锘縰sing System;
+using Shared;
+namespace HDL_ON.UI.UI2.Intelligence.Automation.LogicView
+{
+    public class BrightnessView
+    {
+        /// <summary>
+        /// 涓绘帶浠�
+        /// </summary>
+        public FrameLayout frameLayout = new FrameLayout
+        {
+            Y = Application.GetRealHeight(467),
+            Height = Application.GetRealHeight(56 + 124),
+            Width = Application.GetRealWidth(343),
+            X = Application.GetRealWidth(16),
+            BackgroundColor = CSS.CSS_Color.view,
+            Radius = (uint)Application.GetRealHeight(12),
+        };
+        /// <summary>
+        /// 鏍囬Btn
+        /// </summary>
+        public Button btnTitle = new Button
+        {
+            TextID = StringId.timeHorizon,
+            TextSize = TextSize.text16,
+            TextColor = CSS.CSS_Color.textColor,
+            IsBold = true,
+            Width = Application.GetRealWidth(343 - (52 + 4 + 10) * 2),
+            Height = Application.GetRealHeight(22),
+            Y = Application.GetRealHeight(17),
+            X = Application.GetRealWidth(52 + 4 + 10)
+        };
+        /// <summary>
+        /// 鍙栨秷Btn
+        /// </summary>
+        public Button btnCancel = new Button
+        {
+            TextID = StringId.cancelSelected,
+            TextSize = TextSize.text14,
+            TextColor = CSS.CSS_Color.textCancelColor,
+            Width = Application.GetRealWidth(52),
+            Height = Application.GetRealHeight(32),
+            Y = Application.GetRealHeight(10),
+            X = Application.GetRealWidth(4)
+        };
+        /// <summary>
+        /// 纭畾Btn
+        /// </summary>
+        public Button btnConfirm = new Button
+        {
+            TextID = StringId.confirmSelected,
+            TextSize = TextSize.text14,
+            TextColor = CSS.CSS_Color.textConfirmColor,
+            Width = Application.GetRealWidth(52),
+            Height = Application.GetRealHeight(32),
+            X = Application.GetRealWidth(343 - 4 - 52),
+            Y = Application.GetRealHeight(10),
+        };
+        /// <summary>
+        /// 鍥炬爣-
+        /// </summary>
+        public Button btn_subtract = new Button
+        {
+            Width = Application.GetMinRealAverage(24),
+            Height = Application.GetMinRealAverage(24),
+            X = Application.GetRealWidth(26),
+            Y = Application.GetRealHeight(118),
+            UnSelectedImagePath = "LogicIcon/-.png",
+        };
+        /// <summary>
+        /// 鍥炬爣-鎵╁ぇ鐑敭
+        /// </summary>
+        public Button btn_subtract_click = new Button
+        {
+            Width = Application.GetMinRealAverage(24+20),
+            Height = Application.GetMinRealAverage(24),
+            X = Application.GetRealWidth(26-20),
+            Y = Application.GetRealHeight(118),
+
+        };
+        public DiyImageSeekBar seekBarVol = new DiyImageSeekBar
+        {
+            Y = Application.GetRealHeight(103),//杩涘害鏉$埗鎺т欢Y鍧愭爣
+            X = Application.GetRealWidth(62-10),//杩涘害鏉鍧愭爣
+            SeekBarPadding=Application.GetRealHeight(10),//杩涘害鏉″疄闄呴暱搴�=244-10*2(鍐呰竟璺�);
+            Width = Application.GetRealWidth(240),//杩涘害鏉$殑闀垮害
+            Height = Application.GetRealHeight(54),//杩涘害鏉$埗鎺т欢楂樺害
+            IsProgressTextShow = true,//鏄剧ず鐧惧垎姣�
+            IsClickable = true,//杩涘害鏉℃槸鍚︽粦鍔�
+            ProgressBarColor =CSS.CSS_Color.textConfirmColor,//閫変腑杩涘害鏉¢鑹�
+            ThumbImagePath = "LogicIcon/point.png",//杩涘害鏉℃寜閽浘鏍�
+            ThumbImageHeight = Application.GetRealHeight(54),//杩涘害鏉℃寜閽浘鏍囩殑楂樺害锛堥粯璁ゆ鏂瑰舰锛氬鍜岄珮涓�鏍凤級
+            ProgressTextColor = CSS.CSS_Color.textColor,
+            ProgressTextSize = 10,//鏄剧ず鐧惧垎姣斿瓧浣撳ぇ灏�
+            SeekBarViewHeight = Application.GetRealHeight(8),//杩涘害鏉$殑楂樺害
+        };
+        /// <summary>
+        /// 鍥炬爣+
+        /// </summary>
+        public Button btn_add = new Button
+        {
+            Width = Application.GetMinRealAverage(24),
+            Height = Application.GetMinRealAverage(24),
+            X = Application.GetRealWidth(294),
+            Y = Application.GetRealHeight(118),
+            UnSelectedImagePath = "LogicIcon/+.png",
+
+        };
+        /// <summary>
+        /// 鍥炬爣+鎵╁ぇ鐑敭
+        /// </summary>
+        public Button btn_add_click = new Button
+        {
+            Width = Application.GetMinRealAverage(24+20),
+            Height = Application.GetMinRealAverage(24),
+            X = Application.GetRealWidth(294),
+            Y = Application.GetRealHeight(118),
+        };
+        /// <summary>
+        /// View鐨勬柟娉�
+        /// </summary>
+        /// <param name="fLayout"></param>
+        public void FLayoutView(FrameLayout fLayout)
+        {
+            fLayout.AddChidren(frameLayout);
+            frameLayout.AddChidren(btnTitle);
+            frameLayout.AddChidren(btnCancel);
+            frameLayout.AddChidren(btnConfirm);
+            frameLayout.AddChidren(btn_subtract);
+            frameLayout.AddChidren(btn_subtract_click);
+            frameLayout.AddChidren(seekBarVol);
+            frameLayout.AddChidren(btn_add);
+            frameLayout.AddChidren(btn_add_click);
+            //鍙栨秷鐐瑰嚮浜嬩欢
+            btnCancel.MouseUpEventHandler += (sender, e1) =>
+            {
+                //绉婚櫎fLayout鐣岄潰
+                fLayout.RemoveFromParent();
+            };
+
+        }
+    }
+}
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
index ecfd441..2025a0a 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
@@ -2,6 +2,8 @@
 using HDL_ON.UI.UI2.Intelligence.Automation.LogicView;
 using Shared;
 using System.Collections.Generic;
+using Newtonsoft.Json.Linq;
+
 namespace HDL_ON.UI.UI2.Intelligence.Automation
 {
     public class MainView
@@ -16,9 +18,23 @@
         public static void MainShow()
         {
             automationPage.RemoveAll();
-            VerticalScrolViewLayout vv = new VerticalScrolViewLayout();
+            VerticalRefreshLayout vv = new VerticalRefreshLayout();
+            vv.Height = Application.GetRealHeight(667 - 64 - 49);//妯℃嫙楂樺害
             automationPage.AddChidren(vv);
-
+            vv.BeginHeaderRefreshingAction += () =>
+            {
+                //娓呴櫎涔嬪墠鑷姩鍖栧垪琛�;
+                Logic.LogicList.Clear();
+                //鑾峰彇鑷姩鍒楄〃
+                GetLogicList();
+                //鍒锋柊鑷姩鍖栫晫闈�
+                MainShow();
+                //鍏抽棴鍒锋柊View锛�
+                vv.EndHeaderRefreshing();
+            };
+            //鑾峰彇鑷姩鍖栧垪琛�
+            GetLogicList();
+            // for (int i = Logic.LogicList.Count-1; i >= 0; i--)闄嶅簭鎺掑垪
             for (int i = 0; i < Logic.LogicList.Count; i++)
             {
                 var currLogic = Logic.LogicList[i];
@@ -42,12 +58,24 @@
                     if (logicView.btnSwitchIcon.IsSelected)
                     {
                         logicView.btnSwitchIcon.IsSelected = true;
+                        currLogic.enable = "true";
+
+
                     }
                     else
                     {
                         logicView.btnSwitchIcon.IsSelected = false;
+                        currLogic.enable = "false";
                     }
+                    Send.switchLogic(currLogic);
+
                 };
+                //if (i==0)闄嶅簭鎺掑垪
+                if (Logic.LogicList.Count - 1 == i)
+                {
+                    ///鏈�鍚庝竴涓窛绂绘渶搴曢儴12,鐣岄潰鏄剧ず鏁堟灉浣滅敤;
+                    vv.AddChidren(new FrameLayout { Height = Application.GetRealHeight(12) });
+                }
                 if (currLogic.enable == "true")
                 {
                     logicView.btnSwitchIcon.IsSelected = true;
@@ -189,5 +217,93 @@
             }
             return monTextName.TrimEnd(',');
         }
+        /// <summary>
+        /// 鑾峰彇閫昏緫鍒楄〃
+        /// </summary>
+        private static void GetLogicList()
+        {
+
+            if (Logic.LogicList.Count != 0)
+            {
+                //鑷姩鍖栧垪琛ㄤ负0鎵嶅幓鑾峰彇鑷姩鍖栧垪琛紱
+                return;
+            }
+            List<string> logicIdList = new List<string>();
+            //鑾峰彇閫昏緫ID鍒楄〃
+            var idStr = Send.getLogicIdList();
+            if (idStr.Code == "0" && idStr.Data != null)
+            {
+                var date = Newtonsoft.Json.JsonConvert.SerializeObject(idStr.Data);
+                var dateList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Date>>(date);
+                for (int i = 0; i < dateList.Count; i++)
+                {
+                    //娣诲姞閫昏緫ID
+                    logicIdList.Add(dateList[i].userLogicId);
+                }
+            }
+            //鑾峰彇鑷姩鍖栧垪琛�
+            var logicStr = Send.getLogic(logicIdList);
+            if (logicStr.Code == "0" && logicStr.Data != null)
+            {
+                //鑾峰彇閫昏緫璇︾粏杩斿洖鏄竴涓暟缁�(object绫诲瀷杞崲涓烘暟缁�);
+                var jArray = JArray.Parse(logicStr.Data.ToString());
+                for (int a = 0; a < jArray.Count; a++)
+                {
+                    var jay = jArray[a];
+                    //鏁版嵁杩斿簭鍒楀寲涓篖ogic瀵硅薄
+                    var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay);
+                    var logic = Newtonsoft.Json.JsonConvert.DeserializeObject<Logic>(str);
+                    if (logic != null)
+                    {
+                        //鏌ユ壘鏄惁宸茬粡瀛樺湪璇ラ�昏緫
+                        var if_logic = Logic.LogicList.Find((c) => c.userLogicId == logic.userLogicId);
+                        if (if_logic == null)
+                        {
+                            //娣诲姞閫昏緫
+                            Logic.LogicList.Add(logic);
+                        }
+                    }
+
+                }
+            }
+
+        }
+        /// <summary>
+        /// 鍒ゆ柇JObject瀵硅薄鏄瓨鍦ㄥ仴鍊�
+        /// </summary>
+        /// <param name="jObject"></param>
+        /// <param name="key"></param>
+        /// <returns></returns>
+        private bool Exist(JObject jObject, string key)
+        {
+
+            if (jObject.Property(key) != null)
+            {
+                return true;
+            }
+            return false;
+        }
+    }
+    class Date
+    {
+        /// <summary>
+        /// 浜戠鍞竴id
+        /// </summary>
+        public string userLogicId = "";
+        public string gatewayId = "";
+        /// <summary>
+        /// 閫昏緫鍞竴鏍囪瘑
+        /// </summary>
+        public string sid = "";
+        public string name = "";
+        public string enable = "";
+        //public CycleA cycle;
+        //public string modifyTime = "";
+    }
+
+    class CycleA
+    {
+        public string type = "";
+        public string[] value;
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
index 6f61531..5807ebf 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -7,7 +7,7 @@
 
 namespace HDL_ON.UI.UI2.Intelligence.Automation
 {
-    public class Send
+    public  class Send
     {
         ///// <summary>
         ///// 浣忓畢ID
@@ -21,11 +21,12 @@
         /// <summary>
         /// 浣忓畢ID
         /// </summary>
-        public static string homeId = "1333681497069043713";
+        public static string homeId = "1333723044544233473";
         /// <summary>
         /// 缃戝叧ID
         /// </summary>
-        public static string gatewayId = "1333682616549752834";
+        public static string gatewayId = "1333723647223775233";
+
         /// <summary>
         /// 鑾峰彇閫昏緫ID鍒楄〃
         /// </summary>
@@ -39,11 +40,15 @@
         /// <summary>
         /// 鑾峰彇閫昏緫
         /// </summary>
+        /// <param name="listIdList">閫昏緫ID鍒楄〃</param>
         /// <returns></returns>
-        public static ResponsePackNew getLogic(Logic logic)
+        public static ResponsePackNew getLogic(List<string> listIdList)
         {
             var jArray = new JArray { };
-            jArray.Add(logic.sid);
+            for (int i = 0; i < listIdList.Count; i++)
+            {
+                jArray.Add(listIdList[i]);
+            }
             var jObject = new JObject { { "userLogicIds", jArray } };
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Info);
             return responsePackNew;
@@ -129,7 +134,6 @@
 
             return responsePackNew;
         }
-
         /// <summary>
         /// 缂栬緫鏇存柊閫昏緫
         /// </summary>
@@ -190,6 +194,7 @@
 
                 var logicjArray = new JArray { };
                 var logicIfon = new JObject { };
+                logicIfon.Add("userLogicId", logic.userLogicId);
                 logicIfon.Add("sid", logic.sid);
                 logicIfon.Add("gatewayId", gatewayId);
                 logicIfon.Add("name", logic.name);
@@ -218,7 +223,7 @@
         public static ResponsePackNew delLogic(Logic logic)
         {
             var jArray = new JArray { };
-            jArray.Add(logic.sid);
+            jArray.Add(logic.userLogicId);
             var jObject = new JObject { { "userLogicIds", jArray } };
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Delete);
             return responsePackNew;
@@ -229,9 +234,8 @@
         /// <returns></returns>
         public static ResponsePackNew switchLogic(Logic logic)
         {
-            logic.enable ="false";
             var jArray = new JArray { };
-            var job = new JObject { { "userLogicId", logic.sid } , { "enable", logic.enable } };
+            var job = new JObject { { "userLogicId", logic.userLogicId } , { "enable", logic.enable } };
             jArray.Add(job);
             var jObject = new JObject { { "logics", jArray } };
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Enable);
@@ -247,7 +251,6 @@
             return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout);
 
         }
-
         /// <summary>
         /// 璇锋眰鏈嶅姟鍣�
         /// </summary>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Set.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Set.cs
index 94c4318..bb62490 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Set.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Set.cs
@@ -98,10 +98,18 @@
 
                 new LogicView.TipPopView().TipBox(StringId.tip, StringId.delAutomation, () =>
                 {
-                    LogicMethod.RemoveAllView();
-                    Logic.LogicList.Remove(Logic.currlogic);
-                    MainView.MainShow();
-                    //鍙戦�佸垹闄ら�昏緫鍛戒护锛�
+                  var responsePackNew=  Send.delLogic(Logic.currlogic);
+                    if (responsePackNew.Code == "0")
+                    {
+                        LogicMethod.RemoveAllView();
+                        Logic.LogicList.Remove(Logic.currlogic);
+                        MainView.MainShow();
+                        //鍙戦�佸垹闄ら�昏緫鍛戒护锛�
+                    }
+                    else
+                    {
+                        new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.delFail));
+                    }
                 });
 
             };
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
new file mode 100644
index 0000000..c706c8c
--- /dev/null
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
@@ -0,0 +1,579 @@
+锘縰sing System;
+using Shared;
+using System.Collections.Generic;
+namespace HDL_ON.UI.UI2.Intelligence.Automation
+{
+    public class TargetDeviceFunList : FrameLayout
+    {
+        public TargetDeviceFunList()
+        {
+            Tag = "Logic";
+        }
+        /// <summary>
+        /// 瀹氫箟涓�涓褰曢�変腑璁惧鐘舵�佸垪琛紱
+        /// </summary>
+        private List<Dictionary<string, string>> dicSateteList = new List<Dictionary<string, string>>();
+        /// <summary>
+        /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵��
+        /// </summary>
+        private string selectedState = "unknown";
+        public void Show(Entity.Function device, int index, bool edit)
+        {
+            #region 鐣岄潰甯冨眬
+            this.BackgroundColor = CSS.CSS_Color.viewMiddle;
+            LogicView.TopView topView = new LogicView.TopView();
+            this.AddChidren(topView.FLayoutView());
+            topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
+            {
+                RemoveFromParent();
+            };
+            topView.topNameBtn.Text = device.name;
+
+            FrameLayout fLayout = new FrameLayout
+            {
+                Y = Application.GetRealHeight(64),
+                Height = Application.GetRealHeight(667 - 64),
+            };
+            this.AddChidren(fLayout);
+
+            ///淇濆瓨View
+            LogicView.SaveView saveView = new LogicView.SaveView();
+            saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
+            saveView.btnSave.TextID = StringId.completeLogic;
+            this.AddChidren(saveView.FLayoutView());
+            #endregion
+            #region  缂栬緫璁惧鐘舵��
+            switch (device.functionType)
+            {
+                //寮�鍏崇伅鍏� light.Switch
+                case FunctionType.Dimmer:
+                case FunctionType.RGB:
+                case FunctionType.RGBW:
+                case FunctionType.CCT:
+                    {
+                        //2琛ㄧず(寮�锛屽叧)鍔熻兘
+                        SwitchBrightnessView(fLayout, device, index, edit,2);
+                    }
+                    break;
+                case FunctionType.Relay:
+                    {
+                        //2琛ㄧず(寮�锛屽叧)鍔熻兘
+                        SwitchView(fLayout, device, index, edit, 2);
+                    }
+                    break;
+                //绐楀笜
+                case FunctionType.Curtain:
+                    {
+                        //3琛ㄧず(寮�锛屽叧锛屾殏鍋�)鍔熻兘
+                        SwitchView(fLayout, device, index, edit, 3);
+                    }
+                    break;
+                case FunctionType.TrietexCurtain:
+                case FunctionType.RollerCurtain:
+                    {
+                        //3琛ㄧず(寮�锛屽叧锛屾殏鍋�)鍔熻兘
+                        SwitchBrightnessView(fLayout, device, index, edit, 3);
+                    }
+                    break;
+                case FunctionType.AC: {
+                        #region 鐣岄潰
+                        ///寮�鍏�
+                        LogicView.FunTypeView curtainSwitchView = new LogicView.FunTypeView();
+                        curtainSwitchView.btnText.TextID = StringId.switchLogic;
+                        fLayout.AddChidren(curtainSwitchView.FLayoutView());
+                        #endregion
+                        #region 鐐瑰嚮浜嬩欢
+                        ///寮�鍏崇偣鍑讳簨浠�
+                        curtainSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            SwitchViewMethod(device, curtainSwitchView.btnState, 2);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, index, curtainSwitchView.btnState, null, null, null);
+                        }
+                        #endregion
+                    }
+                    break;
+
+            }
+            #endregion
+            #region  淇濆瓨鐐瑰嚮鏃堕棿
+            saveView.btnClick.MouseUpEventHandler += (sen, e) =>
+            {
+
+
+                if (selectedState != "unknown")
+                {
+                    Output outputDevice = new Output();
+                    outputDevice.target_type = "1";
+                    outputDevice.sid = device.sid;
+                    outputDevice.status = dicSateteList;
+                    if (edit)
+                    {
+                        //绉婚櫎鏃ф暟鎹�
+                        Logic.currlogic.output.RemoveAt(index);
+                        //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃�;
+                        Logic.currlogic.output.Insert(index, outputDevice);
+                    }
+                    else
+                    {
+                        //娣诲姞涓�涓潯浠�
+                        AddTarget(outputDevice);
+                    }
+                }
+                else
+                {
+                    if (!edit)
+                    {
+                        //鎻愮ず鐢ㄦ埛
+                        return;
+                    }
+                    this.RemoveFromParent();
+                    return;
+                }
+                LogicMethod.RemoveAllView();
+                AddLogic addLogic = new AddLogic();
+                MainPage.BasePageView.AddChidren(addLogic);
+                addLogic.Show();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+            #endregion
+
+        }
+        /// <summary>
+        ///寮�鍏�=鐣岄潰
+        /// </summary>
+        /// <param name="fLayout"></param>
+        /// <param name="device"></param>
+        /// <param name="index"></param>
+        /// <param name="edit"></param>
+        /// <param name="intView">閫変腑View鐨勬暟閲�</param>
+        private void SwitchView(FrameLayout fLayout, Entity.Function device, int index, bool edit,int intView)
+        {
+            #region 鐣岄潰
+            ///寮�鍏�
+            LogicView.FunTypeView curtainSwitchView = new LogicView.FunTypeView();
+            curtainSwitchView.btnText.TextID = StringId.switchLogic;
+            fLayout.AddChidren(curtainSwitchView.FLayoutView());
+            #endregion
+            #region 鐐瑰嚮浜嬩欢
+            ///寮�鍏崇偣鍑讳簨浠�
+            curtainSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
+            {
+                SwitchViewMethod(device, curtainSwitchView.btnState, intView);
+            };
+            if (edit)
+            {
+                GetEditState(device, index, curtainSwitchView.btnState, null, null, null);
+            }
+            #endregion
+
+        }
+        /// <summary>
+        ///锛堝紑鍏�+浜害/鐧惧垎姣�)鐣岄潰
+        /// </summary>
+        /// <param name="fLayout"></param>
+        /// <param name="device"></param>
+        /// <param name="index"></param>
+        /// <param name="edit"></param>
+        /// <param name="intView">閫変腑View鐨勬暟閲�</param>
+        private void SwitchBrightnessView(FrameLayout fLayout, Entity.Function device, int index, bool edit,int intView)
+        {
+            #region 鐣岄潰
+            ///寮�鍏�
+            LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
+            lightSwitchView.btnText.TextID = StringId.switchLogic;
+            fLayout.AddChidren(lightSwitchView.FLayoutView());
+            ///浜害
+            LogicView.FunTypeView brightnessView = new LogicView.FunTypeView();
+            brightnessView.frameLayout.Y = lightSwitchView.frameLayout.Bottom;
+            if (device.functionType == FunctionType.TrietexCurtain || device.functionType == FunctionType.RollerCurtain)
+            {
+                
+                brightnessView.btnText.TextID = StringId.percentum;
+            }
+            else
+            {
+                brightnessView.btnText.TextID = StringId.brightnesLogic;
+            }
+            fLayout.AddChidren(brightnessView.FLayoutView());
+            #endregion
+            #region 鐐瑰嚮浜嬩欢
+            ///寮�鍏崇偣鍑讳簨浠�
+            lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
+            {
+                SwitchViewMethod(device, lightSwitchView.btnState, intView);
+            };
+            ///浜害鐐瑰嚮浜嬩欢
+            brightnessView.btnClick.MouseUpEventHandler += (sender, e) =>
+            {
+                BrightnessMethod(device, brightnessView.btnState, brightnessView.btnText.Text);
+            };
+            if (edit)
+            {
+                GetEditState(device, index, lightSwitchView.btnState, brightnessView.btnState, null, null);
+            }
+            #endregion
+
+        }
+        /// <summary>
+        /// 寮�鍏�=鍔熻兘涓嬩竴绾х晫闈�
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="button"></param>
+        /// <param name="len">鏄剧ず閫夋嫨View鏁伴噺</param>
+        private void SwitchViewMethod(Entity.Function device, Button button, int len)
+        {
+            #region 鐣岄潰
+            FrameLayout frame = new FrameLayout
+            {
+                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+            };
+            this.AddChidren(frame);
+            LogicView.SwitchView switchView = new LogicView.SwitchView();
+            switchView.FLayoutView(frame, len);
+            #endregion
+
+            #region 鐐瑰嚮浜嬩欢
+            Dictionary<string, string> dic = new Dictionary<string, string>();
+            LogicMethod.dictionary(dic, "key", "on_off");
+            string keyVlaue = "on_off";
+            //寮�-鐐瑰嚮浜嬩欢
+            switchView.btnOn.MouseUpEventHandler += (sender2, e2) =>
+            {
+                LogicMethod.dictionary(dic, "value", "on");
+                button.TextID = StringId.onLogic;
+                selectedState = device.functionType + "_on";
+                AddDictionaryData(dicSateteList, keyVlaue, dic);
+                RemView(frame);
+            };
+            //鍏�-鐐瑰嚮浜嬩欢
+            switchView.btnOff.MouseUpEventHandler += (sender3, e3) =>
+            {
+                LogicMethod.dictionary(dic, "value", "off");
+                button.TextID = StringId.offLogic;
+                selectedState = device.functionType + "_off";
+                AddDictionaryData(dicSateteList, keyVlaue, dic);
+                RemView(frame);
+
+            };
+            //鏆傚仠-鐐瑰嚮浜嬩欢
+            switchView.btnStop.MouseUpEventHandler += (sender3, e3) =>
+            {
+                LogicMethod.dictionary(dic, "value", "stop");
+                button.TextID = StringId.stop;
+                selectedState = device.functionType + "_stop";
+                AddDictionaryData(dicSateteList, keyVlaue, dic);
+                RemView(frame);
+
+            };
+            ///鏄剧ず涔嬪墠鐘舵��
+            if (button.Text != "")
+            {
+                if (button.Text == switchView.btnOn.Text)
+                {
+                    switchView.btnOn.TextColor = CSS.CSS_Color.textConfirmColor;
+                }
+                else if (button.Text == switchView.btnOff.Text)
+                {
+                    switchView.btnOff.TextColor = CSS.CSS_Color.textConfirmColor;
+                }
+                else if (button.Text == switchView.btnStop.Text)
+                {
+                    switchView.btnOff.TextColor = CSS.CSS_Color.textConfirmColor;
+                }
+            }
+            #endregion
+
+
+        }
+
+        /// <summary>
+        /// 浜害/鐧惧垎姣�=鍔熻兘涓嬩竴绾х晫闈�
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="button"></param>
+        private void BrightnessMethod(Entity.Function device, Button button, string titleName)
+        {
+            #region 鐣岄潰
+            FrameLayout frame = new FrameLayout
+            {
+                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+            };
+            this.AddChidren(frame);
+            LogicView.BrightnessView brightness = new LogicView.BrightnessView();
+            brightness.btnTitle.Text = titleName;
+            brightness.FLayoutView(frame);
+            #endregion
+            #region 鐐瑰嚮浜嬩欢
+            int brightnesValue = 0;
+            Dictionary<string, string> dic = new Dictionary<string, string>();
+            LogicMethod.dictionary(dic, "key", "brightness");
+            string keyVlaue = "brightness";
+            //鈥旂偣鍑讳簨浠�
+            brightness.btn_subtract_click.MouseUpEventHandler += (sender2, e2) =>
+            {
+                if (brightnesValue > 0)
+                {
+                    brightnesValue -= 1;
+                    brightness.seekBarVol.Progress = brightnesValue;
+                }
+            };
+            //+鐐瑰嚮浜嬩欢
+            brightness.btn_add_click.MouseUpEventHandler += (sende2, e2) =>
+            {
+                if (brightnesValue < 100)
+                {
+                    brightnesValue += 1;
+                    brightness.seekBarVol.Progress = brightnesValue;
+
+                }
+            };
+            //杩涘害鏉℃粦鍔ㄧ偣鍑讳簨浠�
+            EventHandler<int> progressclick = (sender2, e2) =>
+            {
+                brightnesValue = brightness.seekBarVol.Progress;
+            };
+            brightness.seekBarVol.OnProgressChangedEvent += progressclick;
+            brightness.seekBarVol.OnStopTrackingTouchEvent += progressclick;
+            //纭畾鐐瑰嚮浜嬩欢
+            brightness.btnConfirm.MouseUpEventHandler += (sende2, e2) =>
+            {
+                if (brightnesValue == 0)
+                {
+                    return;
+                }
+
+                LogicMethod.dictionary(dic, "value", brightnesValue.ToString());
+                selectedState = device.functionType + brightnesValue.ToString();
+                AddDictionaryData(dicSateteList, keyVlaue, dic);
+                button.Text = brightnesValue.ToString();
+                RemView(frame);
+
+            };
+            //鏄剧ず涔嬪墠鐘舵��
+            if (button.Text != "")
+            {
+                brightnesValue = int.Parse(button.Text);
+                brightness.seekBarVol.Progress = brightnesValue;
+            }
+            #endregion
+
+
+        }
+        /// <summary>
+        /// 绉婚櫎鎺т欢
+        /// </summary>
+        /// <param name="frame"></param>
+        private void RemView(FrameLayout frame)
+        {
+            frame.RemoveFromParent();
+        }
+        /// <summary>
+        /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
+        /// </summary>
+        /// <param name="device">缂栬緫璁惧</param>
+        /// <param name="index">缂栬緫鏁版嵁鐨勭储寮�</param>
+        /// <param name="button1">鏄剧ずBtn</param>
+        /// <param name="button2">鏄剧ずBtn</param>
+        /// <param name="button3">鏄剧ずBtn</param>
+        /// <param name="button4">鏄剧ずBtn</param>
+        private void GetEditState(Entity.Function device, int index, Button button1, Button button2, Button button3, Button button4)
+        {
+            Output outputs = Logic.currlogic.output[index];
+            var dicList = outputs.status as List<Dictionary<string, string>>;
+            //娓呴櫎涔嬪墠鏃ф暟鎹�
+            dicSateteList.Clear();
+            if (dicList.Count != 0)
+            {
+                //鏈夋暟鎹噸鏂拌祴鍊�
+                dicSateteList = dicList;
+            }
+            switch (device.functionType)
+            {
+                //寮�鍏崇伅鍏�
+                case FunctionType.Relay:
+                    {
+                        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 FunctionType.Dimmer:
+                case FunctionType.RGB:
+                case FunctionType.RGBW:
+                case FunctionType.CCT:
+                    {
+                        foreach (var dic in dicList)
+                        {
+                            string value = dic["value"];
+                            switch (dic["key"])
+                            {
+                                case "on_off":
+                                    {
+                                        if (value == "on")
+                                        {
+                                            button1.Text = Language.StringByID(StringId.onLogic);
+                                        }
+                                        else
+                                        {
+                                            button1.Text = Language.StringByID(StringId.offLogic);
+                                        }
+                                    }
+                                    break;
+                                case "brightness":
+                                    {
+
+                                        button2.Text = value;
+                                    }
+                                    break;
+                            }
+
+                        }
+                    }
+                    break;
+                case FunctionType.Curtain:
+                    {
+                        foreach (var dic in dicList)
+                        {
+                            string value = dic["value"];
+                            switch (value)
+                            {
+                                case "on":
+                                    {
+                                        button1.Text = Language.StringByID(StringId.onLogic);
+                                    }
+                                    break;
+                                case "off":
+                                    {
+                                        button1.Text = Language.StringByID(StringId.offLogic);
+                                    }
+                                    break;
+                                case "stop":
+                                    {
+                                        button1.Text = Language.StringByID(StringId.stop);
+                                    }
+                                    break;
+                            }
+                        }
+                    }
+                    break;
+                case FunctionType.TrietexCurtain:
+                case FunctionType.RollerCurtain: {
+
+                        foreach (var dic in dicList)
+                        {
+                            string value = dic["value"];
+                            switch (dic["key"])
+                            {
+                                case "on_off":
+                                    {
+                                        switch (value)
+                                        {
+                                            case "on":
+                                                {
+                                                    button1.Text = Language.StringByID(StringId.onLogic);
+                                                }
+                                                break;
+                                            case "off":
+                                                {
+                                                    button1.Text = Language.StringByID(StringId.offLogic);
+                                                }
+                                                break;
+                                            case "stop":
+                                                {
+                                                    button1.Text = Language.StringByID(StringId.stop);
+                                                }
+                                                break;
+                                        }
+                                    }
+                                    break;
+                                case "brightness":
+                                    {
+
+                                        button2.Text = value;
+                                    }
+                                    break;
+                            }
+
+                        }
+                    }
+                    break;
+            }
+
+        }
+        /// <summary>
+        /// 娣诲姞澶勭悊閫変腑鏁版嵁
+        /// </summary>
+        /// <param name="dicList">瀛樺偍鏁版嵁鍒楄〃</param>
+        /// <param name="keyValue">璇嗗埆璁惧</param> 
+        /// <param name="dictionary">閫変腑鏁版嵁</param>
+        /// <returns></returns>
+        private void AddDictionaryData(List<Dictionary<string, string>> dicList, string keyValue, Dictionary<string, string> dictionary)
+        {
+            int indexValue = -1;
+            for (int i = 0; i < dicList.Count; i++)
+            {
+                var dic = dicList[i];
+                if (dic.ContainsValue(keyValue))
+                {
+                    //鍒ゆ柇鏄惁瀛樺湪
+                    indexValue = i;
+                    break;
+                }
+            }
+
+            if (indexValue != -1)
+            {
+                //瀛樺湪绉婚櫎
+                dicList.RemoveAt(indexValue);
+                //閲嶆柊娣诲姞
+                dicList.Insert(indexValue, dictionary);
+            }
+            else
+            {
+                //鏂版坊鍔�
+                dicList.Add(dictionary);
+            }
+
+        }
+        /// <summary>
+        /// 娣诲姞鐩爣
+        /// </summary>
+        /// <param name="target"></param>
+        private void AddTarget(Output target)
+        {
+            int indexValue = -1;
+            for (int i = 0; i < Logic.currlogic.output.Count; i++)
+            {
+                if (Logic.currlogic.output[i].sid == target.sid)
+                {
+                    indexValue = i;
+                    break;
+                }
+            }
+
+            if (indexValue != -1)
+            {
+                Logic.currlogic.output.RemoveAt(indexValue);
+                Logic.currlogic.output.Insert(indexValue, target);
+            }
+            else
+            {
+                Logic.currlogic.output.Add(target);
+            }
+
+        }
+
+    }
+}

--
Gitblit v1.8.0