From dee21bf452a8979d0515d13e534fbb69ed9715dd Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 01 九月 2020 15:33:13 +0800
Subject: [PATCH] 上传一个版本

---
 ZigbeeApp/Shared/Phone/TemplateData/TemplateCommonLogic.cs |   58 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 43 insertions(+), 15 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/TemplateData/TemplateCommonLogic.cs b/ZigbeeApp/Shared/Phone/TemplateData/TemplateCommonLogic.cs
index 4537e58..f435350 100755
--- a/ZigbeeApp/Shared/Phone/TemplateData/TemplateCommonLogic.cs
+++ b/ZigbeeApp/Shared/Phone/TemplateData/TemplateCommonLogic.cs
@@ -130,7 +130,7 @@
             //璇诲彇妯℃澘Bin鏂囦欢
             if (templateBinFile != string.Empty)
             {
-                bool hadRoom = HdlRoomLogic.Current.GetAllListRooms().Count > 1;
+                bool hadRoom = HdlRoomLogic.Current.GetAllListRooms().Count > 1 && Common.Config.Instance.Home.FloorDics.Count == 0;
                 //寮�濮嬭鍙栨枃浠跺唴瀹�
                 this.ReadTemplateFileMethord((strData, saveDiv, deviceType) =>
                 {
@@ -192,6 +192,7 @@
                 {
                     //鍙垵濮嬪寲涓�娆�,鏈夋埧闂存椂浠h〃宸茬粡涓嶆槸绗竴娆″姞杞戒簡
                     Common.Config.Instance.Home.FloorDics = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(this.strTempContentData);
+                    Common.Config.Instance.Home.Save(false);
                 }
                 this.strTempContentData = string.Empty;
                 return true;
@@ -265,6 +266,16 @@
 
             //鍐嶆鍒濆鍖栨埧闂�
             HdlRoomLogic.Current.InitAllRoom();
+
+            //鏃犳ā鏉挎ā寮忔椂,鎭㈠澶囦唤鐨勬椂鍊�,鎶婂浠芥枃浠跺垹闄�
+            if (Common.Config.Instance.Home.TemplateMode != 2)
+            {
+                //瀛樻斁鐨勮矾寰�
+                string fullFile = System.IO.Path.Combine(DirNameResourse.LocalTemplateDirectory, TemplateFileName);
+                HdlFileLogic.Current.DeleteFile(fullFile);
+            }
+            //瑕嗙洊鐗╃悊璁惧鎵�鍦ㄧ殑鎴块棿鏁版嵁
+            HdlFileLogic.Current.SaveFileContent(DirNameResourse.DeviceRoomIdFile, this.modelData.dicDeviceTemplateRealRoom);
         }
 
         /// <summary>
@@ -285,6 +296,7 @@
             else if (strData == "#FloorInfo END#")
             {
                 Common.Config.Instance.Home.FloorDics = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(this.strTempContentData);
+                Common.Config.Instance.Home.Save(false);
                 this.strTempContentData = string.Empty;
                 return true;
             }
@@ -909,13 +921,10 @@
             var listRoom = HdlRoomLogic.Current.GetAllListRooms();
             foreach (var room in listRoom)
             {
-                if (room.IsLove == false)
-                {
-                    writeText += "#START#\r\n";
-                    string dataInfo2 = Newtonsoft.Json.JsonConvert.SerializeObject(room);
-                    writeText += dataInfo2 + "\r\n";
-                    writeText += "#RoomInfo END#\r\n\r\n";
-                }
+                writeText += "#START#\r\n";
+                string dataInfo2 = Newtonsoft.Json.JsonConvert.SerializeObject(room);
+                writeText += dataInfo2 + "\r\n";
+                writeText += "#RoomInfo END#\r\n\r\n";
             }
             //鐗╃悊缃戝叧鎵�鍦ㄧ殑鎴块棿
             var dicRealRoom = new Dictionary<string, string>();
@@ -1493,9 +1502,9 @@
         /// 鑾峰彇闇�瑕佸崌绾х殑缃戝叧瀵硅薄(key:鏈湴缃戝叧鐨刬d value:鍗囩骇鍥轰欢鍦板潃,绗竴浣嶆槸Linux,绗簩浣嶆槸鍗忚皟鍣�,涔嬪悗閮芥槸铏氭嫙椹卞姩)
         /// </summary>
         /// <returns></returns>
-        public Dictionary<string, List<string>> GetNeedToUpdateGateway()
+        public Dictionary<string, List<GatewayNeedUpdateInfo>> GetNeedToUpdateGateway()
         {
-            var dicGateway = new Dictionary<string, List<string>>();
+            var dicGateway = new Dictionary<string, List<GatewayNeedUpdateInfo>>();
             //寰幆缃戝叧鍖归厤鐨勬ā鏉�
             foreach (var localId in this.modelData.dicGatewayTemplateSelect.Keys)
             {
@@ -1514,8 +1523,9 @@
                 }
                 var tempGateway = this.modelData.dicGatewayInfo[tempId];
                 //鍒濆鍖栧鍣�
-                dicGateway[localId] = new List<string>() { null, null };
+                var listUpdateInfo = new List<GatewayNeedUpdateInfo>() { null, null };
 
+                bool needUpdate = false;
                 //Linux鐗堟湰姣旇緝
                 if (tempGateway.LinuxFirmwareVersion != localGateway.LinuxFirmwareVersion)
                 {
@@ -1524,7 +1534,11 @@
                     if (System.IO.File.Exists(updateFile) == true)
                     {
                         //濡傛灉瀛樺湪鐨勮瘽
-                        dicGateway[localId][0] = updateFile;
+                        var info = new GatewayNeedUpdateInfo();
+                        info.Div = 1;
+                        info.FullFileName = updateFile;
+                        listUpdateInfo[0] = info;
+                        needUpdate = true;
                     }
                 }
                 //鍗忚皟鍣ㄧ増鏈瘮杈�
@@ -1535,7 +1549,11 @@
                     if (System.IO.File.Exists(updateFile) == true)
                     {
                         //濡傛灉瀛樺湪鐨勮瘽
-                        dicGateway[localId][1] = updateFile;
+                        var info = new GatewayNeedUpdateInfo();
+                        info.Div = 2;
+                        info.FullFileName = updateFile;
+                        listUpdateInfo[1] = info;
+                        needUpdate = true;
                     }
                 }
                 //铏氭嫙椹卞姩姣旇緝
@@ -1546,19 +1564,29 @@
                         foreach (var tempCode in tempGateway.DriveCodeList)
                         {
                             //闃叉瀹冩斁鐨勯『搴忎笉鏍�
-                            if (localCode.DriveId == tempCode.DriveId && localCode.DriveFwVersion != tempCode.DriveFwVersion)
+                            if (localCode.DriveCode == tempCode.DriveCode && localCode.DriveFwVersion != tempCode.DriveFwVersion)
                             {
                                 //铏氭嫙椹卞姩鍗囩骇鍥轰欢鏂囦欢鍏ㄨ矾寰�
                                 string updateFile = HdlFirmwareUpdateLogic.GetGatewayDriveCodeFirmwareFile(tempCode);
                                 if (System.IO.File.Exists(updateFile) == true)
                                 {
                                     //濡傛灉瀛樺湪鐨勮瘽
-                                    dicGateway[localId].Add(updateFile);
+                                    var info = new GatewayNeedUpdateInfo();
+                                    info.Div = 3;
+                                    info.DriveCode = tempCode.DriveCode;
+                                    info.FullFileName = updateFile;
+                                    listUpdateInfo.Add(info);
+                                    needUpdate = true;
                                 }
                             }
                         }
                     }
                 }
+                //娣诲姞鐩爣缂撳瓨
+                if (needUpdate == true)
+                {
+                    dicGateway[localId] = listUpdateInfo;
+                }
             }
 
             return dicGateway;

--
Gitblit v1.8.0