From 19d0e070e128daf855beaf72e00f55334be9f87b Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期六, 28 八月 2021 13:47:25 +0800
Subject: [PATCH] 1

---
 HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs |  112 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 98 insertions(+), 14 deletions(-)

diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
index f0fdbc0..4922410 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -14,11 +14,53 @@
         /// </summary>
         public static void LoadEvent_RefreshAir()
         {
-            if (bodyView != null)
+            Application.RunOnMainThread(() =>
             {
-                bodyView.btnTempValues.Text = MainPage.cityInfo.temperature == null ? "--" : MainPage.cityInfo.temperature + "掳";
-                bodyView.btnHumidityValues.Text = MainPage.cityInfo.humidity == null ? "--" : MainPage.cityInfo.humidity + "%";
-                bodyView.btnPm25Values.Text = MainPage.cityInfo.pm25 == null ? "--" : MainPage.cityInfo.pm25;
+                if (bodyView != null)
+                {
+                    bodyView.btnTempValues.Text = MainPage.cityInfo.temperature == null ? "--" : MainPage.cityInfo.temperature + "掳";
+                    bodyView.btnHumidityValues.Text = MainPage.cityInfo.humidity == null ? "--" : MainPage.cityInfo.humidity + "%";
+                    bodyView.btnPm25Values.Text = MainPage.cityInfo.pm25 == null ? "--" : MainPage.cityInfo.pm25;
+                }
+            });
+        }
+
+        /// <summary>
+        /// 鏇存柊瀹夐槻鐘舵��
+        /// </summary>
+        public static void LoadEvent_RefreshSecurityStatus()
+        {
+            try
+            {
+                Application.RunOnMainThread(() =>
+                {
+                    if (bodyView != null)
+                    {
+                        lock (FunctionList.List.securities)
+                        {
+                            foreach (var temp in FunctionList.List.securities)
+                            {
+                                if (temp.status == "enable")
+                                {
+                                    if (temp.alarm)
+                                    {
+                                        bodyView.btnSecurityStatus.SelectedImagePath = "Collection/DefenseAlarmIcon.png";
+                                    }
+                                    else
+                                    {
+                                        bodyView.btnSecurityStatus.SelectedImagePath = "Collection/DefenseStatusIcon.png";
+                                    }
+                                    bodyView.btnSecurityStatus.IsSelected = true;
+                                    return;
+                                }
+                            }
+                        }
+                    }
+                });
+            }
+            catch (Exception ex)
+            {
+                MainPage.Log($"瀹夐槻涓婚〉鏇存柊寮傚父锛歿ex.Message}");
             }
         }
 
@@ -32,16 +74,37 @@
                 if (bodyView != null)
                 {
                     var humiSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorHumidity);
+                    var enviSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => SPK.EvironmentSensorList().Contains(obj.spk ));
+                    foreach (var enviTemp in enviSensorList)
+                    {
+                        var tempAttr = enviTemp.attributes.Find((obj) => obj.key == "humidity");
+                        if (tempAttr != null)
+                        {
+                            var newTemp = new Function()
+                            {
+                                name = enviTemp.name,
+                                sid = enviTemp.sid,
+                                deviceId = enviTemp.deviceId,
+                                attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = tempAttr.state, curValue = tempAttr.curValue } },
+                            };
+                            humiSensorList.Add(newTemp);
+                        }
+                    }
                     double humiTotalValues = 0;
+                    int humiTotalCount = 0;
                     foreach (var temp in humiSensorList)
                     {
                         double humiValue = 0;
                         double.TryParse(temp.GetAttrState(FunctionAttributeKey.Value), out humiValue);
-                        humiTotalValues += humiValue;
+                        if(humiValue > 0)
+                        {
+                            humiTotalValues += humiValue;
+                            humiTotalCount++;
+                        }
                     }
                     if (humiTotalValues > 0)
                     {
-                        bodyView.btnIndoorHumiValues.Text = "/" + humiTotalValues + "%";
+                        bodyView.btnIndoorHumiValues.Text = "/" + (humiTotalValues /humiTotalCount).ToString("0")+ "%";
                     }
                     bodyView.btnIndoorHumiValues.Width = bodyView.btnIndoorHumiValues.GetTextWidth();
                 }
@@ -49,7 +112,7 @@
         }
 
         /// <summary>
-        /// 鏇存柊瀹ゅ唴浼犳劅鍣ㄦ暟鎹�-鏅氱偣
+        /// 鏇存柊瀹ゅ唴浼犳劅鍣ㄦ暟鎹�
         /// </summary>
         public static void LoadEvent_RefreshEnvirIndoorTemp()
         { 
@@ -58,16 +121,37 @@
                 if (bodyView != null)
                 {
                     var tempSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorTemperature);
+                    var enviSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => SPK.EvironmentSensorList().Contains(obj.spk));
+                    foreach (var enviTemp in enviSensorList)
+                    {
+                        var tempAttr = enviTemp.attributes.Find((obj) => obj.key == "temperature");
+                        if (tempAttr != null)
+                        {
+                            var newTemp = new Function()
+                            {
+                                name = enviTemp.name,
+                                sid = enviTemp.sid,
+                                deviceId = enviTemp.deviceId,
+                                attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = tempAttr.state, curValue = tempAttr.curValue } },
+                            };
+                            tempSensorList.Add(newTemp);
+                        }
+                    }
                     double tempTotalValues = 0;
+                    int tempTotalCount = 0;
                     foreach (var temp in tempSensorList)
                     {
                         double tempValue = 0;
                         double.TryParse(temp.GetAttrState(FunctionAttributeKey.Value), out tempValue);
-                        tempTotalValues += tempValue;
+                        if (tempValue > 0)
+                        {
+                            tempTotalValues += tempValue;
+                            tempTotalCount++;
+                        }
                     }
                     if (tempTotalValues > 0)
                     {
-                        bodyView.btnIndoorTempValues.Text = "/" + tempTotalValues + "掳";
+                        bodyView.btnIndoorTempValues.Text = "/" + (tempTotalValues /tempTotalCount).ToString("0.0")+ "掳";
                     }
                     bodyView.btnIndoorTempValues.Width = bodyView.btnIndoorTempValues.GetTextWidth();
                 }
@@ -551,12 +635,12 @@
                     {
                         //鏈鐨勬秷鎭垪琛�
                         var unreadList = new List<PushMessageInfo>();
+                       
+                        var pushMessageInfoList = Newtonsoft.Json.JsonConvert.DeserializeObject<PushMessageInfoList>(result.Data.ToString());
 
-                        var pushMessageInfoList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PushMessageInfo>>(result.Data.ToString());
-
-                        if (pushMessageInfoList != null && pushMessageInfoList.Count > 0)
+                        if (pushMessageInfoList != null && pushMessageInfoList.list != null && pushMessageInfoList.list.Count > 0)
                         {
-                            foreach (var info in pushMessageInfoList)
+                            foreach (var info in pushMessageInfoList.list)
                             {
                                 if (!info.isRead)
                                 {
@@ -576,7 +660,7 @@
                             {
                                 Application.RunOnMainThread(() =>
                                 {
-                                    ShowMesBtnState(pushMessageInfoList[0], true);
+                                    ShowMesBtnState(pushMessageInfoList.list[0], true);
                                 });
                             }
                         }

--
Gitblit v1.8.0