From 592974441a4df95fffd9167c90192da1a390b1c2 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期二, 06 六月 2023 11:51:12 +0800 Subject: [PATCH] Merge branch 'Dev-Branch' --- HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs | 251 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 208 insertions(+), 43 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs index 335597a..32a9a61 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs @@ -2,7 +2,7 @@ using Shared; using System.Collections.Generic; using HDL_ON.Entity; - +using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock; namespace HDL_ON.UI.UI2.Intelligence.Automation { @@ -36,6 +36,12 @@ /// 鍙瀵硅涓撶敤 /// </summary> private string identifier; + /// <summary> + /// 浜轰綋浼犳劅鍣ㄦ寔缁椂闂翠笓鐢� + /// </summary> + private string hold_time=string.Empty; + + private static ConditionDeviceFunList m_Current = null; @@ -89,6 +95,7 @@ //绌鸿皟 case SPK.AcStandard: case SPK.HvacAC: + case SPK.AcIr: //鍦扮儹 case SPK.FloorHeatStandard: case SPK.HvacFloorHeat: @@ -183,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; @@ -622,7 +682,7 @@ case SPK.VideoDoorLock: { LogicView.FunTypeView view1 = new LogicView.FunTypeView(); - view1.btnText.TextID=StringId.yonghurenyuan; + view1.btnText.TextID=StringId.kaimenrenyuan; view1.btnText.Name = Language.StringByID(StringId.shipinmensuo); fLayout.AddChidren(view1.FLayoutView()); view1.btnClick.MouseUpEventHandler += (sender, e) => @@ -693,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) @@ -736,6 +801,7 @@ } } + /// <summary> /// 璁惧閫夋嫨鏉′欢鐣岄潰 /// </summary> @@ -778,6 +844,7 @@ } } break; + case SPK.SensorPirHold: case SPK.SensorDuiShe: case SPK.SensorShanLan: case SPK.SensorPir: @@ -1059,37 +1126,54 @@ /// <param name="frame">褰撳墠鐣岄潰</param> /// <param name="device">褰撳墠璁惧</param> /// <param name="btnState">鏃х姸鎬�</param> - public void FaceAction(FrameLayout frame, Entity.Function device,Button btnState) { + public void FaceAction(FrameLayout frame, Entity.Function device, Button btnState) + { selectedState = device.spk + "_"; Loading loading = new Loading(); frame.AddChidren(loading); loading.Start(); - System.Threading.Tasks.Task.Run(() => + + CommonMethod.Current.SunThread(() => { try { - var faceIDList = Send.Current.GetListHomeFace(device.deviceId, true); - List<string> faceNameList = new List<string>(); - for (int i = 0; i < faceIDList.Count; i++) - { - var face = faceIDList[i]; - faceNameList.Add(face.userName); - } - Application.RunOnMainThread(() => + var faceIdList = Send.Current.GetListHomeFace(device.deviceId, true); + + CommonMethod.Current.MainThread(() => { loading.Hide(); + string stateValue = btnState.Tag == null ? "" : btnState.Tag.ToString(); PublicInterface publicInterface = new PublicInterface(); - publicInterface.FrameOrVv(this, faceNameList, new List<string> { btnState.Text }, device.name, (index) => - { - var face = faceIDList[index]; - //鐣岄潰鏄剧ず閫変腑鍊� - btnState.Text = face.userName; - //鏁版嵁灏佽 - AddDictionary("open_type", "1", "integer"); - AddDictionary("user_id", face.userId, "string"); + publicInterface.MultiSelectShow(this, faceIdList, device.name, stateValue, (indexeList) => + { + if (indexeList.Count > 0) + { + dicSateteList.Clear(); + string s = string.Empty; + string tag = string.Empty; + //鏁版嵁灏佽 + AddDictionary("open_type", "1", "integer"); + for (int i = 0; i < indexeList.Count; i++) + { - }, false); + if (i > faceIdList.Count) + { + continue; + } + var indexe = indexeList[i]; + var face = faceIdList[indexe]; + AddDictionary("user_id", face.userId, "string"); + s += face.userName; + s += ","; + tag += face.userId; + tag += "_"; + } + //鐣岄潰鏄剧ず閫変腑鍊� + btnState.Text = s; + btnState.Tag = tag; + } + }); }); } catch { } @@ -1117,30 +1201,45 @@ Loading loading = new Loading(); frame.AddChidren(loading); loading.Start(); - System.Threading.Tasks.Task.Run(() => + CommonMethod.Current.SunThread(() => { try { - var userList =FuntionControlView.VideoDoorLock.VideDoorLockSend.Current.GetVideoDoorLockUserListInfo(device); - List<string> userNameList = new List<string>(); - for (int i = 0; i < userList.Count; i++) + var faceIdList = Send.Current.GetVideoDoorLockUserListInfo(device); + CommonMethod.Current.MainThread(() => { - var user = userList[i]; - userNameList.Add(user.extUserName); - } - Application.RunOnMainThread(() => - { - loading.Hide(); - PublicInterface publicInterface = new PublicInterface();//鐢ㄦ埛鐣岄潰 - publicInterface.FrameOrVv(this, userNameList, new List<string> { btnState.Text }, device.name, (index) => - { - var userId = userNameList[index]; - //鐣岄潰鏄剧ず閫変腑鍊� - btnState.Text = userId; - //鏁版嵁灏佽 - AddDictionary("open_user", userId, "string"); - }, false); + loading.Hide(); + string stateValue = btnState.Text == null ? "" : btnState.Text.ToString(); + PublicInterface publicInterface = new PublicInterface(); + publicInterface.MultiSelectShow(this, faceIdList, device.name, stateValue, (indexeList) => + { + if (indexeList.Count > 0) + { + dicSateteList.Clear(); + string s = string.Empty; + string tag = string.Empty; + for (int i = 0; i < indexeList.Count; i++) + { + if (i > faceIdList.Count) + { + continue; + } + var indexe = indexeList[i]; + var face = faceIdList[indexe]; + //鏁版嵁灏佽<楂樿儨璇磋悿鐭抽偅杈规槸鎺ㄩ�佺敤鎴峰悕> + AddDictionary("open_user", face.userName, "string"); + s += face.userName; + s += ","; + tag += face.userId; + tag += "_"; + } + //鐣岄潰鏄剧ず閫変腑鍊� + btnState.Text = s; + btnState.Tag = tag; + } + + }); }); } @@ -1152,6 +1251,43 @@ loading.Hide(); }); } + + }); + + } + + /// <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 { } }); @@ -1266,16 +1402,45 @@ var dic = dictionaryB[i]; string key = dic["key"]; string comparatorValue = dic["comparator"]; + string value = dic["value"]; if (dictionaryA["key"] == key && dictionaryA["comparator"] == comparatorValue) { - //鍒ゆ柇鏄惁瀛樺湪 - valueInt = i; - break; + if (this.checkSpk()) + { + //鏈変簺璁惧闇�瑕佸鍔犺繖涓垽鏂� + if (dictionaryA["value"] == value) + { + //鍒ゆ柇鏄惁瀛樺湪 + valueInt = i; + break; + } + } + else + { + //鍒ゆ柇鏄惁瀛樺湪 + valueInt = i; + break; + } } } return valueInt; } /// <summary> + /// 妫�鏌ユ槸鍚︽敮鎸� + /// </summary> + /// <returns></returns> + private bool checkSpk() + { + if (this.function.spk == SPK.VideoDoorLock || + this.function.spk == SPK.doorgate + ) + { + return true; + } + return false; + + } + /// <summary> /// 鍒ゆ柇dictionaryB鏄惁瀹屾暣鍖呭惈鍙︿竴涓猟ictionaryA /// </summary> /// <param name="dictionaryA"></param> -- Gitblit v1.8.0