From c0ce2f57a4f836ebeb9e7b8b4b5a4407fd78dc86 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期三, 23 九月 2020 10:06:05 +0800 Subject: [PATCH] 上传 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs | 72 ++++++++++++++++++++++++++++++++++-- 1 files changed, 68 insertions(+), 4 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs index 45aed43..36407c7 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs @@ -445,7 +445,11 @@ //鑾峰彇闇�瑕佷笅杞界殑鍥轰欢鏁版嵁 var listVersion = GetNeedToDownLoadVersionData(listTempDevice, listTempGateway); - if (listVersion.Count == 0) + //鑾峰彇闇�瑕佷笅杞界殑绌鸿皟妯″潡 + var listAcOta = new List<OTADevice>(); + var listAcUpdate = GetNeedDownLoadAirConditionerModule(listTempDevice, ref listAcOta); + + if (listVersion.Count == 0 && listAcUpdate.Count == 0) { return 0; } @@ -468,6 +472,8 @@ //鍥轰欢瀛樺偍璺緞 string firmwareDir = DirNameResourse.FirmwareUpdateDirectory; int nowCount = 0; + int macCount = listVersion.Count + listAcUpdate.Count; + foreach (var versionData in listVersion) { nowCount++; @@ -476,6 +482,8 @@ if (result == -1) { ProgressFormBar.Current.Close(); + //淇濆瓨鍒楄〃鍚嶅瓧 + HdlFileLogic.Current.SaveFileContent(DirNameResourse.FirmwareUpdateList, dicFirmwareName); return -1; } //鑾峰彇褰撳墠杩欎釜鐗堟湰鐨勫浐浠朵俊鎭� @@ -483,15 +491,17 @@ if (versionFirmware == null) { //浜戠娌℃湁杩欎釜鐗堟湰 杩涘害鍊� - ProgressFormBar.Current.SetValue(nowCount, listVersion.Count); + ProgressFormBar.Current.SetValue(nowCount, macCount); continue; } //鍘讳笅杞借繖涓浐浠� var pra = new { RequestVersion = Common.CommonPage.RequestVersion, DistributedMark = versionFirmware.DistributedMark }; - var byteData = UserCenterLogic.GetByteResponseDataByRequestHttps("FirmwareMana/DownloadPlatformUploadFirmware", false, pra, null, true); + var byteData = UserCenterLogic.GetByteResponseDataByRequestHttps("FirmwareMana/DownloadPlatformUploadFirmware", false, pra, new List<string> { "NotCheck" }, true); if (byteData == null) { ProgressFormBar.Current.Close(); + //淇濆瓨鍒楄〃鍚嶅瓧 + HdlFileLogic.Current.SaveFileContent(DirNameResourse.FirmwareUpdateList, dicFirmwareName); return -1; } //淇濆瓨鍥轰欢 @@ -500,8 +510,29 @@ dicFirmwareName[saveFile] = versionFirmware.Name; //杩涘害鍊� - ProgressFormBar.Current.SetValue(nowCount, listVersion.Count); + ProgressFormBar.Current.SetValue(nowCount, macCount); } + for (int i = 0; i < listAcUpdate.Count; i++) + { + //涓嬭浇绌鸿皟妯″潡 + var pra = new { RequestVersion = Common.CommonPage.RequestVersion, DistributedMark = listAcUpdate[i].DistributedMark }; + var deviceFirmwareByte = UserCenterLogic.GetByteResponseDataByRequestHttps("FirmwareMana/DownloadPlatformUploadFirmware", false, pra, new List<string> { "NotCheck" }, true); + if (deviceFirmwareByte == null) + { + ProgressFormBar.Current.Close(); + //淇濆瓨鍒楄〃鍚嶅瓧 + HdlFileLogic.Current.SaveFileContent(DirNameResourse.FirmwareUpdateList, dicFirmwareName); + return -1; + } + //淇濆瓨鍥轰欢 + string fileName = "AC_" + listAcOta[i].HwVersion + "_" + listAcOta[i].ImgTypeId + "_" + listAcUpdate[i].Name; + var saveFile = System.IO.Path.Combine(firmwareDir, fileName); + HdlFileLogic.Current.SaveByteToFile(saveFile, deviceFirmwareByte); + + //杩涘害鍊� + ProgressFormBar.Current.SetValue(nowCount, macCount); + } + //淇濆瓨鍒楄〃鍚嶅瓧 HdlFileLogic.Current.SaveFileContent(DirNameResourse.FirmwareUpdateList, dicFirmwareName); ProgressFormBar.Current.Close(); @@ -601,6 +632,39 @@ } /// <summary> + /// 鑾峰彇闇�瑕佷笅杞界殑绌鸿皟妯″潡 + /// </summary> + /// <param name="listDevice">璁惧鍒楄〃</param> + /// <param name="listTaget">涓庤繑鍥炲�煎搴旂殑涓滆タ</param> + private static List<FirmwareVersionInfo> GetNeedDownLoadAirConditionerModule(List<OTADevice> listDevice, ref List<OTADevice> listTaget) + { + var listUpdate = new List<FirmwareVersionInfo>(); + //鍥轰欢瀛樺偍璺緞 + string firmwareDir = DirNameResourse.FirmwareUpdateDirectory; + + foreach (var otaDevice in listDevice) + { + var myType = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice> { otaDevice }); + if (myType.ConcreteType != Common.DeviceConcreteType.AirConditioner_ZbGateway) + { + //鍙鐞嗕腑澶┖璋� + continue; + } + var list = GetFirmwareVersionListInfo(FirmwareLevelType.A璁惧, otaDevice.HwVersion.ToString(), otaDevice.ImgTypeId.ToString()); + foreach (var data in list) + { + if (data.Name.EndsWith(".bin") == true && System.IO.File.Exists(firmwareDir) == false) + { + //鍙.bin鏂囦欢 + listUpdate.Add(data); + listTaget.Add(otaDevice); + } + } + } + return listUpdate; + } + + /// <summary> /// 妯℃澘璁惧鐨勭増鏈俊鎭� /// </summary> private class TemplateDeviceVersion -- Gitblit v1.8.0