From 7e863a33397f317ffc3ffd9288496d0e4f16aa66 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 12 十二月 2019 14:58:20 +0800
Subject: [PATCH] 合并了新代码

---
 ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs |  112 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 64 insertions(+), 48 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
index 0def10a..431fa5b 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
@@ -15,11 +15,11 @@
         {
             return await System.Threading.Tasks.Task.Run(async () =>
             {
-                var result = new AddedDeviceBindResponseAllData();
+                AddedDeviceBindResponseAllData result = null;
                 var mainGateway = ZbGateway.MainGateWay;
                 if (mainGateway == null)
                 {
-                    result.errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�";
+                    result = new AddedDeviceBindResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
                     return result;
                 }
                 Action<string, string> action = (topic, message) =>
@@ -47,7 +47,7 @@
                         var tempBindList = Newtonsoft.Json.Linq.JArray.Parse(jobject["Data"]["BindList"].ToString());
                         if (tempBindList == null)
                         {
-                            result.errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�";
+                            result = new AddedDeviceBindResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
                         }
                         else
                         {
@@ -59,22 +59,22 @@
                             }
                             if (dataBindRes != null)
                             {
-                                result.addedDeviceBindResponseData = dataBindRes;
+                                result = new AddedDeviceBindResponseAllData { addedDeviceBindResponseData = dataBindRes };
                                 DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                             }
                         }
                     }
-                    else if (topic == gatewayID + "/" + "Bind/BindResult")
-                    {
-                        var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<AddBindResultResponseData>(jobject["Data"].ToString());
+                    //else if (topic == gatewayID + "/" + "Bind/BindResult")
+                    //{
+                    //    var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
+                    //    var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<AddBindResultResponseData>(jobject["Data"].ToString());
 
-                        if (tempData != null)
-                        {
-                            result.addBindResultResponseData = tempData;
-                        }
-                        DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                    }
+                    //    if (tempData != null)
+                    //    {
+                    //        result = new AddedDeviceBindResponseAllData { addBindResultResponseData = tempData };
+                    //    }
+                    //    DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
+                    //}
                 };
                 mainGateway.Actions += action;
                 DebugPrintLog("Bind/SetBind_Actions 鍚姩" + "_" + System.DateTime.Now.ToLongTimeString() + " " + System.DateTime.Now.Millisecond);
@@ -111,7 +111,6 @@
                              { "BindList", bindList }
                     };
                         jObject.Add("Data", data);
-                        //ZbGateway.MainGateWay.CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo?.gwID;
                         mainGateway.Send("Bind/SetBind", jObject.ToString());
                     }
                 }
@@ -120,42 +119,54 @@
                 }
 
                 var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
+                while ((DateTime.Now - dateTime).TotalMilliseconds < 20 * 1000)
                 {
-                    await System.Threading.Tasks.Task.Delay(100);
-                    if (result == null || result.addedDeviceBindResponseData == null)
-                    {
-                        continue;
-                    }
-                    if (0 < result.addedDeviceBindResponseData.BindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 1).Count)
-                    {
-                        if (result.addBindResultResponseData != null)
-                        {
-                            break;
-                        }
-                    }
-                    else if (0 < result.addedDeviceBindResponseData.BindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 2).Count)
-                    {
-                        if (result.addBindResultResponseData != null)
-                        {
-                            break;
-                        }
-                    }
-                    else if (0 < result.addedDeviceBindResponseData.BindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 3).Count)
-                    {
-                        if (result.addBindResultResponseData != null)
-                        {
-                            break;
-                        }
-                    }
-                    else
+                    await System.Threading.Tasks.Task.Delay(10);
+                    if (result != null)
                     {
                         break;
                     }
                 }
                 if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
                 {
-                    result.errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔";
+                    result = new AddedDeviceBindResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
+                }
+                //while ((DateTime.Now - dateTime).TotalMilliseconds < 20*1000)
+                //{
+                //await System.Threading.Tasks.Task.Delay(100);
+                //if (result == null || result.addedDeviceBindResponseData == null)
+                //{
+                //    continue;
+                //}
+                //if (0 < result.addedDeviceBindResponseData.BindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 1).Count)
+                //{
+                //    if (result.addBindResultResponseData != null)
+                //    {
+                //        break;
+                //    }
+                //}
+                //else if (0 < result.addedDeviceBindResponseData.BindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 2).Count)
+                //{
+                //    if (result.addBindResultResponseData != null)
+                //    {
+                //        break;
+                //    }
+                //}
+                //else if (0 < result.addedDeviceBindResponseData.BindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 3).Count)
+                //{
+                //    if (result.addBindResultResponseData != null)
+                //    {
+                //        break;
+                //    }
+                //}
+                //else
+                //{
+                //    break;
+                //}
+                //}
+                if ((DateTime.Now - dateTime).TotalMilliseconds > 20 * 1000)
+                {
+                    result = new AddedDeviceBindResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
                 }
                 mainGateway.Actions -= action;
                 System.Console.WriteLine($"Bind/SetBind_Actions 閫�鍑� { System.DateTime.Now.ToLongTimeString() + " " + System.DateTime.Now.Millisecond}");
@@ -203,7 +214,12 @@
             /// <summary>
             ///缁戝畾鍒楄〃 锛屽綋Status=0鏃跺瓨鍦�
             /// </summary>
-            public List<AddBindListResponseObj> BindList = new List<AddBindListResponseObj>();
+            public List<BindListResponseObj> BindList = new List<BindListResponseObj>();
+            /// <summary>
+            /// 0锛氱粦瀹氭墍鏈夌洰鏍囨垚鍔�
+            ///<para>1锛氱粦瀹氱洰鏍囧け璐ワ紝缁戝畾璁惧鐩爣鏈夋紡鎺�</para> 
+            /// </summary>
+            public int Result;
         }
 
         /// <summary>
@@ -1115,7 +1131,7 @@
                 catch { }
 
                 var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
+                while ((DateTime.Now - dateTime).TotalMilliseconds < 25 * 1000)
                 {
                     await System.Threading.Tasks.Task.Delay(10);
                     if (d != null)
@@ -1123,8 +1139,8 @@
                         break;
                     }
                 }
-                //涓�閿竻闄ょ洰鏍囷紝浼氬洜涓虹洰鏍囨暟閲忓鑰屽姞闀挎椂闂达紝鐩墠鏆傚畾10绉�
-                if ((DateTime.Now - dateTime).TotalMilliseconds > 10 * 1000)
+                //涓�閿竻闄ょ洰鏍囷紝浼氬洜涓虹洰鏍囨暟閲忓鑰屽姞闀挎椂闂达紝鐩墠鏆傚畾20绉�
+                if ((DateTime.Now - dateTime).TotalMilliseconds > 25 * 1000)
                 {
                     d = new ClearBindInfoResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
                 }

--
Gitblit v1.8.0