From 4f0ab0ad21ce450b7856d50f98322a7899361386 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 22 九月 2020 10:30:01 +0800
Subject: [PATCH] 不要下载这个备份
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs | 56 ++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 48 insertions(+), 8 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs
index d087a84..c9d80ec 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs
@@ -178,7 +178,11 @@
if (topic == gatewayID + "/" + "Scene/GetAllInfo_Respon")
{
var sceneGetAllInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<Scene.GetSceneAllInfo>(jobject["Data"].ToString());
- listScene.Add(sceneGetAllInfo);
+ if (sceneGetAllInfo.ScenesSum != 0)
+ {
+ //濡傛灉缃戝叧閲岄潰娌℃湁鍦烘櫙鐨勮瘽,瀹冧篃浼氭帹杩欎釜涓滆タ杩囨潵
+ listScene.Add(sceneGetAllInfo);
+ }
//鏇村鎺ユ敹寰楀埌鍦烘櫙
canReceve = true;
@@ -359,12 +363,15 @@
/// <summary>
/// 鑾峰彇娣诲姞鎵ц鐩爣鍒板満鏅殑鍛戒护
/// </summary>
- /// <param name="sceneId"></param>
- /// <param name="listAdjustTarget"></param>
+ /// <param name="sceneId">鍦烘櫙id</param>
+ /// <param name="listAdjustTarget">鎵ц鐩爣</param>
+ /// <param name="dicChangedMac">浜ゆ崲mac key:listAdjustTarget褰撳墠鐨凪ac value:杞崲鐨刴ac</param>
+ /// <param name="sceneName">鍦烘櫙鍚嶇О(鐗规畩鐢ㄩ��,璇峰嬁璁剧疆)</param>
/// <returns></returns>
- public List<string> GetAddTargetToSceneCommand(int sceneId, List<Scene.DeviceListData> listAdjustTarget)
+ public List<string> GetAddTargetToSceneCommand(int sceneId, List<Scene.DeviceListData> listAdjustTarget, Dictionary<string, string> dicChangedMac = null, string sceneName = null)
{
var listCommand = new List<string>();
+ int index = 1;
for (int i = 0; i < listAdjustTarget.Count; i++)
{
var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 820 } };
@@ -372,6 +379,17 @@
//璁惧
if (data.Type == 0)
{
+ string deviceAddr = data.DeviceAddr;
+ if (dicChangedMac != null)
+ {
+ //濡傛灉涓嶅寘鍚�,鍒欎笉浣滀负澶勭悊瀵硅薄
+ if (dicChangedMac.ContainsKey(deviceAddr) == false)
+ {
+ continue;
+ }
+ deviceAddr = dicChangedMac[deviceAddr];
+ }
+
var taskList = new Newtonsoft.Json.Linq.JArray { };
foreach (var taskInfo in data.TaskList)
{
@@ -379,25 +397,38 @@
{ "Data1", taskInfo.Data1},{ "Data2",taskInfo.Data2}};
taskList.Add(tInfo);
}
- var data2 = new Newtonsoft.Json.Linq.JObject {{ "ScenesId",sceneId},{ "Type", 0} ,{ "DeviceAddr",data.DeviceAddr} ,
- { "Epoint", data.Epoint} ,{ "TaskList", taskList },{ "DelayTime", 0} ,{ "MemberNumber",i + 1}};
+ var data2 = new Newtonsoft.Json.Linq.JObject {{ "ScenesId",sceneId},{ "Type", 0} ,{ "DeviceAddr",deviceAddr} ,
+ { "Epoint", data.Epoint} ,{ "TaskList", taskList },{ "DelayTime", 0} ,{ "MemberNumber",index}};
+ if (sceneName != null)
+ {
+ data2.Add(new Newtonsoft.Json.Linq.JProperty("ScenesName", sceneName));
+ }
jObject.Add("Data", data2);
}
//鍦烘櫙
else if (data.Type == 1)
{
var data2 = new Newtonsoft.Json.Linq.JObject {{ "ScenesId",sceneId},{ "Type", 1} ,
- { "ElseScenesId", data.ElseScenesId },{ "DelayTime", 0} ,{ "MemberNumber",i + 1} };
+ { "ElseScenesId", data.ElseScenesId },{ "DelayTime", 0} ,{ "MemberNumber",index} };
+ if (sceneName != null)
+ {
+ data2.Add(new Newtonsoft.Json.Linq.JProperty("ScenesName", sceneName));
+ }
jObject.Add("Data", data2);
}
//寤舵椂
else
{
var data2 = new Newtonsoft.Json.Linq.JObject {{ "Type", 2} ,{ "ScenesId",sceneId},
- { "DelayTime", data.DelayTime} ,{ "MemberNumber",i + 1}};
+ { "DelayTime", data.DelayTime} ,{ "MemberNumber",index}};
+ if (sceneName != null)
+ {
+ data2.Add(new Newtonsoft.Json.Linq.JProperty("ScenesName", sceneName));
+ }
jObject.Add("Data", data2);
}
listCommand.Add(jObject.ToString());
+ index++;
}
return listCommand;
}
@@ -926,6 +957,15 @@
listAdjustTarget.AddRange(i_scene.AdjustTargetList);
return listAdjustTarget;
}
+ //濡傛灉鏄湁妯℃澘,鏈夎澶囩殑鏃跺��,鍦ㄦ病鏈夊彂閫佹垚鍔熶箣鍓�,涓嶅厑璁稿埛鏂版墽琛岀洰鏍囧璞�
+ if (Common.Config.Instance.Home.TemplateMode == 2
+ && Common.Config.Instance.Home.SendTemplateSuccess == false)
+ {
+ var listAdjustTarget = new List<Scene.DeviceListData>();
+ listAdjustTarget.AddRange(i_scene.AdjustTargetList);
+ return listAdjustTarget;
+ }
+
var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 806 } };
var data = new Newtonsoft.Json.Linq.JObject { { "ScenesId", i_scene.Id } };
jObject.Add("Data", data);
--
Gitblit v1.8.0