From 987933326b9620e29f7c4acac808ec3b8d958642 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 19 七月 2023 10:41:47 +0800
Subject: [PATCH] 2023年07月19日10:41:42
---
HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupControl.cs | 143 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 134 insertions(+), 9 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..81ce887 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 Id = "";
+ 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";
+ }
+
+ Id = sOidBeginsWith + sTimeSpan;
+
+ Id += "AA";
+ Id += "AA01";
+ int maxId = 1;
+
+ Random random = new Random(Guid.NewGuid().GetHashCode());
+ maxId = random.Next(10);
+
+ Id += (maxId + 1).ToString("X4");
+ Id += "0000";
+ }
+ catch
+ {
+ return Id;
+ }
+ return Id;
+ }
/// <summary>
/// 缇ゆ帶鍚嶇О
/// </summary>
- public string name = string.Empty;
+ //public string name = string.Empty;
/// <summary>
/// 缇ゆ帶绫诲瀷
/// </summary>
@@ -24,23 +82,22 @@
/// <summary>
/// 鎴块棿uid
/// </summary>
- public List<String> uids = new List<string>();
- public List<String> roomIds = 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()
+ public string GetUidListName()
{
string roomNameList = "";
- foreach (var roomId in roomIds)
+ foreach (var roomId in uids)
{
var findRoom = SpatialInfo.CurrentSpatial.RoomList.Find(obj => obj.roomId == roomId);
if (findRoom == null)
@@ -59,6 +116,51 @@
}
return roomNameList;
}
+
+ /// <summary>
+ /// 缇ゆ帶鎺у埗
+ /// </summary>
+ /// <param name="pairs"></param>
+ public void Control(Dictionary<string,string> pairs)
+ {
+ try
+ {
+
+ if (DriverLayer.Control.Ins.GatewayOnline_Local)
+ {
+ 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}");
+ }
+ else
+ {
+
+ 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}");
+ }
+ }
+ }
+ }
+ catch (Exception ex){
+ MainPage.Log($"缇ゆ帶鎺у埗澶辫触: {ex.Message}");
+ }
+ }
}
public class GroupControlFunction
@@ -71,6 +173,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