From d5b9ff8bf8cc36f5b13c46b66682f5988d3a6f36 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 15 五月 2020 11:36:11 +0800
Subject: [PATCH] 2020-05-15-1

---
 ZigbeeApp/Shared/Phone/Device/Logic/LogicIfon.cs |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 51 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 99a78c5..a893a4a
--- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicIfon.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicIfon.cs
@@ -1,6 +1,8 @@
 锘縰sing System;
 using System.Collections.Generic;
 using Shared;
+using ZigBee.Device;
+
 namespace Shared.Phone.Device.Logic
 {
     public class LogicIfon
@@ -11,7 +13,7 @@
         /// </summary>
         /// <param name="common">Common.</param>
         /// <param name="objecttype">Objecttype.</param>
-        public static void AddDeviceconditions(ZigBee.Device.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++)
             {
@@ -19,9 +21,32 @@
                 {
                     if ((Common.Logic.CurrentLogic.Conditions[i]["MacAddr"] == common.DeviceAddr) && (Common.Logic.CurrentLogic.Conditions[i]["Epoint"] == common.DeviceEpoint.ToString()))
                     {
-                        Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
-                        Common.Logic.CurrentLogic.Conditions.Insert(i, objecttype);
-                        return;
+                        if (common.Type == DeviceType.TemperatureSensor)//璁惧娓╁害浼犳劅鍣ㄦ湁鐐圭壒鍒�
+                        {
+                            var dev = common as TemperatureSensor;
+                            string str = "";
+                            if (dev.SensorDiv == 1)
+                            {
+                                str = "1026";
+                            }
+                            else
+                            {
+                                str = "1029";
+                            }
+                            if (Common.Logic.CurrentLogic.Conditions[i]["Cluster_ID"] == str)
+                            {
+                                Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
+                                Common.Logic.CurrentLogic.Conditions.Insert(i, objecttype);
+                                return;
+                            }
+
+                        }
+                        else
+                        {
+                            Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
+                            Common.Logic.CurrentLogic.Conditions.Insert(i, objecttype);
+                            return;
+                        }
                     }
 
                 }
@@ -94,7 +119,6 @@
             Common.Logic.CurrentLogic.Conditions.Add(objecttype);
         }
         #endregion
-
         #region ----閫昏緫杈撳嚭鐩爣----
 
         /// <summary>
@@ -102,7 +126,7 @@
         /// </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++)
             {
@@ -119,6 +143,27 @@
             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);
+                        return;
+                    }
+                }
+            }
+            Common.Logic.CurrentLogic.Actions.Add(actionsInfo);
+        }
+        /// <summary>
         /// 娣诲姞Scene杈撳嚭鐨勬柟娉�
         /// </summary>
         /// <param name="Scene">Common.</param>

--
Gitblit v1.8.0