From f14dcfd967404e197e7ec995ca8d6f2b090d3b7d Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期五, 11 九月 2020 09:16:59 +0800 Subject: [PATCH] 优化多功能面板:绑定温湿度传感器目标,和设备列表回路显示。优化数据矫正功能温湿度度不设置的情况。优化门锁时间设置最后一天和最后最后一个月的时间显示等 细节 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs | 315 ++++++++++++++++++++++++++++------------------------ 1 files changed, 169 insertions(+), 146 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs index 22eced4..9631ac2 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs @@ -178,6 +178,10 @@ //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑 this.SetGatewayDataToLocalMemmory(gateway, result); } + if (gateway.HomeId == string.Empty) + { + gateway.HomeId = Config.Instance.Home.Id; + } return gateway; } catch (Exception ex) @@ -196,7 +200,7 @@ /// </summary> /// <param name="zbGateway">缃戝叧</param> /// <param name="mode">鏄惁鏄剧ず閿欒</param> - public async Task<bool> AddNewGateway(ZbGateway zbGateway, ShowErrorMode mode) + public bool AddNewGateway(ZbGateway zbGateway, ShowErrorMode mode) { //璁剧疆缃戝叧鐨勭粡绾害 bool falge = this.SetGatewaySite(zbGateway, Common.Config.Instance.Home.Longitude, Common.Config.Instance.Home.Latitude, ShowErrorMode.NO); @@ -205,7 +209,7 @@ return falge; } //鎵ц娣诲姞缃戝叧鍒板唴瀛� - var result = await this.DoAddGatewayToMemory(zbGateway, mode); + var result = this.DoAddGatewayToMemory(zbGateway, mode); //鍓嶇殑缃戝叧缁戝畾鍦ㄤ簡褰撳墠璐﹀彿涓嬬殑涓嶅悓浣忓畢閲岄潰 if (result == 0) { @@ -250,7 +254,7 @@ /// <param name="zbGateway">缃戝叧瀵硅薄</param> /// <param name="mode">鏄惁鏄剧ず閿欒</param> /// <returns></returns> - private async Task<int> DoAddGatewayToMemory(ZbGateway zbGateway, ShowErrorMode mode) + private int DoAddGatewayToMemory(ZbGateway zbGateway, ShowErrorMode mode) { if (zbGateway == null) { @@ -263,18 +267,7 @@ return -1; } //鑾峰彇缃戝叧鐨勪俊鎭� - var result = await zbGateway.GetZbGwInfoAsync(); - //妫�娴嬬綉鍏宠繑鍥炵殑鍏遍�氶敊璇姸鎬佺爜 - string error = HdlCheckLogic.Current.CheckCommonErrorCode(result); - if (error != null) - { - if (mode == ShowErrorMode.YES) - { - this.ShowTipMsg(error); - } - return -1; - } - + var result = this.GetGatewayInfo(zbGateway, true, mode); if (result == null) { if (mode == ShowErrorMode.YES) @@ -286,28 +279,20 @@ return -1; } - if (result.getGwData == null) - { - if (mode == ShowErrorMode.YES) - { - //鑾峰彇缃戝叧淇℃伅澶辫触 - string msg = Language.StringByID(R.MyInternationalizationString.uGetGatewayInfoFail); - this.ShowTipMsg(msg); - } - return -1; - } - //璁剧疆浣忓畢ID鍒扮綉鍏� - bool flage2 = await this.SetHomeIdToGateway(zbGateway, Common.Config.Instance.HomeId, mode); - if (flage2 == false) + if (result.HomeId != Common.Config.Instance.HomeId) { - if (mode == ShowErrorMode.YES) + bool flage2 = this.SetHomeIdToGateway(zbGateway, Common.Config.Instance.HomeId, mode); + if (flage2 == false) { - //鍚戠綉鍏宠缃綇瀹匢D澶辫触 - string msg = Language.StringByID(R.MyInternationalizationString.uSetHomeIdToGatewayFail); - this.ShowTipMsg(msg); + if (mode == ShowErrorMode.YES) + { + //鍚戠綉鍏宠缃綇瀹匢D澶辫触 + string msg = Language.StringByID(R.MyInternationalizationString.uSetHomeIdToGatewayFail); + this.ShowTipMsg(msg); + } + return -1; } - return -1; } //鏇存柊浜戠鏁版嵁搴� @@ -337,9 +322,9 @@ //鍒锋柊鐨勬槸缂撳瓨,涓嶅埛鏂扮湡瀹炵墿鐞嗙綉鍏� this.dicGateway[gwID].GatewayOnlineFlage = zbGateway.GatewayOnlineFlage; //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑 - this.SetGatewayDataToLocalMemmory(this.dicGateway[gwID], result.getGwData); + this.SetGatewayDataToLocalMemmory(this.dicGateway[gwID], result); //椤轰究杩欎釜鍙橀噺涔熻缃竴涓� - this.SetGatewayDataToLocalMemmory(zbGateway, result.getGwData, false); + this.SetGatewayDataToLocalMemmory(zbGateway, result, false); if (isEsist == false) { @@ -356,10 +341,28 @@ /// <param name="zbGateway"></param> /// <param name="HomeId"></param> /// <returns></returns> - public async Task<bool> SetHomeIdToGateway(ZbGateway zbGateway, string HomeId, ShowErrorMode mode) + public bool SetHomeIdToGateway(ZbGateway zbGateway, string HomeId, ShowErrorMode mode) { - ZbGateway realWay = null; - if (this.GetRealGateway(ref realWay, zbGateway) == false) + //璐﹀彿ID + string accountId = string.Empty; + if (HomeId != string.Empty) + { + if (UserCenterResourse.UserInfo.AuthorityNo == 1) + { + //涓昏处鍙� + accountId = Config.Instance.Guid; + } + else + { + accountId = Config.Instance.Home.MainUserDistributedMark; + } + } + var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 82 } }; + var data = new Newtonsoft.Json.Linq.JObject { { "HomeId", HomeId }, { "AccountId", accountId } }; + jObject.Add("Data", data); + //浣忓畢ID鐨勮缃�,鍥哄畾浣跨敤灞�鍩熺綉,涓嶅瓨鍦ㄨ繙绋嬬殑璇存硶 + var result = this.SendJobjectDataToGateway(zbGateway, "GwSetHomeId", jObject.ToString(), "GwSetHomeId_Respon", 5, true); + if (result.ErrorMsgDiv == -1) { if (mode == ShowErrorMode.YES) { @@ -369,13 +372,11 @@ } return false; } - - var info = await realWay.GwSetHomeIdAsync(HomeId); - if (info != null && info.gwSetHomeIdData != null) + if (result.ErrorMsgDiv == 0) { - return true; + return false; } - return false; + return true; } /// <summary> @@ -391,7 +392,7 @@ //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken bindGateway.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, new List<string> { "NotCheck" }); + var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, new List<string> { "NotCheck" }, false); if (result == "Error") { return -1; @@ -437,7 +438,7 @@ /// </summary> /// <param name="zbGateway">缃戝叧</param> /// <param name="btnMsg">娑堟伅鎺т欢</param> - public async Task<int> ReBindNewGateway(ZbGateway zbGateway, NormalViewControl btnMsg = null) + public int ReBindNewGateway(ZbGateway zbGateway, NormalViewControl btnMsg = null) { if (zbGateway == null) { @@ -454,7 +455,7 @@ } //璁剧疆浣忓畢ID鍒扮綉鍏� - bool flage2 = await this.SetHomeIdToGateway(zbGateway, Common.Config.Instance.HomeId, ShowErrorMode.YES); + bool flage2 = this.SetHomeIdToGateway(zbGateway, Common.Config.Instance.HomeId, ShowErrorMode.YES); if (flage2 == false) { //鍚戠綉鍏宠缃綇瀹匢D澶辫触 @@ -489,31 +490,23 @@ btnMsg.TextID = R.MyInternationalizationString.uGatewayDataIsChangingPleaseWhait; }); } - await Task.Delay(8000); + System.Threading.Thread.Sleep(8000); //鑾峰彇缃戝叧鐨勪俊鎭� - ZbGatewayData.GetGwAllData result = null; + ZbGatewayData.GetGwData result = null; int count = 5; while (count >= 0) { - result = await zbGateway.GetZbGwInfoAsync(); - if (result != null && result.getGwData != null) + result = this.GetGatewayInfo(zbGateway, true, ShowErrorMode.NO); + if (result != null) { break; } count--; //鏈�澶氬啀绛�20绉� - await Task.Delay(4000); + System.Threading.Thread.Sleep(4000); } - //妫�娴嬬綉鍏宠繑鍥炵殑鍏遍�氶敊璇姸鎬佺爜 - string error = HdlCheckLogic.Current.CheckCommonErrorCode(result); - if (error != null) - { - this.ShowTipMsg(error); - return -1; - } - - if (result == null || result.getGwData == null) + if (result == null) { //鑾峰彇缃戝叧淇℃伅澶辫触 string msg = Language.StringByID(R.MyInternationalizationString.uGetGatewayInfoFail); @@ -535,9 +528,9 @@ //鍒锋柊鐨勬槸缂撳瓨,涓嶅埛鏂扮湡瀹炵墿鐞嗙綉鍏� this.dicGateway[gwID].GatewayOnlineFlage = zbGateway.GatewayOnlineFlage; //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑 - this.SetGatewayDataToLocalMemmory(this.dicGateway[gwID], result.getGwData); + this.SetGatewayDataToLocalMemmory(this.dicGateway[gwID], result); //椤轰究杩欎釜鍙橀噺涔熻缃竴涓� - this.SetGatewayDataToLocalMemmory(zbGateway, result.getGwData, false); + this.SetGatewayDataToLocalMemmory(zbGateway, result, false); if (isEsist == false) { @@ -606,18 +599,15 @@ /// 鎵ц鍒囨崲缃戝叧鎿嶄綔 /// </summary> /// <param name="gatewayId"></param> - public async Task<bool> DoSwitchGateway(string gatewayId) + public bool DoSwitchGateway(string gatewayId) { - var zbGateway = this.GetLocalGateway(gatewayId); - if (this.CheckGatewayOnlineByFlag(zbGateway) == true) + //閲嶆柊鑾峰彇鍦ㄧ嚎缃戝叧鐨勪俊鎭� + var result = this.GetOnlineGatewayInfo(gatewayId); + if (result == false) { - //閲嶆柊鑾峰彇鍦ㄧ嚎缃戝叧鐨勪俊鎭� - var result = await this.GetOnlineGatewayInfo(gatewayId); - if (result == false) - { - return false; - } + return false; } + //鍒囨崲缃戝叧,淇濆瓨缂撳瓨 this.SaveGatewayIdToLocation(gatewayId); //鍒囨崲缃戝叧鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂� @@ -631,7 +621,7 @@ /// </summary> /// <param name="gatewayId"></param> /// <returns></returns> - private async Task<bool> GetOnlineGatewayInfo(string gatewayId) + private bool GetOnlineGatewayInfo(string gatewayId) { //鏄剧ず杩涘害鏉� ProgressBar.Show(); @@ -644,7 +634,7 @@ //閲嶆柊璁剧疆浣忓畢ID(杩欎釜搴旇鏄笉缁忚繃APP,鐩存帴鎶婄綉鍏虫仮澶嶄簡鍑哄巶璁剧疆) if (this.HomeIdIsEmpty(realWay.HomeId) == true) { - int result2 = await this.ReBindNewGateway(realWay); + int result2 = this.ReBindNewGateway(realWay); if (result2 == 0) { //鍑虹幇鏈煡閿欒,璇风◢鍚庡啀璇� @@ -666,7 +656,7 @@ if (getGatewayInfo == true) { //鑾峰彇缃戝叧淇℃伅 - var info = this.GetGatewayInfo(realWay); + var info = this.GetGatewayInfo(realWay, false); if (info == null) { //鍏抽棴杩涘害鏉� @@ -674,9 +664,14 @@ return false; } } + //鍒锋柊鍏ㄩ儴鍦烘櫙 + if (this.IsMainGateway(realWay) == 1) + { + HdlSceneLogic.Current.RefreshSceneUIList(false); + } //鑾峰彇鍏ㄩ儴璁惧 - int result = LocalDevice.Current.SetDeviceToMemmoryByGateway(realWay); + int result = LocalDevice.Current.SetDeviceToMemmoryByGateway(realWay, false); //鍏抽棴杩涘害鏉� ProgressBar.Close(); if (result == -1) @@ -703,34 +698,15 @@ /// <summary> /// 鍒犻櫎缃戝叧锛屽寘鎷簯绔拰鏈湴(澶辫触鏃朵笉浼氭樉绀轰俊鎭紝骞朵笖浼氳繑鍥瀟rue) /// </summary> - /// <param name="zbGateway"></param> - public async Task<bool> DeleteGateway(ZbGateway zbGateway) - { - //绉婚櫎鏈湴缃戝叧淇℃伅 - return await this.DeleteGateway(zbGateway.GwId); - } - - /// <summary> - /// 鍒犻櫎缃戝叧锛屽寘鎷簯绔拰鏈湴(澶辫触鏃朵笉浼氭樉绀轰俊鎭紝骞朵笖浼氳繑鍥瀟rue) - /// </summary> /// <param name="zbGatewayID"></param> - public async Task<bool> DeleteGateway(string zbGatewayID) + public bool DeleteGateway(string zbGatewayID) { ZbGateway realWay = null; - bool hadReal = this.GetRealGateway(ref realWay, zbGatewayID); - - //鏆備笉鏀寔鍒嗕韩 - if (hadReal == true && realWay.GatewayOnlineFlage == true) + this.GetRealGateway(ref realWay, zbGatewayID); + //娓呯┖缃戝叧鐨勪綇瀹匢D 缃戝叧瑙g粦澶辫触 涓嶇悊瀹�,鍥犱负缃戝叧鍙互鎸夋寜閿己鍒舵悳绱㈠緱鍒� + if (realWay != null) { - //娓呯┖缃戝叧鐨勪綇瀹匢D - bool result = await this.SetHomeIdToGateway(realWay, string.Empty, ShowErrorMode.YES); - if (result == false) - { - //缃戝叧瑙g粦澶辫触 涓嶇悊瀹�,鍥犱负缃戝叧鍙互鎸夋寜閿己鍒舵悳绱㈠緱鍒� - string msg = Language.StringByID(R.MyInternationalizationString.uGatewayUnBindFail); - //this.ShowErrorMsg(msg); - //return false; - } + this.SetHomeIdToGateway(realWay, string.Empty, ShowErrorMode.NO); } //鍒犻櫎浜戠鐨勭綉鍏� @@ -742,7 +718,10 @@ //绉婚櫎 ZbGateway.GateWayList.RemoveAll((obj) => obj.GwId == zbGatewayID); //鏂紑mqtt杩炴帴 - realWay.DisConnectLocalMqttClient("GD"); + if (realWay != null) + { + realWay.DisConnectLocalMqttClient("GD"); + } return true; } @@ -1308,6 +1287,8 @@ /// <returns></returns> public string GetGatewayName(ZbGateway zbGateway) { + if (zbGateway == null) { return string.Empty; } + string gwId = zbGateway.GwId; if (this.dicGateway.ContainsKey(gwId) == false) { @@ -1321,11 +1302,10 @@ return name; } - string keyName = Common.LocalDevice.deviceModelIdName + localWay.LinuxImageType; - if (LocalDevice.Current.dicDeviceAllNameID.ContainsKey(keyName) == true) + var nameContent = LocalDevice.Current.GetDeviceModelIdNameInfo(localWay.LinuxImageType.ToString()); + if (nameContent != null) { - //娌℃湁鍚嶇О鏃讹紝鍒欎娇鐢≧鏂囦欢閲岄潰璁剧疆鐨勯粯璁よ澶囧悕绉� - return Language.StringByID(LocalDevice.Current.dicDeviceAllNameID[keyName] + 20000); + return nameContent.A澶囨敞鍚嶅瓧; } return string.Empty; @@ -1362,11 +1342,10 @@ //濡傛灉杩欎釜缃戝叧娌℃湁淇℃伅锛屽垯浠庢柊鑾峰彇 if (zbGateway.LinuxImageType != -1) { - string keyName = Common.LocalDevice.deviceModelIdName + zbGateway.LinuxImageType; - if (Common.LocalDevice.Current.dicDeviceAllNameID.ContainsKey(keyName) == true) + var nameContent = LocalDevice.Current.GetDeviceModelIdNameInfo(zbGateway.LinuxImageType.ToString()); + if (nameContent != null) { - //浣跨敤R鏂囦欢閲岄潰璁剧疆鐨勪笢瑗� - button.TextID = LocalDevice.Current.dicDeviceAllNameID[keyName]; + button.Text = nameContent.A瀹樻柟鍚嶅瓧; } } else @@ -1374,7 +1353,7 @@ //缁欎竴涓嚎绋嬪幓鑾峰彇瀹冪殑闀滃儚绫诲瀷 HdlThreadLogic.Current.RunThread(() => { - var result = this.GetGatewayInfo(zbGateway, ShowErrorMode.NO); + var result = this.GetGatewayInfo(zbGateway, false, ShowErrorMode.NO); if (result != null) { //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑 @@ -1382,11 +1361,10 @@ HdlThreadLogic.Current.RunMain(() => { - string keyName = Common.LocalDevice.deviceModelIdName + zbGateway.LinuxImageType; - if (Common.LocalDevice.Current.dicDeviceAllNameID.ContainsKey(keyName) == true) + var nameContent = LocalDevice.Current.GetDeviceModelIdNameInfo(zbGateway.LinuxImageType.ToString()); + if (nameContent != null) { - //浣跨敤R鏂囦欢閲岄潰璁剧疆鐨勪笢瑗� - button.TextID = LocalDevice.Current.dicDeviceAllNameID[keyName]; + button.Text = nameContent.A瀹樻柟鍚嶅瓧; } }); } @@ -1395,11 +1373,10 @@ } else { - string keyName = Common.LocalDevice.deviceModelIdName + this.dicGateway[gwId].LinuxImageType; - if (Common.LocalDevice.Current.dicDeviceAllNameID.ContainsKey(keyName) == true) + var nameContent = LocalDevice.Current.GetDeviceModelIdNameInfo(zbGateway.LinuxImageType.ToString()); + if (nameContent != null) { - //浣跨敤R鏂囦欢閲岄潰璁剧疆鐨勪笢瑗� - button.TextID = Common.LocalDevice.Current.dicDeviceAllNameID[keyName]; + button.Text = nameContent.A瀹樻柟鍚嶅瓧; } } } @@ -1412,13 +1389,14 @@ /// 鑾峰彇缃戝叧淇℃伅(鐗堟湰淇℃伅,闀滃儚绫诲瀷,鍩烘湰淇℃伅绛夈�傚彧鍒锋柊鏈湴缃戝叧鐨勭紦瀛�) /// </summary> /// <param name="zbGateway"></param> + /// <param name="useLocalConnect">鏄惁寮哄埗浣跨敤鏈湴杩炴帴鍙戦��</param> /// <param name="mode"></param> /// <returns></returns> - public ZbGatewayData.GetGwData GetGatewayInfo(ZbGateway zbGateway, ShowErrorMode mode = ShowErrorMode.YES) + public ZbGatewayData.GetGwData GetGatewayInfo(ZbGateway zbGateway, bool useLocalConnect, ShowErrorMode mode = ShowErrorMode.YES) { //鑾峰彇缃戝叧鐗堟湰淇℃伅 var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 95 } }; - var result = this.SendJobjectDataToGateway(zbGateway, "GetZbGwInfo", jObject.ToString(), "GetZbGwInfo_Respon"); + var result = this.SendJobjectDataToGateway(zbGateway, "GetZbGwInfo", jObject.ToString(), "GetZbGwInfo_Respon", 5, useLocalConnect); if (result.ErrorMsgDiv != 1) { @@ -1467,6 +1445,7 @@ localWay.CoordinatorFirmwareVersion = data.ZbFWVersion; localWay.CoordinatorImageId = data.ZbImageType; localWay.DriveCodeList = data.DriveCodeList; + localWay.GwVersionDate = data.AppVersion; if (saveFile == true) { localWay.ReSave(); @@ -1521,24 +1500,39 @@ #endregion - #region 鈻� 娓呯┖鐪熷疄缃戝叧鍒楄〃___________________ + #region 鈻� 娓呯┖鐪熷疄缃戝叧閾炬帴___________________ /// <summary> - /// 娓呯┖鍏ㄩ儴鐨勭湡瀹炵墿鐞嗙綉鍏冲璞� + /// 娓呯┖鍏ㄩ儴鐨勭湡瀹炵墿鐞嗙綉鍏崇殑閾炬帴 /// </summary> - public void ClearAllRealGateway() + /// <param name="roadGateway">鏄惁鍔犺浇鏈湴鐨勭綉鍏冲璞″埌鐪熷疄鍒楄〃涓�</param> + public void ClearAllRealGatewayConection(bool roadGateway) { - //鍥犱负閭d竴鐬棿锛屾湁鍙兘mqtt浼氬姞鍥炴潵,鎵�浠ュ厛鍔犵紦瀛� - var list = new List<ZbGateway>(); - list.AddRange(ZbGateway.GateWayList); - //鐒跺悗娓呯┖鎺� - ZbGateway.GateWayList.Clear(); - //鏈�鍚庡啀鏂紑mqtt杩炴帴 - for (int i = 0; i < list.Count; i++) + //鏂紑mqtt杩炴帴(鍗充娇淇濆瓨鍦ㄥ唴瀛樺綋涓篃娌¢棶棰�,鍥犱负濡傛灉骞挎挱涓嶅埌,鍒欏畠涓嶄細寤虹珛閾炬帴) + for (int i = 0; i < ZbGateway.GateWayList.Count; i++) { - list[i].DisConnectLocalMqttClient("G"); + ZbGateway.GateWayList[i].DisConnectLocalMqttClient("G"); } - list.Clear(); + //鍔犺浇鏈湴缃戝叧瀵硅薄 + if (roadGateway == true) + { + List<string> listFile = this.GetAllGatewayFile(); + //鍙嶅簭鍒楀寲娣诲姞鍒扮紦瀛� + foreach (string file in listFile) + { + //浠庢枃浠朵腑鍙嶅簭鍒楀寲鍑虹綉鍏冲璞� + var gateway = this.GetGatewayFromFile(file); + if (gateway == null) + { + continue; + } + var tempWay = ZbGateway.GateWayList.Find(obj => (obj != null) && (obj.GwId == gateway.GwId)); + if (tempWay == null) + { + ZbGateway.GateWayList.Add(gateway); + } + } + } } #endregion @@ -1553,8 +1547,13 @@ /// <returns></returns> public List<FirmwareVersionInfo> GetGatewayAllNewVersion(ZbGateway zbGateway, ShowErrorMode mode = ShowErrorMode.YES) { + //濡傛灉鏄睍绀烘ā鏉�,鎴栬�呮槸铏氭嫙浣忓畢鐨勮瘽,娌℃湁浠�涔堟柊鐗堟湰鐨勮娉� + if (Common.Config.Instance.Home.IsVirtually == true || Common.Config.Instance.Home.IsShowTemplate == true) + { + return new List<FirmwareVersionInfo> { null, null, null }; + } //鑾峰彇缃戝叧鐗堟湰淇℃伅 - var result = this.GetGatewayInfo(zbGateway, mode); + var result = this.GetGatewayInfo(zbGateway, false, mode); if (result == null) { return null; @@ -1575,7 +1574,7 @@ if (flage == 1) { //娌$綉鐨勬椂鍊欎笉鍐嶅鐞� - HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.Coordinator, + HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.A鍗忚皟鍣�, localWay.CoordinatorHardVersion.ToString(), localWay.CoordinatorImageId.ToString()); } @@ -1587,7 +1586,7 @@ localWay.LinuxFirmwareVersion); //鍗忚皟鍣ㄧ増鏈� - var coordinatorFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.Coordinator, + var coordinatorFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.A鍗忚皟鍣�, localWay.CoordinatorHardVersion.ToString(), localWay.CoordinatorImageId.ToString(), localWay.CoordinatorFirmwareVersion); @@ -1605,13 +1604,13 @@ //娣诲姞铏氭嫙椹卞姩鐨勫崌绾у浐浠�(鎴愪笉鎴愬姛閮芥棤鎵�璋�) 蹇呴』鑳藉鑱旂綉鎵嶈 if (flage == 1) { - HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.VirtualDevice, + HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.A铏氭嫙椹卞姩, data.DriveHwVersion.ToString(), data.DriveImageType.ToString()); } //铏氭嫙椹卞姩 - var virtualFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.VirtualDevice, + var virtualFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.A铏氭嫙椹卞姩, data.DriveHwVersion.ToString(), data.DriveImageType.ToString(), data.DriveFwVersion); @@ -1638,6 +1637,13 @@ /// <returns></returns> public List<ZbGatewayData.DriveCodeObj> GetListVDDriveCode(ZbGateway zbGateway) { + //濡傛灉鏄睍绀烘ā鏉�,鎴栬�呮槸铏氭嫙浣忓畢鐨勮瘽,鐩存帴鍙栫紦瀛� + if (Common.Config.Instance.Home.IsVirtually == true || Common.Config.Instance.Home.IsShowTemplate == true) + { + //鍙栨湰鍦板璞� + var localgw = this.GetLocalGateway(zbGateway.GwId); + return localgw != null ? zbGateway.DriveCodeList : zbGateway.DriveCodeList; + } var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 505 } }; var result = this.SendJobjectDataToGateway(zbGateway, "VirtualDrive/CatDriveCode", jObject.ToString(), "VirtualDrive/CatDriveCode_Respon"); if (result.ErrorMsg != null) @@ -1673,12 +1679,16 @@ /// <returns></returns> public int IsMainGateway(string waiID) { - ZbGateway zbGateway = null; - if (this.GetRealGateway(ref zbGateway, waiID) == false) + var realWay = ZbGateway.GateWayList.Find((obj) => + { + return obj.GwId == waiID; + }); + //铏氭嫙缃戝叧涔熻繑鍥� 0 + if (realWay == null || realWay.IsVirtual == true) { return 0; } - return zbGateway.IsMainGateWay == true ? 1 : 2; + return realWay.IsMainGateWay == true ? 1 : 2; } #endregion @@ -1704,7 +1714,7 @@ //缁欎竴涓嚎绋嬪幓鑾峰彇瀹冪殑闀滃儚绫诲瀷 HdlThreadLogic.Current.RunThread(() => { - var result = this.GetGatewayInfo(zbGateway, ShowErrorMode.NO); + var result = this.GetGatewayInfo(zbGateway, true, ShowErrorMode.NO); if (result != null) { //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑 @@ -1742,7 +1752,7 @@ //缁欎竴涓嚎绋嬪幓鑾峰彇瀹冪殑闀滃儚绫诲瀷 HdlThreadLogic.Current.RunThread(() => { - var result = this.GetGatewayInfo(zbGateway, ShowErrorMode.NO); + var result = this.GetGatewayInfo(zbGateway, true, ShowErrorMode.NO); if (result != null) { //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑 @@ -1845,7 +1855,7 @@ //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken pra.ReqDto.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - var result = UserCenterLogic.GetResponseDataByRequestHttps("App/GetSingleHomeGatewayPagger", true, pra, list); + var result = UserCenterLogic.GetResponseDataByRequestHttps("App/GetSingleHomeGatewayPagger", true, pra, list, false); if (string.IsNullOrEmpty(result) == true) { canBreak = true; @@ -1901,6 +1911,11 @@ this.ShowTipMsg(msg); } return false; + } + if (((decimal)Longitude) == 0 && ((decimal)Latitude) == 0) + { + //娌℃湁閰嶇疆杩囩粡绾害 + return true; } int result = -1; @@ -1977,7 +1992,7 @@ List<string> listNotShowError = new List<string>() { "NoExist", "NoBind", "NoRecord", "NotCheck" }; - bool result = UserCenterLogic.GetResultStatuByRequestHttps("App/ReleaseGatewayToHome", true, Pra, listNotShowError); + bool result = UserCenterLogic.GetResultStatuByRequestHttps("App/ReleaseGatewayToHome", true, Pra, listNotShowError, false); if (result == false) { return false; @@ -2030,7 +2045,7 @@ { bindGateway.BindGateways.Clear(); bindGateway.BindGateways.Add(gwId); - var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, new List<string> { "NotCheck" }); + var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, new List<string> { "NotCheck" }, false); if (result == "Success") { this.listBackupGwId.Remove(gwId); @@ -2070,8 +2085,9 @@ /// <param name="sendData">闇�瑕佸彂閫佺殑鏁版嵁 JObject.ToString()鐨勪笢瑗�</param> /// <param name="receiptTopic">鎸囧畾鎺ユ敹鍝釜涓婚</param> /// <param name="waitTime">瓒呮椂鏃堕棿(绉�)</param> + /// <param name="useLocalConnect">鏄惁寮哄埗浣跨敤鏈湴杩炴帴鍙戦��</param> /// <returns>缃戝叧杩斿洖鐨勬暟鎹�</returns> - public ReceiptGatewayResult SendJobjectDataToGateway(ZbGateway gateway, string sendTopic, string sendData, string receiptTopic, int waitTime = 5) + public ReceiptGatewayResult SendJobjectDataToGateway(ZbGateway gateway, string sendTopic, string sendData, string receiptTopic, int waitTime = 5, bool useLocalConnect = false) { var reResult = new ReceiptGatewayResult(); @@ -2108,7 +2124,14 @@ }; myGateway.Actions += receiptAction; //鍙戦�佹暟鎹� - myGateway.Send(sendTopic, sendData); + if (useLocalConnect == false) + { + myGateway.Send(sendTopic, sendData); + } + else + { + myGateway.SendLocation(sendTopic, System.Text.Encoding.UTF8.GetBytes(sendData)); + } //瓒呮椂鏃堕棿 int TimeOut = 0; -- Gitblit v1.8.0