From 263401d40b2d9d2c1b36a24f33d45c5cb7192518 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期三, 23 十二月 2020 15:51:54 +0800 Subject: [PATCH] 20201223-6 --- HDL_ON/Entity/FunctionList.cs | 131 +++++++++++++++++++++++++++++++++++-------- 1 files changed, 106 insertions(+), 25 deletions(-) diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs index 6d6b3f2..7adfaaf 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> @@ -207,7 +216,7 @@ } try { - deviceFunctionList.OrderByDescending(o => o.usageCount).ToList(); + deviceFunctionList = deviceFunctionList.OrderByDescending(o => o.controlCounter).ToList(); } catch (Exception ex) { @@ -363,7 +372,7 @@ } else { - Utlis.ShowTip(Shared.Language.StringByID(StringId.EditFunctionInfoFail) + "\r\nCode:" + pack.Code); + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); } return pack.Code; } @@ -382,28 +391,36 @@ var deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieApiPack>(pack.Data.ToString()); if (deviceList != null) { - for (int i =0;i < List.GetDeviceFunctionList().Count;) + if (List.GetDeviceFunctionList().Count > 0) { - var localFunction = List.GetDeviceFunctionList()[i]; - var newFunction = deviceList.list.Find((obj) => obj.deviceId == localFunction.deviceId); - if (newFunction == null)//濡傛灉浜戠鏈�鏂版暟鎹病鏈夎鏉℃暟鎹紝鍒欐湰鍦伴渶瑕佸垹鎺夎鏁版嵁璁板綍 + for (int i = 0; i < List.GetDeviceFunctionList().Count;) { - List.DeleteFunction(localFunction); - } - else - { - i++; - if (localFunction.modifyTime != newFunction.modifyTime) + var localFunction = List.GetDeviceFunctionList()[i]; + if (localFunction.functionCategory == FunctionCategory.Music) { - 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_Data = newFunction.bus_Data; - localFunction.SaveFunctionData(false); + i++; + continue; } - deviceList.list.Remove(newFunction);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘 + 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);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘 + } } } //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳� @@ -582,12 +599,21 @@ { 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 { @@ -618,6 +644,58 @@ }) { IsBackground = true }.Start(); } + #region 鍦烘櫙鐩稿叧 + /// <summary> + /// 娣诲姞鍦烘櫙 + /// </summary> + public string AddScene(Scene scene, out Scene result) + { + Scene tempScene = null; + var pm = new HttpServerRequest(); + var revPack = pm.AddScene(scene); + if (revPack.Code == StateCode.SUCCESS) + { + 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)); + FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd); + result = 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 鍔熻兘鏂囨湰鐩稿叧 @@ -636,7 +714,7 @@ case FunctionAttributeKey.Brightness: text = Language.StringByID(StringId.Brightness); break; - case FunctionAttributeKey.Color: + case FunctionAttributeKey.RGB: text = Language.StringByID(StringId.ColorValue); break; case FunctionAttributeKey.Mode: @@ -660,6 +738,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