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 | 767 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 731 insertions(+), 36 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs index 01a0587..a0ddf37 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 { @@ -24,10 +24,44 @@ /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵�� /// </summary> private string selectedState = "unknown"; + /// <summary> + /// 鏄笉鏄啀娆$紪杈� + /// </summary> + private bool mEdit; + /// <summary> + /// 杈撳叆鏉′欢鍒楄〃绱㈠紩鍊� + /// </summary> + private int mIndex; + /// <summary> + /// 鍙瀵硅涓撶敤 + /// </summary> + private string identifier; + /// <summary> + /// 浜轰綋浼犳劅鍣ㄦ寔缁椂闂翠笓鐢� + /// </summary> + private string hold_time=string.Empty; + + + + private static ConditionDeviceFunList m_Current = null; + + public static ConditionDeviceFunList Current + { + get + { + if (m_Current == null) + { + m_Current = new ConditionDeviceFunList(); + } + return m_Current; + } + } public void Show(Entity.Function device, int index, bool edit) { this.function = device; + this.mEdit = edit; + this.mIndex = index; #region 鐣岄潰甯冨眬 this.BackgroundColor = CSS.CSS_Color.viewMiddle; LogicView.TopView topView = new LogicView.TopView(); @@ -61,6 +95,7 @@ //绌鸿皟 case SPK.AcStandard: case SPK.HvacAC: + case SPK.AcIr: //鍦扮儹 case SPK.FloorHeatStandard: case SPK.HvacFloorHeat: @@ -158,6 +193,59 @@ } } 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; //闂ㄧ獥浼犳劅鍣� case SPK.SensorDoorWindow: { @@ -189,6 +277,40 @@ view1.frameLayout.Y = view.frameLayout.Bottom; view1.btnText.TextID = StringId.fangchaigongneng; fLayout.AddChidren(view1.FLayoutView()); + + + int intValue = 0; + if (edit) + { + Input inputs = Logic.currlogic.input[index]; + var dicList = inputs.condition; + foreach (var dic in dicList) + { + if (dic["key"] == "people_status") + { + //鏈変汉/鏃犱汉 + intValue = 1; + } + else + { + //闃叉媶鍔熻兘 + intValue = 2; + } + break; + + } + } + if (intValue == 1) + { + //鏈変汉/鏃犱汉 + view1.frameLayout.Visible = false; + + } + else if (intValue == 2) + { + //闃叉媶鍔熻兘 + view1.frameLayout.Y = Application.GetRealHeight(0); + } view1.btnClick.MouseUpEventHandler += (sender, e) => { DeviceView(device, view1.btnState, StringId.zaixian, StringId.buzaixian); @@ -200,8 +322,70 @@ } } break; - //姣背娉紶鎰熷櫒 + //姣背娉紶鎰熷櫒(鑷爺鍖楅偖) case SPK.SenesorMegahealth: + case SPK.SensorMmvPose: + { + + LogicView.FunTypeView view1 = new LogicView.FunTypeView(); + view1.btnText.TextID = StringId.diedaobaojing; + view1.btnState.Name = Language.StringByID(StringId.diedaobaojing); + fLayout.AddChidren(view1.FLayoutView()); + view1.btnClick.MouseUpEventHandler += (sender, e) => + { + DeviceView(device, view1.btnState, StringId.shi, StringId.offLogic, 1); + }; + + LogicView.FunTypeView view2 = new LogicView.FunTypeView(); + view2.frameLayout.Y = view1.frameLayout.Bottom; + view2.btnText.TextID = StringId.yourenbaojing; + view2.btnState.Name = Language.StringByID(StringId.yourenbaojing); + fLayout.AddChidren(view2.FLayoutView()); + int intValue = 0; + if (edit) + { + Input inputs = Logic.currlogic.input[index]; + var dicList = inputs.condition; + foreach (var dic in dicList) + { + if (dic["key"] == "target_status") + { + //璺屽�掓姤璀� + intValue = 1; + } + else + { + //鏈変汉鎶ヨ + intValue = 2; + } + break; + + } + } + if (intValue == 1) + { + //璺屽�掓姤璀� + view2.frameLayout.Visible = false; + + } + else if (intValue == 2) + { + //鏈変汉鎶ヨ + view2.frameLayout.Y = Application.GetRealHeight(0); + } + + view2.btnClick.MouseUpEventHandler += (sender, e) => + { + DeviceView(device, view2.btnState, StringId.youren, StringId.wuren, 2); + }; + if (edit) + { + GetEditState(device, index, view1.btnState, view2.btnState, null, null); + } + + } + break; + //姣背娉紶鎰熷櫒(鍏嗚涓撶敤浜戜簯瀵规帴) case SPK.SenesorMegahealth2: { LogicView.FunTypeView view = new LogicView.FunTypeView(); @@ -218,7 +402,7 @@ } break; //鐜妫�娴嬩紶鎰熷櫒 - case SPK.SensorEnvironment: + case SPK.SensorEnvironment:case SPK.SensorEnvironmentHailin: case SPK.SensorEnvironment2: case SPK.SensorEnvironment3: { @@ -250,7 +434,7 @@ { fLayout.AddChidren(tvocView.FLayoutView()); } - + #endregion #region 鐐瑰嚮浜嬩欢 ///娓╁害鐐瑰嚮浜嬩欢 @@ -258,7 +442,7 @@ { new PublicInterface { }.ViewZuHe(this, StringId.wendugaoyu, StringId.wendudiyu, (intText, view) => { - InputBoxAction(device,intText, index, edit); + InputBoxAction(device, intText, index, edit); }); }; ///婀垮害鐐瑰嚮浜嬩欢 @@ -266,30 +450,30 @@ { new PublicInterface { }.ViewZuHe(this, StringId.shidugaoyu, StringId.shidudiyu, (intText, view) => { - InputBoxAction(device,intText, index, edit); + InputBoxAction(device, intText, index, edit); }); }; ///pm2.5鐐瑰嚮浜嬩欢 pm25View.btnClick.MouseUpEventHandler += (sender, e) => { - PmCo2TvocAction(this,device, "pm25",StringId.pm25, index,edit); + PmCo2TvocAction(this, device, "pm25", StringId.pm25, index, edit); }; ///co2鐐瑰嚮浜嬩欢 co2View.btnClick.MouseUpEventHandler += (sender, e) => { - PmCo2TvocAction(this,device, "co2", StringId.co2, index, edit); + PmCo2TvocAction(this, device, "co2", StringId.co2, index, edit); }; ///tvoc鐐瑰嚮浜嬩欢 tvocView.btnClick.MouseUpEventHandler += (sender, e) => { - PmCo2TvocAction(this,device, "tvoc", StringId.tvoc, index, edit); + PmCo2TvocAction(this, device, "tvoc", StringId.tvoc, index, edit); }; #endregion } break; - //娓╁害浼犳劅鍣� + //娓╁害浼犳劅鍣� case SPK.SensorTemperature: { ///娓╁害 @@ -342,6 +526,21 @@ }; } break; + //pm10 + case SPK.SensorPm10: + { + ///pm210 + LogicView.FunTypeView pm10View = new LogicView.FunTypeView(); + pm10View.btnText.TextID = StringId.pm10; + fLayout.AddChidren(pm10View.FLayoutView()); + + ///pm10鐐瑰嚮浜嬩欢 + pm10View.btnClick.MouseUpEventHandler += (sender, e) => + { + PmCo2TvocAction(this, device, "pm10", StringId.pm10, index, edit); + }; + } + break; //pm2.5 case SPK.SensorPm25: { @@ -360,6 +559,7 @@ //tvoc case SPK.SensorTVOC: { + ///tvoc LogicView.FunTypeView tvocView = new LogicView.FunTypeView(); tvocView.btnText.TextID = StringId.tvoc; @@ -388,6 +588,147 @@ }; } break; + //闂ㄩ攣 + case SPK.DoorLock: + { + + LogicView.FunTypeView view = new LogicView.FunTypeView(); + view.btnText.TextID = StringId.shifoukaisuoshi; + fLayout.AddChidren(view.FLayoutView()); + view.btnClick.MouseUpEventHandler += (sender, e) => + { + DeviceView(device, view.btnState, StringId.shi, StringId.offLogic, 1); + }; + if (edit) + { + GetEditState(device, index, view.btnState, null, null, null); + } + } + break; + //鍙瀵硅 + case SPK.doorgate: + { + + LogicView.FunTypeView view1 = new LogicView.FunTypeView(); + view1.btnText.TextID = StringId.shipintonghuahujiao; + view1.btnText.Name = Language.StringByID(StringId.shipintonghuahujiao); + fLayout.AddChidren(view1.FLayoutView()); + view1.btnClick.MouseUpEventHandler += (sender, e) => + { + this.identifier = "door_call_cloud_event"; + this.DeviceView(device, view1.btnState, StringId.shi, StringId.offLogic, 1); + }; + + LogicView.FunTypeView view2 = new LogicView.FunTypeView(); + view2.frameLayout.Y = view1.frameLayout.Bottom; + view2.btnText.TextID = StringId.renliankaimen; + fLayout.AddChidren(view2.FLayoutView()); + view2.btnClick.MouseUpEventHandler += (sender, e) => + { + this.identifier = "door_pedestrian_records"; + this.FaceAction(this, device, view2.btnState); + }; + + int intValue = 0; + if (edit) + { + Input inputs = Logic.currlogic.input[index]; + if (inputs.identifier == "door_call_cloud_event") + { + intValue = 1; + } + else + { + intValue = 2; + } + } + if (intValue == 1) + { + + view2.frameLayout.Visible = false; + + } + else if (intValue == 2) + { + + view2.frameLayout.Y = Application.GetRealHeight(0); + } + if (edit) + { + this.GetEditState(device, index, view1.btnState, view2.btnState, null, null); + } + } + break; + //澶у崕鎽勫儚澶� + case SPK.IpCam_Imou: + { + LogicView.FunTypeView view = new LogicView.FunTypeView(); + view.btnText.TextID = StringId.quyuruqingaojing; + view.btnText.Name = Language.StringByID(StringId.shipintonghuahujiao); + fLayout.AddChidren(view.FLayoutView()); + view.btnClick.MouseUpEventHandler += (sender, e) => + { + this.identifier = "ipcam_region_alram_event"; + this.DeviceView(device, view.btnState, StringId.shi, StringId.offLogic, 1); + }; + + if (edit) + { + this.GetEditState(device, index, view.btnState, null, null, null); + } + } + break; + //钀ょ煶瑙嗛闂ㄩ攣 + case SPK.VideoDoorLock: + { + LogicView.FunTypeView view1 = new LogicView.FunTypeView(); + view1.btnText.TextID=StringId.kaimenrenyuan; + view1.btnText.Name = Language.StringByID(StringId.shipinmensuo); + fLayout.AddChidren(view1.FLayoutView()); + view1.btnClick.MouseUpEventHandler += (sender, e) => + { + this.identifier = "open_door";//寮�閿佷簨浠� + this.VideoDoorLockAction(this, device, view1.btnState); + }; + if (edit) + { + this.GetEditState(device, index, view1.btnState,null, null, null); + } + } + 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 淇濆瓨 ///淇濆瓨View @@ -397,7 +738,7 @@ this.AddChidren(saveView.FLayoutView()); saveView.btnClick.MouseUpEventHandler += (sen, e) => { - Save(device,index, edit); + this.SaveInput(device,index, edit); }; #endregion @@ -408,7 +749,7 @@ /// </summary> /// <param name="index">绱㈠紩鍊�</param> /// <param name="edit"></param> - private void Save(Entity.Function device,int index, bool edit) + private void SaveInput(Entity.Function device,int index, bool edit) { if (selectedState != "unknown") @@ -416,7 +757,55 @@ Input inputDevice = new Input(); inputDevice.condition_type = "3"; inputDevice.sid = device.sid; - inputDevice.condition = dicSateteList; + inputDevice.condition.AddRange(dicSateteList); + if (device.spk == SPK.doorgate) + { + //鍙瀵硅 + inputDevice.condition_type = "9"; + inputDevice.identifier = this.identifier; + if (this.identifier == "door_call_cloud_event") + { + inputDevice.condition = new List<Dictionary<string, string>>(); + } + } + else if (device.spk == SPK.IpCam_Imou) + { + //澶у崕鎽勫儚澶� + inputDevice.condition_type = "9"; + inputDevice.identifier = this.identifier; + if (this.identifier == "ipcam_region_alram_event") + { + //condition榛樿[] + 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; + } + + if (edit) { //绉婚櫎鏃ф暟鎹� @@ -440,7 +829,7 @@ this.RemoveFromParent(); return; } - LogicMethod.CurrLogicMethod.RemoveAllView(); + LogicMethod.Current.RemoveAllView(); if (MainView.IsGatewayType) { //A缃戝叧 var addLogic = new AddLogic(); @@ -458,6 +847,7 @@ } } + /// <summary> /// 璁惧閫夋嫨鏉′欢鐣岄潰 /// </summary> @@ -465,12 +855,13 @@ /// <param name="button">閫変腑鐘舵�佹樉绀烘枃鏈珺tn鎺т欢</param> /// <param name="btnText1">灞炴�х姸鎬佸�兼枃鏈�1</param> /// <param name="btnText2">灞炴�х姸鎬佸�兼枃鏈�2</param> - private void DeviceView(Entity.Function device, Button button, int btnText1, int btnText2) + /// <param name="viewCount">view鏁伴噺</param> + private void DeviceView(Entity.Function device, Button button, int btnText1, int btnText2,int viewCount=2) { FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence }; this.AddChidren(frame); LogicView.SwitchView switchView = new LogicView.SwitchView(); - switchView.FLayoutView(frame, btnText1, btnText2, button.Text, (intValue) => + switchView.FLayoutView(frame, btnText1, btnText2, button.Text, viewCount,(intValue) => { //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; string keyVlaue = "on_off"; @@ -499,6 +890,7 @@ } } break; + case SPK.SensorPirHold: case SPK.SensorDuiShe: case SPK.SensorShanLan: case SPK.SensorPir: @@ -513,6 +905,23 @@ } break; case SPK.SenesorMegahealth: + { + if (button != null) + { + + if (button.Name == Language.StringByID(StringId.yourenbaojing)) + { + keyVlaue = "people_status"; + + } + else + { + keyVlaue = "target_status"; + } + } + + } + break; case SPK.SenesorMegahealth2: { keyVlaue = "action_state"; @@ -520,6 +929,11 @@ { keyVlaue = "megahealth_state"; } + } + break; + case SPK.DoorLock: + { + keyVlaue = "door_status"; } break; @@ -555,13 +969,33 @@ break; case StringId.wuren: { - if (device.spk == SPK.SenesorMegahealth || device.spk == SPK.SenesorMegahealth2) + if (device.spk == SPK.SenesorMegahealth2) { value = "uninhabited"; } else { value = "false"; + } + } + break; + case StringId.shi: + { + value = "open"; + if (button != null) + { + + if (button.Name == Language.StringByID(StringId.yourenbaojing)) + { + //鐘舵��(鏈変汉) + value = "true"; + + } + else if(button.Name == Language.StringByID(StringId.diedaobaojing)) + { + //璺屽�� + value = "4"; + } } } break; @@ -589,11 +1023,29 @@ { value = "fall"; }; break; + + } //鏄剧ず鏂囨湰 button.TextID = intValue; selectedState = device.spk + "_" + value; AddDictionary(keyVlaue, value, "string"); + if (button != null) + { + + + if (button.Name == Language.StringByID(StringId.yourenbaojing) + || (button.Name == Language.StringByID(StringId.diedaobaojing))) + { + //鍙湁姣背娉紶鎰熷櫒(鑷爺) + SaveInput(device, mIndex, mEdit); + } + else if (button.Name == Language.StringByID(StringId.shipintonghuahujiao)) { + //鍙湁姣背娉紶鎰熷櫒(鑷爺) + SaveInput(device, mIndex, mEdit); + } + } + }); @@ -613,7 +1065,7 @@ if (inputs.condition.Count != 0) { //鏈夋暟鎹噸鏂拌祴鍊� - dicSateteList = inputs.condition; + dicSateteList.AddRange(inputs.condition); } } new LogicView.TipPopView { }.InputBox(textInt, stateValue, (value) => @@ -652,7 +1104,7 @@ } selectedState = device.spk + "_" + value; AddDictionary(keyValue, value, data_type, comparator); - Save(device,index, edit); + SaveInput(device,index, edit); }); } /// PM2.5,Co2,Tvoc璁剧疆鍊� @@ -665,24 +1117,33 @@ /// <param name="stateValue">缂栬緫涔嬪墠鐨勭姸鎬佸��,榛樿涓�""</param> public void PmCo2TvocAction(FrameLayout frame, Entity.Function device, string key, int title, int index, bool edit, string stateValue = "") { - if (edit) + if (edit) { + /// + this.function = device; Input inputs = Logic.currlogic.input[index]; //娓呴櫎涔嬪墠鏃ф暟鎹� dicSateteList.Clear(); if (inputs.condition.Count != 0) { //鏈夋暟鎹噸鏂拌祴鍊� - dicSateteList = inputs.condition; + dicSateteList.AddRange(inputs.condition); } } PublicInterface view = new PublicInterface(); - var listStr = view.GetViewList(key); - view.SingleSelectionShow(frame, listStr, Language.StringByID(title), view.GetString(key, stateValue) + + var listStr = view.GetSensorLevelList(device);//2022骞�05鏈�25鏃�10:01:33 浜у搧缁忕悊鍚涚厡瑕佹眰鏀规垚鍔ㄦ�� + //if (listStr.Count == 0) + //{ + // //鍚鏄负浜嗗吋鐢ㄥ緢鑰佸緢鑰佺殑椤圭洰 + // listStr = view.GetViewList(key); + //} + view.SingleSelectionShow(frame, listStr, Language.StringByID(title), view.GetSensorLevelText(device, stateValue,true) , (text) => { - var value = view.GetValue(key, text); + //var value = view.GetValue(key, text); + var values = view.GetSensorLevelText(device,text,false); selectedState = device.spk + "_" + key; switch (device.spk) { @@ -692,6 +1153,7 @@ case SPK.SensorPm25: case SPK.SensorTVOC: case SPK.SensorHcho: + case SPK.SensorPm10: { if (!Is_SpkAttribute(key)) { @@ -700,10 +1162,183 @@ } break; } - AddDictionary(key, value, "integer", "in"); - Save(device, index, edit); + AddDictionary(key, values, "integer", "in"); + SaveInput(device, index, edit); }); } + /// <summary> + /// 鍙瀵硅涓撶敤 + /// </summary> + /// <param name="frame">褰撳墠鐣岄潰</param> + /// <param name="device">褰撳墠璁惧</param> + /// <param name="btnState">鏃х姸鎬�</param> + public void FaceAction(FrameLayout frame, Entity.Function device, Button btnState) + { + selectedState = device.spk + "_"; + Loading loading = new Loading(); + frame.AddChidren(loading); + loading.Start(); + + CommonMethod.Current.SunThread(() => + { + try + { + 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.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++) + { + + 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 { } + finally + { + Application.RunOnMainThread(() => + { + loading.Hide(); + }); + } + + }); + + } + + /// <summary> + /// 钀ょ煶瑙嗛闂ㄩ攣涓撶敤 + /// </summary> + /// <param name="frame">褰撳墠鐣岄潰</param> + /// <param name="device">褰撳墠璁惧</param> + /// <param name="btnState">鏃х姸鎬�</param> + public void VideoDoorLockAction(FrameLayout frame, Entity.Function device, Button btnState) + { + selectedState = device.spk + "_"; + Loading loading = new Loading(); + frame.AddChidren(loading); + loading.Start(); + CommonMethod.Current.SunThread(() => + { + try + { + var faceIdList = Send.Current.GetVideoDoorLockUserListInfo(device); + CommonMethod.Current.MainThread(() => + { + + 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; + } + + }); + + }); + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + 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 { } + + }); + + } + /// <summary> /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� /// </summary> @@ -722,9 +1357,34 @@ if (dicList.Count != 0) { //鏈夋暟鎹噸鏂拌祴鍊� - dicSateteList = dicList; + dicSateteList.AddRange(dicList); } - InpOrOutLogicMethod.EditState(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> /// 娣诲姞閫変腑鏁版嵁 @@ -737,10 +1397,10 @@ { //鏁版嵁灏佽 Dictionary<string, string> dic = new Dictionary<string, string>(); - LogicMethod.CurrLogicMethod.dictionary(dic, "key", KeyValue); - LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", comparator); - LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", data_type); - LogicMethod.CurrLogicMethod.dictionary(dic, "value", selectedValue); + LogicMethod.Current.dictionary(dic, "key", KeyValue); + LogicMethod.Current.dictionary(dic, "comparator", comparator); + LogicMethod.Current.dictionary(dic, "data_type", data_type); + LogicMethod.Current.dictionary(dic, "value", selectedValue); AddDictionaryList(dic); } /// <summary> @@ -813,15 +1473,44 @@ 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> @@ -830,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]; @@ -854,6 +1546,9 @@ private bool Is_SpkAttribute(string key) { ///淇敼鏂板睘鎬� ///璇嗗埆浣跨敤鍔熻兘鏄惁瀛樺湪灞炴�� + if (this.function==null) { + return false; + } var job = this.function.GetAttribute(key); if (job != null) { -- Gitblit v1.8.0