From 7232642ff48a7fbde2018cde652f3e771fa58025 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期三, 27 一月 2021 14:32:55 +0800 Subject: [PATCH] 20200127-英文版处理 --- HDL_ON/Entity/FunctionList.cs | 372 ++++++++++++++++++++++------------------------------- 1 files changed, 155 insertions(+), 217 deletions(-) diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs index 0be3c7f..71a7204 100644 --- a/HDL_ON/Entity/FunctionList.cs +++ b/HDL_ON/Entity/FunctionList.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading; +using HDL_ON.Common; using HDL_ON.DAL; using HDL_ON.DAL.Server; using Shared; @@ -91,10 +92,18 @@ /// </summary> public List<Sensor> sensorsEnvironmentalScience = new List<Sensor>(); + public List<Scene> scenes = new List<Scene>(); /// <summary> /// 鍦烘櫙鍒楄〃 /// </summary> - public List<Scene> scenes = new List<Scene>(); + //public List<Scene> Scenes + //{ + // get + // { + // List.scenes = List.scenes.OrderByDescending(o => o.createTime).ToList(); + // return List.scenes; + // } + //} /// <summary> /// 鍔熻兘鍒楄〃 /// </summary> @@ -132,7 +141,7 @@ case SPK.LightRGBW: case SPK.LightCCT: var light = Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(functionDataString); - _FunctionList.lights.Add(light); + List.lights.Add(light); deviceFunctionList.Add(light); break; case SPK.CurtainRoller: @@ -140,17 +149,17 @@ case SPK.CurtainSwitch: case SPK.CurtainTrietex: var curtain = Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(functionDataString); - _FunctionList.curtains.Add(curtain); + List.curtains.Add(curtain); deviceFunctionList.Add(curtain); break; case SPK.AcStandard: var ac = Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(functionDataString); - _FunctionList.aCs.Add(ac); + List.aCs.Add(ac); deviceFunctionList.Add(ac); break; case SPK.FloorHeatStandard: var fh = Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(functionDataString); - _FunctionList.floorHeatings.Add(fh); + List.floorHeatings.Add(fh); deviceFunctionList.Add(fh); break; case SPK.SensorPm25: @@ -159,22 +168,22 @@ case SPK.SensorTemperature: case SPK.SensorHumidity: var sensor = Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(functionDataString); - _FunctionList.sensorsEnvironmentalScience.Add(sensor); + List.sensorsEnvironmentalScience.Add(sensor); deviceFunctionList.Add(sensor); break; case SPK.ElectricSocket: var ele = Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(functionDataString); - _FunctionList.switchSockets.Add(ele); + List.switchSockets.Add(ele); deviceFunctionList.Add(ele); break; case SPK.ElectricTV: var tv = Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(functionDataString); - _FunctionList.tVs.Add(tv); + List.tVs.Add(tv); deviceFunctionList.Add(tv); break; case SPK.ElectricFan: var fan = Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(functionDataString); - _FunctionList.fans.Add(fan); + List.fans.Add(fan); deviceFunctionList.Add(fan); break; } @@ -182,7 +191,7 @@ } if (filePath.StartsWith("SceneData_")) { - var sceneDataBytes = Common.FileUtlis.Files.ReadFile(filePath); + var sceneDataBytes = FileUtlis.Files.ReadFile(filePath); var sceneDataString = System.Text.Encoding.UTF8.GetString(sceneDataBytes); var tempScene = Newtonsoft.Json.JsonConvert.DeserializeObject<Scene>(sceneDataString); List.scenes.Add(tempScene); @@ -207,7 +216,7 @@ } try { - deviceFunctionList.OrderByDescending(o => o.usageCount).ToList(); + deviceFunctionList = deviceFunctionList.OrderByDescending(o => o.controlCounter).ToList(); } catch (Exception ex) { @@ -220,16 +229,16 @@ /// </summary> public void Clear() { - _FunctionList.aCs = new List<AC>(); - _FunctionList.lights = new List<Light>(); - _FunctionList.curtains = new List<Curtain>(); - _FunctionList.floorHeatings = new List<FloorHeating>(); - _FunctionList.tVs = new List<TV>(); - _FunctionList.switchSockets = new List<SwitchSocket>(); - _FunctionList.fans = new List<Fan>(); - _FunctionList.sensorsEnvironmentalScience = new List<Sensor>(); - _FunctionList.scenes = new List<Scene>(); - _FunctionList.deviceFunctionList = null; + List.aCs = new List<AC>(); + List.lights = new List<Light>(); + List.curtains = new List<Curtain>(); + List.floorHeatings = new List<FloorHeating>(); + List.tVs = new List<TV>(); + List.switchSockets = new List<SwitchSocket>(); + List.fans = new List<Fan>(); + List.sensorsEnvironmentalScience = new List<Sensor>(); + List.scenes = new List<Scene>(); + List.deviceFunctionList = null; _FunctionList = null; } @@ -240,55 +249,55 @@ /// <param name="sidObj"></param> public void AddDeviceFunction(Function sidObj0) { - switch (sidObj0.functionType) + switch (sidObj0.spk) { - case FunctionType.AC: + case SPK.AcStandard: var sidObj = Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); List.aCs.Add(sidObj); - sidObj.SaveFunctionData(false); + sidObj.SaveFunctionFile(); break; - case FunctionType.FloorHeating: + case SPK.FloorHeatStandard: var sidObj1 = Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); List.floorHeatings.Add(sidObj1); - sidObj1.SaveFunctionData(false); + sidObj1.SaveFunctionFile(); break; - case FunctionType.Dimmer: - case FunctionType.RGB: - case FunctionType.Relay: + case SPK.LightDimming: + case SPK.LightRGB: + case SPK.LightSwitch: var sidObj2 = Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); List.lights.Add(sidObj2); - sidObj2.SaveFunctionData(false); + sidObj2.SaveFunctionFile(); break; - case FunctionType.Curtain: - case FunctionType.RollingShutter: - case FunctionType.MotorCurtain: + case SPK.CurtainSwitch: + case SPK.CurtainRoller: + case SPK.CurtainTrietex: var sidObj3 = Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); List.curtains.Add(sidObj3 ); - sidObj3.SaveFunctionData(false); + sidObj3.SaveFunctionFile(); break; - case FunctionType.TV: + case SPK.ElectricTV: var sidObj4 = Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); List.tVs.Add(sidObj4); - sidObj4.SaveFunctionData(false); + sidObj4.SaveFunctionFile(); break; - case FunctionType.Socket: + case SPK.ElectricSocket: var sidObj5 = Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); List.switchSockets.Add(sidObj5); - sidObj5.SaveFunctionData(false); + sidObj5.SaveFunctionFile(); break; - case FunctionType.Fan: + case SPK.ElectricFan: var sidObj6 = Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); List.fans.Add(sidObj6); - sidObj6.SaveFunctionData(false); + sidObj6.SaveFunctionFile(); break; - case FunctionType.CO2: - case FunctionType.TVOC: - case FunctionType.PM25: - case FunctionType.Temp: - case FunctionType.Humidity: + case SPK.SensorCO2: + case SPK.SensorTVOC: + case SPK.SensorPm25: + case SPK.SensorTemperature: + case SPK.SensorHumidity: var sidObj7 = Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); List.sensorsEnvironmentalScience.Add(sidObj7); - sidObj7.SaveFunctionData(false); + sidObj7.SaveFunctionFile(); break; } } @@ -302,48 +311,53 @@ var f = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(obj.ToString()); if (f == null) return; - switch (f.functionCategory) + switch (f.Spk_Prefix) { - case FunctionCategory.Thermostat: - switch (f.functionType) + case FunctionCategory.AC: + switch (f.spk) { - case FunctionType.AC: - _FunctionList.aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(obj.ToString())); + case SPK.AcStandard: + List.aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(obj.ToString())); break; - case FunctionType.FloorHeating: - _FunctionList.floorHeatings.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(obj.ToString())); + } + break; + case FunctionCategory.FloorHeat: + switch (f.spk) + { + case SPK.FloorHeatStandard: + List.floorHeatings.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(obj.ToString())); break; } break; case FunctionCategory.Light: - _FunctionList.lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(obj.ToString())); + List.lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(obj.ToString())); break; case FunctionCategory.Curtain: - _FunctionList.curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(obj.ToString())); + List.curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(obj.ToString())); break; - case FunctionCategory.Electrical: - switch(f.functionType) + case FunctionCategory.Electric: + switch(f.spk) { - case FunctionType.TV: - _FunctionList.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(obj.ToString())); + case SPK.ElectricTV: + List.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(obj.ToString())); break; - case FunctionType.Socket: - _FunctionList.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(obj.ToString())); + case SPK.ElectricSocket: + List.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(obj.ToString())); break; - case FunctionType.Fan: - _FunctionList.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(obj.ToString())); + case SPK.ElectricFan: + List.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(obj.ToString())); break; } break; case FunctionCategory.Sensor: - switch(f.functionType) + switch(f.spk) { - case FunctionType.TVOC: - case FunctionType.CO2: - case FunctionType.PM25: - case FunctionType.Humidity: - case FunctionType.Temp: - _FunctionList.sensorsEnvironmentalScience.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(obj.ToString())); + case SPK.SensorTVOC: + case SPK.SensorCO2: + case SPK.SensorPm25: + case SPK.SensorHumidity: + case SPK.SensorTemperature: + List.sensorsEnvironmentalScience.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(obj.ToString())); break; } break; @@ -363,135 +377,14 @@ } else { - Utlis.ShowTip(Shared.Language.StringByID(StringId.EditFunctionInfoFail) + "\r\nCode:" + pack.Code); + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); } return pack.Code; } /// <summary> - /// 涓嬫潵浜戠璁惧鏁版嵁 - /// </summary> - public void DownloadFunctionList() - { - new Thread(() => - { - var pm = new HttpServerRequest(); - var pack = pm.GetDeviceList(); - if (pack.Code == StateCode.SUCCESS) - { - var deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieApiPack>(pack.Data.ToString()); - if (deviceList != null) - { - if (List.GetDeviceFunctionList().Count > 0) - { - for (int i = 0; i < List.GetDeviceFunctionList().Count;) - { - var localFunction = List.GetDeviceFunctionList()[i]; - if (localFunction.functionCategory == FunctionCategory.Music) - { - i++; - continue; - } - var newFunction = deviceList.list.Find((obj) => obj.deviceId == localFunction.deviceId); - if (newFunction == null)//濡傛灉浜戠鏈�鏂版暟鎹病鏈夎鏉℃暟鎹紝鍒欐湰鍦伴渶瑕佸垹鎺夎鏁版嵁璁板綍 - { - List.DeleteFunction(localFunction); - } - else - { - i++; - if (localFunction.modifyTime != newFunction.modifyTime) - { - MainPage.Log($"local:{localFunction.modifyTime}\r\n server:{newFunction.modifyTime}"); - localFunction.name = newFunction.name; - localFunction.collect = newFunction.collect; - localFunction.modifyTime = newFunction.modifyTime; - localFunction.roomIds = newFunction.roomIds; - localFunction.bus = newFunction.bus; - localFunction.SaveFunctionData(false); - } - deviceList.list.Remove(newFunction);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘 - } - } - } - //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳� - foreach (var newFunction in deviceList.list) - { - newFunction.SaveFunctionData(false); - List.IniFunctionList(newFunction.savePath); - } - } - //MainPage.Log($"璇诲彇浜戠璁惧鏁版嵁:\r\n{ pack.Data.ToString()}"); - } - else - { - MainPage.Log($"璇诲彇浜戠璁惧鏁版嵁澶辫触:\r\nCode:{pack.Code}; Msg:{pack.message}"); - } - }) - { IsBackground = true }.Start(); - } - - /// <summary> - /// 涓嬭浇浜戠鍦烘櫙鏁版嵁 - /// </summary> - public void DownloadSceneList() - { - new Thread(() => - { - var pm = new HttpServerRequest(); - var pack = pm.GetSceneList(); - if(pack.Code == StateCode.SUCCESS) - { - //MainPage.Log($"璇诲彇浜戠鍦烘櫙鏁版嵁:\r\n{pack.Data.ToString()}"); - var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(pack.Data.ToString()); - if (sceneList != null) - { - for (int i=0;i<List.scenes.Count;) - { - var localScene = List.scenes[i]; - if (localScene == null) - { - List.scenes.Remove(localScene); - continue; - } - var newScene = sceneList.Find((obj) => obj.userSceneId == localScene.userSceneId); - if (newScene == null)//濡傛灉浜戠鏈�鏂版暟鎹病鏈夎鏉℃暟鎹紝鍒欐湰鍦伴渶瑕佸垹鎺夎鏁版嵁璁板綍 - { - List.DeleteScene(localScene,false); - } - else - { - i++; - if (localScene.modifyTime != newScene.modifyTime) - { - localScene.name = newScene.name; - localScene.collect = newScene.collect; - localScene.modifyTime = newScene.modifyTime; - localScene.roomIds = newScene.roomIds; - localScene.SaveSceneData(false); - } - sceneList.Remove(newScene);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘 - } - } - //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳� - foreach (var newScene in sceneList) - { - newScene.SaveSceneData(false); - List.scenes.Add(newScene); - } - } - } - else - { - MainPage.Log($"璇诲彇浜戠鍦烘櫙鏁版嵁澶辫触:\r\nCode:{pack.Code}; Msg:{pack.message}"); - } - }) - { IsBackground = true }.Start(); - } - - - /// <summary> /// 鍒犻櫎鍦烘櫙 + /// todo /// </summary> public void DeleteScene(Scene scene,bool upSevser) { @@ -501,22 +394,22 @@ var packCode = pm.DeleteScene(scene.userSceneId); if (packCode == StateCode.SUCCESS) { - Common.FileUtlis.Files.DeleteFile(scene.savePath); + FileUtlis.Files.DeleteFile(scene.savePath); List.scenes.Remove(scene); } else { - Utlis.ShowTip(Shared.Language.StringByID(StringId.DeleteSceneFail) + "Code:" + packCode); + IMessageCommon.Current.ShowErrorInfoAlter(packCode); } } else { - Common.FileUtlis.Files.DeleteFile(scene.savePath); + FileUtlis.Files.DeleteFile(scene.savePath); List.scenes.Remove(scene); } } /// <summary> - /// 鍒犻櫎鏈湴鍔熻兘鏂囦欢 + /// 鍒犻櫎鏈湴鍔熻兘鍙婃枃浠� /// </summary> public void DeleteFunction(Function delTemp) { @@ -527,35 +420,35 @@ case SPK.LightRGB: case SPK.LightRGBW: case SPK.LightCCT: - _FunctionList.lights.Remove(_FunctionList.lights.Find((obj) => obj.deviceId == delTemp.deviceId)); + List.lights.Remove(List.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)); + List.curtains.Remove(List.curtains.Find((obj) => obj.deviceId == delTemp.deviceId)); break; case SPK.AcStandard: - _FunctionList.aCs.Remove(_FunctionList.aCs.Find((obj) => obj.deviceId == delTemp.deviceId)); + List.aCs.Remove(List.aCs.Find((obj) => obj.deviceId == delTemp.deviceId)); break; case SPK.FloorHeatStandard: - _FunctionList.floorHeatings.Remove(_FunctionList.floorHeatings.Find((obj) => obj.deviceId == delTemp.deviceId)); + List.floorHeatings.Remove(List.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)); + List.sensorsEnvironmentalScience.Remove(List.sensorsEnvironmentalScience.Find((obj) => obj.deviceId == delTemp.deviceId)); break; case SPK.ElectricSocket: - _FunctionList.switchSockets.Remove(_FunctionList.switchSockets.Find((obj) => obj.deviceId == delTemp.deviceId)); + List.switchSockets.Remove(List.switchSockets.Find((obj) => obj.deviceId == delTemp.deviceId)); break; case SPK.ElectricTV: - _FunctionList.tVs.Remove(_FunctionList.tVs.Find((obj) => obj.deviceId == delTemp.deviceId)); + List.tVs.Remove(List.tVs.Find((obj) => obj.deviceId == delTemp.deviceId)); break; case SPK.ElectricFan: - _FunctionList.fans.Remove(_FunctionList.fans.Find((obj) => obj.deviceId == delTemp.deviceId)); + List.fans.Remove(List.fans.Find((obj) => obj.deviceId == delTemp.deviceId)); break; } var removeTemp = deviceFunctionList.Find((obj) => obj.deviceId == delTemp.deviceId); @@ -590,24 +483,33 @@ { if (DriverLayer.Control.Ins.IsRemote) { - var functionIds = new List<string>(); + var page = new List<string>(); + int count = 0; + foreach (var function in GetDeviceFunctionList()) { - functionIds.Add(function.deviceId); + page.Add(function.deviceId); + count++; + if (count > 9) + { + DriverLayer.Control.Ins.SendApiReadCommand(page); + page.Clear(); + count = 0; + } } - DriverLayer.Control.Ins.SendApiReadCommand(functionIds); + DriverLayer.Control.Ins.SendApiReadCommand(page); } else { foreach (var function in GetDeviceFunctionList()) { - switch (function.functionCategory) + switch (function.Spk_Prefix) { case FunctionCategory.Light: - case FunctionCategory.Electrical: - case FunctionCategory.SwitchDevice: + case FunctionCategory.Electric: case FunctionCategory.Curtain: - case FunctionCategory.Thermostat: + case FunctionCategory.AC: + case FunctionCategory.FloorHeat: DriverLayer.Control.Ins.SendReadCommand(function); break; } @@ -630,7 +532,7 @@ /// <summary> /// 娣诲姞鍦烘櫙 /// </summary> - public Scene AddScene(Scene scene,out string result) + public string AddScene(Scene scene, out Scene result) { Scene tempScene = null; var pm = new HttpServerRequest(); @@ -638,14 +540,47 @@ if (revPack.Code == StateCode.SUCCESS) { var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString()); - tempScene = sceneList.Find((obj) => obj.userSceneId == scene.userSceneId); + tempScene = sceneList.Find((obj) => obj.sid == scene.sid); var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene)); - Common.FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd); + FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd); + result = tempScene; } - result = revPack.Code; - return tempScene; + else + { + result = tempScene; + } + return revPack.Code; } #endregion + + #region 鏀惰棌鍔熻兘 + + /// <summary> + /// 鏀惰棌鍦烘櫙 + /// </summary> + public string CollectScene(Scene scene) + { + var result = ""; + if (scene.collect) + { + result = ApiUtlis.Ins.HttpRequest.CollectDevice(scene.userSceneId).Code; + } + else + { + result = ApiUtlis.Ins.HttpRequest.CancelCollectDevice(scene.userSceneId).Code; + } + + //鎻愮ず閿欒 + if (result != StateCode.SUCCESS) + { + IMessageCommon.Current.ShowErrorInfoAlter(result); + } + + return result; + } + + #endregion + #region 鍔熻兘鏂囨湰鐩稿叧 /// <summary> @@ -687,6 +622,9 @@ case FunctionAttributeKey.Percent: text = Language.StringByID(StringId.PercentAdjustment); break; + case FunctionAttributeKey.FadeTime: + text = Language.StringByID(StringId.FadeSpeed); + break; } return text; } -- Gitblit v1.8.0