From c7f2e3791f931d18c6ab3b1b215e57a1101e0389 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期四, 27 八月 2020 15:01:27 +0800
Subject: [PATCH] 2020-08-27-1

---
 ZigbeeApp/Shared/Phone/Device/Logic/Send.cs |   42 +++++++++++++++++++-----------------------
 1 files changed, 19 insertions(+), 23 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
index 8907c8b..14495cf 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
@@ -23,7 +23,9 @@
             return await System.Threading.Tasks.Task.Run(async () =>
             {
                 List<int> logicIdList = new List<int>();
-                
+
+                bool if_theme = false;
+                int if_number = -1;
                 Action<string, string> action = (topic, data) =>
                 {
                     var gatewayID = topic.Split('/')[0];
@@ -35,19 +37,19 @@
                     
                     if (topic == $"{gatewayID}/Logic/GetLogicList_Respon")
                     {
-
-                        var list = jObjectdata["Data"]["LogicList"];
-                        if (list == null)
+                        if_theme = true;
+                        var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jObjectdata["Data"]["LogicList"].ToString());
+                        if_number = list.Count;
+                        if (list.Count == 0)
                         {
                             return;
                         }
                         foreach (var listIfon in list)
                         {
-                            var logicId = int.Parse(listIfon["LogicId"].ToString());
+                            var logicId = int.Parse(listIfon["LogicId"]);
                             logicIdList.Add(logicId);
                            
                         }
-
                     }
                 };
                 var mainGateWay = ZbGateway.MainGateWay;
@@ -73,9 +75,13 @@
                 while ((DateTime.Now - dateTime).TotalMilliseconds < 3 * 1000)
                 {
                     await System.Threading.Tasks.Task.Delay(100);
-                    if (logicIdList.Count != 0)
+                    if (if_theme)
                     {
-                        break;
+                        if (if_number == 0 || if_number == logicIdList.Count)
+                        {
+                            break;//鍥炲娌℃湁鏁版嵁绔嬪埢杩斿洖
+                        }
+
                     }
                 }
                 ZbGateway.MainGateWay.GwResDataAction -= action;
@@ -104,7 +110,6 @@
 
                     if (topic == $"{gatewayID}/Logic/GetLogicInfo_Respon")
                     {
-
                         logic = new Common.Logic();
                         var Logicifon = jObjectdata["Data"];
                         logic.LogicId = int.Parse(Logicifon["LogicId"]?.ToString());
@@ -249,7 +254,6 @@
                     {
                         try
                         {
-                            Logicifon = new Common.Logic();
                             Logicifon = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Logic>(jObjectdata["Data"].ToString());
                         }
                         catch (Exception ex)
@@ -652,8 +656,7 @@
             return await System.Threading.Tasks.Task.Run(async () =>
             {
 
-                var listLogic = new List<Common.Logic>();
-                // bool @bool = false;
+                var listLogic = new List<Common.Logic>();
                 Action<string, string> action = (topic, data) =>
                 {
                     var gatewayID = topic.Split('/')[0];
@@ -665,7 +668,6 @@
 
                     if (topic == $"{gatewayID}/Logic/GetAllLogicListInfo_Respon")
                     {
-
                         var logic = new Common.Logic();
                         var Logicifon = jObjectdata["Data"];
                         logic.LogicId = int.Parse(Logicifon["LogicId"].ToString());
@@ -724,10 +726,7 @@
                         }
 
                     }
-                    //if (topic == $"{gatewayID}/Logic/AllLogicNum_Respon")
-                    //{
-                    //    @bool = true;
-                    //}
+                  
                 };
                 var mainGateWay = ZbGateway.MainGateWay;
                 if (mainGateWay == null)
@@ -752,10 +751,6 @@
                     {
                         break;
                     }
-                    //if (@bool)
-                    //{
-                    //    break;
-                    //}
                 }
                 ZbGateway.MainGateWay.GwResDataAction -= action;
                 return listLogic;
@@ -805,7 +800,7 @@
                 while ((DateTime.Now - dateTime).TotalMilliseconds < 3 * 1000)
                 {
                     await System.Threading.Tasks.Task.Delay(100);
-                    if (sceneui != null)
+                    if (sceneui != null && sceneui.Id > 0)
                     {
                         break;
                     }
@@ -1332,8 +1327,9 @@
         {
             get
             {
+                string value = ReadLocalFile("GPS_File");
                 //璇诲彇鏈湴GPS鏈嶅姟鐘舵��
-                if (ReadLocalFile("GPS_File") == "0")
+                if (value == "0"||string.IsNullOrEmpty(value))
                 {
                     return "0";
                 }

--
Gitblit v1.8.0