From 82423359112f65458fd9a80418da0bda5e9364d9 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期五, 11 十二月 2020 17:08:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/WJC' into NewFilePath

---
 HDL-ON_Android/Assets/Phone/LogicIcon/airconditionerlogic.png           |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheScene.png                 |    0 
 .vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm                          |    0 
 HDL-ON_Android/Assets/Phone/LogicIcon/timecondition.png                 |    0 
 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                     |  167 ++++++++++++
 HDL-ON_Android/HDL-ON_Android.csproj                                    |    4 
 HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheTime.png                  |    0 
 HDL-ON_Android/Assets/Phone/LogicIcon/lightloguc.png                    |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs                  |   34 +-
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TimeHorizonView.cs    |    2 
 HDL-ON_Android/Assets/Phone/LogicIcon/selectTheFun.png                  |    0 
 HDL-ON_Android/Resources/Resource.designer.cs                           |    3 
 HDL-ON_Android/Assets/Phone/LogicIcon/heatlogic.png                     |    0 
 HDL-ON_Android/Assets/Phone/LogicIcon/outletlogic.png                   |    0 
 .vs/HDL_APP_Project/xs/sqlite3/storage.ide                              |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/link.png                           |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/lightloguc.png                     |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/scene.png                          |    0 
 HDL-ON_Android/Assets/Phone/LogicIcon/selectTheTime.png                 |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs              |  145 +++++++++++
 HDL-ON_iOS/Resources/Phone/LogicIcon/functionicon.png                   |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/outletlogic.png                    |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheFun.png                   |    0 
 HDL_ON/Entity/DB_ResidenceData.cs                                       |    1 
 HDL-ON_Android/Assets/Phone/LogicIcon/curtainlogic.png                  |    0 
 HDL-ON_Android/Assets/Phone/LogicIcon/functionicon.png                  |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/heatlogic.png                      |    0 
 HDL-ON_Android/Assets/Phone/LogicIcon/link.png                          |    0 
 HDL_ON/Entity/FunctionList.cs                                           |    2 
 HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs                      |   20 +
 HDL-ON_Android/Assets/Phone/LogicIcon/scene.png                         |    0 
 HDL_ON/DAL/Server/NewAPI.cs                                             |    2 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs                        |    2 
 HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs                     |  281 ++++++++++----------
 HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs                         |   90 +++++-
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputView.cs |    4 
 HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs                     |    4 
 HDL-ON_Android/Assets/Phone/LogicIcon/selectTheScene.png                |    0 
 HDL-ON_iOS/Resources/Phone/LogicIcon/curtainlogic.png                   |    0 
 .vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal                          |    0 
 42 files changed, 564 insertions(+), 197 deletions(-)

diff --git a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide
index 9498c02..3556ce0 100644
--- a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide
+++ b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide
Binary files differ
diff --git a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm
new file mode 100644
index 0000000..9b0d969
--- /dev/null
+++ b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm
Binary files differ
diff --git a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal
new file mode 100644
index 0000000..a39a683
--- /dev/null
+++ b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/airconditionerlogic.png b/HDL-ON_Android/Assets/Phone/LogicIcon/airconditionerlogic.png
index 6123b42..94d7341 100755
--- a/HDL-ON_Android/Assets/Phone/LogicIcon/airconditionerlogic.png
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/airconditionerlogic.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/curtainlogic.png b/HDL-ON_Android/Assets/Phone/LogicIcon/curtainlogic.png
index 0dc4af4..797f152 100755
--- a/HDL-ON_Android/Assets/Phone/LogicIcon/curtainlogic.png
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/curtainlogic.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/functionicon.png b/HDL-ON_Android/Assets/Phone/LogicIcon/functionicon.png
index e1ea93a..867d794 100755
--- a/HDL-ON_Android/Assets/Phone/LogicIcon/functionicon.png
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/functionicon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/heatlogic.png b/HDL-ON_Android/Assets/Phone/LogicIcon/heatlogic.png
index eecd1a2..3938270 100755
--- a/HDL-ON_Android/Assets/Phone/LogicIcon/heatlogic.png
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/heatlogic.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/lightloguc.png b/HDL-ON_Android/Assets/Phone/LogicIcon/lightloguc.png
index 722c37e..903f71a 100755
--- a/HDL-ON_Android/Assets/Phone/LogicIcon/lightloguc.png
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/lightloguc.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/link.png b/HDL-ON_Android/Assets/Phone/LogicIcon/link.png
new file mode 100755
index 0000000..083b17f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/link.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/outletlogic.png b/HDL-ON_Android/Assets/Phone/LogicIcon/outletlogic.png
index 798bcbf..ae50368 100755
--- a/HDL-ON_Android/Assets/Phone/LogicIcon/outletlogic.png
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/outletlogic.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/scene.png b/HDL-ON_Android/Assets/Phone/LogicIcon/scene.png
index 0585769..eb9c731 100755
--- a/HDL-ON_Android/Assets/Phone/LogicIcon/scene.png
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/scene.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/selectTheFun.png b/HDL-ON_Android/Assets/Phone/LogicIcon/selectTheFun.png
new file mode 100755
index 0000000..acfe900
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/selectTheFun.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/selectTheScene.png b/HDL-ON_Android/Assets/Phone/LogicIcon/selectTheScene.png
new file mode 100755
index 0000000..e1dcbc9
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/selectTheScene.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/selectTheTime.png b/HDL-ON_Android/Assets/Phone/LogicIcon/selectTheTime.png
new file mode 100755
index 0000000..8272080
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/selectTheTime.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/timecondition.png b/HDL-ON_Android/Assets/Phone/LogicIcon/timecondition.png
index 5b638b7..df66c33 100755
--- a/HDL-ON_Android/Assets/Phone/LogicIcon/timecondition.png
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/timecondition.png
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index 28148ed..b8c38f3 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -647,6 +647,10 @@
     <AndroidAsset Include="Assets\Phone\LogicIcon\point.png" />
     <AndroidAsset Include="Assets\Phone\LogicIcon\ selected+.png" />
     <AndroidAsset Include="Assets\Phone\LogicIcon\selected-.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\link.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\selectTheFun.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\selectTheScene.png" />
+    <AndroidAsset Include="Assets\Phone\LogicIcon\selectTheTime.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 7503311..f1cf85f 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/Resources/Phone/LogicIcon/airconditionerlogic.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/airconditionerlogic.png
index 6123b42..94d7341 100755
--- a/HDL-ON_iOS/Resources/Phone/LogicIcon/airconditionerlogic.png
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/airconditionerlogic.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/curtainlogic.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/curtainlogic.png
index 0dc4af4..797f152 100755
--- a/HDL-ON_iOS/Resources/Phone/LogicIcon/curtainlogic.png
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/curtainlogic.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/functionicon.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/functionicon.png
index e1ea93a..867d794 100755
--- a/HDL-ON_iOS/Resources/Phone/LogicIcon/functionicon.png
+++ 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
index eecd1a2..3938270 100755
--- a/HDL-ON_iOS/Resources/Phone/LogicIcon/heatlogic.png
+++ 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
index 722c37e..903f71a 100755
--- a/HDL-ON_iOS/Resources/Phone/LogicIcon/lightloguc.png
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/lightloguc.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/link.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/link.png
new file mode 100755
index 0000000..083b17f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/link.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/outletlogic.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/outletlogic.png
index 798bcbf..ae50368 100755
--- a/HDL-ON_iOS/Resources/Phone/LogicIcon/outletlogic.png
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/outletlogic.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/scene.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/scene.png
index 0585769..eb9c731 100755
--- a/HDL-ON_iOS/Resources/Phone/LogicIcon/scene.png
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/scene.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheFun.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheFun.png
new file mode 100755
index 0000000..acfe900
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheFun.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheScene.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheScene.png
new file mode 100755
index 0000000..e1dcbc9
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheScene.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheTime.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheTime.png
new file mode 100755
index 0000000..8272080
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheTime.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/timecondition.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/timecondition.png
index 5b638b7..df66c33 100755
--- a/HDL-ON_iOS/Resources/Phone/LogicIcon/timecondition.png
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/timecondition.png
Binary files differ
diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs
index c75b893..ff712a1 100644
--- a/HDL_ON/DAL/Server/NewAPI.cs
+++ b/HDL_ON/DAL/Server/NewAPI.cs
@@ -316,7 +316,7 @@
         /// </summary>
         public const string Api_Post_GetDevcieInfoList = "/home-wisdom/app/device/info";
         /// <summary>
-        /// 鍒锋柊璁惧鐘舵��
+        /// 鍒锋柊璁惧鐘�
         /// </summary>
         public const string Api_Post_RefreshDeviceStatus = "/home-wisdom/app/device/status/refresh";
         /// <summary>
diff --git a/HDL_ON/Entity/DB_ResidenceData.cs b/HDL_ON/Entity/DB_ResidenceData.cs
index ed3d96a..8380347 100644
--- a/HDL_ON/Entity/DB_ResidenceData.cs
+++ b/HDL_ON/Entity/DB_ResidenceData.cs
@@ -254,6 +254,7 @@
         /// <summary>
         /// 鎴块棿鍒楄〃
         /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
         public List<Room> Rooms = SpatialInfo.CurrentSpatial.RoomList;
 
         #region 鍔熻兘鏁版嵁
diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index fcc971a..751fa49 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -193,7 +193,7 @@
         /// </summary>
         public List<Function> GetAllDeviceFunctionList()
         {
-            //if (deviceFunctionList == null)
+            if (deviceFunctionList == null || deviceFunctionList.Count == 0)
             {
                 deviceFunctionList = new List<Function>();
                 deviceFunctionList.AddRange(aCs);
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
index d9ebfb3..4f2c328 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
@@ -23,7 +23,7 @@
              {
                  RemoveFromParent();
              };
-            if (string.IsNullOrEmpty(Logic.currlogic.sid))
+            if (string.IsNullOrEmpty(Logic.currlogic.userLogicId))
             {
                 topView.topNameBtn.TextID = StringId.newAutomation;
                 topView.setBtn.Visible = false;
@@ -128,20 +128,16 @@
             viewLayout.AddChidren(cyclicTitle.FLayoutView());
             cyclicTitle.btnClick.MouseUpEventHandler += (sender, e) =>
             {
-                FrameLayout fLayout = new FrameLayout
-                {
-                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
-                };
-                this.AddChidren(fLayout);
-                DateMethod(fLayout, cyclicTitle.btnText);
+
+                DateMethod(cyclicTitle.btnText);
 
 
             };
             #endregion
 
             #region  鎵ц鎺ㄩ�� 鍙戦�侀�氱煡
-            /////涓婁笅闂撮殧12鍍忕礌
-            //viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(12) });
+            ///涓婁笅闂撮殧12鍍忕礌
+            viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(12) });
             /////鎵ц鎺ㄩ�乮ew
             //LogicView.LogicTypeTitleView push = new LogicView.LogicTypeTitleView();
             //push.frameLayout.Height = Application.GetRealHeight(50);
@@ -169,7 +165,7 @@
             this.AddChidren(saveView.FLayoutView());
             saveView.btnClick.MouseUpEventHandler += (sender, e) =>
             {
-                if (string.IsNullOrEmpty(Logic.currlogic.sid))
+                if (string.IsNullOrEmpty(Logic.currlogic.userLogicId))
                 {
                     List<string> list = new List<string>();
                     foreach (var logic in Logic.LogicList)
@@ -188,7 +184,8 @@
                             LogicMethod.RemoveAllView();
                             MainView.MainShow();
                         }
-                        else {
+                        else
+                        {
                             new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
                         }
 
@@ -204,7 +201,8 @@
                         LogicMethod.RemoveAllView();
                         MainView.MainShow();
                     }
-                    else {
+                    else
+                    {
                         new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
                     }
                 }
@@ -216,11 +214,14 @@
         /// <summary>
         /// 寰幆鏂瑰紡(姣忓ぉ锛屾瘡鏈堛�傘��)
         /// </summary>
-        /// <param name="fLayout">寮规涓绘帶浠�</param>
         /// <param name="button">鏄剧ず鏂囨湰</param>
-        public void DateMethod(FrameLayout fLayout, Button button)
+        public void DateMethod(Button button)
         {
-
+            FrameLayout fLayout = new FrameLayout
+            {
+                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+            };
+            this.AddChidren(fLayout);
             LogicView.DateView dateView = new LogicView.DateView();
             dateView.btnTitle.TextID = StringId.cyclic;
             dateView.FLayoutView(fLayout, 4);
@@ -232,7 +233,7 @@
             //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏂囨湰鐘舵��
             string weekName = "";
             //瀹氫箟涓�涓眬閮˙tn鐢ㄦ潵璁板綍閫変腑Btn;
-            var selecetdBtn = new Button() { Text=""};
+            var selecetdBtn = new Button() { Text = "" };
             for (int i = 0; i < 4; i++)
             {
                 LogicView.SelectTypeView dateTypeView = new LogicView.SelectTypeView();
@@ -326,12 +327,6 @@
             //纭畾淇濆瓨
             dateView.btnConfirm.MouseUpEventHandler += (sender3, e3) =>
             {
-                if (selecetdBtn.Text == Language.StringByID(StringId.monthly)|| selecetdBtn.Text == Language.StringByID(StringId.weekly)) {
-                    //鎻愮ず锛氳繕鏈��
-                    return;
-
-                }
-
                 if (selecetdBtn.Text == Language.StringByID(StringId.performA))
                 {
                     //鎵ц涓�娆�
@@ -342,6 +337,11 @@
                     //姣忓ぉ
                     Logic.currlogic.cycle.type = "day";
 
+                }
+                else
+                {
+                    //鎻愮ず锛氳繕鏈��
+                    return;
                 }
                 //閫変腑淇濆瓨涔嬪悗鏄剧ず鏂囨湰
                 button.Text = selecetdBtn.Text;
@@ -356,125 +356,35 @@
         /// <param name="button">鏄剧ず鏂囨湰</param>
         public void WeekMethod(FrameLayout fLayout, Button button)
         {
-
-            LogicView.DateView weekView = new LogicView.DateView();
-            weekView.btnTitle.TextID = StringId.cyclic;
-            weekView.FLayoutView(fLayout, 7);
-            weekView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
-            {
-                weekView.frameLayout.RemoveFromParent();
+            List<string> weekStr = new List<string> {
+             Language.StringByID(StringId.monday),
+             Language.StringByID(StringId.tuesday),
+             Language.StringByID(StringId.wednesday),
+             Language.StringByID(StringId.thursday),
+             Language.StringByID(StringId.friday),
+             Language.StringByID(StringId.saturday),
+             Language.StringByID(StringId.sunday),
             };
+
             //瀹氫箟涓�涓眬閮╳eekList鍒楄〃鐢ㄦ潵璁板綍閫変腑鏁版嵁;
-            List<string> weekList = new List<string>();
+            List<string> weekStateList = new List<string>();
+            weekStateList.Clear();
             if (Logic.currlogic.cycle.type == "week")
             {
+                var list = GetWeekString(Logic.currlogic.cycle.value, "int");
                 //鍔犺浇涔嬪墠淇濆瓨鐨勬暟鎹�
-                weekList.AddRange(Logic.currlogic.cycle.value);
+                weekStateList.AddRange(list);
             }
-            //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏂囨湰鐘舵��
-            string weekName = "";
-            for (int i = 0; i < 7; i++)
-            {
-                LogicView.SelectTypeView weekTypeView = new LogicView.SelectTypeView();
-                weekTypeView.frameLayout.BackgroundColor = CSS.CSS_Color.viewTranslucence;
-                weekTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
-                weekTypeView.btnIcon.Visible = false;
-                weekTypeView.btnText.X = Application.GetRealWidth(20);
-                weekTypeView.btnLine.X = Application.GetRealWidth(20);
-                weekTypeView.btnLine.Width = Application.GetRealWidth(303);
-                weekTypeView.btnNextIcon.X = Application.GetRealWidth(303);
-                weekTypeView.btnNextIcon.Width = Application.GetMinRealAverage(28);
-                weekTypeView.btnNextIcon.Height = Application.GetMinRealAverage(28);
-                weekTypeView.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png";
-                weekTypeView.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png";
-                weekView.frameLayout.AddChidren(weekTypeView.FLayoutView());
-                weekTypeView.btnClick.Tag = i;//鏍囪绱㈠紩
-                switch (i)
-                {
-                    case 0:
-                        {
-                            weekName = Language.StringByID(StringId.monday);
-                        }
-                        break;
-                    case 1:
-                        {
-                            weekName = Language.StringByID(StringId.tuesday);
-                        }
-                        break;
-                    case 2:
-                        {
-                            weekName = Language.StringByID(StringId.wednesday);
-                        }
-                        break;
-                    case 3:
-                        {
-                            weekName = Language.StringByID(StringId.thursday);
-                        }
-                        break;
-                    case 4:
-                        {
-                            weekName = Language.StringByID(StringId.friday);
-                        }
-                        break;
-                    case 5:
-                        {
-                            weekName = Language.StringByID(StringId.saturday);
-                        }
-                        break;
-                    case 6:
-                        {
-                            weekName = Language.StringByID(StringId.sunday);
-                        }
-                        break;
+            PublicInterface weekView = new PublicInterface();
+            weekView.MultiSelectShow(fLayout, weekStr, Language.StringByID(StringId.cyclic), weekStateList
+               , (list) =>
+               {
+                   var statelist = GetWeekString(list, "str");
+                   Logic.currlogic.cycle.type = "week";
+                   Logic.currlogic.cycle.value = statelist;
+                   button.Text = MainView.GetWeekString(statelist);
 
-                }
-                weekTypeView.btnText.Text = weekName;
-                if (weekList.Contains(i.ToString()))
-                {
-                    //鏄剧ず涔嬪墠鐨勯�変腑鐘舵��
-                    weekTypeView.btnNextIcon.IsSelected = true;
-                }
-                //鏄熸湡鐨勭偣鍑讳簨浠�
-                weekTypeView.btnClick.MouseUpEventHandler += (sender, e) =>
-                {
-                    string clickIndex = weekTypeView.btnClick.Tag.ToString();
-                    weekTypeView.btnClick.IsSelected = !weekTypeView.btnClick.IsSelected;
-                    if (weekTypeView.btnClick.IsSelected)
-                    {
-                        weekTypeView.btnNextIcon.IsSelected = true;
-                        if (!weekList.Contains(clickIndex))
-                        {
-                            //娣诲姞閫変腑鏁版嵁
-                            weekList.Add(clickIndex);
-                        }
-                    }
-                    else
-                    {
-                        weekTypeView.btnNextIcon.IsSelected = false;
-                        if (weekList.Contains(clickIndex))
-                        {
-                            //绉婚櫎閫変腑鏁版嵁
-                            weekList.Remove(clickIndex);
-                        }
-                    }
-
-                };
-
-            }
-            //纭畾鐐瑰嚮浜嬩欢
-            weekView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
-            {
-                if (weekList.Count == 0)
-                {
-                    //鎻愮ず锛氳繕娌¢�変腑鎵ц鍛ㄦ湡
-                    return;
-                }
-                Logic.currlogic.cycle.type = "week";
-                Logic.currlogic.cycle.value = weekList;
-                button.Text = MainView.GetWeekString(weekList);
-                fLayout.RemoveFromParent();
-            };
-
+               });
         }
         /// <summary>
         /// 姣忔湀
@@ -556,7 +466,8 @@
                     }
                 };
 
-                if (monList.Contains(i.ToString())) {
+                if (monList.Contains(i.ToString()))
+                {
                     monTextBtn.IsSelected = true;
                 }
             }
@@ -581,6 +492,8 @@
         /// <param name="button">鏄剧ず鏂囨湰</param>
         public void AndOrMethod(FrameLayout fLayout, Button button)
         {
+           
+
             LogicView.DateView meetTheConditionView = new LogicView.DateView();
             meetTheConditionView.btnTitle.TextID = StringId.meetTheCondition;
             meetTheConditionView.FLayoutView(fLayout, 2);
@@ -600,8 +513,8 @@
             andConditionViews.btnLine.X = Application.GetRealWidth(20);
             andConditionViews.btnLine.Width = Application.GetRealWidth(303);
             andConditionViews.btnNextIcon.X = Application.GetRealWidth(303);
-            andConditionViews.btnNextIcon.Width = Application.GetMinRealAverage(28);
-            andConditionViews.btnNextIcon.Height = Application.GetMinRealAverage(28);
+            andConditionViews.btnNextIcon.Width = Application.GetRealWidth(28);
+            andConditionViews.btnNextIcon.Height = Application.GetRealWidth(28);
             andConditionViews.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png";
             andConditionViews.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png";
             meetTheConditionView.frameLayout.AddChidren(andConditionViews.FLayoutView());
@@ -616,8 +529,8 @@
             orConditionView.btnLine.X = Application.GetRealWidth(20);
             orConditionView.btnLine.Width = Application.GetRealWidth(303);
             orConditionView.btnNextIcon.X = Application.GetRealWidth(303);
-            orConditionView.btnNextIcon.Width = Application.GetMinRealAverage(28);
-            orConditionView.btnNextIcon.Height = Application.GetMinRealAverage(28);
+            orConditionView.btnNextIcon.Width = Application.GetRealWidth(28);
+            orConditionView.btnNextIcon.Height = Application.GetRealWidth(28);
             orConditionView.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png";
             orConditionView.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png";
             meetTheConditionView.frameLayout.AddChidren(orConditionView.FLayoutView());
@@ -666,7 +579,97 @@
             };
 
         }
+        /// <summary>
+        /// 鏄熸湡鍛ㄦ湡杞崲鍊肩殑鏂规硶
+        /// </summary>
+        /// <param name="list"></param>
+        /// <param name="str_or_int"></param>
+        /// <returns></returns>
+        public List<string> GetWeekString(List<string> list, string str_or_int)
+        {
+            string weekTextName = "";
+            List<string> stateList = new List<string>();
+            for (int i = 0; i < list.Count; i++)
+            {
+                var s = list[i];
+                if (str_or_int == "int")
+                {
+                    switch (s)
+                    {
+                        case "1":
+                            {
+                                weekTextName = Language.StringByID(StringId.monday);
+                            }
+                            break;
+                        case "2":
+                            {
+                                weekTextName = Language.StringByID(StringId.tuesday);
+                            }
+                            break;
+                        case "3":
+                            {
+                                weekTextName = Language.StringByID(StringId.wednesday);
+                            }
+                            break;
+                        case "4":
+                            {
+                                weekTextName = Language.StringByID(StringId.thursday);
+                            }
+                            break;
+                        case "5":
+                            {
+                                weekTextName = Language.StringByID(StringId.friday);
+                            }
+                            break;
+                        case "6":
+                            {
+                                weekTextName = Language.StringByID(StringId.saturday);
+                            }
+                            break;
+                        case "0":
+                            {
+                                weekTextName = Language.StringByID(StringId.sunday);
+                            }
+                            break;
+                    }
 
+                }
+                else
+                {
+                    if (Language.StringByID(StringId.monday) == s)
+                    {
+                        weekTextName = "1";
+                    }
+                    else if (Language.StringByID(StringId.tuesday) == s)
+                    {
+                        weekTextName = "2";
+                    }
+                    else if (Language.StringByID(StringId.wednesday) == s)
+                    {
+                        weekTextName = "3";
+                    }
+                    else if (Language.StringByID(StringId.thursday) == s)
+                    {
+                        weekTextName = "4";
+                    }
+                    else if (Language.StringByID(StringId.friday) == s)
+                    {
+                        weekTextName = "5";
+                    }
+                    else if (Language.StringByID(StringId.saturday) == s)
+                    {
+                        weekTextName = "6";
+                    }
+                    else if (Language.StringByID(StringId.sunday) == s)
+                    {
+                        weekTextName = "0";
+                    }
+                }
+                stateList.Add(weekTextName);
 
+            }
+
+            return stateList;
+        }
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
index 9c457be..16782af 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
@@ -94,7 +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";
+                    bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{roomList.Count}.png";
                 }
                 #endregion
 
@@ -135,6 +135,15 @@
             funAllAreaView.btnIcon1.MouseUpEventHandler += roomClick;
             //鍔熻兘鐐瑰嚮浜嬩欢
             EventHandler<MouseEventArgs> funClick = (sender3, e3) =>{
+
+                //鑾峰彇鏈�缁堟樉绀哄垪琛�
+                var functionList = LogicMethod.GetFunctionDeviceList(selectedRoom, if_type);
+                //鑾峰彇璁惧鍒楄〃鐨勭被鍨嬶紙渚嬪锛氱伅鍏夌被锛岀獥甯樼被銆傘�傘�傦級
+                var deviceTypeList = LogicMethod.GetDeviceTypeList(functionList);
+                if (deviceTypeList.Count==0) {
+                    //娌℃湁绫诲瀷鐩存帴杩斿洖鍘�;
+                    return;
+                }
                 #region 鍖哄煙寮规鐣岄潰
                 FrameLayout fLayout = new FrameLayout
                 {
@@ -171,10 +180,7 @@
                     Height = Application.GetRealHeight(44 * 5),
                 };
 
-                //鑾峰彇鏈�缁堟樉绀哄垪琛�
-                var functionList = LogicMethod.GetFunctionDeviceList(selectedRoom, if_type);
-                //鑾峰彇璁惧鍒楄〃鐨勭被鍨嬶紙渚嬪锛氱伅鍏夌被锛岀獥甯樼被銆傘�傘�傦級
-                var deviceTypeList = LogicMethod.GetDeviceTypeList(functionList);
+           
 
 
                 if (deviceTypeList.Count > 5)
@@ -188,7 +194,7 @@
                     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";
+                    bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{deviceTypeList.Count}.png";
                 }
                 #endregion
 
@@ -213,7 +219,7 @@
                         funAllAreaView.btnText2.Text = areaView.btnClick.Tag.ToString();
                         ///鑾峰彇鍗曚釜绫诲瀷锛堜緥濡傦細鐏厜绫汇�傘�傦級璁惧FunctionType鍒楄〃
                         var typeFunctionList = LogicMethod.GetDeviceTypeFunctionList(areaView.btnClick.Tag.ToString());
-                        ///鑾峰彇鍗曚釜绫诲瀷锛堜緥濡傦細鐏厜绫汇�傘�傦級鏄剧ず璁惧鍒楄〃
+                        ///鑾峰彇鍗曚釜鐏厜绫诲瀷锛堜緥濡傦細鐏厜1,鐏厜2銆傘�傦級鏄剧ず璁惧鍒楄〃
                         var lists = LogicMethod.GetShowDeviceList(typeFunctionList, functionList);
                         DeviceListView(vv, lists);
                     };
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
index a388ffb..9bbb5a8 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
@@ -27,7 +27,7 @@
         /// <summary>
         /// 閫昏緫鍚嶇О
         /// </summary>
-        public string name = "閫昏緫涓�";
+        public string name = "鑷姩鍖�";
         /// <summary>
         /// 閫昏緫鏉′欢鍏崇郴锛堜笌and:锛屾垨:or锛�
         /// </summary>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
index 86ebc92..3399cbd 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -4,7 +4,7 @@
 
 namespace HDL_ON.UI.UI2.Intelligence.Automation
 {
-    
+
     public class LogicMethod
     {
         /// <summary>
@@ -77,7 +77,7 @@
                 long m = (long)((dt - startTime).TotalMilliseconds / 10);
                 string sTimeSpan = byteArrayToHexString(int2ByteArray(getTimeStamp()));
 
-               
+
 
                 logicId = sOidBeginsWith + sTimeSpan;
 
@@ -92,10 +92,10 @@
                     string s = Logic.LogicList[i].sid.Substring(20, 4);
                     int iThisSceneId = Convert.ToInt16(s, 16);
                     if (iThisSceneId > maxId)
-                        maxId = iThisSceneId ;
+                        maxId = iThisSceneId;
                 }
 
-                logicId += (maxId+1).ToString("X4");//閫昏緫鍙� 涓や釜byte 
+                logicId += (maxId + 1).ToString("X4");//閫昏緫鍙� 涓や釜byte 
                 logicId += "0000";
             }
             catch
@@ -125,7 +125,7 @@
         /// 鑾峰彇缃戝叧鎴块棿鍒楄〃
         /// </summary>
         /// <returns></returns>
-        public static List<HDL_ON.Entity.Room> GetGatewayRoomList() 
+        public static List<HDL_ON.Entity.Room> GetGatewayRoomList()
         {
             return HDL_ON.Entity.DB_ResidenceData.residenceData.Rooms;
         }
@@ -133,7 +133,7 @@
         /// 鑾峰彇缃戝叧鎴块棿鍒楄〃
         /// </summary>
         /// <returns></returns>
-        public static List<HDL_ON.Entity.Room> GetGatewayRoomList(string name) 
+        public static List<HDL_ON.Entity.Room> GetGatewayRoomList(string name)
         {
 
             List<Entity.Room> roomList = new List<Entity.Room>();
@@ -163,7 +163,7 @@
         /// <returns></returns>
         public static List<HDL_ON.Entity.Scene> GetSceneList()
         {
-           return  HDL_ON.Entity.DB_ResidenceData.functionList.scenes;
+            return HDL_ON.Entity.DB_ResidenceData.functionList.scenes;
         }
         /// <summary>
         /// 鑾峰彇鎴块棿鐨勮澶囧垪琛�
@@ -196,7 +196,7 @@
         /// <returns></returns>
         public static HDL_ON.Entity.Function GetDevice(string sid)
         {
-            HDL_ON.Entity.Function device = new Entity.Function() { name= "Unknown"};
+            HDL_ON.Entity.Function device = new Entity.Function() { name = "Unknown" };
             List<HDL_ON.Entity.Function> deviceLists = GetGatewayDeviceList();
             foreach (var dev in deviceLists)
             {
@@ -216,7 +216,7 @@
         /// <returns></returns>
         public static HDL_ON.Entity.Scene GetSecne(string sid)
         {
-            HDL_ON.Entity.Scene scene = new Entity.Scene() { name = "Unknown"};
+            HDL_ON.Entity.Scene scene = new Entity.Scene() { name = "Unknown" };
             List<HDL_ON.Entity.Scene> sceneLists = GetSceneList();
             foreach (var sce in sceneLists)
             {
@@ -294,17 +294,17 @@
         /// </summary>
         /// <param name="deviceList">璁惧鍒楄〃</param>
         /// <returns></returns>
-        public static List<string> GetDeviceTypeList(List<HDL_ON.Entity.Function> deviceList) 
+        public static List<string> GetDeviceTypeList(List<HDL_ON.Entity.Function> deviceList)
         {
-            List<string> deviceStrTypeList = new List<string>(); 
+            List<string> deviceStrTypeList = new List<string>();
             deviceStrTypeList.Clear();
-            var lightjosn = deviceList.Find((device) => device.functionType == FunctionType.Relay || device.functionType == FunctionType.Dimmer|| device.functionType == FunctionType.ColorTemperature || device.functionType == FunctionType.RGB|| device.functionType == FunctionType.RGBW);
+            var lightjosn = deviceList.Find((device) => device.functionType == FunctionType.Relay || device.functionType == FunctionType.Dimmer || device.functionType == FunctionType.ColorTemperature || 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|| device.functionType == FunctionType.MotorCurtain|| device.functionType == FunctionType.RollingShutter);
+            var curtainjosn = deviceList.Find((device) => device.functionType == FunctionType.Curtain || device.functionType == FunctionType.MotorCurtain || device.functionType == FunctionType.RollingShutter);
             if (curtainjosn != null)
             {
                 deviceStrTypeList.Add(Language.StringByID(StringId.Curtain));
@@ -360,11 +360,13 @@
         /// 鏉′欢/鐩爣鏀寔璁惧
         /// </summary>
         /// <returns></returns>
-        public static List<FunctionType> GetSupportEquipment(string if_type)  
+        public static List<FunctionType> GetSupportEquipment(string if_type)
         {
             List<FunctionType> deviceTypeList = new List<FunctionType>();
-            switch (if_type) {
-                case condition_if: {
+            switch (if_type)
+            {
+                case condition_if:
+                    {
                         deviceTypeList.Add(FunctionType.Relay);
                         deviceTypeList.Add(FunctionType.RGB);
                         deviceTypeList.Add(FunctionType.RGBW);
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 13afea6..37e2d2d 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputView.cs
@@ -30,8 +30,8 @@
         /// </summary>
         public Button btnIcon= new Button
         {
-            Width= Application.GetMinRealAverage(28),
-            Height =Application.GetMinRealAverage(28),
+            Width= Application.GetRealWidth(28),
+            Height =Application.GetRealWidth(28),
             //Y = Application.GetRealHeight(8),
             X = Application.GetRealWidth(TextSize.left12),
             
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TimeHorizonView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TimeHorizonView.cs
index 14ca130..6fb8a81 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TimeHorizonView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TimeHorizonView.cs
@@ -64,7 +64,7 @@
             TextID = StringId.timeTipText,
             TextSize = TextSize.text12,
             TextColor = CSS.CSS_Color.textRedColor,
-            Width = Application.GetRealWidth(306),
+            Width = Application.GetRealWidth(340-20),
             Height = Application.GetRealHeight(17),
             X = Application.GetRealWidth(20),
             Y = Application.GetRealHeight(58),
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
index 2aded38..e5a83d5 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
@@ -70,6 +70,7 @@
                     Send.switchLogic(currLogic);
 
                 };
+                GetSelectIcon(logicView.frameLayout, currLogic);
                 //if (i==0)闄嶅簭鎺掑垪
                 if (Logic.LogicList.Count - 1 == i)
                 {
@@ -164,32 +165,31 @@
         public static string GetWeekString(List<string> weekList)
         {
             string weekTextName = "";
-
-            if (weekList.Contains("0"))
+            if (weekList.Contains("1"))
             {
                 weekTextName += Language.StringByID(StringId.monday) + ",";
             }
-            if (weekList.Contains("1"))
+            if (weekList.Contains("2"))
             {
                 weekTextName += Language.StringByID(StringId.tuesday) + ",";
             }
-            if (weekList.Contains("2"))
+            if (weekList.Contains("3"))
             {
                 weekTextName += Language.StringByID(StringId.wednesday) + ",";
             }
-            if (weekList.Contains("3"))
+            if (weekList.Contains("4"))
             {
                 weekTextName += Language.StringByID(StringId.thursday) + ",";
             }
-            if (weekList.Contains("4"))
+            if (weekList.Contains("5"))
             {
                 weekTextName += Language.StringByID(StringId.friday) + ",";
             }
-            if (weekList.Contains("5"))
+            if (weekList.Contains("6"))
             {
                 weekTextName += Language.StringByID(StringId.saturday) + ",";
             }
-            if (weekList.Contains("6"))
+            if (weekList.Contains("0"))
             {
                 weekTextName += Language.StringByID(StringId.sunday) + ",";
             }
@@ -199,6 +199,8 @@
             }
             return weekTextName.TrimEnd(',');
         }
+
+
         /// <summary>
         /// 鑾峰彇姣忔湀鐨勫瓧绗︿覆
         /// </summary>
@@ -231,7 +233,7 @@
             List<string> logicIdList = new List<string>();
             //鑾峰彇閫昏緫ID鍒楄〃
             var idStr = Send.getLogicIdList();
-            if (idStr.Code == "0" && idStr.Data != null&& idStr.Data.ToString()!="")
+            if (idStr.Code == "0" && idStr.Data != null && idStr.Data.ToString() != "")
             {
                 var date = Newtonsoft.Json.JsonConvert.SerializeObject(idStr.Data);
                 var dateList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Date>>(date);
@@ -283,6 +285,153 @@
             }
             return false;
         }
+
+        /// <summary>
+        /// 鏄剧ず鏉′欢鎴栬�呯洰鏍囩被鍨嬪浘鏍�
+        /// </summary>
+        /// <param name="layouFrame">鐖舵帶浠�</param>
+        /// <param name="logic">褰撳墠閫昏緫</param>
+        private static void GetSelectIcon(FrameLayout layouFrame, Logic logic)
+        {
+
+            //閲嶆柊鎺掑垪鍥炬爣搴忓彿
+            List<int> iconIntValue = new List<int>();
+            iconIntValue.Clear();
+
+            //1-10(琛ㄧず鏉′欢鍥炬爣)鑷繁灞�閮ㄥ畾涔変负浜嗘樉绀洪�変腑鏉′欢绫诲瀷鍥炬爣
+            //1-鏃堕棿鍥炬爣
+            //2-鍔熻兘鍥炬爣
+            for (int i = 0; i < logic.input.Count; i++)
+            {
+
+                var int1 = int.Parse(logic.input[i].condition_type);
+                int iconInt = 0;
+                switch (int1)
+                {
+                    case 1:
+                    case 2:
+                        {
+                            iconInt = 1;
+
+                        }
+                        break;
+                    case 3:
+                        {
+                            iconInt = 2;
+
+                        }
+                        break;
+                }
+
+                if (!iconIntValue.Contains(iconInt))
+                {
+                    iconIntValue.Add(iconInt);
+                }
+
+            }
+
+            //鍒嗗壊鏉′欢鍜岀洰鏍囩殑鍥炬爣
+            iconIntValue.Add(11);
+
+            //12-20(琛ㄧず鐩爣鍥炬爣)鑷繁灞�閮ㄥ畾涔変负浜嗘樉绀洪�変腑鐩爣绫诲瀷鍥炬爣
+            //12-鍔熻兘鍥炬爣
+            //13-鍦烘櫙鍥炬爣
+            //14-寤舵椂鍥炬爣
+            for (int i = 0; i < logic.output.Count; i++)
+            {
+                var int1 = int.Parse(logic.output[i].target_type);
+                int iconInt = 0;
+                switch (int1)
+                {
+                    case 1:
+                        {
+                            iconInt = 12;
+
+                        }
+                        break;
+                    case 2:
+                        {
+                            iconInt = 13;
+
+                        }
+                        break;
+                    case 3:
+                        {
+                            iconInt = 14;
+
+                        }
+                        break;
+                }
+
+                if (!iconIntValue.Contains(iconInt))
+                {
+                    iconIntValue.Add(iconInt);
+                }
+            }
+            //鍥炬爣鎺т欢鐨勭埗鎺т欢
+            FrameLayout frame = new FrameLayout {
+                Height=Application.GetRealHeight(40),
+                Width=Application.GetRealWidth(275),
+                Y= Application.GetRealHeight(56),
+            };
+            layouFrame.AddChidren(frame);
+
+
+            for (int i = 0; i < iconIntValue.Count; i++)
+            {
+                //鍥炬爣鎺т欢
+                Button btnIcon = new Button
+                {
+                    Width = Application.GetRealWidth(28),
+                    Height = Application.GetRealWidth(28),
+                    Gravity=Gravity.CenterVertical,
+                };
+                frame.AddChidren(btnIcon);
+
+                if (i == 0)
+                {
+                    btnIcon.X = Application.GetRealWidth(12);
+                }
+                else
+                {
+                    btnIcon.X = Application.GetRealWidth(12+(28+4)*i);
+                }
+                string strIcon = "";
+                switch (iconIntValue[i]) {
+                  
+                    case 1: {
+                            strIcon = "LogicIcon/selectTheTime.png";
+                        }
+                        break;
+                    case 2:
+                        {
+
+                            strIcon = "LogicIcon/selectTheFun.png";
+                        }
+                        break;
+                    case 11:
+                        {
+                            //鍒嗗壊鏉′欢鍜岀洰鏍囩殑鍥炬爣
+                            strIcon = "LogicIcon/link.png";
+                        } break;
+                    case 12:
+                        {
+
+                            strIcon = "LogicIcon/selectTheFun.png";
+                        }
+                        break;
+                    case 13: {
+                            strIcon = "LogicIcon/selectTheScene.png";
+                        } break;
+                    case 14: {
+                            //strIcon = "LogicIcon/timeicon.png";
+                        }
+                        break;
+
+                }
+                btnIcon.UnSelectedImagePath = strIcon;
+            }
+        }
     }
     class Date
     {
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
new file mode 100644
index 0000000..b72d257
--- /dev/null
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
@@ -0,0 +1,145 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared;
+namespace HDL_ON.UI.UI2.Intelligence.Automation
+{
+    public class PublicInterface
+    {
+        /// <summary>
+        /// 鍗曢�夋嫨
+        /// </summary>
+        /// <param name="frameLayout">鐖舵帶浠�</param>
+        /// <param name="list">鏄剧ず鏁版嵁婧�</param>
+        /// <param name="titleText"></param>
+        /// <param name="stateText">涔嬪墠鐘舵�佹枃鏈�</param>
+        /// <param name="action">杩斿洖鍊�</param>
+        public void SingleSelectionShow(FrameLayout frameLayout, List<string> list, string titleText, string stateText, Action<string> action)
+        {
+            LogicView.DateView view = new LogicView.DateView();
+            view.btnTitle.Text = titleText;
+            view.FLayoutView(frameLayout, list.Count);
+            view.btnCancel.MouseUpEventHandler += (sender, e) =>
+            {
+                //绉婚櫎fLayout鐣岄潰
+                frameLayout.RemoveFromParent();
+            };
+            ///瀹氫箟涓�涓狟tn璁板綍閫変腑鐘舵��
+            Button checkBtn = new Button
+            {
+                Tag = "unknown",
+            };
+            for (int i = 0; i < list.Count; i++)
+            {
+                string str = list[i];
+                LogicView.CheckView checkView = new LogicView.CheckView();
+                checkView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
+                view.frameLayout.AddChidren(checkView.FLayoutView());
+                checkView.btnText.Text = str;
+                checkView.btnClick.Tag = str;//鏍囪
+
+                if (stateText == str)
+                {
+                    //鏄剧ず涔嬪墠鐨勯�変腑鐘舵��
+                    checkBtn.IsSelected = false;
+                    checkView.btnCheckIcon.IsSelected = true;
+                    checkBtn = checkView.btnCheckIcon;
+                    checkBtn.Tag = checkView.btnClick.Tag.ToString();
+                }
+                //鐐瑰嚮浜嬩欢
+                checkView.btnClick.MouseUpEventHandler += (sender1, e1) =>
+                {
+                    checkBtn.IsSelected = false;
+                    checkView.btnCheckIcon.IsSelected = true;
+                    checkBtn = checkView.btnCheckIcon;
+                    checkBtn.Tag = checkView.btnClick.Tag.ToString();
+                };
+
+            }
+            view.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
+            {
+                if (checkBtn.Tag.ToString() == "unknown")
+                {
+                    return;
+                }
+                action(checkBtn.Tag.ToString());
+                //绉婚櫎fLayout鐣岄潰
+                frameLayout.RemoveFromParent();
+            };
+
+        }
+        /// <summary>
+        /// 澶氶�夋嫨
+        /// </summary>
+        /// <param name="frameLayout">鐖舵帶浠�</param>
+        /// <param name="list">鏄剧ず鏁版嵁婧�</param>
+        /// <param name="titleText"></param>
+        /// <param name="stateTextList">涔嬪墠鐘舵�佹枃鏈�</param>
+        /// <param name="action">杩斿洖鍊�</param>
+        public void MultiSelectShow(FrameLayout frameLayout, List<string> list, string titleText, List<string> stateTextList, Action<List<string>> action)
+        {
+            LogicView.DateView view = new LogicView.DateView();
+            view.btnTitle.Text = titleText;
+            view.FLayoutView(frameLayout, list.Count);
+            view.btnCancel.MouseUpEventHandler += (sender, e) =>
+            {
+                //绉婚櫎fLayout鐣岄潰
+                view.frameLayout.RemoveFromParent();
+            };
+            for (int i = 0; i < list.Count; i++)
+            {
+                string str = list[i];
+                LogicView.CheckView checkView = new LogicView.CheckView();
+                checkView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
+                view.frameLayout.AddChidren(checkView.FLayoutView());
+                checkView.btnText.Text = str;
+                checkView.btnClick.Tag = str;//鏍囪
+
+                if (stateTextList.Contains(str))
+                {
+                    //鏄剧ず涔嬪墠鐨勯�変腑鐘舵��
+                    checkView.btnCheckIcon.IsSelected = true;
+                }
+                //鐐瑰嚮浜嬩欢
+                checkView.btnClick.MouseUpEventHandler += (sender1, e1) =>
+                {
+
+                    string clickIndex = checkView.btnClick.Tag.ToString();
+                    checkView.btnClick.IsSelected = !checkView.btnClick.IsSelected;
+                    if (checkView.btnClick.IsSelected)
+                    {
+                        checkView.btnCheckIcon.IsSelected = true;
+                        if (!stateTextList.Contains(clickIndex))
+                        {
+                            //娣诲姞閫変腑鏁版嵁
+                            stateTextList.Add(clickIndex);
+                        }
+                    }
+                    else
+                    {
+                        checkView.btnCheckIcon.IsSelected = false;
+                        if (stateTextList.Contains(clickIndex))
+                        {
+                            //绉婚櫎閫変腑鏁版嵁
+                            stateTextList.Remove(clickIndex);
+                        }
+                    }
+
+                };
+
+            }
+            view.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
+            {
+                if (stateTextList.Count == 0)
+                {
+                    return;
+                }
+                action(stateTextList);
+                //绉婚櫎fLayout鐣岄潰
+                frameLayout.RemoveFromParent();
+            };
+
+        }
+
+
+    }
+}
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
index 407b8d4..ab6bb14 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -1,4 +1,4 @@
-锘縰sing System;
+using System;
 using System.IO;
 using System.Net;
 using HDL_ON.DAL.Server;
@@ -9,23 +9,37 @@
 {
     public  class Send
     {
-        /// <summary>
-        /// 浣忓畢ID
-        /// </summary>
-        public static string homeId = UserInfo.Current.CurReginID;
-        /// <summary>
-        /// 缃戝叧ID
-        /// </summary>
-        public static string gatewayId = DriverLayer.Control.Ins.GatewayId;
-
-        ///// <summary>
-        ///// 缃戝叧ID
-        ///// </summary>
-        //public static string gatewayId =Entity.DB_ResidenceData.residenceData.HomeGateway.gatewayId;
         ///// <summary>
         ///// 浣忓畢ID
         ///// </summary>
-        //public static string homeId = Entity.DB_ResidenceData.residenceData.HomeGateway.homeId;
+        //public static string homeId = Entity.DB_ResidenceData.residenceData.CurReginID;
+        ///// <summary>
+        ///// 缃戝叧ID锛堢妗℃湁缃戝叧ID鍗磋繑鍥炴槸MAC锛�
+        ///// </summary>
+        //public static string gatewayId = DriverLayer.Control.Ins.GatewayId;
+
+        public static string homeId = UserInfo.Current.CurReginID;
+
+        /// <summary>
+        /// 缃戝叧ID(鑾峰彇鍢変箰缃戝叧ID)
+        /// </summary>
+        public static string gatewayId
+        {
+            get
+            {
+                if (Entity.DB_ResidenceData.residenceData.HomeGateway == null)
+                {
+                    return "";
+                }
+                return Entity.DB_ResidenceData.residenceData.HomeGateway.gatewayId;
+            }
+        }
+        
+        /// <summary>
+        /// 浣忓畢ID
+        /// </summary>
+        public static string homeId = Entity.DB_ResidenceData.residenceData.residecenInfo.RegionID;
+
 
         /// <summary>
         /// 鑾峰彇閫昏緫ID鍒楄〃
@@ -35,6 +49,12 @@
         {
             var jObject = new JObject { { "homeId", homeId } };
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_List);
+            //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
+            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
+            {
+                RefreshToken();
+                getLogicIdList();
+            }
             return responsePackNew;
         }
         /// <summary>
@@ -51,6 +71,12 @@
             }
             var jObject = new JObject { { "userLogicIds", jArray } };
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Info);
+            //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
+            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
+            {
+                RefreshToken();
+                getLogic(listIdList);
+            }
             return responsePackNew;
         }
         /// <summary>
@@ -124,6 +150,12 @@
                 logicjArray.Add(logicIfon);
                 var jObject = new JObject { { "homeId", homeId }, { "logics", logicjArray } };
                 responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add);
+                //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
+                if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
+                {
+                    RefreshToken();
+                    AddLogic(logic);
+                }
 
             }
             catch (Exception e)
@@ -206,7 +238,12 @@
                 logicjArray.Add(logicIfon);
                 var jObject = new JObject { { "homeId", homeId }, { "logics", logicjArray } };
                 responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update);
-
+                //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
+                if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
+                {
+                    RefreshToken();
+                    updateLogic(logic);
+                }
             }
             catch (Exception e)
             {
@@ -226,6 +263,12 @@
             jArray.Add(logic.userLogicId);
             var jObject = new JObject { { "userLogicIds", jArray } };
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Delete);
+            //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
+            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
+            {
+                RefreshToken();
+                delLogic(logic);
+            }
             return responsePackNew;
         }
         /// <summary>
@@ -239,6 +282,12 @@
             jArray.Add(job);
             var jObject = new JObject { { "logics", jArray } };
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Enable);
+            //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
+            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
+            {
+                RefreshToken();
+                switchLogic(logic);
+            }
             return responsePackNew;
         }
         /// <summary>
@@ -261,6 +310,13 @@
             return HttpUtil.RequestHttpsPost(api_Url, requestJson);
 
         }
-      
+        /// <summary>
+        /// 鍒锋柊Token
+        /// </summary>
+        public static void RefreshToken()
+        {
+            IMessageCommon.Current.StartRefreshToken();
+        }
+
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs
index 14a41da..5f4320a 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs
@@ -189,7 +189,7 @@
             {
                 TextSize = LogicView.TextSize.text12,
                 Width = Application.GetRealWidth(32 + 3),
-                Height = Application.GetRealHeight(20),
+                Height = Application.GetRealHeight(17),
                 TextColor = CSS.CSS_Color.textCancelColor,
                 Y = Application.GetRealHeight(17),
                 X = Application.GetRealWidth(260),
@@ -212,7 +212,7 @@
             {
                 TextSize = LogicView.TextSize.text12,
                 Width = Application.GetRealWidth(32 + 3),
-                Height = Application.GetRealHeight(20),
+                Height = Application.GetRealHeight(17),
                 TextColor = CSS.CSS_Color.textCancelColor,
                 Y = Application.GetRealHeight(17),
                 X = Application.GetRealWidth(260),

--
Gitblit v1.8.0