From 0bf9e65bc3ba98391e7835c922b15baab3c77876 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 01 六月 2020 14:59:39 +0800 Subject: [PATCH] 上传一个合并的版本 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs | 93 ++++++++++++++++++++++++++++++---------------- 1 files changed, 61 insertions(+), 32 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs index 18ffe33..c10dfa4 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs @@ -2152,35 +2152,35 @@ #region 鈻� 涓婁紶璁惧澶囦唤鍒扮綉鍏砡________________ /// <summary> - /// 涓婁紶璁惧澶囦唤鍒扮綉鍏�(鏈�濂戒笉瑕佸幓鐞嗗畠鐨勮繑鍥炵粨鏋�) + /// 涓婁紶璁惧澶囦唤鍒扮綉鍏�(搴熷純) /// </summary> /// <param name="device">璁惧瀵硅薄</param> /// <param name="backupEnum">澶囦唤绫诲瀷</param> /// <param name="upLaodData">澶囦唤鐨勬暟鎹�</param> /// <returns></returns> - public async Task<bool> UpLoadDeviceBackupDataToGateway(CommonDevice device, GatewayBackupEnum backupEnum, object upLaodData) + public async Task<bool> UpLoadDeviceBackupDataToGateway(CommonDevice device, 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; } @@ -2216,7 +2216,7 @@ { int waitCount = 0; //濡傛灉浣忓畢ID鍙樻洿浜�,鍒欎笉鍐嶅鐞� - while (frameLayout.Parent != null) + while (frameLayout.Parent != null && Config.Instance.HomeId != string.Empty) { System.Threading.Thread.Sleep(1000); if (this.hadGatewayUpdate == true) @@ -2276,18 +2276,34 @@ //绛変釜2绉� System.Threading.Thread.Sleep(2000); + //2020.05.25杩藉姞:姝や綇瀹呮槸鍚︽嫢鏈夌綉鍏冲湪绾� + var hadGwOnline = false; + foreach (var way in list) + { + string gwId = this.GetGatewayId(way); + if (dicOldOnline.ContainsKey(gwId) == true) + { + if (way.GatewayOnlineFlage == true) + { + //鏈変竴涓綉鍏冲湪绾�,鍗冲湪绾� + hadGwOnline = true; + break; + } + } + } + foreach (var way in list) { string gwId = this.GetGatewayId(way); if (dicOldOnline.ContainsKey(gwId) == true) { //缃戝叧涔熶笉澶�,鐩存帴鎺ㄩ�佸惂 - this.PushGatewayOnlineStatuToForm(gwId, way.GatewayOnlineFlage); + this.PushGatewayOnlineStatuToForm(gwId, way.GatewayOnlineFlage, hadGwOnline); } else { //娌℃湁鍖呭惈,榛樿涓篺alse - this.PushGatewayOnlineStatuToForm(gwId, false); + this.PushGatewayOnlineStatuToForm(gwId, false, hadGwOnline); } } } @@ -2305,22 +2321,34 @@ dicDbGateway = new Dictionary<string, GatewayResult>(); } + //2020.05.25杩藉姞:姝や綇瀹呮槸鍚︽嫢鏈夌綉鍏冲湪绾� + var hadGwOnline = false; + foreach (var gwId in dicOldOnline.Keys) + { + //濡傛灉浜戠涓婇潰鏈夎繖涓綉鍏� + if (dicDbGateway.ContainsKey(gwId) == true + && dicDbGateway[gwId].MqttOnlineStatus == true) + { + //鏈変竴涓綉鍏冲湪绾�,鍗冲湪绾� + hadGwOnline = true; + break; + } + } + foreach (var gwId in dicOldOnline.Keys) { //濡傛灉浜戠涓婇潰鏈夎繖涓綉鍏� if (dicDbGateway.ContainsKey(gwId) == true) { //缃戝叧涔熶笉澶�,鐩存帴鎺ㄩ�� - this.PushGatewayOnlineStatuToForm(gwId, dicDbGateway[gwId].MqttOnlineStatus); + this.PushGatewayOnlineStatuToForm(gwId, dicDbGateway[gwId].MqttOnlineStatus, hadGwOnline); } else { //浜戠涓嶅寘鍚殑,褰撲笉鍦ㄧ嚎澶勭悊 - this.PushGatewayOnlineStatuToForm(gwId, false); + this.PushGatewayOnlineStatuToForm(gwId, false, hadGwOnline); } } - - } /// <summary> @@ -2355,7 +2383,8 @@ /// </summary> /// <param name="gwId"></param> /// <param name="online"></param> - private void PushGatewayOnlineStatuToForm(string gwId, bool online) + /// <param name="hadGwOnline">2020.05.25杩藉姞:姝や綇瀹呮槸鍚︽嫢鏈夌綉鍏冲湪绾�</param> + private void PushGatewayOnlineStatuToForm(string gwId, bool online, bool hadGwOnline) { try { @@ -2370,7 +2399,7 @@ var zbway = this.GetLocalGateway(gwId); zbway.GatewayOnlineFlage = online; - UserCenterResourse.DicActionForm[formId]?.GatewayOnlinePush(zbway, online); + UserCenterResourse.DicActionForm[formId]?.GatewayOnlinePush(zbway, online, hadGwOnline); } } catch { } -- Gitblit v1.8.0