From 315e336680efe5c654726c2cdae630146fe5c99c Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期五, 29 十一月 2019 10:06:19 +0800 Subject: [PATCH] 合并代码 --- ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs | 225 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 184 insertions(+), 41 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs old mode 100755 new mode 100644 index aa369f9..79e9351 --- a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs +++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs @@ -13,7 +13,6 @@ /// </summary> public async System.Threading.Tasks.Task<AddedDeviceBindResponseAllData> AddDeviceBindAsync(AddBindData addBindData) { - return await System.Threading.Tasks.Task.Run(async () => { var result = new AddedDeviceBindResponseAllData(); @@ -74,10 +73,11 @@ { result.addBindResultResponseData = tempData; } + DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}"); } }; mainGateway.Actions += action; - DebugPrintLog("Bind/SetBind_Actions 鍚姩" + "_" + System.DateTime.Now.ToString()); + DebugPrintLog("Bind/SetBind_Actions 鍚姩" + "_" + System.DateTime.Now.ToLongTimeString() + " " + System.DateTime.Now.Millisecond); try { if (addBindData != null) @@ -90,9 +90,9 @@ { var dInfo = new JObject{ { "BindMacAddr",bindInfo.BindMacAddr}, - { "BindEpoint", bindInfo.BindEpoint} , - { "BindCluster", bindInfo.BindCluster} , - { "BindType",bindInfo.BindType} + { "BindEpoint", bindInfo.BindEpoint} , + { "BindCluster", bindInfo.BindCluster} , + { "BindType",bindInfo.BindType} }; bindList.Add(dInfo); } @@ -100,15 +100,15 @@ { var dInfo = new JObject{ { "BindCluster", bindInfo.BindCluster} , - { "BindType",bindInfo.BindType}, - { "BindScenesId", bindInfo.BindScenesId} + { "BindType",bindInfo.BindType}, + { "BindScenesId", bindInfo.BindScenesId} }; bindList.Add(dInfo); } } var data = new JObject{ - {"BindName",addBindData.BindName}, - { "BindList", bindList } + {"BindName",addBindData.BindName}, + { "BindList", bindList } }; jObject.Add("Data", data); //ZbGateway.MainGateWay.CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo?.gwID; @@ -127,7 +127,21 @@ { continue; } - if (0 < result.addedDeviceBindResponseData.BindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 2).Count) + 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) { @@ -144,7 +158,7 @@ result.errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔"; } mainGateway.Actions -= action; - System.Console.WriteLine($"Bind/SetBind_Actions 閫�鍑� {System.DateTime.Now}"); + System.Console.WriteLine($"Bind/SetBind_Actions 閫�鍑� { System.DateTime.Now.ToLongTimeString() + " " + System.DateTime.Now.Millisecond}"); return result; }); } @@ -307,12 +321,11 @@ { return await System.Threading.Tasks.Task.Run(async () => { - var responseData = new DelDeviceBindResponseAllData(); + DelDeviceBindResponseAllData responseData = null; var mainGateway = ZbGateway.MainGateWay; if (mainGateway == null) { - responseData.errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�"; - return responseData; + responseData = new DelDeviceBindResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" }; } Action<string, string> action = (topic, message) => @@ -327,15 +340,14 @@ if (temp == null) { - responseData.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖"; + responseData = new DelDeviceBindResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" }; } else { - responseData.errorResponData = temp; - responseData.errorMessageBase = ErrorMess(temp.Error); + responseData = new DelDeviceBindResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) }; } } - + //鍦烘櫙绉婚櫎 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 }; @@ -343,16 +355,15 @@ if (tempData == null) { - responseData.errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�"; - + responseData = new DelDeviceBindResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; } else { - responseData.delDeviceBindResponseData = tempData; + responseData = new DelDeviceBindResponseAllData { delDeviceBindResponseData = tempData }; System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); } } - + //璁惧绉婚櫎 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 }; @@ -360,7 +371,7 @@ if (tempData != null) { - responseData.removeBindResultResponseData = tempData; + responseData = new DelDeviceBindResponseAllData { removeBindResultResponseData = tempData }; System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); } } @@ -399,45 +410,177 @@ {"RemoveBindList",removeBindList} }; jObject.Add("Data", data); - //ZbGateway.MainGateWay.CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo?.gwID; mainGateway.Send("Bind/RemoveBind", jObject.ToString()); } } catch { } - var dateTime = DateTime.Now; while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime) { - await System.Threading.Tasks.Task.Delay(100); - if (responseData == null || responseData.delDeviceBindResponseData == null) - { - continue; - } - if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 3).Count) - { - if (responseData.removeBindResultResponseData != null) - { - break; - } - } - else + await System.Threading.Tasks.Task.Delay(10); + if (responseData != null) { break; } } - if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime) { - responseData.errorMessageBase = "鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔"; + responseData = new DelDeviceBindResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; } mainGateway.Actions -= action; System.Console.WriteLine("DeviceBind/DelBind_Actions 閫�鍑�" + System.DateTime.Now.ToString()); - return responseData; }); } + //涔嬪墠2绉嶆柟寮忓弽棣堢粨鏋� + //public async System.Threading.Tasks.Task<DelDeviceBindResponseAllData> DelDeviceBindAsync(DelDeviceBindData delDeviceBindData) + //{ + // return await System.Threading.Tasks.Task.Run(async () => + // { + // var responseData = new DelDeviceBindResponseAllData(); + // var mainGateway = ZbGateway.MainGateWay; + // if (mainGateway == null) + // { + // responseData.errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�"; + // return responseData; + // } + + // Action<string, string> action = (topic, message) => + // { + // var gatewayID = topic.Split('/')[0]; + // 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 = mainGateway.getGatewayBaseInfo.gwID }; + // var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString()); + + // if (temp == null) + // { + // responseData.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖"; + // } + // else + // { + // responseData.errorResponData = temp; + // responseData.errorMessageBase = ErrorMess(temp.Error); + // } + // } + + // 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) + // { + // responseData.errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�"; + + // } + // else + // { + // responseData.delDeviceBindResponseData = tempData; + // System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); + // } + // } + + // 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) + // { + // responseData.removeBindResultResponseData = tempData; + // System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); + // } + // } + // }; + // mainGateway.Actions += action; + // System.Console.WriteLine("DeviceBind/DelBind_Actions 鍚姩" + "_" + System.DateTime.Now.ToString()); + // try + // { + // if (delDeviceBindData != null) + // { + // var jObject = new JObject { { "DeviceAddr", delDeviceBindData.DeviceAddr }, { "Epoint", delDeviceBindData.Epoint }, { "Cluster_ID", 0 }, { "Command", 5003 } }; + // var removeBindList = new JArray { }; + // foreach (var removeBindInfo in delDeviceBindData.RemoveBindList) + // { + // if (removeBindInfo.BindType == 0) + // { + // var dInfo = new JObject{ + // { "BindMacAddr",removeBindInfo.BindMacAddr}, + // { "BindEpoint", removeBindInfo.BindEpoint} , + // { "BindCluster", removeBindInfo.BindCluster} , + // { "BindType",removeBindInfo.BindType} + // }; + // removeBindList.Add(dInfo); + // } + // else if (removeBindInfo.BindType == 1) + // { + // var dInfo = new JObject{ + // { "BindCluster", removeBindInfo.BindCluster} , + // { "BindType",removeBindInfo.BindType}, + // { "BindScenesId", removeBindInfo.BindScenesId} + // }; + // removeBindList.Add(dInfo); + // } + // } + // var data = new JObject { + // {"RemoveBindList",removeBindList} + // }; + // jObject.Add("Data", data); + // //ZbGateway.MainGateWay.CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo?.gwID; + // mainGateway.Send("Bind/RemoveBind", jObject.ToString()); + // } + // } + // catch { } + + // var dateTime = DateTime.Now; + // while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime) + // { + // await System.Threading.Tasks.Task.Delay(100); + // if (responseData == null || responseData.delDeviceBindResponseData == null) + // { + // continue; + // } + // if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 1).Count) + // { + // if (responseData.removeBindResultResponseData != null) + // { + // break; + // } + // } + // else if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 3).Count) + // { + // if (responseData.removeBindResultResponseData != null) + // { + // break; + // } + // } + // else if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 4).Count) + // { + // if (responseData.removeBindResultResponseData != null) + // { + // break; + // } + // } + // else + // { + // break; + // } + // } + // if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime) + // { + // responseData.errorMessageBase = "鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔"; + // } + // mainGateway.Actions -= action; + // System.Console.WriteLine("DeviceBind/DelBind_Actions 閫�鍑�" + System.DateTime.Now.ToString()); + // return responseData; + // }); + //} + /// <summary> ///瑙i櫎缁戝畾鏁版嵁,缃戝叧鍙嶉淇℃伅 /// </summary> -- Gitblit v1.8.0