From 9ab5bd54fadd8fc9c542b48c99a117a4e182669b Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期四, 14 十月 2021 16:37:56 +0800 Subject: [PATCH] 智能空开能源界面数据更新 --- HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs | 193 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 151 insertions(+), 42 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs index d40c649..cc89c35 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs @@ -8,6 +8,22 @@ public class LogicMethod { + + private static LogicMethod logicMethod = null; + + public static LogicMethod CurrLogicMethod + { + get + { + if (logicMethod == null) + { + return new LogicMethod(); + } + return logicMethod; + } + + } + /// <summary> /// 琛ㄧず鏄潯浠� /// </summary> @@ -19,15 +35,15 @@ /// <summary> /// 绉婚櫎鎵�鏈�"Logic"鐣岄潰 /// </summary> - public static void RemoveAllView() + public void RemoveAllView() { MainPage.BasePageView.RemoveViewByTag("Logic"); } - + /// <summary> Converts an array of bytes into a formatted string of hex digits (ex: E4 CA B2)</summary> /// <param name="data"> The array of bytes to be translated into a string of hex digits. </param> /// <returns> Returns a well formatted string of hex digits with spacing. </returns> - static string byteArrayToHexString(byte[] data) + public string byteArrayToHexString(byte[] data) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); foreach (byte b in data) @@ -46,7 +62,7 @@ * @param i 涓�涓猧nt鏁板瓧 * @return byte[] */ - public static byte[] int2ByteArray(int i) + public byte[] int2ByteArray(int i) { byte[] result = new byte[4]; result[0] = (byte)((i >> 24) & 0xFF); @@ -59,7 +75,7 @@ /// 鑾峰彇鏃堕棿鎴� /// </summary> /// <returns></returns> - static int getTimeStamp() + public int getTimeStamp() { TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); return (int)ts.TotalSeconds; @@ -67,7 +83,7 @@ /// <summary> /// 鐢熸垚閫昏緫sid鏂规硶 /// </summary> - public static string NewSid() + public string NewSid() { string logicId = ""; try @@ -111,7 +127,7 @@ /// <param name="dic">Dictionary绫�</param> /// <param name="key">鍋�</param> /// <param name="value">鍊�</param> - public static void dictionary(Dictionary<string, string> dic, string key, string value) + public void dictionary(Dictionary<string, string> dic, string key, string value) { if (dic.ContainsKey(key)) //鍒ゆ柇鏄惁瀛樺湪閿�� { @@ -125,7 +141,7 @@ /// 鑾峰彇缃戝叧鎴块棿鍒楄〃 /// </summary> /// <returns></returns> - public static List<HDL_ON.Entity.Room> GetGatewayRoomList() + public List<HDL_ON.Entity.Room> GetGatewayRoomList() { return HDL_ON.Entity.SpatialInfo.CurrentSpatial.RoomList; } @@ -133,7 +149,7 @@ /// 鑾峰彇缃戝叧鎴块棿鍒楄〃 /// </summary> /// <returns></returns> - public static List<HDL_ON.Entity.Room> GetGatewayRoomList(string name) + public List<HDL_ON.Entity.Room> GetGatewayRoomList(string name) { List<Entity.Room> roomList = new List<Entity.Room>(); Entity.Room room1 = new Entity.Room(); @@ -158,24 +174,33 @@ /// 鑾峰彇缃戝叧璁惧鍒楄〃 /// </summary> /// <returns></returns> - public static List<HDL_ON.Entity.Function> GetGatewayDeviceList() + public List<HDL_ON.Entity.Function> GetGatewayDeviceList() { return Entity.FunctionList.List.GetDeviceFunctionList(); } /// <summary> - /// 鑾峰彇缃戝叧鍦烘櫙鍒楄〃 + /// 鑾峰彇鍦烘櫙鍒楄〃 /// </summary> /// <returns></returns> - public static List<HDL_ON.Entity.Scene> GetSceneList() + public List<HDL_ON.Entity.Scene> GetSceneList() { return HDL_ON.Entity.FunctionList.List.scenes; + } + + /// <summary> + /// 鑾峰彇瀹夐槻鍒楄〃 + /// </summary> + /// <returns></returns> + public List<HDL_ON.Entity.SecurityAlarm> GetSecurityList() + { + return FunctionList.List.securities; } /// <summary> /// 鑾峰彇鎴块棿鐨勮澶囧垪琛� /// </summary> /// <param name="room">褰撳墠鎴块棿</param> /// <returns></returns> - public static List<HDL_ON.Entity.Function> GetRoomDevice(HDL_ON.Entity.Room room) + public List<HDL_ON.Entity.Function> GetRoomDevice(HDL_ON.Entity.Room room) { List<HDL_ON.Entity.Function> deviceLists = new List<Entity.Function>(); List<HDL_ON.Entity.Function> lists = GetGatewayDeviceList(); @@ -201,11 +226,11 @@ return deviceLists; } /// <summary> - /// 鑾峰彇褰撲釜璁惧 + /// 鑾峰彇璁惧锛堝姛鑳斤級瀵硅薄 /// </summary> /// <param name="sid">璁惧鍞竴鏍囪瘑</param> /// <returns></returns> - public static HDL_ON.Entity.Function GetDevice(string sid) + public HDL_ON.Entity.Function GetDevice(string sid) { HDL_ON.Entity.Function device = new Entity.Function() { name = "Unknown" }; List<HDL_ON.Entity.Function> deviceLists = GetGatewayDeviceList(); @@ -222,11 +247,11 @@ } /// <summary> - /// 鑾峰彇褰撲釜鍦烘櫙 + /// 鑾峰彇鍦烘櫙瀵硅薄 /// </summary> /// <param name="sid">鍦烘櫙鍞竴鏍囪瘑</param> /// <returns></returns> - public static HDL_ON.Entity.Scene GetSecne(string sid) + public HDL_ON.Entity.Scene GetSecne(string sid) { HDL_ON.Entity.Scene scene = new Entity.Scene() { name = "Unknown" }; List<HDL_ON.Entity.Scene> sceneLists = GetSceneList(); @@ -242,11 +267,31 @@ return scene; } /// <summary> + /// 鑾峰彇瀹夐槻瀵硅薄 + /// </summary> + /// <param name="sid">瀹夐槻鍞竴鏍囪瘑</param> + /// <returns></returns> + public HDL_ON.Entity.SecurityAlarm GetSecurity(string sid) + { + HDL_ON.Entity.SecurityAlarm security = new Entity.SecurityAlarm() { name = "Unknown" }; + List<HDL_ON.Entity.SecurityAlarm> SecurityLists = GetSecurityList(); + for (int i = 0; i < SecurityLists.Count; i++) + { + var sce = SecurityLists[i]; + if (sce.sid == sid) + { + security = sce; + break; + } + } + return security; + } + /// <summary> /// 鑾峰彇鎴块棿鍚�(鍗虫槸=鍖哄煙鍚嶇О) /// </summary> /// <param name="device">璁惧</param> /// <returns></returns> - public static string GetGetRoomName(HDL_ON.Entity.Function device) + public string GetGetRoomName(HDL_ON.Entity.Function device) { string roomName = ""; List<HDL_ON.Entity.Room> roomLists = GetGatewayRoomList(); @@ -268,7 +313,7 @@ /// </summary> /// <param name="functionType">璁惧绫诲瀷</param> /// <returns></returns> - public static string GetIconPath(string functionType) + public string GetIconPath(string functionType) { string strPath = ""; switch (functionType) @@ -290,11 +335,18 @@ } break; case SPK.AcStandard: + case SPK.HvacAC: { strPath = "LogicIcon/airconditionerlogic.png"; } break; - case SPK.FloorHeatStandard: + case SPK.FloorHeatStandard:case SPK.HvacFloorHeat: + { + strPath = "LogicIcon/heatlogic.png"; + } + break; + case SPK.AirFreshStandard: + case SPK.HvacAirFresh: { strPath = "LogicIcon/heatlogic.png"; } @@ -303,12 +355,23 @@ case SPK.SensorWater: case SPK.SensorGas: case SPK.SensorDryContact: + case SPK.SensorDryContact2: case SPK.SensorShanLan: case SPK.SensorDuiShe: case SPK.SensorPir: case SPK.SensorDoorWindow: - case SPK.SensoruUtrasonic: + case SPK.SensorUtrasonic: case SPK.SenesorMegahealth: + case SPK.SenesorMegahealth2: + case SPK.SensorEnvironment: + case SPK.SensorEnvironment2: + case SPK.SensorEnvironment3: + case SPK.SensorTemperature: + case SPK.SensorHumidity: + case SPK.SensorCO2: + case SPK.SensorPm25: + case SPK.SensorTVOC: + case SPK.SensorHcho: { strPath = "LogicIcon/sensor.png"; } @@ -322,7 +385,7 @@ /// </summary> /// <param name="deviceList">璁惧鍒楄〃</param> /// <returns></returns> - public static List<string> GetDeviceTypeList(List<HDL_ON.Entity.Function> deviceList) + public List<string> GetDeviceTypeList(List<HDL_ON.Entity.Function> deviceList) { List<string> deviceStrTypeList = new List<string>(); deviceStrTypeList.Clear(); @@ -346,27 +409,42 @@ deviceStrTypeList.Add(Language.StringByID(StringId.Curtain)); } - var ac = deviceList.Find((device) => device.spk == SPK.AcStandard); + var ac = deviceList.Find((device) => device.spk == SPK.AcStandard || device.spk == SPK.HvacAC); if (ac != null) { deviceStrTypeList.Add(Language.StringByID(StringId.AC)); } - var floorHeating = deviceList.Find((device) => device.spk == SPK.FloorHeatStandard); + var floorHeating = deviceList.Find((device) => device.spk == SPK.FloorHeatStandard || device.spk == SPK.HvacFloorHeat); if (floorHeating != null) { deviceStrTypeList.Add(Language.StringByID(StringId.FloorHeating)); + } + var airFresh = deviceList.Find((device) => device.spk == SPK.AirFreshStandard || device.spk == SPK.HvacAirFresh); + if (airFresh != null) + { + deviceStrTypeList.Add(Language.StringByID(StringId.AirFresh)); } var sensor = deviceList.Find((device) => device.spk == SPK.SensorWater || device.spk == SPK.SensorGas || device.spk == SPK.SensorSmoke - || device.spk == SPK.SensorDryContact + || device.spk == SPK.SensorDryContact || device.spk == SPK.SensorDryContact2 || device.spk == SPK.SensorShanLan || device.spk == SPK.SensorDuiShe || device.spk == SPK.SensorPir || device.spk == SPK.SensorDoorWindow - || device.spk == SPK.SensoruUtrasonic + || device.spk == SPK.SensorUtrasonic || device.spk == SPK.SenesorMegahealth + || device.spk == SPK.SenesorMegahealth2 + || device.spk == SPK.SensorEnvironment + || device.spk == SPK.SensorEnvironment2 + || device.spk == SPK.SensorEnvironment3 + || device.spk == SPK.SensorTemperature + || device.spk == SPK.SensorHumidity + || device.spk == SPK.SensorCO2 + || device.spk == SPK.SensorPm25 + || device.spk == SPK.SensorTVOC + || device.spk == SPK.SensorHcho ); if (sensor != null) { @@ -380,7 +458,7 @@ /// </summary> /// <param name="deviceType">璁惧绫诲瀷(鐏厜绫伙紝绐楀笜绫汇��)</param> /// <returns></returns> - public static List<string> GetDeviceTypeFunctionList(string deviceType) + public List<string> GetDeviceTypeFunctionList(string deviceType) { List<string> functionTypeList = new List<string>(); if (deviceType == Language.StringByID(StringId.Lights)) @@ -400,23 +478,39 @@ else if (deviceType == Language.StringByID(StringId.AC)) { functionTypeList.Add(SPK.AcStandard); + functionTypeList.Add(SPK.HvacAC); } else if (deviceType == Language.StringByID(StringId.FloorHeating)) { - functionTypeList.Add(SPK.FloorHeatStandard); + functionTypeList.Add(SPK.FloorHeatStandard);functionTypeList.Add(SPK.HvacFloorHeat); + } + else if (deviceType == Language.StringByID(StringId.AirFresh)) + { + functionTypeList.Add(SPK.AirFreshStandard); functionTypeList.Add(SPK.HvacAirFresh); } else if (deviceType == Language.StringByID(StringId.Sensor)) { functionTypeList.Add(SPK.SensorSmoke); functionTypeList.Add(SPK.SensorWater); functionTypeList.Add(SPK.SensorGas); - functionTypeList.Add(SPK.SensorDryContact); + functionTypeList.Add(SPK.SensorDryContact); functionTypeList.Add(SPK.SensorDryContact2); functionTypeList.Add(SPK.SensorShanLan); functionTypeList.Add(SPK.SensorDuiShe); functionTypeList.Add(SPK.SensorPir); functionTypeList.Add(SPK.SensorDoorWindow); - functionTypeList.Add(SPK.SensoruUtrasonic); + functionTypeList.Add(SPK.SensorUtrasonic); functionTypeList.Add(SPK.SenesorMegahealth); + functionTypeList.Add(SPK.SenesorMegahealth2); + functionTypeList.Add(SPK.SensorEnvironment); + functionTypeList.Add(SPK.SensorEnvironment2); + functionTypeList.Add(SPK.SensorEnvironment3); + functionTypeList.Add(SPK.SensorTemperature); + functionTypeList.Add(SPK.SensorHumidity); + functionTypeList.Add(SPK.SensorCO2); + functionTypeList.Add(SPK.SensorPm25); + functionTypeList.Add(SPK.SensorTVOC); + functionTypeList.Add(SPK.SensorHcho); + } return functionTypeList; @@ -426,7 +520,7 @@ /// 鏉′欢/鐩爣鏀寔璁惧 /// </summary> /// <returns></returns> - public static List<string> GetSupportEquipment(string if_type) + public List<string> GetSupportEquipment(string if_type) { List<string> deviceTypeList = new List<string>(); switch (if_type) @@ -441,18 +535,30 @@ deviceTypeList.Add(SPK.CurtainSwitch); deviceTypeList.Add(SPK.CurtainRoller); deviceTypeList.Add(SPK.CurtainTrietex); - deviceTypeList.Add(SPK.AcStandard); - deviceTypeList.Add(SPK.FloorHeatStandard); + deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC); + deviceTypeList.Add(SPK.AirFreshStandard); deviceTypeList.Add(SPK.HvacAirFresh); + deviceTypeList.Add(SPK.FloorHeatStandard); deviceTypeList.Add(SPK.HvacFloorHeat); deviceTypeList.Add(SPK.SensorSmoke); deviceTypeList.Add(SPK.SensorWater); deviceTypeList.Add(SPK.SensorGas); - deviceTypeList.Add(SPK.SensorDryContact); + deviceTypeList.Add(SPK.SensorDryContact); deviceTypeList.Add(SPK.SensorDryContact2); deviceTypeList.Add(SPK.SensorShanLan); deviceTypeList.Add(SPK.SensorDuiShe); deviceTypeList.Add(SPK.SensorPir); deviceTypeList.Add(SPK.SensorDoorWindow); - deviceTypeList.Add(SPK.SensoruUtrasonic); + deviceTypeList.Add(SPK.SensorUtrasonic); deviceTypeList.Add(SPK.SenesorMegahealth); + deviceTypeList.Add(SPK.SenesorMegahealth2); + deviceTypeList.Add(SPK.SensorEnvironment); + deviceTypeList.Add(SPK.SensorEnvironment2); + deviceTypeList.Add(SPK.SensorEnvironment3); + deviceTypeList.Add(SPK.SensorTemperature); + deviceTypeList.Add(SPK.SensorHumidity); + deviceTypeList.Add(SPK.SensorCO2); + deviceTypeList.Add(SPK.SensorPm25); + deviceTypeList.Add(SPK.SensorTVOC); + deviceTypeList.Add(SPK.SensorHcho); + } break; case target_if: @@ -465,8 +571,9 @@ deviceTypeList.Add(SPK.CurtainSwitch); deviceTypeList.Add(SPK.CurtainRoller); deviceTypeList.Add(SPK.CurtainTrietex); - deviceTypeList.Add(SPK.AcStandard); - deviceTypeList.Add(SPK.FloorHeatStandard); + deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC); + deviceTypeList.Add(SPK.FloorHeatStandard); deviceTypeList.Add(SPK.HvacFloorHeat); + deviceTypeList.Add(SPK.AirFreshStandard); deviceTypeList.Add(SPK.HvacAirFresh); } break; } @@ -479,7 +586,7 @@ /// <param name="functionType">婧愭暟鎹垪琛�1</param> /// <param name="deviceList">婧愭暟鎹垪琛�2</param> /// <returns></returns> - public static List<Entity.Function> GetShowDeviceList(List<string> functionType, List<HDL_ON.Entity.Function> deviceList) + public List<Entity.Function> GetShowDeviceList(List<string> functionType, List<HDL_ON.Entity.Function> deviceList) { List<HDL_ON.Entity.Function> devList = new List<Entity.Function>(); for (int i = 0; i < deviceList.Count; i++) @@ -501,7 +608,7 @@ /// <param name="room">褰撳墠鎴块棿</param> /// <param name="str">鍒ゆ柇绗︼紙琛ㄧず=杈撳叆璁惧鍜岃緭鍑鸿澶囷級</param> /// <returns></returns> - public static List<Entity.Function> GetFunctionDeviceList(Entity.Room room, string str) + public List<Entity.Function> GetFunctionDeviceList(Entity.Room room, string str) { List<string> functionTypeList = GetSupportEquipment(str); //杩斿洖鎴块棿璁惧鍒楄〃 @@ -513,7 +620,7 @@ /// <summary> /// 缃戝叧ID(鑾峰彇鍢変箰缃戝叧ID) /// </summary> - public static string GatewayId + public string GatewayId { get { @@ -527,7 +634,7 @@ /// <summary> /// 浣忓畢ID /// </summary> - public static string HomeId + public string HomeId { get { @@ -537,12 +644,14 @@ /// <summary> /// 鏄惁涓哄叾浠栦富鐢ㄦ埛鍒嗕韩杩囨潵鐨勪綇瀹� /// </summary> - public static bool IsOthreShare + public bool IsOthreShare { get { return Entity.DB_ResidenceData.Instance.CurrentRegion.isOtherShare; } } + + } } -- Gitblit v1.8.0