From a45fe56aeeac8f28a9891b83362954067c8166dc Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期五, 14 八月 2020 09:07:05 +0800
Subject: [PATCH] 请合并新代码,更改多功能面板绑定表重复问题

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs |   65 ++++++++++++++++++++++++++++++--
 1 files changed, 60 insertions(+), 5 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
index 71bc66b..a1d3219 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
@@ -251,6 +251,51 @@
                 }
                 #endregion
 
+                #region 鈻� 鐢甸噺鎺ㄩ��
+                //鐢甸噺鎺ㄩ��
+                if (report.DeviceStatusReport.CluterID == 1)
+                {
+                    foreach (var attData in report.DeviceStatusReport.AttriBute)
+                    {
+                        //鐢甸噺
+                        if (attData.AttributeId == 33)
+                        {
+                            string receiptData = string.Empty;
+                            //涓や釜涓や釜浣嶇疆鏇挎崲
+                            for (int i = attData.AttriButeDataHex.Length - 1; i >= 0; i = i - 2)
+                            {
+                                receiptData += attData.AttriButeDataHex[i - 1].ToString() + attData.AttriButeDataHex[i].ToString();
+                            }
+                            int batteryValue = Convert.ToInt32(receiptData, 16);
+                            //浣庝簬20%,鍒欎唬琛ㄧ數閲忎綆
+                            locadevice.IsBatteryDown = batteryValue < 20;
+                        }
+                        //宸茬粡鎺ユ敹鍒扮姸鎬�
+                        locadevice.HadReadDeviceStatu = true;
+                    }
+                }
+
+                #endregion
+
+                #region 鈻� 铚傞福鍣ㄦ帹閫�
+                //铚傞福鍣ㄦ暟鎹�
+                else if (report.DeviceStatusReport.CluterID == 1282)
+                {
+                    //mini澶滅伅
+                    if (Common.LocalDevice.Current.IsMiniLight(locadevice) == true)
+                    {
+                        foreach (var attData in report.DeviceStatusReport.AttriBute)
+                        {
+                            if (attData.AttributeId == 0)
+                            {
+                                //杩欎釜鏄姤璀︽寔缁椂闂�(澶т簬2绉掓椂,鏍囪涓鸿繕鍦ㄥ搷鐫�)
+                                ((ColorTemperatureLight)locadevice).IsBuzzerRing = attData.AttriButeData > 2 ? true : false;
+                            }
+                        }
+                    }
+                }
+                #endregion
+
                 #region 鈻� 绐楀笜鏁版嵁
                 //绐楀笜鏁版嵁
                 else if (report.DeviceStatusReport.CluterID == 258)
@@ -420,6 +465,12 @@
                         }
                         //宸茬粡鎺ユ敹鍒扮姸鎬�
                         locadevice.HadReadDeviceStatu = true;
+
+                        if (locadevice is LightBase)
+                        {
+                            //褰撴帴鏀跺埌浜害鍊兼椂,榛樿鎵撳紑
+                            ((LightBase)locadevice).OnOffStatus = 1;
+                        }
                     }
                 }
                 #endregion
@@ -491,7 +542,7 @@
                             //娓╁害浼犳劅鍣�
                             if (locadevice is TemperatureSensor)
                             {
-                                ((TemperatureSensor)locadevice).Temperatrue = temperatrue;
+                                ((TemperatureSensor)locadevice).currentTemperature = temperatrue;
                             }
                             //PM2.5浼犳劅鍣�
                             else if (locadevice is PMSensor)
@@ -500,6 +551,8 @@
                             }
                             //宸茬粡鎺ユ敹鍒扮姸鎬�
                             locadevice.HadReadDeviceStatu = true;
+                            //娓╁害鍊奸渶瑕佷繚瀛�
+                            locadevice.ReSave();
                         }
                     }
                 }
@@ -540,21 +593,23 @@
                             //婀垮害浼犳劅鍣�
                             if (locadevice is TemperatureSensor)
                             {
-                                ((TemperatureSensor)locadevice).Humidity = humidity;
+                                ((TemperatureSensor)locadevice).currentHumidity = humidity;
                             }
                             //鏂伴鐨勬箍搴︿紶鎰熷櫒
                             else if (locadevice is HumiditySensor)
                             {
-                                ((HumiditySensor)locadevice).Humidity = humidity;
+                                ((HumiditySensor)locadevice).currentHumidity = humidity;
                             }
                             //PM2.5浼犳劅鍣�
                             else if (locadevice is PMSensor)
                             {
                                 ((PMSensor)locadevice).currentHumidity = (int)humidity;
                             }
+                            //宸茬粡鎺ユ敹鍒扮姸鎬�
+                            locadevice.HadReadDeviceStatu = true;
+                            //婀垮害鍊奸渶瑕佷繚瀛�
+                            locadevice.ReSave();
                         }
-                        //宸茬粡鎺ユ敹鍒扮姸鎬�
-                        locadevice.HadReadDeviceStatu = true;
                     }
                 }
                 #endregion

--
Gitblit v1.8.0