wxr
2023-08-23 96e9ff2e5a54f54cdbb6b8b2f049fdf6a837de3c
OnPro/HDL_ON/Entity/FunctionList.cs
@@ -55,75 +55,8 @@
        /// 功能列表
        /// </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);//.OrderByDescending(o=>o.controlCounter).ToList()
        }
        /// <summary>
        /// 绿建科技系统
        /// 子控列表
        /// </summary>
        /// <returns></returns>
        public List<Function> GetAcstSubList()
        {
            return Functions.FindAll((obj) => obj.spk == SPK.AcstSub);
        }
        /// <summary>
        /// 空调列表
        /// </summary>
@@ -141,14 +74,6 @@
        {
            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>
@@ -169,20 +94,6 @@
            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>
        /// <returns></returns>
        public List<Function> GetVideoDoorLockList()
        {
            var spkList = SPK.GetVideoDoorLockSPKList();
            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
        }
        /// <summary>
        /// 新风列表
@@ -195,137 +106,9 @@
        }
        /// <summary>
        /// 能源列表
        /// </summary>
        /// <returns></returns>
        public List<Function> GetEnergyList()
        {
            var spkList = SPK.EnergySpkList();
            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>
        /// 家电列表
        /// </summary>
        public List<Function> GetElectricals()
        {
            var spkList = SPK.ElectricalSpkList();
            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
        }
        /// <summary>
        /// 红外宝列表
        /// </summary>
        public List<Function> GetIrModuleList()
        {
            return Functions.FindAll((obj) => obj.spk == SPK.IrModule);
        }
#endregion
        /// <summary>
        /// 音乐列表
        /// </summary>
        /// <returns></returns>
        public List<Function> GetMusicList()
        {
            var spkList = SPK.MusicSpkList();
            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
        }
        /// <summary>
        /// 环境传感器列表
        /// </summary>
        public List<Function> GetEnvirSensorsList()
        {
            var spkList = SPK.EnvironDeviceSpkList();
            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
        }
        /// <summary>
        /// 安防设备列表
        /// </summary>
        public List<Function> GetArmSensorList()
        {
            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.SensorPirHold,
                SPK.SensorDoorWindow,
                SPK.SensorSmoke,
                SPK.SensorWater,
                SPK.SensorGas,
            };
            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
        }
        /// <summary>
        /// 可视对讲列表,当为null或size为0则不显示可视对讲icon
        /// </summary>
        // public UI.UI2.FuntionControlView.Video.VideoClouds videoIntercom;
        public List<UI.UI2.FuntionControlView.Video.Video> videoIntercom = new List<UI.UI2.FuntionControlView.Video.Video>();
        List<Function> _OtherBrandFunction;
        /// <summary>
        /// 第三方品牌功能
        /// </summary>
        public List<Function> OtherBrandFunction
        {
            get
            {
                if(_OtherBrandFunction == null)
                {
                    _OtherBrandFunction = new List<Function>();
                    var spkList = SPK.GetAll3tySPK();
                    _OtherBrandFunction = Functions.FindAll((obj) => spkList.Contains(obj.spk));
                }
                return _OtherBrandFunction;
            }
        }
        /// <summary>
        /// 场景列表
        /// </summary>
        public List<Scene> scenes = new List<Scene>();
        /// <summary>
        /// 安防列表
        /// </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>
        /// 加载功能列表
@@ -351,11 +134,6 @@
                        FileUtlis.Files.DeleteFile(filePath);
                        return;
                    }
                    //音乐部分要修改
                    //if(tempFunction.spk.ToString() == SPK.MusicStandard)
                    //{
                    //    UI.Music.A31MusicModel.A31MusicModelList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<UI.Music.A31MusicModel>(functionDataString));
                    //}
                    if (checkRepeat == true)
                    {
                        //检测重复
@@ -367,16 +145,6 @@
                                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);
                }
@@ -386,33 +154,6 @@
                    var sceneDataString = System.Text.Encoding.UTF8.GetString(sceneDataBytes);
                    var tempScene = Newtonsoft.Json.JsonConvert.DeserializeObject<Scene>(sceneDataString);
                    List.scenes.Add(tempScene);
                }
                else if (filePath.StartsWith("SecurityData_"))
                {
                    var dataBytes = FileUtlis.Files.ReadFile(filePath);
                    var dataString = System.Text.Encoding.UTF8.GetString(dataBytes);
                    var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<SecurityAlarm>(dataString);
                    if (temp == null)
                    {
                        MainPage.Log("SecurityData_null");
                        FileUtlis.Files.DeleteFile(filePath);
                        return;
                    }
                    if (checkRepeat == true)
                    {
                        //检测重复
                        for (int i = 0; i < securities.Count; i++)
                        {
                            if (securities[i].sid == temp.sid)
                            {
                                //先移除掉再加
                                securities.RemoveAt(i);
                                securities.Add(temp);
                                return;
                            }
                        }
                    }
                    securities.Add(temp);
                }
            }
            catch (Exception ex)
@@ -429,47 +170,6 @@
        /// </summary>
        public List<Function> GetDeviceFunctionList(SPK.BrandType brandType = SPK.BrandType.All)
        {
            List<Function> resultFunctions = new List<Function>();
            if (brandType == SPK.BrandType.All)
            {
            }
            else
            {
                switch (brandType)
                {
                    case SPK.BrandType.Hdl:
                        try
                        {
                            foreach (var function in Functions)
                            {
                                if (!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(function.spk))
                                {
                                    resultFunctions.Add(function);
                                }
                            }
                        }
                        catch { }
                        break;
                    case SPK.BrandType.Tuya:
                        lock (Functions)
                        {
                            try
                            {
                                foreach (var function in Functions)
                                {
                                    if (SPK.Get3tySpk(SPK.BrandType.Tuya).Contains(function.spk))
                                    {
                                        resultFunctions.Add(function);
                                    }
                                }
                            }
                            catch { }
                        }
                        break;
                }
                return resultFunctions;
            }
            return Functions;
        }
@@ -484,11 +184,6 @@
        {
            try
            {
                if (_IpCamImou != null)
                {
                    _IpCamImou.Clear();
                    _IpCamImou = null;
                }
                _FunctionList = new FunctionList();
            }
            catch (Exception ex)
@@ -553,31 +248,6 @@
        bool lockReadFunctionStatus = false;
        /// <summary>
        /// 读取第三方设备状态
        /// </summary>
        public void Read3tyFunctionStatus()
        {
            //读取涂鸦设备状态
            if (GetDeviceFunctionList(SPK.BrandType.Tuya).Count > 0)
            {
                var page = new List<string>();
                int count = 0;
                foreach (var function in GetDeviceFunctionList(SPK.BrandType.Tuya))
                {
                    page.Add(function.deviceId);
                    count++;
                    if (count > 9)
                    {
                        DriverLayer.Control.Ins.ReadFunctionsInfo(page);
                        page.Clear();
                        count = 0;
                    }
                }
                DriverLayer.Control.Ins.ReadFunctionsInfo(page);
            }
        }
        /// <summary>
        /// 读取全部功能的状态
@@ -600,7 +270,6 @@
                lockReadFunctionStatus = true;
                try
                {
                    Read3tyFunctionStatus();
                    if(DriverLayer.Control.Ins.GatewayOnline_Local)
                    {