From 505effa88b17ce8c3c7ac5403b76d9e5d0cfc2a5 Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期一, 28 十月 2024 11:58:31 +0800 Subject: [PATCH] 谷歌版本问题修复 --- HDL_ON/Entity/FunctionList.cs | 284 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 250 insertions(+), 34 deletions(-) diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs index 6dda2d1..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> /// 绌鸿皟鍒楄〃 @@ -55,6 +165,15 @@ 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> public List<Function> GetCurtainList() @@ -69,6 +188,12 @@ public List<Function> GetFloorHeatingList() { var spkList = SPK.FhSpkList(); + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } + + public List<Function> GetDoorLockList() + { + var spkList = SPK.GetDoorLockSPKList(); return Functions.FindAll((obj) => spkList.Contains(obj.spk)); } @@ -92,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> /// 瀹剁數鍒楄〃 @@ -101,8 +234,8 @@ var spkList = SPK.ElectricalSpkList(); return Functions.FindAll((obj) => spkList.Contains(obj.spk)); } - - + + /// <summary> /// 绾㈠瀹濆垪琛� /// </summary> @@ -139,6 +272,26 @@ 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, + SPK.SensorDryContact, + SPK.SensorDryContact2, + }; + + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } + /// <summary> /// 鍙瀵硅鍒楄〃,褰撲负null鎴杝ize涓�0鍒欎笉鏄剧ず鍙瀵硅icon @@ -154,7 +307,7 @@ { get { - if(_OtherBrandFunction == null) + if (_OtherBrandFunction == null) { _OtherBrandFunction = new List<Function>(); var spkList = SPK.GetAll3tySPK(); @@ -175,6 +328,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> /// 鍔犺浇鍔熻兘鍒楄〃 @@ -208,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); } @@ -235,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; } @@ -260,6 +434,9 @@ { MainPage.Log($"IniFunctionList error : {ex.Message}"); } + finally + { + } } /// <summary> @@ -272,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; } @@ -310,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) { } @@ -336,9 +533,8 @@ /// <summary> /// 鍒犻櫎鍦烘櫙 - /// todo /// </summary> - public void DeleteScene(Scene scene,bool upSevser) + public void DeleteScene(Scene scene, bool upSevser) { if (upSevser) { @@ -366,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); } @@ -405,14 +605,14 @@ { if (lockReadFunctionStatus) { - MainPage.Log($"澶氭杩涘叆--杩斿洖"); + MainPage.Log($"澶氭杩涘叆--杩斿洖1"); return; } new Thread(() => { if (lockReadFunctionStatus) { - MainPage.Log($"澶氭杩涘叆--杩斿洖"); + MainPage.Log($"澶氭杩涘叆--杩斿洖2"); return; } MainPage.Log($"杩涘叆--璇诲彇"); @@ -421,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(); @@ -445,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); @@ -469,7 +685,7 @@ MainPage.Log($"缁撴潫--璇诲彇"); } - + }) { IsBackground = true }.Start(); } @@ -509,7 +725,7 @@ #endregion #region 鏀惰棌鍔熻兘 - + /// <summary> /// 鏀惰棌鍦烘櫙 /// </summary> @@ -534,11 +750,11 @@ return result; } - #endregion + #endregion #region - + #endregion -- Gitblit v1.8.0