From 2e7e5f9af5b32cfe1fc3c6ba40bf7eb984bbd0a4 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 11 五月 2020 17:52:06 +0800
Subject: [PATCH] ???????

---
 ZigbeeApp/Shared/Phone/ZigBee/Device/Safeguard.cs | 1462 +++++++++++++++++++---------------------------------------
 1 files changed, 487 insertions(+), 975 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Safeguard.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Safeguard.cs
index 2c0df35..4c28218 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/Safeguard.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/Safeguard.cs
@@ -23,7 +23,7 @@
         /// </summary>
         public int Time;
 
-         /// <summary>
+        /// <summary>
         /// 绛夊緟浠庣綉鍏虫帴鏀舵暟鎹殑鏃堕棿
         /// </summary>
         /// <value>The wait receive data time.</value>
@@ -35,7 +35,8 @@
                 if (mainGateway == null)
                 {
                     return 3000;
-                }else if (mainGateway.IsVirtual)
+                }
+                else if (mainGateway.IsVirtual)
                 {
                     return 6000;
                 }
@@ -47,31 +48,8 @@
         }
 
         /// <summary>
-        /// 缃戝叧淇℃伅閿欒鍙嶉
-        /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-        /// </summary>
-        ErrorResponData errResponData;
-        /// <summary>
-        /// 缃戝叧淇℃伅閿欒鍙嶉
-        /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-        /// </summary>
-        [System.Serializable]
-        public class ErrorResponData
-        {
-            /// <summary>
-            /// Error鍙傛暟鍚箟
-            ///<para>1锛氱綉鍏虫棤娉曡В鏋愬懡浠ゆ暟鎹��</para> 
-            ///<para>2锛氬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁
-            ///<para>3锛氭搷浣滆澶�/缁�/鍦烘櫙涓嶅瓨鍦�</para> 
-            ///<para>4锛氬叾浠栭敊璇�</para> 
-            ///<para>5锛氭暟鎹紶杈撻敊璇紙鍦ㄦ煇娆″鎴风鍚戠綉鍏冲彂閫佹暟鎹殑杩囩▼涓紝缃戝叧鍦ㄥ悎鐞嗘椂闂磋寖鍥村唴鎺ユ敹瀹㈡埛绔暟鎹笉瀹屾暣瀵艰嚧璇ラ敊璇彂鐢熴�傚瀹㈡埛绔悜缃戝叧涓�娆″彂閫�100涓瓧鑺傜殑鏁版嵁锛屼絾缃戝叧绛夊緟鎺ユ敹浜嗕竴绉掑彧鎺ユ敹浜�80涓瓧鑺傘�傚彂鐢熻閿欒锛岀綉鍏冲皢涓诲姩鍏抽棴瀹㈡埛绔繛鎺ワ級</para> 
-            /// </summary>
-            public int Error;
-        }
-
-        /// <summary>
         /// 缃戝叧淇℃伅閿欒鍙嶉鍐呭
-         /// </summary>
+        /// </summary>
         static string ErrorMess(int err)
         {
             string message = "";
@@ -126,8 +104,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -135,28 +112,27 @@
                         }
                         else
                         {
-                            d = new AdminLoginResponAllData { errorResponData = temp , errorMessageBase = ErrorMess(temp.Error) };
+                            d = new AdminLoginResponAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new AdminLoginResponAllData { };
                         if (temp == null)
                         {
-                            d .errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" ;
+                            d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
                         }
                         else
                         {
                             if (temp.Error == 1)
                             {
-                                d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��" ;
+                                d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��";
                             }
                             else if (temp.Error == 2)
                             {
-                                d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��" ;
+                                d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
                             }
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
@@ -164,7 +140,6 @@
 
                     if (topic == gatewayID + "/" + "Security/AdminLogin_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         if (tempData == null)
                         {
@@ -182,10 +157,10 @@
 
                 try
                 {
-                var bytes = new byte[32];
-                var reamarkGwBytes = System.Text.Encoding.UTF8.GetBytes(password);
-                System.Array.Copy(reamarkGwBytes, 0, bytes, 0, 32 < reamarkGwBytes.Length ? 32 : reamarkGwBytes.Length);
-                password = System.Text.Encoding.UTF8.GetString(bytes);
+                    var bytes = new byte[32];
+                    var reamarkGwBytes = System.Text.Encoding.UTF8.GetBytes(password);
+                    System.Array.Copy(reamarkGwBytes, 0, bytes, 0, 32 < reamarkGwBytes.Length ? 32 : reamarkGwBytes.Length);
+                    password = System.Text.Encoding.UTF8.GetString(bytes);
 
                     var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
@@ -195,12 +170,12 @@
                     jObject.Add("Data", data);
                     mainGateway.Send("Security/AdminLogin", jObject.ToString());
                 }
-                catch{} 
+                catch { }
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
                     await System.Threading.Tasks.Task.Delay(10);
-                    if (d!= null)
+                    if (d != null)
                     {
                         break;
                     }
@@ -224,17 +199,8 @@
         /// 绠$悊鍛樺瘑鐮佺櫥闄嗚繑鍥炵殑鏁版嵁,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class AdminLoginResponAllData
+        public class AdminLoginResponAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 杩斿洖缁撴灉Result
             /// <para>0锛氱櫥闄嗘垚鍔�</para>
@@ -277,12 +243,11 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
-                             d = new ChangeAdminPasswordResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                            d = new ChangeAdminPasswordResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
                         }
                         else
                         {
@@ -292,14 +257,13 @@
 
                     if (topic == gatewayID + "/" + "Security/ChangeAdminPassword_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         if (result == 0)
                         {
-                            security.changeAdminPasswordResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ChangeAdminPasswordResponseData>(jobject["Data"].ToString());
-                            if (security.changeAdminPasswordResponseData != null)
+                            var changeAdminPasswordResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ChangeAdminPasswordResponseData>(jobject["Data"].ToString());
+                            if (changeAdminPasswordResponseData != null)
                             {
-                                d = new ChangeAdminPasswordResponseAllData { changeAdminPasswordResponseData = security.changeAdminPasswordResponseData };
+                                d = new ChangeAdminPasswordResponseAllData { changeAdminPasswordResponseData = changeAdminPasswordResponseData };
                                 System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                             }
                         }
@@ -324,7 +288,8 @@
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/ChangeAdminPassword_Actions 鍚姩" + System.DateTime.Now.ToString());
-                try{
+                try
+                {
                     var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4023}
@@ -338,7 +303,7 @@
                     mainGateway.Send("Security/ChangeAdminPassword", jObject.ToString());
                 }
                 catch { }
- 
+
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -367,17 +332,8 @@
         /// 淇敼绠$悊鍛樺瘑鐮佽繑鍥炵殑鏁版嵁,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class ChangeAdminPasswordResponseAllData
+        public class ChangeAdminPasswordResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 淇敼绠$悊鍛樺瘑鐮佽繑鍥炵殑鏁版嵁
             /// </summary>
@@ -435,8 +391,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -450,29 +405,29 @@
 
                     if (topic == gatewayID + "/" + "Security/CatDelayTime_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.catDelayTimeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<CatDelayTimeResponseData>(jobject["Data"].ToString());
-                        if (security.catDelayTimeResponseData == null)
+                        var catDelayTimeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<CatDelayTimeResponseData>(jobject["Data"].ToString());
+                        if (catDelayTimeResponseData == null)
                         {
                             d = new CatDelayTimeResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
                         }
                         else
                         {
-                            d = new CatDelayTimeResponseAllData { catDelayTimeResponseData = security.catDelayTimeResponseData };
+                            d = new CatDelayTimeResponseAllData { catDelayTimeResponseData = catDelayTimeResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                     }
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/CatDelayTime_Actions 鍚姩" + System.DateTime.Now.ToString());
-                 try{
+                try
+                {
                     var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4019}
                                 };
                     mainGateway.Send("Security/CatDelayTime", jObject.ToString());
                 }
-                catch{} 
+                catch { }
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -501,24 +456,15 @@
         /// 鏌ョ湅寤舵椂鏃堕棿杩斿洖鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class CatDelayTimeResponseAllData
+        public class CatDelayTimeResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鏌ョ湅寤舵椂鏃堕棿杩斿洖鐨勬暟鎹�
             /// </summary>
             public CatDelayTimeResponseData catDelayTimeResponseData;
 
         }
- 
+
         /// <summary>
         /// 鏌ョ湅寤舵椂鏃堕棿杩斿洖鐨勬暟鎹�
         /// </summary>
@@ -548,7 +494,7 @@
         /// <para>goOutDelayTime:澶栧嚭寤舵椂鏃堕棿锛屽崟浣嶇鑼冨洿锛�0-65535</para>
         /// <para>loginToken:鐧婚檰鏍囪瘑锛屾渶澶�32涓瓧绗︺�傜敱app鑷姩鐢熸垚鐨勫敮涓�鏍囪瘑銆傚鏋滅櫥闄嗘垚鍔燂紝缃戝叧灏嗚褰曡鏍囪瘑锛宎pp闇�瑕佺鐞嗗憳鏉冮檺鐨勬寚浠ら兘搴旇甯︽湁璇ユ爣璇嗭紝缃戝叧浼氭牴鎹鏍囪瘑鏉ュ垽鏂槸鍚︿负绠$悊鍛樻搷浣滐紝濡傛灉鏍囪瘑閿欒锛屽皢杩斿洖鈥淪ecurity/Error_Respon鈥濅富棰樻暟鎹�� 銆�</para>
         /// </summary>
-        public static async System.Threading.Tasks.Task<SetDelayTimeResponseAllData> SetDelayTimeAsync(int entranceDelayTime,int goOutDelayTime,string loginToken)
+        public static async System.Threading.Tasks.Task<SetDelayTimeResponseAllData> SetDelayTimeAsync(int entranceDelayTime, int goOutDelayTime, string loginToken)
         {
             return await System.Threading.Tasks.Task.Run(async () =>
             {
@@ -567,8 +513,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -583,15 +528,15 @@
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
                         var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new SetDelayTimeResponseAllData { };
                         if (temp == null)
                         {
-                            d .errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" ;
+                            d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
                         }
                         else
                         {
-                            d .errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" ;
+                            d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
                             if (temp.Error == 1)
                             {
                                 d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��";
@@ -601,41 +546,42 @@
                                 d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
                             }
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                             d.errorResponData = temp;
+                            d.errorResponData = temp;
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/SetDelayTime_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.setDelayTimeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetDelayTimeResponseData>(jobject["Data"].ToString());
-                        if (security.setDelayTimeResponseData == null)
+                        var setDelayTimeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetDelayTimeResponseData>(jobject["Data"].ToString());
+                        if (setDelayTimeResponseData == null)
                         {
                             d = new SetDelayTimeResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
                         }
                         else
                         {
-                            d = new SetDelayTimeResponseAllData { setDelayTimeResponseData = security.setDelayTimeResponseData };
+                            d = new SetDelayTimeResponseAllData { setDelayTimeResponseData = setDelayTimeResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                     }
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/SetDelayTime_Actions 鍚姩" + System.DateTime.Now.ToString());
-                try{
-                var jObject = new Newtonsoft.Json.Linq.JObject() {
+                try
+                {
+                    var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4020}
                                 };
-                var data = new JObject
+                    var data = new JObject
                     {
                     { "EntranceDelayTime", entranceDelayTime},
                     { "GoOutDelayTime", goOutDelayTime},
                     { "LoginToken", loginToken}
                 };
-                jObject.Add("Data", data);
-                mainGateway.Send("Security/SetDelayTime", jObject.ToString());
-                }catch { }
+                    jObject.Add("Data", data);
+                    mainGateway.Send("Security/SetDelayTime", jObject.ToString());
+                }
+                catch { }
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -664,17 +610,8 @@
         /// 璁剧疆寤舵椂鏃堕棿杩斿洖鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class SetDelayTimeResponseAllData
+        public class SetDelayTimeResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 璁剧疆寤舵椂鏃堕棿杩斿洖鐨勬暟鎹�
             /// </summary>
@@ -714,7 +651,7 @@
         {
             return await System.Threading.Tasks.Task.Run(async () =>
             {
-                CatUserPasswordResponseAllData d =null;
+                CatUserPasswordResponseAllData d = null;
                 var mainGateway = ZbGateway.MainGateWay;
                 if (mainGateway == null)
                 {
@@ -729,8 +666,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -744,17 +680,16 @@
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new CatUserPasswordResponseAllData { };
 
                         if (temp == null)
                         {
-                            d .errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" ;
+                            d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
                         }
                         else
                         {
-                             if (temp.Error == 1)
+                            if (temp.Error == 1)
                             {
                                 d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��";
                             }
@@ -763,41 +698,42 @@
                                 d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
                             }
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                             d.errorResponData = temp;
+                            d.errorResponData = temp;
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/CatUserPassword_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.catUserPasswordResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<CatUserPasswordResponseData>(jobject["Data"].ToString());
-                        if (security.catUserPasswordResponseData == null)
+                        var catUserPasswordResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<CatUserPasswordResponseData>(jobject["Data"].ToString());
+                        if (catUserPasswordResponseData == null)
                         {
                             d = new CatUserPasswordResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
                         }
                         else
                         {
-                            d = new CatUserPasswordResponseAllData { catUserPasswordResponseData = security.catUserPasswordResponseData };
+                            d = new CatUserPasswordResponseAllData { catUserPasswordResponseData = catUserPasswordResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                     }
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/CatUserPassword_Actions 鍚姩" + System.DateTime.Now.ToString());
-                try{
+                try
+                {
                     var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4024}
-                                }; 
+                                };
                     var data = new JObject
                     {
                       { "LoginToken", loginToken}
                     };
                     jObject.Add("Data", data);
-                    mainGateway.Send("Security/CatUserPassword", jObject.ToString()); 
-                 }
-                catch {
-                 } 
+                    mainGateway.Send("Security/CatUserPassword", jObject.ToString());
+                }
+                catch
+                {
+                }
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -826,17 +762,8 @@
         /// 鏌ョ湅鐢ㄦ埛瀵嗙爜鍜岃儊杩瘑鐮佽繑鍥炵殑鏁版嵁,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class CatUserPasswordResponseAllData
+        public class CatUserPasswordResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鏌ョ湅鐢ㄦ埛瀵嗙爜鍜岃儊杩瘑鐮佽繑鍥炵殑鏁版嵁
             /// </summary>
@@ -912,8 +839,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -928,11 +854,11 @@
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
                         var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new SetUserPasswordResponseAllData { };
                         if (temp == null)
                         {
-                            d .errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" ;
+                            d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
                         }
                         else
                         {
@@ -945,20 +871,19 @@
                                 d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
                             }
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                             d.errorResponData = temp;
+                            d.errorResponData = temp;
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/SetUserPassword_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         if (result == 0)
                         {
-                            security.setUserPasswordResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetUserPasswordResponseData>(jobject["Data"].ToString());
-                            if (security.setUserPasswordResponseData != null)
+                            var setUserPasswordResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetUserPasswordResponseData>(jobject["Data"].ToString());
+                            if (setUserPasswordResponseData != null)
                             {
-                                d = new SetUserPasswordResponseAllData { setUserPasswordResponseData = security.setUserPasswordResponseData };
+                                d = new SetUserPasswordResponseAllData { setUserPasswordResponseData = setUserPasswordResponseData };
                                 System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
 
                             }
@@ -975,7 +900,8 @@
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/SetUserPassword_Actions 鍚姩" + System.DateTime.Now.ToString());
-                try{
+                try
+                {
                     var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4025}
@@ -990,8 +916,9 @@
                     jObject.Add("Data", data);
                     mainGateway.Send("Security/SetUserPassword", jObject.ToString());
                 }
-                catch{
-                } 
+                catch
+                {
+                }
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -1039,8 +966,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -1055,7 +981,7 @@
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
                         var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new SetUserPasswordResponseAllData { };
                         if (temp == null)
                         {
@@ -1077,14 +1003,13 @@
 
                     if (topic == gatewayID + "/" + "Security/AddPassWordTips_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         if (result == 0)
                         {
-                            security.setUserPasswordResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetUserPasswordResponseData>(jobject["Data"].ToString());
-                            if (security.setUserPasswordResponseData != null)
+                            var setUserPasswordResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetUserPasswordResponseData>(jobject["Data"].ToString());
+                            if (setUserPasswordResponseData != null)
                             {
-                                d = new SetUserPasswordResponseAllData { setUserPasswordResponseData = security.setUserPasswordResponseData };
+                                d = new SetUserPasswordResponseAllData { setUserPasswordResponseData = setUserPasswordResponseData };
                             }
                         }
                         else
@@ -1143,17 +1068,8 @@
         /// 鏂板鎴栭噸璁剧敤鎴峰瘑鐮佽繑鍥炵殑鏁版嵁,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class SetUserPasswordResponseAllData
+        public class SetUserPasswordResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 淇敼绠$悊鍛樺瘑鐮佽繑鍥炵殑鏁版嵁
             /// </summary>
@@ -1198,7 +1114,7 @@
         /// 涓�0鏃讹紝鑷姩鍒嗛厤鏂扮殑鐢ㄦ埛id銆備负5鏃讹紝鍒欎慨鏀硅儊杩瘑鐮併�傚彇鍊艰寖鍥�0-5銆�</para>
         /// <para>loginToken:鐧婚檰鏍囪瘑锛屾渶澶�32涓瓧绗︺�傜敱app鑷姩鐢熸垚鐨勫敮涓�鏍囪瘑銆備笌绠$悊鍛樼櫥闄嗘寚浠ょ殑鈥淟oginToken鈥濅竴鑷达紝鍚﹀垯灏嗚繑鍥炩�淪ecurity/Error_Respon鈥濋敊璇��</para>
         /// </summary> 
-        public static async System.Threading.Tasks.Task<DelUserPasswordResponseAllData> DelUserPasswordAsync(int userId,string loginToken)
+        public static async System.Threading.Tasks.Task<DelUserPasswordResponseAllData> DelUserPasswordAsync(int userId, string loginToken)
         {
             return await System.Threading.Tasks.Task.Run(async () =>
             {
@@ -1217,8 +1133,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -1231,16 +1146,15 @@
                     }
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new DelUserPasswordResponseAllData { };
 
                         if (temp == null)
                         {
-                            d .errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" ;
+                            d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
                         }
                         else
-                        { 
+                        {
                             if (temp.Error == 1)
                             {
                                 d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��";
@@ -1255,11 +1169,10 @@
                     }
                     if (topic == gatewayID + "/" + "Security/DelUserPassword_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.delUserPasswordResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelUserPasswordResponseData>(jobject["Data"].ToString());
-                        if (security.delUserPasswordResponseData != null)
+                        var delUserPasswordResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelUserPasswordResponseData>(jobject["Data"].ToString());
+                        if (delUserPasswordResponseData != null)
                         {
-                            d = new DelUserPasswordResponseAllData { delUserPasswordResponseData = security.delUserPasswordResponseData }; 
+                            d = new DelUserPasswordResponseAllData { delUserPasswordResponseData = delUserPasswordResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
 
                         }
@@ -1273,7 +1186,8 @@
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/DelUserPassword_Actions 鍚姩" + System.DateTime.Now.ToString());
-                try{
+                try
+                {
                     var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4026}
@@ -1286,7 +1200,7 @@
                     jObject.Add("Data", data);
                     mainGateway.Send("Security/DelUserPassword", jObject.ToString());
                 }
-                catch{} 
+                catch { }
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -1315,17 +1229,8 @@
         /// 鍒犻櫎鐢ㄦ埛瀵嗙爜杩斿洖鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class DelUserPasswordResponseAllData
+        public class DelUserPasswordResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鍒犻櫎鐢ㄦ埛瀵嗙爜杩斿洖鐨勬暟鎹�
             /// </summary>
@@ -1381,7 +1286,7 @@
         //            if (topic == gatewayID + "/" + "Error_Respon")
         //            {
         //                var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-        //                var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+        //                var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
         //                if (temp == null)
         //                {
@@ -1607,67 +1512,67 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
                             d = new AddDeviceToZoneResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                          }
+                        }
                         else
                         {
                             d = new AddDeviceToZoneResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
- 
+
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
                         var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new AddDeviceToZoneResponseAllData { };
                         if (temp == null)
                         {
-                             d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" ;
+                            d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
                         }
                         else
                         {
                             if (temp.Error == 1)
                             {
-                                d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��" ;
+                                d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��";
                             }
                             else if (temp.Error == 2)
                             {
-                                d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��" ;
+                                d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
 
                             }
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                            d.errorResponData = temp ;
+                            d.errorResponData = temp;
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/AddEqToZone_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
- 
+
                         if (result == 0)
                         {
-                            security.addDeviceToZoneResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AddDeviceToZoneResponseData>(jobject["Data"].ToString());
-                            if(security.addDeviceToZoneResponseData!=null){
-                                d = new AddDeviceToZoneResponseAllData { addDeviceToPartResponseData = security.addDeviceToZoneResponseData };
-                              }
-                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
+                            var addDeviceToZoneResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AddDeviceToZoneResponseData>(jobject["Data"].ToString());
+                            if (addDeviceToZoneResponseData != null)
+                            {
+                                d = new AddDeviceToZoneResponseAllData { addDeviceToPartResponseData = addDeviceToZoneResponseData };
+                            }
+                            System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                         else
                         {
                             d = new AddDeviceToZoneResponseAllData { errorMessageBase = "娣诲姞澶辫触" };
-                         }
+                        }
                     }
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine($"Security/AddEqToZone_Actions鍚姩_{System.DateTime.Now.ToString()}");
-                try{
+                try
+                {
                     if (addDeviceToZoneData != null)
                     {
                         var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4003 } };
@@ -1692,7 +1597,8 @@
                         mainGateway.Send(("Security/AddEqToZone_Actions 鍚姩"), jObject.ToString());
                     }
                 }
-                catch {
+                catch
+                {
                 }
 
                 var dateTime = DateTime.Now;
@@ -1724,17 +1630,8 @@
         /// 璁惧鍔犲叆闃插尯鐨勮繑鍥炴暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class AddDeviceToZoneResponseAllData
+        public class AddDeviceToZoneResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 璁惧鍔犲叆闃插尯鐨勮繑鍥炴暟鎹�
             /// </summary>
@@ -1891,8 +1788,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -1907,7 +1803,7 @@
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
                         var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         d = new AddNewModeResponseAllData { };
                         if (temp == null)
@@ -1932,17 +1828,16 @@
 
                     if (topic == gatewayID + "/" + "Security/AddNewMode_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
 
                         if (result == 0)
                         {
-                            security.addNewModeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AddNewModeResponseData>(jobject["Data"].ToString());
-                            if (security.addNewModeResponseData != null)
+                            var addNewModeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AddNewModeResponseData>(jobject["Data"].ToString());
+                            if (addNewModeResponseData != null)
                             {
-                                d = new AddNewModeResponseAllData { addNewModeResponseData = security.addNewModeResponseData }; 
+                                d = new AddNewModeResponseAllData { addNewModeResponseData = addNewModeResponseData };
                                 System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                             }
+                            }
                         }
                         else
                         {
@@ -1952,7 +1847,8 @@
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/AddNewMode_Actions 鍚姩" + System.DateTime.Now.ToString());
-                try{
+                try
+                {
                     if (addNewModeData != null)
                     {
                         var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4004 } };
@@ -1967,7 +1863,7 @@
                         mainGateway.Send(("Security/AddNewMode"), jObject.ToString());
                     }
                 }
-                catch {} 
+                catch { }
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -1977,9 +1873,9 @@
                         break;
                     }
                 }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime )
+                if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
                 {
-                    d = new AddNewModeResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; 
+                    d = new AddNewModeResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
                 }
 
                 mainGateway.Actions -= action;
@@ -1997,17 +1893,8 @@
         /// 鏂板缓鎴栦慨鏀瑰竷闃叉ā寮忚繑鍥炵殑鏁版嵁,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class AddNewModeResponseAllData
+        public class AddNewModeResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             ///鏂板缓鎴栦慨鏀瑰竷闃叉ā寮忚繑鍥炵殑鏁版嵁
             /// </summary>
@@ -2040,14 +1927,14 @@
             /// <summary>
             /// 甯冮槻妯″紡鍚嶇О 锛屾渶澶�32涓瓧绗︺��
             /// </summary>
-            public string ModeName; 
+            public string ModeName;
 
             /// <summary>
             /// 鍏佽澶辫兘銆�
             ///<para>0锛氫笉鍏佽澶辫兘銆�</para>
             ///<para>1锛氬厑璁稿け鑳�</para>
             /// </summary>
-            public int AllowDisable; 
+            public int AllowDisable;
         }
 
         /// <summary>
@@ -2071,7 +1958,7 @@
             /// 甯冮槻妯″紡鍚嶇О 锛屾渶澶�32涓瓧绗︺��
             ///<para>涓嶉渶瑕佷慨鏀瑰彲蹇界暐璇ュ瓧娈点��</para>
             /// </summary>
-            public string ModeName; 
+            public string ModeName;
 
             /// <summary>
             /// 鍏佽澶辫兘銆�
@@ -2111,8 +1998,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -2121,13 +2007,12 @@
                         else
                         {
                             d = new ZoneJoinModeResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                         }
+                        }
                     }
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         d = new ZoneJoinModeResponseAllData { };
                         if (temp == null)
@@ -2152,15 +2037,14 @@
 
                     if (topic == gatewayID + "/" + "Security/ZoneJoinMode_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         var modeId = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["ModeId"].ToString());
                         if (result == 0)
                         {
-                            security.zoneJoinModeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ZoneJoinModeResponseData>(jobject["Data"].ToString());
-                            if (security.zoneJoinModeResponseData != null)
+                            var zoneJoinModeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ZoneJoinModeResponseData>(jobject["Data"].ToString());
+                            if (zoneJoinModeResponseData != null)
                             {
-                                d = new ZoneJoinModeResponseAllData { zoneJoinModeResponseData = security.zoneJoinModeResponseData }; 
+                                d = new ZoneJoinModeResponseAllData { zoneJoinModeResponseData = zoneJoinModeResponseData };
                                 System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
                             }
                         }
@@ -2177,7 +2061,8 @@
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/ZoneJoinMode_Actions 鍚姩" + System.DateTime.Now.ToString());
-                try{
+                try
+                {
                     if (zoneJoinModeData != null)
                     {
                         var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4005 } };
@@ -2199,8 +2084,8 @@
                         mainGateway.Send(("Security/ZoneJoinMode"), jObject.ToString());
                     }
                 }
-                catch{}
-              
+                catch { }
+
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -2230,17 +2115,8 @@
         /// 闃插尯鍔犲叆甯冮槻妯″紡杩斿洖鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class ZoneJoinModeResponseAllData
+        public class ZoneJoinModeResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             ///闃插尯鍔犲叆甯冮槻妯″紡杩斿洖鐨勬暟鎹�
             /// </summary>
@@ -2288,7 +2164,7 @@
             ///<para>2锛氬け璐ワ紝闃插尯宸插湪妯″紡涓瓨鍦�</para>
             ///<para>3锛氬け璐ワ紝闃插尯涓�24灏忔椂锛堥潤闊筹級闃插尯绫诲瀷銆�</para>
             /// </summary>
-            public int Status=999;
+            public int Status = 999;
             /// <summary>
             /// 闃插尯ID
             /// </summary>
@@ -2357,8 +2233,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -2372,8 +2247,7 @@
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         d = new RemoveZoneFromModeResponseAllData { };
                         if (temp == null)
@@ -2398,16 +2272,15 @@
 
                     if (topic == gatewayID + "/" + "Security/RemoveZoneFromMode_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         var modeId = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["ModeId"].ToString());
 
                         if (result == 0)
                         {
-                            security.removeZoneFromModeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveZoneFromModeResponseData>(jobject["Data"].ToString());
-                            if (security.removeZoneFromModeResponseData != null)
+                            var removeZoneFromModeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveZoneFromModeResponseData>(jobject["Data"].ToString());
+                            if (removeZoneFromModeResponseData != null)
                             {
-                                d = new RemoveZoneFromModeResponseAllData { removeZoneFromModeResponseData = security.removeZoneFromModeResponseData };
+                                d = new RemoveZoneFromModeResponseAllData { removeZoneFromModeResponseData = removeZoneFromModeResponseData };
                                 System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
                             }
                         }
@@ -2423,7 +2296,8 @@
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/RemoveZoneFromMode_Actions 鍚姩" + System.DateTime.Now.ToString());
-                try{
+                try
+                {
                     if (removeZoneFromModeData != null)
                     {
                         var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4006 } };
@@ -2476,17 +2350,8 @@
         /// 浠庡竷闃叉ā寮忎腑绉婚櫎闃插尯杩斿洖鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class RemoveZoneFromModeResponseAllData
+        public class RemoveZoneFromModeResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             ///浠庡竷闃叉ā寮忎腑绉婚櫎闃插尯杩斿洖鐨勬暟鎹�
             /// </summary>
@@ -2589,8 +2454,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -2604,8 +2468,7 @@
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         d = new AddModeActonResponAllData { };
                         if (temp == null)
@@ -2631,23 +2494,22 @@
                     if (topic == gatewayID + "/" + "Security/AddModeActon_Respon")
                     {
                         dateTime = DateTime.Now;
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         var modeId = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["ModeId"].ToString());
                         var actionType = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["ActionType"].ToString());
 
                         if (result == 0)
                         {
-                            security.addModeActonResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<AddModeActonResponData>(jobject["Data"].ToString());
-                            if (security.addModeActonResponData != null)
+                            var addModeActonResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<AddModeActonResponData>(jobject["Data"].ToString());
+                            if (addModeActonResponData != null)
                             {
-                                d = new AddModeActonResponAllData { addModeActonResponData = security.addModeActonResponData }; 
+                                d = new AddModeActonResponAllData { addModeActonResponData = addModeActonResponData };
                                 System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                             }
                         }
                         else
                         {
-                            d = new AddModeActonResponAllData {};
+                            d = new AddModeActonResponAllData { };
                             var r = new AddModeActonResponData();
                             r.Result = result;
                             r.ModeId = modeId;
@@ -2658,53 +2520,54 @@
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/AddModeActon_Actions 鍚姩" + System.DateTime.Now.ToString());
-                try{
-                if (addModeActonData != null)
+                try
                 {
-                    var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4007 } };
-                    var acList = new JArray { };
-                    foreach (var act in addModeActonData.Actions)
+                    if (addModeActonData != null)
                     {
-                        if (act.Type == 0)
+                        var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4007 } };
+                        var acList = new JArray { };
+                        foreach (var act in addModeActonData.Actions)
                         {
-                            var taskList = new JArray { };
-                            foreach (var taskInfo in act.TaskList)
+                            if (act.Type == 0)
                             {
-                                var tInfo = new JObject{
+                                var taskList = new JArray { };
+                                foreach (var taskInfo in act.TaskList)
+                                {
+                                    var tInfo = new JObject{
                             { "TaskType", taskInfo.TaskType},
                             { "Data1", taskInfo.Data1},
                             { "Data2",taskInfo.Data2}
                             };
-                                taskList.Add(tInfo);
-                            }
+                                    taskList.Add(tInfo);
+                                }
 
-                            var a = new JObject {
+                                var a = new JObject {
                          { "Type",act.Type},
                          { "DeviceAddr", act.DeviceAddr} ,
                          { "Epoint",act.Epoint} ,
                          { "TaskList", taskList}
                             };
-                            acList.Add(a);
-                        }
-                        else if (act.Type == 1)
-                        {
-                            var b = new JObject {
+                                acList.Add(a);
+                            }
+                            else if (act.Type == 1)
+                            {
+                                var b = new JObject {
                          { "Type",act.Type},
                          { "ScenesId", act.ScenesId}
                          };
-                            acList.Add(b);
+                                acList.Add(b);
+                            }
                         }
-                    }
-                    var data = new JObject {
+                        var data = new JObject {
                          { "ModeId",addModeActonData.ModeId},
                          { "ActionType", addModeActonData.ActionType} ,
                          { "Actions", acList},
                          { "LoginToken", addModeActonData.LoginToken}
                          };
 
-                    jObject.Add("Data", data);
-                    mainGateway.Send(("Security/AddModeActon"), jObject.ToString());
-                }
+                        jObject.Add("Data", data);
+                        mainGateway.Send(("Security/AddModeActon"), jObject.ToString());
+                    }
                 }
                 catch { }
 
@@ -2727,17 +2590,8 @@
         /// 瀹夐槻妯″紡瑙﹀彂鍔ㄤ綔娣诲姞鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class AddModeActonResponAllData
+        public class AddModeActonResponAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 瀹夐槻妯″紡瑙﹀彂鍔ㄤ綔娣诲姞鐨勬暟鎹�
             /// </summary>
@@ -2758,7 +2612,7 @@
             /// 0锛氶粯璁�
             ///<para>1锛氬け璐ワ紝妯″紡涓嶅瓨鍦ㄣ��</para>
             /// </summary>
-            public int Result=999;
+            public int Result = 999;
 
             /// <summary>
             /// 瑕佷慨鏀圭殑甯冮槻妯″紡ID銆�
@@ -2791,7 +2645,7 @@
             ///<para>0锛氭垚鍔�</para>
             ///<para>1锛氬け璐ワ紝璁惧鎴栧満鏅笉瀛樺湪</para>
             /// </summary>
-            public int Status=999;
+            public int Status = 999;
 
             /// <summary>
             /// 鍔ㄤ綔绫诲瀷
@@ -2848,7 +2702,7 @@
             ///<para>2锛氬竷闃插け璐ユ寚绀哄姩浣�</para>
             ///<para>3锛氭挙闃叉垚鍔熸寚绀哄姩浣�</para>
             ///<para>4锛氭挙闃插け璐ユ寚绀哄姩浣�</para>
-              /// </summary>
+            /// </summary>
             public int ActionType;
 
             /// <summary>
@@ -2972,8 +2826,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -2987,10 +2840,9 @@
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
-                        d = new RemoveActionFromModeAllData {};
+                        d = new RemoveActionFromModeAllData { };
                         if (temp == null)
                         {
                             d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
@@ -3006,32 +2858,32 @@
                                 d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
                             }
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                             d.errorResponData = temp;
+                            d.errorResponData = temp;
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/RemoveActonFromMode_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         if (result == 0)
                         {
-                            security.removeActonFromModeResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveActionFromModeResponData>(jobject["Data"].ToString());
-                            if (security.removeActonFromModeResponData != null)
+                            var removeActonFromModeResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveActionFromModeResponData>(jobject["Data"].ToString());
+                            if (removeActonFromModeResponData != null)
                             {
-                                d = new RemoveActionFromModeAllData { removeActonFromModeResponData = security.removeActonFromModeResponData };
-                                 System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
+                                d = new RemoveActionFromModeAllData { removeActonFromModeResponData = removeActonFromModeResponData };
+                                System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                             }
                         }
                         else
                         {
-                            d = new RemoveActionFromModeAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; 
+                            d = new RemoveActionFromModeAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
                         }
                     }
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/RemoveActonFromMode_Actions 鍚姩" + System.DateTime.Now.ToString());
-                try{
+                try
+                {
                     if (removeActonFromModeData != null)
                     {
                         var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4008 } };
@@ -3066,7 +2918,8 @@
                         mainGateway.Send(("Security/RemoveActonFromMode"), jObject.ToString());
                     }
                 }
-                catch{
+                catch
+                {
 
                 }
 
@@ -3098,17 +2951,8 @@
         /// 灏嗗姩浣滀粠甯冮槻妯″紡涓Щ闄ょ殑鏁版嵁,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class RemoveActionFromModeAllData
+        public class RemoveActionFromModeAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 灏嗗姩浣滀粠甯冮槻妯″紡涓Щ闄ょ殑鍥炲鏁版嵁
             /// </summary>
@@ -3158,7 +3002,7 @@
             ///<para>0锛氭垚鍔�</para>
             ///<para>1锛氬け璐ワ紝璁惧鎴栧満鏅笉瀛樺湪</para>
             /// </summary>
-            public int Status=999;
+            public int Status = 999;
 
             /// <summary>
             /// 鍔ㄤ綔绫诲瀷
@@ -3205,7 +3049,7 @@
             ///<para>2锛氬竷闃插け璐ユ寚绀哄姩浣�</para>
             ///<para>3锛氭挙闃叉垚鍔熸寚绀哄姩浣�</para>
             ///<para>4锛氭挙闃插け璐ユ寚绀哄姩浣�</para>
-              /// </summary>
+            /// </summary>
             public int ActionType;
 
             /// <summary>
@@ -3270,8 +3114,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -3285,29 +3128,30 @@
 
                     if (topic == gatewayID + "/" + "Security/GetModeList_Repon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.getModeListData = Newtonsoft.Json.JsonConvert.DeserializeObject<GetModeListData>(jobject["Data"].ToString());
-                        if (security.getModeListData == null)
+                        var getModeListData = Newtonsoft.Json.JsonConvert.DeserializeObject<GetModeListData>(jobject["Data"].ToString());
+                        if (getModeListData == null)
                         {
                             d = new GetModeListAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
                         }
                         else
                         {
-                            d = new GetModeListAllData { getModeListData = security.getModeListData };
+                            d = new GetModeListAllData { getModeListData = getModeListData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                     }
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/GetModeList_Actions 鍚姩" + System.DateTime.Now.ToString());
-                try{
+                try
+                {
                     var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4009 }
                                 };
                     mainGateway.Send("Security/GetModeList", jObject.ToString());
 
-                }catch{ }
+                }
+                catch { }
 
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
@@ -3337,17 +3181,8 @@
         /// 鑾峰彇甯冮槻妯″紡鍒楄〃杩斿洖鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class GetModeListAllData
+        public class GetModeListAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鑾峰彇甯冮槻妯″紡鍒楄〃杩斿洖鐨勬暟鎹�
             /// </summary>
@@ -3389,14 +3224,14 @@
             /// 甯冮槻妯″紡鍚嶇О 锛屾渶澶�32涓瓧绗�
             /// </summary>
             public string ModeName;
- 
+
             /// <summary>
             /// 鍏佽澶辫兘銆�
             ///<para>0锛氫笉鍏佽澶辫兘銆�</para>
             ///<para>1锛氬厑璁稿け鑳�</para>
             /// </summary>
             public string AllowDisable;
- 
+
             /// <summary>
             /// 妯″紡褰撳墠甯冩挙闃茬姸鎬�
             ///<para>0锛氭挙闃�</para>
@@ -3417,7 +3252,7 @@
         {
             return await System.Threading.Tasks.Task.Run(async () =>
             {
-                GetModeInfoByIdResponAllData d =null;
+                GetModeInfoByIdResponAllData d = null;
                 var mainGateway = ZbGateway.MainGateWay;
                 if (mainGateway == null)
                 {
@@ -3432,8 +3267,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -3446,7 +3280,6 @@
                     }
                     if (topic == gatewayID + "/" + "Security/GetModeInfoById_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         if (result == 0)
                         {
@@ -3456,7 +3289,7 @@
                                 d = new GetModeInfoByIdResponAllData { getModeInfoByIdResponData = getModeInfoByIdResponData };
                             }
                             System.Console.WriteLine("宸叉敹鍒伴�氱煡杩斿洖");
-                         }
+                        }
                         else
                         {
                             d = new GetModeInfoByIdResponAllData { };
@@ -3469,7 +3302,8 @@
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/GetModeInfoById_Actions 鍚姩" + System.DateTime.Now.ToString());
-                try{
+                try
+                {
                     var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4010 }
@@ -3478,8 +3312,8 @@
                     jObject.Add("Data", data);
                     mainGateway.Send("Security/GetModeInfoById", jObject.ToString());
                 }
-                catch {}
-               
+                catch { }
+
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -3491,7 +3325,7 @@
                 }
                 if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
                 {
-                    d = new GetModeInfoByIdResponAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; 
+                    d = new GetModeInfoByIdResponAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
                 }
                 mainGateway.Actions -= action;
                 System.Console.WriteLine("Security/GetModeInfoById_Actions 閫�鍑�" + System.DateTime.Now.ToString());
@@ -3508,17 +3342,8 @@
         /// 閫氳繃甯冮槻妯″紡ID鏌ョ湅妯″紡淇℃伅鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class GetModeInfoByIdResponAllData
+        public class GetModeInfoByIdResponAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 閫氳繃甯冮槻妯″紡ID鏌ョ湅妯″紡淇℃伅杩斿洖鐨勬暟鎹�
             /// </summary>
@@ -3539,7 +3364,7 @@
             /// 0锛氶粯璁�
             ///<para>1锛氬け璐ワ紝甯冮槻妯″紡涓嶅瓨鍦�</para>
             /// </summary>
-            public int Result=999;
+            public int Result = 999;
 
             /// <summary>
             /// 甯冮槻妯″紡ID
@@ -3550,7 +3375,7 @@
             /// 甯冮槻妯″紡鍚嶇О 锛屾渶澶�32涓瓧绗�
             ///<para> (Result=0鏃跺�兼湁鏁�)</para>
             /// </summary>
-            public string ModeName; 
+            public string ModeName;
 
             /// <summary>
             /// 鍏佽澶辫兘銆�
@@ -3558,7 +3383,7 @@
             ///<para>1锛氬厑璁稿け鑳�</para>
             ///<para> (Result=0鏃跺�兼湁鏁�)</para>
             /// </summary>
-            public int AllowDisable = 100; 
+            public int AllowDisable = 100;
 
             /// <summary>
             /// 妯″紡褰撳墠甯冩挙闃茬姸鎬�
@@ -3603,8 +3428,8 @@
             ///<para> (Result=0鏃跺�兼湁鏁�)</para>
             /// </summary>
             public List<ActionsInfo> WithdrawFailActions = new List<ActionsInfo>();
- 
-         }
+
+        }
 
         /// <summary>
         /// 鍔犲叆鎴愬姛鐨勯槻鍖哄垪琛ㄧ殑鏁版嵁
@@ -3688,8 +3513,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -3703,7 +3527,6 @@
 
                     if (topic == gatewayID + "/" + "Security/GetModeUsing_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         if (result == 0)
                         {
@@ -3716,7 +3539,7 @@
                         }
                         else
                         {
-                            d = new GetModeUsingResponseAllData {};
+                            d = new GetModeUsingResponseAllData { };
                             var r = new GetModeUsingResponseData();
                             r.Result = result;
                             d.getModeUsingResponseData = r;
@@ -3726,15 +3549,16 @@
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/GetModeUsing_Actions 鍚姩" + System.DateTime.Now.ToString());
-                try{
+                try
+                {
                     var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4011}
                                 };
                     mainGateway.Send("Security/GetModeUsing", jObject.ToString());
                 }
-                catch {}
-              
+                catch { }
+
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -3746,7 +3570,7 @@
                 }
                 if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
                 {
-                    d = new GetModeUsingResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; 
+                    d = new GetModeUsingResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
                 }
                 mainGateway.Actions -= action;
                 System.Console.WriteLine("Security/GetModeUsing_Actions 閫�鍑�" + System.DateTime.Now.ToString());
@@ -3763,17 +3587,8 @@
         /// 鏌ョ湅褰撳墠姝e湪浣跨敤鐨勫竷闃叉ā寮忚繑鍥炵殑鏁版嵁,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class GetModeUsingResponseAllData
+        public class GetModeUsingResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鏌ョ湅褰撳墠姝e湪浣跨敤鐨勫竷闃叉ā寮忚繑鍥炵殑鏁版嵁
             /// </summary>
@@ -3796,7 +3611,7 @@
             /// 0锛氶粯璁�
             /// <para>1锛氱郴缁熷綋鍓嶆病鏈夎繘琛屽竷闃�</para> 
             /// </summary>
-            public int Result=999;
+            public int Result = 999;
 
             /// <summary>
             /// 鍚敤鐨勫竷闃叉ā寮廼d
@@ -3813,7 +3628,7 @@
             /// <para>3锛氬け鑳戒竴娆★紝绗竴娆¤婵�娲讳笉璀﹀憡涓嶈Е鍙戝姩浣溿��</para>
             /// </summary>
             public int Setting;
- 
+
         }
         #endregion
 
@@ -3828,7 +3643,7 @@
             {
                 EnableModeResponAllData d = null;
                 var mainGateway = ZbGateway.MainGateWay;
-                 if (mainGateway == null)
+                if (mainGateway == null)
                 {
                     d = new EnableModeResponAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
                     return d;
@@ -3841,8 +3656,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -3855,17 +3669,16 @@
                     }
                     if (topic == gatewayID + "/" + "Security/EnableMode_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         var modeId = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["ModeId"].ToString());
-                        security.enableModeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<EnableModeResponseData>(jobject["Data"].ToString());
-                        if (security.enableModeResponseData == null)
+                        var enableModeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<EnableModeResponseData>(jobject["Data"].ToString());
+                        if (enableModeResponseData == null)
                         {
                             d = new EnableModeResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
                         }
                         else
                         {
-                            d = new EnableModeResponAllData { enableModeResponseData = security.enableModeResponseData };
+                            d = new EnableModeResponAllData { enableModeResponseData = enableModeResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                     }
@@ -3873,7 +3686,8 @@
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/EnableMode_Actions 鍚姩" + System.DateTime.Now.ToString());
 
-                try{
+                try
+                {
                     if (enableModeData != null)
                     {
                         var jObject = new Newtonsoft.Json.Linq.JObject() {
@@ -3892,7 +3706,7 @@
                         mainGateway.Send("Security/EnableMode", jObject.ToString());
                     }
                 }
-                catch{}
+                catch { }
 
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
@@ -3922,17 +3736,8 @@
         /// 甯冮槻杩斿洖鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class EnableModeResponAllData
+        public class EnableModeResponAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 甯冮槻杩斿洖鐨勬暟鎹�
             /// </summary>
@@ -3957,7 +3762,7 @@
             ///<para>4锛氬竷闃插け璐ワ紝鏈夊叾浠栧竷闃叉ā寮忔鍦ㄥ惎鐢紙鍙兘浣跨敤涓�绉嶅竷闃叉ā寮忥紝闇�灏嗘鍦ㄥ惎鐢ㄧ殑甯冮槻妯″紡鎾ら槻鎵嶈兘甯冮槻鏂版ā寮忥級銆�</para>
             ///<para>5锛氬け璐ワ紝妯″紡灞炴�т笉鍏佽澶辫兘锛堝鏋滄柊寤哄竷闃叉ā寮忔椂锛孉llowDisable璁剧疆涓�0锛屽垯甯冮槻Setting鍊间笉鑳戒负2鎴�3锛屽惁鍒欏皢鎶ュ憡璇ラ敊璇級</para>
             /// </summary>
-            public int Result=999;
+            public int Result = 999;
 
             /// <summary>
             /// 鍚敤鐨勫竷闃叉ā寮廼d
@@ -3974,7 +3779,7 @@
             /// <para>3锛氬け鑳戒竴娆★紝绗竴娆¤婵�娲讳笉璀﹀憡涓嶈Е鍙戝姩浣溿��</para>
             /// </summary>
             public int Setting;
- 
+
             /// <summary>
             ///褰撳墠姝e湪鍚敤鐨勫竷闃叉ā寮廔D锛堝綋Result = 4鏃跺瓨鍦ㄣ�傦級
             /// </summary>
@@ -4037,7 +3842,7 @@
             ///<para>1锛氭鏌�</para>
             /// </summary>
             public int CheckIASStatus;
- 
+
             /// <summary>
             ///鐢ㄦ埛瀵嗙爜锛屾渶澶�32涓瓧绗�
             /// </summary>
@@ -4069,8 +3874,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -4084,15 +3888,14 @@
 
                     if (topic == gatewayID + "/" + "Security/WithdrawMode_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.withdrawModeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<WithdrawModeResponseData>(jobject["Data"].ToString());
-                        if (security.withdrawModeResponseData == null)
+                        var withdrawModeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<WithdrawModeResponseData>(jobject["Data"].ToString());
+                        if (withdrawModeResponseData == null)
                         {
                             d = new WithdrawModeResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
                         }
                         else
                         {
-                            d = new WithdrawModeResponseAllData { withdrawModeResponseData = security.withdrawModeResponseData };
+                            d = new WithdrawModeResponseAllData { withdrawModeResponseData = withdrawModeResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                     }
@@ -4100,7 +3903,8 @@
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/WithdrawMode_Actions 鍚姩" + System.DateTime.Now.ToString());
 
-                try{
+                try
+                {
                     var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4013}
@@ -4113,8 +3917,8 @@
                     mainGateway.Send("Security/WithdrawMode", jObject.ToString());
 
                 }
-                catch {}
-              
+                catch { }
+
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -4143,23 +3947,14 @@
         /// 鎾ら槻杩斿洖鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class WithdrawModeResponseAllData
+        public class WithdrawModeResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鎾ら槻杩斿洖鐨勬暟鎹�
             /// </summary>
             public WithdrawModeResponseData withdrawModeResponseData;
 
-        } 
+        }
 
         /// <summary>
         /// 鎾ら槻杩斿洖鐨勬暟鎹�
@@ -4177,7 +3972,7 @@
             ///<para>2锛氭挙闃插け璐ワ紝瀵嗙爜閿欒銆�</para>
             ///<para>3锛氭挙闃插け璐ワ紝妯″紡涓嶅彲鎾ら槻銆傦紙鏂板缓妯″紡鏃讹紝妯″紡灞炴�ц涓轰笉鍙挙闃插垯甯冮槻鍚庡皢涓嶈兘鎾ら槻锛�</para>
             /// </summary>
-            public int Result=999;
+            public int Result = 999;
 
             /// <summary>
             /// 琚挙闃茬殑妯″紡
@@ -4207,7 +4002,7 @@
             {
                 RemoveModeResponseAllData d = null;
                 var mainGateway = ZbGateway.MainGateWay;
-                 if (mainGateway == null)
+                if (mainGateway == null)
                 {
                     d = new RemoveModeResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
                     return d;
@@ -4220,8 +4015,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -4235,8 +4029,7 @@
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new RemoveModeResponseAllData { };
                         if (temp == null)
                         {
@@ -4253,29 +4046,29 @@
                                 d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
                             }
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                             d.errorResponData = temp;
+                            d.errorResponData = temp;
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/RemoveMode_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.removeModeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveModeResponseData>(jobject["Data"].ToString());
-                        if (security.removeModeResponseData == null)
+                        var removeModeResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveModeResponseData>(jobject["Data"].ToString());
+                        if (removeModeResponseData == null)
                         {
                             d = new RemoveModeResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
                         }
                         else
                         {
-                            d = new RemoveModeResponseAllData { removeModeResponseData = security.removeModeResponseData };
-                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
+                            d = new RemoveModeResponseAllData { removeModeResponseData = removeModeResponseData };
+                            System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                     }
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/RemoveMode_Actions 鍚姩" + System.DateTime.Now.ToString());
 
-                try{
+                try
+                {
                     var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4014}
@@ -4288,8 +4081,8 @@
                     mainGateway.Send("Security/RemoveMode", jObject.ToString());
 
                 }
-                catch {}
-              
+                catch { }
+
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -4318,17 +4111,8 @@
         /// 鍒犻櫎甯冮槻妯″紡杩斿洖鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class RemoveModeResponseAllData
+        public class RemoveModeResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鍒犻櫎甯冮槻妯″紡杩斿洖鐨勬暟鎹�
             /// </summary>
@@ -4352,7 +4136,7 @@
             ///<para>1锛氬け璐ワ紝涓嶅瓨鍦ㄨ甯冮槻妯″紡銆�</para>
             ///<para>2锛氬垹闄ゅけ璐ワ紝涓嶅厑璁稿垹闄ゃ�傦紙褰揗odeId涓�1鎴�2鏃讹紝绂诲甯冮槻鍜屽湪瀹跺竷闃叉ā寮忎笉鍏佽鍒犻櫎锛�</para>
             /// </summary>
-            public int Result=999;
+            public int Result = 999;
 
             /// <summary>
             /// 妯″紡id
@@ -4365,152 +4149,6 @@
             /// <summary>鈥�            /// 鐧婚檰鏍囪瘑锛屾渶澶�32涓瓧绗︺�傜敱app鑷姩鐢熸垚鐨勫敮涓�鏍囪瘑銆備笌绠$悊鍛樼櫥闄嗘寚浠ょ殑鈥淟oginToken鈥濅竴鑷达紝鍚﹀垯灏嗚繑鍥炩�淪ecurity/Error_Respon鈥濋敊璇�傗��            /// </summary>鈥�            public string LoginToken;鈥�
         }
         #endregion
-
-        //#region 鍒犻櫎闃插尯.
-        /////<summary >
-        ///// 鍒犻櫎闃插尯.(浠呯敤浜庝富缃戝叧鎺ュ彛锛�.
-        ///// </summary>
-        //public static async System.Threading.Tasks.Task<RemoveZoneResponseAllData> RemoveZoneAsync(int zoneId)
-        //{
-        //    return await System.Threading.Tasks.Task.Run(async () =>
-        //    {
-        //        var d = new RemoveZoneResponseAllData { };
-        //        if (ZbGateway.MainGateWay == null)
-        //        {
-        //            d.errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�";
-        //            return d;
-        //        }
-
-        //        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 = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-        //                var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
-
-        //                if (temp == null)
-        //                {
-        //                    d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
-        //                }
-        //                else
-        //                {
-        //                    d.errorResponData = temp;
-        //                    d.errorMessageBase = ErrorMess(temp.Error);
-        //                }
-        //            }
-
-        //            if (topic == gatewayID + "/" + "Security/RemoveZone_Respon")
-        //            {
-        //                var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = ZbGateway.MainGateWay.CurrentGateWayId };
-        //                var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
-        //                if (result == 0)
-        //                {
-        //                    security.removeZoneResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveZoneResponseData>(jobject["Data"].ToString());
-        //                    if (security.removeZoneResponseData != null)
-        //                    {
-        //                        d.removeZoneResponseData = security.removeZoneResponseData;
-        //                        System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-        //                    }
-        //                }
-        //                else
-        //                {
-        //                    var r = new RemoveZoneResponseData();
-        //                    r.Result = result;
-        //                    d.removeZoneResponseData = r;
-        //                    System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-        //                }
-        //            }
-        //        };
-        //        ZbGateway.MainGateWay.Actions += action;
-        //        System.Console.WriteLine("Security/RemoveZone_Actions 鍚姩" + System.DateTime.Now.ToString());
-
-        //        var jObject = new Newtonsoft.Json.Linq.JObject() {
-        //                            { "Cluster_ID", 0 },
-        //                            { "Command", 4015}
-        //                        };
-        //        var data = new JObject
-        //        {
-        //            { "ZoneId", zoneId}
-        //         };
-        //        jObject.Add("Data", data);
-        //        ZbGateway.MainGateWay?.Send("Security/RemoveZone", jObject.ToString());
-
-        //        var dateTime = DateTime.Now;
-        //        while ((DateTime.Now - dateTime).TotalMilliseconds < 1000)
-        //        {
-        //            await System.Threading.Tasks.Task.Delay(10);
-        //            if (d.removeZoneResponseData != null)
-        //            {
-        //                break;
-        //            }
-        //        }
-        //        if ((DateTime.Now - dateTime).TotalMilliseconds > 10000)
-        //        {
-        //            d.errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔";
-        //        }
-        //        ZbGateway.MainGateWay.Actions -= action;
-        //        System.Console.WriteLine("Security/RemoveZone_Actions 閫�鍑�" + System.DateTime.Now.ToString());
-
-        //        return d;
-        //    });
-        //}
-
-        ///// <summary>
-        ///// 鍒犻櫎闃插尯,缃戝叧鍙嶉淇℃伅
-        ///// </summary>
-        //public RemoveZoneResponseAllData removeZoneResponseAllData;
-        ///// <summary>
-        ///// 鍒犻櫎闃插尯,缃戝叧鍙嶉淇℃伅
-        ///// </summary>
-        //[System.Serializable]
-        //public class RemoveZoneResponseAllData
-        //{
-        //    /// <summary>
-        //    /// 閿欒淇℃伅
-        //    /// </summary>
-        //    public string errorMessageBase;
-        //    /// <summary>
-        //    /// 缃戝叧淇℃伅閿欒鍙嶉
-        //    /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-        //    /// </summary>
-        //    public ErrorResponData errorResponData;
-        //    /// <summary>
-        //    /// 鍒犻櫎闃插尯杩斿洖鐨勬暟鎹�
-        //    /// </summary>
-        //    public RemoveZoneResponseData removeZoneResponseData;
-
-        //}
-
-
-        ///// <summary>
-        ///// 鍒犻櫎闃插尯杩斿洖鐨勬暟鎹�
-        ///// </summary>
-        //public RemoveZoneResponseData removeZoneResponseData;
-        ///// <summary>
-        ///// 鍒犻櫎闃插尯杩斿洖鐨勬暟鎹�
-        ///// </summary>
-        //[System.Serializable]
-        //public class RemoveZoneResponseData
-        //{
-        //    /// <summary>
-        //    /// 0锛氬垹闄ゆ垚鍔熴��
-        //    ///<para>1锛氬け璐ワ紝闃插尯涓嶅瓨鍦ㄣ��</para>
-        //    /// </summary>
-        //    public int Result = 999;
-
-        //    /// <summary>
-        //    /// 闃插尯id
-        //    /// </summary>
-        //    public int ZoneId;
-        //    /// <summary>
-        //    /// 闃插尯鍚嶇О锛屽綋Result=0鏃跺瓨鍦ㄣ��
-        //    /// </summary>
-        //    public string ZoneName;
-        //}
-        //#endregion
 
         #region *14灏嗚澶囦粠闃插尯涓Щ闄�.
         /// <summary>
@@ -4536,8 +4174,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -4551,8 +4188,7 @@
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         d = new RemoveDeviceToZoneAllData { };
                         if (temp == null)
@@ -4570,20 +4206,19 @@
                                 d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
                             }
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                             d.errorResponData = temp;
+                            d.errorResponData = temp;
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/RemoveEqToZone_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         if (result == 0)
                         {
-                            security.removeDeviceToZoneResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveDeviceToZoneResponseData>(jobject["Data"].ToString());
-                            if (security.removeDeviceToZoneResponseData != null)
+                            var removeDeviceToZoneResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveDeviceToZoneResponseData>(jobject["Data"].ToString());
+                            if (removeDeviceToZoneResponseData != null)
                             {
-                                d = new RemoveDeviceToZoneAllData { removeDeviceToZoneResponseData = security.removeDeviceToZoneResponseData };
+                                d = new RemoveDeviceToZoneAllData { removeDeviceToZoneResponseData = removeDeviceToZoneResponseData };
                                 System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                             }
                         }
@@ -4600,7 +4235,8 @@
                 mainGateway.Actions += action;
                 System.Console.WriteLine($"Security/RemoveEqToZone_Actions鍚姩_{System.DateTime.Now.ToString()}");
 
-                try{
+                try
+                {
                     if (removeEqToZoneData != null)
                     {
                         var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4016 } };
@@ -4623,7 +4259,7 @@
                         mainGateway.Send(("Security/RemoveEqToZone_Actions 鍚姩"), jObject.ToString());
                     }
                 }
-                catch{} 
+                catch { }
 
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
@@ -4634,9 +4270,9 @@
                         break;
                     }
                 }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime )
+                if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
                 {
-                    d = new RemoveDeviceToZoneAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; 
+                    d = new RemoveDeviceToZoneAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
                 }
 
                 mainGateway.Actions -= action;
@@ -4653,17 +4289,8 @@
         /// 灏嗚澶囦粠闃插尯涓Щ闄ょ殑杩斿洖鏁版嵁,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class RemoveDeviceToZoneAllData
+        public class RemoveDeviceToZoneAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 灏嗚澶囦粠闃插尯涓Щ闄ょ殑杩斿洖鏁版嵁
             /// </summary>
@@ -4686,7 +4313,7 @@
             /// <para>1锛氭坊鍔犲け璐ャ�傦紙灞�閮ㄥ竷闃插垪琛╥d涓嶅瓨鍦級</para>
             /// </summary>
             public int Result = 999;
- 
+
             /// <summary>
             /// 瀹夐槻璁惧鍒楄〃(Result=0鏃跺瓨鍦�)
             /// </summary>
@@ -4776,7 +4403,7 @@
         //            if (topic == gatewayID + "/" + "Error_Respon")
         //            {
         //                var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-        //                var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+        //                var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
         //                if (temp == null)
         //                {
@@ -4948,8 +4575,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -4962,14 +4588,13 @@
                     }
                     if (topic == gatewayID + "/" + "Security/GetZoneDeviceListById_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         if (result == 0)
                         {
-                            security.getZoneDeviceListByIdResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<GetZoneDeviceListByIdResponData>(jobject["Data"].ToString());
-                            if (security.getZoneDeviceListByIdResponData != null)
+                            var getZoneDeviceListByIdResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<GetZoneDeviceListByIdResponData>(jobject["Data"].ToString());
+                            if (getZoneDeviceListByIdResponData != null)
                             {
-                                d = new GetZoneDeviceListByIdResponAllData { getZoneDeviceListByIdResponData = security.getZoneDeviceListByIdResponData };
+                                d = new GetZoneDeviceListByIdResponAllData { getZoneDeviceListByIdResponData = getZoneDeviceListByIdResponData };
                             }
                             System.Console.WriteLine($"UI宸叉敹鍒伴�氱煡鐨勪富棰榑{topic}");
                         }
@@ -4995,7 +4620,7 @@
                     jObject.Add("Data", data);
                     mainGateway.Send("Security/GetZoneDeviceListById", jObject.ToString());
                 }
-                catch { } 
+                catch { }
 
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
@@ -5008,7 +4633,7 @@
                 }
                 if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
                 {
-                    d = new GetZoneDeviceListByIdResponAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; 
+                    d = new GetZoneDeviceListByIdResponAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
                 }
                 mainGateway.Actions -= action;
                 System.Console.WriteLine("Security/GetZoneDeviceListById_Actions 閫�鍑�" + System.DateTime.Now.ToString());
@@ -5025,17 +4650,8 @@
         /// 閫氳繃甯冮槻妯″紡ID鏌ョ湅妯″紡淇℃伅鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class GetZoneDeviceListByIdResponAllData
+        public class GetZoneDeviceListByIdResponAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 閫氳繃甯冮槻妯″紡ID鏌ョ湅妯″紡淇℃伅杩斿洖鐨勬暟鎹�
             /// </summary>
@@ -5116,7 +4732,7 @@
             ///<para>0锛氫笉鏃佽矾</para>
             ///<para>1锛氭梺璺�</para>
             /// </summary>
-            public int IsBypass=999;
+            public int IsBypass = 999;
         }
 
         #endregion
@@ -5132,7 +4748,7 @@
         ///<para>4锛氭挙闃插け璐ユ寚绀哄姩浣�</para>
         ///<para>loginToken:鐧婚檰鏍囪瘑锛屾渶澶�32涓瓧绗︺�傜敱app鑷姩鐢熸垚鐨勫敮涓�鏍囪瘑銆備笌绠$悊鍛樼櫥闄嗘寚浠ょ殑鈥淟oginToken鈥濅竴鑷达紝鍚﹀垯灏嗚繑鍥炩�淪ecurity/Error_Respon鈥濋敊璇��</para>
         ///</summary> 
-        public static async System.Threading.Tasks.Task<ActionTestResponseAllData> ActionTestAsync(int modeId, int actionType,string loginToken)
+        public static async System.Threading.Tasks.Task<ActionTestResponseAllData> ActionTestAsync(int modeId, int actionType, string loginToken)
         {
             return await System.Threading.Tasks.Task.Run(async () =>
             {
@@ -5151,8 +4767,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -5161,13 +4776,13 @@
                         else
                         {
                             d = new ActionTestResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                        } 
+                        }
                     }
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
                         var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new ActionTestResponseAllData { };
                         if (temp == null)
                         {
@@ -5184,17 +4799,16 @@
                                 d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
                             }
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                             d.errorResponData = temp;
+                            d.errorResponData = temp;
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/ActionTest_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.actionTestResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ActionTestResponseData>(jobject["Data"].ToString());
-                        if (security.actionTestResponseData != null)
+                        var actionTestResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ActionTestResponseData>(jobject["Data"].ToString());
+                        if (actionTestResponseData != null)
                         {
-                            d = new ActionTestResponseAllData { actionTestResponseData = security.actionTestResponseData };
+                            d = new ActionTestResponseAllData { actionTestResponseData = actionTestResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
 
                         }
@@ -5208,7 +4822,8 @@
                 mainGateway.Actions += action;
                 System.Console.WriteLine("Security/ActionTest_Actions 鍚姩" + System.DateTime.Now.ToString());
 
-                try{
+                try
+                {
                     var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4027}
@@ -5222,8 +4837,8 @@
                     jObject.Add("Data", data);
                     mainGateway.Send("Security/ActionTest", jObject.ToString());
                 }
-                catch {}
-              
+                catch { }
+
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -5252,17 +4867,8 @@
         /// 鎵ц瀹夐槻妯″紡鍔ㄤ綔杩斿洖鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class ActionTestResponseAllData
+        public class ActionTestResponseAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鎵ц瀹夐槻妯″紡鍔ㄤ綔杩斿洖鐨勬暟鎹�
             /// </summary>
@@ -5401,7 +5007,7 @@
             /// 鎶ヨ鏃舵渶鍚庤婵�娲荤殑闃插尯
             /// </summary>
             public int ZoneId;
- 
+
             /// <summary>
             /// 鏄惁涓哄己杩瘑鐮佹挙闃茶Е鍙戦潤闊抽槻鍖�
             ///<para>0锛氫笉鏄�</para>
@@ -5429,8 +5035,8 @@
             /// <summary>
             /// 淇℃伅鎺ㄩ�佺洰鏍� 
             /// </summary>
-            public List<PushTargetInfo> PushTarget=new List<PushTargetInfo>();
- 
+            public List<PushTargetInfo> PushTarget = new List<PushTargetInfo>();
+
         }
         #endregion
 
@@ -5490,23 +5096,21 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
-                        { 
+                        {
                             d = new EqByPassAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                         }
+                        }
                         else
-                        { 
-                            d = new EqByPassAllData { errorMessageBase = ErrorMess(temp.Error) , errorResponData = temp };
-                         }
+                        {
+                            d = new EqByPassAllData { errorMessageBase = ErrorMess(temp.Error), errorResponData = temp };
+                        }
                     }
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new EqByPassAllData { };
                         if (temp == null)
                         {
@@ -5523,21 +5127,20 @@
                                 d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
                             }
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                             d.errorResponData = temp;
+                            d.errorResponData = temp;
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/EqByPass_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
                         var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
                         if (result == 0)
                         {
-                            security.eqByPassResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<EqByPassResponseData>(jobject["Data"].ToString());
-                            if (security.eqByPassResponseData != null)
+                            var eqByPassResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<EqByPassResponseData>(jobject["Data"].ToString());
+                            if (eqByPassResponseData != null)
                             {
-                                d = new EqByPassAllData { eqByPassResponseData = security.eqByPassResponseData };
-                                 System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
+                                d = new EqByPassAllData { eqByPassResponseData = eqByPassResponseData };
+                                System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                             }
                         }
                         else
@@ -5545,7 +5148,7 @@
                             var r = new EqByPassResponseData();
                             r.Result = result;
                             d = new EqByPassAllData { eqByPassResponseData = r };
- 
+
                             System.Console.WriteLine("宸叉敹鍒伴�氱煡杩斿洖");
                         }
                     }
@@ -5553,7 +5156,8 @@
                 mainGateway.Actions += action;
                 System.Console.WriteLine($"Security/EqByPass_Actions鍚姩_{System.DateTime.Now.ToString()}");
 
-                try{
+                try
+                {
                     if (eqByPassData != null)
                     {
                         var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4029 } };
@@ -5570,8 +5174,8 @@
                         mainGateway.Send(("Security/EqByPass"), jObject.ToString());
                     }
                 }
-                catch{}
- 
+                catch { }
+
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -5583,7 +5187,7 @@
                 }
                 if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
                 {
-                    d = new EqByPassAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; 
+                    d = new EqByPassAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
                 }
 
                 mainGateway.Actions -= action;
@@ -5600,17 +5204,8 @@
         /// 瀵归槻鍖哄畨闃茶澶囪繘琛屾梺璺垨鎾ら攢鏃佽矾鐨勮繑鍥炴暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class EqByPassAllData
+        public class EqByPassAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 瀵归槻鍖哄畨闃茶澶囪繘琛屾梺璺垨鎾ら攢鏃佽矾鐨勮繑鍥炴暟鎹�
             /// </summary>
@@ -5659,7 +5254,7 @@
             /// </summary>
             public int IsByPass;
 
-        } 
+        }
 
         /// <summary>
         /// 瀵归槻鍖哄畨闃茶澶囪繘琛屾梺璺垨鎾ら攢鏃佽矾鐨勬暟鎹�
@@ -5693,7 +5288,7 @@
             /// 0锛氫笉鏃佽矾
             ///<para>1锛氭梺璺澶�</para>
             /// </summary>
-            public int IsByPass=999;
+            public int IsByPass = 999;
             /// <summary>鈥�            /// 鐧婚檰鏍囪瘑锛屾渶澶�32涓瓧绗︺�傜敱app鑷姩鐢熸垚鐨勫敮涓�鏍囪瘑銆備笌绠$悊鍛樼櫥闄嗘寚浠ょ殑鈥淟oginToken鈥濅竴鑷达紝鍚﹀垯灏嗚繑鍥炩�淪ecurity/Error_Respon鈥濋敊璇�傗��            /// </summary>鈥�            public string LoginToken;
         }
         #endregion
@@ -5710,9 +5305,9 @@
 
                 var mainGateway = ZbGateway.MainGateWay;
                 if (mainGateway == null)
-                { 
+                {
                     d = new AddZoneActionAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                     return d;
+                    return d;
                 }
                 Action<string, string> action = (topic, message) =>
                 {
@@ -5721,8 +5316,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -5736,41 +5330,41 @@
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new AddZoneActionAllData { };
                         if (temp == null)
                         {
-                             d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" ;
+                            d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
                         }
                         else
                         {
                             if (temp.Error == 1)
                             {
-                                d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��" ;
+                                d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��";
                             }
                             else if (temp.Error == 2)
                             {
-                                d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��" ;
+                                d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
 
                             }
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                            d.errorResponData = temp ;
+                            d.errorResponData = temp;
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/AddZoneAction_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.addZoneActionResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AddZoneActionResponseData>(jobject["Data"].ToString());
-                        if (security.addZoneActionResponseData != null)
+                        var addZoneActionResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AddZoneActionResponseData>(jobject["Data"].ToString());
+                        if (addZoneActionResponseData != null)
                         {
-                            d = new AddZoneActionAllData { addZoneActionResponseData = security.addZoneActionResponseData };
-                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                        }else{
+                            d = new AddZoneActionAllData { addZoneActionResponseData = addZoneActionResponseData };
+                            System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
+                        }
+                        else
+                        {
                             d = new AddZoneActionAllData { errorMessageBase = "缃戝叧鍥炲鏁版嵁鏄┖" };
-                         }
-                     }
+                        }
+                    }
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine($"Security/AddZoneAction_Actions鍚姩_{System.DateTime.Now.ToString()}");
@@ -5822,7 +5416,8 @@
                         jObject.Add("Data", data);
                         mainGateway.Send(("Security/AddZoneAction"), jObject.ToString());
                     }
-                }catch{}
+                }
+                catch { }
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
                 {
@@ -5835,7 +5430,7 @@
                 if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
                 {
                     d = new AddZoneActionAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
- 
+
                 }
 
                 mainGateway.Actions -= action;
@@ -5852,17 +5447,8 @@
         /// 娣诲姞闃插尯鎶ヨ鐩爣鐨勮繑鍥炴暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class AddZoneActionAllData
+        public class AddZoneActionAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 娣诲姞闃插尯鎶ヨ鐩爣鐨勮繑鍥炴暟鎹�
             /// </summary>
@@ -5941,8 +5527,8 @@
             /// <summary>
             /// 璁惧鎴栧満鏅悕绉帮紝Status = 0鏃跺瓨鍦�
             /// </summary>
-            public string ESName; 
-         }
+            public string ESName;
+        }
 
         /// <summary>
         /// 娣诲姞闃插尯鎶ヨ鐩爣鐨勬暟鎹�
@@ -6001,8 +5587,8 @@
             /// <summary>
             /// 鍦烘櫙ID 銆傚綋Type=1鏃跺瓨鍦�
             /// </summary>
-            public int ScenesId; 
-         }
+            public int ScenesId;
+        }
 
         #endregion
 
@@ -6028,8 +5614,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -6043,18 +5628,17 @@
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new DelZoneActionResposeAllData { };
                         if (temp == null)
                         {
-                             d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
+                            d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
                         }
                         else
                         {
                             if (temp.Error == 1)
                             {
-                                d .errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��" ;
+                                d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��";
                             }
                             else if (temp.Error == 2)
                             {
@@ -6068,11 +5652,10 @@
 
                     if (topic == gatewayID + "/" + "Security/DelZoneAction_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.delZoneActionResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelZoneActionResponseData>(jobject["Data"].ToString());
-                        if (security.delZoneActionResponseData != null)
+                        var delZoneActionResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelZoneActionResponseData>(jobject["Data"].ToString());
+                        if (delZoneActionResponseData != null)
                         {
-                            d = new DelZoneActionResposeAllData { delZoneActionResponseData = security.delZoneActionResponseData };
+                            d = new DelZoneActionResposeAllData { delZoneActionResponseData = delZoneActionResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                         else
@@ -6119,7 +5702,8 @@
                         jObject.Add("Data", data);
                         mainGateway.Send(("Security/DelZoneAction"), jObject.ToString());
                     }
-                }catch{}
+                }
+                catch { }
 
                 var dateTime = DateTime.Now;
                 while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
@@ -6149,17 +5733,8 @@
         /// 鍒犻櫎闃插尯鎶ヨ鐩爣鐨勮繑鍥炴暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class DelZoneActionResposeAllData
+        public class DelZoneActionResposeAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鍒犻櫎闃插尯鎶ヨ鐩爣鐨勮繑鍥炴暟鎹�
             /// </summary>
@@ -6211,7 +5786,7 @@
             /// 鍔ㄤ綔绫诲瀷
             ///<para>0锛氳妭鐐硅澶囧姩浣�</para>
             ///<para>1锛氭墦寮�鍦烘櫙</para>
-             /// </summary>
+            /// </summary>
             public string Type;
             /// <summary>
             /// 璁惧mac鍦板潃 锛�
@@ -6223,13 +5798,13 @@
             /// 璁惧绔彛鍙�
             ///<para>璁惧绔彛鍙� 鍜宮ac鍦板潃鍏卞悓鏍囪瘑鍞竴鐨剒igbee璁惧 鏁板�艰寖鍥�0-255銆� 褰揟ype=0鏃跺瓨鍦ㄣ��</para>
             /// </summary>
-            public int Epoint; 
+            public int Epoint;
 
             /// <summary>
             /// 鍦烘櫙ID 銆傚綋Type=1鏃跺瓨鍦�
             /// </summary>
-            public int ScenesId;  
-         }
+            public int ScenesId;
+        }
 
         /// <summary>
         /// 鍒犻櫎闃插尯鎶ヨ鐩爣鐨勬暟鎹�
@@ -6277,13 +5852,13 @@
             /// 璁惧绔彛鍙�
             ///<para>璁惧绔彛鍙� 鍜宮ac鍦板潃鍏卞悓鏍囪瘑鍞竴鐨剒igbee璁惧 鏁板�艰寖鍥�0-255銆� 褰揟ype=0鏃跺瓨鍦ㄣ��</para>
             /// </summary>
-            public int Epoint; 
+            public int Epoint;
 
             /// <summary>
             /// 鍦烘櫙ID 銆傚綋Type=1鏃跺瓨鍦�
             /// </summary>
-            public int ScenesId; 
-         }
+            public int ScenesId;
+        }
         #endregion
 
         #region 29鏌ョ湅闃插尯鎶ヨ鐩爣;
@@ -6311,8 +5886,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -6326,11 +5900,10 @@
 
                     if (topic == gatewayID + "/" + "Security/CatZoneAction_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateWay.CurrentGateWayId };
-                        security.catZoneActionResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<CatZoneActionResponseData>(jobject["Data"].ToString());
-                        if (security.catZoneActionResponseData != null)
+                        var catZoneActionResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<CatZoneActionResponseData>(jobject["Data"].ToString());
+                        if (catZoneActionResponseData != null)
                         {
-                            d = new CatZoneActionResposeAllData { catZoneActionResponseData = security.catZoneActionResponseData };
+                            d = new CatZoneActionResposeAllData { catZoneActionResponseData = catZoneActionResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                         else
@@ -6341,17 +5914,18 @@
                 };
                 mainGateWay.Actions += action;
                 System.Console.WriteLine($"Security/CatZoneAction_Actions鍚姩_{System.DateTime.Now.ToString()}");
-                try{
-                var jObject = new Newtonsoft.Json.Linq.JObject() {
+                try
+                {
+                    var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4032 }
                                 };
-                var data = new JObject
+                    var data = new JObject
                     {
                         { "ActionType", actionType }
                 };
-                jObject.Add("Data", data);
-                mainGateWay.Send("Security/CatZoneAction", jObject.ToString());
+                    jObject.Add("Data", data);
+                    mainGateWay.Send("Security/CatZoneAction", jObject.ToString());
                 }
                 catch { }
 
@@ -6383,17 +5957,8 @@
         /// 鏌ョ湅闃插尯鎶ヨ鐩爣鐨勮繑鍥炴暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class CatZoneActionResposeAllData
+        public class CatZoneActionResposeAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鏌ョ湅闃插尯鎶ヨ鐩爣鐨勮繑鍥炴暟鎹�
             /// </summary>
@@ -6449,7 +6014,7 @@
             /// 鍔ㄤ綔绫诲瀷
             ///<para>0锛氳妭鐐硅澶囧姩浣�</para>
             ///<para>1锛氭墦寮�鍦烘櫙</para>
-             /// </summary>
+            /// </summary>
             public int Type;
             /// <summary>
             /// 璁惧mac鍦板潃 锛�
@@ -6478,7 +6043,7 @@
             /// 璁惧鎴栧満鏅悕绉�(褰揟ype=0 鎴朤ype=1鏃跺瓨鍦ㄣ��)
             /// </summary>
             public string ESName;
-          }
+        }
 
         #endregion
 
@@ -6504,8 +6069,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -6519,36 +6083,34 @@
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new SetCoercePhoneNumberAllResponseData { };
                         if (temp == null)
                         {
-                             d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" ;
+                            d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
                         }
                         else
                         {
                             if (temp.Error == 1)
                             {
-                                d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��" ;
+                                d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��";
                             }
                             else if (temp.Error == 2)
                             {
-                                d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��" ;
+                                d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
 
                             }
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                            d.errorResponData = temp ;
+                            d.errorResponData = temp;
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/AddZoneAction_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.setCoercePhoneNumberResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetCoercePhoneNumberResponseData>(jobject["Data"].ToString());
-                        if (security.setCoercePhoneNumberResponseData != null)
+                        var setCoercePhoneNumberResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetCoercePhoneNumberResponseData>(jobject["Data"].ToString());
+                        if (setCoercePhoneNumberResponseData != null)
                         {
-                            d = new SetCoercePhoneNumberAllResponseData { setCoercePhoneNumberResponseData = security.setCoercePhoneNumberResponseData };
+                            d = new SetCoercePhoneNumberAllResponseData { setCoercePhoneNumberResponseData = setCoercePhoneNumberResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                         else
@@ -6559,39 +6121,40 @@
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine($"Security/AddZoneAction(璁剧疆鑳佽揩鐘舵�佷笅鐨勭數璇濆彿鐮侊級_Actions鍚姩_{System.DateTime.Now.ToString()}");
-                try{
-                if (setCoercePhoneNumberData != null)
+                try
                 {
-                    var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4030 } };
-                    var actionsList = new JArray { };
-                    foreach (var act in setCoercePhoneNumberData.Actions)
-                    { 
-                        if (act.Type == 2)
+                    if (setCoercePhoneNumberData != null)
+                    {
+                        var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4030 } };
+                        var actionsList = new JArray { };
+                        foreach (var act in setCoercePhoneNumberData.Actions)
                         {
-                            var pushTargetList = new JArray { };
-                            foreach (var pushInfo in act.PushTarget)
+                            if (act.Type == 2)
                             {
-                                var pInfo = new JObject{
+                                var pushTargetList = new JArray { };
+                                foreach (var pushInfo in act.PushTarget)
+                                {
+                                    var pInfo = new JObject{
                             { "PushNumber", pushInfo.PushNumber}
                             };
-                                pushTargetList.Add(pInfo);
-                            }
-                            var c = new JObject {
+                                    pushTargetList.Add(pInfo);
+                                }
+                                var c = new JObject {
                          { "Type",act.Type},
                          { "PushTarget", pushTargetList}
                          };
-                            actionsList.Add(c);
+                                actionsList.Add(c);
+                            }
                         }
-                    }
-                    var data = new JObject
+                        var data = new JObject
                     {
                         { "ActionType", 253},
                         { "Actions", actionsList},
                         { "LoginToken", setCoercePhoneNumberData.LoginToken}
                     };
-                    jObject.Add("Data", data);
-                    mainGateway.Send(("Security/AddZoneAction"), jObject.ToString());
-                }
+                        jObject.Add("Data", data);
+                        mainGateway.Send(("Security/AddZoneAction"), jObject.ToString());
+                    }
                 }
                 catch { }
                 var dateTime = DateTime.Now;
@@ -6621,7 +6184,7 @@
         /// <param name="strPhone">鍦板尯鐮�-鑱旂郴鏂瑰紡</param>
         /// <param name="strNote">澶囨敞,鏈�澶�63byte</param>
         /// <returns></returns>
-        public static async System.Threading.Tasks.Task<SetCoercePhoneNumberResponseData> SetCoercePhoneNumberNoteAsync(string strPhone,string strNote)
+        public static async System.Threading.Tasks.Task<SetCoercePhoneNumberResponseData> SetCoercePhoneNumberNoteAsync(string strPhone, string strNote)
         {
             SetCoercePhoneNumberResponseData d = null;
             var mainGateway = ZbGateway.MainGateWay;
@@ -6681,17 +6244,8 @@
         /// 璁剧疆鑳佽揩鐘舵�佷笅琚�氱煡鐨勮仈绯诲彿鐮佺殑杩斿洖鏁版嵁,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class SetCoercePhoneNumberAllResponseData
+        public class SetCoercePhoneNumberAllResponseData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 璁剧疆鑳佽揩鐘舵�佷笅琚�氱煡鐨勮仈绯诲彿鐮佺殑杩斿洖鏁版嵁
             /// </summary>
@@ -6711,7 +6265,7 @@
             /// <summary>
             /// 杩斿洖缁撴灉
             /// <para>0锛氶粯璁�</para>
-             /// </summary>
+            /// </summary>
             public int Result = 999;
 
             /// <summary>
@@ -6730,13 +6284,13 @@
         /// </summary>
         [System.Serializable]
         public class PushTargetActionResponseObj
-        { 
+        {
             /// <summary>
             /// 鍔ㄤ綔绫诲瀷 
             ///<para>2锛氫俊鎭帹閫�</para>
             /// </summary>
             public string Type;
-             
+
             /// <summary>
             /// 淇℃伅鎺ㄩ�佺洰鏍�,褰揟ype=2鏃跺瓨鍦ㄣ��
             /// </summary>
@@ -6795,7 +6349,7 @@
             ///<para>2锛氫俊鎭帹閫�</para>
             /// </summary>
             public int Type;
-         
+
             /// <summary>
             /// 淇℃伅鎺ㄩ�佺洰鏍�,褰揟ype=2鏃跺瓨鍦ㄣ��
             /// </summary>
@@ -6825,8 +6379,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -6840,36 +6393,34 @@
 
                     if (topic == gatewayID + "/" + "Security/Error_Respon")
                     {
-                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
                         d = new DelCoercePhoneNumberAllResponseData { };
                         if (temp == null)
                         {
-                            d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" ;
+                            d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
                         }
                         else
                         {
                             if (temp.Error == 1)
                             {
-                                d .errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��" ;
+                                d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��";
                             }
                             else if (temp.Error == 2)
                             {
-                                d. errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��" ;
+                                d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
 
                             }
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                            d.errorResponData = temp ;
+                            d.errorResponData = temp;
                         }
                     }
 
                     if (topic == gatewayID + "/" + "Security/DelZoneAction_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.delCoercePhoneNumberResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelCoercePhoneNumberResponseData>(jobject["Data"].ToString());
-                        if (security.delCoercePhoneNumberResponseData != null)
+                        var delCoercePhoneNumberResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelCoercePhoneNumberResponseData>(jobject["Data"].ToString());
+                        if (delCoercePhoneNumberResponseData != null)
                         {
-                            d = new DelCoercePhoneNumberAllResponseData { delCoercePhoneNumberResponseData = security.delCoercePhoneNumberResponseData };
+                            d = new DelCoercePhoneNumberAllResponseData { delCoercePhoneNumberResponseData = delCoercePhoneNumberResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                         else
@@ -6880,39 +6431,40 @@
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine($"Security/AddZoneAction(鍒犻櫎鑳佽揩鐘舵�佷笅鐨勭數璇濆彿鐮侊級_Actions鍚姩_{System.DateTime.Now.ToString()}");
-                try{
-                if (delCoercePhoneNumberData != null)
+                try
                 {
-                    var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4031 } };
-                    var actionsList = new JArray { };
-                    foreach (var act in delCoercePhoneNumberData.Actions)
+                    if (delCoercePhoneNumberData != null)
                     {
-                        if (act.Type == 2)
+                        var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4031 } };
+                        var actionsList = new JArray { };
+                        foreach (var act in delCoercePhoneNumberData.Actions)
                         {
-                            var pushTargetList = new JArray { };
-                            foreach (var pushInfo in act.PushTarget)
+                            if (act.Type == 2)
                             {
-                                var pInfo = new JObject{
+                                var pushTargetList = new JArray { };
+                                foreach (var pushInfo in act.PushTarget)
+                                {
+                                    var pInfo = new JObject{
                             { "PushNumber", pushInfo.PushNumber}
                             };
-                                pushTargetList.Add(pInfo);
-                            }
-                            var c = new JObject {
+                                    pushTargetList.Add(pInfo);
+                                }
+                                var c = new JObject {
                          { "Type",act.Type},
                          { "PushTarget", pushTargetList}
                          };
-                            actionsList.Add(c);
+                                actionsList.Add(c);
+                            }
                         }
-                    }
-                    var data = new JObject
+                        var data = new JObject
                     {
                         { "ActionType", 253},
                         { "Actions", actionsList},
                         { "LoginToken", delCoercePhoneNumberData.LoginToken}
                     };
-                    jObject.Add("Data", data);
-                    mainGateway.Send(("Security/DelZoneAction"), jObject.ToString());
-                }
+                        jObject.Add("Data", data);
+                        mainGateway.Send(("Security/DelZoneAction"), jObject.ToString());
+                    }
                 }
                 catch { }
                 var dateTime = DateTime.Now;
@@ -6944,17 +6496,8 @@
         /// 鍒犻櫎鑳佽揩鐘舵�佷笅琚�氱煡鐨勮仈绯诲彿鐮佺殑杩斿洖鏁版嵁,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class DelCoercePhoneNumberAllResponseData
+        public class DelCoercePhoneNumberAllResponseData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鍒犻櫎鑳佽揩鐘舵�佷笅琚�氱煡鐨勮仈绯诲彿鐮佺殑杩斿洖鏁版嵁
             /// </summary>
@@ -6986,7 +6529,7 @@
             /// </summary>
             public List<PushTargetActionResponseObj> Actions = new List<PushTargetActionResponseObj>();
 
-        } 
+        }
         /// <summary>
         /// 鍒犻櫎鑳佽揩鐘舵�佷笅琚�氱煡鐨勮仈绯诲彿鐮佺殑鏁版嵁
         /// </summary>
@@ -7034,8 +6577,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -7049,11 +6591,10 @@
 
                     if (topic == gatewayID + "/" + "Security/CatZoneAction_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.checkCoercePhoneNumberResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<CheckCoercePhoneNumberResponseData>(jobject["Data"].ToString());
-                        if (security.checkCoercePhoneNumberResponseData != null)
+                        var checkCoercePhoneNumberResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<CheckCoercePhoneNumberResponseData>(jobject["Data"].ToString());
+                        if (checkCoercePhoneNumberResponseData != null)
                         {
-                            d = new CheckCoercePhoneNumberAllResponseData { checkCoercePhoneNumberResponseData = security.checkCoercePhoneNumberResponseData };
+                            d = new CheckCoercePhoneNumberAllResponseData { checkCoercePhoneNumberResponseData = checkCoercePhoneNumberResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                         else
@@ -7064,15 +6605,16 @@
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine($"Security/CatZoneAction(鏌ョ湅鑳佽揩鐘舵�佷笅鐨勭數璇濆彿鐮侊級_Actions鍚姩_{System.DateTime.Now.ToString()}");
-                try{ 
-                var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4032 } };
-                var actionsList = new JArray { };
-                var data = new JObject
+                try
+                {
+                    var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 4032 } };
+                    var actionsList = new JArray { };
+                    var data = new JObject
                     {
                         { "ActionType", actionType }
                 };
-                jObject.Add("Data", data);
-                mainGateway.Send(("Security/CatZoneAction"), jObject.ToString());
+                    jObject.Add("Data", data);
+                    mainGateway.Send(("Security/CatZoneAction"), jObject.ToString());
                 }
                 catch { }
 
@@ -7105,17 +6647,8 @@
         /// 鏌ョ湅鑳佽揩鐘舵�佷笅琚�氱煡鐨勮仈绯诲彿鐮佺殑杩斿洖鏁版嵁,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class CheckCoercePhoneNumberAllResponseData
+        public class CheckCoercePhoneNumberAllResponseData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鏌ョ湅鑳佽揩鐘舵�佷笅琚�氱煡鐨勮仈绯诲彿鐮佺殑杩斿洖鏁版嵁
             /// </summary>
@@ -7207,8 +6740,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -7222,11 +6754,10 @@
 
                     if (topic == gatewayID + "/" + "Security/DisablePushMessage_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.disablePushMessageResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DisablePushMessageResponseData>(jobject["Data"].ToString());
-                        if (security.disablePushMessageResponseData != null)
+                        var disablePushMessageResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DisablePushMessageResponseData>(jobject["Data"].ToString());
+                        if (disablePushMessageResponseData != null)
                         {
-                            d = new DisablePushMessageResposeAllData { disablePushMessageResponseData = security.disablePushMessageResponseData };
+                            d = new DisablePushMessageResposeAllData { disablePushMessageResponseData = disablePushMessageResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                         else
@@ -7237,18 +6768,19 @@
                 };
                 mainGateway.Actions += action;
                 System.Console.WriteLine($"Security/DisablePushMessage_Actions鍚姩_{System.DateTime.Now.ToString()}");
-                try{ 
-                var jObject = new Newtonsoft.Json.Linq.JObject() {
+                try
+                {
+                    var jObject = new Newtonsoft.Json.Linq.JObject() {
                                     { "Cluster_ID", 0 },
                                     { "Command", 4034 }
                                 };
-                var data = new JObject
+                    var data = new JObject
                     {
                         { "ZoneType", zoneType },
                      { "IsDisablePushMessage", isDisablePushMessage }
                 };
-                jObject.Add("Data", data);
-                mainGateway.Send(("Security/DisablePushMessage"), jObject.ToString());
+                    jObject.Add("Data", data);
+                    mainGateway.Send(("Security/DisablePushMessage"), jObject.ToString());
                 }
                 catch { }
 
@@ -7280,17 +6812,8 @@
         /// 鏌ョ湅闃插尯鎶ヨ鐩爣鐨勮繑鍥炴暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class DisablePushMessageResposeAllData
+        public class DisablePushMessageResposeAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 鏌ョ湅闃插尯鎶ヨ鐩爣鐨勮繑鍥炴暟鎹�
             /// </summary>
@@ -7354,8 +6877,7 @@
 
                     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<ErrorResponData>(jobject["Data"].ToString());
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString());
 
                         if (temp == null)
                         {
@@ -7369,11 +6891,10 @@
 
                     if (topic == gatewayID + "/" + "Security/AdminLogOut_Respon")
                     {
-                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
-                        security.adminLogOutResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AdminLogOutResponseData>(jobject["Data"].ToString());
-                        if (security.adminLogOutResponseData != null)
+                        var adminLogOutResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AdminLogOutResponseData>(jobject["Data"].ToString());
+                        if (adminLogOutResponseData != null)
                         {
-                            d = new AdminLogOutResposeAllData {adminLogOutResponseData  = security.adminLogOutResponseData };
+                            d = new AdminLogOutResposeAllData { adminLogOutResponseData = adminLogOutResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
                         }
                         else
@@ -7427,17 +6948,8 @@
         /// 閫�鍑虹鐞嗗憳鐧婚檰鐨勮繑鍥炴暟鎹�,缃戝叧鍙嶉淇℃伅
         /// </summary>
         [System.Serializable]
-        public class AdminLogOutResposeAllData
+        public class AdminLogOutResposeAllData : CommonDevice.ErrorResponCommon
         {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
             /// <summary>
             /// 閫�鍑虹鐞嗗憳鐧婚檰鐨勮繑鍥炴暟鎹�
             /// </summary>

--
Gitblit v1.8.0