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/Residence/EditorRoomInforForm.cs |   90 ++++++++++++++++++---------------------------
 1 files changed, 36 insertions(+), 54 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs
index 79e3f4f..cd14c9d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs
@@ -313,6 +313,10 @@
                     //鍒锋柊宸︽粦鐨勬埧闂村垪琛ㄧ晫闈㈢殑鎴块棿鍒楄〃淇℃伅
                     MainPage.ListRoomViewFrom.Instance.RefreshListRoom();
                 }
+
+                //绠椾簡,杩欓噷濡傛灉鎸変笅淇濆瓨,鍒欎富椤甸渶瑕侀噸鏂板埛鏂�
+                UserView.UserPage.Instance.RefreshForm = true;
+
                 this.CloseForm();
             };
         }
@@ -420,41 +424,22 @@
                 {
                     return;
                 }
-
-                foreach (var data in report.DeviceStatusReport.AttriBute)
+                var localDevice = Common.LocalDevice.Current.GetDevice(mainKeys);
+                HdlThreadLogic.Current.RunMain(() =>
                 {
-                    if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
+                    if (((ZigBee.Device.TemperatureSensor)localDevice).Temperatrue == 0)
                     {
-                        HdlThreadLogic.Current.RunMain(() =>
-                        {
-                            if (data.AttriButeData == 0)
-                            {
-                                //0鈩�
-                                btnTemper.Text = "0.0鈩�";
-                                this.cloneRoom.Temperatrue = 0;
-                            }
-                            else if (data.AttriButeData > 32767)
-                            {
-                                //璐熸暟(鐗规畩澶勭悊)
-                                string strValue = (data.AttriButeData - 65536).ToString();
-                                //灏忔暟鐐归渶瑕佷竴浣�
-                                strValue = strValue.Substring(0, strValue.Length - 1);
-                                //璁板綍娓╁害
-                                this.cloneRoom.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
-                                btnTemper.Text = this.cloneRoom.Temperatrue.ToString() + "鈩�";
-                            }
-                            else
-                            {
-                                //灏忔暟鐐归渶瑕佷竴浣�
-                                string strValue = data.AttriButeData.ToString();
-                                strValue = strValue.Substring(0, strValue.Length - 1);
-                                //璁板綍娓╁害
-                                this.cloneRoom.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
-                                btnTemper.Text = this.cloneRoom.Temperatrue.ToString() + "鈩�";
-                            }
-                        });
+                        //0鈩�
+                        btnTemper.Text = "0.0鈩�";
+                        this.cloneRoom.Temperatrue = 0;
                     }
-                }
+                    else
+                    {
+                        //璁板綍娓╁害
+                        this.cloneRoom.Temperatrue = ((ZigBee.Device.TemperatureSensor)localDevice).Temperatrue;
+                        btnTemper.Text = this.cloneRoom.Temperatrue.ToString() + "鈩�";
+                    }
+                }, ShowErrorMode.NO);
             }));
             //鍙戦�佽幏鍙栨俯搴︾殑鍛戒护
             ((ZigBee.Device.TemperatureSensor)device).ReadTemperatureOrHumidity();
@@ -475,6 +460,10 @@
             {
                 //鑾峰彇婀垮害浼犳劅鍣�
                 if (device is ZigBee.Device.TemperatureSensor && ((ZigBee.Device.TemperatureSensor)device).SensorDiv == 2)
+                {
+                    listDevice.Add(device);
+                }
+                else if (device.Type == ZigBee.Device.DeviceType.FreshAirHumiditySensor)
                 {
                     listDevice.Add(device);
                 }
@@ -527,33 +516,26 @@
                 {
                     return;
                 }
-                foreach (var data in report.DeviceStatusReport.AttriBute)
+                var localDevice = Common.LocalDevice.Current.GetDevice(mainKeys);
+                HdlThreadLogic.Current.RunMain(() =>
                 {
-                    if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
+                    decimal humidity = (decimal)localDevice.GetType().InvokeMember("Humidity", System.Reflection.BindingFlags.GetField, null, localDevice, null);
+                    if (humidity == 0)
                     {
-                        HdlThreadLogic.Current.RunMain(() =>
-                        {
-                            if (data.AttriButeData == 0)
-                            {
-                                //0
-                                btnHumi.Text = "0.0%";
-                                this.cloneRoom.Humidity = 0;
-                            }
-                            else
-                            {
-                                //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟)
-                                string strValue = data.AttriButeData.ToString();
-                                strValue = strValue.Substring(0, strValue.Length - 1);
-                                //璁板綍婀垮害
-                                this.cloneRoom.Humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
-                                btnHumi.Text = this.cloneRoom.Humidity.ToString() + "%";
-                            }
-                        });
+                        //0
+                        btnHumi.Text = "0.0%";
+                        this.cloneRoom.Humidity = 0;
                     }
-                }
+                    else
+                    {
+                        //璁板綍婀垮害
+                        this.cloneRoom.Humidity = humidity;
+                        btnHumi.Text = this.cloneRoom.Humidity.ToString() + "%";
+                    }
+                }, ShowErrorMode.NO);
             });
             //鍙戦�佽幏鍙栨箍搴︾殑鍛戒护
-            ((ZigBee.Device.TemperatureSensor)device).ReadTemperatureOrHumidity();
+            device.GetType().InvokeMember("ReadTemperatureOrHumidity", System.Reflection.BindingFlags.InvokeMethod, null, device, null);
         }
 
         #endregion

--
Gitblit v1.8.0