From b8cbf4a8b6910eefcb83b6d3a39e9b5b5a9cd79e Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 10 一月 2020 16:39:22 +0800
Subject: [PATCH] 2019.1.10

---
 ZigbeeApp/Shared/Common/Device.cs |  239 +++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 199 insertions(+), 40 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs
old mode 100755
new mode 100644
index acbcb17..90033c6
--- a/ZigbeeApp/Shared/Common/Device.cs
+++ b/ZigbeeApp/Shared/Common/Device.cs
@@ -113,7 +113,7 @@
             {
                 CommonDevice device = null;
                 //鍙嶅簭鍒楀寲涓烘寚瀹氱殑绫伙紝涓嶇劧鏁版嵁浼氫涪澶辫�屽鑷存棤娉曞己杞�
-                try 
+                try
                 {
                     device = CommonDevice.CommonDeviceByFilePath(file);
                 }
@@ -261,7 +261,7 @@
                 //娣诲姞缂撳瓨
                 this.AddDeviceToMemory(ref device);
 
-                //绉婚櫎瀛樺湪鐨勮澶囧唴瀛� 
+                //绉婚櫎瀛樺湪鐨勮澶囧唴瀛�
                 string maikey = this.GetDeviceMainKeys(device);
                 if (dicExist.ContainsKey(maikey) == true)
                 {
@@ -547,6 +547,8 @@
             {
                 //浠庢埧闂翠腑鍒犻櫎
                 Room.CurrentRoom.DeleteDevice(device);
+                //鍒犻櫎鎴戠殑鍠滅埍鐨勮澶�
+                Room.CurrentRoom.DeleteLoveDevice(device);
             }
 
             //鍒犻櫎缂撳瓨
@@ -725,11 +727,12 @@
         }
 
         /// <summary>
-        /// 鏍规嵁MAC鍦板潃,鑾峰彇鍏ㄩ儴鍥炶矾鐨勮澶囧璞�(宸茬粡鎺掑簭)
+        /// 鏍规嵁MAC鍦板潃,鑾峰彇鍏ㄩ儴鍥炶矾鐨勮澶囧璞�
         /// </summary>
         /// <param name="DeviceAddr">Mac鍦板潃</param>
+        /// <param name="sort">鏄惁鎺掑簭</param>
         /// <returns></returns>
-        public List<CommonDevice> GetDevicesByMac(string DeviceAddr)
+        public List<CommonDevice> GetDevicesByMac(string DeviceAddr, bool sort = true)
         {
             var list = new List<CommonDevice>();
             if (dicDeviceEpoint.ContainsKey(DeviceAddr) == false)
@@ -744,6 +747,11 @@
                     list.Add(device);
                 }
             }
+            if (sort == false)
+            {
+                return list;
+            }
+
             //鎺掑簭
             list.Sort((obj1, obj2) =>
             {
@@ -1040,10 +1048,21 @@
         /// <param name="listdevice">璁惧瀵硅薄</param>
         public void SetRealDeviceIconToControl(Button btnIcon, List<CommonDevice> listdevice)
         {
+            //鑾峰彇璁惧鐨勭湡瀹炲浘鐗�
+            string imagePath = this.GetRealDeviceIcon(listdevice);
+            btnIcon.UnSelectedImagePath = imagePath;
+        }
+
+        /// <summary>
+        /// 鑾峰彇璁惧鐨勭湡瀹炲浘鐗�
+        /// </summary>
+        /// <param name="listdevice">璁惧瀵硅薄</param>
+        public string GetRealDeviceIcon(List<CommonDevice> listdevice)
+        {
             //鑾峰彇瀹冨睘浜庝粈涔堢被鍨嬬殑璁惧
             var myDeviceType = this.GetMyDeviceEnumInfo(listdevice);
             string strConcrete = Enum.GetName(typeof(DeviceConcreteType), myDeviceType.ConcreteType);
-            
+
             //鍥剧墖鍏辨湁
             if (this.dicPictrueShard.ContainsKey(strConcrete) == true)
             {
@@ -1061,7 +1080,7 @@
                 if (arry.Length == 1)
                 {
                     //濡傛灉瀹冭嚜宸卞氨鏄叡閫氬浘鐗囩殑璇濓紝涓嶅啀澶勭悊
-                    return;
+                    return "RealDevice/CommonDevice.png";
                 }
                 imageFilePath = "RealDevice/" + arry[0] + ".png";
                 //濡傛灉瀹冭嚜宸辩殑鍏遍�氬浘鐗囪繕鏄笉瀛樺湪鐨勮瘽,鍒欑洿鎺ヤ娇鐢ㄦ墍鏈夎澶囩殑鍏遍�氬浘鐗�
@@ -1070,16 +1089,16 @@
                     imageFilePath = "RealDevice/CommonDevice.png";
                 }
             }
-            btnIcon.UnSelectedImagePath = imageFilePath;
+            return imageFilePath;
         }
 
         /// <summary>
-        /// 璁剧疆銆愯澶囨墍灞炵被鍨嬨�戠殑鍥炬爣鍒版寚瀹氱殑鎺т欢
+        /// 璁剧疆銆愯澶囩被鍨嬨�戠殑鍥炬爣鍒版寚瀹氱殑鎺т欢
         /// </summary>
         /// <param name="btnIcon">鎺т欢瀵硅薄</param>
         /// <param name="listdevice">璁惧瀵硅薄</param>
         /// <returns></returns>
-        public void SetDeviceBeloneIconToControl(Button btnIcon, List<CommonDevice> listdevice)
+        public void SetDeviceObjectIconToControl(Button btnIcon, List<CommonDevice> listdevice)
         {
             //鑾峰彇鑷畾涔夎澶囩被鍨�
             var myDeviceType = this.GetMyDeviceEnumInfo(listdevice);
@@ -1087,8 +1106,8 @@
             string imageUnSelectFilePath = string.Empty;
             string imageSelectFilePath = string.Empty;
 
-            //鑾峰彇銆愯澶囨墍灞炵被鍨嬨�戠殑鍥炬爣
-            this.GetDeviceBeloneIcon(myDeviceType.ConcreteType, ref imageUnSelectFilePath, ref imageSelectFilePath);
+            //鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣
+            this.GetDeviceObjectIcon(myDeviceType.ConcreteType, ref imageUnSelectFilePath, ref imageSelectFilePath);
 
             //璁剧疆鍥剧墖
             btnIcon.UnSelectedImagePath = imageUnSelectFilePath;
@@ -1096,29 +1115,29 @@
         }
 
         /// <summary>
-        /// 鑾峰彇銆愯澶囨墍灞炵被鍨嬨�戠殑鍥炬爣
+        /// 鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣
         /// </summary>
         /// <param name="listdevice">璁惧瀵硅薄</param>
         /// <param name="unSelectPath">鍥剧墖鍦板潃</param>
         /// <param name="selectPath">鍥剧墖鍦板潃</param>
         /// <returns></returns>
-        public void GetDeviceBeloneIcon(List<CommonDevice> listdevice, ref string unSelectPath, ref string selectPath)
+        public void GetDeviceObjectIcon(List<CommonDevice> listdevice, ref string unSelectPath, ref string selectPath)
         {
             //鑾峰彇鑷畾涔夎澶囩被鍨�
             var myDeviceType = this.GetMyDeviceEnumInfo(listdevice);
 
-            //鑾峰彇銆愯澶囨墍灞炵被鍨嬨�戠殑鍥炬爣
-            this.GetDeviceBeloneIcon(myDeviceType.ConcreteType, ref unSelectPath, ref selectPath);
+            //鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣
+            this.GetDeviceObjectIcon(myDeviceType.ConcreteType, ref unSelectPath, ref selectPath);
         }
 
         /// <summary>
-        /// 鑾峰彇銆愯澶囨墍灞炵被鍨嬨�戠殑鍥炬爣
+        /// 鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣
         /// </summary>
         /// <param name="specificType">鑷畾涔夎澶囩被鍨�</param>
         /// <param name="unSelectPath">鍥剧墖鍦板潃</param>
         /// <param name="selectPath">鍥剧墖鍦板潃</param>
         /// <returns></returns>
-        public void GetDeviceBeloneIcon(DeviceConcreteType specificType, ref string unSelectPath, ref string selectPath)
+        public void GetDeviceObjectIcon(DeviceConcreteType specificType, ref string unSelectPath, ref string selectPath)
         {
             //灏嗗叿浣撶被鍨嬭浆瀛楃涓�
             string strSpecific = Enum.GetName(typeof(DeviceConcreteType), specificType);
@@ -1216,7 +1235,7 @@
                 return info;
             }
             //鑾峰彇绗笁鏂硅澶囩殑銆愯澶囩被鍨嬨��
-            return this.GetNotHdlMyDeviceEnumInfo(listdevice);
+            return this.GetNotHdlMyDeviceEnumInfo(listdevice, false);
         }
 
         /// <summary>
@@ -1246,7 +1265,7 @@
             else
             {
                 //鑾峰彇绗笁鏂硅澶囩殑銆愯澶囩被鍨嬨��
-                var myDeviceType = this.GetNotHdlMyDeviceEnumInfo(listDevice);
+                var myDeviceType = this.GetNotHdlMyDeviceEnumInfo(listDevice, false);
                 strName = Language.StringByID(myDeviceType.ConcreteTextId);
             }
             if (ApendFalge == true && listDevice[0].DriveCode > 0)
@@ -1312,11 +1331,68 @@
         #region 鈻� 鑾峰彇绗笁鏂硅澶囩殑璁惧绫诲瀷___________
 
         /// <summary>
-        /// 鑾峰彇绗笁鏂硅澶囩殑銆愯澶囩被鍨嬨��
+        /// 鑾峰彇璁惧鐨勩�愭墍灞炵被鍨嬩俊鎭��,姝ゆ柟娉曚細鎶婃墍鏈夌殑浼犳劅鍣ㄩ兘褰掍负銆愪紶鎰熷櫒銆�(鍖呮嫭娓╂箍搴︿紶鎰熷櫒)
         /// </summary>
-        /// <param name="listdevice"></param>
+        /// <param name="device">璁惧鍥炶矾</param>
         /// <returns></returns>
-        public DeviceEnumInfo GetNotHdlMyDeviceEnumInfo(List<CommonDevice> listdevice)
+        public DeviceEnumInfo GetDeviceBelongEnumInfo(CommonDevice device)
+        {
+            var info = this.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice>() { device });
+            if (info.BeloneType == DeviceBeloneType.A璋冨厜鍣�
+                || info.BeloneType == DeviceBeloneType.A褰╃伅)
+            {
+                //褰掍负鐏厜
+                info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId15;
+                info.BeloneType = DeviceBeloneType.A鐏厜;
+                info.ConcreteType = DeviceConcreteType.Light;
+
+                int value = (int)info.BeloneType;
+                if (dicDeviceDefultNameID.ContainsKey("uDeviceBelongId" + value) == true)
+                {
+                    //璁惧鎵�灞炵被鍨嬬殑缈昏瘧鍚嶅瓧
+                    info.BeloneTextId = dicDeviceDefultNameID["uDeviceBelongId" + value];
+                }
+            }
+            else if (info.BeloneType == DeviceBeloneType.A浼犳劅鍣�
+                || device.Type == DeviceType.TemperatureSensor)
+            {
+                //浼犳劅鍣ㄥ悎骞�
+                info.BeloneType = DeviceBeloneType.A浼犳劅鍣�;
+                info.ConcreteType = DeviceConcreteType.Sensor;
+                info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId1200;
+
+                int value = (int)info.BeloneType;
+                if (dicDeviceDefultNameID.ContainsKey("uDeviceBelongId" + value) == true)
+                {
+                    //璁惧鎵�灞炵被鍨嬬殑缈昏瘧鍚嶅瓧
+                    info.BeloneTextId = dicDeviceDefultNameID["uDeviceBelongId" + value];
+                }
+            }
+
+            return info;
+        }
+
+        /// <summary>
+        /// 鑾峰彇绗笁鏂硅澶囩殑銆愯澶囩被鍨嬨��(涓嶅缓璁娇鐢�)
+        /// </summary>
+        /// <param name="listdevice">Mac閮戒竴鏍风殑璁惧鍒楄〃</param>
+        /// <returns></returns>
+        public DeviceEnumInfo GetNotHdlMyDeviceEnumInfo(CommonDevice device, bool margeSensor = true)
+        {
+            return this.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice>() { device }, margeSensor);
+        }
+
+        /// <summary>
+        /// 鑾峰彇绗笁鏂硅澶囩殑銆愯澶囩被鍨嬨��(涓嶅缓璁娇鐢�)
+        /// </summary>
+        /// <param name="listdevice">Mac閮戒竴鏍风殑璁惧鍒楄〃</param>
+        /// <param name="margeSensor">
+        /// <para>鏄惁灏嗘墍鏈夌被鍨嬬殑浼犳劅鍣ㄩ兘褰掍负銆愪紶鎰熷櫒銆�,</para>
+        /// <para>false鐨勬椂鍊欙細銆怌oncreteType銆戝拰銆怌oncreteTextId銆戝彲鑳戒細鏈変笉鍚岀殑鍊�</para>
+        /// <para>true鐨勬椂鍊欙細銆怌oncreteType銆戠粺涓�涓篠ensor,銆怌oncreteTextId銆戠粺涓�涓轰紶鎰熷櫒</para>
+        /// </param>
+        /// <returns></returns>
+        public DeviceEnumInfo GetNotHdlMyDeviceEnumInfo(List<CommonDevice> listdevice, bool margeSensor = true)
         {
             var dicType = new Dictionary<DeviceType, CommonDevice>();
             foreach (CommonDevice device in listdevice)
@@ -1331,9 +1407,18 @@
             //1鍖呭惈闈㈡澘鐨勮瘽,褰撻潰鏉垮鐞�
             if (dicType.ContainsKey(DeviceType.OnOffSwitch) == true)
             {
-                info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId200;
-                info.BeloneType = DeviceBeloneType.A鎸夐敭闈㈡澘;
-                info.ConcreteType = DeviceConcreteType.ButtonPanel;
+                if (listdevice.Count > 1)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId200;
+                    info.BeloneType = DeviceBeloneType.A鎸夐敭闈㈡澘;
+                    info.ConcreteType = DeviceConcreteType.ButtonPanel;
+                }
+                else
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId16;
+                    info.BeloneType = DeviceBeloneType.A骞叉帴鐐�;
+                    info.ConcreteType = DeviceConcreteType.DryContact;
+                }
             }
             //3鍖呭惈绐楀笜鐨勮瘽,褰撶獥甯樺鐞�
             else if (dicType.ContainsKey(DeviceType.WindowCoveringDevice) == true)
@@ -1345,16 +1430,56 @@
             //4绌烘皵寮�鍏�
             else if (dicType.ContainsKey(DeviceType.AirSwitch) == true)
             {
+                //榛樿鍊�
                 info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId4100;
-                info.BeloneType = DeviceBeloneType.A绌烘皵寮�鍏�;
+                info.BeloneType = DeviceBeloneType.A鏅鸿兘绌哄紑;
                 info.ConcreteType = DeviceConcreteType.AirSwitch;
+
+                if (dicType[DeviceType.AirSwitch].DfunctionType == DeviceFunctionType.A寮�鍏�)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId13;
+                    info.BeloneType = DeviceBeloneType.A寮�鍏�;
+                    info.ConcreteType = DeviceConcreteType.Switch;
+                }
+                else if (dicType[DeviceType.AirSwitch].DfunctionType == DeviceFunctionType.A鎻掑骇)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId14;
+                    info.BeloneType = DeviceBeloneType.A鎻掑骇;
+                    info.ConcreteType = DeviceConcreteType.Socket1;
+                }
+                else if (dicType[DeviceType.AirSwitch].DfunctionType == DeviceFunctionType.A鐏厜)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId15;
+                    info.BeloneType = DeviceBeloneType.A鐏厜;
+                    info.ConcreteType = DeviceConcreteType.Light;
+                }
             }
             //5缁х數鍣�
             else if (dicType.ContainsKey(DeviceType.OnOffOutput) == true)
             {
+                //榛樿鍊�
                 info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId2300;
                 info.BeloneType = DeviceBeloneType.A缁х數鍣�;
                 info.ConcreteType = DeviceConcreteType.Relay;
+
+                if (dicType[DeviceType.OnOffOutput].DfunctionType == DeviceFunctionType.A寮�鍏�)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId13;
+                    info.BeloneType = DeviceBeloneType.A寮�鍏�;
+                    info.ConcreteType = DeviceConcreteType.Switch;
+                }
+                else if (dicType[DeviceType.OnOffOutput].DfunctionType == DeviceFunctionType.A鎻掑骇)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId14;
+                    info.BeloneType = DeviceBeloneType.A鎻掑骇;
+                    info.ConcreteType = DeviceConcreteType.Socket1;
+                }
+                else if (dicType[DeviceType.OnOffOutput].DfunctionType == DeviceFunctionType.A鐏厜)
+                {
+                    info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId15;
+                    info.BeloneType = DeviceBeloneType.A鐏厜;
+                    info.ConcreteType = DeviceConcreteType.Light;
+                }
             }
             //6璋冨厜鍣�
             else if (dicType.ContainsKey(DeviceType.DimmableLight) == true)
@@ -1401,8 +1526,10 @@
             //12鍖呭惈浼犳劅鍣ㄧ殑璇�,褰撲紶鎰熷櫒澶勭悊
             else if (dicType.ContainsKey(DeviceType.IASZone) == true)
             {
-                //璁剧疆浼犳劅鍣ㄥ叿浣撶殑绫诲瀷
                 info.BeloneType = DeviceBeloneType.A浼犳劅鍣�;
+                info.ConcreteType = DeviceConcreteType.Sensor;
+                info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId1200;
+                //璁剧疆浼犳劅鍣ㄥ叿浣撶殑绫诲瀷
                 this.SetSensorDeviceSpecificType(ref info, listdevice);
             }
             //13鍖呭惈娓╁害浼犳劅鍣ㄧ殑璇�
@@ -1410,7 +1537,9 @@
             {
                 bool temperatrue = false;
                 bool humidity = false;
-                foreach (var device in listdevice)
+                //鑾峰彇鍏ㄩ儴鐨勫洖璺�
+                var listTemp = this.GetDevicesByMac(listdevice[0].DeviceAddr, false);
+                foreach (var device in listTemp)
                 {
                     if (device is TemperatureSensor)
                     {
@@ -1431,14 +1560,14 @@
                     //璁剧疆浼犳劅鍣ㄥ叿浣撶殑绫诲瀷
                     info.BeloneType = DeviceBeloneType.A娓╂箍搴︿紶鎰熷櫒;
                     info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId10;
-                    info.ConcreteType = DeviceConcreteType.Sensor_TemperatrueHumidity;
+                    info.ConcreteType = DeviceConcreteType.Sensor_TemperatureHumidity;
                 }
                 else if (temperatrue == true && humidity == false)
                 {
                     //璁剧疆浼犳劅鍣ㄥ叿浣撶殑绫诲瀷
                     info.BeloneType = DeviceBeloneType.A娓╁害浼犳劅鍣�;
                     info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId11;
-                    info.ConcreteType = DeviceConcreteType.Sensor_Temperatrue;
+                    info.ConcreteType = DeviceConcreteType.Sensor_Temperature;
                 }
                 else if (temperatrue == false && humidity == true)
                 {
@@ -1470,10 +1599,6 @@
         /// <param name="listdevice">璁惧瀵硅薄</param>
         private void SetSensorDeviceSpecificType(ref DeviceEnumInfo info, List<CommonDevice> listdevice)
         {
-            //榛樿鍚嶅瓧:浼犳劅鍣�
-            info.ConcreteType = DeviceConcreteType.Sensor;
-            info.ConcreteTextId = R.MyInternationalizationString.uDeviceBelongId1200;
-
             //濡傛灉杩欎釜璁惧鎷ユ湁澶氫釜鍥炶矾鐨勮瘽,鎴戜篃涓嶇煡閬撴�庝箞鍛藉悕,鍙兘缁欎釜榛樿鍚嶅瓧
             if (listdevice.Count > 1)
             {
@@ -2246,11 +2371,11 @@
         /// <summary>
         /// 娓╂箍搴︿紶鎰熷櫒
         /// </summary>
-        Sensor_TemperatrueHumidity = -1308,
+        Sensor_TemperatureHumidity = -1308,
         /// <summary>
         /// 娓╁害浼犳劅鍣�
         /// </summary>
-        Sensor_Temperatrue = -1309,
+        Sensor_Temperature = -1309,
         /// <summary>
         /// 婀垮害浼犳劅鍣�
         /// </summary>
@@ -2314,7 +2439,7 @@
 
         //=========鈽呪槄绌烘皵寮�鍏崇被(4100-????)鈽呪槄=========
         /// <summary>
-        /// 鏅鸿兘绌烘皵寮�鍏�
+        /// 鏅鸿兘绌哄紑
         /// </summary>
         AirSwitch = -4100,
         /// <summary>
@@ -2335,6 +2460,24 @@
         /// zigbee杞琤uspro鍗忚杞崲鍣�
         /// </summary>
         Converter_ZbBuspro = 4201,
+
+        //=========鈽呪槄鍏朵粬绫�(????-????)鈽呪槄=========
+        /// <summary>
+        /// 骞叉帴鐐�
+        /// </summary>
+        DryContact = -10000,
+        /// <summary>
+        /// 鐏厜(娉ㄦ剰,瀹冭緭鍏ュ叾浠栫被,涓嶆槸璁惧绫诲瀷)
+        /// </summary>
+        Light = -10001,
+        /// <summary>
+        /// 鎻掑骇
+        /// </summary>
+        Socket1 = -10002,
+        /// <summary>
+        /// 寮�鍏�
+        /// </summary>
+        Switch = -10003,
     }
 
     /// <summary>
@@ -2380,9 +2523,9 @@
         /// </summary>
         A涓户鍣� = 3900,
         /// <summary>
-        /// 绌烘皵寮�鍏�(4100-4199)
+        /// 鏅鸿兘绌哄紑(4100-4199)
         /// </summary>
-        A绌烘皵寮�鍏� = 4100,
+        A鏅鸿兘绌哄紑 = 4100,
         /// <summary>
         /// 杞崲鍣�(4200-4699)
         /// </summary>
@@ -2402,7 +2545,23 @@
         /// <summary>
         /// 婀垮害浼犳劅鍣�
         /// </summary>
-        A婀垮害浼犳劅鍣� = 12
+        A婀垮害浼犳劅鍣� = 12,
+        /// <summary>
+        /// 寮�鍏�
+        /// </summary>
+        A寮�鍏� = 13,
+        /// <summary>
+        /// 鎻掑骇
+        /// </summary>
+        A鎻掑骇 = 14,
+        /// <summary>
+        /// 鐏厜
+        /// </summary>
+        A鐏厜 = 15,
+        /// <summary>
+        /// 骞叉帴鐐�
+        /// </summary>
+        A骞叉帴鐐� = 16
     }
 
     #endregion

--
Gitblit v1.8.0