From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期二, 30 八月 2022 09:37:38 +0800 Subject: [PATCH] 合并了IOS的代码 --- ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs | 131 ++++++++++++++++++++++++++++--------------- 1 files changed, 85 insertions(+), 46 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs index 6b7a615..867258a 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs @@ -24,6 +24,10 @@ /// 婵�娲荤殑璁惧鍦板潃 /// </summary> private string actionDeviceKeys = null; + /// <summary> + /// 鎺ユ敹鍥炲鐨勭鐐� + /// </summary> + private HashSet<int> listReceivePoint = new HashSet<int>(); #endregion @@ -36,6 +40,11 @@ public void ShowForm(string i_diviceMac) { this.listDevice = Common.LocalDevice.Current.GetDevicesByMac(i_diviceMac); + //鏀堕泦鍏ㄩ儴绔偣 + foreach (var device in this.listDevice) + { + listReceivePoint.Add(device.DeviceEpoint); + } //璁剧疆澶撮儴淇℃伅 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uIndoorUnitSettion)); @@ -57,7 +66,7 @@ var frameTemp = new FrameLayout(); frameTemp.Height = Application.GetRealHeight(69); - listView.AddChidrenFrame(frameTemp); + listView.AddChidren(frameTemp); HdlThreadLogic.Current.RunMainInThread(() => { @@ -68,7 +77,7 @@ } var frameTemp2 = new FrameLayout(); frameTemp2.Height = Application.GetRealHeight(29); - listView.AddChidrenFrame(frameTemp2); + listView.AddChidren(frameTemp2); //鏁版嵁鎺ユ敹 this.StartReceiveDataEvent(); @@ -86,21 +95,21 @@ { var rowInfo = new RowControlInfo(); - var frameTable = new FrameLayoutControl(); + var frameTable = new FrameLayoutStatuControl(); frameTable.UseClickStatu = false; frameTable.Width = Application.GetRealWidth(994); frameTable.Height = Application.GetRealHeight(337); frameTable.BackgroundImagePath = "Item/IndoorUnitGround.png"; frameTable.Gravity = Gravity.CenterHorizontal; - listView.AddChidrenFrame(frameTable); + listView.AddChidren(frameTable); //璁惧鍥炬爣 var btnIconBack = new FrameLayout(); btnIconBack.X = Application.GetRealWidth(46); btnIconBack.Y = Application.GetRealHeight(43); - btnIconBack.Height = Application.GetMinRealAverage(112); - btnIconBack.Width = Application.GetMinRealAverage(112); - btnIconBack.Radius = (uint)Application.GetMinRealAverage(112) / 2; + btnIconBack.Height = this.GetPictrueRealSize(112); + btnIconBack.Width = this.GetPictrueRealSize(112); + btnIconBack.Radius = (uint)this.GetPictrueRealSize(112) / 2; btnIconBack.BackgroundColor = 0xfff5f6fa; frameTable.AddChidren(btnIconBack, ChidrenBindMode.NotBind); rowInfo.btnIconBack = btnIconBack; @@ -109,15 +118,15 @@ btnIcon.Gravity = Gravity.Center; Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device); btnIconBack.AddChidren(btnIcon); - frameTable.ChangedChidrenBindMode(btnIconBack, ChidrenBindMode.BindEventOnly); + frameTable.ChangedChidrenBindMode(btnIconBack, ChidrenBindMode.BindEvent); rowInfo.btnIcon = btnIcon; //璁惧鍚嶇О - var btnDeviceName = new NormalViewControl(400, 60, true); + var btnDeviceName = new NormalViewControl(700, 60, true); btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(device); btnDeviceName.X = Application.GetRealWidth(193); btnDeviceName.Y = Application.GetRealHeight(45); - frameTable.AddChidren(btnDeviceName, ChidrenBindMode.BindEventOnly); + frameTable.AddChidren(btnDeviceName, ChidrenBindMode.BindEvent); rowInfo.btnDeviceName = btnDeviceName; //鎴块棿 var btnRoom = new NormalViewControl(400, 50, true); @@ -125,17 +134,27 @@ btnRoom.Y = btnDeviceName.Bottom + Application.GetRealHeight(12); btnRoom.TextSize = 12; btnRoom.TextColor = UserCenterColor.Current.TextGrayColor1; - btnRoom.Text = Common.Room.CurrentRoom.GetRoomNameByDevice(device); - frameTable.AddChidren(btnRoom, ChidrenBindMode.BindEventOnly); + btnRoom.Text = HdlRoomLogic.Current.GetRoomNameByDevice(device); + frameTable.AddChidren(btnRoom, ChidrenBindMode.BindEvent); rowInfo.btnRoom = btnRoom; //鎽勬皬搴� var btnValue = new NormalViewControl(300, 60, true); btnValue.Y = Application.GetRealHeight(58); btnValue.X = frameTable.Width - Application.GetRealWidth(300 + 58); btnValue.TextAlignment = TextAlignment.CenterRight; - btnValue.TextID = R.MyInternationalizationString.uGetting; - frameTable.AddChidren(btnValue, ChidrenBindMode.BindEventOnly); + frameTable.AddChidren(btnValue, ChidrenBindMode.BindEvent); rowInfo.btnValue = btnValue; + //瀹ゅ唴娓╁害 + if (device.currentLocalTemperature == 0) + { + //0鈩� + btnValue.Text = "0.0鈩�"; + } + else + { + btnValue.Text = device.currentLocalTemperature + ".0鈩�"; + } + //璀﹀憡鍥炬爣 var btnWarningIcon = new IconViewControl(69); btnWarningIcon.X = btnIconBack.X; @@ -164,28 +183,46 @@ { if (btnSwitch.IsSelected == false) { - //鎵撳紑绌鸿皟 - var result = await HdlDeviceAirConditionerLogic.Current.OpenAirConditioner(device); - if (result == false) + //濡傛灉涓嶆槸铏氭嫙浣忓畢鐨勮瘽 + if (Common.Config.Instance.Home.IsVirtually == false) { - return; + //鎵撳紑绌鸿皟 + var result = await HdlDeviceAirConditionerLogic.Current.OpenAirConditioner(device); + if (result == false) + { + return; + } } btnIcon.IsSelected = true; btnIconBack.BackgroundColor = 0xfffef1ed; } else { - //鍏抽棴绌鸿皟 - var result = await HdlDeviceAirConditionerLogic.Current.CloseAirConditioner(device); - if (result == false) + //濡傛灉涓嶆槸铏氭嫙浣忓畢鐨勮瘽 + if (Common.Config.Instance.Home.IsVirtually == false) { - return; + //鍏抽棴绌鸿皟 + var result = await HdlDeviceAirConditionerLogic.Current.CloseAirConditioner(device); + if (result == false) + { + return; + } } btnIcon.IsSelected = false; btnIconBack.BackgroundColor = 0xfff5f6fa; } btnSwitch.IsSelected = !btnSwitch.IsSelected; + //濡傛灉鏄櫄鎷熶綇瀹呯殑璇� + if (Common.Config.Instance.Home.IsVirtually == true) + { + device.currentSystemMode = btnSwitch.IsSelected == true ? 3 : 0; + } }; + //濡傛灉鏄睍绀烘ā鏉跨殑璇� + if (Common.Config.Instance.Home.IsShowTemplate == true) + { + btnSwitch.CanClick = false; + } frameTable.ButtonClickEvent += (sender, e) => { @@ -207,25 +244,31 @@ /// </summary> private void SetReadAttributeComand() { + //濡傛灉鏄櫄鎷熶綇瀹呮垨鑰呭睍绀烘ā鏉跨殑璇� + if (Common.Config.Instance.Home.IsShowTemplate == true || Common.Config.Instance.Home.IsVirtually == true) + { + return; + } HdlThreadLogic.Current.RunThread(() => { - for (int i = 0; i < listDevice.Count; i++) + while (this.listReceivePoint.Count > 0 && this.Parent != null) { - if (i != 0 && i % 5 == 0) + for (int i = 0; i < listDevice.Count; i++) { - //璇诲彇5涓悗锛岄棿闅斾竴娈垫椂闂� - System.Threading.Thread.Sleep(200); if (this.Parent == null) { return; } + //宸茬粡鍙戦�佽繃浜�,灏变笉鐢ㄥ啀鍙戦�� + if (this.listReceivePoint.Contains(listDevice[i].DeviceEpoint) == true) + { + //璇诲彇鐘舵�� + HdlDeviceAttributeLogic.Current.SendThermostatStatuComand(listDevice[i]); + System.Threading.Thread.Sleep(200); + } } - //鑾峰彇褰撳墠瀹ゆ俯 - ((AC)listDevice[i]).ReadLocalTemperature(); - //鑾峰彇寮�鍏崇姸鎬�(澶勪簬鏌愮宸ヤ綔鐘舵��,鍗充负鎵撳紑鐘舵��) - ((AC)listDevice[i]).ReadSystemMode(); - //娓呮礂婊ょ綉 - listDevice[i].ReadAttri(Cluster_ID.Thermostat, AttriButeId.FilterCleaningStatus); + //3绉掑悗鍐嶆寰幆 + System.Threading.Thread.Sleep(3000); } }); } @@ -246,6 +289,13 @@ { return; } + var localDevice = Common.LocalDevice.Current.GetDevice(mainkeys); + if (localDevice == null) + { + return; + } + //宸茬粡鎺ユ敹鍒版暟鎹�,鍒欑Щ闄ょ鐐� + this.listReceivePoint.Remove(device.DeviceEpoint); var rowInfo = dicControl[mainkeys]; for (int i = 0; i < device.DeviceStatusReport.AttriBute.Count; i++) @@ -256,25 +306,14 @@ HdlThreadLogic.Current.RunMain(() => { //瀹ゅ唴娓╁害 - if (data.AttriButeData == 0) + if (((AC)localDevice).currentLocalTemperature == 0) { //0鈩� rowInfo.btnValue.Text = "0.0鈩�"; } - else if (data.AttriButeData > 32767) - { - //璐熸暟(鐗规畩澶勭悊) - string strValue = (data.AttriButeData - 65536).ToString(); - //灏忔暟鐐归渶瑕佷竴浣� - strValue = strValue.Substring(0, strValue.Length - 1); - rowInfo.btnValue.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�"; - } else { - //灏忔暟鐐归渶瑕佷竴浣� - string strValue = data.AttriButeData.ToString(); - strValue = strValue.Substring(0, strValue.Length - 1); - rowInfo.btnValue.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�"; + rowInfo.btnValue.Text = ((AC)localDevice).currentLocalTemperature + ".0鈩�"; } }); } @@ -340,7 +379,7 @@ { var contr = dicControl[this.actionDeviceKeys]; contr.btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(device); - contr.btnRoom.Text = Common.Room.CurrentRoom.GetRoomNameByDevice(device); + contr.btnRoom.Text = HdlRoomLogic.Current.GetRoomNameByDevice(device); } } this.actionDeviceKeys = null; -- Gitblit v1.8.0