WJC
2019-12-24 0480792bde7bcf770290ba3414bd615e563e7b43
ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
@@ -380,6 +380,16 @@
                                };
                                conditions.Add(sInfo);
                                break;
                            case 7:
                                var diliInfo = new JObject
                                {
                                    ["Type"] = int.Parse(dictionary["Type"]),
                                    ["IsValid"] = int.Parse(dictionary["IsValid"]),
                                    ["AtHome"] = int.Parse(dictionary["AtHome"]),
                                    ["WhoSiteUId"] =dictionary["WhoSiteUId"],
                                };
                                conditions.Add(diliInfo);
                                break;
                        }
                    }
                    var actions = new JArray();
@@ -698,7 +708,7 @@
            });
        }
        // <summary>
        /// 通过设备找到区域(房间)名称
        /// 通过设备找到区域(房间)名称
        /// </summary>
        /// <param name="btnregionname">Btnregionname.</param>
        /// <param name="device">Device.</param>
@@ -735,7 +745,59 @@
            //return list1;
        }
        /// <summary>
        /// 获取场景信息的方法
        /// </summary>
        /// <param name="SceneId"></param>
        /// <returns></returns>
        public static async System.Threading.Tasks.Task<SceneUI> GetScene(int SceneId)
        {
            SceneUI sceneui = null;
            return await System.Threading.Tasks.Task.Run(async () =>
            {
                Action<string, string> action = (topic, data) =>
                {
                    var gatewayID = topic.Split('/')[0];
                    var jObjectdata = JObject.Parse(data);
                    if (jObjectdata == null)
                    {
                        return;
                    }
                    if (topic == $"{gatewayID}/Scene/GetDeviceList_Respon")
                    {
                        sceneui = new SceneUI();
                        sceneui.Name = jObjectdata["Data"]["ScenesName"].ToString();
                        sceneui.Id = int.Parse(jObjectdata["Data"]["ScenesId"].ToString());
                    }
                };
                var mainGateWay = ZbGateway.MainGateWay;
                if (mainGateWay == null)
                {
                    Console.WriteLine("没有主网关");
                    return sceneui;
                }
                mainGateWay.GwResDataAction += action;
                var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 806 } };
                var jObjectdata1 = new JObject { { "ScenesId", SceneId } };
                jObject.Add("Data", jObjectdata1);
                mainGateWay?.Send("Scene/GetDeviceList", jObject.ToString());
                var dateTime = DateTime.Now;
                while ((DateTime.Now - dateTime).TotalMilliseconds < 3 * 1000)
                {
                    await System.Threading.Tasks.Task.Delay(100);
                    if (sceneui!=null)
                    {
                        break;
                    }
                }
                ZbGateway.MainGateWay.GwResDataAction -= action;
                return sceneui;
            });
        }
        #endregion
        #region  ----获取门锁
@@ -954,7 +1016,6 @@
        /// <returns></returns>
        public static async System.Threading.Tasks.Task<string> WebClientAsync(int value, string url, Residential residential = null)
        {
            NameValueCollection postValues = new NameValueCollection();
            if (value == 0)
@@ -984,9 +1045,8 @@
            byte[] responseArray = webClient.UploadValues(url, postValues);
            var s = System.Text.Encoding.UTF8.GetString(responseArray);
            return s;
        }
        public class Residential
        {
            /// <summary>