From da9905ebb2794d276f37d798f1624c8c59dc074e Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 20 七月 2020 17:37:24 +0800
Subject: [PATCH] 2020-07-20-2
---
ZigbeeApp/Shared/Phone/Device/Logic/LogicIfon.cs | 83 ++++++++++++++++++++++++++++++++++++-----
1 files changed, 73 insertions(+), 10 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicIfon.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicIfon.cs
index 99a78c5..fd74126 100644
--- 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,51 @@
{
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 if (common.Type == DeviceType.IASZone)
+ {
+ var iASZonedevice = common as IASZone;
+ if (iASZonedevice.IasDeviceType == 541)
+ {//鐞冨舰绉诲姩浼犳劅鍣�
+ 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
+ {
+ Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
+ Common.Logic.CurrentLogic.Conditions.Insert(i, objecttype);
+ return;
+ }
}
}
@@ -94,7 +138,6 @@
Common.Logic.CurrentLogic.Conditions.Add(objecttype);
}
#endregion
-
#region ----閫昏緫杈撳嚭鐩爣----
/// <summary>
@@ -102,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);
@@ -142,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++)
@@ -161,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