From 404cdc88627f942df7944af04ee05b9d527752d6 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 30 九月 2019 13:22:40 +0800
Subject: [PATCH] 合并了徐梅的按键面板绑定

---
 ZigbeeApp/Shared/Phone/ZigBee/Device/Rollershade.cs |   60 ++++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 42 insertions(+), 18 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Rollershade.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Rollershade.cs
index 7c6d30a..70007db 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/Rollershade.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/Rollershade.cs
@@ -16,7 +16,7 @@
         /// WcdType=4锛氬紑鍚堝笜
         /// WcdType=0锛氬嵎甯�
         /// </summary>
-        public int WcdType = 0;
+        public int WcdType = -1;
 
         /// <summary>
         ///绐楀笜褰撳墠楂樺害锛屽崟浣嶏細cm.
@@ -44,7 +44,7 @@
         //        return 0;
         //    }
         //}
-
+
         /// <summary>
         /// 绐楀笜鍏ㄥ紑鎵�鍦ㄧ殑瑙掑害锛屽崟浣嶏細0.1掳
         /// </summary>
@@ -91,6 +91,30 @@
         public void ReadWcdType()
         {
             ReadAttri(Device.Cluster_ID.WindowCovering, AttriButeId.WindowCoveringType);
+        }
+
+        /// <summary>
+        /// 璇诲彇褰撳墠绐楀笜妯″紡
+        /// </summary>
+        /// <param name="commonDevice"></param>
+        /// <param name="action"></param>
+        public static void ReadWcdTypeAction(CommonDevice commonDevice, Action action)
+        {
+            new System.Threading.Thread(() =>
+            {
+                (commonDevice as Rollershade).ReadWcdType();
+                var dateTime = DateTime.Now;
+                while ((DateTime.Now - dateTime).TotalSeconds < 10)
+                {
+                    System.Threading.Thread.Sleep(100);
+                    if ((commonDevice as Rollershade).WcdType != -1)
+                    {
+                        break;
+                    }
+                }
+                action?.Invoke();
+            })
+            { IsBackground = true }.Start();
         }
 
         /// <summary>
@@ -209,7 +233,7 @@
             var data = new JObject {
                     { "Value", value }
                  };
-            jObject.Add("Data", data);
+            jObject.Add("Data", data);
             Gateway?.Send("DeviceControl", jObject.ToString());
         }
 
@@ -231,7 +255,7 @@
             var data = new JObject {
                     { "Value", value }
                  };
-            jObject.Add("Data", data);
+            jObject.Add("Data", data);
             Gateway?.Send("DeviceControl", jObject.ToString());
         }
 
@@ -253,7 +277,7 @@
             var data = new JObject {
                     { "Value", value }
                 };
-            jObject.Add("Data", data);
+            jObject.Add("Data", data);
             Gateway?.Send("DeviceControl", jObject.ToString());
         }
 
@@ -276,7 +300,7 @@
             var data = new JObject {
                     { "Value", value }
                  };
-            jObject.Add("Data", data);
+            jObject.Add("Data", data);
             Gateway?.Send("DeviceControl", jObject.ToString());
         }
 
@@ -336,15 +360,15 @@
                 try
                 {
                     int attributeData = 0;
-                    int bit0 = 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);
+                    jObject.Add("Data", data);
                     Gateway.Send("SetWritableValue", jObject.ToString());
                 }
                 catch { }
@@ -425,9 +449,9 @@
 
                 try
                 {
-                    int attributeData = 0;
-                    int bit2 = 0;
-
+                    int attributeData = 0;
+                    int bit2 = 0;
+
                     if (isMotorMaintenance)
                     {
                         bit2 = 1;
@@ -435,7 +459,7 @@
                     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);
+                    jObject.Add("Data", data);
                     Gateway.Send("SetWritableValue", jObject.ToString());
                 }
                 catch { }
@@ -527,7 +551,7 @@
                     }
                     var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 258 }, { "Command", 120 } };
                     var data = new JObject { { "Undivided", 0 }, { "AttributeId", 0xea01 }, { "AttributeDataType", 32 }, { "AttributeData", tempLimit } };
-                    jObject.Add("Data", data);
+                    jObject.Add("Data", data);
                     Gateway.Send("SetWritableValue", jObject.ToString());
                 }
                 catch { }
@@ -622,11 +646,11 @@
                 System.Console.WriteLine("SetWritableValue_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
 
                 try
-                {
-
+                {
+
                     var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 258 }, { "Command", 120 } };
                     var data = new JObject { { "Undivided", 0 }, { "AttributeId", 0xea02 }, { "AttributeDataType", 32 }, { "AttributeData", 1 } };
-                    jObject.Add("Data", data);
+                    jObject.Add("Data", data);
                     Gateway.Send("SetWritableValue", jObject.ToString());
                 }
                 catch { }
@@ -773,7 +797,7 @@
             /// </summary>
             DownLimit = 0x08,
 
-        }
+        }
         #endregion
     }
 }

--
Gitblit v1.8.0