From b02e8275a21dc06bf54b66273485d44e007a2616 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期一, 20 七月 2020 14:50:17 +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