From 488efb508eb0648773fe7b68e810e04bcd7ca075 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期五, 11 十二月 2020 15:58:15 +0800
Subject: [PATCH] 20201211

---
 HDL_ON/Entity/DB_ResidenceData.cs |  350 +++++++++------------------------------------------------
 1 files changed, 57 insertions(+), 293 deletions(-)

diff --git a/HDL_ON/Entity/DB_ResidenceData.cs b/HDL_ON/Entity/DB_ResidenceData.cs
index 77acdd8..ed3d96a 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
@@ -34,12 +29,22 @@
                 }
                 else
                 {
-                    var curRegion = UserInfo.Current.regionList.Find((obj) => obj.RegionID == CurReginID);
-                    //if (curRegion == null)
-                    //{
-                    //    CurReginID =  UserInfo.Current.regionList[0].RegionID;
-                    //    return  UserInfo.Current.regionList[0];
-                    //}
+                    var curRegion = UserInfo.Current.regionList.Find((obj) => obj.RegionID == UserInfo.Current.CurReginID);
+                    if (curRegion == null)
+                    {
+                        if (UserInfo.Current.regionList != null && UserInfo.Current.regionList.Count > 0)
+                        {
+                            UserInfo.Current.CurReginID = UserInfo.Current.regionList[0].RegionID;
+                            //鎭㈠澶囦唤
+                            //HDLCommon.Current.RestoreHomeBackup(CurReginID);
+
+                            return UserInfo.Current.regionList[0];
+                        }
+                        else
+                        {
+                            return new RegionInfoRes();
+                        }
+                    }
                     return curRegion;
                 }
             }
@@ -76,10 +81,6 @@
         //    }
         //}
         /// <summary>
-        /// 褰撳墠閫夋嫨鐨勪綇瀹呯储寮�
-        /// </summary>
-        public string CurReginID = "";
-        /// <summary>
         /// 鍔熻兘绫诲瀷鍒楄〃
         /// </summary>
         public List<ShowFunction> functionTypeList = new List<ShowFunction>();
@@ -93,7 +94,7 @@
                 {
                     try
                     {
-                        var residenceDataBytes = FileUtils.ReadFile("DB_ResidenceData");
+                        var residenceDataBytes = Common.FileUtlis.Files.ReadFile("DB_ResidenceData");
                         var userConfigString = System.Text.Encoding.UTF8.GetString(residenceDataBytes);
                         DB_ResidenceData temp = null;
 
@@ -122,24 +123,6 @@
                                 });
                             instance.SaveResidenceData();
                         }
-
-                        new Light()
-                        {
-                            sid = "030101123456780202010005ABCD",
-                            name = "鐏厜1",
-                            attributes = new List<FunctionAttributes>() {
-                                        new FunctionAttributes { key="on_off", max=100,min = 0, value= new List<string> { "on","off"} },
-                                        },
-                            roomIds = new List<string>() { "0001" },
-                            bus_Data = new BusData
-                            {
-                                addresses = "2A06",
-                                loopId = 1,
-                            },
-                        }.SaveFunctionData();
-
-
-
                     }
                     catch (Exception ex)
                     {
@@ -147,7 +130,7 @@
                     }
                     instance.residenceImage = "Classification/Room/Roombg.png";
                     //鍒濆鍖栦綇瀹呭姛鑳芥暟鎹�
-                    InitRoomFunction();
+                    SpatialInfo.CurrentSpatial.InitRoomFunction();
 
                 }
                 return instance;
@@ -159,9 +142,10 @@
         public void EixtAccount()
         {
             instance = null;
-            ins_Room = null;
+            Rooms = null;
             ins_OidList = null;
-            ins_Function = null;
+            functionList = null;
+            HomeGateway = null;
             if (MainPage.IsRemote)
             {
                 DAL.Mqtt.MqttClient.DisConnectRemote("閫�鍑虹櫥褰曪紝鎴栬�呭垏鎹綇瀹�");
@@ -173,6 +157,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>
@@ -235,7 +242,7 @@
             if (this == null || this.residecenInfo == null)
                 return;
             var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
-            FileUtils.WriteFileByBytes("DB_ResidenceData", ssd);
+            Common.FileUtlis.Files.WriteFileByBytes("DB_ResidenceData", ssd);
             MainPage.Log("Save DB_ResidenceData");
         }
 
@@ -244,271 +251,28 @@
         /// </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;
+        static FunctionList _functionList;
         public static FunctionList functionList
         {
             get
             {
-                if (ins_Function == null)
+                if (_functionList == 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}");
-                    }
-
+                    _functionList = FunctionList.List;
                 }
-                return ins_Function;
+                return _functionList;
+            }
+            set
+            {
+                _functionList = value;
             }
         }
-        /// <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);
-            }
-        }
-
-        /// <summary>
-        /// 鍒锋柊浣忓畢閲岄潰鐨勬悳绱㈣澶囩姸鎬�
-        /// </summary>
-        public void RefreshResidenceFunctionStatus()
-        {
-            new System.Threading.Thread(() =>
-            {
-                try
-                {
-                    foreach (var function in functionList.GetAllDeviceFunctionList())
-                    {
-                        System.Threading.Thread.Sleep(100);
-                        switch (function.functionCategory)
-                        {
-                            case FunctionCategory.Light:
-                            case FunctionCategory.Electrical:
-                            case FunctionCategory.SwitchDevice:
-                            case FunctionCategory.Curtain:
-                            case FunctionCategory.Thermostat:
-                                if (DB_ResidenceData.residenceData.GatewayType == 0)
-                                {
-                                    DriverLayer.Control.Ins.SendReadCommand(function);
-                                }
-                                break;
-                        }
-                    }
-                }
-                catch (Exception ex)
-                {
-                    MainPage.Log($"Refresh Residence Function Status Error : {ex.Message}");
-                }
-            })
-            { IsBackground = true }.Start();
-        }
-
 
         #endregion
 
@@ -525,7 +289,7 @@
             {
                 if (ins_OidList == null)
                 {
-                    var bytes = FileUtils.ReadFile(OidSavePathName);
+                    var bytes = Common.FileUtlis.Files.ReadFile(OidSavePathName);
                     if (bytes == null || bytes.Length == 0)
                     {
                         ins_OidList = new List<FunctionOid>();
@@ -561,7 +325,7 @@
         {
             var oidBytes = System.Text.Encoding.UTF8.GetBytes(oidJsonString);
 
-            FileUtils.WriteFileByBytes(OidSavePathName, oidBytes);
+            Common.FileUtlis.Files.WriteFileByBytes(OidSavePathName, oidBytes);
         }
 
         #endregion

--
Gitblit v1.8.0