From 43b0d5870d528f23ecd6aeceb6cfd4325188b46f Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 01 七月 2021 15:50:43 +0800 Subject: [PATCH] Revert "1" --- HDL_ON/Entity/FunctionList.cs | 923 ++++++++++++++++++-------------------------------------- 1 files changed, 302 insertions(+), 621 deletions(-) diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs index b5c9513..1f2fe17 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; @@ -15,11 +16,11 @@ { get { - if(_FunctionList == null) + if (_FunctionList == null) { _FunctionList = new FunctionList(); #region 鎭㈠鏁版嵁 - var filePathList = Common.FileUtlis.Files.ReadFiles(); + var filePathList = FileUtlis.Files.ReadFiles(); foreach (var filePath in filePathList) { _FunctionList.IniFunctionList(filePath); @@ -29,325 +30,279 @@ return _FunctionList; } } + /// <summary> + /// 鍔熻兘鍒楄〃 + /// </summary> + public List<Function> Functions = new List<Function>(); /// <summary> /// 绌鸿皟鍒楄〃 /// </summary> - public List<AC> aCs = new List<AC>(); + /// <returns></returns> + public List<Function> GetAcList() + { + var spkList = SPK.AcSpkList(); + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } + /// <summary> /// 鐏厜鍒楄〃 /// </summary> - public List<Light> lights = new List<Light>(); + public List<Function> GetLightList() + { + var spkList = SPK.LightSpkList(); + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } /// <summary> /// 绐楀笜鍒楄〃 /// </summary> - public List<Curtain> curtains = new List<Curtain>(); + public List<Function> GetCurtainList() + { + var spkList = SPK.CurtainSpkList(); + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } + /// <summary> /// 鍦扮儹鍒楄〃 /// </summary> - public List<FloorHeating> floorHeatings = new List<FloorHeating>(); + public List<Function> GetFloorHeatingList() + { + var spkList = SPK.FhSpkList(); + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } + + /// <summary> + /// 鏂伴鍒楄〃 + /// </summary> + /// <returns></returns> + public List<Function> GetAirFreshList() + { + var spkList = SPK.AirFreshSpkList(); + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } + + /// <summary> + /// 鑳芥簮鍒楄〃 + /// </summary> + /// <returns></returns> + public List<Function> GetEnergyList() + { + var spkList = SPK.EnergySpkList(); + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } + #region 瀹剁數鍒楄〃 electricals /// <summary> /// 瀹剁數鍒楄〃 /// </summary> - public List<Function> electricals + public List<Function> GetElectricals() { - get - { - if(fans == null) - { - fans = new List<Fan>(); - } - if(switchSockets == null) - { - switchSockets = new List<SwitchSocket>(); - } - if(tVs == null) - { - tVs = new List<TV>(); - } - var list = new List<Function>(); - list.AddRange(fans); - list.AddRange(switchSockets); - list.AddRange(tVs); - return list; - } + var spkList = SPK.ElectricalSpkList(); + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); } + + /// <summary> - /// 椋庢墖鍒楄〃 + /// 绾㈠瀹濆垪琛� /// </summary> - public List<Fan> fans = new List<Fan>(); - /// <summary> - /// 鐢佃鍒楄〃 - /// </summary> - public List<TV> tVs = new List<TV>(); - /// <summary> - /// 瀹剁數鍒楄〃 - /// </summary> - public List<SwitchSocket> switchSockets = new List<SwitchSocket>(); + public List<Function> GetIrModuleList() + { + return Functions.FindAll((obj) => obj.spk == SPK.IrModule); + } #endregion + + /// <summary> + /// 闊充箰鍒楄〃 + /// </summary> + /// <returns></returns> + public List<Function> GetMusicList() + { + var spkList = SPK.MusicSpkList(); + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } + + /// <summary> /// 鐜浼犳劅鍣ㄥ垪琛� /// </summary> - public List<Sensor> sensorsEnvironmentalScience = new List<Sensor>(); + public List<Function> GetEnvirSensorsList() + { + var spkList = SPK.EnvironSpkList(); + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } + /// <summary> + /// 瀹夐槻璁惧鍒楄〃 + /// </summary> + public List<Function> GetArmSensorList() + { + var spkList = SPK.ArmSensorSpkList(); + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } + + /// <summary> + /// 鍙瀵硅鍒楄〃,褰撲负null鎴杝ize涓�0鍒欎笉鏄剧ず鍙瀵硅icon + /// </summary> + // public UI.UI2.FuntionControlView.Video.VideoClouds videoIntercom; + public List<UI.UI2.FuntionControlView.Video.Video> videoIntercom = new List<UI.UI2.FuntionControlView.Video.Video>(); + + List<Function> _OtherBrandFunction; + /// <summary> + /// 绗笁鏂瑰搧鐗屽姛鑳� + /// </summary> + public List<Function> OtherBrandFunction + { + get + { + if(_OtherBrandFunction == null) + { + _OtherBrandFunction = new List<Function>(); + var spkList = SPK.GetAll3tySPK(); + _OtherBrandFunction = Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } + return _OtherBrandFunction; + } + } + /// <summary> /// 鍦烘櫙鍒楄〃 /// </summary> public List<Scene> scenes = new List<Scene>(); - /// <summary> - /// 鍔熻兘鍒楄〃 - /// </summary> - List<Function> deviceFunctionList = new List<Function>(); + /// <summary> + /// 瀹夐槻鍒楄〃 + /// </summary> + public List<SecurityAlarm> securities = new List<SecurityAlarm>(); /// <summary> /// 鍔犺浇鍔熻兘鍒楄〃 - /// todo 闇�瑕佷紭鍖栵紝鍚庢湡涓嶈兘淇濊瘉鑳戒娇鐢╯id瑙f瀽鍑烘槸浠�涔堢被鍨嬬殑璁惧 /// </summary> /// <param name="filePath"></param> - public void IniFunctionList(string filePath) + /// <param name="checkRepeat"> + /// <para>鑰冭檻鍒版�ц兘闂杩藉姞姝ゅ彉閲�,鏄惁妫�娴嬮噸澶�,鍙function鏈夋晥</para> + /// <para>true:褰撻噸澶嶅瓨鍦ㄦ椂,鏇挎崲鎺�</para> + /// <para>false:鐩存帴鏃犳潯浠舵坊鍔�</para></param> + public void IniFunctionList(string filePath, bool checkRepeat = false) { + //MainPage.Log("12346890sdkxghjkl"); + // todo 澧炲姞璁惧锛屽鍔犲姛鑳借繘鍔熻兘鍒楄〃 if (filePath.StartsWith("FunctionData_")) { - var functionDataBytes = Common.FileUtlis.Files.ReadFile(filePath); + var functionDataBytes = FileUtlis.Files.ReadFile(filePath); var functionDataString = System.Text.Encoding.UTF8.GetString(functionDataBytes); var tempFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(functionDataString); if (tempFunction == null) { - Common.FileUtlis.Files.DeleteFile(filePath); + MainPage.Log("null"); + FileUtlis.Files.DeleteFile(filePath); return; } - if (tempFunction.DeleteSign) + //闊充箰閮ㄥ垎瑕佷慨鏀� + //if(tempFunction.spk.ToString() == SPK.MusicStandard) + //{ + // UI.Music.A31MusicModel.A31MusicModelList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<UI.Music.A31MusicModel>(functionDataString)); + //} + if (checkRepeat == true) { - //todo 鍒犻櫎浜戠鏁版嵁 20201203--App涓嶈兘鍒犻櫎鍔熻兘鏁版嵁 - } - else - { - switch (tempFunction.spk) + //妫�娴嬮噸澶� + for (int i = 0; i < Functions.Count; i++) { - case SPK.LightSwitch: - case SPK.LightDimming: - case SPK.LightRGB: - case SPK.LightRGBW: - case SPK.LightCCT: - var light = Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(functionDataString); - _FunctionList.lights.Add(light); - deviceFunctionList.Add(light); - break; - case SPK.CurtainRoller: - case SPK.CurtainShades: - case SPK.CurtainSwitch: - case SPK.CurtainTrietex: - var curtain = Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(functionDataString); - _FunctionList.curtains.Add(curtain); - deviceFunctionList.Add(curtain); - break; - case SPK.AcStandard: - var ac = Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(functionDataString); - _FunctionList.aCs.Add(ac); - deviceFunctionList.Add(ac); - break; - case SPK.FloorHeatStandard: - var fh = Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(functionDataString); - _FunctionList.floorHeatings.Add(fh); - deviceFunctionList.Add(fh); - break; - case SPK.SensorPm25: - case SPK.SensorCO2: - case SPK.SensorTVOC: - case SPK.SensorTemperature: - case SPK.SensorHumidity: - var sensor = Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(functionDataString); - _FunctionList.sensorsEnvironmentalScience.Add(sensor); - deviceFunctionList.Add(sensor); - break; - case SPK.ElectricSocket: - var ele = Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(functionDataString); - _FunctionList.switchSockets.Add(ele); - deviceFunctionList.Add(ele); - break; - case SPK.ElectricTV: - var tv = Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(functionDataString); - _FunctionList.tVs.Add(tv); - deviceFunctionList.Add(tv); - break; - case SPK.ElectricFan: - var fan = Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(functionDataString); - _FunctionList.fans.Add(fan); - deviceFunctionList.Add(fan); - break; + if (Functions[i].deviceId == tempFunction.deviceId) + { + //鍏堢Щ闄ゆ帀鍐嶅姞 + Functions.RemoveAt(i); + Functions.Add(tempFunction); + return; + } } } + Functions.Add(tempFunction); } 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); + } + else if (filePath.StartsWith("SecurityData_")) + { + var dataBytes = FileUtlis.Files.ReadFile(filePath); + var dataString = System.Text.Encoding.UTF8.GetString(dataBytes); + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<SecurityAlarm>(dataString); + if (temp == null) + { + MainPage.Log("null"); + FileUtlis.Files.DeleteFile(filePath); + return; + } + if (checkRepeat == true) + { + //妫�娴嬮噸澶� + for (int i = 0; i < securities.Count; i++) + { + if (securities[i].sid == temp.sid) + { + //鍏堢Щ闄ゆ帀鍐嶅姞 + securities.RemoveAt(i); + securities.Add(temp); + return; + } + } + } + securities.Add(temp); } } /// <summary> /// 鑾峰彇璁惧鍔熻兘鍒楄〃 /// </summary> - public List<Function> GetDeviceFunctionList() + public List<Function> GetDeviceFunctionList(SPK.BrandType brandType = SPK.BrandType.All) { - if (deviceFunctionList == null || deviceFunctionList.Count == 0) + List<Function> resultFunctions = new List<Function>(); + if (brandType == SPK.BrandType.All) { - 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 = deviceFunctionList.OrderByDescending(o => o.controlCounter).ToList(); + else + { + switch (brandType) + { + case SPK.BrandType.Hdl: + foreach (var function in Functions) + { + if (!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(function.spk)) + { + resultFunctions.Add(function); + } + } + break; + + case SPK.BrandType.Tuya: + foreach (var function in Functions) + { + if (SPK.Get3tySpk(SPK.BrandType.Tuya).Contains(function.spk)) + { + resultFunctions.Add(function); + } + } + break; + } + return resultFunctions; } - catch (Exception ex) - { - MainPage.Log($"璁惧鍔熻兘鎺掑簭寮傚父锛歿ex.Message}"); - } - return deviceFunctionList; + + return Functions; } + + + + /// <summary> /// 娓呯┖璁惧鍔熻兘鍒楄〃 /// </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; + Functions = new List<Function>(); _FunctionList = null; - } - - /// <summary> - /// 鎺ユ敹bus杞欢涓婁紶鐨勫姛鑳� - /// tcp鏂瑰紡 - /// </summary> - /// <param name="sidObj"></param> - public void AddDeviceFunction(Function sidObj0) - { - switch (sidObj0.functionType) - { - case FunctionType.AC: - var sidObj = Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); - List.aCs.Add(sidObj); - sidObj.SaveFunctionData(false); - break; - case FunctionType.FloorHeating: - var sidObj1 = Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); - List.floorHeatings.Add(sidObj1); - sidObj1.SaveFunctionData(false); - break; - case FunctionType.Dimmer: - case FunctionType.RGB: - case FunctionType.Relay: - var sidObj2 = Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); - List.lights.Add(sidObj2); - sidObj2.SaveFunctionData(false); - break; - case FunctionType.Curtain: - case FunctionType.RollingShutter: - case FunctionType.MotorCurtain: - var sidObj3 = Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); - List.curtains.Add(sidObj3 ); - sidObj3.SaveFunctionData(false); - break; - case FunctionType.TV: - var sidObj4 = Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); - List.tVs.Add(sidObj4); - sidObj4.SaveFunctionData(false); - break; - case FunctionType.Socket: - var sidObj5 = Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); - List.switchSockets.Add(sidObj5); - sidObj5.SaveFunctionData(false); - break; - case FunctionType.Fan: - var sidObj6 = Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); - List.fans.Add(sidObj6); - sidObj6.SaveFunctionData(false); - break; - case FunctionType.CO2: - case FunctionType.TVOC: - case FunctionType.PM25: - case FunctionType.Temp: - case FunctionType.Humidity: - var sidObj7 = Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0)); - List.sensorsEnvironmentalScience.Add(sidObj7); - sidObj7.SaveFunctionData(false); - 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.functionCategory) - { - case FunctionCategory.Thermostat: - switch (f.functionType) - { - case FunctionType.AC: - _FunctionList.aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(obj.ToString())); - break; - case FunctionType.FloorHeating: - _FunctionList.floorHeatings.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(obj.ToString())); - break; - } - break; - case FunctionCategory.Light: - _FunctionList.lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(obj.ToString())); - break; - case FunctionCategory.Curtain: - _FunctionList.curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(obj.ToString())); - break; - case FunctionCategory.Electrical: - switch(f.functionType) - { - case FunctionType.TV: - _FunctionList.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(obj.ToString())); - break; - case FunctionType.Socket: - _FunctionList.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(obj.ToString())); - break; - case FunctionType.Fan: - _FunctionList.electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(obj.ToString())); - break; - } - break; - case FunctionCategory.Sensor: - switch(f.functionType) - { - 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())); - break; - } - break; - } } /// <summary> @@ -363,135 +318,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 - { - MainPage.Log($"deviceType:{localFunction.spk} local:{localFunction.modifyTime} server:{newFunction.modifyTime}"); - i++; - if (localFunction.modifyTime != 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,72 +335,58 @@ 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) { - 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; - } - var removeTemp = deviceFunctionList.Find((obj) => obj.deviceId == delTemp.deviceId); - if(removeTemp!= null) - { - deviceFunctionList.Remove(removeTemp); - } - Common.FileUtlis.Files.DeleteFile(delTemp.savePath); + Functions.Remove(Functions.Find((obj) => obj.deviceId == delTemp.deviceId)); + FileUtlis.Files.DeleteFile(delTemp.savePath); } bool lockReadFunctionStatus = false; + + /// <summary> + /// 璇诲彇绗笁鏂硅澶囩姸鎬� + /// </summary> + public void Read3tyFunctionStatus() + { + //璇诲彇娑傞甫璁惧鐘舵�� + if (GetDeviceFunctionList(SPK.BrandType.Tuya).Count > 0) + { + var page = new List<string>(); + int count = 0; + foreach (var function in GetDeviceFunctionList(SPK.BrandType.Tuya)) + { + page.Add(function.deviceId); + count++; + if (count > 9) + { + DriverLayer.Control.Ins.ReadFunctionsInfo(page); + page.Clear(); + count = 0; + } + } + DriverLayer.Control.Ins.ReadFunctionsInfo(page); + } + + } + /// <summary> /// 璇诲彇鍏ㄩ儴鍔熻兘鐨勭姸鎬� /// </summary> @@ -588,12 +408,38 @@ lockReadFunctionStatus = true; try { - if (DriverLayer.Control.Ins.IsRemote) + Read3tyFunctionStatus(); + + 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; - foreach (var function in GetDeviceFunctionList()) + foreach (var function in GetDeviceFunctionList(SPK.BrandType.Hdl)) { page.Add(function.deviceId); count++; @@ -601,25 +447,10 @@ { DriverLayer.Control.Ins.SendApiReadCommand(page); page.Clear(); + count = 0; } } DriverLayer.Control.Ins.SendApiReadCommand(page); - } - else - { - foreach (var function in GetDeviceFunctionList()) - { - switch (function.functionCategory) - { - case FunctionCategory.Light: - case FunctionCategory.Electrical: - case FunctionCategory.SwitchDevice: - case FunctionCategory.Curtain: - case FunctionCategory.Thermostat: - DriverLayer.Control.Ins.SendReadCommand(function); - break; - } - } } } catch (Exception ex) @@ -631,14 +462,17 @@ lockReadFunctionStatus = false; MainPage.Log($"缁撴潫--璇诲彇"); } + + }) { IsBackground = true }.Start(); } + #region 鍦烘櫙鐩稿叧 /// <summary> /// 娣诲姞鍦烘櫙 /// </summary> - public string AddScene(Scene scene,out Scene result) + public string AddScene(Scene scene, out Scene result) { Scene tempScene = null; var pm = new HttpServerRequest(); @@ -648,202 +482,49 @@ var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString()); 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 = tempScene; + else + { + result = tempScene; + } return revPack.Code; } #endregion - #region 鍔熻兘鏂囨湰鐩稿叧 + #region 鏀惰棌鍔熻兘 + /// <summary> - /// 灞炴�у悕绉版樉绀烘枃鏈� - /// 涓嫳鏂囨樉绀� + /// 鏀惰棌鍦烘櫙 /// </summary> - public string GetNameText(string key) + public string CollectScene(Scene scene) { - string text = ""; - switch (key) + var result = ""; + if (scene.collect) { - 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; + result = ApiUtlis.Ins.HttpRequest.CollectDevice(scene.userSceneId).Code; } - return text; + else + { + result = ApiUtlis.Ins.HttpRequest.CancelCollectDevice(scene.userSceneId).Code; + } + + //鎻愮ず閿欒 + if (result != StateCode.SUCCESS) + { + IMessageCommon.Current.ShowErrorInfoAlter(result); + } + + return result; } - /// <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; - } + #endregion - /// <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; - } + #region + + #endregion } -- Gitblit v1.8.0