From f71e74b5f0d2716fbf05da016cdaa18d64e09f80 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 31 十二月 2020 17:01:18 +0800
Subject: [PATCH] 又换完成最新门锁。空气质量传感器完成数据和基本配置功能。开发图表和自动化的同事可下载此代码

---
 ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs |  692 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 369 insertions(+), 323 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
index e71564b..1f2afc0 100644
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using Newtonsoft.Json.Linq;
+using Shared;
 
 namespace ZigBee.Device
 {
@@ -10,8 +11,8 @@
   {
     #region 闇�瑕佷繚瀛樼殑鍙橀噺
 
-    /// <summary>
-    /// 鏄惁鏄嚜瀹氫箟鍥剧墖
+    /// <summary>
+    /// 鏄惁鏄嚜瀹氫箟鍥剧墖
     /// </summary>
     public bool IsCustomizeImage = false;
     /// <summary>
@@ -73,13 +74,13 @@
     /// <para>1026:sensor,浼犳劅鍣紝鍏蜂綋绫诲瀷鐨勪紶鎰熷櫒DeviceType鏉ュ尯鍒�</para>
     /// </summary>
     public int DeviceID;
-    /// <summary>
-    /// <para>2020.09.21杩藉姞:涓轰簡瀵瑰簲绗笁鏂硅澶�,浠ュ強涔嬪悗鐨勫璁惧ID闂,杩藉姞鐨勫彉閲�</para>
-    /// <para>杩欐槸涓壒娈婄殑,骞朵笖涓嶄繚瀛樺湪鏂囦欢褰撲腑鐨処D, DeviceType鐢辨鍊兼槧灏勫嚭鏉�</para>
-    /// <para>褰撹澶囨槸娌充笢璁惧鏃�,瀹冧笌DeviceID鐩哥瓑</para>
-    /// <para>褰撴槸鐪熸鐨勭涓夋柟璁惧鏃�,瀹冩湁鍙兘涓嶥eviceID涓嶇浉绛�</para>
-    /// <para>姣斿锛�2鍜�256閮芥槸缁х數鍣�,閭d箞銆怐eviceID涓�2 鎴栬�� DeviceID涓�256銆� 鑰� 銆怑xDeviceID鍥哄畾涓�2銆�,銆怐eviceType涓篛nOffOutput銆�</para>
-    /// <para>閫氫織鏉ヨ锛欴eviceID鏄疄闄呮纭殑ID,鑰屻�怑xDeviceID鏄竴绉嶆墍灞炴蹇电殑ID銆�</para>
+    /// <summary>
+    /// <para>2020.09.21杩藉姞:涓轰簡瀵瑰簲绗笁鏂硅澶�,浠ュ強涔嬪悗鐨勫璁惧ID闂,杩藉姞鐨勫彉閲�</para>
+    /// <para>杩欐槸涓壒娈婄殑,骞朵笖涓嶄繚瀛樺湪鏂囦欢褰撲腑鐨処D, DeviceType鐢辨鍊兼槧灏勫嚭鏉�</para>
+    /// <para>褰撹澶囨槸娌充笢璁惧鏃�,瀹冧笌DeviceID鐩哥瓑</para>
+    /// <para>褰撴槸鐪熸鐨勭涓夋柟璁惧鏃�,瀹冩湁鍙兘涓嶥eviceID涓嶇浉绛�</para>
+    /// <para>姣斿锛�2鍜�256閮芥槸缁х數鍣�,閭d箞銆怐eviceID涓�2 鎴栬�� DeviceID涓�256銆� 鑰� 銆怑xDeviceID鍥哄畾涓�2銆�,銆怐eviceType涓篛nOffOutput銆�</para>
+    /// <para>閫氫織鏉ヨ锛欴eviceID鏄疄闄呮纭殑ID,鑰屻�怑xDeviceID鏄竴绉嶆墍灞炴蹇电殑ID銆�</para>
     /// </summary>
     [Newtonsoft.Json.JsonIgnore]
     public int ExDeviceID;
@@ -119,10 +120,10 @@
     /// <para>1锛氳澶囧湪绾�</para>
     /// </summary>
     public int IsOnline;
-    /// <summary>
-    /// 1锛氳矾鐢辫澶�
-    /// <para>2锛氱粓绔澶囷紝鐢垫睜璁惧</para>
-    /// </summary>
+    /// <summary>
+    /// 1锛氳矾鐢辫澶�
+    /// <para>2锛氱粓绔澶囷紝鐢垫睜璁惧</para>
+    /// </summary>
     public int ZigbeeType;
     /// <summary>
     /// 鍥轰欢鐗堟湰
@@ -249,11 +250,11 @@
 
     #region 璁惧淇濆瓨鍙婄敓鎴�
 
-    /// <summary>
-    /// 鐢辫澶囧瓧绗︿覆姣旂壒鎭㈠璁惧瀵硅薄
-    /// </summary>
-    /// <param name="intDeviceType">璁惧DeviceType鐨勬暣鍨嬪��</param>
-    /// <param name="strDeviceByte">璁惧Json鏂囦欢杞负姣旂壒鍚庡啀杞负鐨勫瓧绗︿覆</param>
+    /// <summary>
+    /// 鐢辫澶囧瓧绗︿覆姣旂壒鎭㈠璁惧瀵硅薄
+    /// </summary>
+    /// <param name="intDeviceType">璁惧DeviceType鐨勬暣鍨嬪��</param>
+    /// <param name="strDeviceByte">璁惧Json鏂囦欢杞负姣旂壒鍚庡啀杞负鐨勫瓧绗︿覆</param>
     /// <returns></returns>
     public static CommonDevice CommonDeviceByByteString(int intDeviceType, string strDeviceByte)
     {
@@ -413,6 +414,43 @@
     }
 
     /// <summary>
+    /// 鍒ゆ柇鏄惁鏄┖姘旇川閲忎紶鎰熷櫒
+    /// </summary>
+    /// <param name="dev"></param>
+    /// <returns></returns>
+    public bool isAirQualitySensor(CommonDevice dev)
+    {
+      bool hasT = false;
+      bool hasH = false;
+      bool hasPM = false;
+      bool hasCo2 = false;
+      foreach (var clu in dev.InClusterList)
+      {
+        switch (clu.InCluster)
+        {
+          case 1026:
+            hasT = true;
+            break;
+          case 1029:
+            hasH = true;
+            break;
+          case 1037:
+            hasCo2 = true;
+            break;
+          case 1066:
+            hasPM = true;
+            break;
+        }
+      }
+
+      if (hasT == true && hasH == true && hasPM == true && hasCo2 == true)
+      {
+        return true;
+      }
+      return false;
+    }
+
+    /// <summary>
     /// 淇濆瓨璁惧鍥炬爣
     /// </summary>
     private void SaveDeviceIcon()
@@ -466,15 +504,23 @@
         }
         else if (this.Type == DeviceType.TemperatureSensor)
         {
-          if (((TemperatureSensor)this).SensorDiv == 1)
+          if (isAirQualitySensor(this))
           {
-            //娓╁害浼犳劅鍣�
-            IconPath = "Device/SensorTemperature.png";
+            //绌烘皵璐ㄩ噺浼犳劅鍣�
+            IconPath = "Device/AirQualitySensorEpoint.png";
           }
-          else if (((TemperatureSensor)this).SensorDiv == 2)
+          else
           {
-            //婀垮害浼犳劅鍣�
-            IconPath = "Device/SensorHumidity.png";
+            if (((TemperatureSensor)this).SensorDiv == 1)
+            {
+              //娓╁害浼犳劅鍣�
+              IconPath = "Device/SensorTemperature.png";
+            }
+            else if (((TemperatureSensor)this).SensorDiv == 2)
+            {
+              //婀垮害浼犳劅鍣�
+              IconPath = "Device/SensorHumidity.png";
+            }
           }
         }
         else if (this.Type != DeviceType.UnKown)
@@ -719,20 +765,20 @@
       /// 椹卞姩浠g爜銆備负0鏃讹紝琛ㄧずzigbee鍗忚皟鍣ㄨ澶囥�傚叾浠栧�艰〃绀轰负铏氭嫙椹卞姩璁惧
       /// </summary>
       public int DriveCode;
-      /// <summary>
-      /// 鍘傚晢鍚嶇О
+      /// <summary>
+      /// 鍘傚晢鍚嶇О
       /// </summary>
       public string ManufacturerName = string.Empty;
-      /// <summary>
-      /// 妯″潡ID
+      /// <summary>
+      /// 妯″潡ID
       /// </summary>
       public string ModelIdentifier = string.Empty;
-      /// <summary>
-      /// 濂藉儚鏄簭鍒楀彿
+      /// <summary>
+      /// 濂藉儚鏄簭鍒楀彿
       /// </summary>
       public string ProductCode = string.Empty;
-      /// <summary>
-      /// 璁惧鍔熻兘绫诲瀷(绌烘皵寮�鍏冲拰缁х數鍣ㄤ笓鐢�)
+      /// <summary>
+      /// 璁惧鍔熻兘绫诲瀷(绌烘皵寮�鍏冲拰缁х數鍣ㄤ笓鐢�)
       /// </summary>
       public int FunctionType = -1;
       /// <summary>
@@ -910,37 +956,37 @@
         SynchronizationDeviceResponseAllData resContent = null;
         Action<string, string> action = (topic, message) =>
               {
-            var gatewayID = topic.Split('/')[0];
-            var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+                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 (topic == gatewayID + "/" + "Error_Respon")
+                {
+                  var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
-              if (temp == null)
-              {
-                resContent = new SynchronizationDeviceResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-              }
-              else
-              {
-                resContent = new SynchronizationDeviceResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-              }
-            }
+                  if (temp == null)
+                  {
+                    resContent = new SynchronizationDeviceResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                  }
+                  else
+                  {
+                    resContent = new SynchronizationDeviceResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                  }
+                }
 
-            if (topic == gatewayID + "/" + "Bind/SyncMsgToBindSourceRespon")
-            {
-              var res = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
-              if (res == null)
-              {
-                resContent = new SynchronizationDeviceResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-              }
-              else
-              {
-                resContent = new SynchronizationDeviceResponseAllData { result = res };
-                System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-              }
-            }
-          };
+                if (topic == gatewayID + "/" + "Bind/SyncMsgToBindSourceRespon")
+                {
+                  var res = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
+                  if (res == null)
+                  {
+                    resContent = new SynchronizationDeviceResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                  }
+                  else
+                  {
+                    resContent = new SynchronizationDeviceResponseAllData { result = res };
+                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+                  }
+                }
+              };
         Gateway.Actions = action;
         DebugPrintLog("Bind/SyncMsgToBindSourceRespon_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
 
@@ -1013,38 +1059,38 @@
         RemoveDeviceResponseAllData d = null;
         Action<string, string> action = (topic, message) =>
               {
-            var gatewayID = topic.Split('/')[0];
-            var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+                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 (topic == gatewayID + "/" + "Error_Respon")
+                {
+                  var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
-              if (temp == null)
-              {
-                d = new RemoveDeviceResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-              }
-              else
-              {
-                d = new RemoveDeviceResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-              }
-            }
+                  if (temp == null)
+                  {
+                    d = new RemoveDeviceResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                  }
+                  else
+                  {
+                    d = new RemoveDeviceResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                  }
+                }
 
-            if (topic == gatewayID + "/" + "RemoveDeviceRespon")
-            {
-              var removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.RemoveDeviceResponseData>(jobject["Data"].ToString());
+                if (topic == gatewayID + "/" + "RemoveDeviceRespon")
+                {
+                  var removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.RemoveDeviceResponseData>(jobject["Data"].ToString());
 
-              if (removeDeviceResponseData == null)
-              {
-                d = new RemoveDeviceResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-              }
-              else
-              {
-                d = new RemoveDeviceResponseAllData { removeDeviceResponseData = removeDeviceResponseData };
-                System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-              }
-            }
-          };
+                  if (removeDeviceResponseData == null)
+                  {
+                    d = new RemoveDeviceResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                  }
+                  else
+                  {
+                    d = new RemoveDeviceResponseAllData { removeDeviceResponseData = removeDeviceResponseData };
+                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+                  }
+                }
+              };
         Gateway.Actions += action;
         DebugPrintLog("RemoveDevice_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
 
@@ -1227,10 +1273,10 @@
       }
       await System.Threading.Tasks.Task.Run(async () =>
       {
-              //Action<string, string> action = (topic, message) => { };
+        //Action<string, string> action = (topic, message) => { };
 
-              // Gateway.Actions += action;
-              System.Console.WriteLine("GetDeviceStatus_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
+        // Gateway.Actions += action;
+        System.Console.WriteLine("GetDeviceStatus_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
 
         try
         {
@@ -1251,8 +1297,8 @@
         }
         catch { }
 
-              // Gateway.Actions -= action;
-              System.Console.WriteLine("GetDeviceStatus_Actions 閫�鍑�" + System.DateTime.Now.ToString());
+        // Gateway.Actions -= action;
+        System.Console.WriteLine("GetDeviceStatus_Actions 閫�鍑�" + System.DateTime.Now.ToString());
       });
     }
 
@@ -1319,38 +1365,38 @@
         SetWritableValueResponAllData d = null;
         Action<string, string> action = (topic, message) =>
               {
-            var gatewayID = topic.Split('/')[0];
-            var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+                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 (topic == gatewayID + "/" + "Error_Respon")
+                {
+                  var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
-              if (temp == null)
-              {
-                d = new SetWritableValueResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-              }
-              else
-              {
-                d = new SetWritableValueResponAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-              }
-            }
+                  if (temp == null)
+                  {
+                    d = new SetWritableValueResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                  }
+                  else
+                  {
+                    d = new SetWritableValueResponAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                  }
+                }
 
-            if (topic == gatewayID + "/" + "SetWritableValue_Respon")
-            {
-              var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetWritableValueResponData>(jobject["Data"].ToString());
+                if (topic == gatewayID + "/" + "SetWritableValue_Respon")
+                {
+                  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}");
-              }
-            }
-          };
+                  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());
 
@@ -1490,45 +1536,45 @@
         ClusterOwnAttributesResponAllData d = null;
         Action<string, string> action = (topic, message) =>
               {
-            var gatewayID = topic.Split('/')[0];
-            var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+                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 (topic == gatewayID + "/" + "Error_Respon")
+                {
+                  var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
-              if (temp == null)
-              {
-                d = new ClusterOwnAttributesResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-              }
-              else
-              {
-                d = new ClusterOwnAttributesResponAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-              }
-            }
+                  if (temp == null)
+                  {
+                    d = new ClusterOwnAttributesResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                  }
+                  else
+                  {
+                    d = new ClusterOwnAttributesResponAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                  }
+                }
 
-            if (topic == gatewayID + "/" + "Cluster/OwnAttributes_Respon")
-            {
-              var clusterOwnAttributesResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ClusterOwnAttributesResponData>(jobject["Data"].ToString());
-              var tempAttributes = Newtonsoft.Json.Linq.JArray.Parse(jobject["Data"]["Attribute"].ToString());
-              for (int m = 0; tempAttributes != null && m < tempAttributes.Count; m++)
-              {
-                var tempAttribute = tempAttributes[m];
-                clusterOwnAttributesResponData.AttributeList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AttributeObj>(tempAttribute.ToString()));
-              }
+                if (topic == gatewayID + "/" + "Cluster/OwnAttributes_Respon")
+                {
+                  var clusterOwnAttributesResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ClusterOwnAttributesResponData>(jobject["Data"].ToString());
+                  var tempAttributes = Newtonsoft.Json.Linq.JArray.Parse(jobject["Data"]["Attribute"].ToString());
+                  for (int m = 0; tempAttributes != null && m < tempAttributes.Count; m++)
+                  {
+                    var tempAttribute = tempAttributes[m];
+                    clusterOwnAttributesResponData.AttributeList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AttributeObj>(tempAttribute.ToString()));
+                  }
 
-              if (clusterOwnAttributesResponData == null)
-              {
-                d = new ClusterOwnAttributesResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-              }
-              else
-              {
-                d = new ClusterOwnAttributesResponAllData { clusterOwnAttributesResponData = clusterOwnAttributesResponData };
-                System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+                  if (clusterOwnAttributesResponData == null)
+                  {
+                    d = new ClusterOwnAttributesResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                  }
+                  else
+                  {
+                    d = new ClusterOwnAttributesResponAllData { clusterOwnAttributesResponData = clusterOwnAttributesResponData };
+                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
 
-              }
-            }
-          };
+                  }
+                }
+              };
         gateway.Actions += action;
         System.Console.WriteLine("Cluster/OwnAttributes_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
 
@@ -1604,40 +1650,40 @@
         ClusterOwnCommandResponAllData d = null;
         Action<string, string> action = (topic, message) =>
               {
-            var gatewayID = topic.Split('/')[0];
-            var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+                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 (topic == gatewayID + "/" + "Error_Respon")
+                {
+                  var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
-              if (temp == null)
-              {
-                d = new ClusterOwnCommandResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-              }
-              else
-              {
-                d = new ClusterOwnCommandResponAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                  if (temp == null)
+                  {
+                    d = new ClusterOwnCommandResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                  }
+                  else
+                  {
+                    d = new ClusterOwnCommandResponAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
 
-              }
-            }
+                  }
+                }
 
-            if (topic == gatewayID + "/" + "Cluster/OwnCommand_Respon")
-            {
-              var clusterOwnCommandResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClusterOwnCommandResponData>(jobject["Data"].ToString());
+                if (topic == gatewayID + "/" + "Cluster/OwnCommand_Respon")
+                {
+                  var clusterOwnCommandResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClusterOwnCommandResponData>(jobject["Data"].ToString());
 
-              if (clusterOwnCommandResponData == null)
-              {
-                d = new ClusterOwnCommandResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                  if (clusterOwnCommandResponData == null)
+                  {
+                    d = new ClusterOwnCommandResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
 
-              }
-              else
-              {
-                d = new ClusterOwnCommandResponAllData { clusterOwnCommandResponData = clusterOwnCommandResponData };
-                System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-              }
-            }
-          };
+                  }
+                  else
+                  {
+                    d = new ClusterOwnCommandResponAllData { clusterOwnCommandResponData = clusterOwnCommandResponData };
+                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+                  }
+                }
+              };
         gateway.Actions += action;
         System.Console.WriteLine("Cluster/OwnCommand_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
 
@@ -1713,39 +1759,39 @@
         OTASetImageResponseAllData d = null; ;
         Action<string, string> action = (topic, message) =>
               {
-            var gatewayID = topic.Split('/')[0];
-            var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+                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 (topic == gatewayID + "/" + "Error_Respon")
+                {
+                  var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
-              if (temp == null)
-              {
-                d = new OTASetImageResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-              }
+                  if (temp == null)
+                  {
+                    d = new OTASetImageResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                  }
 
-              else
-              {
-                d = new OTASetImageResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-              }
-            }
+                  else
+                  {
+                    d = new OTASetImageResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                  }
+                }
 
-            if (topic == gatewayID + "/" + "OTA/SetImage_Respon")
-            {
-              var oTASetImageData = Newtonsoft.Json.JsonConvert.DeserializeObject<OTASetImageData>(jobject["Data"].ToString());
+                if (topic == gatewayID + "/" + "OTA/SetImage_Respon")
+                {
+                  var oTASetImageData = Newtonsoft.Json.JsonConvert.DeserializeObject<OTASetImageData>(jobject["Data"].ToString());
 
-              if (oTASetImageData == null)
-              {
-                d = new OTASetImageResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-              }
-              else
-              {
-                d = new OTASetImageResponseAllData { otaSetImageData = oTASetImageData };
-                System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-              }
-            }
-          };
+                  if (oTASetImageData == null)
+                  {
+                    d = new OTASetImageResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                  }
+                  else
+                  {
+                    d = new OTASetImageResponseAllData { otaSetImageData = oTASetImageData };
+                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+                  }
+                }
+              };
         gateway.Actions += action;
         System.Console.WriteLine("OTA/SetImage_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
 
@@ -1858,39 +1904,39 @@
         StartDeviceUpdateResponseAllData d = null; ;
         Action<string, string> action = (topic, message) =>
               {
-            var gatewayID = topic.Split('/')[0];
-            var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+                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 (topic == gatewayID + "/" + "Error_Respon")
+                {
+                  var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
-              if (temp == null)
-              {
-                d = new StartDeviceUpdateResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-              }
+                  if (temp == null)
+                  {
+                    d = new StartDeviceUpdateResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                  }
 
-              else
-              {
-                d = new StartDeviceUpdateResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-              }
-            }
+                  else
+                  {
+                    d = new StartDeviceUpdateResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                  }
+                }
 
-            if (topic == gatewayID + "/" + "OTA/StartUpdate_Respon")
-            {
-              var startUpdateDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<StartDeviceUpdateData>(jobject["Data"].ToString());
+                if (topic == gatewayID + "/" + "OTA/StartUpdate_Respon")
+                {
+                  var startUpdateDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<StartDeviceUpdateData>(jobject["Data"].ToString());
 
-              if (startUpdateDeviceData == null)
-              {
-                d = new StartDeviceUpdateResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-              }
-              else
-              {
-                d = new StartDeviceUpdateResponseAllData { startUpdateDeviceData = startUpdateDeviceData };
-                System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-              }
-            }
-          };
+                  if (startUpdateDeviceData == null)
+                  {
+                    d = new StartDeviceUpdateResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                  }
+                  else
+                  {
+                    d = new StartDeviceUpdateResponseAllData { startUpdateDeviceData = startUpdateDeviceData };
+                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+                  }
+                }
+              };
         gateway.Actions += action;
         System.Console.WriteLine("OTA/StartUpdate_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
 
@@ -2044,39 +2090,39 @@
         ClientDataPassthroughResponseAllData d = null; ;
         Action<string, string> action = (topic, message) =>
               {
-            var gatewayID = topic.Split('/')[0];
-            var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+                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 (topic == gatewayID + "/" + "Error_Respon")
+                {
+                  var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
-              if (temp == null)
-              {
-                d = new ClientDataPassthroughResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-              }
+                  if (temp == null)
+                  {
+                    d = new ClientDataPassthroughResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                  }
 
-              else
-              {
-                d = new ClientDataPassthroughResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-              }
-            }
+                  else
+                  {
+                    d = new ClientDataPassthroughResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                  }
+                }
 
-            if (topic == gatewayID + "/" + "ZbDataPassthrough")
-            {
-              var clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+                if (topic == gatewayID + "/" + "ZbDataPassthrough")
+                {
+                  var clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
 
-              if (clientDataPassthroughResponseData == null)
-              {
-                d = new ClientDataPassthroughResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-              }
-              else
-              {
-                d = new ClientDataPassthroughResponseAllData { clientDataPassthroughResponseData = clientDataPassthroughResponseData };
-                System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-              }
-            }
-          };
+                  if (clientDataPassthroughResponseData == null)
+                  {
+                    d = new ClientDataPassthroughResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                  }
+                  else
+                  {
+                    d = new ClientDataPassthroughResponseAllData { clientDataPassthroughResponseData = clientDataPassthroughResponseData };
+                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+                  }
+                }
+              };
         gateway.Actions += action;
         System.Console.WriteLine("ClientDataPassthrough_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
 
@@ -2176,38 +2222,38 @@
         DownloadFileResponAllData d = null; ;
         Action<string, string> action = (topic, message) =>
               {
-            var gatewayID = topic.Split('/')[0];
-            var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+                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 (topic == gatewayID + "/" + "Error_Respon")
+                {
+                  var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
-              if (temp == null)
-              {
-                d = new DownloadFileResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-              }
-              else
-              {
-                d = new DownloadFileResponAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-              }
-            }
+                  if (temp == null)
+                  {
+                    d = new DownloadFileResponAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                  }
+                  else
+                  {
+                    d = new DownloadFileResponAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                  }
+                }
 
-            if (topic == gatewayID + "/" + "DownloadFile_Respon")
-            {
-              var downloadFileResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<DownloadFileResponData>(jobject["Data"].ToString());
+                if (topic == gatewayID + "/" + "DownloadFile_Respon")
+                {
+                  var downloadFileResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<DownloadFileResponData>(jobject["Data"].ToString());
 
-              if (downloadFileResponData == null)
-              {
-                d = new DownloadFileResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-              }
-              else
-              {
-                d = new DownloadFileResponAllData { downloadFileResponData = downloadFileResponData };
-                System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-              }
-            }
-          };
+                  if (downloadFileResponData == null)
+                  {
+                    d = new DownloadFileResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                  }
+                  else
+                  {
+                    d = new DownloadFileResponAllData { downloadFileResponData = downloadFileResponData };
+                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+                  }
+                }
+              };
         gateway.Actions += action;
         try
         {
@@ -2328,39 +2374,39 @@
         KillUpdateResponseAllData d = null; ;
         Action<string, string> action = (topic, message) =>
               {
-            var gatewayID = topic.Split('/')[0];
-            var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+                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 (topic == gatewayID + "/" + "Error_Respon")
+                {
+                  var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
-              if (temp == null)
-              {
-                d = new KillUpdateResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-              }
+                  if (temp == null)
+                  {
+                    d = new KillUpdateResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                  }
 
-              else
-              {
-                d = new KillUpdateResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-              }
-            }
+                  else
+                  {
+                    d = new KillUpdateResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                  }
+                }
 
-            if (topic == gatewayID + "/" + "OTA/KillUpdate_Respon")
-            {
-              var killUpdateData = Newtonsoft.Json.JsonConvert.DeserializeObject<KillUpdateData>(jobject["Data"].ToString());
+                if (topic == gatewayID + "/" + "OTA/KillUpdate_Respon")
+                {
+                  var killUpdateData = Newtonsoft.Json.JsonConvert.DeserializeObject<KillUpdateData>(jobject["Data"].ToString());
 
-              if (killUpdateData == null)
-              {
-                d = new KillUpdateResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-              }
-              else
-              {
-                d = new KillUpdateResponseAllData { killUpdateData = killUpdateData };
-                System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-              }
-            }
-          };
+                  if (killUpdateData == null)
+                  {
+                    d = new KillUpdateResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                  }
+                  else
+                  {
+                    d = new KillUpdateResponseAllData { killUpdateData = killUpdateData };
+                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+                  }
+                }
+              };
         gateway.Actions += action;
         System.Console.WriteLine("OTA/KillUpdate_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
 

--
Gitblit v1.8.0