From 33656fa9abd15ed00a390024b439568d2713ca1a Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期日, 06 十二月 2020 17:44:36 +0800 Subject: [PATCH] 2020-12-06 1.修改挤下线判断标记。2.修改房间和场景加载云端图片路径 --- HDL_ON/Entity/FunctionList.cs | 296 ++++++++++++++++++++++++++++------------------------------ 1 files changed, 142 insertions(+), 154 deletions(-) diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs index c5e82f0..a48047a 100644 --- a/HDL_ON/Entity/FunctionList.cs +++ b/HDL_ON/Entity/FunctionList.cs @@ -108,123 +108,57 @@ { if (filePath.StartsWith("FunctionData_")) { - //if (filePath.Length == 13 + 28) - //{ - // 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); - // List.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); - // List.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); - // List.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); - // List.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); - // List.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); - // List.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); - // List.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); - // List.fans.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(eleString2)); - // break; - // } - //} - //else//sid闈炴爣鍑嗘儏鍐典笅锛岄�氳繃spk鍔犺浇璁惧 + var functionDataBytes = FileUtils.ReadFile(filePath); + var functionDataString = System.Text.Encoding.UTF8.GetString(functionDataBytes); + var tempFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(functionDataString); + if (tempFunction.DeleteSign) { - var functionDataBytes = FileUtils.ReadFile(filePath); - var functionDataString = System.Text.Encoding.UTF8.GetString(functionDataBytes); - var tempFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(functionDataString); - if (tempFunction.DeleteSign) + //todo 鍒犻櫎浜戠鏁版嵁 20201203--App涓嶈兘鍒犻櫎鍔熻兘鏁版嵁 + } + else + { + switch (tempFunction.spk) { - //todo 鍒犻櫎浜戠鏁版嵁 20201203--App涓嶈兘鍒犻櫎鍔熻兘鏁版嵁 - } - else { - switch (tempFunction.spk) - { - case SPK.LightSwitch: - case SPK.LightDimming: - case SPK.LightRGB: - case SPK.LightRGBW: - case SPK.LightCCT: - List.lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(functionDataString)); - break; - case SPK.CurtainRoller: - case SPK.CurtainShades: - case SPK.CurtainSwitch: - case SPK.CurtainTrietex: - List.curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(functionDataString)); - break; - case SPK.AcStandard: - List.aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(functionDataString)); - break; - case SPK.FloorHeatStandard: - //鎭㈠鍦扮儹鏁版嵁 - List.floorHeatings.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(functionDataString)); - break; - case SPK.SensorPm25: - case SPK.SensorCO2: - case SPK.SensorTVOC: - case SPK.SensorTemperature: - case SPK.SensorHumidity: - //鎭㈠鐜鏁版嵁 - List.sensorsEnvironmentalScience.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(functionDataString)); - break; - case SPK.ElectricSocket: - //鎭㈠鎻掑骇鏁版嵁 - List.switchSockets.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(functionDataString)); - break; - case SPK.ElectricTV: - //鎭㈠鐢佃鏁版嵁 - List.tVs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(functionDataString)); - break; - case SPK.ElectricFan: - //鎭㈠椋庢墖鏁版嵁 - List.fans.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(functionDataString)); - break; - } + case SPK.LightSwitch: + case SPK.LightDimming: + case SPK.LightRGB: + case SPK.LightRGBW: + case SPK.LightCCT: + _FunctionList.lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(functionDataString)); + break; + case SPK.CurtainRoller: + case SPK.CurtainShades: + case SPK.CurtainSwitch: + case SPK.CurtainTrietex: + _FunctionList.curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(functionDataString)); + break; + case SPK.AcStandard: + _FunctionList.aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(functionDataString)); + break; + case SPK.FloorHeatStandard: + //鎭㈠鍦扮儹鏁版嵁 + _FunctionList.floorHeatings.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(functionDataString)); + break; + case SPK.SensorPm25: + case SPK.SensorCO2: + case SPK.SensorTVOC: + case SPK.SensorTemperature: + case SPK.SensorHumidity: + //鎭㈠鐜鏁版嵁 + _FunctionList.sensorsEnvironmentalScience.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(functionDataString)); + break; + case SPK.ElectricSocket: + //鎭㈠鎻掑骇鏁版嵁 + _FunctionList.switchSockets.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(functionDataString)); + break; + case SPK.ElectricTV: + //鎭㈠鐢佃鏁版嵁 + _FunctionList.tVs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(functionDataString)); + break; + case SPK.ElectricFan: + //鎭㈠椋庢墖鏁版嵁 + _FunctionList.fans.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(functionDataString)); + break; } } } @@ -261,14 +195,17 @@ /// </summary> public List<Function> GetAllDeviceFunctionList() { - deviceFunctionList = new List<Function>(); - deviceFunctionList.AddRange(aCs); - deviceFunctionList.AddRange(lights); - deviceFunctionList.AddRange(curtains); - deviceFunctionList.AddRange(floorHeatings); - deviceFunctionList.AddRange(electricals); - deviceFunctionList.AddRange(sensorsEnvironmentalScience); - deviceFunctionList.AddRange(UI.Music.A31MusicModel.A31MusicModelList); + if (deviceFunctionList == null) + { + deviceFunctionList = new List<Function>(); + deviceFunctionList.AddRange(aCs); + deviceFunctionList.AddRange(lights); + deviceFunctionList.AddRange(curtains); + deviceFunctionList.AddRange(floorHeatings); + deviceFunctionList.AddRange(electricals); + deviceFunctionList.AddRange(sensorsEnvironmentalScience); + deviceFunctionList.AddRange(UI.Music.A31MusicModel.A31MusicModelList); + } try { deviceFunctionList.OrderByDescending(o => o.usageCount).ToList(); @@ -371,30 +308,30 @@ switch (f.functionType) { case FunctionType.AC: - aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(obj.ToString())); + _FunctionList.aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(obj.ToString())); break; case FunctionType.FloorHeating: - floorHeatings.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(obj.ToString())); + _FunctionList.floorHeatings.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(obj.ToString())); break; } break; case FunctionCategory.Light: - lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(obj.ToString())); + _FunctionList.lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(obj.ToString())); break; case FunctionCategory.Curtain: - curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(obj.ToString())); + _FunctionList.curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(obj.ToString())); break; case FunctionCategory.Electrical: switch(f.functionType) { case FunctionType.TV: - electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(obj.ToString())); + _FunctionList.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(obj.ToString())); break; case FunctionType.Socket: - electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(obj.ToString())); + _FunctionList.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(obj.ToString())); break; case FunctionType.Fan: - electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(obj.ToString())); + _FunctionList.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(obj.ToString())); break; } break; @@ -405,8 +342,8 @@ case FunctionType.CO2: case FunctionType.PM25: case FunctionType.Humidity: - //case FunctionType.Noise: - sensorsEnvironmentalScience.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(obj.ToString())); + case FunctionType.Temp: + _FunctionList.sensorsEnvironmentalScience.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(obj.ToString())); break; } break; @@ -427,34 +364,41 @@ var deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieApiPack>(pack.Data.ToString()); if (deviceList != null) { - foreach (var function in deviceList.list) + foreach(var localFunction in List.GetAllDeviceFunctionList()) { - var localFunction = DB_ResidenceData.functionList.GetAllDeviceFunctionList().Find((obj) => obj.deviceId == function.deviceId); - if (localFunction != null) + var newFunction = deviceList.list.Find((obj) => obj.deviceId == localFunction.deviceId); + if (newFunction == null)//濡傛灉浜戠鏈�鏂版暟鎹病鏈夎鏉℃暟鎹紝鍒欐湰鍦伴渶瑕佸垹鎺夎鏁版嵁璁板綍 { - if (localFunction.modifyTime != function.modifyTime) - { - localFunction.name = function.name; - localFunction.collect = function.collect; - localFunction.modifyTime = function.modifyTime; - localFunction.createTime = function.createTime; - localFunction.roomIds = function.roomIds; - localFunction.bus_Data = function.bus_Data; - } - localFunction.SaveFunctionData(); + List.DeleteFunction(localFunction); } else { - function.SaveFunctionData(); - List.IniFunctionList(function.savePath); + if (localFunction.modifyTime != newFunction.modifyTime) + { + localFunction.name = newFunction.name; + localFunction.collect = newFunction.collect; + localFunction.modifyTime = newFunction.modifyTime; + localFunction.createTime = newFunction.createTime; + localFunction.roomIds = newFunction.roomIds; + localFunction.bus_Data = newFunction.bus_Data; + new System.Threading.Thread(() => + { + localFunction.SaveFunctionData(); + }) + { IsBackground = true }.Start(); + } + deviceList.list.Remove(newFunction);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘 } - - var funcitonInfoPack = pm.GetDeviceInfoList(new List<string>() { function.deviceId }); - var funcitonInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(funcitonInfoPack.Data.ToString()); - if (funcitonInfo != null) + } + //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳� + foreach (var newFunction in deviceList.list) + { + new System.Threading.Thread(() => { - - } + newFunction.SaveFunctionData(); + List.IniFunctionList(newFunction.savePath); + }) + { IsBackground = true }.Start(); } } MainPage.Log($"璇诲彇浜戠璁惧鏁版嵁:\r\n{ pack.Data.ToString()}"); @@ -462,7 +406,6 @@ { MainPage.Log($"璇诲彇浜戠璁惧鏁版嵁澶辫触:\r\nCode:{pack.Code}; Msg:{pack.message}"); } - }) { IsBackground = true }.Start(); } @@ -514,6 +457,51 @@ scene.DeleteSign = true; List.scenes.Remove(scene); } + /// <summary> + /// 鍒犻櫎鏈湴鍔熻兘鏂囦欢 + /// </summary> + public void DeleteFunction(Function delTemp) + { + switch (delTemp.spk) + { + case SPK.LightSwitch: + case SPK.LightDimming: + case SPK.LightRGB: + case SPK.LightRGBW: + case SPK.LightCCT: + _FunctionList.lights.Remove(_FunctionList.lights.Find((obj) => obj.deviceId == delTemp.deviceId)); + break; + case SPK.CurtainRoller: + case SPK.CurtainShades: + case SPK.CurtainSwitch: + case SPK.CurtainTrietex: + _FunctionList.curtains.Remove(_FunctionList.curtains.Find((obj) => obj.deviceId == delTemp.deviceId)); + break; + case SPK.AcStandard: + _FunctionList.aCs.Remove(_FunctionList.aCs.Find((obj) => obj.deviceId == delTemp.deviceId)); + break; + case SPK.FloorHeatStandard: + _FunctionList.floorHeatings.Remove(_FunctionList.floorHeatings.Find((obj) => obj.deviceId == delTemp.deviceId)); + break; + case SPK.SensorPm25: + case SPK.SensorCO2: + case SPK.SensorTVOC: + case SPK.SensorTemperature: + case SPK.SensorHumidity: + _FunctionList.sensorsEnvironmentalScience.Remove(_FunctionList.sensorsEnvironmentalScience.Find((obj) => obj.deviceId == delTemp.deviceId)); + break; + case SPK.ElectricSocket: + _FunctionList.switchSockets.Remove(_FunctionList.switchSockets.Find((obj) => obj.deviceId == delTemp.deviceId)); + break; + case SPK.ElectricTV: + _FunctionList.tVs.Remove(_FunctionList.tVs.Find((obj) => obj.deviceId == delTemp.deviceId)); + break; + case SPK.ElectricFan: + _FunctionList.fans.Remove(_FunctionList.fans.Find((obj) => obj.deviceId == delTemp.deviceId)); + break; + } + FileUtils.DeleteFile(delTemp.savePath); + } } -- Gitblit v1.8.0