From e747e6d8524e3146bb48dc304a713f309966b1c6 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 19 五月 2020 13:10:03 +0800
Subject: [PATCH] 新版本

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs |   88 +++++++-------------------------------------
 1 files changed, 14 insertions(+), 74 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs
index 01ce670..20854f6 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs
@@ -41,88 +41,28 @@
         #region 鈻� 鍐欏叆璁惧灞炴�______________________
 
         /// <summary>
-        /// 璁剧疆绌鸿皟鐨勮嚜瀹氫箟妯″紡
+        /// 鑾峰彇鏇存敼璁惧绉佹湁灞炴�х殑鍛戒护
         /// </summary>
-        /// <param name="device">璁惧瀵硅薄</param>
-        /// <param name="clusterId">闀濱D</param>
-        /// <param name="attributeId">灞炴�D</param>
-        /// <param name="attributeDataType">鏁版嵁绫诲瀷</param>
-        /// <param name="attributeData">闇�瑕佸啓鍏ョ殑鏁版嵁(鏁板�兼垨鑰呭瓧绗︿覆)</param>
+        /// <param name="clusterId"></param>
+        /// <param name="attributeId"></param>
+        /// <param name="attributeDataType"></param>
+        /// <param name="attributeData"></param>
         /// <returns></returns>
-        public async System.Threading.Tasks.Task<CommonDevice.SetWritableValueResponAllData> WriteDeviceAttribute(CommonDevice device, int clusterId, int attributeId, int attributeDataType, object attributeData)
+        public string GetWriteDeviceAttributeText(string DeviceAddr, int DeviceEpoint, int clusterId, int attributeId, int attributeDataType, object attributeData)
         {
-            var MyGateway = device.Gateway;
-            if (MyGateway == null)
+            var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", clusterId }, { "Command", 120 } };
+            Newtonsoft.Json.Linq.JObject data = null;
+            if (attributeData is int)
             {
-                return null;
+                data = new Newtonsoft.Json.Linq.JObject { { "Undivided", 0 }, { "AttributeId", attributeId }, { "AttributeDataType", attributeDataType }, { "AttributeData", Convert.ToInt32(attributeData) } };
             }
-
-            CommonDevice.SetWritableValueResponAllData d = null;
-            Action<string, string> action = (topic, message) =>
+            else
             {
-                var gatewayID = topic.Split('/')[0];
-                var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                if (topic == gatewayID + "/" + "Error_Respon")
-                {
-                    var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
-                    if (temp == null)
-                    {
-                        d = new CommonDevice.SetWritableValueResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                    }
-                    else
-                    {
-                        d = new CommonDevice.SetWritableValueResponAllData { errorResponData = temp, errorMessageBase = HdlCheckLogic.Current.CheckCommonErrorCode(temp.Error) };
-                    }
-                }
-
-                if (topic == gatewayID + "/" + "SetWritableValue_Respon")
-                {
-                    var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.SetWritableValueResponData>(jobject["Data"].ToString());
-                    if (tempData == null)
-                    {
-                        d = new CommonDevice.SetWritableValueResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                    }
-                    else
-                    {
-                        d = new CommonDevice.SetWritableValueResponAllData { setWritableValueResponData = tempData };
-                    }
-                }
-            };
-            MyGateway.Actions += action;
-            try
-            {
-                var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", device.DeviceAddr }, { "Epoint", device.DeviceEpoint }, { "Cluster_ID", clusterId }, { "Command", 120 } };
-                Newtonsoft.Json.Linq.JObject data = null;
-                if (attributeData is int)
-                {
-                    data = new Newtonsoft.Json.Linq.JObject { { "Undivided", 0 }, { "AttributeId", attributeId }, { "AttributeDataType", attributeDataType }, { "AttributeData", Convert.ToInt32(attributeData) } };
-                }
-                else
-                {
-                    data = new Newtonsoft.Json.Linq.JObject { { "Undivided", 0 }, { "AttributeId", attributeId }, { "AttributeDataType", attributeDataType }, { "AttributeData", attributeData.ToString() } };
-                }
-                jObject.Add("Data", data);
-                MyGateway.Send("SetWritableValue", jObject.ToString());
+                data = new Newtonsoft.Json.Linq.JObject { { "Undivided", 0 }, { "AttributeId", attributeId }, { "AttributeDataType", attributeDataType }, { "AttributeData", attributeData.ToString() } };
             }
-            catch { }
+            jObject.Add("Data", data);
 
-            var timeOut = 0;
-            while (timeOut <= 30)
-            {
-                await System.Threading.Tasks.Task.Delay(100);
-                if (d != null)
-                {
-                    break;
-                }
-                timeOut++;
-            }
-            if (timeOut > 30 && d == null)
-            {
-                d = new CommonDevice.SetWritableValueResponAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
-            }
-            MyGateway.Actions -= action;
-            return d;
+            return jObject.ToString();
         }
 
         #endregion

--
Gitblit v1.8.0