From 7a23bcdf0fe5f7442aa95ec2203cd5b6670a910d Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期四, 19 十二月 2019 17:59:33 +0800 Subject: [PATCH] 2019-12-19-1 --- ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs | 226 ++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 168 insertions(+), 58 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs index 419b95e..a8167b2 100644 --- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs @@ -18,7 +18,7 @@ Tag = "Logic"; } EditText logicTextBox; - public void Show(Action action) + public async void Show(Action action) { #region 鏈�涓婇潰鐨勫竷灞�浠g爜 @@ -40,6 +40,7 @@ Height = Application.GetRealHeight(69), Y = Application.GetRealHeight(92), TextID = MyInternationalizationString.selection, + IsBold = true, }; topRowLayout.AddChidren(titleName); if (Common.Logic.CurrentLogic.LogicId != 0) @@ -496,7 +497,8 @@ var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return obj.DeviceAddr == conditions["MacAddr"] && obj.DeviceEpoint.ToString() == conditions["Epoint"]; }); if (deviceinof == null) { - continue; + deviceinof = new ZigBee.Device.CommonDevice(); + //continue; } ///鏄剧ず璁惧鍚嶇О var btndevice = new Button @@ -617,14 +619,24 @@ { int minute = int.Parse(conditions["IgnoreTime"]) / 60; int second = int.Parse(conditions["IgnoreTime"]) % 60; - if (second != 0) + if (minute != 0 && second != 0) { - devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1); + devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime); } else { - devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.unattendedtime1); + if (minute == 0 && second != 0) + { + devicestatus.Text = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime); + + } + if (minute != 0 && second == 0) + { + devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.closetime); + + } + } } } @@ -632,7 +644,6 @@ case 21: case 22: { - conditionIcon.UnSelectedImagePath = "ZigeeLogic/doormagnetism.png"; if (intvalue == "1") { devicestatus.TextID = MyInternationalizationString.logicopen; @@ -644,14 +655,24 @@ int minute = int.Parse(conditions["IgnoreTime"]) / 60; int second = int.Parse(conditions["IgnoreTime"]) % 60; - if (second != 0) + if (minute != 0 && second != 0) { devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime); } else { - devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.closetime); + if (minute == 0 && second != 0) + { + devicestatus.Text = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime); + + } + if (minute != 0 && second == 0) + { + devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.closetime); + + } + } } @@ -664,7 +685,6 @@ break; case 40: { - conditionIcon.UnSelectedImagePath = "ZigeeLogic/smoke.png"; if (intvalue == "1") { devicestatus.TextID = MyInternationalizationString.smokescreen; @@ -674,7 +694,6 @@ break; case 42: { - conditionIcon.UnSelectedImagePath = "ZigeeLogic/waterleakage.png"; if (intvalue == "1") { devicestatus.TextID = MyInternationalizationString.waterleakage; @@ -687,7 +706,6 @@ break; case 43: { - conditionIcon.UnSelectedImagePath = "ZigeeLogic/gas.png"; if (intvalue == "1") { devicestatus.TextID = MyInternationalizationString.gas; @@ -697,7 +715,6 @@ break; case 277: { - conditionIcon.UnSelectedImagePath = "ZigeeLogic/waterleakage.png"; if (intvalue == "1") { devicestatus.TextID = MyInternationalizationString.callthepolice; @@ -707,7 +724,6 @@ break; default: { - conditionIcon.UnSelectedImagePath = "ZigeeLogic/infraredsensor.png"; if (intvalue == "1") { devicestatus.TextID = MyInternationalizationString.callthepolice; @@ -743,22 +759,54 @@ } break; case DeviceType.TemperatureSensor: - // conditionIcon.UnSelectedImagePath = "ZigeeLogic/temperature.png"; + // conditionIcon.UnSelectedImagePath = "ZigeeLogic/temperature.png"; var dev = deviceinof as TemperatureSensor; - if (conditions["Cluster_ID"]=="1026") { + if (conditions["Cluster_ID"] == "1026") + { dev.SensorDiv = 1; - } else { + } + else + { dev.SensorDiv = 2; + } + string s = ""; + switch (conditions["Range"]) + { + case "0": + { + s = ">"; + } + break; + case "1": + { + s = "="; + } + break; + case "2": + { + s = "<"; + } + break; + case "6": + { + s = "鈮�"; + } + break; + case "7": + { + s = "鈮�"; + } + break; } if (conditions["Cluster_ID"] == "1026") { conditionIcon.UnSelectedImagePath = "ZigeeLogic/temperature.png"; - devicestatus.Text = ">" + conditions["AttriButeData1"] + "鈩�"; + devicestatus.Text = s + conditions["AttriButeData1"] + "鈩�"; } else { conditionIcon.UnSelectedImagePath = "ZigeeLogic/humidity.png"; - devicestatus.Text = "<" + conditions["AttriButeData1"] + "%"; + devicestatus.Text = s + conditions["AttriButeData1"] + "%"; } break; @@ -1148,9 +1196,11 @@ var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return ((obj.DeviceAddr == obj1) && (obj.DeviceEpoint.ToString() == obj2)); }); if (deviceinof == null) { - continue; + + deviceinof = new ZigBee.Device.CommonDevice(); + // continue; } - + ///璁惧鍚嶇ОButton var btndevicename = new Button { @@ -1350,28 +1400,23 @@ { continue; } - string modetext = "", temperaturetext="", speedtext = ""; + string modetext = "", temperaturetext = "", speedtext = ""; bool ifclose = false; foreach (var status in TaskList) { - if (status["TaskType"].ToString() == "1") + + if (TaskList.Count == 1) { - if (status["Data1"].ToString() == "0") - { - // devicestatus.Text = Language.StringByID(MyInternationalizationString.close); - - ifclose = false; - //濡傛灉绌鸿皟鐘舵�佹槸鍏筹紱鐩存帴璺冲嚭for寰潖锛� - break; - } - else if (status["Data1"].ToString() == "1") - { - //devicestatus.Text = Language.StringByID(MyInternationalizationString.open); - ifclose = true; - } - + //鏁扮粍鍙湁涓�涓厓绱犺鏄庡綋鍓嶇┖璋冪姸鎬佷负鍏筹紱 + ifclose = false; + //濡傛灉绌鸿皟鐘舵�佹槸鍏筹紱鐩存帴璺冲嚭for寰潖锛� + break; } - else if (status["TaskType"].ToString() == "5") + else + { + ifclose = true; + } + if (status["TaskType"].ToString() == "5") { if (status["Data1"] == "3") {//3---璁剧疆宸ヤ綔妯″紡(1:鑷姩;3:鍒跺喎;4:鍒剁儹;7:閫侀;8:闄ゆ箍) @@ -1461,11 +1506,25 @@ break; case 2: { - + //鍦ㄦ湰鍦版煡鎵捐鍦烘櫙; var sceneinof = Common.Room.AllRoomSceneUIList.Find((obj) => { return obj.Id.ToString() == actions["DeviceAddr"].ToString(); }); + //鏈湴娌℃湁瀛樺湪; if (sceneinof == null) { - continue; + //鍦ㄧ綉鍏虫煡鎵捐鍦烘櫙; + sceneinof =await Send.GetScene(int.Parse(actions["DeviceAddr"].ToString())); + //缃戝叧娌℃湁瀛樺湪; + if (sceneinof == null) + { + + //娉ㄨВ:鏈湴鍜岀綉鍏抽兘涓嶅瓨鍦ㄨ鍦烘櫙,鐣岄潰灏嗕笉浼氭樉绀鸿鍦烘櫙; + //sceneinof = new SceneUI(); + //绉婚櫎璇ュ満鏅暟鎹�; + Common.Logic.CurrentLogic.Actions.Remove(actions); + //绉婚櫎璇ュ満鏅鍥�; + devicesFrameLayout.RemoveFromParent(); + continue; + } } actionsIcon.UnSelectedImagePath = "ZigeeLogic/scene.png"; @@ -1497,7 +1556,6 @@ Common.Room room = new Common.Room(); btnregionname.Text = room.GetRoomNameBySceneId(sceneinof.Id); //Send.RoomNmae(btnregionname, deviceinof); - } @@ -1710,6 +1768,7 @@ if (e1) { Common.Logic.CurrentLogic.Actions.Remove(actions); + // devicesFrameLayout.RemoveFromParent(); var logicCommunalPage = new LogicCommunalPage(); UserView.HomePage.Instance.AddChidren(logicCommunalPage); UserView.HomePage.Instance.PageIndex += 1; @@ -1846,23 +1905,11 @@ Gravity = Gravity.CenterVertical, }; pushswitchRowlayout.AddChidren(btnswitch); - btnswitch.MouseUpEventHandler += (sender1, e1) => - { - btnswitch.IsSelected = !btnswitch.IsSelected; - if (btnswitch.IsSelected) - { - - } - else - { - - } - }; var custompushFrameLayout = new FrameLayout { - Height = Application.GetRealHeight(160), + Height = Application.GetRealHeight(0), BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, }; middle.AddChidren(custompushFrameLayout); @@ -1910,7 +1957,18 @@ btncustompush.MouseUpEventHandler += customclick; custompushback.MouseUpEventHandler += customclick; custompushRowLayout.MouseUpEventHandler += customclick; - + btnswitch.MouseUpEventHandler += (sender1, e1) => + { + btnswitch.IsSelected = !btnswitch.IsSelected; + if (btnswitch.IsSelected) + { + custompushFrameLayout.Height = Application.GetRealHeight(160); + } + else + { + custompushFrameLayout.Height = Application.GetRealHeight(0); + } + }; #endregion @@ -1950,7 +2008,7 @@ } Common.Logic.CurrentLogic.LogicName = name; - + bool succeed = false; //鍒ゆ柇鏄柊娣诲姞閫昏緫(榛樿0)杩樻槸淇敼閫昏緫 CommonPage.Loading.Start(); if (Common.Logic.CurrentLogic.LogicId == 0) @@ -1959,6 +2017,7 @@ var logicifon = await Send.AddModifyLogic(Common.Logic.CurrentLogic); if (logicifon != null && logicifon.LogicId != 0) { + succeed = true; Common.Logic.CurrentLogic.LogicId = logicifon.LogicId; Common.Logic.LogicList.Add(Common.Logic.CurrentLogic); } @@ -1966,10 +2025,20 @@ else { //鍙戦�佷慨鏀归�昏緫鍛戒护 - Send.AddModifyLogic(Common.Logic.CurrentLogic); + var modlogic=Send.AddModifyLogic(Common.Logic.CurrentLogic); + //缂栬緫榛樿鎴愬姛锛堜笉鑰冭檻缃戠粶鎯呭喌锛夛紱 + succeed = true; } - CommonPage.Loading.Hide(); + + if (!succeed)//succeed鏍囪鏄坊鍔犳垚鍔熻繕鏄け璐� + { + //缃戝叧鍥炲澶辫触锛屼笉鍏抽棴鐣岄潰锛岃瀹冨仠鐣欏綋鍓嶇晫闈紱 + //锛堝師鍥狅細鑰冭檻鍒板け璐ラ噸鏂扮紪杈戝師鏉ユ暟鎹粰鐢ㄦ埛甯︽潵浜嗛夯鐑︼級 + ///鎻愮ず锛氭坊鍔犺嚜鍔ㄥ寲澶辫触锛� + //TipView("娣诲姞鑷姩鍖栧け璐�"); + //return; + } UserView.HomePage.Instance.RemoveViewByTag("Logic"); Category.Category.instance?.RefreshBodyView(); @@ -2258,7 +2327,7 @@ Radius = (uint)Application.GetRealHeight(60), }; flMain.AddChidren(framelayout); - framelayout.SetCornerWithSameRadius(20,HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerTopRight); + framelayout.SetCornerWithSameRadius(Application.GetRealHeight(58),HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerTopRight); #region -------鍙栨秷 瀹屾垚 var timetype = new RowLayout @@ -2469,5 +2538,46 @@ }; } + /// <summary> + /// 闂幇寮忔彁绀烘鐨勬柟娉� + /// </summary> + /// <param name="tipText">鎻愮ず鍐呭</param> + /// <param name="second">鍋滅暀鏃堕棿鍗曚綅涓簊</param> + public void TipView(string tipText, int second = 1) + { + + var frameLayout = new FrameLayout { BackgroundColor = 0x50000000 }; + this.AddChidren(frameLayout); + + var btn = new Button + { + Gravity = Gravity.Center, + Text = tipText, + BackgroundColor = 0xff1f1f1f, + Width = Application.GetRealWidth(500), + Height = Application.GetRealHeight(100), + Radius = (uint)Application.GetRealHeight(50), + }; + frameLayout.AddChidren(btn); + + var dateTime1 = DateTime.Now; + new System.Threading.Thread(() => + { + Application.RunOnMainThread(() => + { + while (true) + { + if ((DateTime.Now - dateTime1).TotalMilliseconds > second * 1000) + { + //榛樿涓�绉掑叧闂� + frameLayout.RemoveFromParent(); + break; + } + } + }); + }) + { IsBackground = true }.Start(); + + } } } -- Gitblit v1.8.0