From 92f690c0557409b6c23e6b864a6623912c67df4e Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 06 六月 2023 11:50:49 +0800
Subject: [PATCH] Merge branch 'Dev-Branch' into Dev-Wxr

---
 HDL-ON_iOS/Resources/Language.ini                                 |   16 ++
 HDL-ON_Android/Assets/Language.ini                                |   16 ++
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs            |   10 +
 HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs    |   57 +++++++
 HDL-ON_Android/Resources/Resource.designer.cs                     |    2 
 HDL-ON_iOS/HDL-ON_iOS.csproj                                      |   27 +++
 HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs |  103 ++++++++++++++
 HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs                  |    4 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs                   |    8 +
 HDL_ON/Common/R.cs                                                |   13 +
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TimeView.cs     |  137 +++++++++++++++++++
 HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs               |    2 
 12 files changed, 382 insertions(+), 13 deletions(-)

diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index 5edc896..9b3e021 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -1149,6 +1149,9 @@
 7166=Camera
 7167=Main switch
 7168=PM10
+7169=Time of duration
+7170=Human presence detection
+7171=continue
 
 8501=Video door lock
 8502=Electric quantity
@@ -2432,6 +2435,10 @@
 7166=鎽勫儚澶�
 7167=鎬绘帶寮�鍏�
 7168=PM10
+7169=鎸佺画鏃堕棿
+7170=浜轰綋瀛樺湪妫�娴�
+7171=鎸佺画
+
 
 
 8501=瑙嗛闂ㄩ攣
@@ -3711,6 +3718,9 @@
 7166=Camera
 7167=Main switch
 7168=PM10
+7169=Time of duration
+7170=Human presence detection
+7171=continue
 
 8501=Video door lock
 8502=Electric quantity
@@ -4985,6 +4995,9 @@
 7166=Camera
 7167=Main switch
 7168=PM10
+7169=Time of duration
+7170=Human presence detection
+7171=continue
 
 8501=Video door lock
 8502=Electric quantity
@@ -6258,6 +6271,9 @@
 7166=Camera
 7167=Main switch
 7168=PM10
+7169=Time of duration
+7170=Human presence detection
+7171=continue
 
 8501=Video door lock
 8502=Electric quantity
diff --git a/HDL-ON_Android/Resources/Resource.designer.cs b/HDL-ON_Android/Resources/Resource.designer.cs
index b127030..acf2224 100644
--- a/HDL-ON_Android/Resources/Resource.designer.cs
+++ b/HDL-ON_Android/Resources/Resource.designer.cs
@@ -14,7 +14,7 @@
 {
 	
 	
-	[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.2.8.165")]
+	[global::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 f55067f..e420bca 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -80,6 +80,8 @@
         <Reference Include="System.Xml" />
         <Reference Include="System.Core" />
         <Reference Include="Xamarin.iOS" />
+        <Reference Include="System.Numerics" />
+        <Reference Include="System.Numerics.Vectors" />
         <Reference Include="System.Web.Services" />
         <Reference Include="Shared.IOS.TBL">
           <HintPath>..\DLL\Shared.IOS.TBL.dll</HintPath>
@@ -118,10 +120,16 @@
     </ItemGroup>
     <ItemGroup>
       <PackageReference Include="Newtonsoft.Json">
-        <Version>13.0.3</Version>
+        <Version>13.0.1</Version>
       </PackageReference>
       <PackageReference Include="MQTTnet">
         <Version>3.1.0</Version>
+      </PackageReference>
+      <PackageReference Include="Microsoft.AppCenter.Analytics">
+        <Version>4.4.0</Version>
+      </PackageReference>
+      <PackageReference Include="Microsoft.AppCenter.Crashes">
+        <Version>4.4.0</Version>
       </PackageReference>
       <PackageReference Include="ZXing.Net.Mobile">
         <Version>2.4.1</Version>
@@ -439,6 +447,20 @@
         <ImageAsset Include="Assets.xcassets\wifi_bg.imageset\wifi_bg.png" />
         <ImageAsset Include="Assets.xcassets\device_bg.imageset\Contents.json" />
         <ImageAsset Include="Assets.xcassets\device_bg.imageset\device_bg.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\12422688.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\8281792.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\26881242.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1792828.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\11252436.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\24361125.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640960.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\6401136.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\320480.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640960-1.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\6401136-1.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\12422208.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\7501334.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\22081242.png" />
         <ImageAsset Include="Resources\Assets.xcassets\Contents.json" />
         <ImageAsset Include="Resources\Assets.xcassets\launchIcon2.imageset\Contents.json" />
         <ImageAsset Include="Resources\Assets.xcassets\launchIcon2.imageset\launchIcon2.png" />
@@ -1566,7 +1588,6 @@
       <BundleResource Include="Resources\Phone\FunctionIcon\Icon\securitydoorezviz.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\DoorLock\VideoDoorlockClose1.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\DoorLock\VideoDoorLockOpen1.png" />
-      <BundleResource Include="Resources\Phone\LogicIcon\selectlocation.png" />
     </ItemGroup>
     <ItemGroup>
       <ITunesArtwork Include="iTunesArtwork" />
@@ -1588,6 +1609,8 @@
       <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\58x58-1.png" />
       <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\40x40-2.png" />
       <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\80x80-1.png" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\.DS_Store" />
+      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Contents.json" />
       <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\1024.png" />
     </ItemGroup>
     <ItemGroup>
diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini
index 5edc896..9b3e021 100644
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -1149,6 +1149,9 @@
 7166=Camera
 7167=Main switch
 7168=PM10
+7169=Time of duration
+7170=Human presence detection
+7171=continue
 
 8501=Video door lock
 8502=Electric quantity
@@ -2432,6 +2435,10 @@
 7166=鎽勫儚澶�
 7167=鎬绘帶寮�鍏�
 7168=PM10
+7169=鎸佺画鏃堕棿
+7170=浜轰綋瀛樺湪妫�娴�
+7171=鎸佺画
+
 
 
 8501=瑙嗛闂ㄩ攣
@@ -3711,6 +3718,9 @@
 7166=Camera
 7167=Main switch
 7168=PM10
+7169=Time of duration
+7170=Human presence detection
+7171=continue
 
 8501=Video door lock
 8502=Electric quantity
@@ -4985,6 +4995,9 @@
 7166=Camera
 7167=Main switch
 7168=PM10
+7169=Time of duration
+7170=Human presence detection
+7171=continue
 
 8501=Video door lock
 8502=Electric quantity
@@ -6258,6 +6271,9 @@
 7166=Camera
 7167=Main switch
 7168=PM10
+7169=Time of duration
+7170=Human presence detection
+7171=continue
 
 8501=Video door lock
 8502=Electric quantity
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index 1d4c2ab..971b2ab 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -3238,6 +3238,19 @@
         /// PM210
         /// </summary>
         public const int pm10 = 7168;
+        /// <summary>
+        /// 鎸佺画鏃堕棿
+        /// </summary>
+        public const int chixushijian = 7169;
+        /// <summary>
+        /// 浜轰綋瀛樺湪妫�娴�
+        /// </summary>
+        public const int rentijiance = 7170;
+        /// <summary>
+        /// 鎸佺画
+        /// </summary>
+        public const int chixu = 7171;
+
 
         /// <summary>
         /// 瑙嗛闂ㄩ攣
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
index 0cf91cc..32a9a61 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -36,6 +36,12 @@
         /// 鍙瀵硅涓撶敤
         /// </summary>
         private string identifier;
+        /// <summary>
+        /// 浜轰綋浼犳劅鍣ㄦ寔缁椂闂翠笓鐢�
+        /// </summary>
+        private string hold_time=string.Empty;
+
+        
 
         private static ConditionDeviceFunList m_Current = null;
 
@@ -184,6 +190,59 @@
                         if (edit)
                         {
                             GetEditState(device, index, view.btnState, null, null, null);
+                        }
+                    }
+                    break;
+                //浜轰綋瀛樺湪浼犳劅鍣�
+                case SPK.SensorPirHold:
+                    {
+                       
+
+                        LogicView.FunTypeView view1 = new LogicView.FunTypeView();
+                        view1.btnText.TextID = StringId.rentijiance;
+                        view1.btnText.Name = Language.StringByID(StringId.rentijiance);
+                        fLayout.AddChidren(view1.FLayoutView());
+                        view1.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            DeviceView(device, view1.btnState, StringId.youren, StringId.wuren);
+
+                        };
+
+                        LogicView.FunTypeView view2 = new LogicView.FunTypeView();
+                        view2.frameLayout.Y = view1.frameLayout.Bottom;
+                        view2.btnText.TextID = StringId.chixushijian;
+                        fLayout.AddChidren(view2.FLayoutView());
+                        view2.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            //涓荤晫闈㈡帶浠�
+                            FrameLayout fLayout = new FrameLayout
+                            {
+                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+                            };
+                            this.AddChidren(fLayout);
+                            TimeView(fLayout, device, view2.btnState);
+
+                        };
+
+
+                        if (edit)
+                        {
+                            try
+                            {
+                                Input inputs = Logic.currlogic.input[index];
+                                if (!string.IsNullOrEmpty(inputs.hold_time) && int.Parse(inputs.hold_time) > 0)
+                                {
+                                    int time = int.Parse(inputs.hold_time);
+                                    int h = time / (60 * 60);
+                                    int m = time % (60 * 60) / 60;
+                                    int s = (time % (60 * 60) % 60);
+                                    view2.btnState.Text = inputs.hold_time + "s";
+                                    view2.btnState.Name = h + ":" + m + ":" + s;
+                                    this.hold_time = inputs.hold_time;
+                                }
+                            }
+                            catch { }
+                            GetEditState(device, index, view1.btnState, view2.btnState, null, null);
                         }
                     }
                     break;
@@ -694,6 +753,11 @@
                     inputDevice.condition_type = "9";
                     inputDevice.identifier = this.identifier;
                 }
+                else if (device.spk == SPK.SensorPirHold)
+                {
+                    //浜轰綋瀛樺湪浼犳劅鍣�
+                    inputDevice.hold_time = this.hold_time;
+                }
 
 
                 if (edit)
@@ -737,6 +801,7 @@
             }
 
         }
+
         /// <summary>
         /// 璁惧閫夋嫨鏉′欢鐣岄潰
         /// </summary>
@@ -779,6 +844,7 @@
                             }
                         }
                         break;
+                    case SPK.SensorPirHold:
                     case SPK.SensorDuiShe:
                     case SPK.SensorShanLan:
                     case SPK.SensorPir:
@@ -1191,6 +1257,43 @@
         }
 
         /// <summary>
+        /// 鏃堕棿鏂规硶
+        /// </summary>
+        /// <param name="fLayout">鍦ㄥ摢涓晫闈㈡樉绀�</param>
+        /// <param name="edit">锛坱rue=缂栬緫锛沠alse=鏂板缓锛�</param>
+        /// <param name="index">缂栬緫鏉′欢鐨勭储寮�</param>
+        private void TimeView(FrameLayout fLayout,Function device, Button button)
+        {
+
+            LogicView.TimeView timePointView = new LogicView.TimeView();
+            timePointView.FLayoutView(fLayout);
+            timePointView.Time(fLayout, button.Name, (timeValue) =>
+            {
+                try
+                {
+                    if (timeValue.Contains(":"))
+                    {
+                        string[] ary = timeValue.Split(':');
+
+                        int h = int.Parse(ary[0]) * 60 * 60;
+                        int m = int.Parse(ary[1]) * 60;
+                        int s = int.Parse(ary[2]);
+                        this.hold_time = (h + m + s).ToString();
+                        if (button != null)
+                        {
+                            button.Text = this.hold_time + "s";
+                            button.Name = timeValue;
+                        }
+                        selectedState = device.spk + "_" + timeValue;
+                    }
+                }
+                catch { }
+
+            });
+
+        }
+
+        /// <summary>
         /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
         /// </summary>
         /// <param name="device">缂栬緫璁惧</param>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
index 7055171..014f3bb 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -247,7 +247,7 @@
                                         {
                                             inputView.btnState.Text = Language.StringByID(StringId.kaiqi);
                                         }
-                                       
+
                                     }
                                     break;
                                 case SPK.SensorUtrasonic:
@@ -307,12 +307,14 @@
                                     {
                                         string value = this.GetValue(dicList);
                                         inputView.btnState.Text = Language.StringByID(StringId.wuren);
-                                        if (value == "fall") {
+                                        if (value == "fall")
+                                        {
                                             inputView.btnState.Text = Language.StringByID(StringId.diedao);
                                         }
                                     }
                                     break;
-                                case SPK.SensorEnvironment:case SPK.SensorEnvironmentHailin:
+                                case SPK.SensorEnvironment:
+                                case SPK.SensorEnvironmentHailin:
                                 case SPK.SensorEnvironment2:
                                 case SPK.SensorEnvironment3:
                                     {
@@ -376,7 +378,7 @@
                                 case SPK.SensorTemperature:
                                     {
 
-                                        string str =this.GetText(dicList, "temperature");
+                                        string str = this.GetText(dicList, "temperature");
                                         inputView.btnState.Text = str;
                                     }
                                     break;
@@ -451,7 +453,7 @@
 
 
                                             }
-                                           
+
                                         }
                                         inputView.btnState.Text = s;
                                     }
@@ -462,7 +464,32 @@
                                         {
                                             inputView.btnState.Text = Language.StringByID(StringId.quyuruqingaojing);
                                         }
-                                        
+
+                                    }
+                                    break;
+                                case SPK.SensorPirHold:
+                                    {
+                                        string value = this.GetKeyValue("people_status", dicList);
+                                        if (string.IsNullOrEmpty(value))
+                                        {
+                                            inputView.btnState.Text = inputCondition.hold_time + "s";
+                                            break;
+
+                                        }
+                  
+                                        inputView.btnState.Text = Language.StringByID(StringId.wuren);
+                                        if (value == "true")
+                                        {
+                                            inputView.btnState.Text = Language.StringByID(StringId.youren);
+
+                                        }
+                                        if (!string.IsNullOrEmpty(inputCondition.hold_time) && int.Parse(inputCondition.hold_time) > 0)
+                                        {
+
+                                            inputView.btnState.Text += "鎸佺画" + inputCondition.hold_time + "s";
+                                        }
+
+
                                     }
                                     break;
                             }
@@ -1978,6 +2005,7 @@
                         }
                     }
                     break;
+              
                 case SPK.SensorGas:
                 case SPK.SensorSmoke:
                     {
@@ -2046,6 +2074,23 @@
                         }
                     }
                     break;
+                case SPK.SensorPirHold:
+                    {
+                        foreach (var dic in dicList)
+                        {
+                            string value = dic["value"];
+                            if (value == "true")
+                            {
+                                button1.Text = Language.StringByID(StringId.youren);
+                            }
+                            else
+                            {
+                                button1.Text = Language.StringByID(StringId.wuren);
+                            }
+                        }
+
+                    }
+                    break;
                 case SPK.SensorDoorWindow:
                     {
                         foreach (var dic in dicList)
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
index 370900f..e043cf8 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
@@ -106,6 +106,10 @@
         /// condition_type=9鏃朵娇鐢�
         /// </summary>
         public string identifier = "";
+        /// <summary>
+        /// 浜轰綋绉诲姩浼犳劅鍣紙甯︽寔缁椂闂达級
+        /// </summary>
+        public string hold_time = "";
         public List<Dictionary<string, string>> condition = new List<Dictionary<string, string>>();
         /// <summary>
         /// 鍦扮悊鍥存爮閰嶇疆
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
index 9ed7f66..4cd73dc 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -356,7 +356,7 @@
             {
                 return "MusicIcon/localMusic.png";
             }
-            else if (SPK.SensorPm10 == device.spk)
+            else if (SPK.SensorPm10 == device.spk || SPK.SensorPirHold == device.spk)
             {
                 return "LogicIcon/sensor.png";
             }
@@ -467,6 +467,8 @@
                 case SPK.SensorTVOC:
                 case SPK.SensorHcho:
                 case SPK.SensorHelp:
+                case SPK.SensorPirHold:
+                    
                     {
                         strPath = "LogicIcon/sensor.png";
                     }
@@ -562,6 +564,7 @@
                           || device.spk == SPK.SensorHcho
                           || device.spk == SPK.SensorHelp
                           || device.spk == SPK.SensorPm10
+                          || device.spk == SPK.SensorPirHold
             );
             if (sensor != null)
             {
@@ -686,6 +689,7 @@
                 functionTypeList.Add(SPK.SensorHcho);
                 functionTypeList.Add(SPK.SensorHelp);
                 functionTypeList.Add(SPK.SensorPm10);
+                functionTypeList.Add(SPK.SensorPirHold);
 
 
             }
@@ -781,6 +785,7 @@
                 functionTypeList.Add(SPK.SensorPm10);
                 functionTypeList.Add(SPK.VideoDoorLock);
                 functionTypeList.Add(SPK.AcIr);
+                functionTypeList.Add(SPK.SensorPirHold);
 
             }
 
@@ -842,6 +847,7 @@
                         deviceTypeList.Add(SPK.SensorPm10);
                         deviceTypeList.Add(SPK.VideoDoorLock);
                         deviceTypeList.Add(SPK.AcIr);
+                        deviceTypeList.Add(SPK.SensorPirHold);
 
                     }
                     break;
@@ -1186,7 +1192,7 @@
                  //  new Entity.Function { sid = "1234567892", name = "婀垮害浼犳劅鍣�", spk = Entity.SPK.SensorHumidity },
                     //new Entity.Function { sid = "12345678933456", name = "闂ㄩ攣", spk = Entity.SPK.DoorLock },
                     //  new Entity.Function { sid = "1234567895444", name = "瑙嗛闂ㄩ攣", spk = Entity.SPK.VideoDoorLock },
-                      new Entity.Function { sid = "12345678968888", name = "pm10", spk = Entity.SPK.LightDimming },
+                      new Entity.Function { sid = "12345678968888", name = "浜轰綋瀛樺湪浼犳劅鍣�", spk = Entity.SPK.SensorPirHold },
                       //  new Entity.Function { sid = "1234567897", name = "姣背娉紶鎰熷櫒1", spk = Entity.SPK.SenesorMegahealth2 },
                       // new Entity.Function { sid = "1234567899", name = "闂ㄧ浼犳劅鍣�", spk = Entity.SPK.SensorDoorWindow },
                       //  new Entity.Function { sid = "12345678991234", name = "HDL鏈烘鎵�", spk = Entity.SPK.MechanicalArm },
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TimeView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TimeView.cs
index a79324c..b45c5ae 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TimeView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TimeView.cs
@@ -81,7 +81,7 @@
             frameLayout.AddChidren(btnLine);
         }
         /// <summary>
-        /// 閫変腑鏃堕棿鐨勬柟娉�
+        /// 閫変腑鏃堕棿鐨勬柟娉�(鏃讹紝鍒�)
         /// </summary>
         /// <param name="fLayout">鐖舵帶浠�</param>
         /// <param name="currState">涔嬪墠鐘舵�佸��</param>
@@ -156,6 +156,120 @@
                 string hour = GethStringList()[index1].Split(' ')[0];
                 string minuet = GetmStringList()[index2].Split(' ')[0];
                 timepoint = hour + ":" + minuet;
+            };
+            //纭畾鐐瑰嚮浜嬩欢
+            btnConfirm.MouseUpEventHandler += (sender, e3) =>
+            {
+                action(timepoint);
+                //绉婚櫎fLayout鐣岄潰
+                fLayout.RemoveFromParent();
+
+            };
+        }
+        /// <summary>
+        /// 閫変腑鏃堕棿鐨勬柟娉�(鏃讹紝鍒嗭紝绉�)
+        /// </summary>
+        /// <param name="fLayout">鐖舵帶浠�</param>
+        /// <param name="currState">涔嬪墠鐘舵�佸��</param>
+        /// <param name="action">杩斿洖鏃堕棿鍊�</param>
+        public void Time(FrameLayout fLayout, string currState, Action<string> action)
+        {
+            //鍙栨秷鐐瑰嚮浜嬩欢
+            btnCancel.MouseUpEventHandler += (sender, e1) =>
+            {
+                //绉婚櫎fLayout鐣岄潰
+                fLayout.RemoveFromParent();
+            };
+            //鍔犺浇鏁版嵁鐣岄潰鐨勮缃柟娉�(鍒楄〃浜掍笉鑱斿姩)
+            mUIPickerView.setNPicker(GethStringList(), GetmStringList(), GetsStringList());
+            var systemHour = DateTime.Now.Hour; //鑾峰彇灏忔椂
+            var systeMinute = DateTime.Now.Minute;//鑾峰彇鍒嗛挓
+            var systeSecond = DateTime.Now.Second;//鑾峰彇绉�
+
+            int systemHourIndex = 0;
+            int systeMinuteIndex = 0;
+            int systeSecondIndex = 0;
+            for (int i = 0; i < GethIntList().Count; i++)
+            {
+                var currhour = GethIntList()[i];
+                if (systemHour == currhour)
+                {
+                    systemHourIndex = i;
+                    break;
+                }
+            }
+            for (int i = 0; i < GetmIntList().Count; i++)
+            {
+                var currminute = GetmIntList()[i];
+                if (systeMinute == currminute)
+                {
+                    systeMinuteIndex = i;
+                    break;
+                }
+            }
+            for (int i = 0; i < GetsIntList().Count; i++)
+            {
+                var currsecond= GetsIntList()[i];
+                if (systeSecond == currsecond)
+                {
+                    systeSecondIndex = i;
+                    break;
+                }
+            }
+
+            //榛樿鍒濆閫変腑鐘舵��
+            mUIPickerView.setCurrentItems(systemHourIndex, systeMinuteIndex, systeSecondIndex);
+            string currH = "";
+            string currM = "";
+            string currS = "";
+            if (systemHour < 10)
+            {
+                currH = "0" + systemHour.ToString();
+            }
+            else
+            {
+                currH = systemHour.ToString();
+            }
+            if (systeMinute < 10)
+            {
+                currM = "0" + systeMinute.ToString();
+            }
+            else
+            {
+                currM = systeMinute.ToString();
+            }
+            if (systeSecond < 10)
+            {
+                currS = "0" + systeMinute.ToString();
+            }
+            else
+            {
+                currS = systeMinute.ToString();
+            }
+            //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏃堕棿
+            string timepoint = currH + ":" + currM + ":" + currS;
+            if (!string.IsNullOrEmpty(currState))
+            {
+                int hIndex = GetValueIndex(currState, 0, 1, GethIntList());
+                int mIndex = GetValueIndex(currState, 1, 0, GetmIntList());
+                int sIndex = GetValueIndex(currState, 2, 0, GetsIntList());
+                //鏇存柊鍒濆鐘舵��
+                mUIPickerView.setCurrentItems(hIndex, mIndex, sIndex);
+                timepoint = currState;
+            }
+
+
+            //閫変腑鏃堕棿鍥炶皟鏂规硶,鏃堕棿鍙樺寲涓�娆″洖璋冧竴娆�
+            mUIPickerView.OnSelectChangeEvent += (index1, index2, index3) =>
+            {
+                try
+                {
+                    string hour = GethStringList()[index1].Split(' ')[0];
+                    string minuet = GetmStringList()[index2].Split(' ')[0];
+                    string second = GetmStringList()[index3].Split(' ')[0];
+                    timepoint = hour + ":" + minuet + ":" + second;
+                }
+                catch { }
             };
             //纭畾鐐瑰嚮浜嬩欢
             btnConfirm.MouseUpEventHandler += (sender, e3) =>
@@ -306,7 +420,22 @@
             }
             return mList;
         }
-       
+        /// <summary>
+        /// 鑾峰彇60绉掑垪琛�
+        /// </summary>
+        /// <returns></returns>
+        public List<int> GetsIntList()
+        {
+            //鍒濆鍖栧垪琛�
+            var mList = new List<int>();
+            for (int i = 0; i < 60; i++)
+            {
+                //娣诲姞鏁版嵁
+                mList.Add(i);
+            }
+            return mList;
+        }
+
         /// <summary>
         /// 鑾峰彇鏃堕棿鍊�
         /// </summary>
@@ -317,6 +446,10 @@
         /// <returns></returns>
         public int GetValueIndex(string str, int digit, int startIndex, List<int> list)
         {
+            if (string.IsNullOrEmpty(str))
+            {
+                return 0;
+            }
             int index = 0;
             int value = 0;
             if (str.Contains(":"))
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
index 98e5cd6..84ea1a0 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
@@ -366,6 +366,7 @@
             //2-鍔熻兘鍥炬爣
             //3-浜戠鍥炬爣
             //4-鍦烘櫙鍥炬爣
+            //5-鍦扮悊鍥存爮
             for (int i = 0; i < logic.input.Count; i++)
             {
                 if (logic.input[i] == null)
@@ -407,6 +408,7 @@
 
                         }
                         break;
+                   
                 }
 
                 if (!iconIntValue.Contains(iconInt))
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
index 8ea607a..7274673 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -114,6 +114,10 @@
                 {
                     var inputTypeJOb = new JObject { };
                     inputTypeJOb.Add("sid", dictionary.sid);
+                    if (!string.IsNullOrEmpty(dictionary.hold_time))
+                    {
+                        inputTypeJOb.Add("hold_time", dictionary.hold_time);
+                    }
                     inputTypeJOb.Add("condition_type", dictionary.condition_type);
                     if (dictionary.condition_type=="9") {
                         inputTypeJOb.Add("identifier", dictionary.identifier);
@@ -241,6 +245,10 @@
                 {
                     var inputTypeJOb = new JObject { };
                     inputTypeJOb.Add("sid", dictionary.sid);
+                    if (!string.IsNullOrEmpty(dictionary.hold_time))
+                    {
+                        inputTypeJOb.Add("hold_time", dictionary.hold_time);
+                    }
                     inputTypeJOb.Add("condition_type", dictionary.condition_type);
                     if (dictionary.condition_type == "9")
                     {

--
Gitblit v1.8.0