From 2e7e5f9af5b32cfe1fc3c6ba40bf7eb984bbd0a4 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 11 五月 2020 17:52:06 +0800
Subject: [PATCH] ???????

---
 ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs |  175 +++++-----------------------------------------------------
 1 files changed, 16 insertions(+), 159 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
index 431fa5b..562405e 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
@@ -28,8 +28,7 @@
                     var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
                     if (topic == gatewayID + "/" + "Error_Respon")
                     {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -43,38 +42,17 @@
                     }
                     else if (topic == gatewayID + "/" + "Bind/SetBind_Respon")
                     {
-                        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 tempBindList = Newtonsoft.Json.Linq.JArray.Parse(jobject["Data"]["BindList"].ToString());
-                        if (tempBindList == null)
+                        var tempResult = Newtonsoft.Json.JsonConvert.DeserializeObject<AddedDeviceBindResponseData>(jobject["Data"].ToString());
+                        if (tempResult == null)
                         {
                             result = new AddedDeviceBindResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
                         }
                         else
                         {
-                            var dataBindRes = new AddedDeviceBindResponseData();
-                            for (int m = 0; tempBindList != null && m < tempBindList.Count; m++)
-                            {
-                                var tempBind = tempBindList[m];
-                                dataBindRes.BindList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AddBindListResponseObj>(tempBind.ToString()));
-                            }
-                            if (dataBindRes != null)
-                            {
-                                result = new AddedDeviceBindResponseAllData { addedDeviceBindResponseData = dataBindRes };
-                                DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                            }
+                            result = new AddedDeviceBindResponseAllData { addedDeviceBindResponseData = tempResult };
+                            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());
-
-                    //    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);
@@ -127,43 +105,6 @@
                         break;
                     }
                 }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
-                {
-                    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 = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
@@ -174,22 +115,9 @@
             });
         }
 
-        /// <summary>
-        /// 缁戝畾璁惧淇℃伅,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        public AddedDeviceBindResponseAllData addedDeviceBindResponseAllData;
         [System.Serializable]
-        public class AddedDeviceBindResponseAllData
+        public class AddedDeviceBindResponseAllData : ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 缃戝叧鐩存帴鍙嶉缁戝畾璁惧淇℃伅
             /// </summary>
@@ -200,10 +128,6 @@
             public AddBindResultResponseData addBindResultResponseData;
         }
 
-        /// <summary>
-        /// 缁戝畾璁惧淇℃伅
-        /// </summary>
-        public AddedDeviceBindResponseData addedDeviceBindResponseData;
         [System.Serializable]
         public class AddedDeviceBindResponseData
         {
@@ -219,7 +143,7 @@
             /// 0锛氱粦瀹氭墍鏈夌洰鏍囨垚鍔�
             ///<para>1锛氱粦瀹氱洰鏍囧け璐ワ紝缁戝畾璁惧鐩爣鏈夋紡鎺�</para> 
             /// </summary>
-            public int Result;
+            public int Result = -1;
         }
 
         /// <summary>
@@ -275,7 +199,6 @@
         /// <summary>
         /// 缁戝畾璁惧鐨勬暟鎹�
         /// </summary>
-        public AddBindData addBindData;
         [System.Serializable]
         public class AddBindData
         {
@@ -351,8 +274,7 @@
 
         //            if (topic == gatewayID + "/" + "Error_Respon")
         //            {
-        //                var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = mainGateway.getGatewayBaseInfo.gwID };
-        //                var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+        //                var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
         //                if (temp == null)
         //                {
@@ -366,7 +288,6 @@
         //            //鍦烘櫙绉婚櫎
         //            if (topic == gatewayID + "/" + "Bind/RemoveBind_Respon")
         //            {
-        //                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 = Gateway.getGatewayBaseInfo.gwID };
         //                var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelDeviceBindResponseData>(jobject["Data"].ToString());
 
         //                if (tempData == null)
@@ -382,7 +303,6 @@
         //            //璁惧绉婚櫎
         //            if (topic == gatewayID + "/" + "Bind/RemoveBindResult")
         //            {
-        //                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 = mainGateway.getGatewayBaseInfo.gwID };
         //                var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveBindResultResponseData>(jobject["Data"].ToString());
 
         //                if (tempData != null)
@@ -470,8 +390,7 @@
 
                     if (topic == gatewayID + "/" + "Error_Respon")
                     {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -486,7 +405,6 @@
 
                     if (topic == gatewayID + "/" + "Bind/RemoveBind_Respon")
                     {
-                        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 = Gateway.getGatewayBaseInfo.gwID };
                         var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelDeviceBindResponseData>(jobject["Data"].ToString());
 
                         if (tempData == null)
@@ -503,7 +421,6 @@
 
                     if (topic == gatewayID + "/" + "Bind/RemoveBindResult")
                     {
-                        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 = mainGateway.getGatewayBaseInfo.gwID };
                         var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveBindResultResponseData>(jobject["Data"].ToString());
 
                         if (tempData != null)
@@ -600,22 +517,9 @@
         /// <summary>
         ///瑙i櫎缁戝畾鏁版嵁,缃戝叧鍙嶉淇℃伅
         /// </summary>
-        public DelDeviceBindResponseAllData delDeviceBindResponseAllData;
-        /// <summary>
-        ///瑙i櫎缁戝畾鏁版嵁,缃戝叧鍙嶉淇℃伅
-        /// </summary>
         [System.Serializable]
-        public class DelDeviceBindResponseAllData
+        public class DelDeviceBindResponseAllData : ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 瑙i櫎缁戝畾鏁版嵁淇℃伅
             /// </summary>
@@ -627,10 +531,6 @@
             public RemoveBindResultResponseData removeBindResultResponseData;
         }
 
-        /// <summary>
-        /// 瑙i櫎缁戝畾鏁版嵁
-        /// </summary>
-        public DelDeviceBindResponseData delDeviceBindResponseData;
         /// <summary>
         /// 瑙i櫎缁戝畾鏁版嵁
         /// </summary>
@@ -691,10 +591,6 @@
             public string DeviceName;
         }
 
-        /// <summary>
-        /// 瑙i櫎缁戝畾鏁版嵁
-        /// </summary>
-        public DelDeviceBindData delDeviceBindData;
         /// <summary>
         /// 瑙i櫎缁戝畾鏁版嵁
         /// </summary>
@@ -770,8 +666,7 @@
 
                     if (topic == gatewayID + "/" + "Error_Respon")
                     {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -785,7 +680,6 @@
 
                     if (topic == gatewayID + "/" + "Bind/GetDeviceBind_Respon")
                     {
-                        var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = mainGateway.getGatewayBaseInfo.gwID };
                         var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<GetDeviceBindResponseData>(jobject["Data"].ToString());
                         //var tempBindList = Newtonsoft.Json.Linq.JArray.Parse(jobject["Data"]["BindList"].ToString());
                         if (tempData == null)
@@ -832,19 +726,9 @@
         /// <summary>
         ///鑾峰彇鎵�鏈夌粦瀹氭暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
-        public GetDeviceBindResponseAllData getAllBindResponseAllData;
         [System.Serializable]
-        public class GetDeviceBindResponseAllData
+        public class GetDeviceBindResponseAllData : ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鎺у埗璁惧缁戝畾鐨勮澶囧垪琛ㄥ洖澶嶆暟鎹�
             /// </summary>
@@ -854,7 +738,6 @@
         /// <summary>
         /// 鑾峰彇鎵�鏈夌粦瀹氬洖澶嶇殑鏁版嵁
         /// </summary>
-        public GetDeviceBindResponseData getAllBindResponseData;
         [System.Serializable]
         public class GetDeviceBindResponseData
         {
@@ -927,8 +810,7 @@
 
                     if (topic == gatewayID + "/" + "Error_Respon")
                     {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -942,7 +824,6 @@
 
                     if (topic == gatewayID + "/" + "Bind/GetDeviceLocalBind_Respon")
                     {
-                        var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = mainGateway.getGatewayBaseInfo.gwID };
                         var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<GetDeviceLocalBindResponseData>(jobject["Data"].ToString());
                         if (tempData == null)
                         {
@@ -989,19 +870,9 @@
         /// <summary>
         ///浠庤妭鐐硅澶囨湰鍦拌褰曡鍙栫粦瀹氬垪琛ㄤ俊鎭洖澶嶇殑鏁版嵁,缃戝叧鍙嶉淇℃伅
         /// </summary>
-        public GetDeviceLocalBindResponseAllData getDeviceLocalBindResponseAllData;
         [System.Serializable]
-        public class GetDeviceLocalBindResponseAllData
+        public class GetDeviceLocalBindResponseAllData : ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 浠庤妭鐐硅澶囨湰鍦拌褰曡鍙栫粦瀹氬垪琛ㄤ俊鎭洖澶嶇殑鏁版嵁
             /// </summary>
@@ -1011,7 +882,6 @@
         /// <summary>
         /// 浠庤妭鐐硅澶囨湰鍦拌褰曡鍙栫粦瀹氬垪琛ㄤ俊鎭洖澶嶇殑鏁版嵁
         /// </summary>
-        public GetDeviceLocalBindResponseData getDeviceLocalBindResponseData;
         [System.Serializable]
         public class GetDeviceLocalBindResponseData
         {
@@ -1092,8 +962,7 @@
 
                     if (topic == gatewayID + "/" + "Error_Respon")
                     {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -1107,7 +976,6 @@
 
                     if (topic == gatewayID + "/" + "Bind/ClearBindInfo_Respon")
                     {
-                        var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
                         var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClearBindInfoResponseData>(jobject["Data"].ToString());
                         if (tempData == null)
                         {
@@ -1154,19 +1022,9 @@
         /// <summary>
         ///鍒犻櫎涓�涓帶鍒惰澶囨墍鏈夌粦瀹氭暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
-        public ClearBindInfoResponseAllData clearBindInfoResponseAllData;
         [System.Serializable]
-        public class ClearBindInfoResponseAllData
+        public class ClearBindInfoResponseAllData : ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鎺у埗璁惧缁戝畾鐨勮澶囧垪琛ㄥ洖澶嶆暟鎹�
             /// </summary>
@@ -1176,7 +1034,6 @@
         /// <summary>
         /// 鍒犻櫎涓�涓帶鍒惰澶囨墍鏈夌粦瀹氫俊鎭洖澶嶇殑鏁版嵁
         /// </summary>
-        public ClearBindInfoResponseData clearBindInfoResponseData;
         [System.Serializable]
         public class ClearBindInfoResponseData
         {

--
Gitblit v1.8.0