From 0480792bde7bcf770290ba3414bd615e563e7b43 Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期二, 24 十二月 2019 15:46:00 +0800
Subject: [PATCH] 2019-12-24-02

---
 ZigbeeApp/Shared/Phone/Device/Logic/Send.cs |   70 ++++++++++++++++++++++++++++++++--
 1 files changed, 65 insertions(+), 5 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
index d7fa0b9..ab23f9e 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
+++ b/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>

--
Gitblit v1.8.0