From 652243206427f35a256400a149a1734085824cb9 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 02 九月 2020 17:35:03 +0800
Subject: [PATCH] 2020-09-02-4

---
 ZigbeeApp/Shared/Phone/Device/Logic/LogicIfon.cs |   51 +++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 45 insertions(+), 6 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicIfon.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicIfon.cs
old mode 100644
new mode 100755
index 78c77e8..9725229
--- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicIfon.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicIfon.cs
@@ -13,7 +13,7 @@
         /// </summary>
         /// <param name="common">Common.</param>
         /// <param name="objecttype">Objecttype.</param>
-        public static void AddDeviceconditions(CommonDevice common, Dictionary<string, string> objecttype)
+        public static void AddDeviceconditions(CommonDevice common, Dictionary<string, string> objecttype) 
         {
             for (int i = 0; i < Common.Logic.CurrentLogic.Conditions.Count; i++)
             {
@@ -39,6 +39,25 @@
                                 Common.Logic.CurrentLogic.Conditions.Insert(i, objecttype);
                                 return;
                             }
+
+                        }
+                        else if (common.Type == DeviceType.IASZone)
+                        {
+                            var iASZonedevice = common as IASZone;
+                            if (iASZonedevice.ModelIdentifier == "MSPIRB-ZB.10")
+                            {//鐞冨舰绉诲姩浼犳劅鍣�
+                                if (Common.Logic.CurrentLogic.Conditions[i]["Cluster_ID"] == objecttype["Cluster_ID"])
+                                {
+                                    Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
+                                    Common.Logic.CurrentLogic.Conditions.Insert(i, objecttype);
+                                    return;
+                                }
+                                continue;
+                            }
+
+                            Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
+                            Common.Logic.CurrentLogic.Conditions.Insert(i, objecttype);
+                            return;
 
                         }
                         else
@@ -126,13 +145,34 @@
         /// </summary>
         /// <param name="common">Common.</param>
         /// <param name="actionsInfo">Objecttype.</param>
-        public static void AddDeviceactions(ZigBee.Device.CommonDevice common, Dictionary<string, object> actionsInfo)
+        public static void AddDeviceActions(ZigBee.Device.CommonDevice common, Dictionary<string, object> actionsInfo)
         {
             for (int i = 0; i < Common.Logic.CurrentLogic.Actions.Count; i++)
             {
                 if (Common.Logic.CurrentLogic.Actions[i]["LinkType"].ToString() == "0")
                 {
                     if (Common.Logic.CurrentLogic.Actions[i]["DeviceAddr"].ToString() == common.DeviceAddr && Common.Logic.CurrentLogic.Actions[i]["Epoint"].ToString() == common.DeviceEpoint.ToString())
+                    {
+                        Common.Logic.CurrentLogic.Actions.RemoveAt(i);
+                        Common.Logic.CurrentLogic.Actions.Insert(i, actionsInfo);
+                        return;
+                    }
+                }
+            }
+            Common.Logic.CurrentLogic.Actions.Add(actionsInfo);
+        }
+        /// <summary>
+        /// 娣诲姞闂ㄩ攣璁惧杈撳嚭鐨勬柟娉�
+        /// </summary>
+        /// <param name="common">Common.</param>
+        /// <param name="actionsInfo">Objecttype.</param>
+        public static void AddDoorLockActions(ZigBee.Device.CommonDevice common, Dictionary<string, object> actionsInfo)
+        {
+            for (int i = 0; i < Common.Logic.CurrentLogic.Actions.Count; i++)
+            {
+                if (Common.Logic.CurrentLogic.Actions[i]["LinkType"].ToString() == "8")
+                {
+                    if (Common.Logic.CurrentLogic.Actions[i]["DeviceAddr"].ToString() == common.DeviceAddr && Common.Logic.CurrentLogic.Actions[i]["Epoint"].ToString() =="200")
                     {
                         Common.Logic.CurrentLogic.Actions.RemoveAt(i);
                         Common.Logic.CurrentLogic.Actions.Insert(i, actionsInfo);
@@ -166,8 +206,7 @@
         /// <summary>
         /// 娣诲姞瀹夐槻杈撳嚭鐨勬柟娉�
         /// </summary>
-        /// <param name="objecttype">Objecttype.</param>
-        /// <param name="o">O.</param>
+        /// <param name="actionsInfo">actionsInfo.</param>
         public static void AddSecurityactions(Dictionary<string, object> actionsInfo)
         {
             for (int i = 0; i < Common.Logic.CurrentLogic.Actions.Count; i++)
@@ -185,8 +224,8 @@
         /// <summary>
         /// 娣诲姞鑷姩鍖栬緭鍑虹殑鏂规硶
         /// </summary>
-        /// <param name="objecttype">Objecttype.</param>
-        /// <param name="o">O.</param>
+        /// <param name="actionsInfo">Objecttype.</param>
+        /// <param name="logic">logic</param>
         public static void AddLogicactions(Common.Logic logic, Dictionary<string, object> actionsInfo)
         {
 

--
Gitblit v1.8.0