From 4f0ab0ad21ce450b7856d50f98322a7899361386 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 22 九月 2020 10:30:01 +0800
Subject: [PATCH] 不要下载这个备份
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs | 424 +++++++++++++++++++++++++---------------------------
1 files changed, 205 insertions(+), 219 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
index e9a6550..9631ac2 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
@@ -82,7 +82,7 @@
GatewayResourse.AppOldSelectGatewayId = string.Empty;
//浠庢枃浠朵腑鑾峰彇涓婁竴娆¢�夋嫨鐨勭綉鍏砳d
- byte[] data = Global.ReadFileByDirectory(DirNameResourse.LocalMemoryDirectory, DirNameResourse.AppOldSelectGatewayFile);
+ byte[] data = HdlFileLogic.Current.ReadFileByteContent(DirNameResourse.AppOldSelectGatewayFile);
if (data != null)
{
string strvalue = System.Text.Encoding.UTF8.GetString(data);
@@ -118,7 +118,7 @@
}
List<string> listBackupGwId = new List<string>();
- var fileData = Global.ReadFileByDirectory(DirNameResourse.LocalMemoryDirectory, DirNameResourse.BackupGatewayIdFile);
+ var fileData = HdlFileLogic.Current.ReadFileByteContent(DirNameResourse.BackupGatewayIdFile);
if (fileData != null)
{
//鏂板锛氳櫧鐒舵鐜囦綆锛屼絾鏄‘瀹炲彂鐢熶簡銆傚鏋滄湁缃戠粶鏃讹紝App閲嶆柊缁戝畾璁板綍鐨勭綉鍏冲け璐ョ殑璇�
@@ -149,26 +149,10 @@
//鍒犻櫎缃戝叧鏂囦欢
this.DeleteGatewayFile(gatewayId);
}
- //LOG杈撳嚭
- if (listDelete.Count > 0)
+ //濡傛灉缃戝叧閮芥病浜嗙殑璇�,鎶婂満鏅叏閮ㄥ垹浜�
+ if (listDelete.Count > 0 && this.GetAllLocalGateway().Count == 0)
{
- string msg = "鏈湴鎷ユ湁鐨勭綉鍏筹細";
- foreach (var gatewayId in this.dicGateway.Keys)
- {
- msg += gatewayId + ",";
- }
- msg += "\r\n琚垹闄ょ殑缃戝叧锛�";
- foreach (var gatewayId in listDelete)
- {
- msg += gatewayId + ",";
- }
- msg += "\r\n姝ゆ椂浜戠杩斿洖褰撳墠璐﹀彿鎵�缁戝畾鏈夌殑缃戝叧锛�";
- foreach (var gatewayId in result.Keys)
- {
- msg += gatewayId + ",";
- }
- var bytes = System.Text.Encoding.UTF8.GetBytes(msg);
- Common.Global.WriteFileByBytesByHomeId("GatewayDeleteLog.txt", bytes);
+ HdlSceneLogic.Current.DeleteAllLocalScene();
}
}
@@ -194,6 +178,10 @@
//灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑
this.SetGatewayDataToLocalMemmory(gateway, result);
}
+ if (gateway.HomeId == string.Empty)
+ {
+ gateway.HomeId = Config.Instance.Home.Id;
+ }
return gateway;
}
catch (Exception ex)
@@ -212,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);
@@ -221,7 +209,7 @@
return falge;
}
//鎵ц娣诲姞缃戝叧鍒板唴瀛�
- var result = await this.DoAddGatewayToMemory(zbGateway, mode);
+ var result = this.DoAddGatewayToMemory(zbGateway, mode);
//鍓嶇殑缃戝叧缁戝畾鍦ㄤ簡褰撳墠璐﹀彿涓嬬殑涓嶅悓浣忓畢閲岄潰
if (result == 0)
{
@@ -242,7 +230,7 @@
return false;
}
//娣诲姞缃戝叧鐨勮瘽,寮哄埗涓婚〉鍒锋柊
- UserView.UserPage.Instance.RefreshForm = true;
+ UserView.UserPage.Instance.RefreshAllForm = true;
return true;
}
@@ -266,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)
{
@@ -279,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)
@@ -302,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;
}
//鏇存柊浜戠鏁版嵁搴�
@@ -353,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)
{
@@ -372,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)
{
@@ -385,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>
@@ -407,7 +392,7 @@
//鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken
bindGateway.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
- var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway);
+ var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, new List<string> { "NotCheck" }, false);
if (result == "Error")
{
return -1;
@@ -453,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)
{
@@ -470,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澶辫触
@@ -505,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);
@@ -551,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)
{
@@ -562,7 +539,7 @@
}
//娣诲姞缃戝叧鐨勮瘽,寮哄埗涓婚〉鍒锋柊
- UserView.UserPage.Instance.RefreshForm = true;
+ UserView.UserPage.Instance.RefreshAllForm = true;
return 1;
}
@@ -576,42 +553,30 @@
/// </summary>
/// <param name="zbGateway">缃戝叧瀵硅薄</param>
/// <param name="gatewayName">缃戝叧鍚�</param>
- public async Task<bool> ReName(ZbGateway zbGateway, string gatewayName)
+ public bool ReName(ZbGateway zbGateway, string gatewayName)
{
- ZbGateway realWay = null;
- if (this.GetRealGateway(ref realWay, zbGateway) == false)
+ //鍙彇32涓猙yte
+ var bytes = new byte[32];
+ var reamarkGwBytes = System.Text.Encoding.UTF8.GetBytes(gatewayName);
+ System.Array.Copy(reamarkGwBytes, 0, bytes, 0, 32 < reamarkGwBytes.Length ? 32 : reamarkGwBytes.Length);
+ gatewayName = System.Text.Encoding.UTF8.GetString(bytes);
+
+ var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 91 } };
+ var data = new Newtonsoft.Json.Linq.JObject { { "GwName", gatewayName } };
+ jObject.Add("Data", data);
+ var result = this.SendJobjectDataToGateway(zbGateway, "GwReName", jObject.ToString(), "GwReName_Respon");
+ if (result.ErrorMsg != null)
{
- //鑾峰彇缃戝叧瀵硅薄澶辫触
- string msg = Language.StringByID(R.MyInternationalizationString.uGetGatewayTagartFail);
- this.ShowErrorMsg(msg);
+ this.ShowTipMsg(result.ErrorMsg);
return false;
}
-
- var result = await realWay.GwReNameAsync(gatewayName);
- //妫�娴嬬綉鍏宠繑鍥炵殑鍏遍�氶敊璇姸鎬佺爜
- string error = HdlCheckLogic.Current.CheckCommonErrorCode(result);
- if (error != null)
- {
- this.ShowErrorMsg(error);
- return false;
- }
-
- if (result == null)
+ if (result.ErrorMsgDiv == 0)
{
//缃戝叧鍚嶇О淇敼澶辫触
string msg = Language.StringByID(R.MyInternationalizationString.uGatewayReNameFail);
-
- this.ShowErrorMsg(msg);
- return false;
- }
-
- //缃戝叧淇敼澶辫触
- if (result.gwReNameData == null)
- {
- //缃戝叧鍚嶇О淇敼澶辫触
- string msg = Language.StringByID(R.MyInternationalizationString.uGatewayReNameFail);
-
- this.ShowErrorMsg(msg);
+ //缃戝叧鍥炲瓒呮椂
+ msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, null, "鍥炲瓒呮椂");
+ this.ShowTipMsg(msg);
return false;
}
@@ -634,22 +599,19 @@
/// 鎵ц鍒囨崲缃戝叧鎿嶄綔
/// </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);
//鍒囨崲缃戝叧鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂�
- UserView.UserPage.Instance.RefreshForm = true;
+ UserView.UserPage.Instance.RefreshAllForm = true;
return true;
}
@@ -659,7 +621,7 @@
/// </summary>
/// <param name="gatewayId"></param>
/// <returns></returns>
- private async Task<bool> GetOnlineGatewayInfo(string gatewayId)
+ private bool GetOnlineGatewayInfo(string gatewayId)
{
//鏄剧ず杩涘害鏉�
ProgressBar.Show();
@@ -672,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)
{
//鍑虹幇鏈煡閿欒,璇风◢鍚庡啀璇�
@@ -694,7 +656,7 @@
if (getGatewayInfo == true)
{
//鑾峰彇缃戝叧淇℃伅
- var info = this.GetGatewayInfo(realWay);
+ var info = this.GetGatewayInfo(realWay, false);
if (info == null)
{
//鍏抽棴杩涘害鏉�
@@ -702,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)
@@ -721,8 +688,7 @@
public void SaveGatewayIdToLocation(string gatewayId)
{
GatewayResourse.AppOldSelectGatewayId = gatewayId;
- byte[] data = System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(GatewayResourse.AppOldSelectGatewayId));
- Global.WriteFileToDirectoryByBytes(DirNameResourse.LocalMemoryDirectory, DirNameResourse.AppOldSelectGatewayFile, data);
+ HdlFileLogic.Current.SaveFileContent(DirNameResourse.AppOldSelectGatewayFile, GatewayResourse.AppOldSelectGatewayId);
}
#endregion
@@ -732,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);
}
//鍒犻櫎浜戠鐨勭綉鍏�
@@ -771,7 +718,10 @@
//绉婚櫎
ZbGateway.GateWayList.RemoveAll((obj) => obj.GwId == zbGatewayID);
//鏂紑mqtt杩炴帴
- realWay.DisConnectLocalMqttClient("GD");
+ if (realWay != null)
+ {
+ realWay.DisConnectLocalMqttClient("GD");
+ }
return true;
}
@@ -1012,7 +962,7 @@
public List<string> GetAllGatewayFile()
{
List<string> list = new List<string>();
- List<string> listFile = Global.FileListByHomeId();
+ List<string> listFile = HdlFileLogic.Current.GetRootPathListFile();
foreach (string file in listFile)
{
//鍙幏鍙栫綉鍏宠澶�
@@ -1334,10 +1284,11 @@
/// 鑾峰彇缃戝叧鍔犵壒鏁堢殑鍚嶇О
/// </summary>
/// <param name="zbGateway"></param>
- /// <param name="mode"></param>
/// <returns></returns>
- public string GetGatewayName(ZbGateway zbGateway, GetNameMode mode = GetNameMode.SpecialGateway)
+ public string GetGatewayName(ZbGateway zbGateway)
{
+ if (zbGateway == null) { return string.Empty; }
+
string gwId = zbGateway.GwId;
if (this.dicGateway.ContainsKey(gwId) == false)
{
@@ -1351,14 +1302,10 @@
return name;
}
- if (mode == GetNameMode.SpecialGateway)
+ var nameContent = LocalDevice.Current.GetDeviceModelIdNameInfo(localWay.LinuxImageType.ToString());
+ if (nameContent != null)
{
- string keyName = Common.LocalDevice.deviceModelIdName + localWay.LinuxImageType;
- if (LocalDevice.Current.dicDeviceAllNameID.ContainsKey(keyName) == true)
- {
- //娌℃湁鍚嶇О鏃讹紝鍒欎娇鐢≧鏂囦欢閲岄潰璁剧疆鐨勯粯璁よ澶囧悕绉�
- return Language.StringByID(LocalDevice.Current.dicDeviceAllNameID[keyName] + 20000);
- }
+ return nameContent.A澶囨敞鍚嶅瓧;
}
return string.Empty;
@@ -1395,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
@@ -1407,7 +1353,7 @@
//缁欎竴涓嚎绋嬪幓鑾峰彇瀹冪殑闀滃儚绫诲瀷
HdlThreadLogic.Current.RunThread(() =>
{
- var result = this.GetGatewayInfo(zbGateway, ShowErrorMode.NO);
+ var result = this.GetGatewayInfo(zbGateway, false, ShowErrorMode.NO);
if (result != null)
{
//灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑
@@ -1415,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瀹樻柟鍚嶅瓧;
}
});
}
@@ -1428,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瀹樻柟鍚嶅瓧;
}
}
}
@@ -1445,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)
{
@@ -1500,6 +1445,7 @@
localWay.CoordinatorFirmwareVersion = data.ZbFWVersion;
localWay.CoordinatorImageId = data.ZbImageType;
localWay.DriveCodeList = data.DriveCodeList;
+ localWay.GwVersionDate = data.AppVersion;
if (saveFile == true)
{
localWay.ReSave();
@@ -1538,11 +1484,11 @@
/// <summary>
/// 鍙樻洿缃戝叧鎴块棿
/// </summary>
- /// <param name="zbGateway">缃戝叧瀵硅薄</param>
+ /// <param name="gwId">缃戝叧Id</param>
/// <param name="roomId">鎴块棿ID</param>
- public void ChangedGatewayRoom(ZbGateway zbGateway, string roomId)
+ public void ChangedGatewayRoom(string gwId, string roomId)
{
- var localGateway = this.GetLocalGateway(zbGateway.GwId);
+ var localGateway = this.GetLocalGateway(gwId);
if (localGateway != null)
{
localGateway.RoomId = roomId;
@@ -1554,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
@@ -1586,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;
@@ -1608,7 +1574,7 @@
if (flage == 1)
{
//娌$綉鐨勬椂鍊欎笉鍐嶅鐞�
- HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.Coordinator,
+ HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.A鍗忚皟鍣�,
localWay.CoordinatorHardVersion.ToString(),
localWay.CoordinatorImageId.ToString());
}
@@ -1620,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);
@@ -1638,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);
@@ -1671,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)
@@ -1706,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
@@ -1737,7 +1714,7 @@
//缁欎竴涓嚎绋嬪幓鑾峰彇瀹冪殑闀滃儚绫诲瀷
HdlThreadLogic.Current.RunThread(() =>
{
- var result = this.GetGatewayInfo(zbGateway, ShowErrorMode.NO);
+ var result = this.GetGatewayInfo(zbGateway, true, ShowErrorMode.NO);
if (result != null)
{
//灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑
@@ -1775,7 +1752,7 @@
//缁欎竴涓嚎绋嬪幓鑾峰彇瀹冪殑闀滃儚绫诲瀷
HdlThreadLogic.Current.RunThread(() =>
{
- var result = this.GetGatewayInfo(zbGateway, ShowErrorMode.NO);
+ var result = this.GetGatewayInfo(zbGateway, true, ShowErrorMode.NO);
if (result != null)
{
//灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑
@@ -1878,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;
@@ -1934,6 +1911,11 @@
this.ShowTipMsg(msg);
}
return false;
+ }
+ if (((decimal)Longitude) == 0 && ((decimal)Latitude) == 0)
+ {
+ //娌℃湁閰嶇疆杩囩粡绾害
+ return true;
}
int result = -1;
@@ -2008,9 +1990,9 @@
//鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken
Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
- List<string> listNotShowError = new List<string>() { "NoExist", "NoBind", "NoRecord" };
+ 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;
@@ -2034,9 +2016,7 @@
listBackupGwId.Add(strId);
//澶囦唤
- var strData = Newtonsoft.Json.JsonConvert.SerializeObject(listBackupGwId);
- var byteData = System.Text.Encoding.UTF8.GetBytes(strData);
- Global.WriteFileToDirectoryByBytes(DirNameResourse.LocalMemoryDirectory, DirNameResourse.BackupGatewayIdFile, byteData);
+ HdlFileLogic.Current.SaveFileContent(DirNameResourse.BackupGatewayIdFile, listBackupGwId);
}
}
@@ -2047,7 +2027,7 @@
{
HdlThreadLogic.Current.RunThread(() =>
{
- var fileData = Global.ReadFileByDirectory(DirNameResourse.LocalMemoryDirectory, DirNameResourse.BackupGatewayIdFile);
+ var fileData = HdlFileLogic.Current.ReadFileByteContent(DirNameResourse.BackupGatewayIdFile);
if (fileData == null)
{
return;
@@ -2065,7 +2045,7 @@
{
bindGateway.BindGateways.Clear();
bindGateway.BindGateways.Add(gwId);
- var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway);
+ var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, new List<string> { "NotCheck" }, false);
if (result == "Success")
{
this.listBackupGwId.Remove(gwId);
@@ -2079,7 +2059,7 @@
if (this.listBackupGwId.Count == 0)
{
//濡傛灉娌℃湁浜嗗唴瀹�,鍒欏垹闄ゆ枃浠�
- string file = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.BackupGatewayIdFile);
+ string file = DirNameResourse.BackupGatewayIdFile;
if (System.IO.File.Exists(file) == true)
{
System.IO.File.Delete(file);
@@ -2088,9 +2068,7 @@
else
{
//澶囦唤
- var strData = Newtonsoft.Json.JsonConvert.SerializeObject(listBackupGwId);
- var byteData = System.Text.Encoding.UTF8.GetBytes(strData);
- Global.WriteFileToDirectoryByBytes(DirNameResourse.LocalMemoryDirectory, DirNameResourse.BackupGatewayIdFile, byteData);
+ HdlFileLogic.Current.SaveFileContent(DirNameResourse.BackupGatewayIdFile, listBackupGwId);
}
});
}
@@ -2107,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();
@@ -2145,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