From f9181a9c8125136f597add7c30cb2ff508d54ba7 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 25 七月 2024 17:34:32 +0800 Subject: [PATCH] 2024年07月25日17:33:40 --- HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs | 135 +++++++++++++++++++++++++++++--------------- 1 files changed, 88 insertions(+), 47 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs index 1c25db0..6a36845 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using HDL_ON.Common; using HDL_ON.DAL.Server; +using HDL_ON.DriverLayer; using Shared; namespace HDL_ON.Entity @@ -10,7 +11,7 @@ { public GroupControl() { - spk = "GroupControl"; + spk = "groupControl"; } /// <summary> /// 缇ゆ帶ID @@ -25,7 +26,7 @@ /// </summary> public string NewGroupControlSid() { - string sceneId = ""; + string Id = ""; try { string sOidBeginsWith = "000101";//鍘傚晢 + 閫氳鏂瑰紡 @@ -52,23 +53,23 @@ //sTimeSpan = "00000000"; } - sceneId = sOidBeginsWith + sTimeSpan; + Id = sOidBeginsWith + sTimeSpan; - sceneId += "AA"; - sceneId += "AA01"; + Id += "AA"; + Id += "AA01"; int maxId = 1; Random random = new Random(Guid.NewGuid().GetHashCode()); maxId = random.Next(10); - sceneId += (maxId + 1).ToString("X4"); - sceneId += "0000"; + Id += (maxId + 1).ToString("X4"); + Id += "0000"; } catch { - return sceneId; + return Id; } - return sceneId; + return Id; } /// <summary> /// 缇ゆ帶鍚嶇О @@ -81,64 +82,78 @@ /// <summary> /// 鎴块棿uid /// </summary> - public List<String> uids = new List<string>(); + [Newtonsoft.Json.JsonIgnore] + public List<string> uids = new List<string>(); //public List<String> roomIds = new List<string>(); /// <summary> /// 缇ゆ帶鍔熻兘sid閰嶇疆 /// </summary> public List<GroupControlFunction> sids = new List<GroupControlFunction>(); - ///// <summary> - ///// 鑾峰彇璁惧娣诲姞鍒版埧闂寸殑鎴块棿鍚嶇О - ///// </summary> - ///// <returns></returns> - //public string GetRoomListName() - //{ - // string roomNameList = ""; - // foreach (var roomId in roomIds) - // { - // var findRoom = SpatialInfo.CurrentSpatial.RoomList.Find(obj => obj.roomId == roomId); - // if (findRoom == null) - // { - // continue; - // } - // if (roomNameList != "") - // { - // roomNameList += ","; - // } - // roomNameList += findRoom.floorName + "-" + findRoom.roomName; - // } - // if (roomNameList == "") - // { - // roomNameList = Language.StringByID(StringId.WholeZone); - // } - // return roomNameList; - //} + /// <summary> + /// 鑾峰彇璁惧娣诲姞鍒版埧闂寸殑鎴块棿鍚嶇О + /// </summary> + /// <returns></returns> + public string GetUidListName() + { + string roomNameList = ""; + foreach (var roomId in uids) + { + var findRoom = SpatialInfo.CurrentSpatial.RoomList.Find(obj => obj.roomId == roomId); + if (findRoom == null) + { + continue; + } + if (roomNameList != "") + { + roomNameList += ","; + } + roomNameList += findRoom.floorName + "-" + findRoom.roomName; + } + if (roomNameList == "") + { + roomNameList = Language.StringByID(StringId.WholeZone); + } + return roomNameList; + } /// <summary> /// 缇ゆ帶鎺у埗 /// </summary> /// <param name="pairs"></param> - public void Control(Dictionary<string,object> pairs) + public void Control(Dictionary<string,string> pairs) { try { - var controlValues = new Dictionary<string, object>(); - foreach(var p in pairs) + + if (DriverLayer.Control.Ins.GatewayOnline_Local) { - controlValues.Add("key", p.Key); - controlValues.Add("value", p.Value); + var functionControlDataObj = GetGatewayAlinkControlData(pairs); + var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(functionControlDataObj); + var sendBytes = DriverLayer.Control.Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlGroupControlTopic, functionControlDataJson); + new Control_Udp().SendLocalHdlLinkData(sendBytes, functionControlDataObj.id, 3); + MainPage.Log($"鏈湴閫氳 鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}"); } - var pack = ApiUtlis.Ins.HttpRequest.ControlGroupControl(userDeviceGroupControlId, controlValues); - if (pack != null) + else { - if (pack.Code == StateCode.SUCCESS) + + var controlValues = new Dictionary<string, object>(); + foreach (var p in pairs) { - //DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl. + controlValues.Add("key", p.Key); + controlValues.Add("value", p.Value); } - else + var pack = ApiUtlis.Ins.HttpRequest.ControlGroupControl(userDeviceGroupControlId, controlValues); + if (pack != null) { - MainPage.Log($"缇ゆ帶鎺у埗澶辫触,Code: {pack.Code}"); + if (pack.Code == StateCode.SUCCESS) + { + //DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl. + } + else + { + MainPage.Log($"缇ゆ帶鎺у埗澶辫触,Code: {pack.Code}"); + } } } } @@ -146,6 +161,32 @@ MainPage.Log($"缇ゆ帶鎺у埗澶辫触: {ex.Message}"); } } + + + public new List<FunctionAttributes> attributes { + get + { + var list = new List<FunctionAttributes>(); + + foreach (var temp in sids) + { + var light = FunctionList.List.GetLightList().Find((obj) => obj.sid == temp.sid); + if (light != null) + { + foreach(var attr in light.attributes) + { + if(list.Find((obj)=>obj.key == attr.key) == null) + { + list.Add(attr); + } + } + } + + } + + return list; + } + } } public class GroupControlFunction -- Gitblit v1.8.0