From 9ab5bd54fadd8fc9c542b48c99a117a4e182669b Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期四, 14 十月 2021 16:37:56 +0800
Subject: [PATCH] 智能空开能源界面数据更新

---
 HDL_ON/Entity/Function/SecurityAlarm.cs |  182 ++++++++++++++++++++++++---------------------
 1 files changed, 98 insertions(+), 84 deletions(-)

diff --git a/HDL_ON/Entity/Function/SecurityAlarm.cs b/HDL_ON/Entity/Function/SecurityAlarm.cs
index 4eda460..68cc8d8 100644
--- a/HDL_ON/Entity/Function/SecurityAlarm.cs
+++ b/HDL_ON/Entity/Function/SecurityAlarm.cs
@@ -6,99 +6,70 @@
 
 namespace HDL_ON.Entity
 {
-    /// <summary>
-    /// 瀹夐槻涓績
-    /// </summary>
-    public class SecurityCenter
-    {
-        static SecurityCenter _center;
 
-        public static SecurityCenter Security
+    public class SecurityCenter111111
+    {
+        static SecurityCenter111111 _securityCenter;
+
+        public static SecurityCenter111111 Ins
         {
             get
             {
-                if(_center == null)
+                if (_securityCenter == null)
                 {
-                    _center = new SecurityCenter();
+                    _securityCenter = new SecurityCenter111111();
                 }
-                return _center;
+                return _securityCenter;
             }
         }
 
-        SecurityAlarm _securityAlarm;
+        /// <summary>
+        /// 甯冮槻涓�
+        /// </summary>
+        public bool InDefense
+        {
+            get
+            {
+                lock (FunctionList.List.securities)
+                {
+                    var temp = FunctionList.List.securities.Find((obj) => obj.status == "enable");
+                    return temp == null ? false : true;
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鎶ヨ涓�
+        /// </summary>
+        public bool InAlarm
+        {
+            get
+            {
+                lock (FunctionList.List.securities)
+                {
+                    var temp = FunctionList.List.securities.Find((obj) => obj.alarm == true);
+                    return temp == null ? false : true;
+                }
+            }
+        }
+
+        SecurityAlarm _inDefenseMode;
         /// <summary>
         /// 褰撳墠甯冮槻妯″紡
         /// </summary>
-        public SecurityAlarm CurrentDefenseMode
+        public SecurityAlarm InDefenseMode
         {
             get
             {
-                return _securityAlarm;
-            }
-            set
-            {
-                _securityAlarm = value;
-                UI.HomePage.LoadEvent_RefreshSecurityStatus();
-            }
-        }
-
-        HttpServerRequest httpServerRequest = new HttpServerRequest();
-
-
-
-        List<SecurityAlarm> _securityAlarmList;
-        /// <summary>
-        /// 闃插尯鍒楄〃
-        /// </summary>
-        public List<SecurityAlarm> securityAlarmList
-        {
-            get
-            {
-                if(_securityAlarmList == null)
+                if (_inDefenseMode == null)
                 {
-                  _securityAlarmList =  GetSecurityAlarmList();
-                }
-                return _securityAlarmList;
-            }
-        }
-
-
-        /// <summary>
-        /// 璇诲彇浜戠瀹夐槻鍒楄〃
-        /// </summary>
-        /// <returns></returns>
-        public List<SecurityAlarm> GetSecurityAlarmList()
-        {
-            var pack = httpServerRequest.GetSecurityList();
-            if(pack.Code == StateCode.SUCCESS)
-            {
-                var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SecurityAlarm>>(pack.Data.ToString());
-                if(revData!= null)
-                {
-                    _securityAlarmList = revData;
-                    return revData;
-                }
-            }
-            return new List<SecurityAlarm>();
-        }
-
-        /// <summary>
-        /// 鐘舵�� enable甯冮槻銆乨isable鎾掗槻
-        /// </summary>
-        public string status
-        {
-            get
-            {
-                string result = "disable";
-                foreach(var s in securityAlarmList)
-                {
-                    if(s.status == "enable")
+                    lock (FunctionList.List.securities)
                     {
-                        result = "enable";
-                        break;
+                        var temp = FunctionList.List.securities.Find((obj) => obj.status == "enable");
+                        return temp;  
                     }
                 }
-                return result;
+                return _inDefenseMode;
             }
         }
 
@@ -106,8 +77,18 @@
     }
 
 
+
     public class SecurityAlarm
     {
+        public SecurityAlarm()
+        {
+            pushConfigs.Add(new SecurityPushConfig()
+            {
+                pushMethod = "APP",
+                pushTarget = new List<string>() { UserInfo.Current.ID }
+            });
+        }
+
         /// <summary>
         /// 瀹夐槻浜戠id
         /// </summary>
@@ -125,9 +106,15 @@
         /// </summary>
         public string delay;
         /// <summary>
-        /// 鐘舵�� enable甯冮槻銆乨isable鎾掗槻
+        /// 鐘舵��
+        /// 甯冮槻:enable
+        /// 鎾掗槻:disable
         /// </summary>
         public string status = "disable";
+        /// <summary>
+        /// 鎶ヨ鐘舵��
+        /// </summary>
+        public bool alarm = false;
         /// <summary>
         /// 绫诲瀷
         /// "all"--鍏ㄥ畢甯冮槻锛�
@@ -183,6 +170,8 @@
         public string SaveInfo()
         {
             HttpServerRequest hsr = new HttpServerRequest();
+            this.noticeConfig.enable = true;
+            this.noticeConfig.noticeContent = Language.StringByID(StringId.SecurityAlarmTipString).Replace("{0}", name);
             if (string.IsNullOrEmpty(sid))
             {
                 NewSid();
@@ -190,7 +179,8 @@
                 if (pack.Code == StateCode.SUCCESS)
                 {
                     SaveFile();
-                }else
+                }
+                else
                 {
                     sid = "";
                 }
@@ -246,9 +236,9 @@
                 int maxId = 1;
 
 
-                for (int i = 0; i < SecurityCenter.Security.securityAlarmList.Count; i++)
+                for (int i = 0; i < FunctionList.List.securities.Count; i++)
                 {
-                    string s = SecurityCenter.Security.securityAlarmList[i].sid.Substring(20, 4);
+                    string s = FunctionList.List.securities[i].sid.Substring(20, 4);
                     int iThisSceneId = Convert.ToInt16(s, 16);
                     if (iThisSceneId > maxId)
                         maxId = iThisSceneId;
@@ -337,6 +327,11 @@
         /// 瀹夐槻杈撳叆鏉′欢
         /// </summary>
         public List<SecurityInputCondition> condition = new List<SecurityInputCondition>();
+
+        /// <summary>
+        /// 鍒ゆ柇鏉′欢
+        /// </summary>
+        public string comparator = "=";
 
         /// <summary>
         /// 鍔犲叆杈撳叆鏉′欢
@@ -432,11 +427,11 @@
                 case SPK.SensorSmoke:
                     foreach (var con in condition)
                     {
-                        if (con.value == "true")
+                        if (con.value == "true" || con.value == "alarm")
                         {
                             text += Language.StringByID(StringId.InAlarm) + " ";
                         }
-                        else if (con.value == "false")
+                        else if (con.value == "false" || con.value == "normal")
                         {
                             text += Language.StringByID(StringId.Normal) + " ";
                         }
@@ -458,11 +453,11 @@
                 case SPK.SensorWater:
                     foreach (var con in condition)
                     {
-                        if (con.value == "true")
+                        if (con.value == "true" || con.value == "alarm")
                         {
                             text += Language.StringByID(StringId.WaterLeakage) + " ";
                         }
-                        else if (con.value == "false")
+                        else if (con.value == "false" || con.value == "normal")
                         {
                             text += Language.StringByID(StringId.Normal) + " ";
                         }
@@ -471,11 +466,11 @@
                 case SPK.SensorDoorWindow:
                     foreach (var con in condition)
                     {
-                        if (con.value == "true")
+                        if (con.value == "true" || con.value == "open")
                         {
                             text += Language.StringByID(StringId.Open) + " ";
                         }
-                        else if (con.value == "false")
+                        else if (con.value == "false" || con.value == "close")
                         {
                             text += Language.StringByID(StringId.Close) + " ";
                         }
@@ -636,4 +631,23 @@
         /// </summary>
         public List<string> pushTarget = new List<string>();
     }
+
+
+    /// <summary>
+    /// A鍗忚鎺у埗鏁版嵁鐨勫璞�
+    /// </summary>
+    public class SecurityStatusObj
+    {
+        public List<SecurityStatusData> objects = new List<SecurityStatusData>();
+
+        public string time_stamp = "";
+        public string id = "";
+    }
+
+    public class SecurityStatusData
+    {
+        public string sid;
+        public string status ="disable" ;
+        public bool alarm = false;
+    }
 }

--
Gitblit v1.8.0