From 7232642ff48a7fbde2018cde652f3e771fa58025 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 27 一月 2021 14:32:55 +0800
Subject: [PATCH] 20200127-英文版处理

---
 HDL_ON/Entity/Function/Function.cs |  411 +++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 330 insertions(+), 81 deletions(-)

diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index ddafe50..ee358af 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -1,5 +1,7 @@
 锘縰sing System;
 using System.Collections.Generic;
+using HDL_ON.Common;
+using HDL_ON.DAL.Server;
 using HDL_ON.DriverLayer;
 using Shared;
 
@@ -33,25 +35,25 @@
 
         #region base info
         /// <summary>
-        /// HDL缁熶竴鍗忚鏍煎紡锛�14bytes
-        /// 涓句緥锛� 鏉ユ簮   鍘傚晢浠g爜 閫氳鏂瑰紡  浜у搧鏃堕棿鎴�   浜у搧绫诲埆 鐗╂ā鍨嬬被  閫氶亾鍙�   澶у皬绫诲埆
+        /// HDL缁熶竴鍗忚鏍煎紡锛�14bytes
+        /// 涓句緥锛� 鏉ユ簮   鍘傚晢浠g爜 閫氳鏂瑰紡  浜у搧鏃堕棿鎴�   浜у搧绫诲埆 鐗╂ā鍨嬬被  閫氶亾鍙�   澶у皬绫诲埆
         ///       1byte	1byte	1byte	  4byte	    1byte	2byte   2byte   2byte
-        /// 鏉ユ簮锛�00	榛樿鍘熺敓鎬佺郴缁熸暟鎹� 銆�01	缃戝叧鎴栬�呭叾浠朅璁惧銆�02	璋冭瘯杞欢銆�03	APP搴旂敤绋嬪簭銆�04	绗笁鏂圭綉鍏虫垨鑰呭钩鍙�
-        /// 鍘傚晢浠g爜锛�01	HDL
+        /// 鏉ユ簮锛�00	榛樿鍘熺敓鎬佺郴缁熸暟鎹� 銆�01	缃戝叧鎴栬�呭叾浠朅璁惧銆�02	璋冭瘯杞欢銆�03	APP搴旂敤绋嬪簭銆�04	绗笁鏂圭綉鍏虫垨鑰呭钩鍙�
+        /// 鍘傚晢浠g爜锛�01	HDL
         /// 閫氳鏂瑰紡锛�01	HDL Bus銆�02	Zigbee銆�03 KNX銆�04 Z-Wave
-        /// 浜у搧鏃堕棿鎴筹細4bytes	浠�2020骞�1鏈�1鏃ョ畻鍑虹殑鏃堕棿鎴�0.1s涓哄崟浣� 
-        /// 浜у搧绫诲埆锛�01	璋冨厜鍣ㄣ��02 缁х數鍣ㄣ��03	骞叉帴鐐规ā鍧椼��04	浼犳劅鍣ㄣ��05 闈㈡澘
-        /// 鐗╂ā鍨嬬被鍨嬶細
-        ///     01	寮�鍏崇被锛�01 寮�鍏炽��02 鎻掑骇銆�03	
-        ///     02	鐓ф槑锛� 01 寮�鍏炽��02	璋冨厜銆�03	鑹叉俯銆�04	LED
-        ///     03	閬槼锛� 01	绐楀笜鐢垫満銆�02 鐧惧彾绐椼��03 寮�鍚堝笜銆�04 鍗峰笜
+        /// 浜у搧鏃堕棿鎴筹細4bytes	浠�2020骞�1鏈�1鏃ョ畻鍑虹殑鏃堕棿鎴�0.1s涓哄崟浣� 
+        /// 浜у搧绫诲埆锛�01	璋冨厜鍣ㄣ��02 缁х數鍣ㄣ��03	骞叉帴鐐规ā鍧椼��04	浼犳劅鍣ㄣ��05 闈㈡澘
+        /// 鐗╂ā鍨嬬被鍨嬶細
+        ///     01	寮�鍏崇被锛�01 寮�鍏炽��02 鎻掑骇銆�03	
+        ///     02	鐓ф槑锛� 01 寮�鍏炽��02	璋冨厜銆�03	鑹叉俯銆�04	LED
+        ///     03	閬槼锛� 01	绐楀笜鐢垫満銆�02 鐧惧彾绐椼��03 寮�鍚堝笜銆�04 鍗峰笜
         ///     04	鎭掓俯鍣細01 绌鸿皟銆�02 鍦版殩銆�03 姣涚粏绌鸿皟
         ///     05	鏂伴		
         ///     06	褰遍煶		
         ///     07	闊充箰		
         ///     08	鑳芥簮		
         ///     09	瀹夐槻
-        /// 澶х被鍒�	1bytes	锛堥鐣欙級
+        /// 澶х被鍒�	1bytes	锛堥鐣欙級
         /// 灏忕被鍒�	1byte	锛堥鐣欙級
         /// </summary>
         public string sid = "0301011234567801012301230123";
@@ -68,39 +70,82 @@
         /// 璁惧spk
         /// </summary>
         public string spk = "";
-        /// <summary>
-        /// 鍔熻兘绫诲埆
-        /// 濡傦細绌鸿皟绫汇�佺伅鍏夌被銆佺獥甯樼被
-        /// </summary>
-        public FunctionCategory functionCategory
-        {
-            get
-            {
-                try
-                {
-                    var _functionCategoryString = sid.Substring(16, 2);
-                    var _functionCategory = Convert.ToInt32(_functionCategoryString, 16);
-                    return (FunctionCategory)Enum.ToObject(typeof(FunctionCategory), _functionCategory);
-                }
-                catch (Exception ex)
-                {
-                    MainPage.Log($"get FunctionCategory error : {ex.Message}");
-                    return FunctionCategory.UnKown;
-                }
-            }
-        }
+        ///// <summary>
+        ///// 鍔熻兘绫诲埆
+        ///// 濡傦細绌鸿皟绫汇�佺伅鍏夌被銆佺獥甯樼被
+        ///// </summary>
+        //public FunctionCategory Spk_Prefix
+        //{
+        //    get
+        //    {
+        //        try
+        //        {
+        //            var _functionCategoryString = sid.Substring(16, 2);
+        //            var _functionCategory = Convert.ToInt32(_functionCategoryString, 16);
+        //            return (FunctionCategory)Enum.ToObject(typeof(FunctionCategory), _functionCategory);
+        //        }
+        //        catch (Exception ex)
+        //        {
+        //            MainPage.Log($"get FunctionCategory error : {ex.Message}");
+        //            return FunctionCategory.UnKown;
+        //        }
+        //    }
+        //}
+
         ///// <summary>
         ///// 鍔熻兘绫诲瀷
         ///// </summary>
-        public FunctionType functionType
+        //public FunctionType spk
+        //{
+        //    get
+        //    {
+        //        var _functionTypeString = sid.Substring(16, 4);
+        //        return (FunctionType)Enum.ToObject(typeof(FunctionType), Convert.ToInt32(_functionTypeString, 16));
+        //    }
+        //}
+
+        string spk_Prefix;
+        /// <summary>
+        /// spk鍓嶇紑
+        /// 澶х被
+        /// 鍔熻兘绫诲埆
+        /// 濡傦細绌鸿皟绫汇�佺伅鍏夌被銆佺獥甯樼被
+        /// </summary>
+        public string Spk_Prefix
         {
             get
             {
-                var _functionTypeString = sid.Substring(16, 4);
-                return (FunctionType)Enum.ToObject(typeof(FunctionType), Convert.ToInt32(_functionTypeString, 16));
-
+                if (string.IsNullOrEmpty(spk_Prefix))
+                {
+                    spk_Prefix = spk.Split(".")[0];
+                }
+                return spk_Prefix;
             }
         }
+        string spk_Suffix;
+        ///// <summary>
+        ///// spk鍚庣紑
+        ///// 灏忕被
+        ///// 鍔熻兘绫诲瀷
+        ///// </summary>
+        //public string spk
+        //{
+        //    get
+        //    {
+        //        if (string.IsNullOrEmpty(spk_Suffix))
+        //        {
+        //            try
+        //            {
+        //                spk_Suffix = spk.Split(".")[1];
+        //            }
+        //            catch
+        //            {
+        //                spk_Suffix = "";
+        //            }
+        //        }
+        //        return spk_Suffix;
+        //    }
+        //}
 
         /// <summary>
         /// A鍗忚鍔熻兘鐨勭壒鎬�
@@ -162,7 +207,7 @@
             {
                 if (_trait_on_off == null)
                 {
-                    _trait_on_off = attributes.Find((obj) => obj.key == "on_off");
+                    _trait_on_off = attributes.Find((obj) => obj.key == FunctionAttributeKey.OnOff);
                     //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
                     if (_trait_on_off == null)
                     {
@@ -173,21 +218,21 @@
                             max = 1,
                             min = 0,
                         };
+                        _trait_on_off.curValue = "off";
                     }
-                    _trait_on_off.curValue = "on";
+                }
+                if(_trait_on_off.curValue.ToString() != "on"&& _trait_on_off.curValue.ToString() != "off" && _trait_on_off.curValue.ToString() != "stop")
+                {
+                    _trait_on_off.curValue = "off";
                 }
                 return _trait_on_off;
             }
-            //set
-            //{
-            //    _trait_on_off = value;
-            //}
         }
 
         /// <summary>
         /// 浣跨敤娆℃暟
         /// </summary>
-        public double usageCount = 0;
+        public double controlCounter = 0;
         /// <summary>
         /// 浣跨敤棰戠巼
         /// </summary>
@@ -195,13 +240,73 @@
         {
             get
             {
-                return usageCount / 7;
+                return controlCounter / 7;
             }
         }
         /// <summary>
         /// 鍥哄畾鐨勫簭鍙�
         /// </summary>
         public int fixedSerialNumber = int.MaxValue;
+
+        /// <summary>
+        /// 鏀惰棌鍔熻兘
+        /// </summary>
+        public void CollectFunction()
+        {
+            var result = "";
+            //var waitPage = new Loading();
+
+            new System.Threading.Thread(() =>
+            {
+                if (collect)
+                {
+                    result = ApiUtlis.Ins.HttpRequest.CollectDevice(deviceId).Code;
+                }
+                else
+                {
+                    result = ApiUtlis.Ins.HttpRequest.CancelCollectDevice(deviceId).Code;
+                }
+                //鎻愮ず閿欒
+                if (result != StateCode.SUCCESS)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        collect = !collect;
+                        IMessageCommon.Current.ShowErrorInfoAlter(result);
+                    });
+                }
+            })
+            { IsBackground = true }.Start();
+        }
+        /// <summary>
+        /// 缂栬緫鍔熻兘缁戝畾鎴块棿淇℃伅
+        /// </summary>
+        public void EditBindRoomInfo(string roomId)
+        {
+            var result = "";
+
+            new System.Threading.Thread(() =>
+            {
+                if (collect)
+                {
+                    result = ApiUtlis.Ins.HttpRequest.BindDeviceToRoom(new List<string>() { deviceId }, new List<string>() { roomId }).Code;
+                }
+                else
+                {
+                    result = ApiUtlis.Ins.HttpRequest.UnbindDeviceToRoom(deviceId,roomId);
+                }
+                //鎻愮ず閿欒
+                if (result != StateCode.SUCCESS)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        collect = !collect;
+                        IMessageCommon.Current.ShowErrorInfoAlter(result);
+                    });
+                }
+            })
+            { IsBackground = true }.Start();
+        }
 
         public string GetBusId()
         {
@@ -231,11 +336,11 @@
                 {
                     roomNameList += ",";
                 }
-                roomNameList += findRoom.floorName + findRoom.roomName;
+                roomNameList += findRoom.floorName +"-"+ findRoom.roomName;
             }
-            if (roomNameList == "" && functionType == FunctionType.Scene)
+            if (roomNameList == "" )
             {
-                roomNameList = Language.StringByID(StringId.WholeHouseScene);
+                roomNameList = Language.StringByID(StringId.WholeZone);
             }
             return roomNameList;
         }
@@ -250,31 +355,104 @@
                 return "FunctionData_" + sid;
             }
         }
+
         /// <summary>
-        /// 淇濆瓨鍔熻兘鏁版嵁
+        /// 淇濆瓨鍔熻兘鏂囦欢
         /// </summary>
-        public void SaveFunctionData(bool upSevser)
+        public void SaveFunctionFile()
         {
-            if (upSevser)
+            var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
+            FileUtlis.Files.WriteFileByBytes(savePath, ssd);
+        }
+        /// <summary>
+        /// 淇濆瓨鎴块棿缁戝畾淇℃伅
+        /// </summary>
+        public void UpdataRoomIds()
+        {
+            new System.Threading.Thread(() =>
             {
-                var pm = new DAL.Server.HttpServerRequest();
-                var pack = pm.UpdataDevcieInfo(this);
-                if (pack.Code == DAL.Server.StateCode.SUCCESS)
+                var pack = ApiUtlis.Ins.HttpRequest.UpdataDevcieBindRoomInfo(this);
+                //鐩存帴淇濆瓨鏈湴锛�
+                SaveFunctionFile();
+                if (pack.Code == StateCode.SUCCESS)
                 {
-                    var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
-                    Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd);
                 }
                 else
                 {
-                    Utlis.ShowTip(Language.StringByID(StringId.EditFunctionInfoFail) + "\r\nCode:" + pack.Code);
+                    IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
                 }
-            }
-            else
-            {
-                var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
-                Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd);
-            }
+            })
+            { IsBackground = true }.Start();
         }
+        /// <summary>
+        /// 鏇存柊鍔熻兘淇℃伅
+        /// </summary>
+        public void UpdataFuncitonInfo()
+        {
+            new System.Threading.Thread(() =>
+            {
+                var pm = new HttpServerRequest();
+                var pack = pm.UpdataDevcieInfo(this);
+                SaveFunctionFile();
+                if (pack.Code == StateCode.SUCCESS)
+                {
+                }
+                else
+                {
+                    IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
+                }
+            })
+            { IsBackground = true }.Start();
+        }
+        /// <summary>
+        /// 鏇存柊鍔熻兘鍚嶇О
+        /// </summary>
+        public void UpdataFunctionName()
+        {
+            new System.Threading.Thread(() =>
+            {
+                var pm = new HttpServerRequest();
+                var pack = pm.UpdataDevcieInfo(this);
+                SaveFunctionFile();
+                if (pack.Code == StateCode.SUCCESS)
+                {
+                }
+                else
+                {
+                    IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
+                }
+            })
+            { IsBackground = true }.Start();
+        }
+        /// <summary>
+        /// 淇濆瓨鍔熻兘鏁版嵁
+        /// </summary>
+        //public void SaveFunctionData(bool upSevser)
+        //{
+        //    if (upSevser)
+        //    {
+        //        new System.Threading.Thread(() =>
+        //        {
+        //            var pm = new HttpServerRequest();
+        //            var pack = pm.UpdataDevcieInfo(this);
+        //            if (pack.Code == StateCode.SUCCESS)
+        //            {
+        //                var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
+        //                FileUtlis.Files.WriteFileByBytes(savePath, ssd);
+        //            }
+        //            else
+        //            {
+        //                IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
+        //            }
+        //        })
+        //        { IsBackground = true }.Start();
+        //    }
+        //    else
+        //    {
+        //        var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
+        //        FileUtlis.Files.WriteFileByBytes(savePath, ssd);
+        //    }
+        //}
 
 
         /// <summary>
@@ -286,19 +464,37 @@
             var sFunc = new SceneFunction();
             foreach (var attr in attributes)
             {
-                if (attr.curValue.ToString() == "{}")
+                switch (attr.key)
                 {
-                    attr.curValue = "0";
-                }
-                if (attr.key == FunctionAttributeKey.SetTemp)
-                {
-                    double vv = 16;
-                    Double.TryParse(attr.curValue.ToString(),out vv);
-                    sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = Convert.ToInt32(vv).ToString() });
-                }
-                else
-                {
-                    sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = attr.curValue.ToString() });
+                    case FunctionAttributeKey.OnOff:
+                    case FunctionAttributeKey.Brightness:
+                    case FunctionAttributeKey.Mode:
+                    case FunctionAttributeKey.SetTemp:
+                    case FunctionAttributeKey.FanSpeed:
+                    case FunctionAttributeKey.Percent:
+                    //case FunctionAttributeKey.FadeTime:
+                        if (attr.curValue.ToString() == "{}")
+                        {
+                            if (attr.key == FunctionAttributeKey.OnOff)
+                            {
+                                attr.curValue = "off";
+                            }
+                            else
+                            {
+                                attr.curValue = "0";
+                            }
+                        }
+                        if (attr.key == FunctionAttributeKey.SetTemp)
+                        {
+                            double vv = 16;
+                            Double.TryParse(attr.curValue.ToString(), out vv);
+                            sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = Convert.ToInt32(vv).ToString() });
+                        }
+                        else
+                        {
+                            sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = attr.curValue.ToString() });
+                        }
+                        break;
                 }
             }
             sFunc.sid = this.sid;
@@ -343,6 +539,7 @@
             ApiAlinkControlActionObj aaao = new ApiAlinkControlActionObj();
             aaao.deviceId = this.deviceId;
             aaao.spk = this.spk;
+            aaao.bus = this.bus;
             foreach (var kv in keyValues)
             {
                 aaao.attributes.Add(new AlinkControlAttributes()
@@ -503,6 +700,10 @@
         /// 瀹ゅ唴娓╁害
         /// </summary>
         public const string IndoorTemp = "room_temp";
+        /// <summary>
+        /// value
+        /// </summary>
+        public const string Value = "value";
     }
     /// <summary>
     /// 璁惧鍔熻兘oid
@@ -618,11 +819,11 @@
         public const string SensorPir = "sensor.pir";
         /// <summary>
         /// 锛堥棬绐椾紶鎰熷櫒锛�
-        /// </summary>
+        /// </summary>
         public const string SensorDoorWindow = "sensor.doorwindow";
         /// <summary>
         /// 锛圥M2.5浼犳劅鍣級
-        /// </summary>
+        /// </summary>
         public const string SensorPm25 = "sensor.pm25";
         /// <summary>
         /// co2浼犳劅鍣�
@@ -638,20 +839,68 @@
         public const string SensorHumidity = "sensor.humidity";
         /// <summary>
         /// 锛堝共鎺ョ偣锛�
-        /// </summary>
-        public const string DryContact = "dryContact.standard";
+        /// </summary>
+        public const string DryContact = "dryContact.standard";
         /// <summary>
         /// 瀹剁數銆佹彃搴�
         /// </summary>
-        public const string ElectricSocket = "electrical.socket";
+        public const string ElectricSocket = "electrical.socket";
         /// <summary>
         /// 瀹剁數銆佺數瑙�
         /// </summary>
-        public const string ElectricTV = "electrical.tv";
+        public const string ElectricTV = "electrical.tv";
         /// <summary>
         /// 瀹剁數銆侀鎵�
         /// </summary>
         public const string ElectricFan = "electrical.fan";
+
     }
 
-}
\ No newline at end of file
+
+    /// <summary>
+    /// 鍔熻兘绫诲埆
+    /// </summary>
+    public static class FunctionCategory
+    {
+        /// <summary>
+        ///锛堢伅锛�
+        /// </summary>
+        public const string Light = "light";
+        /// <summary>
+        /// 锛堢獥甯橈級
+        /// </summary>
+        public const string Curtain = "curtain";
+        /// <summary>
+        /// 锛堢┖璋冿級
+        /// </summary>
+        public const string AC = "ac";
+        /// <summary>
+        /// 锛堝湴鐑級
+        /// </summary>
+        public const string FloorHeat = "floorHeat";
+        /// <summary>
+        /// 锛堟柊椋庯級
+        /// </summary>
+        public const string AirFresh = "airFresh";
+        /// <summary>
+        /// 锛堥煶涔愶級
+        /// </summary>
+        public const string Music = "music";
+        /// <summary>
+        /// 锛堜紶鎰熷櫒锛�
+        /// </summary>
+        public const string Sensor = "sensor";
+        /// <summary>
+        /// 锛堝共鎺ョ偣锛�
+        /// </summary>
+        public const string DryContact = "dryContact";
+        /// <summary>
+        /// 瀹剁數
+        /// </summary>
+        public const string Electric = "electrical";
+
+        //Music = 0x09,
+    }
+
+
+}

--
Gitblit v1.8.0