From a9d1161b1df96e7ddad566335989a1444e433ef5 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期二, 28 三月 2023 11:54:45 +0800 Subject: [PATCH] 2023年03月28日11:52:02 --- HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs | 356 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 308 insertions(+), 48 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs index af47048..1c62cfb 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs @@ -32,6 +32,24 @@ /// 杈撳叆鏉′欢鍒楄〃绱㈠紩鍊� /// </summary> private int mIndex; + /// <summary> + /// 鍙瀵硅涓撶敤 + /// </summary> + private string identifier; + + 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) { @@ -71,7 +89,6 @@ //绌鸿皟 case SPK.AcStandard: case SPK.HvacAC: - case SPK.HvacCac://姣涚粏绌鸿皟 //鍦扮儹 case SPK.FloorHeatStandard: case SPK.HvacFloorHeat: @@ -89,22 +106,6 @@ view.btnClick.MouseUpEventHandler += (sender, e) => { DeviceView(device, view.btnState, StringId.onLogic, StringId.offLogic); - }; - if (edit) - { - GetEditState(device, index, view.btnState, null, null, null); - } - } - break; - //绱ф�ュ懠鍙� - case SPK.SensorHelp: - { - LogicView.FunTypeView view = new LogicView.FunTypeView(); - view.btnText.TextID = StringId.qiujiuandzhengchang; - fLayout.AddChidren(view.FLayoutView()); - view.btnClick.MouseUpEventHandler += (sender, e) => - { - DeviceView(device, view.btnState, StringId.qiujiu, StringId.zhengchang); }; if (edit) { @@ -216,6 +217,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); @@ -229,9 +264,10 @@ break; //姣背娉紶鎰熷櫒(鑷爺鍖楅偖) case SPK.SenesorMegahealth: + case SPK.SensorMmvPose: { - LogicView.FunTypeView view1= new LogicView.FunTypeView(); + LogicView.FunTypeView view1 = new LogicView.FunTypeView(); view1.btnText.TextID = StringId.diedaobaojing; view1.btnState.Name = Language.StringByID(StringId.diedaobaojing); fLayout.AddChidren(view1.FLayoutView()); @@ -239,15 +275,48 @@ { 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.shi, StringId.offLogic, 1); + DeviceView(device, view2.btnState, StringId.youren, StringId.wuren, 2); }; if (edit) { @@ -273,7 +342,7 @@ } break; //鐜妫�娴嬩紶鎰熷櫒 - case SPK.SensorEnvironment: + case SPK.SensorEnvironment:case SPK.SensorEnvironmentHailin: case SPK.SensorEnvironment2: case SPK.SensorEnvironment3: { @@ -305,7 +374,7 @@ { fLayout.AddChidren(tvocView.FLayoutView()); } - + #endregion #region 鐐瑰嚮浜嬩欢 ///娓╁害鐐瑰嚮浜嬩欢 @@ -313,7 +382,7 @@ { new PublicInterface { }.ViewZuHe(this, StringId.wendugaoyu, StringId.wendudiyu, (intText, view) => { - InputBoxAction(device,intText, index, edit); + InputBoxAction(device, intText, index, edit); }); }; ///婀垮害鐐瑰嚮浜嬩欢 @@ -321,30 +390,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: { ///娓╁害 @@ -397,6 +466,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: { @@ -415,7 +499,7 @@ //tvoc case SPK.SensorTVOC: { - + ///tvoc LogicView.FunTypeView tvocView = new LogicView.FunTypeView(); tvocView.btnText.TextID = StringId.tvoc; @@ -453,7 +537,7 @@ fLayout.AddChidren(view.FLayoutView()); view.btnClick.MouseUpEventHandler += (sender, e) => { - DeviceView(device, view.btnState, StringId.shi, StringId.offLogic,1); + DeviceView(device, view.btnState, StringId.shi, StringId.offLogic, 1); }; if (edit) { @@ -461,6 +545,98 @@ } } 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.yonghurenyuan; + 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; + } #region 淇濆瓨 ///淇濆瓨View @@ -470,7 +646,7 @@ this.AddChidren(saveView.FLayoutView()); saveView.btnClick.MouseUpEventHandler += (sen, e) => { - Save(device,index, edit); + this.SaveInput(device,index, edit); }; #endregion @@ -481,7 +657,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") @@ -489,7 +665,36 @@ 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.VideoDoorLock) + { + ////钀ょ煶瑙嗛闂ㄩ攣 + inputDevice.condition_type = "9"; + inputDevice.identifier = this.identifier; + } + + if (edit) { //绉婚櫎鏃ф暟鎹� @@ -513,7 +718,7 @@ this.RemoveFromParent(); return; } - LogicMethod.CurrLogicMethod.RemoveAllView(); + LogicMethod.Current.RemoveAllView(); if (MainView.IsGatewayType) { //A缃戝叧 var addLogic = new AddLogic(); @@ -555,7 +760,6 @@ case SPK.SensorGas: case SPK.SensorWater: case SPK.SensorSmoke: - case SPK.SensorHelp: { keyVlaue = "status"; if (!Is_SpkAttribute(keyVlaue)) { @@ -652,7 +856,7 @@ break; case StringId.wuren: { - if (device.spk == SPK.SenesorMegahealth || device.spk == SPK.SenesorMegahealth2) + if (device.spk == SPK.SenesorMegahealth2) { value = "uninhabited"; } @@ -716,11 +920,16 @@ if (button != null) { + if (button.Name == Language.StringByID(StringId.yourenbaojing) || (button.Name == Language.StringByID(StringId.diedaobaojing))) { //鍙湁姣背娉紶鎰熷櫒(鑷爺) - Save(device, mIndex, mEdit); + SaveInput(device, mIndex, mEdit); + } + else if (button.Name == Language.StringByID(StringId.shipintonghuahujiao)) { + //鍙湁姣背娉紶鎰熷櫒(鑷爺) + SaveInput(device, mIndex, mEdit); } } @@ -743,7 +952,7 @@ if (inputs.condition.Count != 0) { //鏈夋暟鎹噸鏂拌祴鍊� - dicSateteList = inputs.condition; + dicSateteList.AddRange(inputs.condition); } } new LogicView.TipPopView { }.InputBox(textInt, stateValue, (value) => @@ -782,7 +991,7 @@ } selectedState = device.spk + "_" + value; AddDictionary(keyValue, value, data_type, comparator); - Save(device,index, edit); + SaveInput(device,index, edit); }); } /// PM2.5,Co2,Tvoc璁剧疆鍊� @@ -805,12 +1014,17 @@ if (inputs.condition.Count != 0) { //鏈夋暟鎹噸鏂拌祴鍊� - dicSateteList = inputs.condition; + dicSateteList.AddRange(inputs.condition); } } PublicInterface view = new PublicInterface(); - //var listStr = view.GetViewList(key); + 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) => { @@ -826,6 +1040,7 @@ case SPK.SensorPm25: case SPK.SensorTVOC: case SPK.SensorHcho: + case SPK.SensorPm10: { if (!Is_SpkAttribute(key)) { @@ -835,9 +1050,54 @@ break; } AddDictionary(key, values, "integer", "in"); - Save(device, index, edit); + 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(); + System.Threading.Tasks.Task.Run(() => + { + 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(() => + { + loading.Hide(); + 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"); + + }, false); + + }); + } + catch { } + + }); + + } + /// <summary> /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� /// </summary> @@ -856,9 +1116,9 @@ if (dicList.Count != 0) { //鏈夋暟鎹噸鏂拌祴鍊� - dicSateteList = dicList; + dicSateteList.AddRange(dicList); } - InpOrOutLogicMethod.EditState(device, dicList, button1, button2, button3, button4); + InpOrOutLogicMethod.Current.EditDeviceState(device, dicList, button1, button2, button3, button4); } /// <summary> /// 娣诲姞閫変腑鏁版嵁 @@ -871,10 +1131,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> -- Gitblit v1.8.0