wxr
2022-09-27 0ee75b88cfe03e46289de0de96e8ed4580c797d3
HDL_ON/Entity/FunctionList.cs
@@ -24,7 +24,11 @@
                    var filePathList = FileUtlis.Files.ReadFiles();
                    foreach (var filePath in filePathList)
                    {
                        _FunctionList.IniFunctionList(filePath);
                        try
                        {
                            _FunctionList.IniFunctionList(filePath);
                        }
                        catch { }
                    }
                    #endregion
                }
@@ -35,6 +39,26 @@
        /// 功能列表
        /// </summary>
        public List<Function> Functions = new List<Function>();
        /// <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>
        /// 空调列表
@@ -72,6 +96,12 @@
            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
        }
        public List<Function> GetDoorLockList()
        {
            var spkList = SPK.GetDoorLockSPKList();
            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
        }
        /// <summary>
        /// 新风列表
        /// </summary>
@@ -92,6 +122,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>
        /// 家电列表
@@ -139,6 +185,23 @@
            var spkList = SPK.ArmSensorSpkList();
            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
        }
        /// <summary>
        /// 安防中心支持的传感器列表
        /// </summary>
        public List<Function> GetArmCenterList()
        {
            var spkList = new List<string>()
            {
                SPK.SensorPir,
                SPK.SensorDoorWindow,
                SPK.SensorSmoke,
                SPK.SensorWater,
                SPK.SensorGas,
            };
            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
        }
        /// <summary>
        /// 可视对讲列表,当为null或size为0则不显示可视对讲icon
@@ -175,6 +238,19 @@
        /// </summary>
        public List<SecurityAlarm> securities = new List<SecurityAlarm>();
        public List<SecurityAlarm> GetOrdinarySecurities()
        {
            var ordinarySecurities = new List<SecurityAlarm>();
            foreach (var mode in securities)
            {
                if (mode.type == "all_day" || mode.type == "mute")
                {
                    continue;
                }
                ordinarySecurities.Add(mode);
            }
            return ordinarySecurities;
        }
        /// <summary>
        /// 加载功能列表
@@ -423,12 +499,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();
@@ -445,6 +535,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);