From df8d4ab0ef17a7fab5dea9c47bbd9f4d4a2a40b0 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 15 三月 2021 14:55:49 +0800 Subject: [PATCH] 合并前上传一个版本 --- HDL_ON/Entity/FunctionList.cs | 454 +++++++++++--------------------------------------------- 1 files changed, 92 insertions(+), 362 deletions(-) diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs index e963308..845ab49 100644 --- a/HDL_ON/Entity/FunctionList.cs +++ b/HDL_ON/Entity/FunctionList.cs @@ -20,7 +20,7 @@ { _FunctionList = new FunctionList(); #region 鎭㈠鏁版嵁 - var filePathList = Common.FileUtlis.Files.ReadFiles(); + var filePathList = FileUtlis.Files.ReadFiles(); foreach (var filePath in filePathList) { _FunctionList.IniFunctionList(filePath); @@ -30,6 +30,14 @@ return _FunctionList; } } + /// <summary> + /// 鍔熻兘鍒楄〃 + /// </summary> + public List<Function> Functions = new List<Function>(); + + + + /// <summary> /// 绌鸿皟鍒楄〃 @@ -79,6 +87,10 @@ { waterValveList = new List<Function>(); } + if(clothesHangerList == null) + { + clothesHangerList = new List<Function>(); + } var list = new List<Function>(); list.AddRange(fans); list.AddRange(switchSockets); @@ -86,6 +98,7 @@ list.AddRange(airCleaners); list.AddRange(weepRobots); list.AddRange(waterValveList); + list.AddRange(clothesHangerList); return list; } } @@ -113,6 +126,14 @@ /// 姘撮榾鍒楄〃 /// </summary> public List<Function> waterValveList = new List<Function>(); + /// <summary> + /// 鍑夐湼鍒楄〃 + /// </summary> + public List<Function> clothesHangerList = new List<Function>(); + /// <summary> + /// 绾㈠瀹濆垪琛� + /// </summary> + public List<Function> irModule = new List<Function>(); #endregion /// <summary> @@ -125,17 +146,6 @@ public List<Sensor> sensorsArm = new List<Sensor>(); public List<Scene> scenes = new List<Scene>(); - /// <summary> - /// 鍦烘櫙鍒楄〃 - /// </summary> - //public List<Scene> Scenes - //{ - // get - // { - // List.scenes = List.scenes.OrderByDescending(o => o.createTime).ToList(); - // return List.scenes; - // } - //} /// <summary> /// 鍔熻兘鍒楄〃 /// </summary> @@ -157,14 +167,9 @@ var tempFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(functionDataString); if (tempFunction == null) { - Common.FileUtlis.Files.DeleteFile(filePath); + FileUtlis.Files.DeleteFile(filePath); return; } - if (tempFunction.DeleteSign) - { - //todo 鍒犻櫎浜戠鏁版嵁 20201203--App涓嶈兘鍒犻櫎鍔熻兘鏁版嵁 - } - else { switch (tempFunction.spk) { @@ -241,11 +246,21 @@ break; case SPK.SensorSmoke: case SPK.SensorWater: - case SPK.SensorGas: + case SPK.SensorDoorWindow: case SPK.SensorPir: var ser = Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(functionDataString); List.sensorsArm.Add(ser); deviceFunctionList.Add(ser); + break; + case SPK.ClothesHanger: + var ch = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(functionDataString); + List.clothesHangerList.Add(ch); + deviceFunctionList.Add(ch); + break; + case SPK.IrModule: + var irm = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(functionDataString); + List.irModule.Add(irm); + deviceFunctionList.Add(irm); break; } } @@ -328,146 +343,20 @@ 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; - } + #region 瀹剁數 + List.fans = new List<Fan>(); + List.switchSockets = new List<SwitchSocket>(); + List.tVs = new List<TV>(); + List.airCleaners = new List<AirCleaner>(); + List.weepRobots = new List<WeepRobot>(); + List.waterValveList = new List<Function>(); + List.clothesHangerList = new List<Function>(); + #endregion - /// <summary> - /// 鎺ユ敹bus杞欢涓婁紶鐨勫姛鑳� - /// tcp鏂瑰紡 - /// </summary> - /// <param name="sidObj"></param> - public void AddDeviceFunction(Function sidObj0) - { - switch (sidObj0.spk) - { - case SPK.AcStandard: - var sidObj = Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); - List.aCs.Add(sidObj); - sidObj.SaveFunctionFile(); - break; - case SPK.FloorHeatStandard: - var sidObj1 = Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); - List.floorHeatings.Add(sidObj1); - sidObj1.SaveFunctionFile(); - break; - 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.SaveFunctionFile(); - break; - 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.SaveFunctionFile(); - break; - case SPK.ElectricTV: - var sidObj4 = Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); - List.tVs.Add(sidObj4); - sidObj4.SaveFunctionFile(); - break; - case SPK.ElectricSocket: - var sidObj5 = Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); - List.switchSockets.Add(sidObj5); - sidObj5.SaveFunctionFile(); - break; - case SPK.ElectricFan: - var sidObj6 = Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); - List.fans.Add(sidObj6); - sidObj6.SaveFunctionFile(); - break; - 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.SaveFunctionFile(); - break; - } - } - /// <summary> - /// 鎺ユ敹bus杞欢涓婁紶鐨勫姛鑳� - /// http udp - /// </summary> - /// <param name="obj"></param> - public void AddFunction(object obj) - { - var f = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(obj.ToString()); - if (f == null) - return; - switch (f.Spk_Prefix) - { - case FunctionCategory.AC: - switch (f.spk) - { - case SPK.AcStandard: - List.aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(obj.ToString())); - break; - } - 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: - List.lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(obj.ToString())); - break; - case FunctionCategory.Curtain: - List.curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(obj.ToString())); - break; - case FunctionCategory.Electric: - switch(f.spk) - { - case SPK.ElectricTV: - List.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(obj.ToString())); - break; - case SPK.ElectricSocket: - List.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(obj.ToString())); - break; - case SPK.ElectricFan: - List.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(obj.ToString())); - break; - } - break; - case FunctionCategory.Sensor: - switch (f.spk) - { - 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; - case SPK.SensorWater: - case SPK.SensorSmoke: - case SPK.SensorGas: - case SPK.SensorDryContact: - case SPK.SensorShanLan: - case SPK.SensorDuiShe: - case SPK.SensorPir: - case SPK.SensorDoorWindow: - case SPK.SensoruUtrasonic: - List.sensorsArm.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(obj.ToString())); - break; - } - break; - } + List.scenes = new List<Scene>(); + List.deviceFunctionList = new List<Function>(); + _FunctionList = null; } /// <summary> @@ -554,7 +443,26 @@ List.tVs.Remove(List.tVs.Find((obj) => obj.deviceId == delTemp.deviceId)); break; case SPK.ElectricFan: + case SPK.ElectricTuyaFan: List.fans.Remove(List.fans.Find((obj) => obj.deviceId == delTemp.deviceId)); + break; + case SPK.ElectricTuyaAirCleaner: + List.airCleaners.Remove(List.airCleaners.Find((obj) => obj.deviceId == delTemp.deviceId)); + break; + case SPK.ElectricTuyaWaterValve: + List.waterValveList.Remove(List.waterValveList.Find((obj) => obj.deviceId == delTemp.deviceId)); + break; + case SPK.ElectricTuyaWeepRobot: + List.weepRobots.Remove(List.weepRobots.Find((obj) => obj.deviceId == delTemp.deviceId)); + break; + case SPK.ClothesHanger: + List.clothesHangerList.Remove(List.clothesHangerList.Find((obj) => obj.deviceId == delTemp.deviceId)); + break; + case SPK.SensorSmoke: + case SPK.SensorWater: + case SPK.SensorDoorWindow: + case SPK.SensorPir: + List.sensorsArm.Remove(List.sensorsArm.Find((obj)=>obj.deviceId == delTemp.deviceId)); break; } var removeTemp = deviceFunctionList.Find((obj) => obj.deviceId == delTemp.deviceId); @@ -616,7 +524,31 @@ { Read3tyFunctionStatus(); - if (DriverLayer.Control.Ins.IsRemote) + if(DriverLayer.Control.Ins.GatewayOnline_Local) + { + foreach (var function in GetDeviceFunctionList(SPK.BrandType.Hdl)) + { + switch (function.Spk_Prefix) + { + case FunctionCategory.Music: + case FunctionCategory.DryContact: + continue; + } + DriverLayer.Control.Ins.SendReadCommand(function); + //switch (function.Spk_Prefix) + //{ + // case FunctionCategory.Light: + // case FunctionCategory.Electric: + // case FunctionCategory.Curtain: + // case FunctionCategory.AC: + // case FunctionCategory.FloorHeat: + // case FunctionCategory.Sensor: + // DriverLayer.Control.Ins.SendReadCommand(function); + // break; + //} + } + } + else { var page = new List<string>(); int count = 0; @@ -633,22 +565,6 @@ } } DriverLayer.Control.Ins.SendApiReadCommand(page); - } - else - { - foreach (var function in GetDeviceFunctionList(SPK.BrandType.Hdl)) - { - switch (function.Spk_Prefix) - { - case FunctionCategory.Light: - case FunctionCategory.Electric: - case FunctionCategory.Curtain: - case FunctionCategory.AC: - case FunctionCategory.FloorHeat: - DriverLayer.Control.Ins.SendReadCommand(function); - break; - } - } } } catch (Exception ex) @@ -719,195 +635,9 @@ #endregion - #region 鍔熻兘鏂囨湰鐩稿叧 - /// <summary> - /// 灞炴�у悕绉版樉绀烘枃鏈� - /// 涓嫳鏂囨樉绀� - /// </summary> - public string GetNameText(string key) - { - string text = ""; - switch (key) - { - case FunctionAttributeKey.OnOff: - text = Language.StringByID(StringId.OnOff); - break; - case FunctionAttributeKey.Brightness: - text = Language.StringByID(StringId.Brightness); - break; - case FunctionAttributeKey.RGB: - text = Language.StringByID(StringId.ColorValue); - break; - case FunctionAttributeKey.Mode: - text = Language.StringByID(StringId.Mode); - break; - case FunctionAttributeKey.FanSpeed: - text = Language.StringByID(StringId.FanSpeed); - break; - case FunctionAttributeKey.SetTemp: - text = Language.StringByID(StringId.Temp); - break; - case FunctionAttributeKey.IndoorTemp: - text = Language.StringByID(StringId.IndoorTemp); - break; - case FunctionAttributeKey.Delay: - text = Language.StringByID(StringId.Delay); - break; - case FunctionAttributeKey.CCT: - text = "CCT"; - break; - case FunctionAttributeKey.Percent: - text = Language.StringByID(StringId.PercentAdjustment); - break; - case FunctionAttributeKey.FadeTime: - text = Language.StringByID(StringId.FadeSpeed); - break; - } - return text; - } + #region + - /// <summary> - /// 灞炴�у�煎崟浣� - /// </summary> - public string GetUintString(string key) - { - var us = ""; - switch (key) - { - case FunctionAttributeKey.SetTemp: - case FunctionAttributeKey.IndoorTemp: - us = "掳C"; - break; - case FunctionAttributeKey.Percent: - case FunctionAttributeKey.Brightness: - us = "%"; - break; - } - return us; - } - - /// <summary> - /// 鑾峰彇鎸囧畾灞炴�х殑鏄剧ず鏂囨湰 - /// 涓嫳鏂囨樉绀� - /// </summary> - public string GetValueText(string key, string value) - { - string text = ""; - switch (key) - { - case FunctionAttributeKey.OnOff: - text = value == "on" ? Language.StringByID(StringId.On) : Language.StringByID(StringId.OFF); - break; - case FunctionAttributeKey.SetTemp: - case FunctionAttributeKey.IndoorTemp: - case FunctionAttributeKey.Brightness: - case FunctionAttributeKey.Percent: - if (value == "") - { - value = "0"; - } - text = value; - break; - case FunctionAttributeKey.Mode: - switch (value) - { - //----绌鸿皟 - case "auto": - text = Language.StringByID(StringId.Auto); - break; - case "cool": - text = Language.StringByID(StringId.Cool); - break; - case "heat": - text = Language.StringByID(StringId.Heat); - break; - case "dry": - text = Language.StringByID(StringId.Dry); - break; - case "fan": - text = Language.StringByID(StringId.AirSupply); - break; - //-----鍦扮儹 - case "day": - text = Language.StringByID(StringId.Day); - break; - case "night": - text = Language.StringByID(StringId.Night); - break; - case "away": - text = Language.StringByID(StringId.Away); - break; - case "normal": - text = Language.StringByID(StringId.Normal); - break; - case "timer": - text = Language.StringByID(StringId.Timer); - break; - } - break; - case FunctionAttributeKey.FanSpeed: - switch (value) - { - case "high": - text = Language.StringByID(StringId.HighWindSpeed); - break; - case "medium": - text = Language.StringByID(StringId.MiddleWindSpeed); - break; - case "low": - text = Language.StringByID(StringId.LowWindSpeed); - break; - case "auto": - text = Language.StringByID(StringId.Auto); - break; - default: - text = "low"; - break; - } - break; - case "high": - text = Language.StringByID(StringId.HighWindSpeed); - break; - case "medium": - text = Language.StringByID(StringId.MiddleWindSpeed); - break; - case "low": - text = Language.StringByID(StringId.LowWindSpeed); - break; - case "auto": - text = Language.StringByID(StringId.Auto); - break; - } - return text; - } - - - /// <summary> - /// 寤舵椂鏄剧ず鐨勬枃鏈� - /// </summary> - public string GetDelayText(string delay) - { - string text = ""; - switch (delay) - { - case "0": - text = Language.StringByID(StringId.NoDelay); - break; - case "30": - text = "30s"; - break; - case "60": - text = "1min"; - break; - case "120": - text = "2min"; - break; - case "300": - text = "5min"; - break; - } - return text; - } #endregion } -- Gitblit v1.8.0