From acc8caee31c4be90bd38d1af18136b0e84f6fe94 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期五, 27 九月 2024 14:01:19 +0800
Subject: [PATCH] Merge branch 'feature/v2.7_迭代' into feature/V2.7_Google
---
HDL_ON/Entity/FunctionList.cs | 257 ++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 214 insertions(+), 43 deletions(-)
diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index 208eb41..9b3858a 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -13,6 +13,22 @@
public class FunctionList
{
static FunctionList _FunctionList;
+
+ //public static void ClearData()
+ //{
+ // try
+ // {
+ // _FunctionList._IpCamImou = null;
+ // _FunctionList.ClearDatas();
+ // _FunctionList = null;
+ // }
+ // catch (Exception ex)
+ // {
+ // MainPage.Log($"娓呯悊FunctionList寮傚父:{ex.Message}");
+ // _FunctionList = null;
+ // }
+ //}
+
public static FunctionList List
{
get
@@ -24,7 +40,11 @@
var filePathList = FileUtlis.Files.ReadFiles();
foreach (var filePath in filePathList)
{
- _FunctionList.IniFunctionList(filePath);
+ try
+ {
+ _FunctionList.IniFunctionList(filePath);
+ }
+ catch { }
}
#endregion
}
@@ -35,6 +55,96 @@
/// 鍔熻兘鍒楄〃
/// </summary>
public List<Function> Functions = new List<Function>();
+ /// <summary>
+ /// 缇ゆ帶鍒楄〃
+ /// </summary>
+ public List<GroupControl> groupControls = new List<GroupControl>();
+
+
+ /// <summary>
+ /// 鏈烘鑷傚垪琛�
+ /// </summary>
+ /// <returns></returns>
+ public List<Function> GetMechanicalArmList()
+ {
+ return Functions.FindAll((obj) => obj.spk == SPK.MechanicalArm);
+ }
+
+ List<Function> _IpCamImou;
+ /// <summary>
+ /// 鑾峰彇鎽勫儚澶村垪琛�
+ /// </summary>
+ /// <returns></returns>
+ public List<Function> GetIpCamImouList()
+ {
+ if (_IpCamImou == null)
+ {
+ _IpCamImou = Functions.FindAll((obj) => obj.spk == SPK.IpCam_Imou);
+ if (_IpCamImou.Count > 0)
+ {
+#if __IOS__
+ //鍒濆鍖栧ぇ鍗庢憚鍍忓ごsdk
+ Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().InitSDKWithAppKey("HDL-HOME-APP-TEST", "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss", OnAppConfig.Instance.RequestHttpsHost);
+ Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().AccessToken = UserInfo.Current.LoginTokenString;
+ Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().RefreshToken = UserInfo.Current.RefreshToken;
+ Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().HomeId = DB_ResidenceData.Instance.CurrentRegion.id;
+ Console.WriteLine("token锛�" + UserInfo.Current.LoginTokenString);
+ Console.WriteLine("token锛�" + UserInfo.Current.RefreshToken);
+ Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().RefreshDeviceList();
+
+
+
+#else
+ Com.Utils.HdlToLcUtils.Instance.InitData(Shared.Application.Activity, "HDL-HOME-APP-TEST", "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss", OnAppConfig.Instance.RequestHttpsHost);
+ Com.Utils.HdlToLcUtils.Instance.HomeId = DB_ResidenceData.Instance.CurrentRegion.id;
+ Com.Utils.HdlToLcUtils.Instance.Token = UserInfo.Current.AccessToken;
+#endif
+ }
+ }
+ return _IpCamImou;
+ }
+
+ /// <summary>
+ /// 缁垮缓绉戞妧绯荤粺
+ /// 鎬绘帶鍒楄〃
+ /// </summary>
+ /// <returns></returns>
+ public List<Function> GetAcstParentList()
+ {
+ return Functions.FindAll((obj) => obj.spk == SPK.AcstParent);
+ }
+
+ /// <summary>
+ /// 缁垮缓绉戞妧绯荤粺
+ /// 瀛愭帶鍒楄〃
+ /// </summary>
+ /// <returns></returns>
+ public List<Function> GetAcstSubList()
+ {
+ return Functions.FindAll((obj) => obj.spk == SPK.AcstSub);
+ }
+ /// <summary>
+ /// 缁垮缓绉戞妧绯荤粺
+ /// 鐑按鍣ㄥ垪琛�
+ /// </summary>
+ /// <returns></returns>
+ public List<Function> GetWaterHeaterJinmaoList()
+ {
+ return Functions.FindAll((obj) => obj.spk == SPK.WaterHeaterJinmao);
+ }
+ /// <summary>
+ /// 閲戣寕鍏変紡鍌ㄨ兘
+ /// </summary>
+ /// <returns></returns>
+ public List<Function> GetInverterJinmaoList()
+ {
+ var tempList = Functions.FindAll((obj) => obj.spk == SPK.InverterJinmao);
+ foreach(var device in tempList)
+ {
+ device.collect = true;
+ }
+ return tempList;
+ }
/// <summary>
/// 绌鸿皟鍒楄〃
@@ -54,6 +164,15 @@
var spkList = SPK.LightSpkList();
return Functions.FindAll((obj) => spkList.Contains(obj.spk));
}
+ /// <summary>
+ /// 搴忓垪鍒楄〃
+ /// </summary>
+ /// <returns></returns>
+ public List<Function> GetSeries()
+ {
+ return Functions.FindAll((obj) => obj.spk == SPK.CommonSeries);
+ }
+
/// <summary>
/// 绐楀笜鍒楄〃
/// </summary>
@@ -87,15 +206,6 @@
var spkList = SPK.AirFreshSpkList();
return Functions.FindAll((obj) => spkList.Contains(obj.spk));
}
- /// <summary>
- /// 闈㈡澘鍒楄〃
- /// </summary>
- /// <returns></returns>
- public List<Function> GetPanelList()
- {
- var spkList = SPK.PanelSpkList();
- return Functions.FindAll((obj) => spkList.Contains(obj.spk));
- }
/// <summary>
/// 鑳芥簮鍒楄〃
@@ -107,6 +217,14 @@
return Functions.FindAll((obj) => spkList.Contains(obj.spk));
}
+ List<InverterInfo> _inverterList = new List<InverterInfo>();
+ /// <summary>
+ /// 鍏変紡鍒楄〃
+ /// </summary>
+ public List<Function> InverterList()
+ {
+ return Functions.FindAll((obj) => obj.spk == SPK.Inverter || obj.spk == SPK.InverterRst);
+ }
#region 瀹剁數鍒楄〃 electricals
/// <summary>
/// 瀹剁數鍒楄〃
@@ -116,8 +234,8 @@
var spkList = SPK.ElectricalSpkList();
return Functions.FindAll((obj) => spkList.Contains(obj.spk));
}
-
-
+
+
/// <summary>
/// 绾㈠瀹濆垪琛�
/// </summary>
@@ -162,10 +280,13 @@
var spkList = new List<string>()
{
SPK.SensorPir,
+ SPK.SensorPirHold,
SPK.SensorDoorWindow,
SPK.SensorSmoke,
SPK.SensorWater,
SPK.SensorGas,
+ SPK.SensorDryContact,
+ SPK.SensorDryContact2,
};
return Functions.FindAll((obj) => spkList.Contains(obj.spk));
@@ -186,7 +307,7 @@
{
get
{
- if(_OtherBrandFunction == null)
+ if (_OtherBrandFunction == null)
{
_OtherBrandFunction = new List<Function>();
var spkList = SPK.GetAll3tySPK();
@@ -253,16 +374,24 @@
if (checkRepeat == true)
{
//妫�娴嬮噸澶�
- for (int i = 0; i < Functions.Count; i++)
+ var same = Functions.FindAll((obj) => obj.deviceId == tempFunction.deviceId);
+ if (same != null)
{
- if (Functions[i].deviceId == tempFunction.deviceId)
+ foreach (var sameTemp in same)
{
- //鍏堢Щ闄ゆ帀鍐嶅姞
- Functions.RemoveAt(i);
- Functions.Add(tempFunction);
- return;
+ Functions.Remove(sameTemp);
}
}
+ //for (int i = 0; i < Functions.Count; i++)
+ //{
+ // if (Functions[i].deviceId == tempFunction.deviceId)
+ // {
+ // //鍏堢Щ闄ゆ帀鍐嶅姞
+ // Functions.RemoveAt(i);
+ // Functions.Add(tempFunction);
+ // return;
+ // }
+ //}
}
Functions.Add(tempFunction);
}
@@ -280,7 +409,7 @@
var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<SecurityAlarm>(dataString);
if (temp == null)
{
- MainPage.Log("null");
+ MainPage.Log("SecurityData_null");
FileUtlis.Files.DeleteFile(filePath);
return;
}
@@ -305,6 +434,9 @@
{
MainPage.Log($"IniFunctionList error : {ex.Message}");
}
+ finally
+ {
+ }
}
/// <summary>
@@ -317,29 +449,37 @@
{
}
else
- {
+ {
switch (brandType)
{
case SPK.BrandType.Hdl:
- foreach (var function in Functions)
+ try
{
- if (!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(function.spk))
+ foreach (var function in Functions)
{
- resultFunctions.Add(function);
+ if (!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(function.spk))
+ {
+ resultFunctions.Add(function);
+ }
}
}
+ catch { }
break;
case SPK.BrandType.Tuya:
lock (Functions)
{
- foreach (var function in Functions)
+ try
{
- if (SPK.Get3tySpk(SPK.BrandType.Tuya).Contains(function.spk))
+ foreach (var function in Functions)
{
- resultFunctions.Add(function);
+ if (SPK.Get3tySpk(SPK.BrandType.Tuya).Contains(function.spk))
+ {
+ resultFunctions.Add(function);
+ }
}
}
+ catch { }
}
break;
}
@@ -355,20 +495,32 @@
/// <summary>
/// 娓呯┖璁惧鍔熻兘鍒楄〃
/// </summary>
- public void Clear()
+ public void ClearDatas()
{
- Functions = new List<Function>();
- _FunctionList = null;
+ try
+ {
+ if (_IpCamImou != null)
+ {
+ _IpCamImou.Clear();
+ _IpCamImou = null;
+ }
+ _FunctionList = new FunctionList();
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"娓呯悊FunctionList寮傚父:{ex.Message}");
+ _FunctionList = null;
+ }
}
/// <summary>
/// 鍔熻兘缁戝畾鎴块棿
/// </summary>
- public string FunctionsBindRooms(List<string> roomIds,List<string> deviceIds)
+ public string FunctionsBindRooms(List<string> roomIds, List<string> deviceIds)
{
var pm = new HttpServerRequest();
var pack = pm.BindDeviceToRoom(deviceIds, roomIds);
- if(pack.Code == StateCode.SUCCESS)
+ if (pack.Code == StateCode.SUCCESS)
{
}
@@ -381,9 +533,8 @@
/// <summary>
/// 鍒犻櫎鍦烘櫙
- /// todo
/// </summary>
- public void DeleteScene(Scene scene,bool upSevser)
+ public void DeleteScene(Scene scene, bool upSevser)
{
if (upSevser)
{
@@ -411,6 +562,10 @@
/// </summary>
public void DeleteFunction(Function delTemp)
{
+ if(delTemp == null)
+ {
+ return;
+ }
Functions.Remove(Functions.Find((obj) => obj.deviceId == delTemp.deviceId));
FileUtlis.Files.DeleteFile(delTemp.savePath);
}
@@ -450,14 +605,14 @@
{
if (lockReadFunctionStatus)
{
- MainPage.Log($"澶氭杩涘叆--杩斿洖");
+ MainPage.Log($"澶氭杩涘叆--杩斿洖1");
return;
}
new Thread(() =>
{
if (lockReadFunctionStatus)
{
- MainPage.Log($"澶氭杩涘叆--杩斿洖");
+ MainPage.Log($"澶氭杩涘叆--杩斿洖2");
return;
}
MainPage.Log($"杩涘叆--璇诲彇");
@@ -466,14 +621,28 @@
{
Read3tyFunctionStatus();
- if(DriverLayer.Control.Ins.GatewayOnline_Local)
+ if (DriverLayer.Control.Ins.GatewayOnline_Local)
{
+
+ //List<Function> functions = GetDeviceFunctionList(SPK.BrandType.Hdl);
+ //var sss = functions.OrderBy((obj) => obj.collect);
+
+ List<Function> readList = new List<Function>();
foreach (var function in GetDeviceFunctionList(SPK.BrandType.Hdl))
{
+ readList.Add(function);
MainPage.Log($"璇诲彇鍔熻兘鐘舵�侊細{function.name} : {function.sid} ");
- Control.Ins.SendReadCommand(function);
+ if (readList.Count > 9)
+ {
+ Control.Ins.SendReadCommand(readList);
+ readList.Clear();
+ }
}
- if(DB_ResidenceData.Instance.GatewayType == 1)
+ if (readList.Count > 0)
+ {
+ Control.Ins.SendReadCommand(readList);
+ }
+ if (DB_ResidenceData.Instance.GatewayType == 1)
{
Dictionary<string, string> pairs = new Dictionary<string, string>();
string sendId = Control.Ins.msg_id.ToString();
@@ -490,6 +659,8 @@
var page = new List<string>();
int count = 0;
+ //List<Function> functions = GetDeviceFunctionList(SPK.BrandType.Hdl);
+ //var sss = functions.OrderBy((obj) => obj.collect);
foreach (var function in GetDeviceFunctionList(SPK.BrandType.Hdl))
{
page.Add(function.deviceId);
@@ -514,7 +685,7 @@
MainPage.Log($"缁撴潫--璇诲彇");
}
-
+
})
{ IsBackground = true }.Start();
}
@@ -554,7 +725,7 @@
#endregion
#region 鏀惰棌鍔熻兘
-
+
/// <summary>
/// 鏀惰棌鍦烘櫙
/// </summary>
@@ -579,11 +750,11 @@
return result;
}
- #endregion
+ #endregion
#region
-
+
#endregion
--
Gitblit v1.8.0