From 5a5a2b696866f947b6025d26c3302e8ffef46435 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期一, 11 一月 2021 16:11:20 +0800 Subject: [PATCH] 2021-01-11 1.更新MQTT连接和本地搜索网关方法。2.子账号相关接口完善 --- Crabtree/SmartHome/HDL/Operation/Device/Room.cs | 157 ++++++++++++++++++++++------------------------------ 1 files changed, 67 insertions(+), 90 deletions(-) diff --git a/Crabtree/SmartHome/HDL/Operation/Device/Room.cs b/Crabtree/SmartHome/HDL/Operation/Device/Room.cs index e6ecddb..af791a6 100644 --- a/Crabtree/SmartHome/HDL/Operation/Device/Room.cs +++ b/Crabtree/SmartHome/HDL/Operation/Device/Room.cs @@ -11,7 +11,7 @@ /// <summary> /// 鎴块棿瀵硅薄 /// </summary> - public class Room + public class Room { public static string FavoriteRoom = "FavoriteRoom"; @@ -24,6 +24,8 @@ { GetRoomByFilePath (roomFilePath); } + + // 鎴块棿鍛藉悕瑙勫垯 typeof (Room).Name + "_" + etNameBox.Text.Trim (); /// <summary> @@ -38,7 +40,7 @@ var nowRoom = Newtonsoft.Json.JsonConvert.DeserializeObject<Room> (System.Text.Encoding.UTF8.GetString (sdf)); if (null == nowRoom) { - System.Console.WriteLine ("鎴块棿鏂囦欢璺緞涓嶅锛屾枃浠惰矾寰勪负锛�" + roomFilePath); + Utlis.WriteLine ("鎴块棿鏂囦欢璺緞涓嶅锛屾枃浠惰矾寰勪负锛�" + roomFilePath); return null; } @@ -84,6 +86,12 @@ break; } } + //if( IO.FileUtils.ReadFiles ().FindAll ((obj) => obj.Split ('_').Length == 5 && obj.Split ('_') [0] == "Equipment" && obj.Split ('_') [1] == DeviceType.SuperWireless.ToString ()).Count > 0) { + // UserConfig.Instance.HideDeviceTypes.Remove (SimpleControl.R.MyInternationalizationString.SuperWireless); + // UserConfig.Instance.HideDeviceTypes.Remove (SimpleControl.R.MyInternationalizationString.Sonos); + // UserConfig.Instance.SaveUserConfig (); + //} + return nowRoom; } catch { return null; @@ -143,7 +151,7 @@ common.CustomDelayTimeClose = 0; } room.DeviceList.Add (common); - } else if (deviceType == DeviceType.LightRGB.ToString ()) { + } else if (deviceType == DeviceType.LightRGB.ToString ()) { var common = Newtonsoft.Json.JsonConvert.DeserializeObject<LightLogic> (jsonInfo); common.CurrentBrightness = 0; string keyString = common.SubnetID.ToString () + "_" + common.DeviceID.ToString () + "_" + common.LoopID.ToString (); @@ -156,13 +164,13 @@ common.CustomDelayTimeClose = 0; } room.DeviceList.Add (common); - } else if (deviceType == DeviceType.LightSwitch.ToString ()){ + } else if (deviceType == DeviceType.LightSwitch.ToString ()) { var common = Newtonsoft.Json.JsonConvert.DeserializeObject<LightSwitch> (jsonInfo); room.DeviceList.Add (common); - } else if (deviceType == DeviceType.LightMixSwitch.ToString () ){ + } else if (deviceType == DeviceType.LightMixSwitch.ToString ()) { var common = Newtonsoft.Json.JsonConvert.DeserializeObject<LightMixSwitch> (jsonInfo); room.DeviceList.Add (common); - } else if ( deviceType == DeviceType.LightEnergySocket.ToString ()) { + } else if (deviceType == DeviceType.LightEnergySocket.ToString ()) { var common = Newtonsoft.Json.JsonConvert.DeserializeObject<LightEnergySocket> (jsonInfo); room.DeviceList.Add (common); } else if (deviceType == DeviceType.LightEnergySwitch.ToString ()) { @@ -202,15 +210,17 @@ room.DeviceList.Add (Newtonsoft.Json.JsonConvert.DeserializeObject<SensorCO2> (jsonInfo)); } else if (deviceType == DeviceType.SensorTVOC.ToString ()) { room.DeviceList.Add (Newtonsoft.Json.JsonConvert.DeserializeObject<SensorTVOC> (jsonInfo)); - } else if (deviceType == DeviceType.SensorPM25.ToString ()) { + } else if (deviceType == DeviceType.SensorPM25.ToString ()) { room.DeviceList.Add (Newtonsoft.Json.JsonConvert.DeserializeObject<SensorPM25> (jsonInfo)); - } else if (deviceType == DeviceType.SensorTemperature.ToString ()) { + } else if (deviceType == DeviceType.SensorTemperature.ToString ()) { room.DeviceList.Add (Newtonsoft.Json.JsonConvert.DeserializeObject<SensorTemperature> (jsonInfo)); } else if (deviceType == DeviceType.SensorHumidity.ToString ()) { room.DeviceList.Add (Newtonsoft.Json.JsonConvert.DeserializeObject<SensorHumidity> (jsonInfo)); } else if (deviceType == DeviceType.FreshAir.ToString ()) { room.DeviceList.Add (Newtonsoft.Json.JsonConvert.DeserializeObject<FreshAir> (jsonInfo)); - } + } + + for (int i = UserConfig.Instance.HideDeviceTypes.Count - 1; i >= 0; i--) { var hideType = UserConfig.Instance.HideDeviceTypes [i]; @@ -228,7 +238,10 @@ /// <summary> /// 鎴块棿鍚� /// </summary> - public string Name { get; set; } + public string Name { + get; + set; + } public string RoomFilePath { get { @@ -238,42 +251,7 @@ } } - /// <summary> - /// 涓嶉�夋嫨鍒版埧闂存椂鍊欑殑鑳屾櫙鍥� - /// </summary> - public string UnSelectedBackgroundImage { - get; - set; - } - /// <summary> - /// 閫夋嫨鍒版埧闂寸殑鏃跺�欒儗鏅浘 - /// </summary> - public string SelectedBackgroundImage { - get; - set; - } - - /// <summary> - /// 涓嶉�夋嫨鍒版埧闂翠笅鎷夊垪琛ㄦ椂鍊欑殑鑳屾櫙鍥� - /// </summary> - public string UnSelectedListBackgroundImage { - get; - set; - } - - /// <summary> - /// 閫夋嫨鍒版埧闂寸殑涓嬫媺鍒楄〃鏃跺�欒儗鏅浘 - /// </summary> - public string SelectedListBackgroundImage { - get; - set; - } - - /// <summary> - /// 鍥炬爣 - /// </summary> - public string IconPath = "DefaultRoomIcon.png"; /// <summary> /// 鎴块棿鑳屾櫙 /// </summary> @@ -350,6 +328,9 @@ { roomFilePathList = new List<string> (); } + + if (roomFilePathList.Contains (roomFilePath)) return; + roomFilePathList.Add (roomFilePath); //var sssddsa = IO.FileUtils.ReadFiles ().FindAll ((obj) => obj.Contains ("Room_")); @@ -427,26 +408,16 @@ Save (newRoomFilePath); } + /// <summary> /// 鎵�鏈夌殑鎴块棿鍒楄〃璺緞 /// </summary> /// <value>The room file path list.</value> public static System.Collections.Generic.List<string> FilePathList { get { - var roomBytes = IO.FileUtils.ReadFile (roomListFilePath); - string roombyteString = System.Text.Encoding.UTF8.GetString (roomBytes); - var ddds = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<string>> (roombyteString); - if (ddds == null) - ddds = new List<string> (); - if (!ddds.Contains (FavoriteRoom)) { - ddds.Add (FavoriteRoom); - if (!IO.FileUtils.Exists (FavoriteRoom)) { - //榛樿娣诲姞瀵瑰簲鐨勬埧闂� - new Room () { Name = "" }.Save (FavoriteRoom); - } - IO.FileUtils.WriteFileByBytes (roomListFilePath, System.Text.Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (ddds))); - } - return ddds; + var rommBytes = IO.FileUtils.ReadFile (roomListFilePath); + string rommbyteString = System.Text.Encoding.UTF8.GetString (rommBytes); + return Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<string>> (rommbyteString); } } @@ -456,44 +427,50 @@ public static void InitAllRoom () { Lists.Clear (); - if (null == Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<string>> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (roomListFilePath)))) { - //鍒濆鍖栨埧闂村垪琛� - Shared.IO.FileUtils.WriteFileByBytes (roomListFilePath, System.Text.Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (new System.Collections.Generic.List<string> ()))); - } - var roomFilePathList = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<string>> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (roomListFilePath))); - if (!roomFilePathList.Contains (FavoriteRoom)) { - roomFilePathList.Add (FavoriteRoom); - if (!IO.FileUtils.Exists (FavoriteRoom)) { - //榛樿娣诲姞瀵瑰簲鐨勬埧闂� - new Room () { Name = "" }.Save (FavoriteRoom); + try { + if (null == Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<string>> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (roomListFilePath)))) { + //鍒濆鍖栨埧闂村垪琛� + Shared.IO.FileUtils.WriteFileByBytes (roomListFilePath, System.Text.Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (new System.Collections.Generic.List<string> ()))); + } + var roomFilePathList = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<string>> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (roomListFilePath))); + if (!roomFilePathList.Contains (FavoriteRoom)) { + roomFilePathList.Add (FavoriteRoom); + if (!IO.FileUtils.Exists (FavoriteRoom)) { + //榛樿娣诲姞瀵瑰簲鐨勬埧闂� + new Room () { Name = "" }.Save (FavoriteRoom); + } + IO.FileUtils.WriteFileByBytes (roomListFilePath, System.Text.Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (roomFilePathList))); } - IO.FileUtils.WriteFileByBytes (roomListFilePath, System.Text.Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (roomFilePathList))); - - } - - foreach (var roomFilePath in roomFilePathList) { - var room = GetRoomByFilePath (roomFilePath); - if (null != room) { - Lists.Add (room); - } - } - - for (int i = UserConfig.Instance.HideDeviceTypes.Count - 1; i >= 0; i--) { - var hideType = UserConfig.Instance.HideDeviceTypes [i]; - foreach (var room in Room.Lists) { - var devices = room.DeviceList.Find ((obj) => { - return obj.DeviceTextID == hideType; - }); - if (devices != null) { - UserConfig.Instance.HideDeviceTypes.Remove (hideType); - UserConfig.Instance.SaveUserConfig (); - break; + foreach (var roomFilePath in roomFilePathList) { + var room = GetRoomByFilePath (roomFilePath); + if (null != room) { + Lists.Add (room); } } + + for (int i = UserConfig.Instance.HideDeviceTypes.Count - 1; i >= 0; i--) { + var hideType = UserConfig.Instance.HideDeviceTypes [i]; + foreach (var room in Room.Lists) { + var devices = room.DeviceList.Find ((obj) => { + return obj.DeviceTextID == hideType; + }); + if (devices != null) { + UserConfig.Instance.HideDeviceTypes.Remove (hideType); + UserConfig.Instance.SaveUserConfig (); + break; + } + } + } + + + } catch { + Utlis.WriteLine ("瑙f瀽鎴块棿鍒楄〃寮傚父"); } } + + public void SaveLightScene (string roomFilePath, string SceneRemark, Scene scene) { IO.FileUtils.WriteFileByBytes (roomFilePath + "_" + SceneRemark, Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (scene))); -- Gitblit v1.8.0