From 4fef29b9ab9f2632f15a0d45005f92d91de5d4e5 Mon Sep 17 00:00:00 2001
From: Davin <591807572@qq.com>
Date: 星期四, 27 七月 2023 14:26:59 +0800
Subject: [PATCH] feature 萤石sdk更新
---
HDL_ON/Entity/Function/Function.cs | 265 ++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 251 insertions(+), 14 deletions(-)
diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index beb256d..8e8602b 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -100,7 +100,7 @@
/// <returns></returns>
public FunctionAttributes GetAttribute(string key)
{
- var attr = attributes.Find((a) => a.key == key);
+ var attr = GetFunctionAttributes().Find((a) => a.key == key);
return attr;
}
@@ -109,7 +109,7 @@
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
- public string GetAttrState(string key , string defaultValue = "0")
+ public string GetAttrState(string key, string defaultValue = "0")
{
//涓�绾ф煡璇eyValue鍊�
var attrState = attributes.Find((s) => s.key == key.ToString());
@@ -273,6 +273,14 @@
/// </summary>
public string deviceId = "0";
/// <summary>
+ /// 绗笁鏂硅澶囨墿灞昳d
+ /// </summary>
+ public string extDevId = string.Empty;
+ /// <summary>
+ /// 鐗╃悊璁惧(妯″潡)鍨嬪彿
+ /// </summary>
+ public string omodel = string.Empty;
+ /// <summary>
/// 璁惧spk
/// </summary>
public string spk = "";
@@ -364,6 +372,39 @@
/// attri
/// </summary>
public List<FunctionAttributes> attributes = new List<FunctionAttributes>();
+
+ public List<FunctionAttributes> GetFunctionAttributes()
+ {
+ if (spk == SPK.GroupControl)
+ {
+ var list = new List<FunctionAttributes>();
+ var gc = FunctionList.List.groupControls.Find((obj) => obj.sid == sid);
+ if (gc != null)
+ {
+ foreach (var temp in gc.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;
+ }
+ else
+ {
+ return attributes;
+ }
+ }
+
/// <summary>
/// 鎴块棿ID鍒楄〃
@@ -519,6 +560,14 @@
SetAttrState(sta.key, sta.value);
}
}
+ /// <summary>
+ /// 鍔熻兘鍒楄〃鎺掑簭
+ /// </summary>
+ public int FunctionOrderNumber = 9999;
+ /// <summary>
+ /// 鎴块棿鍒楄〃鎺掑簭
+ /// </summary>
+ public int RoomOrderNumber = 9999;
/// <summary>
@@ -549,13 +598,27 @@
new System.Threading.Thread(() =>
{
- if (collect)
- {
- result = ApiUtlis.Ins.HttpRequest.CollectDevice(deviceId).Code;
+ if (spk == SPK.GroupControl) {
+ var groupControl = FunctionList.List.groupControls.Find((obj) => obj.sid == sid);
+ if (collect)
+ {
+ result = ApiUtlis.Ins.HttpRequest.CollectGroupControl(groupControl.userDeviceGroupControlId).Code;
+ }
+ else
+ {
+ result = ApiUtlis.Ins.HttpRequest.CancelCollectGroupControl(groupControl.userDeviceGroupControlId).Code;
+ }
}
else
{
- result = ApiUtlis.Ins.HttpRequest.CancelCollectDevice(deviceId).Code;
+ if (collect)
+ {
+ result = ApiUtlis.Ins.HttpRequest.CollectDevice(deviceId).Code;
+ }
+ else
+ {
+ result = ApiUtlis.Ins.HttpRequest.CancelCollectDevice(deviceId).Code;
+ }
}
//鎻愮ず閿欒
if (result != StateCode.SUCCESS)
@@ -736,8 +799,79 @@
public SceneFunction ConvertSceneFunction()
{
var sFunc = new SceneFunction();
- foreach (var attr in attributes)
+
+ var list = new List<FunctionAttributes>();
+ if (spk == SPK.GroupControl)
{
+ lock (list)
+ {
+ var gc = FunctionList.List.groupControls.Find((obj) => obj.sid == sid);
+ if (gc != null)
+ {
+ foreach (var temp in gc.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);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ list.AddRange(attributes);
+ }
+
+ foreach (var attr in list)
+ {
+ //绐楀笜鍚屾椂鍙戦�佸紑鍏宠窡鐧惧垎姣斾細鏈夐棶棰橈紝
+ if(spk == SPK.CurtainRoller || spk == SPK.CurtainTrietex || spk == SPK.CurtainDream)
+ {
+ if (attr.key == FunctionAttributeKey.OnOff)
+ {
+ if (attributes.Find((obj) => obj.key == FunctionAttributeKey.Percent) != null)
+ {
+ continue;
+ }
+ }
+ }else if (spk == SPK.GroupControl)
+ {
+ sFunc.type = "5";
+ }
+
+ string us = "";
+ switch (attr.key)
+ {
+ case FunctionAttributeKey.SetTemp:
+ case FunctionAttributeKey.RoomTemp:
+ us = "掳C";
+ var tempType = attributes.Find((obj) => obj.key == FunctionAttributeKey.TempType);
+ if (tempType != null)
+ {
+ us = tempType.curValue.ToString();
+ }
+ break;
+ case FunctionAttributeKey.Percent:
+ case FunctionAttributeKey.Brightness:
+ us = "%";
+ break;
+ case FunctionAttributeKey.CCT:
+ us = "K";
+ break;
+ case FunctionAttributeKey.Angle:
+ us = "掳";
+ break;
+ }
+
+
switch (attr.key)
{
case FunctionAttributeKey.OnOff:
@@ -749,10 +883,15 @@
case FunctionAttributeKey.CCT:
case FunctionAttributeKey.RGB:
case FunctionAttributeKey.Angle:
+ case FunctionAttributeKey.Colorful:
+ case FunctionAttributeKey.ColorfulBegin:
+ case FunctionAttributeKey.ColorfulEnd:
+ case FunctionAttributeKey.ColorfulTime:
+ case "security":
//case FunctionAttributeKey.FadeTime:
if (attr.curValue.ToString() == "{}")
{
- if (attr.key == FunctionAttributeKey.OnOff)
+ if (attr.key == FunctionAttributeKey.OnOff || attr.key == FunctionAttributeKey.Colorful)
{
attr.curValue = "off";
}
@@ -774,6 +913,10 @@
}
}
}
+ else if(attr.key == "security")
+ {
+ attr.curValue = "false";
+ }
else
{
attr.curValue = "0";
@@ -787,13 +930,16 @@
{
vv = 26;
}
- sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = Convert.ToInt32(vv).ToString(), max = attr.max, min = attr.min });
+ sFunc.status.Add(new SceneFunctionStatus() {
+ UintString = us,
+ key = attr.key, value = Convert.ToInt32(vv).ToString(), max = attr.max, min = attr.min }) ;
}
else
{
- sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = attr.curValue.ToString(), max = attr.max, min = attr.min });
+ sFunc.status.Add(new SceneFunctionStatus() {
+ UintString = us,
+ key = attr.key, value = attr.curValue.ToString(), max = attr.max, min = attr.min });
}
-
break;
}
}
@@ -974,6 +1120,11 @@
/// </summary>
public List<string> value = new List<string>();
/// <summary>
+ /// 姝ヨ繘
+ /// 绌鸿皟娓╁害鎺у埗 0.5 1
+ /// </summary>
+ public string step = "1";
+ /// <summary>
/// 鏈�澶у��
/// </summary>
public int max = 100;
@@ -993,6 +1144,10 @@
/// 褰撳墠鍊�
/// </summary>
public object curValue = new object();
+ /// <summary>
+ /// 灞炴�у崟浣�
+ /// </summary>
+ public string unit=string.Empty;
}
/// <summary>
@@ -1002,6 +1157,10 @@
{
public const string _null = "";
/// <summary>
+ /// 瀹夐槻甯冮槻鐘舵��
+ /// </summary>
+ public const string Security = "security";
+ /// <summary>
/// 寮�鍏�
/// </summary>
public const string OnOff = "on_off";
@@ -1009,6 +1168,22 @@
/// 浜害
/// </summary>
public const string Brightness = "brightness";
+ /// <summary>
+ /// 鐐僵寮�鍏�
+ /// </summary>
+ public const string Colorful = "colorful";
+ /// <summary>
+ /// 鐐僵寮�鍚鑹�
+ /// </summary>
+ public const string ColorfulBegin = "colorful_begin";
+ /// <summary>
+ /// 鐐僵缁撴潫棰滆壊
+ /// </summary>
+ public const string ColorfulEnd = "colorful_end";
+ /// <summary>
+ /// 鐐僵杩愯鏃堕棿
+ /// </summary>
+ public const string ColorfulTime = "colorful_time";
/// <summary>
/// 棰滆壊
/// </summary>
@@ -1318,9 +1493,17 @@
public static class SPK
{
/// <summary>
+ /// 缇ゆ帶锛堣嚜瀹氫箟锛�
+ /// </summary>
+ public const string GroupControl = "groupControl";
+ /// <summary>
/// 閫氱敤寮�鍏�
/// </summary>
public const string OtherCommon = "other.common";
+ /// <summary>
+ /// 搴忓垪
+ /// </summary>
+ public const string CommonSeries = "other.series";
/// <summary>
/// 澶у崕鎽勫儚澶�
/// </summary>
@@ -1344,6 +1527,7 @@
/// 闂ㄩ攣
/// </summary>
public const string DoorLock = "security.door";
+
/// <summary>
/// 闂ㄩ攣spk鍒楄〃
/// </summary>
@@ -1354,8 +1538,46 @@
list.Add(DoorLock);
return list;
}
+
+ /// <summary>
+ /// 鐚溂(鏃pk)
+ /// </summary>
+ public const string Peephole = "peephole";
+ /// <summary>
+ /// 鐚溂(鏂皊pk 鏆傛椂娌$敤)
+ /// </summary>
+ //public const string PeepholeEz = "security.peephole.ez";
+ /// <summary>
+ /// 钀ょ煶瑙嗛闂ㄩ攣
+ /// </summary>
+ public const string VideoDoorLock="security.door.ezviz";
+ /// <summary>
+ /// 钀ょ煶鎽勫儚澶�
+ /// </summary>
+ public const string Ev_Ipcam = "security.ipcam.ez";
+ /// <summary>
+ /// 钀ょ煶瑙嗛闂ㄩ攣spk鍒楄〃
+ /// </summary>
+ /// <returns></returns>
+ public static List<string> GetVideoDoorLockSPKList()
+ {
+ var list = new List<string>();
+ list.Add(VideoDoorLock);
+ return list;
+ }
+
+ /// <summary>
+ /// 钀ょ煶鎽勫儚澶磗pk鍒楄〃
+ /// </summary>
+ /// <returns></returns>
+ public static List<string> GetEvIpcamSPKList()
+ {
+ var list = new List<string>();
+ list.Add(Ev_Ipcam);
+ return list;
+ }
#region 鐏厜
/// <summary>
@@ -1448,7 +1670,7 @@
public const string HvacAC = "hvac.ac";
/// <summary>
/// 姣涚粏绠$┖璋�
- /// </summary>
+ /// </summaryc
public const string HvacCac = "hvac.cac";
/// <summary>
@@ -1528,6 +1750,10 @@
/// </summary>
public const string Inverter = "energy.inverter";
/// <summary>
+ /// 涓夌浉閫嗗彉鍣�
+ /// </summary>
+ public const string InverterRst = "energy.inverter_rst";
+ /// <summary>
/// 鑳芥簮妯″潡
/// </summary>
public const string EnergyStandard = "energy.standard";
@@ -1583,6 +1809,10 @@
/// </summary>
public const string SensorPir = "sensor.pir";
/// <summary>
+ /// 浜轰綋瀛樺湪浼犳劅鍣�
+ /// </summary>
+ public const string SensorPirHold = "sensor.pir_hold";
+ /// <summary>
/// 锛堥棬绐椾紶鎰熷櫒锛�
/// </summary>
public const string SensorDoorWindow = "sensor.doorwindow";
@@ -1637,6 +1867,7 @@
var spkList = new List<string>();
//spkList.Add(SensorLight);
spkList.Add(SensorPir);
+ spkList.Add(SensorPirHold);
spkList.Add(SensorHelp);
spkList.Add(SensorDoorWindow);
spkList.Add(SensorSmoke);
@@ -1668,6 +1899,10 @@
}
#region 鐜浼犳劅鍣�
+ /// <summary>
+ /// 锛圥M10浼犳劅鍣級
+ /// </summary>
+ public const string SensorPm10 = "sensor.pm10";
/// <summary>
/// 锛堟俯搴︿紶鎰熷櫒锛�
/// </summary>
@@ -1717,11 +1952,12 @@
{
var spkList = new List<string>();
spkList.Add(SensorTemperature);
+ spkList.Add(SensorPm10);
spkList.Add(SensorPm25);
spkList.Add(SensorCO2);
spkList.Add(SensorTVOC);
spkList.Add(SensorHumidity);
- spkList.Add(SensorEnvironment);
+ spkList.Add(SensorEnvironment); spkList.Add(SensorEnvironmentHailin);
spkList.Add(SensorEnvironment2);
spkList.Add(SensorEnvironment3);
spkList.Add(SensorHcho);
@@ -1735,6 +1971,7 @@
{
var spkList = new List<string>();
spkList.Add(SensorTemperature);
+ spkList.Add(SensorPm10);
spkList.Add(SensorPm25);
spkList.Add(SensorCO2);
spkList.Add(SensorTVOC);
@@ -1750,7 +1987,7 @@
public static List<string> EvironmentSensorList()
{
var spkList = new List<string>();
- spkList.Add(SensorEnvironment);
+ spkList.Add(SensorEnvironment); spkList.Add(SensorEnvironmentHailin);
spkList.Add(SensorEnvironment2);
spkList.Add(SensorEnvironment3);
return spkList;
--
Gitblit v1.8.0