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/Entity/Function/Function.cs | 453 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 416 insertions(+), 37 deletions(-)
diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 3772dc2..a562b51 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -88,7 +88,7 @@
{
var attrs = new List<string>();
- foreach(var attr in attributes)
+ foreach (var attr in attributes)
{
attrs.Add(attr.key);
}
@@ -109,14 +109,36 @@
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
- public string GetAttrState(string key)
+ public string GetAttrState(string key , string defaultValue = "0")
{
+ //涓�绾ф煡璇eyValue鍊�
var attrState = attributes.Find((s) => s.key == key.ToString());
- if (attrState == null || string.IsNullOrEmpty(attrState.state))
+ if (attrState == null)
+ {
+ return defaultValue;
+ }
+ if (string.IsNullOrEmpty(attrState.state))
+ {
+ //浜岀骇鏌ヨkeyValue鍊�
+ return GetOriginalState(key);
+ }
+ return attrState.state;
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍒濆鐘舵��
+ /// 榛樿鍊硷細0
+ /// </summary>
+ /// <param name="key">璇泙瀹氫箟鐨勫睘鎬у��</param>
+ /// <returns></returns>
+ public string GetOriginalState(string key)
+ {
+ var originalState = status.Find((s) => s.key == key.ToString());
+ if (originalState == null || string.IsNullOrEmpty(originalState.value))
{
return "0";
}
- return attrState.state;
+ return originalState.value;
}
/// <summary>
/// 璁剧疆灞炴�х姸鎬�
@@ -221,12 +243,43 @@
/// <summary>
/// 澶囨敞
/// </summary>
- public string name;
+ public string name = "";
+ /// <summary>
+ /// 璁惧缁戝畾鐨刪omeId
+ /// </summary>
+ private string _homeId = "";
+ public string homeId
+ {
+ get
+ {
+ if (string.IsNullOrEmpty(_homeId))
+ {
+ return DB_ResidenceData.Instance.CurrentRegion.id;
+ }
+ else
+ {
+ return _homeId;
+ }
+ }
+ set
+ {
+ _homeId = value;
+ }
+ }
+
/// <summary>
/// 璁惧ID
/// 浜戠璐熻矗鐢熸垚
/// </summary>
public string deviceId = "0";
+ /// <summary>
+ /// 绗笁鏂硅澶囨墿灞昳d
+ /// </summary>
+ public string extDevId = string.Empty;
+ /// <summary>
+ /// 鐗╃悊璁惧(妯″潡)鍨嬪彿
+ /// </summary>
+ public string omodel =string.Empty;
/// <summary>
/// 璁惧spk
/// </summary>
@@ -327,6 +380,26 @@
public List<string> roomIds = new List<string>();
/// <summary>
+ /// 瀛樺偍灞炴�ч厤缃�
+ /// 鐜浼犳劅鍣ㄧ殑绛夌骇
+ /// </summary>
+ public List<AttrKeyConfig> attrKeyConfigs = new List<AttrKeyConfig>();
+
+ public List<AttrKeyConfig> GetAttrKeyConfigs(string key)
+ {
+ if (attrKeyConfigs.Count == 0)
+ {
+ switch (key)
+ {
+ case "pm2.5":
+ //
+ break;
+ }
+ }
+ return attrKeyConfigs;
+ }
+
+ /// <summary>
/// bus鍗忚鏁版嵁鏍煎紡
/// 浣跨敤A鍗忚鎺у埗鏃讹紝鏀瑰睘鎬т负绌�
/// </summary>
@@ -335,10 +408,27 @@
/// 鏄惁鏀惰棌
/// </summary>
public bool collect = false;
+
+ private bool _online = false;
/// <summary>
/// 鏄惁鍦ㄧ嚎
/// </summary>
- public bool online = true;
+ public bool online
+ {
+ get
+ {
+ return true;
+ }
+ set
+ {
+ _online = value;
+ }
+ }
+
+ /// <summary>
+ /// 鐜闈㈡澘 缁戝畾鐨� 璁惧鐩爣sid鍒楄〃
+ /// </summary>
+ public List<string> targetSids = new List<string>();
/// <summary>
/// 浜戠鏁版嵁鍒涘缓鐨勬椂闂�
/// </summary>
@@ -348,7 +438,17 @@
/// </summary>
public string modifyTime = "";
+ /// <summary>
+ /// 鎵╁睍淇℃伅
+ /// </summary>
+ public ExtSet extSet = new ExtSet();
+
#endregion
+
+
+ //public void
+
+
/// <summary>
/// 寤舵椂
/// </summary>
@@ -358,6 +458,31 @@
/// </summary>
[Newtonsoft.Json.JsonIgnore]
public string lastState = "";
+ /// <summary>
+ /// 鑾峰彇鐘舵�佹樉绀烘枃鏈�
+ /// </summary>
+ /// <returns></returns>
+ public string GetLastStateText()
+ {
+ var text = "";
+ switch (spk)
+ {
+ case SPK.HvacCac:
+ switch (GetAttrState(FunctionAttributeKey.Mode))
+ {
+ case "cool":
+ text = Language.StringByID(StringId.Cool);
+ break;
+ case "heat":
+ text = Language.StringByID(StringId.Heat);
+ break;
+ }
+
+ break;
+
+ }
+ return text;
+ }
FunctionAttributes _trait_on_off;
[Newtonsoft.Json.JsonIgnore]
@@ -381,7 +506,7 @@
_trait_on_off.curValue = "off";
}
}
- if(_trait_on_off.curValue.ToString() != "on"&& _trait_on_off.curValue.ToString() != "off" && _trait_on_off.curValue.ToString() != "stop")
+ if (_trait_on_off.curValue.ToString() != "on" && _trait_on_off.curValue.ToString() != "off" && _trait_on_off.curValue.ToString() != "stop")
{
_trait_on_off.curValue = "off";
}
@@ -402,6 +527,14 @@
SetAttrState(sta.key, sta.value);
}
}
+ /// <summary>
+ /// 鍔熻兘鍒楄〃鎺掑簭
+ /// </summary>
+ public int FunctionOrderNumber = 9999;
+ /// <summary>
+ /// 鎴块棿鍒楄〃鎺掑簭
+ /// </summary>
+ public int RoomOrderNumber = 9999;
/// <summary>
@@ -432,13 +565,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)
@@ -448,7 +595,7 @@
collect = !collect;
IMessageCommon.Current.ShowErrorInfoAlter(result);
});
- }else
+ } else
{
Application.RunOnMainThread(() =>
{
@@ -473,7 +620,7 @@
}
else
{
- result = ApiUtlis.Ins.HttpRequest.UnbindDeviceToRoom(deviceId,roomId);
+ result = ApiUtlis.Ins.HttpRequest.UnbindDeviceToRoom(deviceId, roomId);
}
//鎻愮ず閿欒
if (result != StateCode.SUCCESS)
@@ -516,9 +663,9 @@
{
roomNameList += ",";
}
- roomNameList += findRoom.floorName +"-"+ findRoom.roomName;
+ roomNameList += findRoom.floorName + "-" + findRoom.roomName;
}
- if (roomNameList == "" )
+ if (roomNameList == "")
{
roomNameList = Language.StringByID(StringId.WholeZone);
}
@@ -556,6 +703,13 @@
SaveFunctionFile();
if (pack.Code == StateCode.SUCCESS)
{
+ if (UI.RoomPage.bodyView != null)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ UI.RoomPage.bodyView.ReLoadPage();
+ });
+ }
}
else
{
@@ -614,6 +768,18 @@
var sFunc = new SceneFunction();
foreach (var attr in attributes)
{
+ //绐楀笜鍚屾椂鍙戦�佸紑鍏宠窡鐧惧垎姣斾細鏈夐棶棰橈紝
+ 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;
+ }
+ }
+ }
+
switch (attr.key)
{
case FunctionAttributeKey.OnOff:
@@ -624,14 +790,16 @@
case FunctionAttributeKey.Percent:
case FunctionAttributeKey.CCT:
case FunctionAttributeKey.RGB:
- //case FunctionAttributeKey.FadeTime:
+ case FunctionAttributeKey.Angle:
+ case "security":
+ //case FunctionAttributeKey.FadeTime:
if (attr.curValue.ToString() == "{}")
{
if (attr.key == FunctionAttributeKey.OnOff)
{
attr.curValue = "off";
}
- else if (attr.key == FunctionAttributeKey.Mode )
+ else if (attr.key == FunctionAttributeKey.Mode)
{
if (DB_ResidenceData.Instance.GatewayType == 0)
{
@@ -649,7 +817,11 @@
}
}
}
- else
+ else if(attr.key == "security")
+ {
+ attr.curValue = "false";
+ }
+ else
{
attr.curValue = "0";
}
@@ -702,19 +874,15 @@
return sendDataObj;
}
- public AlinkDoorlockObj GetGatewayAlinkDoorlockData(string userId,string extStr)
+ public AlinkDoorlockObj GetGatewayAlinkDoorlockData(string userId, string extStr)
{
var sendDataObj = new AlinkDoorlockObj();
sendDataObj.id = Control.Ins.msg_id.ToString();
sendDataObj.time_stamp = Utlis.GetTimestamp();
var acd = new AlinkDoorlockStatus();
acd.sid = sid;
- acd.user_id = userId;
+ acd.user_id = extStr;
acd.ext_str = extStr;
-#if DEBUG
- acd.user_id = "013";
- acd.ext_str = "999999";
-#endif
sendDataObj.objects.Add(acd);
return sendDataObj;
}
@@ -853,6 +1021,11 @@
/// </summary>
public List<string> value = new List<string>();
/// <summary>
+ /// 姝ヨ繘
+ /// 绌鸿皟娓╁害鎺у埗 0.5 1
+ /// </summary>
+ public string step = "1";
+ /// <summary>
/// 鏈�澶у��
/// </summary>
public int max = 100;
@@ -881,6 +1054,10 @@
{
public const string _null = "";
/// <summary>
+ /// 瀹夐槻甯冮槻鐘舵��
+ /// </summary>
+ public const string Security = "security";
+ /// <summary>
/// 寮�鍏�
/// </summary>
public const string OnOff = "on_off";
@@ -892,6 +1069,7 @@
/// 棰滆壊
/// </summary>
public const string RGB = "rgb";
+ public const string RGBW = "rgbw";
/// <summary>
/// 娓愬彉鏃堕棿
/// </summary>
@@ -954,9 +1132,42 @@
/// </summary>
public const string Percent = "percent";
/// <summary>
+ /// 瑙掑害
+ /// </summary>
+ public const string Angle = "angle";
+ /// <summary>
/// 瀹ゅ唴娓╁害
/// </summary>
public const string RoomTemp = "room_temp";
+ /// <summary>
+ /// 瀹ゅ唴婀垮害
+ /// </summary>
+ public const string RoomHumidity = "room_humidity";
+ /// <summary>
+ /// 闇茬偣娓╁害
+ /// </summary>
+ public const string dew_point_temp = "dew_point_temp";
+ /// <summary>
+ /// 琛ㄩ潰娓╁害
+ /// </summary>
+ public const string surface_temp = "surface_temp";
+ /// <summary>
+ /// 瀹ゅ唴婀垮害琛ュ伩鍊�
+ /// </summary>
+ public const string room_humidity_cc = "room_humidity_cc";
+ /// <summary>
+ /// 瀹ゅ唴娓╁害琛ュ伩鍊�
+ /// </summary>
+ public const string room_temp_cc = "room_temp_cc";
+ /// <summary>
+ /// 姣涚粏闃�闂�
+ /// </summary>
+ public const string cac_valve = "cac_valve";
+ /// <summary>
+ /// 鍦版殩闃�闂�
+ /// </summary>
+ public const string fh_valve = "fh_valve";
+
/// <summary>
/// value
/// </summary>
@@ -988,6 +1199,16 @@
/// 姣背娉紶鎰熷櫒锛屽姩浣滅姸鎬�
/// </summary>
public const string ActionStatus = "action_state";
+ /// <summary>
+ ///
+ /// </summary>
+ public const string PeopleNum = "people_num";
+ public const string PeopleId = "people_id";
+ /// <summary>
+ /// 姣背娉紶鎰熷櫒 浜虹墿鍔ㄤ綔
+ /// </summary>
+ public const string TargetStatus = "target_status";//0绌猴紝1璧帮紝2璺戯紝3鍧愶紝4璺屽�掞紝5绔�
+
/// <summary>
/// 鐢甸噺鐘舵��
/// </summary>
@@ -1052,6 +1273,7 @@
/// 鎵撳紑绛夌骇(椋庢墖)
/// </summary>
public const string OpenLevel = "openLevel";
+ public const string fan_speed_percent = "fan_speed_percent";
/// <summary>
/// 绾㈠鎸夐敭
/// </summary>
@@ -1137,7 +1359,7 @@
try
{
return Convert.ToByte(loopId, 16);
- }catch
+ } catch
{
return 0;
}
@@ -1146,21 +1368,72 @@
public string loopId;
}
-
+ /// <summary>
+ /// Tag 鍔熻兘SPK
+ /// </summary>
public static class SPK
{
+ /// <summary>
+ /// 缇ゆ帶锛堣嚜瀹氫箟锛�
+ /// </summary>
+ public const string GroupControl = "GroupControl";
+ /// <summary>
+ /// 閫氱敤寮�鍏�
+ /// </summary>
+ public const string OtherCommon = "other.common";
+ /// <summary>
+ /// 澶у崕鎽勫儚澶�
+ /// </summary>
+ public const string IpCam_Imou = "security.ipcam.imou";
+ /// <summary>
+ /// 鏈烘鎵�
+ /// </summary>
+ public const string MechanicalArm = "electrical.mechanical_arm";
+ /// <summary>
+ /// 绌鸿皟绉戞妧绯荤粺锛堢豢寤猴級
+ /// 鎬绘帶
+ /// </summary>
+ public const string AcstParent = "acst.parent";
+ /// <summary>
+ /// 绌鸿皟绉戞妧绯荤粺锛堢豢寤猴級
+ /// 瀛愭帶
+ /// </summary>
+ public const string AcstSub = "acst.sub";
+
/// <summary>
/// 闂ㄩ攣
/// </summary>
public const string DoorLock = "security.door";
-
+
+ /// <summary>
+ /// 闂ㄩ攣spk鍒楄〃
+ /// </summary>
+ /// <returns></returns>
public static List<string> GetDoorLockSPKList()
{
var list = new List<string>();
list.Add(DoorLock);
return list;
}
-
+
+ /// <summary>
+ /// 鐚溂
+ /// </summary>
+ public const string Peephole = "peephole";
+ /// <summary>
+ /// 钀ょ煶瑙嗛闂ㄩ攣
+ /// </summary>
+ public const string VideoDoorLock="security.door.ezviz";
+ /// <summary>
+ /// 钀ょ煶瑙嗛闂ㄩ攣spk鍒楄〃
+ /// </summary>
+ /// <returns></returns>
+ public static List<string> GetVideoDoorLockSPKList()
+ {
+ var list = new List<string>();
+ list.Add(VideoDoorLock);
+ return list;
+ }
#region 鐏厜
/// <summary>
@@ -1217,6 +1490,10 @@
/// 锛堝嵎甯橈級
/// </summary>
public const string CurtainRoller = "curtain.roller";
+ /// <summary>
+ /// 姊﹀够甯�
+ /// </summary>
+ public const string CurtainDream = "curtain.dream";
/// <summary>
/// 绐楀笜spk鍒楄〃
@@ -1229,6 +1506,7 @@
spkList.Add(CurtainSwitch);
spkList.Add(CurtainShades);
spkList.Add(CurtainTrietex);
+ spkList.Add(CurtainDream);
return spkList;
}
#endregion
@@ -1241,11 +1519,15 @@
/// <summary>
/// 锛堢孩澶栫┖璋冿級
/// </summary>
- public const string AcIr= "ir.ac";
+ public const string AcIr = "ir.ac";
/// <summary>
/// 绌鸿皟
/// </summary>
public const string HvacAC = "hvac.ac";
+ /// <summary>
+ /// 姣涚粏绠$┖璋�
+ /// </summaryc
+ public const string HvacCac = "hvac.cac";
/// <summary>
/// 绌鸿皟spk鍒楄〃
@@ -1257,6 +1539,7 @@
spkList.Add(AcStandard);
spkList.Add(HvacAC);
spkList.Add(AcIr);
+ spkList.Add(HvacCac);
return spkList;
}
#endregion
@@ -1318,6 +1601,14 @@
#endregion
#region 鑳芥簮
+ /// <summary>
+ /// 閫嗗彉鍣�
+ /// </summary>
+ public const string Inverter = "energy.inverter";
+ /// <summary>
+ /// 涓夌浉閫嗗彉鍣�
+ /// </summary>
+ public const string InverterRst = "energy.inverter_rst";
/// <summary>
/// 鑳芥簮妯″潡
/// </summary>
@@ -1412,6 +1703,14 @@
public const string SenesorMegahealth = "sensor.megahealth";
public const string SenesorMegahealth2 = "sensor.megahealth.zg";
/// <summary>
+ /// 姣背娉紶鎰熷櫒锛堝Э鎬佺増锛�
+ /// </summary>
+ public const string SensorMmvPose = "sensor.mmv_pose";
+ /// <summary>
+ /// 绱ф�ュ懠鍙�
+ /// </summary>
+ public const string SensorHelp = "sensor.help";
+ /// <summary>
/// 瀹夐槻浼犳劅鍣╯pk鍒楄〃
/// </summary>
/// <returns></returns>
@@ -1420,6 +1719,7 @@
var spkList = new List<string>();
//spkList.Add(SensorLight);
spkList.Add(SensorPir);
+ spkList.Add(SensorHelp);
spkList.Add(SensorDoorWindow);
spkList.Add(SensorSmoke);
spkList.Add(SensorWater);
@@ -1431,11 +1731,29 @@
spkList.Add(SensorDryContact2);
spkList.Add(SenesorMegahealth);
spkList.Add(SenesorMegahealth2);
+ spkList.Add(SensorMmvPose);
return spkList;
}
#endregion
+ public const string PanelEnvironment = "screen.panel";
+ /// <summary>
+ /// 闈㈡澘spk鍒楄〃
+ /// </summary>
+ /// <returns></returns>
+ public static List<string> PanelSpkList()
+ {
+ var spkList = new List<string>();
+ spkList.Add(SensorHelp);
+ spkList.Add(PanelEnvironment);
+ return spkList;
+ }
+
#region 鐜浼犳劅鍣�
+ /// <summary>
+ /// 锛圥M10浼犳劅鍣級
+ /// </summary>
+ public const string SensorPm10 = "sensor.pm10";
/// <summary>
/// 锛堟俯搴︿紶鎰熷櫒锛�
/// </summary>
@@ -1485,11 +1803,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);
@@ -1503,6 +1822,7 @@
{
var spkList = new List<string>();
spkList.Add(SensorTemperature);
+ spkList.Add(SensorPm10);
spkList.Add(SensorPm25);
spkList.Add(SensorCO2);
spkList.Add(SensorTVOC);
@@ -1518,7 +1838,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;
@@ -1666,6 +1986,13 @@
}
#endregion
+ #region 鍙瀵硅
+ /// <summary>
+ /// HDL鍙瀵硅
+ /// </summary>
+ public const string doorgate="door.gate";
+ #endregion
+
#region 绗笁鏂箂pk鍒楄〃
/// <summary>
/// 鑾峰彇鎵�鏈夌涓夋柟鍝佺墝鍔熻兘鐨剆pk
@@ -1682,6 +2009,7 @@
spkList.Add(ElectricTuyaWaterValve2);
spkList.Add(ElectricTuyaWeepRobot);
spkList.Add(ElectricTuyaWeepRobot2);
+ spkList.Add(SensorMmvPose);
spkList.Add(SenesorMegahealth);
spkList.Add(SenesorMegahealth2);
return spkList;
@@ -1707,7 +2035,7 @@
list.Add(ElectricTuyaWeepRobot2);
break;
case BrandType.All3tyBrand:
- list.Add(SenesorMegahealth);//鍏嗚
+ list.Add(SenesorMegahealth2);//鍏嗚
break;
}
return list;
@@ -1794,9 +2122,60 @@
//}
-public class VersionInfo
-{
- public string module = "";
- public string version = "";
-}
+ public class VersionInfo
+ {
+ public string module = "";
+ public string version = "";
+ }
+
+ /// <summary>
+ /// 鍔熻兘灞炴�х浉鍏抽厤缃俊鎭�
+ /// 鐜浼犳劅鍣ㄧ瓑绾т娇鐢�
+ /// </summary>
+ public class AttrKeyConfig
+ {
+ public string key = string.Empty;
+ /// <summary>
+ /// 閰嶇疆绫诲瀷
+ /// interval 鍖洪棿
+ /// 鐩墠鍙敮鎸侊細interval
+ /// </summary>
+ public string type = string.Empty;
+
+ public string unit = string.Empty;
+
+ public List<AttrKeyInfo> configs = new List<AttrKeyInfo>();
+
+ }
+
+ public class AttrKeyInfo
+ {
+ /// <summary>
+ ///
+ /// </summary>
+ public string start = string.Empty;
+ /// <summary>
+ ///
+ /// </summary>
+ public string end = string.Empty;
+ /// <summary>
+ ///
+ /// </summary>
+ public string color = string.Empty;
+ /// <summary>
+ /// 鎻忚堪
+ /// </summary>
+ public string desc = string.Empty;
+ }
+
+ /// <summary>
+ /// 鎵╁睍淇℃伅璁剧疆
+ /// </summary>
+ public class ExtSet
+ {
+ /// <summary>
+ /// 鏄惁寮�鍚疄楠屽妯″紡
+ /// </summary>
+ public bool labModel = false;
+ }
}
--
Gitblit v1.8.0