From 9c16d3614d9b88c637f967518a329f239fcd3aaf Mon Sep 17 00:00:00 2001
From: lss <316519258@qq.com>
Date: 星期五, 12 六月 2020 09:22:04 +0800
Subject: [PATCH] 2020.06.12

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs |   75 ++++++++++++++++++-------------------
 1 files changed, 37 insertions(+), 38 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs
index a1c6fb9..d98fca7 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs
@@ -18,38 +18,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)
                 {
@@ -156,6 +151,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 +191,7 @@
                     info.Name = data.Name;
                     info.HardwareVersion = hardCode;
                     info.ImagType = imgType;
+                    info.CreatedOnUtc = data.CreatedOnUtc;
                     imgTypeInfo.listVeison.Add(info);
                     //鍥轰欢鐨勪俊鎭鐞�
                     DoAdjustFirmwareInformation(info, data.Remarks);
@@ -218,6 +221,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 +356,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