wxr
2022-11-25 a16dbea60b9fd0550dcdefd34c94ff6711af2cbc
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>
        /// 空调列表
@@ -87,15 +148,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 +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>
        /// 家电列表
@@ -321,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;
                }
@@ -381,7 +457,6 @@
        /// <summary>
        /// 删除场景
        /// todo
        /// </summary>
        public void DeleteScene(Scene scene,bool upSevser)
        {
@@ -480,6 +555,7 @@
                            if (readList.Count > 9)
                            {
                                Control.Ins.SendReadCommand(readList);
                                readList.Clear();
                            }
                        }
                        if (readList.Count > 0)