From b8d7b4fa382f7c779fb9e81a9f049d94a9083fa3 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 16 十一月 2021 18:41:01 +0800 Subject: [PATCH] 2021-11-16-01 --- HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 171 insertions(+), 6 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs index 46264c7..5ec11e6 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs @@ -61,17 +61,29 @@ shiwaiView.frameLayout.Y = sceneView.frameLayout.Bottom; shiwaiView.btnText.TextID = StringId.shiwaibainhua; shiwaiView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png"; - + if (MainView.IsGatewayType) { viewLayout.AddChidren(shiwaiView.FLayoutView()); } - + + //鍦扮悊鍥存爮 + LogicView.SelectTypeView likiadaodaView = new LogicView.SelectTypeView(); + likiadaodaView.frameLayout.Y = shiwaiView.frameLayout.Bottom; + likiadaodaView.btnText.TextID = StringId.likiadaoda; + likiadaodaView.btnIcon.UnSelectedImagePath = "LogicIcon/location.png"; + + if (MainView.IsGatewayType) + { + viewLayout.AddChidren(likiadaodaView.FLayoutView()); + } + #endregion #region 鎵�鏈夌偣鍑讳簨浠� //鏃堕棿 - timeView.btnClick.MouseUpEventHandler += (sen, e) => { + timeView.btnClick.MouseUpEventHandler += (sen, e) => + { TimeTpye timeTpye = new TimeTpye(); MainPage.BasePageView.AddChidren(timeTpye); timeTpye.Show(); @@ -79,7 +91,8 @@ }; //鍔熻兘 - functionView.btnClick.MouseUpEventHandler += (sen, e) => { + functionView.btnClick.MouseUpEventHandler += (sen, e) => + { FunTpye funTpye = new FunTpye(); MainPage.BasePageView.AddChidren(funTpye); funTpye.Show(LogicMethod.condition_if); @@ -91,7 +104,8 @@ SceneMethod(); }; //瀹ゅ鍙樺寲 - shiwaiView.btnClick.MouseUpEventHandler += (sen, e) => { + shiwaiView.btnClick.MouseUpEventHandler += (sen, e) => + { if (string.IsNullOrEmpty(Entity.DB_ResidenceData.Instance.CurrentRegion.homeAddress))//.longitude == 0 && Entity.DB_ResidenceData.Instance.CurrentRegion.latitude == 0) { new PublicAssmebly().TipMsg(StringId.tip, StringId.GatewayLocationInformationIsNotConfigured); @@ -101,6 +115,12 @@ MainPage.BasePageView.AddChidren(weather); weather.Show(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + + //鍦扮悊鍥存爮 + likiadaodaView.btnClick.MouseUpEventHandler += (sen, e) => + { + LocationView(this, false); }; #endregion @@ -141,6 +161,150 @@ } /// <summary> + /// 鍦扮悊鍥存爮View + /// </summary> + /// <param name="flMain">Fl main.</param> + /// <param name="edit">If set to <c>true</c> edit.</param> + public void LocationView(FrameLayout flMain, bool edit) + { + string strname = ""; + ///閫氳繃璋冭瘯瀹濈粰鐨勭粡绾害<鏍囧噯GPS> + double latitude = Entity.DB_ResidenceData.Instance.CurrentRegion.latitude;//绾害 + double longitude = Entity.DB_ResidenceData.Instance.CurrentRegion.longitude;//缁忓害 + //WGS84鍧愭爣杞珮寰峰潗鏍� + LogicMethod.CurrLogicMethod.WGS84_to_GCJ02(Entity.DB_ResidenceData.Instance.CurrentRegion.longitude, Entity.DB_ResidenceData.Instance.CurrentRegion.latitude, out longitude, out latitude); + int r = 500;//鍗婂緞 + if (edit) + { + for (var i = 0; i < Logic.currlogic.input.Count; i++) + { + var input = Logic.currlogic.input[i]; + if (input.condition_type != "8") + { + continue; + } + if (input.condition[0]["value"] == "arrive") + { + //鍒拌揪鏌愬湴 + strname = Language.StringByID(StringId.daoda); + } + else + { + //绂诲紑鍦扮偣 + strname = Language.StringByID(StringId.likai); + } + //绾害 + latitude = Convert.ToDouble(input.geo_fence.latitude); + //缁忓害 + longitude = Convert.ToDouble(input.geo_fence.longitude); + //鍗婂緞 + r = int.Parse(input.geo_fence.radius); + } + } + PublicInterface publicInterface = new PublicInterface(); + var list = publicInterface.GetViewList("鍦扮悊鍥存爮"); + publicInterface.SingleSelectionShow(flMain, list, Language.StringByID(StringId.likiadaoda), strname, (str) => + { + + string valueStr = "arrive"; + if (str == Language.StringByID(StringId.daoda)) + { + //鍒拌揪鏌愬湴 + valueStr = "arrive"; + } + else + { + //绂诲紑 + valueStr = "leave"; + } + +#if __Android__ + //鐢宠瀹氫綅鏉冮檺 + ((BaseActivity)Application.Activity).SetGPSLocationPermission((result1) => + { + if (result1 == false) { return; } + + //鐢宠鍏佽绋嬪簭鍐欏叆澶栭儴瀛樺偍锛屽SD鍗′笂鍐欐枃浠� + ((BaseActivity)Application.Activity).SetPermission((result2) => + { + if (result2 == false) { return; } + //璇诲彇鐢佃瘽鐘舵�佹潈闄� + ((BaseActivity)Application.Activity).SetPermission((result3) => + { + if (result3 == false) { return; } + + //璋冪敤鏂规硶锛岃烦杞〉闈� + GDMapKit.Show((mLatitude, mLongitude, mRadius, name) => + { + //楂樺痉鍧愭爣杞琖GS84鍧愭爣(楂樺痉鍦板浘璁剧疆GPS) + double out_lng, out_lat; + LogicMethod.CurrLogicMethod.GCJ02_to_WGS84(mLongitude, mLatitude, out out_lng, out out_lat); + Input input = new Input(); + input.sid = LogicMethod.CurrLogicMethod.NewSid(); + input.condition_type = "8"; + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.CurrLogicMethod.dictionary(dic, "key", "direction"); + LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "="); + LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string"); + LogicMethod.CurrLogicMethod.dictionary(dic, "value", valueStr); + input.condition.Add(dic); + //绾害 + input.geo_fence.latitude = out_lat.ToString(); + //缁忓害 + input.geo_fence.longitude = out_lng.ToString(); + //鍗婂緞<鍗曚綅绫�> + input.geo_fence.radius = mRadius.ToString(); + AddCondition(input); + LogicMethod.CurrLogicMethod.RemoveAllView(); + AddLogic addLogic = new AddLogic(); + MainPage.BasePageView.AddChidren(addLogic); + addLogic.Show(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + + }, strname, Language.StringByID(StringId.save), true, latitude, longitude, r); + + }, "android.permission.READ_PHONE_STATE"); + + }, "android.permission.WRITE_EXTERNAL_STORAGE"); + }); +#endif +#if __IOS__ + //璋冪敤鏂规硶锛岃烦杞〉闈� + GDMapKit.Show((mLatitude, mLongitude, mRadius, name) => + { + //楂樺痉鍧愭爣杞琖GS84鍧愭爣(楂樺痉鍦板浘璁剧疆GPS) + double out_lng, out_lat; + LogicMethod.CurrLogicMethod.GCJ02_to_WGS84(mLongitude, mLatitude, out out_lng, out out_lat); + + Input input = new Input(); + input.sid = LogicMethod.CurrLogicMethod.NewSid(); + input.condition_type = "8"; + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.CurrLogicMethod.dictionary(dic, "key", "direction"); + LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "="); + LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string"); + LogicMethod.CurrLogicMethod.dictionary(dic, "value", "arrive"); + input.condition.Add(dic); + //绾害 + input.geo_fence.latitude = out_lat.ToString(); + //缁忓害 + input.geo_fence.longitude = out_lng.ToString(); + //鍗婂緞<鍗曚綅绫�> + input.geo_fence.radius = mRadius.ToString(); + AddCondition(input); + LogicMethod.CurrLogicMethod.RemoveAllView(); + AddLogic addLogic = new AddLogic(); + MainPage.BasePageView.AddChidren(addLogic); + addLogic.Show(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }, strname, Language.StringByID(R.MyInternationalizationString.uSave), true, latitude, longitude, r); +#endif + }); + + + } + + /// <summary> /// 娣诲姞鏉′欢 /// </summary> /// <param name="input"></param> @@ -151,8 +315,9 @@ for (var i = 0; i < Logic.currlogic.input.Count; i++) { var condition_type = Logic.currlogic.input[i].condition_type; - if (condition_type == "10") + if (condition_type == "10" || condition_type == "8") { + //鏀寔鍦烘櫙=10锛屽湴鐞嗗洿鏍�=8 ///鎵惧埌鏍囪绱㈠紩锛岄��鍑哄惊鐜綋 index = i; break; -- Gitblit v1.8.0