From 681e990f8c3e51672ad1e37440f35d960f9f56c1 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 07 十二月 2022 10:40:58 +0800
Subject: [PATCH] 2022年12月07日10:39:43
---
HDL_ON/Entity/FunctionList.cs | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 110 insertions(+), 10 deletions(-)
diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index 55d26a3..93616b8 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -13,6 +13,21 @@
public class FunctionList
{
static FunctionList _FunctionList;
+
+ public static void ClearData()
+ {
+ try
+ {
+ _FunctionList.Clear();
+ _FunctionList = null;
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"娓呯悊FunctionList寮傚父:{ex.Message}");
+ _FunctionList = null;
+ }
+ }
+
public static FunctionList List
{
get
@@ -24,7 +39,11 @@
var filePathList = FileUtlis.Files.ReadFiles();
foreach (var filePath in filePathList)
{
- _FunctionList.IniFunctionList(filePath);
+ try
+ {
+ _FunctionList.IniFunctionList(filePath);
+ }
+ catch { }
}
#endregion
}
@@ -35,6 +54,48 @@
/// 鍔熻兘鍒楄〃
/// </summary>
public List<Function> Functions = new List<Function>();
+ /// <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);
+ }
+ 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>
/// 绌鸿皟鍒楄〃
@@ -98,6 +159,22 @@
return Functions.FindAll((obj) => spkList.Contains(obj.spk));
}
+ List<InverterInfo> _inverterList = new List<InverterInfo>();
+ /// <summary>
+ /// 鍏変紡鍒楄〃
+ /// </summary>
+ public List<Function> InverterList()
+ {
+ //get
+ //{
+ // return _inverterList;
+ //}
+ //set
+ //{
+ // _inverterList = value;
+ //}
+ return Functions.FindAll((obj) => obj.spk == SPK.Inverter);
+ }
#region 瀹剁數鍒楄〃 electricals
/// <summary>
/// 瀹剁數鍒楄〃
@@ -312,25 +389,33 @@
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;
}
@@ -372,7 +457,6 @@
/// <summary>
/// 鍒犻櫎鍦烘櫙
- /// todo
/// </summary>
public void DeleteScene(Scene scene,bool upSevser)
{
@@ -459,12 +543,26 @@
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();
@@ -481,6 +579,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);
--
Gitblit v1.8.0