From ea0b1e8e5f43c5fd0a7d479e25ede3b8cbea464a Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期一, 02 十二月 2024 17:17:19 +0800
Subject: [PATCH] tcp;可视对讲;

---
 HDL_ON/Entity/Function/Function.cs |  231 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 186 insertions(+), 45 deletions(-)

diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index e8a5b40..edcda72 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -76,7 +76,8 @@
                 DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯
                 return startTime.AddMilliseconds(Convert.ToDouble(time_stamp)).ToString("s");
             }
-            catch {
+            catch
+            {
                 return DateTime.MinValue.ToString("s");
             }
         }
@@ -145,20 +146,34 @@
         /// <summary>
         /// 璁剧疆灞炴�х姸鎬�
         /// </summary>
-        /// <param name="key"></param>
-        /// <param name="value"></param>
+        /// <param name="setKey"></param>
+        /// <param name="setValues"></param>
         /// <returns>淇敼缁撴灉</returns>
-        public bool SetAttrState(string key, object value)
+        public bool SetAttrState(string setKey, object setValues)
         {
-            var attr = attributes.Find((s) => s.key == key);
+            var attr = attributes.Find((s) => s.key == setKey);
             if (attr == null)
             {
+                switch (setKey)
+                {
+                    case FunctionAttributeKey.CoolTemperatrue:
+                    case FunctionAttributeKey.HeatTemperatrue:
+                    case FunctionAttributeKey.AutoTemperatrue:
+                    case FunctionAttributeKey.DehumiTemperatrue:
+                        attributes.Add(new FunctionAttributes()
+                        {
+                            key = setKey,
+                            state = setValues.ToString(),
+                            curValue = setValues.ToString(),
+                        });
+                        return true;
+                }
                 return false;
             }
             else
             {
-                attr.state = value.ToString();
-                attr.curValue = value.ToString();
+                attr.state = setValues.ToString();
+                attr.curValue = setValues.ToString();
             }
             return true;
         }
@@ -199,12 +214,14 @@
                         iconPath = "airFreshjinmao";
                         break;
                     case SPK.HvacAC:
+                    case SPK.HvacAcPanel:
                         iconPath = "acstandard";
                         break;
                     case SPK.HvacFan:
                         iconPath = "electricalfan";
                         break;
                     case SPK.HvacFloorHeat:
+                    case SPK.HvacFloorHeatPanel:
                         iconPath = "floorHeatstandard";
                         break;
                     case SPK.ElectricTuyaFan2:
@@ -248,7 +265,6 @@
         [Newtonsoft.Json.JsonIgnore]
         public Dictionary<string, byte> Fh_Mode_Temp = new Dictionary<string, byte>();
         #endregion
-
 
         #region base info    
         public string sid = "0301011234567801012301230123";
@@ -296,6 +312,11 @@
         /// 璁惧spk
         /// </summary>
         public string spk = "";
+        /// <summary>
+        /// 鎵╁睍淇℃伅
+        /// 瀛楃涓�
+        /// </summary>
+        public string extend = "";
 
         private string _SpkCategory = string.Empty;
         /// <summary>
@@ -455,10 +476,11 @@
         public bool collect = false;
 
         private bool _online;
-        public bool online {
+        public bool online
+        {
             get
             {
-                if (spk == SPK.AirSwitchP3|| spk == SPK.ElectricalTvHisense)
+                if (spk == SPK.AirSwitchP3 || spk == SPK.ElectricalTvHisense)
                 {
                     return _online;
                 }
@@ -522,10 +544,6 @@
 
         #endregion
 
-
-        //public void 
-
-
         /// <summary>
         /// 寤舵椂
         /// </summary>
@@ -556,7 +574,7 @@
                     }
 
                     break;
-                    
+
             }
             return text;
         }
@@ -642,7 +660,8 @@
 
             new System.Threading.Thread(() =>
             {
-                if (spk == SPK.GroupControl) {
+                if (spk == SPK.GroupControl)
+                {
                     var groupControl = FunctionList.List.groupControls.Find((obj) => obj.sid == sid);
                     if (collect)
                     {
@@ -664,21 +683,18 @@
                         result = ApiUtlis.Ins.HttpRequest.CancelCollectDevice(deviceId).Code;
                     }
                 }
-                //鎻愮ず閿欒
                 if (result != StateCode.SUCCESS)
                 {
                     Application.RunOnMainThread(() =>
                     {
-                        collect = !collect;
                         IMessageCommon.Current.ShowErrorInfoAlter(result);
                     });
-                } else
-                {
-                    Application.RunOnMainThread(() =>
-                    {
-                        UI.HomePage.RefreshFunctionView();
-                    });
                 }
+                Application.RunOnMainThread(() =>
+                {
+                    this.SaveFunctionFile();
+                    UI.HomePage.RefreshFunctionView();
+                });
             })
             { IsBackground = true }.Start();
         }
@@ -773,7 +789,7 @@
         /// </summary>
         public async void UpdataRoomIds()
         {
-            new System.Threading.Thread( () =>
+            new System.Threading.Thread(() =>
             {
                 var pack = ApiUtlis.Ins.HttpRequest.UpdataDevcieBindRoomInfo(this);
                 //鐩存帴淇濆瓨鏈湴锛�
@@ -913,12 +929,12 @@
 
             foreach (var attr in list)
             {
-                if(attr.key == FunctionAttributeKey.ColorfulBegin || attr.key == FunctionAttributeKey.ColorfulEnd || attr.key == FunctionAttributeKey.ColorfulTime)
+                if (attr.key == FunctionAttributeKey.ColorfulBegin || attr.key == FunctionAttributeKey.ColorfulEnd || attr.key == FunctionAttributeKey.ColorfulTime)
                 {
                     continue;
                 }
                 //绐楀笜鍚屾椂鍙戦�佸紑鍏宠窡鐧惧垎姣斾細鏈夐棶棰橈紝
-                if(spk == SPK.CurtainRoller || spk == SPK.CurtainTrietex || spk == SPK.CurtainDream)
+                if (spk == SPK.CurtainRoller || spk == SPK.CurtainTrietex || spk == SPK.CurtainDream)
                 {
                     if (attr.key == FunctionAttributeKey.OnOff)
                     {
@@ -927,7 +943,8 @@
                             continue;
                         }
                     }
-                }else if (spk == SPK.GroupControl)
+                }
+                else if (spk == SPK.GroupControl)
                 {
                     sFunc.type = "5";
                 }
@@ -1029,7 +1046,7 @@
                                     }
                                 }
                             }
-                            else if(attr.key == "security")
+                            else if (attr.key == "security")
                             {
                                 attr.curValue = "false";
                             }
@@ -1046,15 +1063,25 @@
                             {
                                 vv = 26;
                             }
-                            sFunc.status.Add(new SceneFunctionStatus() {
+                            sFunc.status.Add(new SceneFunctionStatus()
+                            {
                                 UintString = attr.unit,
-                                key = attr.key, value = Convert.ToInt32(vv).ToString(), max = attr.max, min = attr.min }) ;
+                                key = attr.key,
+                                value = Convert.ToInt32(vv).ToString(),
+                                max = attr.max,
+                                min = attr.min
+                            });
                         }
                         else
                         {
-                            sFunc.status.Add(new SceneFunctionStatus() {
+                            sFunc.status.Add(new SceneFunctionStatus()
+                            {
                                 UintString = attr.unit,
-                                key = attr.key, value = attr.curValue.ToString(), max = attr.max, min = attr.min });
+                                key = attr.key,
+                                value = attr.curValue.ToString(),
+                                max = attr.max,
+                                min = attr.min
+                            });
                         }
                         break;
                 }
@@ -1272,7 +1299,7 @@
         /// <summary>
         /// 灞炴�у崟浣�
         /// </summary>
-        public string unit=string.Empty;
+        public string unit = string.Empty;
     }
 
     /// <summary>
@@ -1280,7 +1307,45 @@
     /// </summary>
     public static class FunctionAttributeKey
     {
+        #region 绌鸿皟bus灞炴��
+        /// <summary>
+        /// 鍒跺喎妯″紡娓╁害
+        /// </summary>
+        public const string CoolTemperatrue = "CoolTemperatrue";
+        /// <summary>
+        /// 鍒剁儹妯″紡娓╁害
+        /// </summary>
+        public const string HeatTemperatrue = "HeatTemperatrue";
+        /// <summary>
+        /// 鑷姩妯″紡娓╁害
+        /// </summary>
+        public const string AutoTemperatrue = "AutoTemperatrue";
+        /// <summary>
+        /// 闄ゆ箍妯″紡娓╁害
+        /// </summary>
+        public const string DehumiTemperatrue = "DehumiTemperatrue";
+        #endregion
+
+        #region 绌鸿皟bus灞炴��
+        /// <summary>
+        /// [4]鏅�氾細璁剧疆娓╁害(鎽勬皬0-100锛屽崕姘�32-212)/鍔熺巼鍊�(0-10) (1byte)  
+        /// </summary>
+        public const string NormalTemperatrue = "NormalTemperatrue";
+        /// <summary>
+        /// [5]鐧藉ぉ锛氳缃俯搴�(鎽勬皬0-100锛屽崕姘�32-212)/鍔熺巼鍊�(0-10) (1byte) 
+        /// </summary>
+        public const string DayTemperatrue = "DayTemperatrue";
+        /// <summary>
+        /// [6]澶滄櫄锛氳缃俯搴�(鎽勬皬0-100锛屽崕姘�32-212)/鍔熺巼鍊�(0-10) (1byte)
+        /// </summary>
+        public const string NightTemperatrue = "NightTemperatrue";
+        /// <summary>
+        /// [7]绂诲紑锛氳缃俯搴�(鎽勬皬0-100锛屽崕姘�32-212)/鍔熺巼鍊�(0-10) (1byte)
+        /// </summary>
+        public const string AwayTemperatrue = "AwayTemperatrue";
         #region 涓夌浉绌哄紑灞炴��
+
+
         /// <summary>
         /// A鐩稿姛鐜�
         /// </summary>
@@ -1350,6 +1415,7 @@
         /// </summary>
         public const string ElectricityC = "electricity_c";
 
+        #endregion
         #endregion
 
 
@@ -1707,7 +1773,8 @@
                 try
                 {
                     return Convert.ToByte(loopId, 16);
-                } catch
+                }
+                catch
                 {
                     return 0;
                 }
@@ -1721,6 +1788,20 @@
     /// </summary>
     public static class SPK
     {
+        /// <summary>
+        /// 鏈煡SPK
+        /// (鑷畾涔�)
+        /// </summary>
+        public const string NULL = "NULL";
+        /// <summary>
+        /// 鐢垫
+        /// </summary>
+        public const string Elevator = "Elevator";
+        /// <summary>
+        /// 瑗垮ⅷ鍙瀵硅闂ㄥ彛鏈�
+        /// (鑷畾涔�)
+        /// </summary>
+        public const string LinphoneXiMo = "door.gate";
         /// <summary>
         /// 缇ゆ帶锛堣嚜瀹氫箟锛�
         /// </summary>
@@ -1736,7 +1817,7 @@
         /// <summary>
         /// 澶у崕鎽勫儚澶�
         /// </summary>
-        //public const string IpCam_Imou = "security.ipcam.imou";
+        public const string IpCam_Imou = "security.ipcam.imou";
         /// <summary>
         /// 鏈烘鎵�
         /// </summary>
@@ -1751,12 +1832,22 @@
         /// 瀛愭帶
         /// </summary>
         public const string AcstSub = "acst.sub";
+        /// <summary>
+        /// 鐑按鍣�
+        /// 閲戣寕
+        /// </summary>
+        public const string WaterHeaterJinmao = "electrical.water_heater.jinmao";
+        /// <summary>
+        /// 閫嗗彉鍣�/鏂拌兘婧�
+        /// 閲戣寕
+        /// </summary>
+        public const string InverterJinmao = "energy.inverter.jinmao";
 
         /// <summary>
         /// 闂ㄩ攣
         /// </summary>
         public const string DoorLock = "security.door";
-        
+
         /// <summary>
         /// 闂ㄩ攣spk鍒楄〃
         /// </summary>
@@ -1767,19 +1858,42 @@
             list.Add(DoorLock);
             return list;
         }
-        
+
+
+        /// <summary>
+        /// 鐚溂(鏃pk)
+        /// </summary>
+        public const string Peephole = "peephole";
 
         /// <summary>
         /// 鐚溂(鏂皊pk 鏆傛椂娌$敤)
         /// </summary>
         //public const string PeepholeEz = "security.peephole.ez";
         /// <summary>
+        /// 钀ょ煶瑙嗛闂ㄩ攣
+        /// </summary>
+        public const string VideoDoorLock = "security.door.ezviz";
+        /// <summary>
+        /// 钀ょ煶鎽勫儚澶�
+        /// </summary>
+        public const string Ev_Ipcam = "security.ipcam.ez";
+        /// <summary>
         /// 褰遍煶涓帶
         /// </summary>
         public const string AvZkAiks = "av.zk.aiks";
-       
-      
-      
+
+        /// <summary>
+        /// 钀ょ煶瑙嗛闂ㄩ攣spk鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> GetVideoDoorLockSPKList()
+        {
+            var list = new List<string>();
+            list.Add(VideoDoorLock);
+            return list;
+        }
+
+
         /// <summary>
         /// 褰遍煶涓帶spk鍒楄〃
         /// </summary>
@@ -1793,7 +1907,17 @@
             return list;
         }
 
-     
+        /// <summary>
+        /// 钀ょ煶鎽勫儚澶磗pk鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> GetEvIpcamSPKList()
+        {
+            var list = new List<string>();
+            list.Add(Ev_Ipcam);
+            return list;
+        }
+
         #region 鐏厜
         /// <summary>
         /// 锛堝紑鍏崇伅锛�
@@ -1884,6 +2008,10 @@
         /// </summary>
         public const string HvacAC = "hvac.ac";
         /// <summary>
+        /// 闈㈡澘绌鸿皟
+        /// </summary>
+        public const string HvacAcPanel = "hvac.ac_panel";
+        /// <summary>
         /// 姣涚粏绠$┖璋�
         /// </summaryc
         public const string HvacCac = "hvac.cac";
@@ -1897,6 +2025,7 @@
             var spkList = new List<string>();
             spkList.Add(AcStandard);
             spkList.Add(HvacAC);
+            spkList.Add(HvacAcPanel);
             spkList.Add(AcIr);
             spkList.Add(HvacCac);
             return spkList;
@@ -1912,6 +2041,10 @@
         /// 鍦版殩
         /// </summary>
         public const string HvacFloorHeat = "hvac.floorHeat";
+        /// <summary>
+        /// 闈㈡澘鍦版殩
+        /// </summary>
+        public const string HvacFloorHeatPanel = "hvac.floorHeat_panel";
 
         /// <summary>
         /// 鍦扮儹spk鍒楄〃
@@ -1921,7 +2054,7 @@
         {
             var spkList = new List<string>();
             spkList.Add(FloorHeatStandard);
-            spkList.Add(HvacFloorHeat);
+            spkList.Add(HvacFloorHeat); spkList.Add(HvacFloorHeatPanel);
             return spkList;
         }
         #endregion
@@ -1960,6 +2093,14 @@
         #endregion
 
         #region 鑳芥簮
+        /// <summary>
+        /// 閫嗗彉鍣�
+        /// </summary>
+        public const string Inverter = "energy.inverter";
+        /// <summary>
+        /// 涓夌浉閫嗗彉鍣�
+        /// </summary>
+        public const string InverterRst = "energy.inverter_rst";
         /// <summary>
         /// 鑳芥簮妯″潡
         /// </summary>
@@ -2201,7 +2342,7 @@
             spkList.Add(SensorEnvironment); spkList.Add(SensorEnvironmentHailin);
             spkList.Add(SensorEnvironment2);
             spkList.Add(SensorEnvironment3);
-         
+
             return spkList;
         }
 
@@ -2360,7 +2501,7 @@
         /// <summary>
         /// HDL鍙瀵硅
         /// </summary>
-        public const string doorgate="door.gate";
+        public const string doorgate = "door.gate";
         #endregion
 
         #region 绗笁鏂箂pk鍒楄〃

--
Gitblit v1.8.0