From 452e8cef1c740d18ee398be6971d9952e41dbd4a Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 12 四月 2023 16:11:50 +0800
Subject: [PATCH] 1
---
HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 150 insertions(+), 20 deletions(-)
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs
index 28dea93..4591f0b 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs
@@ -1,22 +1,80 @@
锘縰sing System;
using System.Collections.Generic;
+using HDL_ON.Common;
+using HDL_ON.DAL.Server;
+using HDL_ON.DriverLayer;
using Shared;
namespace HDL_ON.Entity
{
- public class GroupControl
+ public class GroupControl : Function
{
public GroupControl()
{
+ spk = "GroupControl";
}
+ /// <summary>
+ /// 缇ゆ帶ID
+ /// </summary>
+ public string userDeviceGroupControlId = string.Empty;
/// <summary>
/// 缇ゆ帶sid
/// </summary>
- public string sid = string.Empty;
+ //public string sid = string.Empty;
+ /// <summary>
+ /// 鐢熸垚缇ゆ帶sid
+ /// </summary>
+ public string NewGroupControlSid()
+ {
+ string sceneId = "";
+ try
+ {
+ string sOidBeginsWith = "000101";//鍘傚晢 + 閫氳鏂瑰紡
+ DateTime dt = DateTime.Now;
+ DateTime startTime = TimeZoneInfo.ConvertTimeToUtc(new DateTime(2020, 1, 1));
+ long m = (long)((dt - startTime).TotalMilliseconds / 10);
+ string sTimeSpan = "00000000";
+
+ byte[] arry = new byte[4];
+ arry[0] = (byte)(m & 0xFF);
+ arry[1] = (byte)((m & 0xFF00) >> 8);
+ arry[2] = (byte)((m & 0xFF0000) >> 16);
+ arry[3] = (byte)((m >> 24) & 0xFF);
+ sTimeSpan = arry[0].ToString("X2") + arry[1].ToString("X2") + arry[2].ToString("X2") + arry[3].ToString("X2");
+
+
+ if (sTimeSpan.Length >= 8)
+ {
+ sTimeSpan = sTimeSpan.Substring(0, 8);
+ }
+ else
+ {
+ sTimeSpan = Guid.NewGuid().ToString().Substring(0, 8);
+ //sTimeSpan = "00000000";
+ }
+
+ sceneId = sOidBeginsWith + sTimeSpan;
+
+ sceneId += "AA";
+ sceneId += "AA01";
+ int maxId = 1;
+
+ Random random = new Random(Guid.NewGuid().GetHashCode());
+ maxId = random.Next(10);
+
+ sceneId += (maxId + 1).ToString("X4");
+ sceneId += "0000";
+ }
+ catch
+ {
+ return sceneId;
+ }
+ return sceneId;
+ }
/// <summary>
/// 缇ゆ帶鍚嶇О
/// </summary>
- public string name = string.Empty;
+ //public string name = string.Empty;
/// <summary>
/// 缇ゆ帶绫诲瀷
/// </summary>
@@ -25,39 +83,88 @@
/// 鎴块棿uid
/// </summary>
public List<String> uids = new List<string>();
- public List<String> roomIds = 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 GetRoomListName()
+ /// <param name="pairs"></param>
+ public void Control(Dictionary<string,object> pairs)
{
- string roomNameList = "";
- foreach (var roomId in roomIds)
+ try
{
- var findRoom = SpatialInfo.CurrentSpatial.RoomList.Find(obj => obj.roomId == roomId);
- if (findRoom == null)
+
+ if (DriverLayer.Control.Ins.GatewayOnline_Local)
{
- continue;
+ var controlValues = new Dictionary<string, string>();
+ foreach (var p in pairs)
+ {
+ controlValues.Add("key", p.Key);
+ controlValues.Add("value", p.Value.ToString());
+ }
+ var functionControlDataObj = GetGatewayAlinkControlData(controlValues);
+ var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(functionControlDataObj);
+ var sendBytes = DriverLayer.Control.Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlFunctionTopic, functionControlDataJson);
+ new Control_Udp().SendLocalHdlLinkData(sendBytes, functionControlDataObj.id, 3);
+ MainPage.Log($"鏈湴閫氳 鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}");
}
- if (roomNameList != "")
+ else
{
- roomNameList += ",";
+
+ var controlValues = new Dictionary<string, object>();
+ foreach (var p in pairs)
+ {
+ controlValues.Add("key", p.Key);
+ controlValues.Add("value", p.Value);
+ }
+ var pack = ApiUtlis.Ins.HttpRequest.ControlGroupControl(userDeviceGroupControlId, controlValues);
+ if (pack != null)
+ {
+ if (pack.Code == StateCode.SUCCESS)
+ {
+ //DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl.
+ }
+ else
+ {
+ MainPage.Log($"缇ゆ帶鎺у埗澶辫触,Code: {pack.Code}");
+ }
+ }
}
- roomNameList += findRoom.floorName + "-" + findRoom.roomName;
}
- if (roomNameList == "")
- {
- roomNameList = Language.StringByID(StringId.WholeZone);
+ catch (Exception ex){
+ MainPage.Log($"缇ゆ帶鎺у埗澶辫触: {ex.Message}");
}
- return roomNameList;
}
}
@@ -71,6 +178,29 @@
/// 鍔熻兘spk
/// </summary>
public string spk = string.Empty;
+
+
+ }
+
+
+ public class GroupControlType
+ {
+ /// <summary>
+ /// 绫诲瀷
+ /// </summary>
+ public string type = string.Empty;
+ /// <summary>
+ /// 绫诲瀷鍚嶇О
+ /// </summary>
+ public string typeName = string.Empty;
+ /// <summary>
+ /// 缇ゆ帶鏀寔鐨剆pk
+ /// </summary>
+ public List<string> spks = new List<string>();
+ /// <summary>
+ /// 缇ゆ帶鏀寔鐨剆pk灞炴��
+ /// </summary>
+ public List<string> spkAttrs = new List<string>();
}
}
--
Gitblit v1.8.0