From b3e96fce4cc01113128ddf8e0a18fc19594a9e56 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 05 十二月 2019 18:38:30 +0800 Subject: [PATCH] 一个新的版本 --- ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs | 123 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 121 insertions(+), 2 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs index 4953b41..ebed365 100755 --- a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs +++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs @@ -317,6 +317,124 @@ /// <summary> /// 瑙i櫎缁戝畾 /// </summary> + //public async System.Threading.Tasks.Task<DelDeviceBindResponseAllData> DelDeviceBindAsync(DelDeviceBindData delDeviceBindData) + //{ + // return await System.Threading.Tasks.Task.Run(async () => + // { + // DelDeviceBindResponseAllData responseData = null; + // var mainGateway = ZbGateway.MainGateWay; + // if (mainGateway == null) + // { + // responseData = new DelDeviceBindResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" }; + // } + + // 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 = new DelDeviceBindResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" }; + // } + // else + // { + // 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 }; + // var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelDeviceBindResponseData>(jobject["Data"].ToString()); + + // if (tempData == null) + // { + // responseData = new DelDeviceBindResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; + // } + // else + // { + // 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 }; + // var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveBindResultResponseData>(jobject["Data"].ToString()); + + // if (tempData != null) + // { + // responseData = new DelDeviceBindResponseAllData { 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); + // mainGateway.Send("Bind/RemoveBind", jObject.ToString()); + // } + // } + // catch { } + + // var dateTime = DateTime.Now; + // while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime) + // { + // await System.Threading.Tasks.Task.Delay(10); + // if (responseData != null) + // { + // break; + // } + // } + // if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime) + // { + // 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 () => @@ -441,7 +559,7 @@ break; } } - else if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 4).Count) + else if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 2).Count) { if (responseData.removeBindResultResponseData != null) { @@ -1005,7 +1123,8 @@ break; } } - if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime) + //涓�閿竻闄ょ洰鏍囷紝浼氬洜涓虹洰鏍囨暟閲忓鑰屽姞闀挎椂闂达紝鐩墠鏆傚畾10绉� + if ((DateTime.Now - dateTime).TotalMilliseconds > 10 * 1000) { d = new ClearBindInfoResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; } -- Gitblit v1.8.0