From 9508510f0b27da3278fa1161eb2ba3dd1e3e2030 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期三, 26 七月 2023 13:14:00 +0800 Subject: [PATCH] 2023年07月26日13:12:21 --- HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs | 187 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 182 insertions(+), 5 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs index 0cf91cc..a0ddf37 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 fLayout2 = new FrameLayout + { + BackgroundColor = CSS.CSS_Color.viewTrans60lucence, + }; + this.AddChidren(fLayout2); + TimeView(fLayout2, 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; @@ -637,6 +696,38 @@ } } break; + case SPK.Peephole: + LogicView.FunTypeView viewPeephole = new LogicView.FunTypeView(); + viewPeephole.btnText.TextID = StringId.ActivityDetection; + //viewPeephole.btnText.Name = Language.StringByID(StringId.shipinmensuo); + fLayout.AddChidren(viewPeephole.FLayoutView()); + viewPeephole.btnClick.MouseUpEventHandler += (sender, e) => + { + this.identifier = "pir_event";//浜轰綋鎰熷簲鍛婅 + this.DeviceView(device, viewPeephole.btnState, StringId.shi, StringId.offLogic, 1); + + }; + if (edit) + { + this.GetEditState(device, index, viewPeephole.btnState, null, null, null); + } + break; + case SPK.Ev_Ipcam: + LogicView.FunTypeView viewEzIpcam = new LogicView.FunTypeView(); + viewEzIpcam.btnText.TextID = StringId.ActivityDetection; + //viewEzIpcam.btnText.Name = Language.StringByID(StringId.shipinmensuo); + fLayout.AddChidren(viewEzIpcam.FLayoutView()); + viewEzIpcam.btnClick.MouseUpEventHandler += (sender, e) => + { + this.identifier = "motiondetect_event";//浜轰綋鎰熷簲鍛婅 + this.DeviceView(device, viewEzIpcam.btnState, StringId.shi, StringId.offLogic, 1); + + }; + if (edit) + { + this.GetEditState(device, index, viewEzIpcam.btnState, null, null, null); + } + break; } #region 淇濆瓨 @@ -688,11 +779,30 @@ inputDevice.condition = new List<Dictionary<string, string>>(); } } + else if(device.spk == SPK.Peephole) + { + //鐚溂-浜轰綋鎰熷簲鍛婅 + inputDevice.condition_type = "9"; + inputDevice.identifier = this.identifier; + inputDevice.condition = new List<Dictionary<string, string>>(); + } + else if(device.spk == SPK.Ev_Ipcam) + { + //钀ょ煶鎽勫儚澶�-绉诲姩鐩戞祴鍛婅 + inputDevice.condition_type = "9"; + inputDevice.identifier = this.identifier; + inputDevice.condition = new List<Dictionary<string, string>>(); + } else if (device.spk == SPK.VideoDoorLock) { ////钀ょ煶瑙嗛闂ㄩ攣 inputDevice.condition_type = "9"; inputDevice.identifier = this.identifier; + } + else if (device.spk == SPK.SensorPirHold) + { + //浜轰綋瀛樺湪浼犳劅鍣� + inputDevice.hold_time = this.hold_time; } @@ -737,6 +847,7 @@ } } + /// <summary> /// 璁惧閫夋嫨鏉′欢鐣岄潰 /// </summary> @@ -779,6 +890,7 @@ } } break; + case SPK.SensorPirHold: case SPK.SensorDuiShe: case SPK.SensorShanLan: case SPK.SensorPir: @@ -1191,6 +1303,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> @@ -1210,7 +1359,32 @@ //鏈夋暟鎹噸鏂拌祴鍊� dicSateteList.AddRange(dicList); } - InpOrOutLogicMethod.Current.EditDeviceState(device, dicList, button1, button2, button3, button4); + //浜嬩欢涓撶敤 + switch (device.spk) + { + case SPK.IpCam_Imou: + { + if (inputs.identifier == "ipcam_region_alram_event") + { + button1.Text = Language.StringByID(StringId.shi); + } + + } + break; + case SPK.Peephole: + if (inputs.identifier == "pir_event") + { + button1.Text = Language.StringByID(StringId.shi ); + } + break; + case SPK.Ev_Ipcam: + if (inputs.identifier == "motiondetect_event") + { + button1.Text = Language.StringByID(StringId.shi); + } + break; + } + InpOrOutLogicMethod.Current.EditDeviceState(device, dicList, button1, button2, button3, button4, ""); } /// <summary> /// 娣诲姞閫変腑鏁版嵁 @@ -1302,7 +1476,7 @@ string value = dic["value"]; if (dictionaryA["key"] == key && dictionaryA["comparator"] == comparatorValue) { - if (this.checkSpk()) + if (this.CheckSpk()) { //鏈変簺璁惧闇�瑕佸鍔犺繖涓垽鏂� if (dictionaryA["value"] == value) @@ -1326,7 +1500,7 @@ /// 妫�鏌ユ槸鍚︽敮鎸� /// </summary> /// <returns></returns> - private bool checkSpk() + private bool CheckSpk() { if (this.function.spk == SPK.VideoDoorLock || this.function.spk == SPK.doorgate @@ -1336,7 +1510,7 @@ } return false; - } + } /// <summary> /// 鍒ゆ柇dictionaryB鏄惁瀹屾暣鍖呭惈鍙︿竴涓猟ictionaryA /// </summary> @@ -1345,7 +1519,10 @@ /// <returns></returns> public bool IsContainsAll(List<Dictionary<string, string>> dictionaryA, List<Dictionary<string, string>> dictionaryB) { - + if (dictionaryA.Count == 0 || dictionaryB.Count == 0) { + //钀ょ煶鐚溂锛屾憚鍍忓ご锛屽ぇ鍗庢憚鍍忓ご鍙湁浜嬩欢锛屾病鏈夎緭鍏ユ潯浠� + return true; + } for (int i = 0; i < dictionaryA.Count; i++) { var dic = dictionaryA[i]; -- Gitblit v1.8.0