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/2-Classification/ClassificaitionPublicBLL.cs |   84 ++++++++++++++++++++++++++++++++++++++---
 1 files changed, 77 insertions(+), 7 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
index 1af093e..25b3591 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
@@ -17,14 +17,14 @@
         /// <param name="updataFunction"></param>
         public void UpdataStates(Function updataFunction, FrameLayout view, VerticalScrolViewLayout scrolView, Room room = null)
         {
+            if (view == null || scrolView == null || updataFunction == null)
+            {
+                return;
+            }
             Application.RunOnMainThread((() =>
             {
                 try
                 {
-                    if (view == null || scrolView == null || updataFunction == null)
-                    {
-                        return;
-                    }
                     if (!scrolView.ScrollEnabled)
                     {
                         return;
@@ -112,6 +112,12 @@
                                     {
                                         #region 绐楀笜鏇存柊
                                         var onoffString = updataFunction.GetAttrState(FunctionAttributeKey.OnOff);
+                                        var percentAttr = updataFunction.GetAttribute(FunctionAttributeKey.Percent);
+                                        if(percentAttr != null)
+                                        {
+                                            onoffString = percentAttr.curValue.ToString() == "0" ? "off" : "on";
+                                        }
+
                                         if (onoffString == "stop")
                                         {
                                             return;
@@ -172,7 +178,7 @@
                                         #endregion
                                     }
                                     //鏇存柊姣背娉紶鎰熷櫒鐘舵��
-                                    else if(SPK.SenesorMegahealth == updataFunction.spk)
+                                    else if(SPK.SenesorMegahealth == updataFunction.spk || SPK.SensorMmvPose == updataFunction.spk)
                                     {
                                         if (cTag == updataFunction.sid + "_SenesorMegahealth_Status")
                                         {
@@ -187,7 +193,7 @@
                                                     switch (tempStatus.state)
                                                     {//0绌猴紝1璧帮紝2璺戯紝3鍧愶紝4璺屽�掞紝5绔�
                                                         case "0":
-                                                            btnStatus.TextID = StringId.SensorNormalState;
+                                                            btnStatus.TextID = StringId.wuren;
                                                             btnStatus.TextColor = CSS_Color.MainColor;
                                                             break;
                                                         case "1":
@@ -239,6 +245,70 @@
                                             catch (Exception ex)
                                             {
                                                 MainPage.Log($"{this.GetType()} error 3 : {ex.Message}");
+                                            }
+                                        }
+                                    }
+
+                                    else if (SPK.ArmSensorSpkList().Contains(updataFunction.spk))
+                                    {
+                                        if (cTag == updataFunction.sid + "_Sensor_Status")
+                                        {
+                                            Button btnStatus = (fcView.GetChildren(j) as Button);
+
+                                            var alarm_status = updataFunction.attributes.Find((sta) => sta.key == FunctionAttributeKey.AlarmStatus);
+                                            if (alarm_status != null)
+                                            {
+                                                if (alarm_status.curValue.ToString() == "normal")
+                                                {
+                                                    btnStatus.TextID = StringId.SensorNormalState;
+                                                    btnStatus.TextColor = CSS_Color.MainColor;
+                                                }
+                                                else
+                                                {
+                                                    btnStatus.TextID = StringId.InAlarm;
+                                                    btnStatus.TextColor = CSS_Color.WarningColor;
+                                                }
+                                            }
+                                            else
+                                            {
+                                                alarm_status = updataFunction.attributes.Find((sta) => sta.key == "contact_status");
+                                                if (alarm_status != null)
+                                                {
+                                                    if (alarm_status.curValue.ToString() == "close")
+                                                    {
+                                                        btnStatus.TextID = StringId.Shut;
+                                                        btnStatus.TextColor = CSS_Color.MainColor;
+                                                    }
+                                                    else
+                                                    {
+                                                        if (updataFunction.spk == SPK.SensorDryContact || updataFunction.spk == SPK.SensorDryContact2)
+                                                        {
+                                                            btnStatus.TextID = StringId.DryBreak;
+                                                        }
+                                                        else
+                                                        {
+                                                            btnStatus.TextID = StringId.Open;
+                                                        }
+                                                        btnStatus.TextColor = CSS_Color.WarningColor;
+                                                    }
+                                                }
+                                                else
+                                                {
+                                                    alarm_status = updataFunction.attributes.Find((sta) => sta.key == "people_status");
+                                                    if (alarm_status != null)
+                                                    {
+                                                        if (alarm_status.curValue.ToString() == "false")
+                                                        {
+                                                            btnStatus.TextID = StringId.wuren;
+                                                            btnStatus.TextColor = CSS_Color.MainColor;
+                                                        }
+                                                        else
+                                                        {
+                                                            btnStatus.TextID = StringId.youren;
+                                                            btnStatus.TextColor = CSS_Color.WarningColor;
+                                                        }
+                                                    }
+                                                }
                                             }
                                         }
                                     }
@@ -298,7 +368,7 @@
                         {
                             if (scrolView.GetChildren(i).GetType() == typeof(FunctionControlZone)) {
                                 var fcView = scrolView.GetChildren(i) as FunctionControlZone;
-                                fcView.UpdataOnline(updataFunction.online);
+                                fcView.UpdataOnline(updataFunction.isOnline());
                             }
                         }
                     }

--
Gitblit v1.8.0