From 23ca39219c5075d829d14137cb54896a24ae513d Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期五, 04 十二月 2020 13:57:08 +0800
Subject: [PATCH] 20201204

---
 HDL_ON/Entity/DB_ResidenceData.cs |  266 ++++++-----------------------------------------------
 1 files changed, 31 insertions(+), 235 deletions(-)

diff --git a/HDL_ON/Entity/DB_ResidenceData.cs b/HDL_ON/Entity/DB_ResidenceData.cs
index 442564e..5410f8b 100644
--- a/HDL_ON/Entity/DB_ResidenceData.cs
+++ b/HDL_ON/Entity/DB_ResidenceData.cs
@@ -17,11 +17,6 @@
         /// </summary>
         public string MasterToken;
         /// <summary>
-        /// 0:bus缃戝叧
-        /// 1:A鍗忚缃戝叧
-        /// </summary>
-        public int GatewayType = 1;
-        /// <summary>
         /// 浣忓畢鍩虹淇℃伅
         /// </summary>
         public RegionInfoRes residecenInfo
@@ -150,7 +145,7 @@
                     }
                     instance.residenceImage = "Classification/Room/Roombg.png";
                     //鍒濆鍖栦綇瀹呭姛鑳芥暟鎹�
-                    InitRoomFunction();
+                    SpatialInfo.CurrentSpatial.InitRoomFunction();
 
                 }
                 return instance;
@@ -162,9 +157,9 @@
         public void EixtAccount()
         {
             instance = null;
-            ins_Room = null;
+            Rooms = null;
             ins_OidList = null;
-            ins_Function = null;
+            functionList = null;
             if (MainPage.IsRemote)
             {
                 DAL.Mqtt.MqttClient.DisConnectRemote("閫�鍑虹櫥褰曪紝鎴栬�呭垏鎹綇瀹�");
@@ -176,6 +171,29 @@
         /// </summary>
         public HomeGatewayInfo HomeGateway;
 
+        /// <summary>
+        /// 0:bus缃戝叧
+        /// 1:A鍗忚缃戝叧
+        /// </summary>
+        public int GatewayType
+        {
+            get
+            {
+                //#if DEBUG
+                //return 0;
+                //#endif
+                if (HomeGateway == null)
+                    return -1;
+                if (HomeGateway.gatewayType == "AGATEWAY")
+                {
+                    return 1;
+                }
+                else
+                {
+                    return 0;
+                }
+            }
+        }
         /// <summary>
         /// 妫�娴嬩綇瀹呮槸鍚︾粦瀹氫簡缃戝叧
         /// </summary>
@@ -247,248 +265,26 @@
         /// </summary>
         public string CurFoor = Language.StringByID(StringId.All);
 
-
-
-        #region 鎴块棿鏁版嵁鐩稿叧
         /// <summary>
-        /// 鍒濆鍖栨瘡涓埧闂寸殑鍔熻兘鏁版嵁
+        /// 鎴块棿鍒楄〃
         /// </summary>
-        public static void InitRoomFunction()
-        {
-            new Thread(() =>
-            {
-                try
-                {
-                    //鍒濆鍖栦綇瀹呮墍鏈夋埧闂村姛鑳芥暟鎹�
-                    foreach (var r in Rooms)
-                    {
-                        r.GetRoomFunctions(true);
-                        r.GetRoomScenes(true);
-                    }
-                }
-                catch (Exception ex)
-                {
-                    MainPage.Log($"Init room function error : {ex.Message}");
-                }
-            })
-            { IsBackground = true }.Start();
-        }
-
-        static List<Room> ins_Room;
-        public static List<Room> Rooms
-        {
-            get
-            {
-                if (ins_Room == null)
-                {
-                    try
-                    {
-                        ins_Room = new List<Room> { };
-                        var filePathList = FileUtils.ReadFiles();
-
-                        foreach (var filePath in filePathList)
-                        {
-                            if (filePath.StartsWith("RoomData_"))
-                            {
-                                var roomDataBytes = FileUtils.ReadFile(filePath);
-                                var roomDataString = System.Text.Encoding.UTF8.GetString(roomDataBytes);
-                                var room = Newtonsoft.Json.JsonConvert.DeserializeObject<Room>(roomDataString);
-                                if (room != null)
-                                {
-                                    ins_Room.Add(room);
-                                }
-                            }
-                        }
-                    }
-                    catch (Exception ex)
-                    {
-                        MainPage.Log($"鍔熻兘鏁版嵁鍒濆鍖栧け璐ワ細{ex.Message}");
-                    }
-                }
-                return ins_Room;
-            }
-        }
-
-        /// <summary>
-        /// 澧炲姞鎴块棿
-        /// </summary>
-        /// <param name="room"></param>
-        public void AddRoom(Room room)
-        {
-            Rooms.Add(room);
-            room.SaveRoomData();
-        }
-        /// <summary>
-        /// 鍒犻櫎鎴块棿
-        /// </summary>
-        /// <param name="room"></param>
-        public void DelRoom(Room room)
-        {
-            var tRoom = Rooms.Find((obj) => obj.uid == room.uid);
-            if (tRoom != null)
-            {
-                FileUtils.DeleteFile(room.roomSavePath);
-                Rooms.Remove(room);
-                room.modifyTime = "";
-            }
-            room.SaveRoomData();
-        }
-
-
-        #endregion
+        public List<Room> Rooms = SpatialInfo.CurrentSpatial.RoomList;
 
         #region 鍔熻兘鏁版嵁
-        static FunctionList ins_Function;
-        public static FunctionList functionList
-        {
-            get
-            {
-                if (ins_Function == null)
-                {
-                    try
-                    {
-                        ins_Function = new FunctionList { };
-                        #region 鎭㈠鏁版嵁
-                        var filePathList = FileUtils.ReadFiles();
-
-                        List<Function> fs = new List<Function>();
-
-                        foreach (var filePath in filePathList)
-                        {
-                            if (filePath.StartsWith("FunctionData_") && filePath.Length == 13 + 28)
-                            {
-                                //var filePath = fp.Remove(0, 13);
-                                var _functionTypeString = filePath.Substring(16 + 13, 4);
-                                var ft = (FunctionType)Enum.ToObject(typeof(FunctionType), Convert.ToInt32(_functionTypeString, 16));
-
-                                switch (ft)
-                                {
-                                    case FunctionType.AC:
-                                        //鎭㈠绌鸿皟鏁版嵁
-                                        var acDataBytes = FileUtils.ReadFile(filePath);
-                                        var acString = System.Text.Encoding.UTF8.GetString(acDataBytes);
-                                        ins_Function.aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(acString));
-                                        break;
-                                    case FunctionType.Relay:
-                                    case FunctionType.Dimmer:
-                                    case FunctionType.RGB:
-                                        //鎭㈠鐏厜鏁版嵁
-                                        var lightsDataBytes = FileUtils.ReadFile(filePath);
-                                        var lightsString = System.Text.Encoding.UTF8.GetString(lightsDataBytes);
-                                        ins_Function.lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(lightsString));
-                                        break;
-                                    case FunctionType.Curtain:
-                                    case FunctionType.MotorCurtain:
-                                    case FunctionType.RollingShutter:
-                                        //鎭㈠绐楀笜鏁版嵁
-                                        var curtainsDataBytes = FileUtils.ReadFile(filePath);
-                                        var curtainsString = System.Text.Encoding.UTF8.GetString(curtainsDataBytes);
-                                        ins_Function.curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(curtainsString));
-                                        break;
-                                    case FunctionType.FloorHeating:
-                                        //鎭㈠鍦扮儹鏁版嵁
-                                        var fhDataBytes = FileUtils.ReadFile(filePath);
-                                        var fhString = System.Text.Encoding.UTF8.GetString(fhDataBytes);
-                                        ins_Function.floorHeatings.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(fhString));
-                                        break;
-                                    case FunctionType.PM25:
-                                    case FunctionType.CO2:
-                                    case FunctionType.TVOC:
-                                    case FunctionType.Temp:
-                                    case FunctionType.Humidity:
-                                        //鎭㈠鐜鏁版嵁
-                                        var sesDataBytes = FileUtils.ReadFile(filePath);
-                                        var sesString = System.Text.Encoding.UTF8.GetString(sesDataBytes);
-                                        ins_Function.sensorsEnvironmentalScience.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(sesString));
-                                        break;
-                                    case FunctionType.Socket:
-                                        //鎭㈠鎻掑骇鏁版嵁
-                                        var eleDataBytes = FileUtils.ReadFile(filePath);
-                                        var eleString = System.Text.Encoding.UTF8.GetString(eleDataBytes);
-                                        ins_Function.switchSockets.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(eleString));
-                                        break;
-                                    case FunctionType.TV:
-                                        //鎭㈠鐢佃鏁版嵁
-                                        var eleDataBytes1 = FileUtils.ReadFile(filePath);
-                                        var eleString1 = System.Text.Encoding.UTF8.GetString(eleDataBytes1);
-                                        ins_Function.tVs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(eleString1));
-                                        break;
-                                    case FunctionType.Fan:
-                                        //鎭㈠椋庢墖鏁版嵁
-                                        var eleDataBytes2 = FileUtils.ReadFile(filePath);
-                                        var eleString2 = System.Text.Encoding.UTF8.GetString(eleDataBytes2);
-                                        ins_Function.fans.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(eleString2));
-                                        break;
-                                    case FunctionType.Scene:
-                                        //鎭㈠鍦烘櫙鏁版嵁
-                                        var scenesDataBytes = FileUtils.ReadFile(filePath);
-                                        var scenesString = System.Text.Encoding.UTF8.GetString(scenesDataBytes);
-                                        ins_Function.scenes.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Scene>(scenesString));
-                                        break;
-
-                                }
-                            }
-                        }
-                        #endregion
-                    }
-                    catch (Exception ex)
-                    {
-                        MainPage.Log($"鍔熻兘鏁版嵁鍒濆鍖栧け璐ワ細{ex.Message}");
-                    }
-
-                }
-                return ins_Function;
-            }
-        }
-        /// <summary>
-        /// 鍒犻櫎鎵嬫満瀛樺偍閮芥墍鏈夊姛鑳芥暟鎹�
-        /// </summary>
-        public static void DelAllFunctionData()
-        {
-            var filePathList = FileUtils.ReadFiles();
-            foreach (var filePath in filePathList)
-            {
-                if (filePath.StartsWith("FunctionData_") && filePath.Length == 13 + 28)
-                {
-                    FileUtils.DeleteFile(filePath);
-                }
-            }
-            ins_Function = new FunctionList();
-            ins_Function.aCs = new List<AC>();
-            ins_Function.lights = new List<Light>();
-            ins_Function.curtains = new List<Curtain>();
-            ins_Function.floorHeatings = new List<FloorHeating>();
-            ins_Function.sensorsEnvironmentalScience = new List<Sensor>();
-            ins_Function.switchSockets = new List<SwitchSocket>();
-            ins_Function.tVs = new List<TV>();
-            ins_Function.fans = new List<Fan>();
-            ins_Function.scenes = new List<Scene>();
-        }
-        /// <summary>
-        /// 鍒犻櫎鍔熻兘
-        /// </summary>
-        public static void DelSceneFunction(string fSid)
-        {
-            var f = functionList.scenes.Find((obj) => obj.sid == fSid);
-            if (f != null)
-            {
-                FileUtils.DeleteFile(f.savePath);
-                functionList.scenes.Remove(f);
-            }
-        }
+        public static FunctionList functionList = FunctionList.List;
 
         /// <summary>
         /// 鍒锋柊浣忓畢閲岄潰鐨勬悳绱㈣澶囩姸鎬�
         /// </summary>
         public void RefreshResidenceFunctionStatus()
         {
-            new System.Threading.Thread(() =>
+            new Thread(() =>
             {
                 try
                 {
                     foreach (var function in functionList.GetAllDeviceFunctionList())
                     {
-                        System.Threading.Thread.Sleep(100);
+                        Thread.Sleep(100);
                         switch (function.functionCategory)
                         {
                             case FunctionCategory.Light:

--
Gitblit v1.8.0