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