From 9508510f0b27da3278fa1161eb2ba3dd1e3e2030 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 26 七月 2023 13:14:00 +0800
Subject: [PATCH] 2023年07月26日13:12:21

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs |  350 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 291 insertions(+), 59 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
index c988fc3..5d331cd 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -10,20 +10,20 @@
     {
         /// <summary>
         /// 瀹氫箟涓�涓潤鎬佸璞�
-        /// </summary>
-        private static LogicMethod logicMethod = null;
+        /// </summary> 
+        private static LogicMethod s_Current = null;
         /// <summary>
         /// 鑾峰彇闈欐�佸璞�
         /// </summary>
-        public static LogicMethod CurrLogicMethod
+        public static LogicMethod Current
         {
             get
             {
-                if (logicMethod == null)
+                if (s_Current == null)
                 {
                     return new LogicMethod();
                 }
-                return logicMethod;
+                return s_Current;
             }
 
         }
@@ -148,6 +148,8 @@
         public List<HDL_ON.Entity.Room> GetGatewayRoomList()
         {
             return HDL_ON.Entity.SpatialInfo.CurrentSpatial.RoomList;
+
+
         }
         /// <summary>
         /// 鑾峰彇缃戝叧鎴块棿鍒楄〃
@@ -180,7 +182,40 @@
         /// <returns></returns>
         public List<HDL_ON.Entity.Function> GetGatewayDeviceList()
         {
-            return Entity.FunctionList.List.GetDeviceFunctionList();
+            var list = new List<HDL_ON.Entity.Function>();
+            var list1 = Entity.FunctionList.List.GetDeviceFunctionList();
+            var list2 = this.GetVideoDeviceList();
+            list.AddRange(list1);
+            list.AddRange(list2);
+            list.AddRange(FunctionList.List.groupControls);
+#if DEBUG
+            GetTestDevice(ref list, true);
+#endif
+            return list;
+        }
+        /// <summary>
+        /// 鑾峰彇鍙瀵硅璁惧鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public List<HDL_ON.Entity.Function> GetVideoDeviceList()
+        {
+            var functionList = new List<Function>();
+            foreach (var videoDevice in FunctionList.List.videoIntercom)
+            {
+                Function function = new Function();
+                function.spk = videoDevice.spk;
+                function.name = videoDevice.deviceName;
+                function.deviceId = videoDevice.deviceId;
+                function.online = videoDevice.status == "online";
+                function.sid = videoDevice.sid;
+                var video = functionList.Find((o) => o.deviceId == function.deviceId);
+                if (video == null)
+                {
+                    functionList.Add(function);
+                }
+
+            }
+            return functionList;
         }
         /// <summary>
         /// 鑾峰彇鍦烘櫙鍒楄〃
@@ -311,18 +346,57 @@
 
             return roomName.TrimEnd(',');
         }
-        #region   鍔ㄤ竴鏀瑰洓
+
         /// <summary>
         /// 鑾峰彇璁惧绫诲瀷鍥炬爣
         /// </summary>
+        /// <param name="device">璁惧</param>
+        /// <returns></returns>
+        public string GetDeviceIconPath(Function device)
+        {
+            if (SPK.MusicStandard == device.spk
+                || SPK.AvMusic == device.spk)
+            {
+                return "MusicIcon/localMusic.png";
+            }
+            else if (SPK.SensorPm10 == device.spk || SPK.SensorPirHold == device.spk)
+            {
+                return "LogicIcon/sensor.png";
+            }
+            else if (SPK.DoorLock == device.spk
+                || SPK.VideoDoorLock == device.spk)
+            {
+                return "FunctionIcon/DoorLock/DoorLock.png";
+            }
+            //LogicIcon/heatlogic.png"
+            return $"FunctionIcon/Icon/{device.IconName}.png";
+
+        }
+        /// <summary>
+        /// 鑾峰彇璁惧绫诲瀷鍥炬爣(宸插純鐢� 2022骞�11鏈�25鏃�14:07:30)
+        /// </summary>
         /// <param name="functionType">璁惧绫诲瀷</param>
         /// <returns></returns>
-        public string GetIconPath(string functionType)
+        public string GetIconPath(string spk)
         {
             string strPath = "";
-            switch (functionType)
+            switch (spk)
             {
-
+                case SPK.IpCam_Imou:
+                    {
+                        strPath = $"FunctionIcon/Icon/{SPK.IpCam_Imou.Replace(".", "")}.png";
+                    }
+                    break;
+                case SPK.MechanicalArm:
+                    {
+                        strPath = "LogicIcon/lightloguc.png";
+                    }
+                    break;
+                case SPK.doorgate:
+                    {
+                        strPath = "VideoIcon/keshiduijiang.png";
+                    }
+                    break;
                 case SPK.AirSwitch:
                     {
                         strPath = "FunctionIcon/Icon/electricalbreaker.png";
@@ -346,11 +420,13 @@
                 case SPK.CurtainSwitch:
                 case SPK.CurtainRoller:
                 case SPK.CurtainTrietex:
+                case SPK.CurtainDream:
                     {
                         strPath = "LogicIcon/curtainlogic.png";
                     }
                     break;
                 case SPK.AcStandard:
+                case SPK.AcIr:
                 case SPK.HvacAC:
                     {
                         strPath = "LogicIcon/airconditionerlogic.png";
@@ -381,9 +457,10 @@
                 case SPK.SensorPir:
                 case SPK.SensorDoorWindow:
                 case SPK.SensorUtrasonic:
+                case SPK.SensorMmvPose:
                 case SPK.SenesorMegahealth:
                 case SPK.SenesorMegahealth2:
-                case SPK.SensorEnvironment:
+                case SPK.SensorEnvironment:case SPK.SensorEnvironmentHailin:
                 case SPK.SensorEnvironment2:
                 case SPK.SensorEnvironment3:
                 case SPK.SensorTemperature:
@@ -393,6 +470,8 @@
                 case SPK.SensorTVOC:
                 case SPK.SensorHcho:
                 case SPK.SensorHelp:
+                case SPK.SensorPirHold:
+                    
                     {
                         strPath = "LogicIcon/sensor.png";
                     }
@@ -402,10 +481,16 @@
                         strPath = "FunctionIcon/DoorLock/DoorLock.png";
                     }
                     break;
-
+                case SPK.MusicStandard:
+                case SPK.AvMusic:
+                    {
+                        strPath = "MusicIcon/localMusic.png";
+                    }
+                    break;
             }
             return strPath;
         }
+        #region   鍔ㄤ竴鏀逛笁
         /// <summary>
         /// 璁惧绫诲瀷鐨勫垪琛�(鐏厜绫伙紝绐楀笜绫汇�傘�傘��)
         /// </summary>
@@ -415,6 +500,15 @@
         {
             List<string> deviceStrTypeList = new List<string>();
             deviceStrTypeList.Clear();
+
+            //缇ゆ帶
+            var gp = deviceList.Find((device) =>
+                device.spk == SPK.GroupControl);
+            if (gp != null)
+            {
+                deviceStrTypeList.Add(Language.StringByID(StringId.GroupControl));
+            }
+
             ///鐏厜绫�
             var lightjosn = deviceList.Find((device) =>
             device.spk == SPK.LightSwitch
@@ -432,13 +526,14 @@
             var curtainjosn = deviceList.Find((device) =>
             device.spk == SPK.CurtainSwitch
             || device.spk == SPK.CurtainTrietex
-            || device.spk == SPK.CurtainRoller);
+            || device.spk == SPK.CurtainRoller
+            || device.spk == SPK.CurtainDream);
             if (curtainjosn != null)
             {
                 deviceStrTypeList.Add(Language.StringByID(StringId.Curtain));
             }
             ///绌鸿皟绫�
-            var ac = deviceList.Find((device) => device.spk == SPK.AcStandard || device.spk == SPK.HvacAC);
+            var ac = deviceList.Find((device) => device.spk == SPK.AcStandard || device.spk == SPK.HvacAC|| device.spk == SPK.AcIr);
             if (ac != null)
             {
                 deviceStrTypeList.Add(Language.StringByID(StringId.AC));
@@ -466,9 +561,10 @@
             || device.spk == SPK.SensorPir
             || device.spk == SPK.SensorDoorWindow
             || device.spk == SPK.SensorUtrasonic
+            || device.spk == SPK.SensorMmvPose
             || device.spk == SPK.SenesorMegahealth
             || device.spk == SPK.SenesorMegahealth2
-            || device.spk == SPK.SensorEnvironment
+            || device.spk == SPK.SensorEnvironment || device.spk == SPK.SensorEnvironmentHailin
              || device.spk == SPK.SensorEnvironment2
               || device.spk == SPK.SensorEnvironment3
                 || device.spk == SPK.SensorTemperature
@@ -478,6 +574,8 @@
                         || device.spk == SPK.SensorTVOC
                           || device.spk == SPK.SensorHcho
                           || device.spk == SPK.SensorHelp
+                          || device.spk == SPK.SensorPm10
+                          || device.spk == SPK.SensorPirHold
             );
             if (sensor != null)
             {
@@ -494,10 +592,37 @@
                 deviceStrTypeList.Add(Language.StringByID(StringId.Electric));
             }
             ///闂ㄩ攣绫�
-            var doorlock = deviceList.Find((device) => device.spk == SPK.DoorLock);
+            var doorlock = deviceList.Find((device) => device.spk == SPK.DoorLock
+            || device.spk == SPK.VideoDoorLock);
             if (doorlock != null)
             {
                 deviceStrTypeList.Add(Language.StringByID(StringId.DoorLock));
+            }
+            ///闊充箰绫�
+            var music = deviceList.Find((device) => device.spk == SPK.MusicStandard || device.spk == SPK.AvMusic);
+            if (music != null)
+            {
+                deviceStrTypeList.Add(Language.StringByID(StringId.Music));
+            }
+            ///鍙瀵硅
+            var doorgate = deviceList.Find((device) => device.spk == SPK.doorgate);
+            if (doorgate != null)
+            {
+                deviceStrTypeList.Add(Language.StringByID(StringId.VideoIntercom));
+            }
+            ///鏈烘鎵嬬被
+            var MechanicalArm = deviceList.Find((device) =>
+            device.spk == SPK.MechanicalArm);
+            if (MechanicalArm != null)
+            {
+                deviceStrTypeList.Add(Language.StringByID(StringId.jixieshou));
+            }
+            ///鎽勫儚澶寸被
+            var camera = deviceList.Find((device) =>
+            device.spk == SPK.IpCam_Imou || device.spk == SPK.Ev_Ipcam || device.spk == SPK.Peephole);
+            if (camera != null)
+            {
+                deviceStrTypeList.Add(Language.StringByID(StringId.shexiangtou));
             }
             return deviceStrTypeList;
 
@@ -510,6 +635,7 @@
         public List<string> GetDeviceTypeFunctionList(string deviceType)
         {
             List<string> functionTypeList = new List<string>();
+          
             ///鐏厜绫�
             if (deviceType == Language.StringByID(StringId.Lights))
             {
@@ -522,12 +648,18 @@
                 functionTypeList.Add(SPK.PanelSocket);
                 functionTypeList.Add(SPK.ElectricSocket);
             }
+            //缇ゆ帶
+            else if (deviceType == Language.StringByID(StringId.GroupControl))
+            {
+                functionTypeList.Add(SPK.GroupControl);
+            }
             ///绐楀笜绫�
             else if (deviceType == Language.StringByID(StringId.Curtain))
             {
                 functionTypeList.Add(SPK.CurtainSwitch);
                 functionTypeList.Add(SPK.CurtainRoller);
                 functionTypeList.Add(SPK.CurtainTrietex);
+                functionTypeList.Add(SPK.CurtainDream);
             }
             ///绌鸿皟绫�
             else if (deviceType == Language.StringByID(StringId.AC))
@@ -535,6 +667,7 @@
                 functionTypeList.Add(SPK.AcStandard);
                 functionTypeList.Add(SPK.HvacAC);
                 functionTypeList.Add(SPK.HvacCac);
+                functionTypeList.Add(SPK.AcIr);
             }
             ///鍦版殩绫�
             else if (deviceType == Language.StringByID(StringId.FloorHeating))
@@ -558,9 +691,10 @@
                 functionTypeList.Add(SPK.SensorPir);
                 functionTypeList.Add(SPK.SensorDoorWindow);
                 functionTypeList.Add(SPK.SensorUtrasonic);
+                functionTypeList.Add(SPK.SensorMmvPose);
                 functionTypeList.Add(SPK.SenesorMegahealth);
                 functionTypeList.Add(SPK.SenesorMegahealth2);
-                functionTypeList.Add(SPK.SensorEnvironment);
+                functionTypeList.Add(SPK.SensorEnvironment); functionTypeList.Add(SPK.SensorEnvironmentHailin);
                 functionTypeList.Add(SPK.SensorEnvironment2);
                 functionTypeList.Add(SPK.SensorEnvironment3);
                 functionTypeList.Add(SPK.SensorTemperature);
@@ -570,6 +704,8 @@
                 functionTypeList.Add(SPK.SensorTVOC);
                 functionTypeList.Add(SPK.SensorHcho);
                 functionTypeList.Add(SPK.SensorHelp);
+                functionTypeList.Add(SPK.SensorPm10);
+                functionTypeList.Add(SPK.SensorPirHold);
 
 
             }
@@ -583,10 +719,38 @@
             ///闂ㄩ攣绫�
             else if (deviceType == Language.StringByID(StringId.DoorLock))
             {
-                functionTypeList.Add(SPK.DoorLock); 
+                functionTypeList.Add(SPK.DoorLock);
+                functionTypeList.Add(SPK.VideoDoorLock);
+            }
+            ///闊充箰绫�
+            else if (deviceType == Language.StringByID(StringId.Music))
+            {
+                functionTypeList.Add(SPK.MusicStandard);
+                functionTypeList.Add(SPK.AvMusic);
+            }
+            ///HDL鍙瀵硅
+            else if (deviceType == Language.StringByID(StringId.VideoIntercom))
+            {
+                functionTypeList.Add(SPK.doorgate);
+            }
+            ///鏈烘鎵嬬被
+            else  if (deviceType == Language.StringByID(StringId.jixieshou))
+            {
+                functionTypeList.Add(SPK.MechanicalArm);
+            }
+            ///鎽勫儚澶寸被
+            else if (deviceType == Language.StringByID(StringId.shexiangtou))
+            {
+                functionTypeList.Add(SPK.IpCam_Imou);
+                functionTypeList.Add(SPK.Ev_Ipcam);
+                functionTypeList.Add(SPK.Peephole);
             }
             else
             {
+                //鍏ㄩ儴鍖哄煙
+                functionTypeList.Add(SPK.GroupControl);
+                functionTypeList.Add(SPK.Peephole);
+                functionTypeList.Add(SPK.Ev_Ipcam);
                 functionTypeList.Add(SPK.LightSwitch);
                 functionTypeList.Add(SPK.LightDimming);
                 functionTypeList.Add(SPK.LightRGB);
@@ -600,6 +764,7 @@
                 functionTypeList.Add(SPK.CurtainTrietex);
                 functionTypeList.Add(SPK.AcStandard);
                 functionTypeList.Add(SPK.HvacAC);
+                functionTypeList.Add(SPK.AcIr);
                 functionTypeList.Add(SPK.FloorHeatStandard);
                 functionTypeList.Add(SPK.HvacFloorHeat);
                 functionTypeList.Add(SPK.AirFreshStandard);
@@ -614,9 +779,10 @@
                 functionTypeList.Add(SPK.SensorPir);
                 functionTypeList.Add(SPK.SensorDoorWindow);
                 functionTypeList.Add(SPK.SensorUtrasonic);
+                functionTypeList.Add(SPK.SensorMmvPose);
                 functionTypeList.Add(SPK.SenesorMegahealth);
                 functionTypeList.Add(SPK.SenesorMegahealth2);
-                functionTypeList.Add(SPK.SensorEnvironment);
+                functionTypeList.Add(SPK.SensorEnvironment); functionTypeList.Add(SPK.SensorEnvironmentHailin);
                 functionTypeList.Add(SPK.SensorEnvironment2);
                 functionTypeList.Add(SPK.SensorEnvironment3);
                 functionTypeList.Add(SPK.SensorTemperature);
@@ -631,6 +797,17 @@
                 functionTypeList.Add(SPK.HvacCac);
                 functionTypeList.Add(SPK.SensorHelp);
                 functionTypeList.Add(SPK.DoorLock);
+                functionTypeList.Add(SPK.CurtainDream);
+                functionTypeList.Add(SPK.MusicStandard);
+                functionTypeList.Add(SPK.AvMusic);
+                functionTypeList.Add(SPK.doorgate);
+                functionTypeList.Add(SPK.MechanicalArm);
+                functionTypeList.Add(SPK.IpCam_Imou);
+                functionTypeList.Add(SPK.SensorPm10);
+                functionTypeList.Add(SPK.VideoDoorLock);
+                functionTypeList.Add(SPK.AcIr);
+                functionTypeList.Add(SPK.SensorPirHold);
+
             }
 
 
@@ -648,6 +825,8 @@
             {
                 case condition_if:
                     {
+                        deviceTypeList.Add(SPK.Ev_Ipcam);
+                        deviceTypeList.Add(SPK.Peephole);
                         deviceTypeList.Add(SPK.LightSwitch);
                         deviceTypeList.Add(SPK.LightRGB);
                         deviceTypeList.Add(SPK.LightRGBW);
@@ -656,7 +835,7 @@
                         deviceTypeList.Add(SPK.CurtainSwitch);
                         deviceTypeList.Add(SPK.CurtainRoller);
                         deviceTypeList.Add(SPK.CurtainTrietex);
-                        deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC);
+                        deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC);deviceTypeList.Add(SPK.AcIr);
                         deviceTypeList.Add(SPK.AirFreshStandard); deviceTypeList.Add(SPK.HvacAirFresh);
                         deviceTypeList.Add(SPK.FloorHeatStandard); deviceTypeList.Add(SPK.HvacFloorHeat);
                         deviceTypeList.Add(SPK.SensorSmoke);
@@ -668,9 +847,10 @@
                         deviceTypeList.Add(SPK.SensorPir);
                         deviceTypeList.Add(SPK.SensorDoorWindow);
                         deviceTypeList.Add(SPK.SensorUtrasonic);
+                        deviceTypeList.Add(SPK.SensorMmvPose);
                         deviceTypeList.Add(SPK.SenesorMegahealth);
                         deviceTypeList.Add(SPK.SenesorMegahealth2);
-                        deviceTypeList.Add(SPK.SensorEnvironment);
+                        deviceTypeList.Add(SPK.SensorEnvironment); deviceTypeList.Add(SPK.SensorEnvironmentHailin);
                         deviceTypeList.Add(SPK.SensorEnvironment2);
                         deviceTypeList.Add(SPK.SensorEnvironment3);
                         deviceTypeList.Add(SPK.SensorTemperature);
@@ -685,11 +865,18 @@
                         deviceTypeList.Add(SPK.HvacCac);
                         deviceTypeList.Add(SPK.SensorHelp);
                         deviceTypeList.Add(SPK.DoorLock);
+                        deviceTypeList.Add(SPK.doorgate);
+                        deviceTypeList.Add(SPK.IpCam_Imou);
+                        deviceTypeList.Add(SPK.SensorPm10);
+                        deviceTypeList.Add(SPK.VideoDoorLock);
+                        deviceTypeList.Add(SPK.AcIr);
+                        deviceTypeList.Add(SPK.SensorPirHold);
 
                     }
                     break;
                 case target_if:
                     {
+                        deviceTypeList.Add(SPK.GroupControl);
                         deviceTypeList.Add(SPK.LightSwitch);
                         deviceTypeList.Add(SPK.LightRGB);
                         deviceTypeList.Add(SPK.LightRGBW);
@@ -698,12 +885,17 @@
                         deviceTypeList.Add(SPK.CurtainSwitch);
                         deviceTypeList.Add(SPK.CurtainRoller);
                         deviceTypeList.Add(SPK.CurtainTrietex);
-                        deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC);
+                        deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC); deviceTypeList.Add(SPK.AcIr);
                         deviceTypeList.Add(SPK.FloorHeatStandard); deviceTypeList.Add(SPK.HvacFloorHeat);
                         deviceTypeList.Add(SPK.AirFreshStandard); deviceTypeList.Add(SPK.HvacAirFresh);
                         deviceTypeList.Add(SPK.AirSwitch);
                         deviceTypeList.Add(SPK.PanelSocket);
                         deviceTypeList.Add(SPK.ElectricSocket);
+                        deviceTypeList.Add(SPK.CurtainDream);
+                        deviceTypeList.Add(SPK.MusicStandard);
+                        deviceTypeList.Add(SPK.AvMusic);
+                        deviceTypeList.Add(SPK.MechanicalArm);
+                        deviceTypeList.Add(SPK.AcIr);
                     }
                     break;
             }
@@ -740,15 +932,15 @@
         /// <returns></returns>
         public List<Entity.Function> GetFunctionDeviceList(Entity.Room room, string str)
         {
-            List<string> functionTypeList = GetSupportEquipment(str);
+            List<string> functionTypeList = this.GetSupportEquipment(str);
             //杩斿洖鎴块棿璁惧鍒楄〃
-            var roomDeviceList = GetRoomDevice(room);
+            var roomDeviceList = this.GetRoomDevice(room);
             //杩斿洖鏈�缁堟敮鎸佹樉绀哄嚭鏉ョ殑璁惧鍒楄〃
-            var list = GetShowDeviceList(functionTypeList, roomDeviceList);
+            var list =this.GetShowDeviceList(functionTypeList, roomDeviceList);
             return list;
         }
         /// <summary>
-        /// 缃戝叧ID(鑾峰彇鍢変箰缃戝叧ID)
+        /// 缃戝叧ID(鑾峰彇缃戝叧ID)
         /// </summary>
         public string GatewayId
         {
@@ -937,57 +1129,57 @@
             {
                 try
                 {
-              //鑾峰彇閫昏緫ID鍒楄〃锛岀洰鍓嶉拡瀵规墍鏈�<澶囨敞:濡傛灉鍙拡瀵瑰綋鍓嶆墜鏈虹殑璇濓紝鍙互鐩存帴鎷跨紦瀛樻暟鎹嚜鍔ㄥ寲鍒楄〃閬嶅巻>
-              var idStr = Send.GetLogicIdList();
-                    if (idStr.Code == "0" && idStr.Data != null && idStr.Data.ToString() != "")
+                    //鑾峰彇閫昏緫ID鍒楄〃锛岀洰鍓嶉拡瀵规墍鏈�<澶囨敞:濡傛灉鍙拡瀵瑰綋鍓嶆墜鏈虹殑璇濓紝鍙互鐩存帴鎷跨紦瀛樻暟鎹嚜鍔ㄥ寲鍒楄〃閬嶅巻>
+                    var idStr = Send.Current.GetLogicIdList();
+                    if (idStr != null)
                     {
                         var date = Newtonsoft.Json.JsonConvert.SerializeObject(idStr.Data);
                         logicDataList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<LogicData>>(date);
                     }
-              ///鏈夎嚜鍔ㄥ垪琛ㄦ墠澶勭悊
-              if (logicDataList.Count > 0)
+                    ///鏈夎嚜鍔ㄥ垪琛ㄦ墠澶勭悊
+                    if (logicDataList.Count > 0)
                     {
-                  ///閬嶅巻鎵�鏈夊垪琛�
-                  for (int i = 0; i < logicDataList.Count; i++)
+                        ///閬嶅巻鎵�鏈夊垪琛�
+                        for (int i = 0; i < logicDataList.Count; i++)
                         {
                             var logicDate = logicDataList[i];
-                      ///鑷姩鍖栨病鏈夐厤缃湴鐞嗗洿鏍忎笉澶勭悊
-                      if (string.IsNullOrEmpty(logicDate.geo_fence.latitude) || string.IsNullOrEmpty(logicDate.geo_fence.longitude))
+                            ///鑷姩鍖栨病鏈夐厤缃湴鐞嗗洿鏍忎笉澶勭悊
+                            if (string.IsNullOrEmpty(logicDate.geo_fence.latitude) || string.IsNullOrEmpty(logicDate.geo_fence.longitude))
                             {
-                          //缁忕含搴︿负绌�,璁や负鑷姩鍖栨病鏈夐厤缃湴鐞嗗洿鏍忥紝涓嶅鐞�;
-                          continue;
+                                //缁忕含搴︿负绌�,璁や负鑷姩鍖栨病鏈夐厤缃湴鐞嗗洿鏍忥紝涓嶅鐞�;
+                                continue;
                             }
-                      //鑷姩鍖栭厤缃緭鍏ユ潯浠剁含搴�
-                      double lat = Convert.ToDouble(logicDate.geo_fence.latitude.Replace(",", "."));
-                      //鑷姩鍖栭厤缃緭鍏ユ潯浠剁粡搴�
-                      double lon = Convert.ToDouble(logicDate.geo_fence.longitude.Replace(",", "."));
-                      //鑷姩鍖栭厤缃緭鍏ユ潯浠�<鍦扮悊鍥存爮鍗婂緞><鍗曚綅锛屽叕閲屻�佸崈绫�.绫�>
-                      int radius = int.Parse(logicDate.geo_fence.radius);
-                      //璁$畻2涓粡绾害涔嬮棿鐨勮窛绂�
-                      int r = Infrastructure.Service.Helper.CalculatedDistance.Distance(out_lat, out_lng, lat, lon);
-                      //瀹氫箟涓�涓眬閮ㄥ彉閲�
-                      string direction = string.Empty;
-                      //涓ょ偣璺濈灏忎簬閰嶇疆璺濈<鏃㈣嚜鍔ㄥ寲閰嶇疆杈撳叆鏉′欢鍦扮悊鍥存爮鍗婂緞>,璇存槑杩涘叆鍖哄煙
-                      if (r < radius)
+                            //鑷姩鍖栭厤缃緭鍏ユ潯浠剁含搴�
+                            double lat = Convert.ToDouble(logicDate.geo_fence.latitude.Replace(",", "."));
+                            //鑷姩鍖栭厤缃緭鍏ユ潯浠剁粡搴�
+                            double lon = Convert.ToDouble(logicDate.geo_fence.longitude.Replace(",", "."));
+                            //鑷姩鍖栭厤缃緭鍏ユ潯浠�<鍦扮悊鍥存爮鍗婂緞><鍗曚綅锛屽叕閲屻�佸崈绫�.绫�>
+                            int radius = int.Parse(logicDate.geo_fence.radius);
+                            //璁$畻2涓粡绾害涔嬮棿鐨勮窛绂�
+                            int r = Infrastructure.Service.Helper.CalculatedDistance.Distance(out_lat, out_lng, lat, lon);
+                            //瀹氫箟涓�涓眬閮ㄥ彉閲�
+                            string direction = string.Empty;
+                            //涓ょ偣璺濈灏忎簬閰嶇疆璺濈<鏃㈣嚜鍔ㄥ寲閰嶇疆杈撳叆鏉′欢鍦扮悊鍥存爮鍗婂緞>,璇存槑杩涘叆鍖哄煙
+                            if (r * 1000 < radius)
                             {
-                          //鍒拌揪鏌愬湴
-                          direction = "arrive";
+                                //鍒拌揪鏌愬湴
+                                direction = "arrive";
                             }
                             else
                             {
-                          //绂诲紑
-                          direction = "leave";
+                                //绂诲紑
+                                direction = "leave";
                             }
-                      ///閬嶅巻缂撳瓨鍒楄〃<涓嶄负绌鸿鏄庢暟鎹凡缁忔帹閫佽繃锛屼笉鍐嶆帹閫�>
-                      var isPush = pushList.Find((o) => o.homeId == HomeId && o.userId == UserInfo.Current.ID && o.userLogicId == logicDate.userLogicId && o.arriveOnLeave == direction);
+                            ///閬嶅巻缂撳瓨鍒楄〃<涓嶄负绌鸿鏄庢暟鎹凡缁忔帹閫佽繃锛屼笉鍐嶆帹閫�>
+                            var isPush = pushList.Find((o) => o.homeId == HomeId && o.userId == UserInfo.Current.ID && o.userLogicId == logicDate.userLogicId && o.arriveOnLeave == direction);
                             if (isPush == null)
                             {
-                          //鎺ㄩ�佺粰浜戠鏄惁鎴愬姛
-                          bool push = Send.GeoFenceStateReport(logicDate.userLogicId, logicDate.sid, direction);
+                                //鎺ㄩ�佺粰浜戠鏄惁鎴愬姛
+                                bool push = Send.Current.GetFenceStateReport(logicDate.userLogicId, logicDate.sid, direction);
                                 if (push)
                                 {
-                              ///娣诲姞鍒版帹閫佸垪琛�
-                              pushList.Add(new Push
+                                    ///娣诲姞鍒版帹閫佸垪琛�
+                                    pushList.Add(new Push
                                     {
                                         homeId = HomeId,
                                         userId = UserInfo.Current.ID,
@@ -1008,6 +1200,46 @@
         /// 鎺ㄩ�佸垪琛�<杩欓噷鏁版嵁宸茬粡鎺ㄩ�佽繃>
         /// </summary>
         private static List<Push> pushList = new List<Push>();
+        /// <summary>
+        /// 鑾峰彇妯℃嫙鐨勮澶囧垪琛�
+        /// </summary>
+        /// <param name="isBool">鏄惁寮�鍚�</param>
+        /// <returns></returns>
+        private List<Entity.Function> GetTestDevice(ref List<HDL_ON.Entity.Function> list, bool isBool)
+        {
+            if (isBool)
+            {
+                //妯℃嫙璁惧
+                var functions = new List<Function> {
+                 //new Entity.Function { sid = "1234567890", name = "瓒呭0娉紶鎰熷櫒", spk = Entity.SPK.SensorUtrasonic },
+                 // new Entity.Function { sid = "1234567891", name = "娓╁害浼犳劅鍣�", spk = Entity.SPK.SensorTemperature },
+                 //  new Entity.Function { sid = "1234567892", name = "婀垮害浼犳劅鍣�", spk = Entity.SPK.SensorHumidity },
+                    //new Entity.Function { sid = "12345678933456", name = "闂ㄩ攣", spk = Entity.SPK.DoorLock },
+                    //  new Entity.Function { sid = "1234567895444", name = "瑙嗛闂ㄩ攣", spk = Entity.SPK.VideoDoorLock },
+                      //new Entity.Function { sid = "12345678968888", name = "浜轰綋瀛樺湪浼犳劅鍣�", spk = Entity.SPK.SensorPirHold },
+                      new Entity.Function { sid = "12345678968888", name = "娴嬭瘯鐚溂", spk = Entity.SPK.Peephole },
+                      new Entity.Function { sid = "12345678968889", name = "娴嬭瘯钀ょ煶鎽勫儚澶�", spk = Entity.SPK.Ev_Ipcam },
+                      //  new Entity.Function { sid = "1234567897", name = "姣背娉紶鎰熷櫒1", spk = Entity.SPK.SenesorMegahealth2 },
+                      // new Entity.Function { sid = "1234567899", name = "闂ㄧ浼犳劅鍣�", spk = Entity.SPK.SensorDoorWindow },
+                      //  new Entity.Function { sid = "12345678991234", name = "HDL鏈烘鎵�", spk = Entity.SPK.MechanicalArm },
+                      //    new Entity.Function { sid = "123456789912345", name = "娴锋浖鏈烘鎵�", spk = Entity.SPK.MechanicalArm },
+                              new Entity.Function { sid = "12345678991234566844", name = "澶у崕鎽勫儚澶�", spk = Entity.SPK.IpCam_Imou },
+                                 new Entity.Function { sid = "12345678991234567", name = "RGB", spk = Entity.SPK.LightRGB },
+                                  new Entity.Function { sid = "123456789912345678", name = "RGBW", spk = Entity.SPK.LightRGBW },
+            };
+                foreach (var function in functions)
+                {
+                    var device = list.Find((o) => { return o.sid == function.sid; });
+                    if (device == null)
+                    {
+                        list.Add(function);
+                    }
+                }
+
+            }
+            return list;
+
+        }
 
     }
     public class Push

--
Gitblit v1.8.0