From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 16 四月 2020 17:10:57 +0800
Subject: [PATCH] 请合并代码

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs |  298 ++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 202 insertions(+), 96 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
index 59676ec..3e23033 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
@@ -117,10 +117,20 @@
             {
                 return;
             }
+
+            List<string> listBackupGwId = new List<string>();
+            var fileData = Global.ReadFileByDirectory(DirNameResourse.LocalMemoryDirectory, DirNameResourse.BackupGatewayIdFile);
+            if (fileData != null)
+            {
+                //鏂板锛氳櫧鐒舵鐜囦綆锛屼絾鏄‘瀹炲彂鐢熶簡銆傚鏋滄湁缃戠粶鏃讹紝App閲嶆柊缁戝畾璁板綍鐨勭綉鍏冲け璐ョ殑璇�
+                //涓嶅簲璇ュ垹闄ゅ畠
+                listBackupGwId = JsonConvert.DeserializeObject<List<string>>(System.Text.Encoding.UTF8.GetString(fileData));
+            }
+
             List<string> listDelete = new List<string>();
             foreach (var gatewayId in this.dicGateway.Keys)
             {
-                if (result.ContainsKey(gatewayId) == false)
+                if (result.ContainsKey(gatewayId) == false && listBackupGwId.Contains(gatewayId) == false)
                 {
                     //鏈湴瀛樺湪浜戠涓嶅瓨鍦ㄧ殑缃戝叧锛屽垯鍒犻櫎
                     listDelete.Add(gatewayId);
@@ -132,8 +142,10 @@
                 List<CommonDevice> list = Common.LocalDevice.Current.GetDeviceByGatewayID(gatewayId);
                 foreach (var device in list)
                 {
-                    //鍒犻櫎璁惧锛屼笉鍒犻櫎鎴块棿淇℃伅
-                    Common.LocalDevice.Current.DeleteMemmoryDevice(device, false);
+                    //鍒犻櫎涓�鑸澶�
+                    Common.LocalDevice.Current.DeleteMemmoryDevice(device, true);
+                    //鍒犻櫎Ota璁惧
+                    Common.LocalDevice.Current.DeleteMemmoryOtaDevice(device.DeviceAddr);
                 }
                 //鍒犻櫎缃戝叧鏂囦欢
                 this.DeleteGatewayFile(gatewayId);
@@ -168,10 +180,18 @@
         /// <returns></returns>
         private ZbGateway GetGatewayFromFile(string file)
         {
-            byte[] filebyte = Global.ReadFileByHomeId(file);
-            string strvalue = System.Text.Encoding.UTF8.GetString(filebyte);
-            var gateway = JsonConvert.DeserializeObject<ZbGateway>(strvalue);
-            return gateway;
+            try
+            {
+                byte[] filebyte = Global.ReadFileByHomeId(file);
+                string strvalue = System.Text.Encoding.UTF8.GetString(filebyte);
+                var gateway = JsonConvert.DeserializeObject<ZbGateway>(strvalue);
+                return gateway;
+            }
+            catch (Exception ex)
+            {
+                HdlLogLogic.Current.WriteLog(ex);
+                return null;
+            }
         }
 
         #endregion
@@ -184,7 +204,13 @@
         /// <param name="zbGateway">缃戝叧</param>
         /// <param name="mode">鏄惁鏄剧ず閿欒</param>
         public async Task<bool> AddNewGateway(ZbGateway zbGateway, ShowErrorMode mode)
-        {
+        {
+            //璁剧疆缃戝叧鐨勭粡绾害
+            bool falge = this.SetGatewaySite(zbGateway, Common.Config.Instance.Home.Longitude, Common.Config.Instance.Home.Latitude, ShowErrorMode.NO);
+            if (falge == false)
+            {
+                return falge;
+            }
             //鎵ц娣诲姞缃戝叧鍒板唴瀛�
             var result = await this.DoAddGatewayToMemory(zbGateway, mode);
             //鍓嶇殑缃戝叧缁戝畾鍦ㄤ簡褰撳墠璐﹀彿涓嬬殑涓嶅悓浣忓畢閲岄潰
@@ -202,7 +228,7 @@
                 }
                 return false;
             }
-            if (result != 1)
+            if (result == -1)
             {
                 return false;
             }
@@ -405,6 +431,7 @@
         /// 閲嶆柊缁戝畾缃戝叧(1:姝e父  -1:寮傚父  0:褰撳墠鐨勭綉鍏崇粦瀹氬湪浜嗗綋鍓嶈处鍙蜂笅鐨勪笉鍚屼綇瀹呴噷闈�)
         /// </summary>
         /// <param name="zbGateway">缃戝叧</param>
+        /// <param name="btnMsg">娑堟伅鎺т欢</param>
         public async Task<int> ReBindNewGateway(ZbGateway zbGateway, NormalViewControl btnMsg = null)
         {
             if (zbGateway == null)
@@ -412,6 +439,12 @@
                 //閿欒:缃戝叧瀵硅薄涓㈠け
                 string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg);
                 this.ShowTipMsg(msg);
+                return -1;
+            }
+            //璁剧疆缃戝叧鐨勭粡绾害
+            bool falge = this.SetGatewaySite(zbGateway, Common.Config.Instance.Home.Longitude, Common.Config.Instance.Home.Latitude, ShowErrorMode.YES);
+            if (falge == false)
+            {
                 return -1;
             }
 
@@ -451,7 +484,7 @@
                     btnMsg.TextID = R.MyInternationalizationString.uGatewayDataIsChangingPleaseWhait;
                 });
             }
-            await System.Threading.Tasks.Task.Delay(8000);
+            await Task.Delay(8000);
 
             //鑾峰彇缃戝叧鐨勪俊鎭�
             var result = await zbGateway.GetZbGwInfoAsync();
@@ -463,15 +496,7 @@
                 return -1;
             }
 
-            if (result == null)
-            {
-                //鑾峰彇缃戝叧淇℃伅澶辫触
-                string msg = Language.StringByID(R.MyInternationalizationString.uGetGatewayInfoFail);
-                this.ShowTipMsg(msg);
-                return -1;
-            }
-
-            if (result.getGwData == null)
+            if (result == null || result.getGwData == null)
             {
                 //鑾峰彇缃戝叧淇℃伅澶辫触
                 string msg = Language.StringByID(R.MyInternationalizationString.uGetGatewayInfoFail);
@@ -639,10 +664,10 @@
             }
 
             //鑾峰彇鍏ㄩ儴璁惧
-            bool result = LocalDevice.Current.SetDeviceToMemmoryByGateway(realWay);
+            int result = LocalDevice.Current.SetDeviceToMemmoryByGateway(realWay);
             //鍏抽棴杩涘害鏉�
             ProgressBar.Close();
-            if (result == false)
+            if (result == -1)
             {
                 return false;
             }
@@ -691,15 +716,15 @@
                 bool result = await this.SetHomeIdToGateway(realWay, string.Empty);
                 if (result == false)
                 {
-                    //缃戝叧瑙g粦澶辫触
+                    //缃戝叧瑙g粦澶辫触  涓嶇悊瀹�,鍥犱负缃戝叧鍙互鎸夋寜閿己鍒舵悳绱㈠緱鍒�
                     string msg = Language.StringByID(R.MyInternationalizationString.uGatewayUnBindFail);
-                    this.ShowErrorMsg(msg);
-                    return false;
+                    //this.ShowErrorMsg(msg);
+                    //return false;
                 }
             }
 
             //鍒犻櫎浜戠鐨勭綉鍏�
-            await Phone.UserCenter.HdlGatewayLogic.Current.DeleteDataBaseGateway(zbGatewayID);
+            await this.DeleteDataBaseGateway(zbGatewayID);
 
             //鍒犻櫎缃戝叧鏂囦欢
             this.DeleteGatewayFile(zbGatewayID);
@@ -707,7 +732,7 @@
             //绉婚櫎
             ZbGateway.GateWayList.RemoveAll((obj) => this.GetGatewayId(obj) == zbGatewayID);
             //鏂紑mqtt杩炴帴
-            realWay.DisConnect("GD");
+            realWay.DisConnectLocalMqttClient("GD");
 
             return true;
         }
@@ -740,18 +765,21 @@
             {
                 //鍒犻櫎璁惧鏂囦欢
                 Common.LocalDevice.Current.DeleteMemmoryDevice(device, true);
+                //鍒犻櫎Ota璁惧
+                Common.LocalDevice.Current.DeleteMemmoryOtaDevice(device.DeviceAddr);
             }
             //濡傛灉鏄富缃戝叧
             if (this.IsMainGateway(zbGatewayID) == 1)
             {
-                foreach (var room in Shared.Common.Room.Lists)
+                var listAllRoom = UserCenter.HdlRoomLogic.Current.GetAllListRooms();
+                foreach (var room in listAllRoom)
                 {
                     //鍒犻櫎鍦烘櫙鏂囦欢
-                    foreach (var scene in room.SceneUIFilePathList)
+                    foreach (var sceneId in room.ListSceneId)
                     {
-                        if (Global.IsExistsByHomeId(scene) == true)
+                        if (Global.IsExistsByHomeId($"Scene_{sceneId}.json") == true)
                         {
-                            Global.DeleteFilebyHomeId(scene);
+                            Global.DeleteFilebyHomeId($"Scene_{sceneId}.json");
                         }
                     }
                 }
@@ -1372,10 +1400,10 @@
             if (mode == GetNameMode.SpecialGateway && localWay.getGwInfo != null)
             {
                 string keyName = Common.LocalDevice.deviceModelIdName + this.GetGwInfoAttribute(localWay, "LinuxImageType").ToString();
-                if (Common.LocalDevice.Current.dicDeviceDefultNameID.ContainsKey(keyName) == true)
+                if (LocalDevice.Current.dicDeviceAllNameID.ContainsKey(keyName) == true)
                 {
-                    //娌℃湁鍚嶇О鏃讹紝鍒欎娇鐢≧鏂囦欢閲岄潰璁剧疆鐨勪笢瑗�
-                    return Language.StringByID(Common.LocalDevice.Current.dicDeviceDefultNameID[keyName]);
+                    //娌℃湁鍚嶇О鏃讹紝鍒欎娇鐢≧鏂囦欢閲岄潰璁剧疆鐨勯粯璁よ澶囧悕绉�
+                    return Language.StringByID(LocalDevice.Current.dicDeviceAllNameID[keyName] + 20000);
                 }
             }
 
@@ -1414,10 +1442,10 @@
                 if (zbGateway.getGwInfo != null && zbGateway.getGwInfo.LinuxImageType != 0)
                 {
                     string keyName = Common.LocalDevice.deviceModelIdName + zbGateway.getGwInfo.LinuxImageType;
-                    if (Common.LocalDevice.Current.dicDeviceDefultNameID.ContainsKey(keyName) == true)
+                    if (Common.LocalDevice.Current.dicDeviceAllNameID.ContainsKey(keyName) == true)
                     {
                         //浣跨敤R鏂囦欢閲岄潰璁剧疆鐨勪笢瑗�
-                        button.TextID = LocalDevice.Current.dicDeviceDefultNameID[keyName];
+                        button.TextID = LocalDevice.Current.dicDeviceAllNameID[keyName];
                     }
                 }
                 else
@@ -1432,10 +1460,10 @@
                             HdlThreadLogic.Current.RunMain(() =>
                             {
                                 string keyName = Common.LocalDevice.deviceModelIdName + zbGateway.getGwInfo.LinuxImageType;
-                                if (Common.LocalDevice.Current.dicDeviceDefultNameID.ContainsKey(keyName) == true)
+                                if (Common.LocalDevice.Current.dicDeviceAllNameID.ContainsKey(keyName) == true)
                                 {
                                     //浣跨敤R鏂囦欢閲岄潰璁剧疆鐨勪笢瑗�
-                                    button.TextID = LocalDevice.Current.dicDeviceDefultNameID[keyName];
+                                    button.TextID = LocalDevice.Current.dicDeviceAllNameID[keyName];
                                 }
                             });
                         }
@@ -1445,10 +1473,10 @@
             else
             {
                 string keyName = Common.LocalDevice.deviceModelIdName + this.dicGateway[gwId].getGwInfo.LinuxImageType;
-                if (Common.LocalDevice.Current.dicDeviceDefultNameID.ContainsKey(keyName) == true)
+                if (Common.LocalDevice.Current.dicDeviceAllNameID.ContainsKey(keyName) == true)
                 {
                     //浣跨敤R鏂囦欢閲岄潰璁剧疆鐨勪笢瑗�
-                    button.TextID = Common.LocalDevice.Current.dicDeviceDefultNameID[keyName];
+                    button.TextID = Common.LocalDevice.Current.dicDeviceAllNameID[keyName];
                 }
             }
         }
@@ -1541,6 +1569,54 @@
 
         #endregion
 
+        #region 鈻� 缃戝叧鎴块棿鐩稿叧_______________________
+
+        /// <summary>
+        /// 鑾峰彇缃戝叧鎵�鍦ㄧ殑鎴块棿
+        /// </summary>
+        /// <param name="zbGateway">缃戝叧瀵硅薄</param>
+        /// <returns></returns>
+        public Room GetRoomByGateway(ZbGateway zbGateway)
+        {
+            var gatewayId = this.GetGatewayId(zbGateway);
+            return this.GetRoomByGateway(gatewayId);
+        }
+
+        /// <summary>
+        /// 鑾峰彇缃戝叧鎵�鍦ㄧ殑鎴块棿
+        /// </summary>
+        /// <param name="gatewayId">缃戝叧ID</param>
+        /// <returns></returns>
+        public Room GetRoomByGateway(string gatewayId)
+        {
+            var localGateway = this.GetLocalGateway(gatewayId);
+            if (localGateway == null)
+            {
+                return null;
+            }
+            return HdlRoomLogic.Current.GetRoomById(localGateway.RoomId);
+        }
+
+        /// <summary>
+        /// 鍙樻洿缃戝叧鎴块棿
+        /// </summary>
+        /// <param name="zbGateway">缃戝叧瀵硅薄</param>
+        /// <param name="roomId">鎴块棿ID</param>
+        public void ChangedGatewayRoom(ZbGateway zbGateway, string roomId)
+        {
+            var gatewayId = this.GetGatewayId(zbGateway);
+            var localGateway = this.GetLocalGateway(gatewayId);
+            if (localGateway != null)
+            {
+                localGateway.RoomId = roomId;
+                localGateway.ReSave();
+                //娣诲姞澶囦唤
+                HdlAutoBackupLogic.AddOrEditorFile(localGateway.FilePath);
+            }
+        }
+
+        #endregion
+
         #region 鈻� 娓呯┖鐪熷疄缃戝叧鍒楄〃___________________
 
         /// <summary>
@@ -1556,7 +1632,7 @@
             //鏈�鍚庡啀鏂紑mqtt杩炴帴
             for (int i = 0; i < list.Count; i++)
             {
-                list[i].DisConnect("G");
+                list[i].DisConnectLocalMqttClient("G");
             }
             list.Clear();
         }
@@ -1609,8 +1685,11 @@
                 this.GetGwInfoAttribute(localWay, "ZbImageType").ToString(),
                 Convert.ToInt32(this.GetGwInfoAttribute(localWay, "ZbFWVersion")));
 
+            var list = new List<FirmwareVersionInfo>();
+            list.Add(gatewayFirmware);
+            list.Add(coordinatorFirmware);
+
             //杩欎釜缃戝叧闇�瑕佹湁铏氭嫙椹卞姩杩欎釜涓滆タ鎵嶈
-            FirmwareVersionInfo virtualFirmware = null;
             string linImage = this.GetGwInfoAttribute(localWay, "LinuxImageType").ToString();
             if (linImage != "6")
             {
@@ -1618,28 +1697,32 @@
                 var listvVode = await HdlGatewayLogic.Current.GetListVDDriveCode(localWay);
                 if (listvVode != null && listvVode.Count > 0)
                 {
-                    //娣诲姞铏氭嫙椹卞姩鐨勫崌绾у浐浠�(鎴愪笉鎴愬姛閮芥棤鎵�璋�)
-                    flage = await HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.VirtualDevice,
-                        listvVode[0].DriveHwVersion.ToString(),
-                        listvVode[0].DriveImageType.ToString());
-
-                    //铏氭嫙椹卞姩
-                    virtualFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.VirtualDevice,
-                        listvVode[0].DriveHwVersion.ToString(),
-                        listvVode[0].DriveImageType.ToString(),
-                        listvVode[0].DriveFwVersion);
-
-                    if (virtualFirmware != null)
+                    foreach (var data in listvVode)
                     {
-                        virtualFirmware.VirtualCode = listvVode[0].DriveCode;
+                        //娣诲姞铏氭嫙椹卞姩鐨勫崌绾у浐浠�(鎴愪笉鎴愬姛閮芥棤鎵�璋�)
+                        flage = await HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.VirtualDevice,
+                            data.DriveHwVersion.ToString(),
+                            data.DriveImageType.ToString());
+
+                        //铏氭嫙椹卞姩
+                        var virtualFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.VirtualDevice,
+                            data.DriveHwVersion.ToString(),
+                            data.DriveImageType.ToString(),
+                            data.DriveFwVersion);
+
+                        if (virtualFirmware != null)
+                        {
+                            virtualFirmware.VirtualCode = data.DriveCode;
+                            list.Add(virtualFirmware);
+                        }
                     }
                 }
             }
-            var list = new List<FirmwareVersionInfo>();
-            list.Add(gatewayFirmware);
-            list.Add(coordinatorFirmware);
-            list.Add(virtualFirmware);
-
+            if (list.Count == 2)
+            {
+                //铏氭嫙椹卞姩濡傛灉娌℃湁鏂扮増鏈殑璇濓紝鍥哄畾娣诲姞涓�涓┖鐨�
+                list.Add(null);
+            }
             return list;
         }
 
@@ -1830,7 +1913,15 @@
                 return;
             }
             var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 85 } };
-            realWay.Send("GwLinuxLocate_Respon", jObject.ToString());
+            if (this.IsGatewayExist(zbGateway) == true)
+            {
+                realWay.Send("GwLinuxLocate_Respon", jObject.ToString());
+            }
+            else
+            {
+                //濡傛灉杩欎釜缃戝叧杩樻病鏈夌粦瀹氱殑璇濓紝鍒欏己鍒朵娇鐢ㄦ湰鍦拌繛鎺�
+                realWay.SendLocation("GwLinuxLocate_Respon", System.Text.Encoding.UTF8.GetBytes(jObject.ToString()));
+            }
         }
 
         #endregion
@@ -2119,7 +2210,7 @@
             bool canBreak = false;
             HdlThreadLogic.Current.RunThread(async () =>
             {
-                List<string> list = new List<string>() { "NotSetAgain" };
+                List<string> list = new List<string>() { "NotSetAgain", "NotCheck" };
 
                 //璁剧疆璁块棶鎺ュ彛鐨勫弬鏁�
                 var pra = new GetGatewayPra();
@@ -2170,15 +2261,19 @@
         /// <param name="gateway">缃戝叧瀵硅薄</param>
         /// <param name="Longitude">缁忓害</param>
         /// <param name="Latitude">缁村害</param>
+        /// <param name="mode">鏄剧ず閿欒</param>
         /// <returns></returns>
-        public bool SetGatewaySite(ZbGateway gateway, double Longitude, double Latitude)
+        public bool SetGatewaySite(ZbGateway gateway, double Longitude, double Latitude, ShowErrorMode mode)
         {
             ZbGateway realWay = null;
             if (this.GetRealGateway(ref realWay, gateway) == false)
             {
-                //閿欒:缃戝叧瀵硅薄涓㈠け
-                string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg);
-                this.ShowTipMsg(msg);
+                if (mode == ShowErrorMode.YES)
+                {
+                    //閿欒:缃戝叧瀵硅薄涓㈠け
+                    string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg);
+                    this.ShowTipMsg(msg);
+                }
                 return false;
             }
 
@@ -2203,7 +2298,15 @@
             var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 2013 } };
             var data = new Newtonsoft.Json.Linq.JObject { { "Longitude", intLongitude }, { "Latitude", intLatitude } };
             jObject.Add("Data", data);
-            realWay.Send("Logic/SetSite", jObject.ToString());
+            if (this.IsGatewayExist(gateway) == true)
+            {
+                realWay.Send("Logic/SetSite", jObject.ToString());
+            }
+            else
+            {
+                //濡傛灉杩欎釜缃戝叧杩樻病鏈夌粦瀹氱殑璇濓紝鍒欏己鍒朵娇鐢ㄦ湰鍦拌繛鎺�
+                realWay.SendLocation("Logic/SetSite", System.Text.Encoding.UTF8.GetBytes(jObject.ToString()));
+            }
 
             int TimeOut = 0;
             while (result == -1 && TimeOut < 30)
@@ -2215,13 +2318,16 @@
             realWay.Actions -= action;
             if (result != 0)
             {
-                //璁剧疆缃戝叧缁忕含搴﹀け璐�
-                string msg = Language.StringByID(R.MyInternationalizationString.uSetGatewaySiteFail);
-                if (result == -1)
+                if (mode == ShowErrorMode.YES)
                 {
-                    msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, null, "鍥炲瓒呮椂");
+                    //璁剧疆缃戝叧缁忕含搴﹀け璐�
+                    string msg = Language.StringByID(R.MyInternationalizationString.uSetGatewaySiteFail);
+                    if (result == -1)
+                    {
+                        msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, null, "鍥炲瓒呮椂");
+                    }
+                    this.ShowTipMsg(msg);
                 }
-                this.ShowTipMsg(msg);
                 return false;
             }
 
@@ -2243,7 +2349,7 @@
             //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken
             Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
 
-            List<string> listNotShowError = new List<string>() { "NoExist", "NoBind", "NoRecord" };
+            List<string> listNotShowError = new List<string>() { "NoExist", "NoBind", "NoRecord", "NotSetAgain" };
 
             bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/ReleaseGatewayToHome", true, Pra, listNotShowError);
             if (result == false)
@@ -2345,27 +2451,27 @@
         /// <returns></returns>
         public async Task<bool> UpLoadDeviceBackupDataToGateway(CommonDevice device, GatewayBackupEnum backupEnum, object upLaodData)
         {
-            //ZbGateway realWay = null;
-            //if (HdlGatewayLogic.Current.GetRealGateway(ref realWay, device.CurrentGateWayId) == false)
-            //{
-            //    //娌℃湁鎵惧埌鐪熷疄鐗╃悊缃戝叧
-            //    return false;
-            //}
-            //string fileName = device.FilePath + ((int)backupEnum).ToString().PadLeft(5, '0');
-            ////鍒涘缓鏂囦欢瀵硅薄
-            //var result = await realWay.CreateFileAsync(fileName);
-            //if (result == null || result.Result != 0)
-            //{
-            //    return false;
-            //}
-            ////鍙戦�佹暟鎹祦
-            //var data = Newtonsoft.Json.JsonConvert.SerializeObject(upLaodData);
-            //var byteData = System.Text.Encoding.UTF8.GetBytes(data);
-            //var result2 = await realWay.SendFileAsync(byteData);
-            //if (result2 == null || result2.Result != 0)
-            //{
-            //    return false;
-            //}
+            ZbGateway realWay = null;
+            if (HdlGatewayLogic.Current.GetRealGateway(ref realWay, device.CurrentGateWayId) == false)
+            {
+                //娌℃湁鎵惧埌鐪熷疄鐗╃悊缃戝叧
+                return false;
+            }
+            string fileName = device.FilePath + ((int)backupEnum).ToString().PadLeft(5, '0');
+            //鍒涘缓鏂囦欢瀵硅薄
+            var result = await realWay.CreateFileAsync(fileName);
+            if (result == null || result.Result != 0)
+            {
+                return false;
+            }
+            //鍙戦�佹暟鎹祦
+            var data = Newtonsoft.Json.JsonConvert.SerializeObject(upLaodData);
+            var byteData = System.Text.Encoding.UTF8.GetBytes(data);
+            var result2 = await realWay.SendFileAsync(byteData);
+            if (result2 == null || result2.Result != 0)
+            {
+                return false;
+            }
             return true;
         }
 
@@ -2512,7 +2618,7 @@
             else if (backType == GatewayBackupEnum.APir鐏厜閰嶇疆)
             {
                 var recoverData = Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone.ConfigureParamates>(System.Text.Encoding.UTF8.GetString(byteData));
-                result = await HdlDevicePirSensorLogic.Current.SetPirSensorLightSettion((IASZone)device, recoverData);
+                result = await HdlDevicePirSensorLogic.Current.SetPirSensorSettion((IASZone)device, recoverData);
             }
             else if (backType == GatewayBackupEnum.A骞叉帴鐐归鑹茶皟鑺�)
             {
@@ -2534,10 +2640,10 @@
                 int level = Convert.ToInt32(recoverData["level"]);
                 result = await HdlDevicePanelLogic.Current.SetDeviceEnergyConservationMode((Panel)device, modeEnable, modeTime, level);
             }
-            else if (backType == GatewayBackupEnum.A骞叉帴鐐圭鏈夊睘鎬�)
+            else if (backType == GatewayBackupEnum.A骞叉帴鐐圭涓夌骇鍒鏈夊睘鎬�)
             {
                 var recoverData = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(System.Text.Encoding.UTF8.GetString(byteData));
-                result = await HdlDevicePanelLogic.Current.EditorDryContactFunction((Panel)device, recoverData);
+                result = await HdlDevicePanelLogic.Current.EditorDryContactThirdFunction((Panel)device, recoverData);
             }
             else if (backType == GatewayBackupEnum.A绐楀笜鏂瑰悜)
             {

--
Gitblit v1.8.0