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