From 9c16d3614d9b88c637f967518a329f239fcd3aaf Mon Sep 17 00:00:00 2001
From: lss <316519258@qq.com>
Date: 星期五, 12 六月 2020 09:22:04 +0800
Subject: [PATCH] 2020.06.12

---
 ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs |   86 ++++++++++++++++---------------------------
 1 files changed, 32 insertions(+), 54 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs
index 28c511f..cd14c9d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs
@@ -424,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();
@@ -479,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);
                 }
@@ -531,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