From efcffde735fa65ae34bae0bcc86313b74ed0e36c Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期一, 20 五月 2024 13:47:38 +0800
Subject: [PATCH] 优化离线数据

---
 HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs |   94 +++++++++++++++++++++++++++++------------------
 1 files changed, 58 insertions(+), 36 deletions(-)

diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
index a601904..d47510b 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -33,7 +33,7 @@
                                     }
                                     if (btn.Tag.ToString() == function.sid)
                                     {
-                                        if (function.online)
+                                        if (function.isOnline())
                                         {
                                             btn.UnSelectedImagePath = "Collection/Functionbg.png";
                                             btn.IsSelected = false;
@@ -46,7 +46,7 @@
                                     }
                                     else if (btn.Tag.ToString() == "OnlineTag")
                                     {
-                                        btn.Visible = !function.online;
+                                        btn.Visible = !function.isOnline();
                                     }
                                 }
                             }
@@ -269,15 +269,15 @@
 
             if (!Control.Ins.GatewayOnline_Local && !Control.Ins.GatewayOnline_Cloud)
             {
-                bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipFail;
-                bodyView.btnLinkStateTip.TextID = StringId.NetworkAnomaly;
-                bodyView.environmentalView.Y = Application.GetRealHeight(8) + btnResidenceName.Bottom;
+                bodyView.divLinkStateTip.Visible = true;
             }
+            //else if ()
+            //{
+            //    bodyView.divLinkStateTip.Visible = true;
+            //}
             else
             {
-                bodyView.btnLinkStateTip.BackgroundColor = 0x00000000;
-                bodyView.btnLinkStateTip.Text = "";
-                bodyView.environmentalView.Y = Application.GetRealHeight(1) + btnResidenceName.Bottom;
+                bodyView.divLinkStateTip.Visible = false;
             }
         }
 
@@ -351,11 +351,17 @@
             }
         }
 
+        object lockObj = new object();
+
         /// <summary>
         /// 鏇存柊鏄剧ず鐘舵��
         /// </summary>
         public static void UpdataFunctionStates(Function function)
         {
+            if(bodyView == null)
+            {
+                return;
+            }
             Application.RunOnMainThread(() =>
             {
                 try
@@ -424,12 +430,28 @@
                                         }
                                     }
                                 }
-                                else if(function.spk == SPK.SensorHelp)
+                                else if (function.spk == SPK.SensorHelp)
                                 {
                                     var tempStatus = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.AlarmStatus);
-                                    if(tempStatus != null)
+                                    if (tempStatus != null)
                                     {
                                         state = tempStatus.curValue.ToString() == "alarm";
+                                    }
+                                }
+                                else if (function.spk == SPK.SensorPir || function.spk == SPK.SensorPirHold)
+                                {
+                                    var tempStatus = function.attributes.Find((sta) => sta.key == "people_status");
+                                    if (tempStatus != null)
+                                    {
+                                        state = tempStatus.curValue.ToString() == "true";
+                                    }
+                                }
+                                else if (function.spk == SPK.SensorDryContact || function.spk == SPK.SensorDryContact2)
+                                {
+                                    var tempStatus = function.attributes.Find((sta) => sta.key == "contact_status");
+                                    if (tempStatus != null)
+                                    {
+                                        state = tempStatus.curValue.ToString() == "open";
                                     }
                                 }
                                 else
@@ -546,7 +568,7 @@
         {
             btnSwitch.MouseUpEventHandler = (sender, e) =>
             {
-                if (!function.online)//绂荤嚎涓嶅厑璁告搷浣�
+                if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
                 {
                     new Tip()
                     {
@@ -615,7 +637,7 @@
         {
             btnSwitch.MouseUpEventHandler = (sender, e) =>
             {
-                if (!function.online)//绂荤嚎涓嶅厑璁告搷浣�
+                if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
                 {
                     new Tip()
                     {
@@ -659,16 +681,16 @@
         {
             btnClose.MouseUpEventHandler = (sender, e) =>
             {
-                if (!curtain.online)//绂荤嚎涓嶅厑璁告搷浣�
-                {
-                    new Tip()
-                    {
-                        CloseTime = 1,
-                        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
-                        Direction = AMPopTipDirection.None,
-                    }.Show(MainPage.BaseView);
-                    return;
-                }
+                //if (!curtain.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
+                //{
+                //    new Tip()
+                //    {
+                //        CloseTime = 1,
+                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                //        Direction = AMPopTipDirection.None,
+                //    }.Show(MainPage.BaseView);
+                //    return;
+                //}
                 btnClose.IsSelected = true;
                 curtain.trait_on_off.curValue = "off";
                 curtain.SetAttrState(FunctionAttributeKey.Percent, 0);
@@ -676,23 +698,23 @@
                 d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString());
                 Control.Ins.SendWriteCommand(curtain, d);
             };
-
             btnOpen.MouseUpEventHandler = (sender, e) =>
             {
-                if (!curtain.online)//绂荤嚎涓嶅厑璁告搷浣�
-                {
-                    new Tip()
-                    {
-                        CloseTime = 1,
-                        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
-                        Direction = AMPopTipDirection.None,
-                    }.Show(MainPage.BaseView);
-                    return;
-                }
+                //if (!curtain.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
+                //{
+                //    new Tip()
+                //    {
+                //        CloseTime = 1,
+                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                //        Direction = AMPopTipDirection.None,
+                //    }.Show(MainPage.BaseView);
+                //    return;
+                //}
                 btnOpen.IsSelected = true;
+                Dictionary<string, string> d = new Dictionary<string, string>();
+
                 curtain.trait_on_off.curValue = "on";
                 curtain.SetAttrState(FunctionAttributeKey.Percent, 100);
-                Dictionary<string, string> d = new Dictionary<string, string>();
                 d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString());
                 Control.Ins.SendWriteCommand(curtain, d);
             };
@@ -709,7 +731,7 @@
             };
             btnUp.MouseUpEventHandler = (sender, e) =>
             {
-                if (!function.online)//绂荤嚎涓嶅厑璁告搷浣�
+                if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
                 {
                     new Tip()
                     {
@@ -740,7 +762,7 @@
             };
             btnDown.MouseUpEventHandler = (sender, e) =>
             {
-                if (!function.online)//绂荤嚎涓嶅厑璁告搷浣�
+                if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
                 {
                     new Tip()
                     {

--
Gitblit v1.8.0