| | |
| | | if (topic == gatewayID + "/" + "Scene/GetAllInfo_Respon")
|
| | | {
|
| | | var sceneGetAllInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<Scene.GetSceneAllInfo>(jobject["Data"].ToString());
|
| | | if (sceneGetAllInfo.ScenesSum != 0)
|
| | | {
|
| | | //如果网关里面没有场景的话,它也会推这个东西过来
|
| | | listScene.Add(sceneGetAllInfo);
|
| | | }
|
| | |
|
| | | //更够接收得到场景
|
| | | canReceve = true;
|
| | |
| | | /// <summary>
|
| | | /// 获取添加执行目标到场景的命令
|
| | | /// </summary>
|
| | | /// <param name="sceneId">场景id</param>
|
| | | /// <param name="listAdjustTarget">执行目标</param>
|
| | | /// <param name="dicChangedMac">交换mac key:listAdjustTarget当前的Mac value:转换的mac</param>
|
| | | /// <param name="sceneName">场景名称(特殊用途,请勿设置)</param>
|
| | | /// <param name="sceneId"></param>
|
| | | /// <param name="listAdjustTarget"></param>
|
| | | /// <returns></returns>
|
| | | public List<string> GetAddTargetToSceneCommand(int sceneId, List<Scene.DeviceListData> listAdjustTarget, Dictionary<string, string> dicChangedMac = null, string sceneName = null)
|
| | | public List<string> GetAddTargetToSceneCommand(int sceneId, List<Scene.DeviceListData> listAdjustTarget)
|
| | | {
|
| | | 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 } };
|
| | |
| | | //设备
|
| | | 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)
|
| | | {
|
| | |
| | | { "Data1", taskInfo.Data1},{ "Data2",taskInfo.Data2}};
|
| | | taskList.Add(tInfo);
|
| | | }
|
| | | 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));
|
| | | }
|
| | | var data2 = new Newtonsoft.Json.Linq.JObject {{ "ScenesId",sceneId},{ "Type", 0} ,{ "DeviceAddr",data.DeviceAddr} ,
|
| | | { "Epoint", data.Epoint} ,{ "TaskList", taskList },{ "DelayTime", 0} ,{ "MemberNumber",i + 1}};
|
| | | 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",index} };
|
| | | if (sceneName != null)
|
| | | {
|
| | | data2.Add(new Newtonsoft.Json.Linq.JProperty("ScenesName", sceneName));
|
| | | }
|
| | | { "ElseScenesId", data.ElseScenesId },{ "DelayTime", 0} ,{ "MemberNumber",i + 1} };
|
| | | jObject.Add("Data", data2);
|
| | | }
|
| | | //延时
|
| | | else
|
| | | {
|
| | | var data2 = new Newtonsoft.Json.Linq.JObject {{ "Type", 2} ,{ "ScenesId",sceneId},
|
| | | { "DelayTime", data.DelayTime} ,{ "MemberNumber",index}};
|
| | | if (sceneName != null)
|
| | | {
|
| | | data2.Add(new Newtonsoft.Json.Linq.JProperty("ScenesName", sceneName));
|
| | | }
|
| | | { "DelayTime", data.DelayTime} ,{ "MemberNumber",i + 1}};
|
| | | jObject.Add("Data", data2);
|
| | | }
|
| | | listCommand.Add(jObject.ToString());
|
| | | index++;
|
| | | }
|
| | | return listCommand;
|
| | | }
|