From f3e65daca7978b21b5888f49b1bf35e1a6e5d4fd Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 13 七月 2020 12:33:31 +0800 Subject: [PATCH] 新版本 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs | 104 +++++++++++++++++++++++++-------------------------- 1 files changed, 51 insertions(+), 53 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs index a1c6fb9..0f70087 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs @@ -1,7 +1,6 @@ 锘縰sing System; using System.Collections.Generic; using System.Text; -using System.Threading.Tasks; namespace Shared.Phone.UserCenter { @@ -18,38 +17,33 @@ public static void DoUpdateNextFirmware() { //涓嬩竴涓鎵ц鏇存柊鐨勭綉鍏� - HdlGatewayUpdateLogic gwControl = null; - foreach (var contr in FirmwareUpdateResourse.dicGatewayUpdateList.Values) + HdlDeviceUpdateCommonLogic gwControl = null; + //涓嬩竴涓鎵ц鏇存柊鐨勮澶� + HdlDeviceUpdateCommonLogic deviceControl = null; + foreach (var contr in FirmwareUpdateResourse.dicUpdateList.Values) { //濡傛灉鍒殑杩樺湪鍗囩骇涓�,鍒欎笉鍐嶅鐞� if (contr.IsFinishUpdate == false) { return; } - //濡傛灉杩欎釜缃戝叧鏄湪绛夊緟鍒楄〃鐨勮瘽 + //濡傛灉杩欎釜鍦ㄧ瓑寰呭垪琛ㄧ殑璇� if (contr.UpdateStatu == UpdateStatuMode.Wait && gwControl == null) { - //涓嬩竴涓崌绾х殑灏辨槸瀹冧簡 - gwControl = contr; + if (contr.ClassDiv == 1 && gwControl == null) + { + //涓嬩竴涓崌绾х殑灏辨槸瀹冧簡 + gwControl = contr; + } + else if (contr.ClassDiv == 2 && deviceControl == null) + { + //涓嬩竴涓崌绾х殑灏辨槸瀹冧簡 + deviceControl = contr; + } } } - HdlDeviceUpdateLogic deviceControl = null; - foreach (var contr in FirmwareUpdateResourse.dicDeviceUpdateList.Values) - { - //濡傛灉鍒殑杩樺湪鍗囩骇涓�,鍒欎笉鍐嶅鐞� - if (contr.IsFinishUpdate == false) - { - return; - } - //濡傛灉杩欎釜璁惧鏄湪绛夊緟鍒楄〃鐨勮瘽 - if (contr.UpdateStatu == UpdateStatuMode.Wait && deviceControl == null) - { - //涓嬩竴涓崌绾х殑灏辨槸瀹冧簡 - deviceControl = contr; - } - } - HdlThreadLogic.Current.RunMain(() => + HdlThreadLogic.Current.RunThread(() => { if (gwControl != null) { @@ -71,18 +65,18 @@ #region 鈻� 娣诲姞鍗囩骇鍥轰欢淇℃伅___________________ /// <summary> - /// 娣诲姞鍗囩骇鍥轰欢淇℃伅 + /// 娣诲姞鍗囩骇鍥轰欢淇℃伅 1:姝e父 -1:娌$綉,鑾峰彇涓嶅埌涓滆タ /// </summary> /// <param name="levelType">鍥轰欢闃剁骇鍒嗙被</param> /// <param name="HardwareVersion">纭欢鐗堟湰</param> /// <param name="imgType">闀滃儚绫诲瀷</param> /// <returns></returns> - public async static Task<bool> AddFirmwareVersionInfo(FirmwareLevelType levelType, string HardwareVersion, string imgType) + public static int AddFirmwareVersionInfo(FirmwareLevelType levelType, string HardwareVersion, string imgType) { //妫�娴嬫湰鍦版槸鍚﹀凡缁忔湁杩欎釜缂撳瓨浜� if (IsEsixtFirmwareVersionInfo(levelType, HardwareVersion, imgType) == true) { - return true; + return 1; } var Pra = new GetFirmwareVersionPra(); Pra.PageSetting.Page = 1; @@ -95,7 +89,7 @@ Pra.FirmwareManaSecondType = 0; Pra.HardwareVersion = HardwareVersion; Pra.DeviceType = imgType; - var result = await GetFirmwareVersionAndSetToMemmory(FirmwareLevelType.Linux, Pra); + var result = GetFirmwareVersionAndSetToMemmory(FirmwareLevelType.Linux, Pra); return result; } else if (levelType == FirmwareLevelType.Coordinator) @@ -105,7 +99,7 @@ Pra.FirmwareManaSecondType = 1; Pra.HardwareVersion = HardwareVersion; Pra.DeviceType = imgType; - var result = await GetFirmwareVersionAndSetToMemmory(FirmwareLevelType.Coordinator, Pra); + var result = GetFirmwareVersionAndSetToMemmory(FirmwareLevelType.Coordinator, Pra); return result; } else if (levelType == FirmwareLevelType.VirtualDevice) @@ -115,7 +109,7 @@ Pra.FirmwareManaSecondType = 2; Pra.HardwareVersion = HardwareVersion; Pra.DeviceType = imgType; - var result = await GetFirmwareVersionAndSetToMemmory(FirmwareLevelType.VirtualDevice, Pra); + var result = GetFirmwareVersionAndSetToMemmory(FirmwareLevelType.VirtualDevice, Pra); return result; } else @@ -125,29 +119,29 @@ Pra.FirmwareManaSecondType = null; Pra.HardwareVersion = HardwareVersion; Pra.DeviceType = imgType; - var result = await GetFirmwareVersionAndSetToMemmory(FirmwareLevelType.ZigbeeDevice, Pra); + var result = GetFirmwareVersionAndSetToMemmory(FirmwareLevelType.ZigbeeDevice, Pra); return result; } } /// <summary> - /// 鑾峰彇浜戠鐨勫浐浠讹紝鐒跺悗瀛樺叆缂撳瓨涓� + /// 鑾峰彇浜戠鐨勫浐浠讹紝鐒跺悗瀛樺叆缂撳瓨涓� 1:姝e父 -1:娌$綉,鑾峰彇涓嶅埌涓滆タ /// </summary> /// <param name="levelType"></param> /// <param name="pra"></param> /// <returns></returns> - private async static Task<bool> GetFirmwareVersionAndSetToMemmory(FirmwareLevelType levelType, GetFirmwareVersionPra pra) + private static int GetFirmwareVersionAndSetToMemmory(FirmwareLevelType levelType, GetFirmwareVersionPra pra) { - var listNotShow = new List<string>() { "NotSetAgain" }; - string resultValue = await UserCenterLogic.GetResponseDataByRequestHttps("FirmwareMana/DetectionPlatformUploadFirmware", false, pra, listNotShow); + var listCheck = new List<string> { "NotCheck" }; + string resultValue = UserCenterLogic.GetResponseDataByRequestHttps("FirmwareMana/DetectionPlatformUploadFirmware", false, pra, listCheck); if (string.IsNullOrEmpty(resultValue) == true) { - return false; + return -1; } var verResult = Newtonsoft.Json.JsonConvert.DeserializeObject<FirmwareVersionResult>(resultValue); if (verResult.PageData.Count == 0) { - return true; + return 1; } //纭欢鐗堟湰 @@ -156,6 +150,13 @@ foreach (var data in verResult.PageData) { + //鍥轰欢鐗堟湰鏄剧ず锛� + //10101 3涓猙yte 鏄剧ず涓猴細ver.1.01.01 + if (data.FirmwareVersion.Length != 6 && data.FirmwareVersion.Length != 5) + { + //闈炴瑙勭殑鍥轰欢鐗堟湰,涓嶅啀鑰冭檻鑼冨洿鍐� + continue; + } //纭欢鍒嗙被 FirmwareHardInfo hardInfo = null; string hardCode = data.HardwareVersion; @@ -189,6 +190,7 @@ info.Name = data.Name; info.HardwareVersion = hardCode; info.ImagType = imgType; + info.CreatedOnUtc = data.CreatedOnUtc; imgTypeInfo.listVeison.Add(info); //鍥轰欢鐨勪俊鎭鐞� DoAdjustFirmwareInformation(info, data.Remarks); @@ -196,7 +198,7 @@ catch { continue; } } - return true; + return 1; } #endregion @@ -218,6 +220,19 @@ FirmwareVersionInfo newFirInfo = null; foreach (var verInfo in listdata) { + if (verInfo.Name.EndsWith(".bin") == true) + { + //瀹冧笉鏄崌绾у浐浠�, .bin鏄壒娈婄殑 + continue; + } + int testVersion = Convert.ToInt32(verInfo.FirmwareVersion.ToString().PadLeft(6, '0').Substring(2, 2)); + if (testVersion % 2 != 0) + { + //涓棿閭d釜byte涓哄鏁版椂锛屼唬琛ㄦ槸娴嬭瘯鐗堟湰,鍦ㄦ樉绀烘渶鏂扮増鏈椂,涓嶉渶瑕佹樉绀猴紝浣嗘槸鍦ㄥ巻鍙茬増鏈偅閲屽彲浠ユ樉绀� + //涓棿閭d釜byte涓哄伓鏁版椂,浠h〃鏄寮忕増鏈� + continue; + } + if (verInfo.FirmwareVersion > nowVersion) { nowVersion = verInfo.FirmwareVersion; @@ -340,23 +355,6 @@ Info.UpdateContent.AddRange(Arry); } - /// <summary> - /// 灏嗗崄鍏繘鍒惰浆涓哄崄杩涘埗 - /// </summary> - /// <param name="text"></param> - /// <returns></returns> - private static int ConvertHexToInt(string text) - { - if (text.StartsWith("0x")) - { - text = text.Substring(2); - } - try - { - return Convert.ToInt32(text, 16); - } - catch { return -1; } - } #endregion } } -- Gitblit v1.8.0