From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 10 七月 2020 10:52:13 +0800 Subject: [PATCH] 2020-07-10-01 --- ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs | 161 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 108 insertions(+), 53 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs index 2c63cd3..5d48933 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs @@ -20,6 +20,10 @@ /// 鎺т欢淇℃伅 /// </summary> private Dictionary<string, RowControlInfo> dicControl = new Dictionary<string, RowControlInfo>(); + /// <summary> + /// 婵�娲荤殑璁惧鍦板潃 + /// </summary> + private string actionDeviceKeys = null; #endregion @@ -53,7 +57,7 @@ var frameTemp = new FrameLayout(); frameTemp.Height = Application.GetRealHeight(69); - listView.AddChidrenFrame(frameTemp); + listView.AddChidren(frameTemp); HdlThreadLogic.Current.RunMainInThread(() => { @@ -64,7 +68,7 @@ } var frameTemp2 = new FrameLayout(); frameTemp2.Height = Application.GetRealHeight(29); - listView.AddChidrenFrame(frameTemp2); + listView.AddChidren(frameTemp2); //鏁版嵁鎺ユ敹 this.StartReceiveDataEvent(); @@ -82,21 +86,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; @@ -105,29 +109,32 @@ 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); btnRoom.X = btnDeviceName.X; 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(150, 60, true); + var btnValue = new NormalViewControl(300, 60, true); btnValue.Y = Application.GetRealHeight(58); - btnValue.X = frameTable.Width - Application.GetRealWidth(150 + 58); + btnValue.X = frameTable.Width - Application.GetRealWidth(300 + 58); btnValue.TextAlignment = TextAlignment.CenterRight; - frameTable.AddChidren(btnValue, ChidrenBindMode.BindEventOnly); + btnValue.TextID = R.MyInternationalizationString.uGetting; + frameTable.AddChidren(btnValue, ChidrenBindMode.BindEvent); rowInfo.btnValue = btnValue; //璀﹀憡鍥炬爣 var btnWarningIcon = new IconViewControl(69); @@ -182,6 +189,8 @@ frameTable.ButtonClickEvent += (sender, e) => { + this.actionDeviceKeys = Common.LocalDevice.Current.GetDeviceMainKeys(device); + var form = new IndoorUnitSettionForm(); form.AddForm(device); }; @@ -202,19 +211,13 @@ { for (int i = 0; i < listDevice.Count; i++) { - if (i != 0 && i % 5 == 0) + if (this.Parent == null) { - //璇诲彇5涓悗锛岄棿闅斾竴娈垫椂闂� - System.Threading.Thread.Sleep(500); - if (this.Parent == null) - { - return; - } + return; } - //鑾峰彇褰撳墠瀹ゆ俯 - ((AC)listDevice[i]).ReadLocalTemperature(); - //鑾峰彇寮�鍏崇姸鎬�(澶勪簬鏌愮宸ヤ綔鐘舵��,鍗充负鎵撳紑鐘舵��) - ((AC)listDevice[i]).ReadSystemMode(); + //璇诲彇鐘舵�� + HdlDeviceAttributeLogic.Current.SendThermostatStatuComand(listDevice[i]); + System.Threading.Thread.Sleep(200); } }); } @@ -228,7 +231,7 @@ /// </summary> private void StartReceiveDataEvent() { - HdlDeviceAttributeLogic.Current.AddAttributeEvent("IndoorUnitListFormEvent", "DeviceStatusReport", (device) => + HdlGatewayReceiveLogic.Current.AddAttributeEvent("IndoorUnitListFormEvent", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (device) => { string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(device); if (dicControl.ContainsKey(mainkeys) == false || device.DeviceStatusReport.CluterID != 513) @@ -242,27 +245,30 @@ var data = device.DeviceStatusReport.AttriBute[i]; if (data.AttributeId == 0) { - //瀹ゅ唴娓╁害 - if (data.AttriButeData == 0) + HdlThreadLogic.Current.RunMain(() => { - //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, ".") + "鈩�"; - } + //瀹ゅ唴娓╁害 + if (data.AttriButeData == 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, ".") + "鈩�"; + } + }); } else if (data.AttributeId == 28) { @@ -270,9 +276,25 @@ //Off = 0 Auto = 1 Cool = 3 Heat = 4 FanOnly = 7 Dry = 8 if (data.AttriButeData != 0) { - rowInfo.btnSwitch.IsSelected = true; - rowInfo.btnIcon.IsSelected = true; - rowInfo.btnIconBack.BackgroundColor = 0xfffef1ed; + HdlThreadLogic.Current.RunMain(() => + { + rowInfo.btnSwitch.IsSelected = true; + rowInfo.btnIcon.IsSelected = true; + rowInfo.btnIconBack.BackgroundColor = 0xfffef1ed; + }); + } + } + else if (data.AttributeId == 4097) + { + //42:闇�瑕佹竻娲楁护缃� + if (data.AttriButeData == 42) + { + HdlThreadLogic.Current.RunMain(() => + { + rowInfo.btnWarningIcon.Visible = true; + //璇锋敞鎰忔竻娲楁护缃戝摝 + rowInfo.btnWarningMsg.TextID = R.MyInternationalizationString.uPleaseClreanACfilter; + }); } } } @@ -286,11 +308,36 @@ /// <summary> /// 鐣岄潰鍏抽棴 /// </summary> - public override void CloseForm() + public override void CloseFormBefore() { - HdlDeviceAttributeLogic.Current.RemoveEvent("IndoorUnitListFormEvent"); + HdlGatewayReceiveLogic.Current.RemoveEvent("IndoorUnitListFormEvent"); - base.CloseForm(); + base.CloseFormBefore(); + } + + #endregion + + #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________ + + /// <summary> + /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠� + /// </summary> + public override int FormActionAgainEvent() + { + if (this.actionDeviceKeys != null && dicControl.ContainsKey(this.actionDeviceKeys) == true) + { + //鍒锋柊璁惧淇℃伅 + var device = Common.LocalDevice.Current.GetDevice(this.actionDeviceKeys); + if (device != null) + { + var contr = dicControl[this.actionDeviceKeys]; + contr.btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(device); + contr.btnRoom.Text = HdlRoomLogic.Current.GetRoomNameByDevice(device); + } + } + this.actionDeviceKeys = null; + + return 1; } #endregion @@ -303,6 +350,14 @@ private class RowControlInfo { /// <summary> + /// 璁惧鍚嶅瓧 + /// </summary> + public NormalViewControl btnDeviceName = null; + /// <summary> + /// 璁惧鎴块棿 + /// </summary> + public NormalViewControl btnRoom = null; + /// <summary> /// 璁惧鍥炬爣鑳屾櫙 /// </summary> public FrameLayout btnIconBack = null; -- Gitblit v1.8.0