From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 10 七月 2020 10:52:13 +0800 Subject: [PATCH] 2020-07-10-01 --- ZigbeeApp/Shared/Phone/ZigBee/Device/Rollershade.cs | 258 +-------------------------------------------------- 1 files changed, 5 insertions(+), 253 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Rollershade.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Rollershade.cs index 78f02ed..8b2603c 100755 --- a/ZigbeeApp/Shared/Phone/ZigBee/Device/Rollershade.cs +++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/Rollershade.cs @@ -17,78 +17,17 @@ /// WcdType=0锛氬嵎甯� /// </summary> public int WcdType = -1; - - /// <summary> - ///绐楀笜褰撳墠楂樺害锛屽崟浣嶏細cm. - /// </summary> - public int WcdCurrentPositionLift = 0; - /// <summary> /// 褰撳墠绐楀笜鎵�鍦ㄧ殑浣嶇疆(鐧惧垎姣�). /// </summary> + [Newtonsoft.Json.JsonIgnore] public int WcdCurrentPositionLiftPercentage = 0; - //{ - // get - // { - // if (DeviceStatusReport.CluterID == 258) - // { - // var attriButeList = DeviceStatusReport.AttriBute; - // foreach (var attriBute in attriButeList) - // { - // if (attriBute.AttributeId == 8) - // { - // return attriBute.AttriButeData; - // } - // } - // } - // return 0; - // } - //} - - /// <summary> - /// 绐楀笜鍏ㄥ紑鎵�鍦ㄧ殑瑙掑害锛屽崟浣嶏細0.1掳 - /// </summary> - public int WcdInstalledOpenLimitTilt = 0; - - /// <summary> - /// 绐楀笜鍏ㄥ叧鎵�鍦ㄧ殑瑙掑害锛屽崟浣嶏細0.1掳 - /// </summary> - public int WcdInstalledClosedLimitTilt = 0; - - /// <summary> - /// 褰撳墠寮�鍚堝笜鐢垫満鏂瑰悜 - /// <para> (false:鐢垫満鏂瑰悜姝e悜锛泃rue:鐢垫満鏂瑰悜鍙嶅悜锛�)</para> . - /// </summary> - public bool WcdCurrentDirection = false; - - /// <summary> - /// 褰撳墠寮�鍚堝笜缁存姢妯″紡 - /// <para>fasle:鐢垫満杩愯浆姝e父锛泃rue:鐢垫満鍦ㄧ淮淇ā寮忎笅杩愯锛�</para> - /// </summary> - public bool WcdCurrentMaintenance = false; - - /// <summary> - /// 褰撳墠绐楀笜寮�鍚堝笜闄愪綅寮�锛堜笂锛夐檺浣� - /// 娉ㄦ剰杩欓噷鍊兼槸缃戝叧杩斿洖鐨勫疄闄呭�硷紝UI涓婃樉绀虹殑鍊艰瀹為檯澶勭悊 - /// </summary> - public int WcdCurrentWcdInstalOpenLimit = 0; - - /// <summary> - /// 褰撳墠寮�鍚堝笜闄愪綅鍏筹紙涓嬶級闄愪綅 - /// 娉ㄦ剰杩欓噷鍊兼槸缃戝叧杩斿洖鐨勫疄闄呭�硷紝UI涓婃樉绀虹殑鍊艰瀹為檯澶勭悊 - /// </summary> - public int WcdCurrentInstalCloseLimit = 0; - - /// <summary> - /// 褰撳墠寮�鍚堝笜鎬荤殑闀垮害 - /// </summary> - public int WcdCurrentLength = 0; /// <summary> /// 璇诲彇褰撳墠绐楀笜鐨勬ā寮� /// <para>AttriButeId=0 (鍏堣皟鐢ㄥ彂鐜板睘鎬ф帴鍙o紝鏌ョ湅璁惧鏄惁鏀寔璇ユ帴鍙g殑灞炴�э級</para> /// </summary> - public void ReadWcdType() + public new void ReadWcdType() { ReadAttri(Device.Cluster_ID.WindowCovering, AttriButeId.WindowCoveringType); } @@ -304,187 +243,6 @@ Gateway?.Send("DeviceControl", jObject.ToString()); } - #region 璁剧疆寮�鍚堝笜鐢垫満鏂瑰悜. - /// <summary> - /// 璁剧疆寮�鍚堝笜鐢垫満鏂瑰悜 - /// <para>isDirectionReversed (false:鐢垫満鏂瑰悜姝e悜锛泃rue:鐢垫満鏂瑰悜鍙嶅悜锛�)</para> . - /// </summary> - public async System.Threading.Tasks.Task<SetWritableValueResponAllData> SetCurtainDirectionAsync(bool isDirectionReversed) - { - if (Gateway == null) - { - return null; - } - return await System.Threading.Tasks.Task.Run(async () => - { - SetWritableValueResponAllData d = null; - 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 = Gateway.getGatewayBaseInfo.gwID }; - var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString()); - - if (temp == null) - { - d = new SetWritableValueResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" }; - } - else - { - d = new SetWritableValueResponAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) }; - } - } - - if (topic == gatewayID + "/" + "SetWritableValue_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<SetWritableValueResponData>(jobject["Data"].ToString()); - - if (tempData == null) - { - d = new SetWritableValueResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - } - else - { - d = new SetWritableValueResponAllData { setWritableValueResponData = tempData }; - System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); - } - } - }; - Gateway.Actions += action; - System.Console.WriteLine("SetWritableValue_Actions 鍚姩" + "_" + System.DateTime.Now.ToString()); - - try - { - int attributeData = 0; - int bit0 = 0; - if (isDirectionReversed) - { - bit0 = 1; - } - attributeData = bit0 * 1; - var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 258 }, { "Command", 120 } }; - var data = new JObject { { "Undivided", 0 }, { "AttributeId", 23 }, { "AttributeDataType", 24 }, { "AttributeData", attributeData } }; - jObject.Add("Data", data); - Gateway.Send("SetWritableValue", jObject.ToString()); - } - catch { } - - var dateTime = DateTime.Now; - while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime) - { - await System.Threading.Tasks.Task.Delay(10); - if (d != null) - { - break; - } - } - if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime) - { - d = new SetWritableValueResponAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; - } - Gateway.Actions -= action; - System.Console.WriteLine("SetWritableValue_Actions 閫�鍑�" + System.DateTime.Now.ToString()); - - return d; - }); - } - #endregion - - #region 璁剧疆寮�鍚堝笜缁存姢妯″紡 - /// <summary> - /// 璁剧疆寮�鍚堝笜缁存姢妯″紡 - /// <para>isMotorMaintenance (fasle:鐢垫満杩愯浆姝e父锛泃rue:鐢垫満鍦ㄧ淮淇ā寮忎笅杩愯锛�)</para> - /// </summary> - public async System.Threading.Tasks.Task<SetWritableValueResponAllData> SetCurtianMaintenanceAsync(bool isMotorMaintenance) - { - if (Gateway == null) - { - return null; - } - return await System.Threading.Tasks.Task.Run(async () => - { - SetWritableValueResponAllData d = null; - 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 = Gateway.getGatewayBaseInfo.gwID }; - var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString()); - - if (temp == null) - { - d = new SetWritableValueResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" }; - } - else - { - d = new SetWritableValueResponAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) }; - } - } - - if (topic == gatewayID + "/" + "SetWritableValue_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<SetWritableValueResponData>(jobject["Data"].ToString()); - - if (tempData == null) - { - d = new SetWritableValueResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - } - else - { - d = new SetWritableValueResponAllData { setWritableValueResponData = tempData }; - System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); - } - } - }; - Gateway.Actions += action; - System.Console.WriteLine("SetWritableValue_Actions 鍚姩" + "_" + System.DateTime.Now.ToString()); - - try - { - int attributeData = 0; - int bit2 = 0; - - if (isMotorMaintenance) - { - bit2 = 1; - } - attributeData = bit2 * 4; - var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 258 }, { "Command", 120 } }; - var data = new JObject { { "Undivided", 0 }, { "AttributeId", 23 }, { "AttributeDataType", 24 }, { "AttributeData", attributeData } }; - jObject.Add("Data", data); - Gateway.Send("SetWritableValue", jObject.ToString()); - } - catch { } - - var dateTime = DateTime.Now; - while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime) - { - await System.Threading.Tasks.Task.Delay(10); - if (d != null) - { - break; - } - } - if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime) - { - d = new SetWritableValueResponAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; - } - Gateway.Actions -= action; - System.Console.WriteLine("SetWritableValue_Actions 閫�鍑�" + System.DateTime.Now.ToString()); - - return d; - }); - } - #endregion - #region 璁剧疆寮�鍚堝笜闄愪綅鍙傛暟. /// <summary> /// 璁剧疆寮�鍚堝笜涓婁笅闄愪綅 @@ -505,8 +263,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) { @@ -520,7 +277,6 @@ if (topic == gatewayID + "/" + "SetWritableValue_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<SetWritableValueResponData>(jobject["Data"].ToString()); if (tempData == null) @@ -613,8 +369,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) { @@ -628,7 +383,6 @@ if (topic == gatewayID + "/" + "SetWritableValue_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<SetWritableValueResponData>(jobject["Data"].ToString()); if (tempData == null) @@ -712,8 +466,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) { @@ -727,7 +480,6 @@ if (topic == gatewayID + "/" + "SetWritableValue_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<SetWritableValueResponData>(jobject["Data"].ToString()); if (tempData == null) -- Gitblit v1.8.0