From ecba45c93391066bc30c7bd602c3a7683fbb99a7 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期五, 31 七月 2020 10:56:12 +0800 Subject: [PATCH] 临时备份 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs | 298 ----------------------------------------------------------- 1 files changed, 1 insertions(+), 297 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs index 2bdb33a..285c6f6 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 ZigBee.Device; namespace Shared.Phone.UserCenter { @@ -134,7 +133,7 @@ private static int GetFirmwareVersionAndSetToMemmory(FirmwareLevelType levelType, GetFirmwareVersionPra pra) { var listCheck = new List<string> { "NotCheck" }; - string resultValue = UserCenterLogic.GetResponseDataByRequestHttps("FirmwareMana/DetectionPlatformUploadFirmware", false, pra, listCheck, false); + string resultValue = UserCenterLogic.GetResponseDataByRequestHttps("FirmwareMana/DetectionPlatformUploadFirmware", false, pra, listCheck); if (string.IsNullOrEmpty(resultValue) == true) { return -1; @@ -311,45 +310,6 @@ #endregion - #region 鈻� 鑾峰彇鎸囧畾鍥轰欢鐗堟湰淇℃伅_______________ - - /// <summary> - /// 鑾峰彇鎸囧畾鍥轰欢鐨勭増鏈俊鎭�(濡傛灉杩斿洖Null,鍒欒〃绀烘病鏈夎繖涓浐浠�) - /// </summary> - /// <param name="levelType">鍥轰欢闃剁骇鍒嗙被</param> - /// <param name="HardwareVersion">纭欢鐗堟湰</param> - /// <param name="imgType">闀滃儚绫诲瀷</param> - /// <param name="nowVersion">鐜板湪鐨勭増鏈�</param> - /// <returns></returns> - public static FirmwareVersionInfo GetFirmwareVersionInfo(FirmwareLevelType levelType, string HardwareVersion, string imgType, int nowVersion) - { - //闀滃儚绫诲瀷 - var listdata = GetFirmwareVersionListInfo(levelType, HardwareVersion, imgType); - 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) - { - return verInfo; - } - } - return null; ; - } - - #endregion - #region 鈻� 鍥轰欢瀛樺湪妫�娴媉______________________ /// <summary> @@ -377,262 +337,6 @@ return false; } return true; - } - - /// <summary> - /// 妫�娴嬭Ota璁惧鐨勫崌绾у浐浠舵槸鍚﹀瓨鍦� - /// </summary> - /// <param name="device">璁惧瀵硅薄</param> - /// <returns></returns> - public static bool IsEsixtDeviceFirmwareFile(OTADevice device) - { - var fileFullName = GetDeviceFirmwareFile(device); - return System.IO.File.Exists(fileFullName); - } - - /// <summary> - /// 鑾峰彇ota鎸囧畾鐨勫崌绾у浐浠跺悕瀛�(鍏ㄨ矾寰�) - /// </summary> - /// <param name="device">璁惧瀵硅薄</param> - /// <returns></returns> - public static string GetDeviceFirmwareFile(OTADevice device) - { - //纭欢鐗堟湰_闀滃儚ID_鍥轰欢鐗堟湰 - string fileName = device.HwVersion + "_" + device.ImgTypeId + "_" + device.ImgVersion; - return System.IO.Path.Combine(DirNameResourse.FirmwareUpdateDirectory, "Device_" + fileName + ".ota"); - } - - /// <summary> - /// 鑾峰彇缃戝叧Linux鐨勫崌绾у浐浠跺悕瀛�(鍏ㄨ矾寰�) - /// </summary> - /// <param name="zbGateway">缃戝叧瀵硅薄</param> - /// <returns></returns> - public static string GetGatewayLinuxFirmwareFile(ZbGateway zbGateway) - { - string fileName = zbGateway.LinuxHardVersion + "_" + zbGateway.LinuxImageType + "_" + zbGateway.LinuxFirmwareVersion; - return System.IO.Path.Combine(DirNameResourse.FirmwareUpdateDirectory, "Linux_" + fileName + ".ota"); - } - - /// <summary> - /// 鑾峰彇缃戝叧鍗忚皟鍣ㄧ殑鍗囩骇鍥轰欢鍚嶅瓧(鍏ㄨ矾寰�) - /// </summary> - /// <param name="zbGateway">缃戝叧瀵硅薄</param> - /// <returns></returns> - public static string GetGatewayCoordinatorFirmwareFile(ZbGateway zbGateway) - { - string fileName = zbGateway.CoordinatorHardVersion + "_" + zbGateway.CoordinatorImageId + "_" + zbGateway.CoordinatorFirmwareVersion; - return System.IO.Path.Combine(DirNameResourse.FirmwareUpdateDirectory, "Coordinator_" + fileName + ".ota"); - } - - /// <summary> - /// 鑾峰彇缃戝叧铏氭嫙椹卞姩鐨勫崌绾у浐浠跺悕瀛�(鍏ㄨ矾寰�) - /// </summary> - /// <param name="codeObj">铏氭嫙椹卞姩鏁版嵁</param> - /// <returns></returns> - public static string GetGatewayDriveCodeFirmwareFile(ZbGatewayData.DriveCodeObj codeObj) - { - string fileName = codeObj.DriveHwVersion + "_" + codeObj.DriveImageType + "_" + codeObj.DriveFwVersion; - return System.IO.Path.Combine(DirNameResourse.FirmwareUpdateDirectory, "DriveCode_" + fileName + ".ota"); - } - - #endregion - - #region 鈻� 涓嬭浇妯℃澘鍥轰欢_______________________ - - /// <summary> - /// 涓嬭浇妯℃澘涓綉鍏冲拰璁惧鐨勫浐浠� - /// </summary> - /// <param name="fullFileName"></param> - /// <param name="i_Msg"></param> - public static int DownLoadTemplateDeviceFirmware(string fullFileName, string i_Msg) - { - //浠庢ā鏉垮綋涓幏鍙栬澶囧拰缃戝叧瀵硅薄 - var listTempDevice = new List<OTADevice>(); - var listTempGateway = new List<ZbGateway>(); - TemplateData.TemplateCommonLogic.Current.GetDeviceObjectFromTemplate(fullFileName, ref listTempDevice, ref listTempGateway); - - //鑾峰彇闇�瑕佷笅杞界殑鍥轰欢鏁版嵁 - var listVersion = GetNeedToDownLoadVersionData(listTempDevice, listTempGateway); - if (listVersion.Count == 0) - { - return 0; - } - //鎵撳紑杩涘害鏉� - ProgressFormBar.Current.Start(); - ProgressFormBar.Current.SetMsg(i_Msg); - ProgressFormBar.Current.SetValue(0, 1); - - System.Threading.Thread.Sleep(1000); - - var dicFirmwareName = new Dictionary<string, string>(); - var fileData = HdlFileLogic.Current.ReadFileTextContent(DirNameResourse.FirmwareUpdateList); - if (fileData != null) - { - //鏈湴瀛樻斁鐨勫浐浠跺師鏉ョ殑鍚嶅瓧(鍥犱负璁惧鍗囩骇鏃�,瀹冮渶瑕佽瘑鍒枃浠跺悕瀛楅噷闈㈠寘鍚殑鐗规畩瀛楃) - //key:纭欢鐗堟湰_闀滃儚ID_鍥轰欢鐗堟湰 value:鍥轰欢鍘熸潵鐨勫悕瀛� - dicFirmwareName = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(fileData); - } - - //鍥轰欢瀛樺偍璺緞 - string firmwareDir = DirNameResourse.FirmwareUpdateDirectory; - int nowCount = 0; - foreach (var versionData in listVersion) - { - nowCount++; - //鑾峰彇鍗囩骇鍥轰欢淇℃伅 - var result = AddFirmwareVersionInfo(versionData.levelType, versionData.HwVersion, versionData.ImageType); - if (result == -1) - { - ProgressFormBar.Current.Close(); - return -1; - } - //鑾峰彇褰撳墠杩欎釜鐗堟湰鐨勫浐浠朵俊鎭� - var versionFirmware = GetFirmwareVersionInfo(versionData.levelType, versionData.HwVersion, versionData.ImageType, versionData.FirmwareVersion); - if (versionFirmware == null) - { - //浜戠娌℃湁杩欎釜鐗堟湰 杩涘害鍊� - ProgressFormBar.Current.SetValue(nowCount, listVersion.Count); - continue; - } - //鍘讳笅杞借繖涓浐浠� - var pra = new { RequestVersion = Common.CommonPage.RequestVersion, DistributedMark = versionFirmware.DistributedMark }; - var byteData = UserCenterLogic.GetByteResponseDataByRequestHttps("FirmwareMana/DownloadPlatformUploadFirmware", false, pra, null, true); - if (byteData == null) - { - ProgressFormBar.Current.Close(); - return -1; - } - //淇濆瓨鍥轰欢 - var saveFile = System.IO.Path.Combine(firmwareDir, versionData.FileDiv + versionData.HwVersion + "_" + versionData.ImageType + "_" + versionData.FirmwareVersion + ".ota"); - HdlFileLogic.Current.SaveTextToFile(saveFile, Encoding.UTF8.GetString(byteData)); - dicFirmwareName[saveFile] = versionFirmware.Name; - - //杩涘害鍊� - ProgressFormBar.Current.SetValue(nowCount, listVersion.Count); - } - //淇濆瓨鍒楄〃鍚嶅瓧 - HdlFileLogic.Current.SaveFileContent(DirNameResourse.FirmwareUpdateList, dicFirmwareName); - ProgressFormBar.Current.Close(); - - return 1; - } - - /// <summary> - /// 鑾峰彇闇�瑕佷笅杞界殑鍥轰欢鏁版嵁 - /// </summary> - /// <param name="listDevice">璁惧鍒楄〃</param> - /// <param name="listGateway">缃戝叧鍒楄〃</param> - /// <returns></returns> - private static List<TemplateDeviceVersion> GetNeedToDownLoadVersionData(List<OTADevice> listDevice, List<ZbGateway> listGateway) - { - //瀛樺偍璺緞 - string firmwareDir = DirNameResourse.FirmwareUpdateDirectory; - HdlFileLogic.Current.CreateDirectory(firmwareDir); - - var listVersion = new List<TemplateDeviceVersion>(); - var listCheck = new HashSet<string>(); - foreach (var device in listDevice) - { - //璁惧鐨勫崌绾у浐浠跺悕瀛� - var fileFullName = GetDeviceFirmwareFile(device); - if (System.IO.File.Exists(fileFullName) == false && listCheck.Contains(fileFullName) == false) - { - listCheck.Add(fileFullName); - //璁惧 - listVersion.Add(new TemplateDeviceVersion - { - FileDiv = "Device_", - levelType = FirmwareLevelType.ZigbeeDevice, - HwVersion = device.HwVersion.ToString(), - ImageType = device.ImgTypeId.ToString(), - FirmwareVersion = device.ImgVersion - }); - } - } - foreach (var gateway in listGateway) - { - //Linux鐨勫崌绾у浐浠跺悕瀛� - var fileFullName = GetGatewayLinuxFirmwareFile(gateway); - if (System.IO.File.Exists(fileFullName) == false && listCheck.Contains(fileFullName) == false) - { - listCheck.Add(fileFullName); - //Linux - listVersion.Add(new TemplateDeviceVersion - { - FileDiv = "Linux_", - levelType = FirmwareLevelType.Linux, - HwVersion = gateway.LinuxHardVersion.ToString(), - ImageType = gateway.LinuxImageType.ToString(), - FirmwareVersion = gateway.LinuxFirmwareVersion - }); - } - //鍗忚皟鍣ㄧ殑鍗囩骇鍥轰欢鍚嶅瓧 - fileFullName = GetGatewayCoordinatorFirmwareFile(gateway); - if (System.IO.File.Exists(fileFullName) == false && listCheck.Contains(fileFullName) == false) - { - listCheck.Add(fileFullName); - //鍗忚皟鍣� - listVersion.Add(new TemplateDeviceVersion - { - FileDiv = "Coordinator_", - levelType = FirmwareLevelType.Coordinator, - HwVersion = gateway.CoordinatorHardVersion.ToString(), - ImageType = gateway.CoordinatorImageId.ToString(), - FirmwareVersion = gateway.CoordinatorFirmwareVersion - }); - } - //杩欎釜缃戝叧闇�瑕佹湁铏氭嫙椹卞姩杩欎釜涓滆タ鎵嶈 - if (gateway.LinuxImageType != 6) - { - //铏氭嫙椹卞姩鍙� - foreach (var data in gateway.DriveCodeList) - { - //铏氭嫙椹卞姩鍙风殑鍗囩骇鍥轰欢鍚嶅瓧 - fileFullName = GetGatewayDriveCodeFirmwareFile(data); - if (System.IO.File.Exists(fileFullName) == false && listCheck.Contains(fileFullName) == false) - { - listCheck.Add(fileFullName); - //铏氭嫙椹卞姩鍙� - listVersion.Add(new TemplateDeviceVersion - { - FileDiv = "DriveCode_", - levelType = FirmwareLevelType.VirtualDevice, - HwVersion = data.DriveHwVersion.ToString(), - ImageType = data.DriveImageType.ToString(), - FirmwareVersion = data.DriveFwVersion - }); - } - } - } - } - return listVersion; - } - - /// <summary> - /// 妯℃澘璁惧鐨勭増鏈俊鎭� - /// </summary> - private class TemplateDeviceVersion - { - /// <summary> - /// 鏂囦欢鍖哄垎 - /// </summary> - public string FileDiv = string.Empty; - /// <summary> - /// 鍥轰欢闃剁骇鍖哄垎 - /// </summary> - public FirmwareLevelType levelType; - /// <summary> - /// 纭欢鐗堟湰 - /// </summary> - public string HwVersion = string.Empty; - /// <summary> - /// 闀滃儚ID - /// </summary> - public string ImageType = string.Empty; - /// <summary> - /// 鍥轰欢鐗堟湰 - /// </summary> - public int FirmwareVersion = 0; } #endregion -- Gitblit v1.8.0